From 9e75867541d0cdcb7758f3f28a3b449aea9278ee Mon Sep 17 00:00:00 2001 From: chenhc <2369838784@qq.com> Date: Tue, 5 Mar 2024 15:55:01 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E4=B8=89=E6=96=B9=E5=87=BA=E5=85=A5?= =?UTF-8?q?=E5=BA=93=E6=98=8E=E7=BB=86=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../glxp/api/controller/TestController.java | 17 +++ .../api/entity/thrsys/ThrInvOrderDetail.java | 10 ++ .../java/com/glxp/api/http/ErpInvClient.java | 4 +- .../thrsys/impl/ThrInvOrderServiceImpl.java | 108 +++++++++++++++++- .../mapper/thrsys/ThrInvOrderDetailMapper.xml | 31 ++++- src/main/resources/schemas/schema_v2.4.sql | 4 +- 6 files changed, 162 insertions(+), 12 deletions(-) diff --git a/src/main/java/com/glxp/api/controller/TestController.java b/src/main/java/com/glxp/api/controller/TestController.java index 4630b763f..fc72cd991 100644 --- a/src/main/java/com/glxp/api/controller/TestController.java +++ b/src/main/java/com/glxp/api/controller/TestController.java @@ -80,5 +80,22 @@ public class TestController { return ResultVOUtils.success(""); } + @GetMapping("/test/downloadInvGhOrder") + public BaseResponse downloadInvGhOrder() { + ThrSystemDetailEntity thrSystemDetailEntity = new ThrSystemDetailEntity(); + thrSystemDetailEntity.setThirdSysFk("thirdId"); + thrInvOrderService.downloadInvGhOrder(thrSystemDetailEntity); + + return ResultVOUtils.success(""); + } + + @GetMapping("/test/downloadInvPhOrder") + public BaseResponse downloadInvPhOrder() { + ThrSystemDetailEntity thrSystemDetailEntity = new ThrSystemDetailEntity(); + thrSystemDetailEntity.setThirdSysFk("thirdId"); + thrInvOrderService.downloadInvPhOrder(thrSystemDetailEntity); + return ResultVOUtils.success(""); + } + } diff --git a/src/main/java/com/glxp/api/entity/thrsys/ThrInvOrderDetail.java b/src/main/java/com/glxp/api/entity/thrsys/ThrInvOrderDetail.java index c158ea444..083a990ab 100644 --- a/src/main/java/com/glxp/api/entity/thrsys/ThrInvOrderDetail.java +++ b/src/main/java/com/glxp/api/entity/thrsys/ThrInvOrderDetail.java @@ -159,6 +159,16 @@ public class ThrInvOrderDetail implements Serializable { */ private String serialNo; + /** + * 患者编码 + */ + private String sickerCode; + + /** + * 患者名称 + */ + private String sickerName; + private static final long serialVersionUID = 1L; diff --git a/src/main/java/com/glxp/api/http/ErpInvClient.java b/src/main/java/com/glxp/api/http/ErpInvClient.java index 6b8121707..1347fd3a7 100644 --- a/src/main/java/com/glxp/api/http/ErpInvClient.java +++ b/src/main/java/com/glxp/api/http/ErpInvClient.java @@ -81,7 +81,7 @@ public class ErpInvClient { public BaseResponse> getInvSfResult(FilterInvProductRequest invProductRequest) { ThrSystemEntity basicThirdSysEntity = basicThirdSysService.selectByThirdId(invProductRequest.getThirdSys()); // String url = basicThirdSysEntity.getThridUrl() + invProductRequest.getThirdSysUrlValue(); - String url = "http://192.168.0.166:9997/udiwms/erp/inv/getInvResult"; + String url = "http://192.168.0.166:9997/udiwms/erp/inv/getInvFeeResult"; try { String response = httpOkClient.uCloudPost(url, invProductRequest); BaseResponse> listBaseResponse = @@ -113,7 +113,7 @@ public class ErpInvClient { public BaseResponse> getInvGhResult(FilterInvProductRequest invProductRequest) { ThrSystemEntity basicThirdSysEntity = basicThirdSysService.selectByThirdId(invProductRequest.getThirdSys()); // String url = basicThirdSysEntity.getThridUrl() + invProductRequest.getThirdSysUrlValue(); - String url = "http://192.168.0.166:9997/udiwms/erp/inv/getInvResult"; + String url = "http://192.168.0.166:9997/udiwms/erp/inv/getInvCodeResult"; try { String response = httpOkClient.uCloudPost(url, invProductRequest); BaseResponse> listBaseResponse = diff --git a/src/main/java/com/glxp/api/service/thrsys/impl/ThrInvOrderServiceImpl.java b/src/main/java/com/glxp/api/service/thrsys/impl/ThrInvOrderServiceImpl.java index 3ff3d2fe1..942003e6c 100644 --- a/src/main/java/com/glxp/api/service/thrsys/impl/ThrInvOrderServiceImpl.java +++ b/src/main/java/com/glxp/api/service/thrsys/impl/ThrInvOrderServiceImpl.java @@ -13,12 +13,14 @@ import com.glxp.api.constant.Constant; import com.glxp.api.constant.ConstantStatus; import com.glxp.api.constant.ConstantType; import com.glxp.api.dao.basic.UdiRelevanceDao; +import com.glxp.api.dao.inout.IoCodeTempDao; import com.glxp.api.dao.thrsys.ThrInvOrderDetailMapper; import com.glxp.api.dao.thrsys.ThrInvOrderMapper; import com.glxp.api.entity.basic.BasicProductsEntity; import com.glxp.api.entity.basic.BasicSkProjectDetailEntity; import com.glxp.api.entity.basic.UdiEntity; import com.glxp.api.entity.basic.UdiRelevanceEntity; +import com.glxp.api.entity.inout.IoCodeTempEntity; import com.glxp.api.entity.inout.IoOrderDetailBizEntity; import com.glxp.api.entity.inout.IoOrderEntity; import com.glxp.api.entity.system.SystemParamConfigEntity; @@ -88,6 +90,8 @@ public class ThrInvOrderServiceImpl implements ThrInvOrderService { IoAddInoutService ioAddInoutService; @Resource UdiRelevanceService udiRelevanceService; + @Resource + IoCodeTempDao ioCodeTempDao; // 设置要输出的日期格式 @@ -208,6 +212,26 @@ public class ThrInvOrderServiceImpl implements ThrInvOrderService { thrInvOrderDetails.add(thrInvOrderDetail); } else { + String mainAction = item.getMainAction(); + String thrCode = item.getThrCode(); + Integer count; + if (ConstantType.TYPE_PUT.equals(mainAction)) { + count = Integer.valueOf(item.getInCount()); + } else { + count = Integer.valueOf(item.getOutCount()); + } + BeanUtils.copyProperties(item, thrInvOrderDetail); + thrInvOrderDetail.setOrderIdFk(billNo); + thrInvOrderDetail.setNameCode(nameCode); + thrInvOrderDetail.setUdiCode(udiCode); + thrInvOrderDetail.setThrCode(thrCode); + thrInvOrderDetail.setReCount(String.valueOf(count)); + thrInvOrderDetail.setBatchNo(udiEntity.getBatchNo()); + thrInvOrderDetail.setProductionDate(udiEntity.getProduceDate()); + thrInvOrderDetail.setExpireDate(udiEntity.getExpireDate()); + thrInvOrderDetail.setSerialNo(udiEntity.getSerialNo()); + + thrInvOrderDetails.add(thrInvOrderDetail); exmsg.append(udiCode + ","); } }); @@ -216,7 +240,7 @@ public class ThrInvOrderServiceImpl implements ThrInvOrderService { exmsg.deleteCharAt(exmsg.length() - 1); exmsg.insert(0, "以下UDI码未匹配成功:"); thrInvOrder.setExMsg(String.valueOf(exmsg)); - }else { + } else { thrInvOrder.setExMsg(""); } @@ -337,8 +361,6 @@ public class ThrInvOrderServiceImpl implements ThrInvOrderService { ioOrderService.insertOrder(ioOrderEntity); thrInvOrder.setStatus(ConstantStatus.SFIO_CFMD);//已确认 thrInvOrder.setUpdateTime(new Date()); - thrInvOrder.setCreateTime(new Date()); - thrInvOrder.setCreateUser(userId + ""); thrInvOrder.setUpdateUser(userId + ""); thrInvOrderMapper.updateByPrimaryKey(thrInvOrder); ioOrderDetailBizService.batchInsertBizs(newOrderDetailBiz); @@ -351,9 +373,59 @@ public class ThrInvOrderServiceImpl implements ThrInvOrderService { @Override public boolean generateGhOrder(GenerateOrderRequest generateOrderRequest) { String billNo = generateOrderRequest.getBillNo(); - // TODO: 2024/3/5 + //通过单号获取单据信息 + QueryWrapper qw = new QueryWrapper<>(); + qw.eq("billNo", billNo); + ThrInvOrder thrInvOrder = thrInvOrderMapper.selectOne(qw); + if (Objects.isNull(thrInvOrder)) return false; + + //通过单号获取单据明细信息 + QueryWrapper qwd = new QueryWrapper<>(); + qwd.eq("orderIdFk", billNo); + List thrInvOrderDetails = thrInvOrderDetailMapper.selectList(qwd); + if (CollectionUtil.isEmpty(thrInvOrderDetails)) return false; + + //校验单据的relId有null不生成单据 + if (!inspectionDocuments(thrInvOrderDetails)) return false; + + //新单号 + String newBillNo = gennerOrderUtils.createScOrderNo(new OrderNoTypeBean(Constant.SCAN_ORDER, "yyyyMMdd")); + IoOrderEntity ioOrderEntity = new IoOrderEntity(); + ioOrderEntity.setBillNo(newBillNo); + ioOrderEntity.setMainAction(thrInvOrder.getMainAction()); + ioOrderEntity.setFromCorp(generateOrderRequest.getFromCorp()); + ioOrderEntity.setInvCode(thrInvOrder.getInvCode()); + ioOrderEntity.setDeptCode(thrInvOrder.getDeptCode()); + ioOrderEntity.setAction(generateOrderRequest.getAction()); + + ioOrderEntity.setFromType(ConstantStatus.FROM_WEBNEW);//网页新增 + ioOrderEntity.setStatus(ConstantStatus.ORDER_STATUS_TEMP_SAVE);//草稿 + ioOrderEntity.setDealStatus(ConstantStatus.ORDER_DEAL_DRAFT);//草稿 + ioOrderEntity.setCorpOrderId(billNo);//单据号 + ioOrderEntity.setUpdateTime(new Date()); + ioOrderEntity.setCreateTime(new Date()); + Long userId = customerService.getUserId(); + ioOrderEntity.setCreateUser(userId + ""); + ioOrderEntity.setUpdateUser(userId + ""); + ioOrderEntity.setOrderType(ConstantStatus.ORDER_TYPE_NORMAL);//正常单据处理 + + List newIoCodeTemps = new ArrayList<>(thrInvOrderDetails.size()); + if (!copyIoCodeTemps(thrInvOrderDetails, newIoCodeTemps, newBillNo,generateOrderRequest)) { + return false; + } + + ioOrderService.insertOrder(ioOrderEntity); + thrInvOrder.setStatus(ConstantStatus.SFIO_CFMD);//已确认 + thrInvOrder.setUpdateTime(new Date()); + thrInvOrder.setUpdateUser(userId + ""); + thrInvOrderMapper.updateByPrimaryKey(thrInvOrder); + ioCodeTempDao.insertBatch(newIoCodeTemps); + + + ioAddInoutService.dealProcess(ioOrderEntity); return true; } + @Override public boolean refreshOrder(RefreshOrderRequest refreshOrderRequest) { String billNo = refreshOrderRequest.getBillNo(); @@ -500,7 +572,7 @@ public class ThrInvOrderServiceImpl implements ThrInvOrderService { exmsg.deleteCharAt(exmsg.length() - 1); exmsg.insert(0, "以下UDI码未匹配成功:"); thrInvOrder.setExMsg(String.valueOf(exmsg)); - }else { + } else { thrInvOrder.setExMsg(""); } @@ -553,6 +625,32 @@ public class ThrInvOrderServiceImpl implements ThrInvOrderService { return true; } + /** + * + * @param thrInvOrderDetails + * @param newIoCodeTemps + * @param newBillNo + * @return + */ + private boolean copyIoCodeTemps(List thrInvOrderDetails, List newIoCodeTemps, String newBillNo,GenerateOrderRequest generateOrderRequest) { + + thrInvOrderDetails.forEach( item -> { + IoCodeTempEntity ioCodeTempEntity = new IoCodeTempEntity(); + ioCodeTempEntity.setId(null); + ioCodeTempEntity.setCode(item.getUdiCode()); + ioCodeTempEntity.setOrderId(newBillNo); + ioCodeTempEntity.setAction(generateOrderRequest.getAction()); + BeanUtils.copyProperties(item,ioCodeTempEntity); + + ioCodeTempEntity.setUpdateTime(new Date()); + ioCodeTempEntity.setCreateTime(new Date()); + + newIoCodeTemps.add(ioCodeTempEntity); + }); + + return true; + } + /** * 实体参数包装 * diff --git a/src/main/resources/mybatis/mapper/thrsys/ThrInvOrderDetailMapper.xml b/src/main/resources/mybatis/mapper/thrsys/ThrInvOrderDetailMapper.xml index f351ffc51..1671d93f2 100644 --- a/src/main/resources/mybatis/mapper/thrsys/ThrInvOrderDetailMapper.xml +++ b/src/main/resources/mybatis/mapper/thrsys/ThrInvOrderDetailMapper.xml @@ -33,13 +33,15 @@ + + id, orderIdFk, cpmctymc, relId, thrCode, nameCode, ggxh, batchNo, measname, price, productionDate, expireDate, ylqxzcrbarmc, zczbhhzbapzbh, inCount, outCount, supName, deptName, deptCode, invName, invCode, spaceCode, spaceName, reCount, mainAction, - manufacturer, remark,udiCode,serialNo + manufacturer, remark,udiCode,serialNo,sickerCode,sickerName