diff --git a/src/main/java/com/glxp/mipsdl/client/BaseHttpClient.java b/src/main/java/com/glxp/mipsdl/client/BaseHttpClient.java index efcb68d..092ba69 100644 --- a/src/main/java/com/glxp/mipsdl/client/BaseHttpClient.java +++ b/src/main/java/com/glxp/mipsdl/client/BaseHttpClient.java @@ -16,7 +16,7 @@ public interface BaseHttpClient { /** * 获取往来单位列表 * - * @param testUnitRequest + * @param udiwmsUnitRequest * @return */ BaseResponse getUnit(UdiwmsUnitRequest udiwmsUnitRequest); @@ -32,7 +32,7 @@ public interface BaseHttpClient { /** * 获取单据类型列表 * - * @param udiwmsOrderRequest + * @param udiwmsBusTypeRequest * @return */ BaseResponse getOrderTypes(UdiwmsBusTypeRequest udiwmsBusTypeRequest); diff --git a/src/main/java/com/glxp/mipsdl/client/ClientProcessor.java b/src/main/java/com/glxp/mipsdl/client/ClientProcessor.java index 9c4a87d..4fd9b6b 100644 --- a/src/main/java/com/glxp/mipsdl/client/ClientProcessor.java +++ b/src/main/java/com/glxp/mipsdl/client/ClientProcessor.java @@ -7,6 +7,8 @@ import org.springframework.context.ApplicationContext; import org.springframework.context.ApplicationContextAware; import org.springframework.stereotype.Component; +import java.util.Map; + /** * 接口封装,用于获取当前医院的实现,实现controller层通过base接口直接调用对应方法 */ diff --git a/src/main/java/com/glxp/mipsdl/client/CommonFileClient.java b/src/main/java/com/glxp/mipsdl/client/CommonFileClient.java new file mode 100644 index 0000000..4fd82cf --- /dev/null +++ b/src/main/java/com/glxp/mipsdl/client/CommonFileClient.java @@ -0,0 +1,81 @@ +package com.glxp.mipsdl.client; + +import cn.hutool.core.thread.ThreadUtil; +import cn.hutool.core.util.StrUtil; +import com.alibaba.fastjson2.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.glxp.mipsdl.config.ThirdSysConfig; +import com.glxp.mipsdl.constant.ConstantType; +import com.glxp.mipsdl.constant.Constants; +import com.glxp.mipsdl.dao.auth.AuthWarehouseDao; +import com.glxp.mipsdl.dao.basic.BasicBussinessTypeDao; +import com.glxp.mipsdl.dao.basic.BasicCorpDao; +import com.glxp.mipsdl.dao.inout.IoCodeDao; +import com.glxp.mipsdl.dao.inout.IoOrderDao; +import com.glxp.mipsdl.dao.inout.IoOrderDetailBizDao; +import com.glxp.mipsdl.dao.thrsys.ThrBustypeOriginDao; +import com.glxp.mipsdl.dao.thrsys.ThrInvWarehouseDao; +import com.glxp.mipsdl.dao.thrsys.ThrSystemBusApiDao; +import com.glxp.mipsdl.entity.auth.AuthWarehouseEntity; +import com.glxp.mipsdl.entity.basic.BasicBussinessTypeEntity; +import com.glxp.mipsdl.entity.inout.IoCodeEntity; +import com.glxp.mipsdl.entity.inout.IoOrderDetailBizEntity; +import com.glxp.mipsdl.entity.inout.IoOrderEntity; +import com.glxp.mipsdl.entity.thrsys.ThrCorpEntity; +import com.glxp.mipsdl.entity.thrsys.ThrInvWarehouseEntity; +import com.glxp.mipsdl.entity.thrsys.ThrSystemBusApiEntity; +import com.glxp.mipsdl.http.HttpClient; +import com.glxp.mipsdl.req.base.*; +import com.glxp.mipsdl.req.post.PostFileThrOrderRequest; +import com.glxp.mipsdl.req.post.PostThrCorpRequest; +import com.glxp.mipsdl.req.post.PostThrInvProductsRequest; +import com.glxp.mipsdl.req.post.PostThrProductsRequest; +import com.glxp.mipsdl.res.BaseResponse; +import com.glxp.mipsdl.res.udiwms.UdiwmsProductInfoResponse; +import com.glxp.mipsdl.service.auth.AuthWarehouseService; +import com.glxp.mipsdl.service.file.UdiInfoUploadService; +import com.glxp.mipsdl.service.thrsys.ThrCorpService; +import com.glxp.mipsdl.service.thrsys.ThrSystemDetailService; +import com.glxp.mipsdl.util.*; +import com.glxp.mipsdl.vo.file.yxzyy.YxzyyProductEntity; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.BeanUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; + +@Slf4j +@Service +public abstract class CommonFileClient implements BaseFileClient { + + + @Autowired + private UdiInfoUploadService udiInfoUploadService; + @Autowired + private ExecutorUtil executorUtil; + + @Override + public abstract BaseResponse uploadPi(List files, String thirdSys); + + @Override + public BaseResponse uploadCorps(List files, String thirdSys) { + return ResultVOUtils.error(500, "暂不支持往来单位上传!"); + } + + @Override + public BaseResponse uploadInvPi(List files, String thirdSys) { + return ResultVOUtils.error(500, "暂不支持库存产品信息上传!"); + } + + @Override + public BaseResponse uploadOrders(List files, String thirdSys) { + return ResultVOUtils.error(500, "暂不支持业务单据上传!"); + } +} diff --git a/src/main/java/com/glxp/mipsdl/client/CommonHttpClient.java b/src/main/java/com/glxp/mipsdl/client/CommonHttpClient.java new file mode 100644 index 0000000..4e3d60d --- /dev/null +++ b/src/main/java/com/glxp/mipsdl/client/CommonHttpClient.java @@ -0,0 +1,217 @@ +package com.glxp.mipsdl.client; + +import cn.hutool.core.util.StrUtil; +import com.alibaba.fastjson2.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.glxp.mipsdl.config.ThirdSysConfig; +import com.glxp.mipsdl.constant.ConstantType; +import com.glxp.mipsdl.constant.Constants; +import com.glxp.mipsdl.dao.auth.AuthWarehouseDao; +import com.glxp.mipsdl.dao.basic.BasicBussinessTypeDao; +import com.glxp.mipsdl.dao.basic.BasicCorpDao; +import com.glxp.mipsdl.dao.inout.IoCodeDao; +import com.glxp.mipsdl.dao.inout.IoOrderDao; +import com.glxp.mipsdl.dao.inout.IoOrderDetailBizDao; +import com.glxp.mipsdl.dao.thrsys.ThrBustypeOriginDao; +import com.glxp.mipsdl.dao.thrsys.ThrInvWarehouseDao; +import com.glxp.mipsdl.dao.thrsys.ThrSystemBusApiDao; +import com.glxp.mipsdl.entity.auth.AuthWarehouseEntity; +import com.glxp.mipsdl.entity.basic.BasicBussinessTypeEntity; +import com.glxp.mipsdl.entity.inout.IoCodeEntity; +import com.glxp.mipsdl.entity.inout.IoOrderDetailBizEntity; +import com.glxp.mipsdl.entity.inout.IoOrderEntity; +import com.glxp.mipsdl.entity.thrsys.ThrCorpEntity; +import com.glxp.mipsdl.entity.thrsys.ThrInvWarehouseEntity; +import com.glxp.mipsdl.entity.thrsys.ThrSystemBusApiEntity; +import com.glxp.mipsdl.http.HttpClient; +import com.glxp.mipsdl.req.base.*; +import com.glxp.mipsdl.req.post.PostFileThrOrderRequest; +import com.glxp.mipsdl.req.post.PostThrCorpRequest; +import com.glxp.mipsdl.req.post.PostThrInvProductsRequest; +import com.glxp.mipsdl.req.post.PostThrProductsRequest; +import com.glxp.mipsdl.res.BaseResponse; +import com.glxp.mipsdl.service.auth.AuthWarehouseService; +import com.glxp.mipsdl.service.thrsys.ThrCorpService; +import com.glxp.mipsdl.service.thrsys.ThrSystemDetailService; +import com.glxp.mipsdl.util.DateUtil; +import com.glxp.mipsdl.util.DictUtl; +import com.glxp.mipsdl.util.ResultVOUtils; +import com.glxp.mipsdl.util.SubmitOrderUtil; +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; + +@Slf4j +@Service +public abstract class CommonHttpClient implements BaseHttpClient { + + @Autowired + private HttpClient httpClient; + @Autowired + private ThirdSysConfig thirdSysConfig; + @Autowired + private ThrSystemDetailService thrSystemDetailService; + @Autowired + private ThrBustypeOriginDao thrBustypeOriginDao; + @Autowired + private IoOrderDao orderDao; + @Autowired + private ThrSystemBusApiDao thrSystemBusApiDao; + @Autowired + private BasicBussinessTypeDao basicBussinessTypeDao; + @Autowired + private BasicCorpDao basicCorpDao; + @Autowired + private AuthWarehouseDao authWarehouseDao; + @Autowired + private ThrInvWarehouseDao thrInvWarehouseDao; + @Autowired + private AuthWarehouseService authWarehouseService; + @Autowired + private ThrCorpService thrCorpService; + @Autowired + private IoCodeDao codeDao; + @Autowired + private IoOrderDetailBizDao orderDetailBizDao; + @Autowired + private SubmitOrderUtil submitOrderUtil; + + @Override + public BaseResponse getUnit(UdiwmsUnitRequest udiwmsUnitRequest) { + String response = httpClient.postJson(thrSystemDetailService.getUrl(Constants.URL_NAME_CORP_URL), udiwmsUnitRequest); + BaseResponse baseResponse = JSONObject.parseObject(response, BaseResponse.class); + return baseResponse; + } + + @Override + public BaseResponse getProducts(UdiwmsProductRequest udiwmsProductRequest) { + String response = httpClient.postJson(thrSystemDetailService.getUrl(Constants.URL_NAME_PI_QUERY_URL), udiwmsProductRequest); + BaseResponse baseResponse = JSONObject.parseObject(response, BaseResponse.class); + return baseResponse; + } + + @Override + public BaseResponse getOrderTypes(UdiwmsBusTypeRequest udiwmsBusTypeRequest) { + String response = httpClient.postJson(thrSystemDetailService.getUrl(Constants.URL_NAME_BUS_TYPE_QUERY_URL), udiwmsBusTypeRequest); + BaseResponse baseResponse = JSONObject.parseObject(response, BaseResponse.class); + return baseResponse; + } + + @Override + public BaseResponse getOrders(UdiwmsOrderQueryRequest udiwmsOrderQueryRequest) { + if (StrUtil.isBlank(udiwmsOrderQueryRequest.getBillType())) { + return ResultVOUtils.error(500, "单据类型不能为空"); + } + //查询绑定的第三方单据类型 + String thirdAction = thrBustypeOriginDao.findThirdActionByBillType(udiwmsOrderQueryRequest.getBillType(), DictUtl.CURRENT_HOSP_CODE); + udiwmsOrderQueryRequest.setBillType(thirdAction); + String response = httpClient.postJson(thrSystemDetailService.getUrl(Constants.URL_NAME_ORDER_QUERY_URL), udiwmsOrderQueryRequest); + BaseResponse baseResponse = JSONObject.parseObject(response, BaseResponse.class); + return baseResponse; + } + + @Override + public abstract BaseResponse submitOrders(UdiwmsOrderRequest udiwmsOrderRequest); + + /** + * 封装单据详情参数 + * + * @param ioCodeEntities 单据码明细 + * @param orderDetailRequests 单据详情参数 + * @param detailBizEntities 单据业务详情 + */ + private void setOrderDetailList(List ioCodeEntities, List orderDetailRequests, List detailBizEntities) { + for (IoOrderDetailBizEntity detailBizEntity : detailBizEntities) { + UdiwmsOrderDetailRequest item = submitOrderUtil.buildProductInfo(detailBizEntity); + //封装条码信息 + submitOrderUtil.setCodeList(ioCodeEntities, detailBizEntity, item); + orderDetailRequests.add(item); + } + } + + @Override + public BaseResponse getInvProducts(UdiwmsInvProductsRequest udiwmsInvProductsRequest) { + String response = httpClient.postJson(thrSystemDetailService.getUrl(Constants.URL_NAME_INV_PI_URL), udiwmsInvProductsRequest); + BaseResponse baseResponse = JSONObject.parseObject(response, BaseResponse.class); + return baseResponse; + } + + @Override + public BaseResponse getWarehouse(UdiwmsWarehouseRequest udiwmsWarehouseRequest) { + String response = httpClient.postJson(thrSystemDetailService.getUrl(Constants.URL_NAME_WAREHOUSE_QUERY_URL), udiwmsWarehouseRequest); + BaseResponse baseResponse = JSONObject.parseObject(response, BaseResponse.class); + return baseResponse; + } + + @Override + public BaseResponse testConnect() { + UdiwmsUnitRequest udiwmsUnitRequest = new UdiwmsUnitRequest(); + udiwmsUnitRequest.setPage(1); + udiwmsUnitRequest.setLimit(1); + BaseResponse baseResponse = getUnit(udiwmsUnitRequest); + if (baseResponse.getCode() == 20000) { + return ResultVOUtils.success("连接成功"); + } + return ResultVOUtils.error(500, "连接失败!"); + } + + @Override + public BaseResponse queryUdiInvProducts(UdiwmsQueryUdiInvProductsRequest queryUdiInvProductsRequest) { + String response = httpClient.postUDIWMSJson(thirdSysConfig.getQueryInvUrl(), queryUdiInvProductsRequest); + BaseResponse baseResponse = JSONObject.parseObject(response, BaseResponse.class); + return baseResponse; + } + + @Override + public BaseResponse submitProducts(UdiwmsAddProductsRequest udiwmsAddProductsRequest) { + return null; + } + + @Override + public BaseResponse submitUnit(UdiwmsAddUnitRequest udiwmsAddUnitRequest) { + return null; + } + + @Override + public BaseResponse submitPreInOrders(UdiwmsPreInOrderRequest udiwmsPreInOrderRequest) { + return null; + } + + @Override + public BaseResponse postProducts(PostThrProductsRequest postThrProductsRequest) { + postThrProductsRequest.setUploadType("文件导入"); + String response = httpClient.postUDIWMSJson(thirdSysConfig.getPostPiUrl(), postThrProductsRequest); + BaseResponse baseResponse = JSONObject.parseObject(response, BaseResponse.class); + return baseResponse; + } + + @Override + public BaseResponse postCorps(PostThrCorpRequest postThrCorpRequest) { + postThrCorpRequest.setUploadType("文件导入"); + String response = httpClient.postUDIWMSJson(thirdSysConfig.getPostCorpUrl(), postThrCorpRequest); + BaseResponse baseResponse = JSONObject.parseObject(response, BaseResponse.class); + return baseResponse; + } + + @Override + public BaseResponse postOrderDetail(PostFileThrOrderRequest postFileThrOrderRequest) { + postFileThrOrderRequest.setUploadType("文件导入"); + String response = httpClient.postUDIWMSJson(thirdSysConfig.getPostOrderUrl(), postFileThrOrderRequest); + BaseResponse baseResponse = JSONObject.parseObject(response, BaseResponse.class); + return baseResponse; + } + + @Override + public BaseResponse postInvProducts(PostThrInvProductsRequest postThrInvProductsRequest) { + String response = httpClient.postUDIWMSJson(thirdSysConfig.getPostInvPiUrl(), postThrInvProductsRequest); + BaseResponse baseResponse = JSONObject.parseObject(response, BaseResponse.class); + return baseResponse; + } +} diff --git a/src/main/java/com/glxp/mipsdl/client/dsxyy/DsxyyClient.java b/src/main/java/com/glxp/mipsdl/client/dsxyy/DsxyyClient.java index b944d66..6f7974e 100644 --- a/src/main/java/com/glxp/mipsdl/client/dsxyy/DsxyyClient.java +++ b/src/main/java/com/glxp/mipsdl/client/dsxyy/DsxyyClient.java @@ -3,6 +3,7 @@ package com.glxp.mipsdl.client.dsxyy; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson2.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.glxp.mipsdl.client.BaseHttpClient; import com.glxp.mipsdl.config.ThirdSysConfig; @@ -139,11 +140,11 @@ public class DsxyyClient implements BaseHttpClient { BeanUtil.copyProperties(udiwmsOrderRequest, dsOrderRequest); //查询单据和详情信息,组装第三方系统接口参数 - IoOrderEntity orderEntity = orderDao.selectOne(new QueryWrapper().eq("billNo", udiwmsOrderRequest.getBillNo())); + IoOrderEntity orderEntity = orderDao.selectOne(new LambdaQueryWrapper().eq(IoOrderEntity::getBillNo, udiwmsOrderRequest.getBillNo())); dsOrderRequest.setBillDate(DateUtil.formatDateTime(orderEntity.getCreateTime())); //查询对应的第三方单据类型 - ThrSystemBusApiEntity thrSystemBusApiEntity = thrSystemBusApiDao.selectOne(new QueryWrapper().eq("code", udiwmsOrderRequest.getBillType())); + ThrSystemBusApiEntity thrSystemBusApiEntity = thrSystemBusApiDao.selectOne(new LambdaQueryWrapper().eq(ThrSystemBusApiEntity::getCode, udiwmsOrderRequest.getBillType())); if (StrUtil.isBlank(thrSystemBusApiEntity.getUrl())) { return ResultVOUtils.error(500, "接口未配置,无法提交!"); } @@ -160,12 +161,12 @@ public class DsxyyClient implements BaseHttpClient { dsOrderRequest.setCorpName(corpName); } else if (basicBussinessTypeEntity.getCorpType().equals(Constants.CORP_INTTERNAL)) { //内部科室 - AuthWarehouseEntity warehouseEntity = authWarehouseDao.selectOne(new QueryWrapper().eq("code", udiwmsOrderRequest.getCorpId())); + AuthWarehouseEntity warehouseEntity = authWarehouseDao.selectOne(new LambdaQueryWrapper().eq(AuthWarehouseEntity::getCode, udiwmsOrderRequest.getCorpId())); try { //根据第三方系统标识,获取对应字段的值 - ThrInvWarehouseEntity thrInvWarehouseEntity = thrInvWarehouseDao.selectOne(new QueryWrapper() - .eq("code", authWarehouseService.getThirdInvCode(warehouseEntity)) - .eq("thirdSys", thirdSysConfig.getThirdId())); + ThrInvWarehouseEntity thrInvWarehouseEntity = thrInvWarehouseDao.selectOne(new LambdaQueryWrapper() + .eq(ThrInvWarehouseEntity::getCode, authWarehouseService.getThirdInvCode(warehouseEntity)) + .eq(ThrInvWarehouseEntity::getThirdSysFk, thirdSysConfig.getThirdId())); dsOrderRequest.setCorpId(thrInvWarehouseEntity.getCode()); dsOrderRequest.setCorpName(thrInvWarehouseEntity.getName()); @@ -184,11 +185,11 @@ public class DsxyyClient implements BaseHttpClient { } //查询仓库信息 - AuthWarehouseEntity warehouseEntity = authWarehouseDao.selectOne(new QueryWrapper().eq("code", orderEntity.getInvCode())); + AuthWarehouseEntity warehouseEntity = authWarehouseDao.selectOne(new LambdaQueryWrapper().eq(AuthWarehouseEntity::getCode, orderEntity.getInvCode())); try { - ThrInvWarehouseEntity thrInvWarehouseEntity = thrInvWarehouseDao.selectOne(new QueryWrapper() - .eq("code", authWarehouseService.getThirdInvCode(warehouseEntity)) - .eq("thirdSys", thirdSysConfig.getThirdId())); + ThrInvWarehouseEntity thrInvWarehouseEntity = thrInvWarehouseDao.selectOne(new LambdaQueryWrapper() + .eq(ThrInvWarehouseEntity::getCode, authWarehouseService.getThirdInvCode(warehouseEntity)) + .eq(ThrInvWarehouseEntity::getThirdSysFk, thirdSysConfig.getThirdId())); dsOrderRequest.setLocInvCode(thrInvWarehouseEntity.getCode()); dsOrderRequest.setLocInvName(thrInvWarehouseEntity.getName()); @@ -203,7 +204,8 @@ public class DsxyyClient implements BaseHttpClient { dsOrderRequest.setCorpId(dsOrderRequest.getLocStorageCode()); dsOrderRequest.setCorpName(dsOrderRequest.getLocStorageName()); - ThrInvWarehouseEntity thrInvWarehouseEntity = thrInvWarehouseDao.selectOne(new QueryWrapper().eq("code", "29").eq("thirdSysFk", thirdSysConfig.getThirdId())); + ThrInvWarehouseEntity thrInvWarehouseEntity = thrInvWarehouseDao.selectOne(new LambdaQueryWrapper().eq(ThrInvWarehouseEntity::getCode, "29") + .eq(ThrInvWarehouseEntity::getThirdSysFk, thirdSysConfig.getThirdId())); dsOrderRequest.setLocStorageCode("29"); dsOrderRequest.setLocStorageName(thrInvWarehouseEntity.getName()); } @@ -219,14 +221,14 @@ public class DsxyyClient implements BaseHttpClient { dsOrderRequest.setRemark("udi管理系统提交单据"); //组装单据明细数据 - List ioCodeEntities = codeDao.selectList(new QueryWrapper() - .eq("orderId", orderEntity.getBillNo()) - .ne("action", "StockCheck") + List ioCodeEntities = codeDao.selectList(new LambdaQueryWrapper() + .eq(IoCodeEntity::getOrderId, orderEntity.getBillNo()) + .ne(IoCodeEntity::getAction, "StockCheck") ); List items = new ArrayList<>(); //查询业务单据详情 - List detailBizEntities = orderDetailBizDao.selectList(new QueryWrapper().eq("orderIdFk", orderEntity.getBillNo())); + List detailBizEntities = orderDetailBizDao.selectList(new LambdaQueryWrapper().eq(IoOrderDetailBizEntity::getOrderIdFk, orderEntity.getBillNo())); setOrderDetailList(ioCodeEntities, items, detailBizEntities); diff --git a/src/main/java/com/glxp/mipsdl/client/phxyy/PhxyyClient.java b/src/main/java/com/glxp/mipsdl/client/phxyy/PhxyyClient.java index 95130c1..5f2b52d 100644 --- a/src/main/java/com/glxp/mipsdl/client/phxyy/PhxyyClient.java +++ b/src/main/java/com/glxp/mipsdl/client/phxyy/PhxyyClient.java @@ -3,6 +3,7 @@ package com.glxp.mipsdl.client.phxyy; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson2.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.glxp.mipsdl.client.BaseHttpClient; import com.glxp.mipsdl.config.ThirdSysConfig; @@ -139,11 +140,11 @@ public class PhxyyClient implements BaseHttpClient { BeanUtil.copyProperties(udiwmsOrderRequest, phOrderRequest); //查询单据和详情信息,组装第三方系统接口参数 - IoOrderEntity orderEntity = orderDao.selectOne(new QueryWrapper().eq("billNo", udiwmsOrderRequest.getBillNo())); + IoOrderEntity orderEntity = orderDao.selectOne(new LambdaQueryWrapper().eq(IoOrderEntity::getBillNo, udiwmsOrderRequest.getBillNo())); phOrderRequest.setBillDate(DateUtil.formatDateTime(orderEntity.getCreateTime())); //查询对应的第三方单据类型 - ThrSystemBusApiEntity thrSystemBusApiEntity = thrSystemBusApiDao.selectOne(new QueryWrapper().eq("code", udiwmsOrderRequest.getBillType())); + ThrSystemBusApiEntity thrSystemBusApiEntity = thrSystemBusApiDao.selectOne(new LambdaQueryWrapper().eq(ThrSystemBusApiEntity::getCode, udiwmsOrderRequest.getBillType())); if (StrUtil.isBlank(thrSystemBusApiEntity.getUrl())) { return ResultVOUtils.error(500, "接口未配置,无法提交!"); } @@ -160,12 +161,12 @@ public class PhxyyClient implements BaseHttpClient { phOrderRequest.setCorpName(corpName); } else if (basicBussinessTypeEntity.getCorpType().equals(Constants.CORP_INTTERNAL)) { //内部科室 - AuthWarehouseEntity warehouseEntity = authWarehouseDao.selectOne(new QueryWrapper().eq("code", udiwmsOrderRequest.getCorpId())); + AuthWarehouseEntity warehouseEntity = authWarehouseDao.selectOne(new LambdaQueryWrapper().eq(AuthWarehouseEntity::getCode, udiwmsOrderRequest.getCorpId())); try { //根据第三方系统标识,获取对应字段的值 - ThrInvWarehouseEntity thrInvWarehouseEntity = thrInvWarehouseDao.selectOne(new QueryWrapper() - .eq("code", authWarehouseService.getThirdInvCode(warehouseEntity)) - .eq("thirdSys", thirdSysConfig.getThirdId())); + ThrInvWarehouseEntity thrInvWarehouseEntity = thrInvWarehouseDao.selectOne(new LambdaQueryWrapper() + .eq(ThrInvWarehouseEntity::getCode, authWarehouseService.getThirdInvCode(warehouseEntity)) + .eq(ThrInvWarehouseEntity::getThirdSysFk, thirdSysConfig.getThirdId())); phOrderRequest.setCorpId(thrInvWarehouseEntity.getCode()); phOrderRequest.setCorpName(thrInvWarehouseEntity.getName()); @@ -184,11 +185,11 @@ public class PhxyyClient implements BaseHttpClient { } //查询仓库信息 - AuthWarehouseEntity warehouseEntity = authWarehouseDao.selectOne(new QueryWrapper().eq("code", orderEntity.getInvCode())); + AuthWarehouseEntity warehouseEntity = authWarehouseDao.selectOne(new LambdaQueryWrapper().eq(AuthWarehouseEntity::getCode, orderEntity.getInvCode())); try { - ThrInvWarehouseEntity thrInvWarehouseEntity = thrInvWarehouseDao.selectOne(new QueryWrapper() - .eq("code", authWarehouseService.getThirdInvCode(warehouseEntity)) - .eq("thirdSys", thirdSysConfig.getThirdId())); + ThrInvWarehouseEntity thrInvWarehouseEntity = thrInvWarehouseDao.selectOne(new LambdaQueryWrapper() + .eq(ThrInvWarehouseEntity::getCode, authWarehouseService.getThirdInvCode(warehouseEntity)) + .eq(ThrInvWarehouseEntity::getThirdSysFk, thirdSysConfig.getThirdId())); phOrderRequest.setLocInvCode(thrInvWarehouseEntity.getCode()); phOrderRequest.setLocInvName(thrInvWarehouseEntity.getName()); @@ -203,7 +204,8 @@ public class PhxyyClient implements BaseHttpClient { phOrderRequest.setCorpId(phOrderRequest.getLocStorageCode()); phOrderRequest.setCorpName(phOrderRequest.getLocStorageName()); - ThrInvWarehouseEntity thrInvWarehouseEntity = thrInvWarehouseDao.selectOne(new QueryWrapper().eq("code", "29").eq("thirdSysFk", thirdSysConfig.getThirdId())); + ThrInvWarehouseEntity thrInvWarehouseEntity = thrInvWarehouseDao.selectOne(new LambdaQueryWrapper().eq(ThrInvWarehouseEntity::getCode, "29") + .eq(ThrInvWarehouseEntity::getThirdSysFk, thirdSysConfig.getThirdId())); phOrderRequest.setLocStorageCode("29"); phOrderRequest.setLocStorageName(thrInvWarehouseEntity.getName()); } @@ -219,14 +221,14 @@ public class PhxyyClient implements BaseHttpClient { phOrderRequest.setRemark("udi管理系统提交单据"); //组装单据明细数据 - List ioCodeEntities = codeDao.selectList(new QueryWrapper() - .eq("orderId", orderEntity.getBillNo()) - .ne("action", "StockCheck") + List ioCodeEntities = codeDao.selectList(new LambdaQueryWrapper() + .eq(IoCodeEntity::getOrderId, orderEntity.getBillNo()) + .ne(IoCodeEntity::getAction, "StockCheck") ); List items = new ArrayList<>(); //查询业务单据详情 - List detailBizEntities = orderDetailBizDao.selectList(new QueryWrapper().eq("orderIdFk", orderEntity.getBillNo())); + List detailBizEntities = orderDetailBizDao.selectList(new LambdaQueryWrapper().eq(IoOrderDetailBizEntity::getOrderIdFk, orderEntity.getBillNo())); setOrderDetailList(ioCodeEntities, items, detailBizEntities); diff --git a/src/main/java/com/glxp/mipsdl/client/ptxhyy/PtxhyyClient.java b/src/main/java/com/glxp/mipsdl/client/ptxhyy/PtxhyyClient.java index b5ae77f..961e18c 100644 --- a/src/main/java/com/glxp/mipsdl/client/ptxhyy/PtxhyyClient.java +++ b/src/main/java/com/glxp/mipsdl/client/ptxhyy/PtxhyyClient.java @@ -1,20 +1,45 @@ package com.glxp.mipsdl.client.ptxhyy; -import com.alibaba.fastjson2.JSONObject; -import com.glxp.mipsdl.client.BaseHttpClient; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.glxp.mipsdl.client.CommonHttpClient; import com.glxp.mipsdl.config.ThirdSysConfig; +import com.glxp.mipsdl.constant.ConstantType; +import com.glxp.mipsdl.constant.Constants; +import com.glxp.mipsdl.dao.auth.AuthWarehouseDao; +import com.glxp.mipsdl.dao.basic.BasicBussinessTypeDao; +import com.glxp.mipsdl.dao.basic.BasicCorpDao; +import com.glxp.mipsdl.dao.inout.IoCodeDao; +import com.glxp.mipsdl.dao.inout.IoOrderDao; +import com.glxp.mipsdl.dao.inout.IoOrderDetailBizDao; +import com.glxp.mipsdl.dao.thrsys.ThrBustypeOriginDao; +import com.glxp.mipsdl.dao.thrsys.ThrInvWarehouseDao; +import com.glxp.mipsdl.dao.thrsys.ThrSystemBusApiDao; +import com.glxp.mipsdl.entity.auth.AuthWarehouseEntity; +import com.glxp.mipsdl.entity.basic.BasicBussinessTypeEntity; +import com.glxp.mipsdl.entity.inout.IoCodeEntity; +import com.glxp.mipsdl.entity.inout.IoOrderDetailBizEntity; +import com.glxp.mipsdl.entity.inout.IoOrderEntity; +import com.glxp.mipsdl.entity.thrsys.ThrCorpEntity; +import com.glxp.mipsdl.entity.thrsys.ThrInvWarehouseEntity; +import com.glxp.mipsdl.entity.thrsys.ThrSystemBusApiEntity; import com.glxp.mipsdl.http.HttpClient; import com.glxp.mipsdl.req.base.*; -import com.glxp.mipsdl.req.post.PostFileThrOrderRequest; -import com.glxp.mipsdl.req.post.PostThrCorpRequest; -import com.glxp.mipsdl.req.post.PostThrInvProductsRequest; -import com.glxp.mipsdl.req.post.PostThrProductsRequest; import com.glxp.mipsdl.res.BaseResponse; +import com.glxp.mipsdl.service.auth.AuthWarehouseService; +import com.glxp.mipsdl.service.thrsys.ThrCorpService; +import com.glxp.mipsdl.service.thrsys.ThrSystemDetailService; +import com.glxp.mipsdl.util.DateUtil; import com.glxp.mipsdl.util.ResultVOUtils; +import com.glxp.mipsdl.util.SubmitOrderUtil; +import lombok.AllArgsConstructor; +import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; -import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; /** @@ -22,93 +47,144 @@ import javax.annotation.Resource; */ @Slf4j @Service(value = "100008HttpClient") -public class PtxhyyClient implements BaseHttpClient { +@RequiredArgsConstructor +public class PtxhyyClient extends CommonHttpClient { - @Resource - private HttpClient httpClient; - @Resource - private ThirdSysConfig thirdSysConfig; - @Override - public BaseResponse getUnit(UdiwmsUnitRequest udiwmsUnitRequest) { - return null; - } - - @Override - public BaseResponse getProducts(UdiwmsProductRequest udiwmsProductRequest) { - return null; - } - - @Override - public BaseResponse getOrderTypes(UdiwmsBusTypeRequest udiwmsBusTypeRequest) { - return null; - } - - @Override - public BaseResponse getOrders(UdiwmsOrderQueryRequest udiwmsOrderQueryRequest) { - return null; - } + private final ThirdSysConfig thirdSysConfig; + private final IoOrderDao orderDao; + private final ThrSystemBusApiDao thrSystemBusApiDao; + private final BasicBussinessTypeDao basicBussinessTypeDao; + private final BasicCorpDao basicCorpDao; + private final AuthWarehouseDao authWarehouseDao; + private final ThrInvWarehouseDao thrInvWarehouseDao; + private final AuthWarehouseService authWarehouseService; + private final ThrCorpService thrCorpService; + private final IoCodeDao codeDao; + private final IoOrderDetailBizDao orderDetailBizDao; + private final SubmitOrderUtil submitOrderUtil; @Override public BaseResponse submitOrders(UdiwmsOrderRequest udiwmsOrderRequest) { - return null; + if (StrUtil.isBlank(udiwmsOrderRequest.getBillNo())) { + return ResultVOUtils.error(500, "单据号不能为空"); + } + //查询单据和详情信息,组装第三方系统接口参数 + IoOrderEntity orderEntity = orderDao.selectOne(new LambdaQueryWrapper().eq(IoOrderEntity::getBillNo, udiwmsOrderRequest.getBillNo())); + udiwmsOrderRequest.setBillDate(DateUtil.formatDateTime(orderEntity.getCreateTime())); + //查询对应的第三方单据类型 + ThrSystemBusApiEntity thrSystemBusApiEntity = thrSystemBusApiDao.selectOne(new LambdaQueryWrapper().eq(ThrSystemBusApiEntity::getCode, udiwmsOrderRequest.getBillType())); + if (StrUtil.isBlank(thrSystemBusApiEntity.getUrl())) { + return ResultVOUtils.error(500, "接口未配置,无法提交!"); + } + udiwmsOrderRequest.setBillType(thrSystemBusApiEntity.getThirdBuyCode()); + //查询单据类型,设置往来单位信息 + BasicBussinessTypeEntity basicBussinessTypeEntity = basicBussinessTypeDao.selectByAction(udiwmsOrderRequest.getBillType()); + if (basicBussinessTypeEntity.getCorpType().equals(Constants.CORP_HOSPTIAL)) { + //医院客户 + udiwmsOrderRequest.setCorpId(orderEntity.getFromCorp()); + //查询客户名称 + String corpName = basicCorpDao.selectNameByErpId(orderEntity.getFromCorp()); + udiwmsOrderRequest.setCorpName(corpName); + } else if (basicBussinessTypeEntity.getCorpType().equals(Constants.CORP_INTTERNAL)) { + //内部科室 + AuthWarehouseEntity warehouseEntity = authWarehouseDao.selectOne(new LambdaQueryWrapper().eq(AuthWarehouseEntity::getCode, udiwmsOrderRequest.getCorpId())); + try { + //根据第三方系统标识,获取对应字段的值 + ThrInvWarehouseEntity thrInvWarehouseEntity = thrInvWarehouseDao.selectOne(new LambdaQueryWrapper() + .eq(ThrInvWarehouseEntity::getCode, authWarehouseService.getThirdInvCode(warehouseEntity)) + .eq(ThrInvWarehouseEntity::getThirdSysFk, thirdSysConfig.getThirdId())); + udiwmsOrderRequest.setCorpId(thrInvWarehouseEntity.getCode()); + udiwmsOrderRequest.setCorpName(thrInvWarehouseEntity.getName()); + } catch (Exception e) { + String msg = "查询单据对应往来单位的第三方仓库信息异常"; + log.error(msg, e); + return ResultVOUtils.error(500, msg); + } + } else if (basicBussinessTypeEntity.getCorpType().equals(Constants.CORP_SP)) { + //供应商 + ThrCorpEntity thrCorp = thrCorpService.getThrCorp(udiwmsOrderRequest.getCorpId()); + if (null != thrCorp) { + udiwmsOrderRequest.setCorpId(thrCorp.getUnitId()); + udiwmsOrderRequest.setCorpName(thrCorp.getName()); + } else { + String msg = "查询单据对应的第三方往来单位信息异常"; + log.error(msg); + return ResultVOUtils.error(500, msg); + } + } + + //查询仓库信息 + AuthWarehouseEntity warehouseEntity = authWarehouseDao.selectOne(new LambdaQueryWrapper().eq(AuthWarehouseEntity::getCode, orderEntity.getInvCode())); + try { + ThrInvWarehouseEntity thrInvWarehouseEntity = thrInvWarehouseDao.selectOne(new LambdaQueryWrapper() + .eq(ThrInvWarehouseEntity::getCode, authWarehouseService.getThirdInvCode(warehouseEntity)) + .eq(ThrInvWarehouseEntity::getThirdSysFk, thirdSysConfig.getThirdId())); + + udiwmsOrderRequest.setLocInvCode(thrInvWarehouseEntity.getCode()); + udiwmsOrderRequest.setLocInvName(thrInvWarehouseEntity.getName()); + +// udiwmsOrderRequest.setLocStorageCode(thrInvWarehouseEntity.getCode()); +// udiwmsOrderRequest.setLocStorageName(thrInvWarehouseEntity.getName()); + } catch (Exception e) { + log.info("查询第三方系统仓库信息异常", e); + } + +// if (StrUtil.nullToEmpty(thrSystemBusApiEntity.getUrl()).equals("useOut")) { +// udiwmsOrderRequest.setCorpId(udiwmsOrderRequest.getLocStorageCode()); +// udiwmsOrderRequest.setCorpName(udiwmsOrderRequest.getLocStorageName()); +// +// ThrInvWarehouseEntity thrInvWarehouseEntity = thrInvWarehouseDao.selectOne(new LambdaQueryWrapper().eq(ThrInvWarehouseEntity::getCode, "29") +// .eq(ThrInvWarehouseEntity::getThirdSysFk, thirdSysConfig.getThirdId())); +// udiwmsOrderRequest.setLocStorageCode("29"); +// udiwmsOrderRequest.setLocStorageName(thrInvWarehouseEntity.getName()); +// } + + udiwmsOrderRequest.setBillFlag("1"); + //设置单据出入库类型 + if (basicBussinessTypeEntity.getMainAction().equals(ConstantType.TYPE_PUT)) { + udiwmsOrderRequest.setInoutType(1); //入库 + } else if (basicBussinessTypeEntity.getMainAction().equals(ConstantType.TYPE_OUT)) { + udiwmsOrderRequest.setInoutType(2); //出库 + } + + udiwmsOrderRequest.setRemark("udi管理系统提交单据"); + + //组装单据明细数据 + List ioCodeEntities = codeDao.selectList(new LambdaQueryWrapper() + .eq(IoCodeEntity::getOrderId, orderEntity.getBillNo()) + .ne(IoCodeEntity::getAction, "StockCheck") + ); + + List items = new ArrayList<>(); + //查询业务单据详情 + List detailBizEntities = orderDetailBizDao.selectList(new LambdaQueryWrapper().eq(IoOrderDetailBizEntity::getOrderIdFk, orderEntity.getBillNo())); + + + setOrderDetailList(ioCodeEntities, items, detailBizEntities); + + Collections.reverse(items); + + //云霄使用items字段,其他医院使用item字段 + udiwmsOrderRequest.setItem(items); + + return submitOrderUtil.submitOrder(orderEntity, udiwmsOrderRequest); + } + + /** + * 封装单据详情参数 + * + * @param ioCodeEntities 单据码明细 + * @param orderDetailRequests 单据详情参数 + * @param detailBizEntities 单据业务详情 + */ + private void setOrderDetailList(List ioCodeEntities, List orderDetailRequests, List detailBizEntities) { + for (IoOrderDetailBizEntity detailBizEntity : detailBizEntities) { + UdiwmsOrderDetailRequest item = submitOrderUtil.buildProductInfo(detailBizEntity); + //封装条码信息 + submitOrderUtil.setCodeList(ioCodeEntities, detailBizEntity, item); + orderDetailRequests.add(item); + } } - @Override - public BaseResponse getInvProducts(UdiwmsInvProductsRequest udiwmsInvProductsRequest) { - return null; - } - - @Override - public BaseResponse getWarehouse(UdiwmsWarehouseRequest udiwmsWarehouseRequest) { - return null; - } - - @Override - public BaseResponse testConnect() { - return ResultVOUtils.success(); - } - - @Override - public BaseResponse queryUdiInvProducts(UdiwmsQueryUdiInvProductsRequest queryUdiInvProductsRequest) { - return null; - } - - @Override - public BaseResponse submitProducts(UdiwmsAddProductsRequest udiwmsAddProductsRequest) { - return null; - } - - @Override - public BaseResponse submitUnit(UdiwmsAddUnitRequest udiwmsAddUnitRequest) { - return null; - } - - @Override - public BaseResponse submitPreInOrders(UdiwmsPreInOrderRequest udiwmsPreInOrderRequest) { - return null; - } - - @Override - public BaseResponse postProducts(PostThrProductsRequest postThrProductsRequest) { - postThrProductsRequest.setUploadType("文件导入"); - String response = httpClient.postUDIWMSJson(thirdSysConfig.getPostPiUrl(), postThrProductsRequest); - BaseResponse baseResponse = JSONObject.parseObject(response, BaseResponse.class); - return baseResponse; - } - - @Override - public BaseResponse postCorps(PostThrCorpRequest postThrCorpRequest) { - return null; - } - - @Override - public BaseResponse postOrderDetail(PostFileThrOrderRequest postFileThrOrderRequest) { - return null; - } - - @Override - public BaseResponse postInvProducts(PostThrInvProductsRequest postThrInvProductsRequest) { - return null; - } } diff --git a/src/main/java/com/glxp/mipsdl/client/ptxhyy/PtxhyyFileClient.java b/src/main/java/com/glxp/mipsdl/client/ptxhyy/PtxhyyFileClient.java index 0374ba1..6681cea 100644 --- a/src/main/java/com/glxp/mipsdl/client/ptxhyy/PtxhyyFileClient.java +++ b/src/main/java/com/glxp/mipsdl/client/ptxhyy/PtxhyyFileClient.java @@ -2,6 +2,7 @@ package com.glxp.mipsdl.client.ptxhyy; import cn.hutool.core.thread.ThreadUtil; import com.glxp.mipsdl.client.BaseFileClient; +import com.glxp.mipsdl.client.CommonFileClient; import com.glxp.mipsdl.req.post.PostThrProductsRequest; import com.glxp.mipsdl.res.BaseResponse; import com.glxp.mipsdl.res.udiwms.UdiwmsProductInfoResponse; @@ -24,7 +25,7 @@ import java.util.List; */ @Slf4j @Service(value = "100008FileClient") -public class PtxhyyFileClient implements BaseFileClient { +public class PtxhyyFileClient extends CommonFileClient { @Resource private UdiInfoUploadService udiInfoUploadService; @@ -60,19 +61,4 @@ public class PtxhyyFileClient implements BaseFileClient { } return ResultVOUtils.success("文件解析成功,正在上传,请稍后刷新查看"); } - - @Override - public BaseResponse uploadCorps(List files, String thirdSys) { - return null; - } - - @Override - public BaseResponse uploadInvPi(List files, String thirdSys) { - return null; - } - - @Override - public BaseResponse uploadOrders(List files, String thirdSys) { - return null; - } } diff --git a/src/main/java/com/glxp/mipsdl/client/ptxhyy/PtxhyyHisClient.java b/src/main/java/com/glxp/mipsdl/client/ptxhyy/PtxhyyHisClient.java index 42d51d3..8aa5feb 100644 --- a/src/main/java/com/glxp/mipsdl/client/ptxhyy/PtxhyyHisClient.java +++ b/src/main/java/com/glxp/mipsdl/client/ptxhyy/PtxhyyHisClient.java @@ -2,6 +2,7 @@ package com.glxp.mipsdl.client.ptxhyy; import com.alibaba.fastjson2.JSONObject; import com.glxp.mipsdl.client.BaseHttpClient; +import com.glxp.mipsdl.client.CommonHttpClient; import com.glxp.mipsdl.config.ThirdSysConfig; import com.glxp.mipsdl.http.HttpClient; import com.glxp.mipsdl.req.base.*; @@ -22,93 +23,16 @@ import javax.annotation.Resource; */ @Slf4j @Service(value = "100009HttpClient") -public class PtxhyyHisClient implements BaseHttpClient { +public class PtxhyyHisClient extends CommonHttpClient { @Resource private HttpClient httpClient; @Resource private ThirdSysConfig thirdSysConfig; - @Override - public BaseResponse getUnit(UdiwmsUnitRequest udiwmsUnitRequest) { - return null; - } - - @Override - public BaseResponse getProducts(UdiwmsProductRequest udiwmsProductRequest) { - return null; - } - - @Override - public BaseResponse getOrderTypes(UdiwmsBusTypeRequest udiwmsBusTypeRequest) { - return null; - } - - @Override - public BaseResponse getOrders(UdiwmsOrderQueryRequest udiwmsOrderQueryRequest) { - return null; - } - @Override public BaseResponse submitOrders(UdiwmsOrderRequest udiwmsOrderRequest) { return null; } - @Override - public BaseResponse getInvProducts(UdiwmsInvProductsRequest udiwmsInvProductsRequest) { - return null; - } - - @Override - public BaseResponse getWarehouse(UdiwmsWarehouseRequest udiwmsWarehouseRequest) { - return null; - } - - @Override - public BaseResponse testConnect() { - return ResultVOUtils.success(); - } - - @Override - public BaseResponse queryUdiInvProducts(UdiwmsQueryUdiInvProductsRequest queryUdiInvProductsRequest) { - return null; - } - - @Override - public BaseResponse submitProducts(UdiwmsAddProductsRequest udiwmsAddProductsRequest) { - return null; - } - - @Override - public BaseResponse submitUnit(UdiwmsAddUnitRequest udiwmsAddUnitRequest) { - return null; - } - - @Override - public BaseResponse submitPreInOrders(UdiwmsPreInOrderRequest udiwmsPreInOrderRequest) { - return null; - } - - @Override - public BaseResponse postProducts(PostThrProductsRequest postThrProductsRequest) { - postThrProductsRequest.setUploadType("文件导入"); - String response = httpClient.postUDIWMSJson(thirdSysConfig.getPostPiUrl(), postThrProductsRequest); - BaseResponse baseResponse = JSONObject.parseObject(response, BaseResponse.class); - return baseResponse; - } - - @Override - public BaseResponse postCorps(PostThrCorpRequest postThrCorpRequest) { - return null; - } - - @Override - public BaseResponse postOrderDetail(PostFileThrOrderRequest postFileThrOrderRequest) { - return null; - } - - @Override - public BaseResponse postInvProducts(PostThrInvProductsRequest postThrInvProductsRequest) { - return null; - } } diff --git a/src/main/java/com/glxp/mipsdl/client/ptxhyy/PtxhyyHisFileClient.java b/src/main/java/com/glxp/mipsdl/client/ptxhyy/PtxhyyHisFileClient.java index 5ad4363..f3cdb6e 100644 --- a/src/main/java/com/glxp/mipsdl/client/ptxhyy/PtxhyyHisFileClient.java +++ b/src/main/java/com/glxp/mipsdl/client/ptxhyy/PtxhyyHisFileClient.java @@ -2,6 +2,7 @@ package com.glxp.mipsdl.client.ptxhyy; import cn.hutool.core.thread.ThreadUtil; import com.glxp.mipsdl.client.BaseFileClient; +import com.glxp.mipsdl.client.CommonFileClient; import com.glxp.mipsdl.req.post.PostThrProductsRequest; import com.glxp.mipsdl.res.BaseResponse; import com.glxp.mipsdl.res.udiwms.UdiwmsProductInfoResponse; @@ -24,7 +25,7 @@ import java.util.List; */ @Slf4j @Service(value = "100009FileClient") -public class PtxhyyHisFileClient implements BaseFileClient { +public class PtxhyyHisFileClient extends CommonFileClient { @Resource private UdiInfoUploadService udiInfoUploadService; @@ -60,19 +61,4 @@ public class PtxhyyHisFileClient implements BaseFileClient { } return ResultVOUtils.success("文件解析成功,正在上传,请稍后刷新查看"); } - - @Override - public BaseResponse uploadCorps(List files, String thirdSys) { - return null; - } - - @Override - public BaseResponse uploadInvPi(List files, String thirdSys) { - return null; - } - - @Override - public BaseResponse uploadOrders(List files, String thirdSys) { - return null; - } } diff --git a/src/main/java/com/glxp/mipsdl/client/yxzyy/YxzyyClient.java b/src/main/java/com/glxp/mipsdl/client/yxzyy/YxzyyClient.java index d4a8674..00fde7d 100644 --- a/src/main/java/com/glxp/mipsdl/client/yxzyy/YxzyyClient.java +++ b/src/main/java/com/glxp/mipsdl/client/yxzyy/YxzyyClient.java @@ -3,6 +3,7 @@ package com.glxp.mipsdl.client.yxzyy; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson2.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.glxp.mipsdl.client.BaseHttpClient; import com.glxp.mipsdl.config.ThirdSysConfig; @@ -139,11 +140,11 @@ public class YxzyyClient implements BaseHttpClient { BeanUtil.copyProperties(udiwmsOrderRequest, dsOrderRequest); //查询单据和详情信息,组装第三方系统接口参数 - IoOrderEntity orderEntity = orderDao.selectOne(new QueryWrapper().eq("billNo", udiwmsOrderRequest.getBillNo())); + IoOrderEntity orderEntity = orderDao.selectOne(new LambdaQueryWrapper().eq(IoOrderEntity::getBillNo, udiwmsOrderRequest.getBillNo())); dsOrderRequest.setBillDate(DateUtil.formatDateTime(orderEntity.getCreateTime())); //查询对应的第三方单据类型 - ThrSystemBusApiEntity thrSystemBusApiEntity = thrSystemBusApiDao.selectOne(new QueryWrapper().eq("code", udiwmsOrderRequest.getBillType())); + ThrSystemBusApiEntity thrSystemBusApiEntity = thrSystemBusApiDao.selectOne(new LambdaQueryWrapper().eq(ThrSystemBusApiEntity::getCode, udiwmsOrderRequest.getBillType())); if (StrUtil.isBlank(thrSystemBusApiEntity.getUrl())) { return ResultVOUtils.error(500, "接口未配置,无法提交!"); } @@ -160,12 +161,12 @@ public class YxzyyClient implements BaseHttpClient { dsOrderRequest.setCorpName(corpName); } else if (basicBussinessTypeEntity.getCorpType().equals(Constants.CORP_INTTERNAL)) { //内部科室 - AuthWarehouseEntity warehouseEntity = authWarehouseDao.selectOne(new QueryWrapper().eq("code", udiwmsOrderRequest.getCorpId())); + AuthWarehouseEntity warehouseEntity = authWarehouseDao.selectOne(new LambdaQueryWrapper().eq(AuthWarehouseEntity::getCode, udiwmsOrderRequest.getCorpId())); try { //根据第三方系统标识,获取对应字段的值 - ThrInvWarehouseEntity thrInvWarehouseEntity = thrInvWarehouseDao.selectOne(new QueryWrapper() - .eq("code", authWarehouseService.getThirdInvCode(warehouseEntity)) - .eq("thirdSys", thirdSysConfig.getThirdId())); + ThrInvWarehouseEntity thrInvWarehouseEntity = thrInvWarehouseDao.selectOne(new LambdaQueryWrapper() + .eq(ThrInvWarehouseEntity::getCode, authWarehouseService.getThirdInvCode(warehouseEntity)) + .eq(ThrInvWarehouseEntity::getThirdSysFk, thirdSysConfig.getThirdId())); dsOrderRequest.setCorpId(thrInvWarehouseEntity.getCode()); dsOrderRequest.setCorpName(thrInvWarehouseEntity.getName()); @@ -184,11 +185,11 @@ public class YxzyyClient implements BaseHttpClient { } //查询仓库信息 - AuthWarehouseEntity warehouseEntity = authWarehouseDao.selectOne(new QueryWrapper().eq("code", orderEntity.getInvCode())); + AuthWarehouseEntity warehouseEntity = authWarehouseDao.selectOne(new LambdaQueryWrapper().eq(AuthWarehouseEntity::getCode, orderEntity.getInvCode())); try { - ThrInvWarehouseEntity thrInvWarehouseEntity = thrInvWarehouseDao.selectOne(new QueryWrapper() - .eq("code", authWarehouseService.getThirdInvCode(warehouseEntity)) - .eq("thirdSys", thirdSysConfig.getThirdId())); + ThrInvWarehouseEntity thrInvWarehouseEntity = thrInvWarehouseDao.selectOne(new LambdaQueryWrapper() + .eq(ThrInvWarehouseEntity::getCode, authWarehouseService.getThirdInvCode(warehouseEntity)) + .eq(ThrInvWarehouseEntity::getThirdSysFk, thirdSysConfig.getThirdId())); dsOrderRequest.setLocInvCode(thrInvWarehouseEntity.getCode()); dsOrderRequest.setLocInvName(thrInvWarehouseEntity.getName()); @@ -203,7 +204,8 @@ public class YxzyyClient implements BaseHttpClient { dsOrderRequest.setCorpId(dsOrderRequest.getLocStorageCode()); dsOrderRequest.setCorpName(dsOrderRequest.getLocStorageName()); - ThrInvWarehouseEntity thrInvWarehouseEntity = thrInvWarehouseDao.selectOne(new QueryWrapper().eq("code", "29").eq("thirdSysFk", thirdSysConfig.getThirdId())); + ThrInvWarehouseEntity thrInvWarehouseEntity = thrInvWarehouseDao.selectOne(new LambdaQueryWrapper().eq(ThrInvWarehouseEntity::getCode, "29") + .eq(ThrInvWarehouseEntity::getThirdSysFk, thirdSysConfig.getThirdId())); dsOrderRequest.setLocStorageCode("29"); dsOrderRequest.setLocStorageName(thrInvWarehouseEntity.getName()); } @@ -219,14 +221,14 @@ public class YxzyyClient implements BaseHttpClient { dsOrderRequest.setRemark("udi管理系统提交单据"); //组装单据明细数据 - List ioCodeEntities = codeDao.selectList(new QueryWrapper() - .eq("orderId", orderEntity.getBillNo()) - .ne("action", "StockCheck") + List ioCodeEntities = codeDao.selectList(new LambdaQueryWrapper() + .eq(IoCodeEntity::getOrderId, orderEntity.getBillNo()) + .ne(IoCodeEntity::getAction, "StockCheck") ); List items = new ArrayList<>(); //查询业务单据详情 - List detailBizEntities = orderDetailBizDao.selectList(new QueryWrapper().eq("orderIdFk", orderEntity.getBillNo())); + List detailBizEntities = orderDetailBizDao.selectList(new LambdaQueryWrapper().eq(IoOrderDetailBizEntity::getOrderIdFk, orderEntity.getBillNo())); setOrderDetailList(ioCodeEntities, items, detailBizEntities); diff --git a/src/main/java/com/glxp/mipsdl/client/zaxyy/ZaxyyClient.java b/src/main/java/com/glxp/mipsdl/client/zaxyy/ZaxyyClient.java index 2acbf4e..468362f 100644 --- a/src/main/java/com/glxp/mipsdl/client/zaxyy/ZaxyyClient.java +++ b/src/main/java/com/glxp/mipsdl/client/zaxyy/ZaxyyClient.java @@ -5,6 +5,7 @@ import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.StrUtil; import cn.hutool.json.JSONUtil; import com.alibaba.fastjson2.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.glxp.mipsdl.client.BaseHttpClient; import com.glxp.mipsdl.config.ThirdSysConfig; @@ -237,9 +238,9 @@ public class ZaxyyClient implements BaseHttpClient { AuthWarehouseEntity warehouseEntity = authWarehouseDao.selectOne(new QueryWrapper().eq("code", udiwmsOrderRequest.getCorpId())); try { //根据第三方系统标识,获取对应字段的值 - ThrInvWarehouseEntity thrInvWarehouseEntity = thrInvWarehouseDao.selectOne(new QueryWrapper() - .eq("code", authWarehouseService.getThirdInvCode(warehouseEntity)) - .eq("thirdSys", thirdSysConfig.getThirdId())); + ThrInvWarehouseEntity thrInvWarehouseEntity = thrInvWarehouseDao.selectOne(new LambdaQueryWrapper() + .eq(ThrInvWarehouseEntity::getCode, authWarehouseService.getThirdInvCode(warehouseEntity)) + .eq(ThrInvWarehouseEntity::getThirdSysFk, thirdSysConfig.getThirdId())); zaxzyyOrderRequest.setCorpId(thrInvWarehouseEntity.getCode()); zaxzyyOrderRequest.setCorpName(thrInvWarehouseEntity.getName()); @@ -260,9 +261,9 @@ public class ZaxyyClient implements BaseHttpClient { //查询仓库信息 AuthWarehouseEntity warehouseEntity = authWarehouseDao.selectOne(new QueryWrapper().eq("code", orderEntity.getInvCode())); try { - ThrInvWarehouseEntity thrInvWarehouseEntity = thrInvWarehouseDao.selectOne(new QueryWrapper() - .eq("code", authWarehouseService.getThirdInvCode(warehouseEntity)) - .eq("thirdSys", thirdSysConfig.getThirdId())); + ThrInvWarehouseEntity thrInvWarehouseEntity = thrInvWarehouseDao.selectOne(new LambdaQueryWrapper() + .eq(ThrInvWarehouseEntity::getCode, authWarehouseService.getThirdInvCode(warehouseEntity)) + .eq(ThrInvWarehouseEntity::getThirdSysFk, thirdSysConfig.getThirdId())); zaxzyyOrderRequest.setLocInvCode(thrInvWarehouseEntity.getCode()); zaxzyyOrderRequest.setLocInvName(thrInvWarehouseEntity.getName()); diff --git a/src/main/java/com/glxp/mipsdl/config/HospConfig.java b/src/main/java/com/glxp/mipsdl/config/HospConfig.java index fe02f81..e7e9579 100644 --- a/src/main/java/com/glxp/mipsdl/config/HospConfig.java +++ b/src/main/java/com/glxp/mipsdl/config/HospConfig.java @@ -42,7 +42,7 @@ public class HospConfig { public SysHospConfigEntity getHospConfig() { if (null == hospConfig) { log.info("系统启动中,获取医院编码"); - SysHospConfigEntity sysHospConfig = hospConfigDao.selectOne(new QueryWrapper().eq("thirdSys", thirdSys)); + SysHospConfigEntity sysHospConfig = hospConfigDao.selectOne(new LambdaQueryWrapper().eq(SysHospConfigEntity::getThirdSys, thirdSys)); if (null != sysHospConfig) { hospConfig = sysHospConfig; DictUtl.CURRENT_HOSP_CODE = hospConfig.getCode(); diff --git a/src/main/java/com/glxp/mipsdl/entity/basic/BasicBussinessTypeEntity.java b/src/main/java/com/glxp/mipsdl/entity/basic/BasicBussinessTypeEntity.java index 18112f7..3bdd905 100644 --- a/src/main/java/com/glxp/mipsdl/entity/basic/BasicBussinessTypeEntity.java +++ b/src/main/java/com/glxp/mipsdl/entity/basic/BasicBussinessTypeEntity.java @@ -169,7 +169,7 @@ public class BasicBussinessTypeEntity { * 往来单位类型 */ @TableField(value = "corpType") - private Boolean corpType; + private Integer corpType; /** * 补单扫码单据类型 diff --git a/src/main/java/com/glxp/mipsdl/entity/thrsys/ThrInvWarehouseEntity.java b/src/main/java/com/glxp/mipsdl/entity/thrsys/ThrInvWarehouseEntity.java index 7aadce2..18ba926 100644 --- a/src/main/java/com/glxp/mipsdl/entity/thrsys/ThrInvWarehouseEntity.java +++ b/src/main/java/com/glxp/mipsdl/entity/thrsys/ThrInvWarehouseEntity.java @@ -1,11 +1,11 @@ package com.glxp.mipsdl.entity.thrsys; -import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; -import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; +import java.util.Date; + @Data @TableName(value = "thr_inv_warehouse") public class ThrInvWarehouseEntity { @@ -27,4 +27,7 @@ public class ThrInvWarehouseEntity { @TableField(value = "thirdSysFk") private String thirdSysFk; + @TableField(value = "updateTime") + private Date updateTime; + } \ No newline at end of file diff --git a/src/main/java/com/glxp/mipsdl/service/thrsys/ThrProductService.java b/src/main/java/com/glxp/mipsdl/service/thrsys/ThrProductService.java index 1da275d..c0b6150 100644 --- a/src/main/java/com/glxp/mipsdl/service/thrsys/ThrProductService.java +++ b/src/main/java/com/glxp/mipsdl/service/thrsys/ThrProductService.java @@ -2,6 +2,7 @@ package com.glxp.mipsdl.service.thrsys; import cn.hutool.core.util.ReflectUtil; import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.glxp.mipsdl.config.ThirdSysConfig; import com.glxp.mipsdl.dao.basic.BasicUdirelDao; @@ -35,14 +36,14 @@ public class ThrProductService { */ private ThrProductsEntity getThrProduct(String relId) { if (StrUtil.isNotBlank(relId)) { - BasicUdirelEntity basicUdirelEntity = basicUdirelDao.selectOne(new QueryWrapper().eq("id", relId)); + BasicUdirelEntity basicUdirelEntity = basicUdirelDao.selectOne(new LambdaQueryWrapper().eq(BasicUdirelEntity::getId, relId)); if (null != basicUdirelEntity) { try { String code = (String) ReflectUtil.getFieldValue(basicUdirelEntity, basicUdirelEntity.getClass().getField(thirdSysConfig.getThirdId())); if (StrUtil.isBlank(code)) { log.error("第三方产品信息未关联,查询失败,产品编码:{}", relId); } else { - ThrProductsEntity thrProductsEntity = thrProductsDao.selectOne(new QueryWrapper().eq("code", code)); + ThrProductsEntity thrProductsEntity = thrProductsDao.selectOne(new LambdaQueryWrapper().eq(ThrProductsEntity::getCode, code)); log.info("查询第三方系统产品信息成功,产品编码:{},产品名称:{},UDI管理系统产品编码:{}", thrProductsEntity.getCode(), thrProductsEntity.getName(), relId); return thrProductsEntity; } diff --git a/src/main/java/com/glxp/mipsdl/util/DateUtil.java b/src/main/java/com/glxp/mipsdl/util/DateUtil.java index c04f50c..b2769f4 100644 --- a/src/main/java/com/glxp/mipsdl/util/DateUtil.java +++ b/src/main/java/com/glxp/mipsdl/util/DateUtil.java @@ -57,7 +57,7 @@ public class DateUtil { * 得到日期时间字符串,转换格式(yyyy-MM-dd HH:mm:ss) */ public static String formatDateTime(Date date) { - Date currentTime = new Date(); + Date currentTime = date; SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String dateString = formatter.format(currentTime); return dateString;