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 1d2d7498c..3ec47fb9d 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 @@ -40,6 +40,7 @@ import com.glxp.api.service.basic.UdiRelevanceService; import com.glxp.api.service.basic.UdiRlSupService; import com.glxp.api.service.basic.impl.BasicDestinyRelService; import com.glxp.api.service.inout.IoAddInoutService; +import com.glxp.api.service.inout.IoCheckInoutService; import com.glxp.api.service.inout.IoOrderDetailBizService; import com.glxp.api.service.inout.IoOrderService; import com.glxp.api.service.system.SystemParamConfigService; @@ -91,6 +92,8 @@ public class ThrInvOrderServiceImpl implements ThrInvOrderService { @Resource IoAddInoutService ioAddInoutService; @Resource + IoCheckInoutService ioCheckInoutService; + @Resource UdiRelevanceService udiRelevanceService; @Resource IoCodeTempDao ioCodeTempDao; @@ -179,20 +182,38 @@ public class ThrInvOrderServiceImpl implements ThrInvOrderService { if (baseResponse.getCode() == 20000) { List list = baseResponse.getData().getList(); if (CollectionUtil.isNotEmpty(list)) { - String billNo = generateBillNo(filterInvProductRequest);//单据号 - //处理 返回实体 转换成 单据 和 单据明细 - ThrInvOrder thrInvOrder = new ThrInvOrder(); - List thrInvOrderDetails = new ArrayList<>(); - String thirdSys = filterInvProductRequest.getThirdSys(); - handleExternalConvertThrInvGhOrderDetail(list, thrInvOrderDetails, billNo, thirdSys, thrInvOrder); - if (CollectionUtil.isNotEmpty(thrInvOrderDetails)) { - handleExternalConvertThrInvOrder(billNo, filterInvProductRequest, thrInvOrder, list.get(0), Constant.THR_INV_GH_ORDER_TYPE); + //根据患者分组过滤 + Map> groupedByInv = list.stream() + .collect(Collectors.groupingBy(ThrInvResultResponse::getSickerCode)); + groupedByInv.forEach((invCode, invResultResponses) -> { + String billNo = generateBillNo(filterInvProductRequest);//单据号 + ThrInvOrder thrInvOrder = new ThrInvOrder(); + List thrInvOrderDetails = new ArrayList<>(); + String thirdSys = filterInvProductRequest.getThirdSys(); + handleExternalConvertThrInvGhOrderDetail(invResultResponses, thrInvOrderDetails, billNo, thirdSys, thrInvOrder); - //保存数据 - thrInvOrderMapper.insert(thrInvOrder); - thrInvOrderDetailMapper.insertBatch(thrInvOrderDetails); - } + if (CollectionUtil.isNotEmpty(thrInvOrderDetails)) { + handleExternalConvertThrInvOrder(billNo, filterInvProductRequest, thrInvOrder, invResultResponses.get(0), Constant.THR_INV_GH_ORDER_TYPE); + + //保存数据 + thrInvOrderMapper.insert(thrInvOrder); + thrInvOrderDetailMapper.insertBatch(thrInvOrderDetails); + + //是否自动生成出入库单据 + if (IntUtil.value(systemParamConfigService.selectValueByParamKey("gh_out_auto_gen")) > 0) { + GenerateOrderRequest generateOrderRequest = new GenerateOrderRequest(); + generateOrderRequest.setBillNo(thrInvOrder.getBillNo()); + generateOrderRequest.setAction(thrInvOrder.getBillType()); +// generateOrderRequest.setFromCorp(thrInvOrder.getFromCorp()); + generateGhOrder(generateOrderRequest); + + + } + } + + } + ); } } } @@ -220,7 +241,6 @@ public class ThrInvOrderServiceImpl implements ThrInvOrderService { String thrCode = item.getThrCode(); - Long relId = basicProductsEntity.getId(); Integer count; if (ConstantType.TYPE_PUT.equals(mainAction)) { @@ -483,6 +503,7 @@ public class ThrInvOrderServiceImpl implements ThrInvOrderService { ioOrderEntity.setCorpOrderId(billNo);//单据号 ioOrderEntity.setUpdateTime(new Date()); ioOrderEntity.setCreateTime(new Date()); + ioOrderEntity.setCustomerId("110"); Long userId = customerService.getUserId(); ioOrderEntity.setCreateUser(userId + ""); ioOrderEntity.setUpdateUser(userId + ""); @@ -490,10 +511,10 @@ public class ThrInvOrderServiceImpl implements ThrInvOrderService { List newIoCodeTemps = new ArrayList<>(thrInvOrderDetails.size()); - //码校验 - if (!checkIoCodeTemps(thrInvOrderDetails)) { - return false; - } + //码校验,提交时统一校验 +// if (!checkIoCodeTemps(thrInvOrderDetails)) { +// return false; +// } if (!copyIoCodeTemps(entry.getValue(), newIoCodeTemps, newBillNo, generateOrderRequest)) { return false; @@ -508,10 +529,12 @@ public class ThrInvOrderServiceImpl implements ThrInvOrderService { for (IoCodeTempEntity codeTempEntity : newIoCodeTemps) { addInoutService.genOrderDetailCode(ioOrderEntity, codeTempEntity); } + ioAddInoutService.dealProcess(ioOrderEntity); + if (!ioCheckInoutService.checkManual(ioOrderEntity.getBillNo())) { + ioCheckInoutService.check(ioOrderEntity.getBillNo()); + } } - -// ioAddInoutService.dealProcess(ioOrderEntity); return true; } diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml index b2df4abe2..eff144325 100644 --- a/src/main/resources/application-dev.yml +++ b/src/main/resources/application-dev.yml @@ -4,7 +4,7 @@ server: spring: datasource: driver-class-name: com.p6spy.engine.spy.P6SpyDriver - jdbc-url: jdbc:p6spy:mysql://127.0.0.1:3306/udi_wms_pt?allowMultiQueries=true&serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowPublicKeyRetrieval=true + jdbc-url: jdbc:p6spy:mysql://127.0.0.1:3306/udi_wms_ct?allowMultiQueries=true&serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowPublicKeyRetrieval=true username: root password: 123456 hikari: diff --git a/src/main/resources/application-pro.yml b/src/main/resources/application-pro.yml index 96a3422e5..05ae88f58 100644 --- a/src/main/resources/application-pro.yml +++ b/src/main/resources/application-pro.yml @@ -3,7 +3,7 @@ server: spring: datasource: driver-class-name: com.mysql.cj.jdbc.Driver - jdbc-url: jdbc:mysql://192.168.0.166:3306/udi_wms_pt?allowMultiQueries=true&serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowPublicKeyRetrieval=true + jdbc-url: jdbc:mysql://192.168.0.166:3306/udi_wms_ct?allowMultiQueries=true&serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowPublicKeyRetrieval=true username: root password: 123456 hikari: diff --git a/src/main/resources/schemas/schema_v2.4.sql b/src/main/resources/schemas/schema_v2.4.sql index 1781f8b2d..94657d646 100644 --- a/src/main/resources/schemas/schema_v2.4.sql +++ b/src/main/resources/schemas/schema_v2.4.sql @@ -1105,6 +1105,9 @@ VALUES (200322, 0, '收费出库是否过滤一对多', 'fee_out_filter_cp', '0' INSERT IGNORE INTO `sys_param_config`(`id`, `parentId`, `paramName`, `paramKey`, `paramValue`, `paramStatus`, `paramType`, `paramExplain`, `updateTime`) VALUES (200323, 0, '收费出库是否自动生成单据', 'fee_out_auto_gen', '0', 1, 0, '收费出库是否自动生成单据', '2024-03-13 11:04:02'); +INSERT IGNORE INTO `sys_param_config`(`id`, `parentId`, `paramName`, `paramKey`, `paramValue`, `paramStatus`, + `paramType`, `paramExplain`, `updateTime`) +VALUES (200325, 0, '高耗出库是否自动生成单据', 'gh_out_auto_gen', '0', 1, 0, '高耗出库是否自动生成单据', '2024-03-20 10:23:42'); CALL Pro_Temp_ColumnWork('io_order', 'fromPatientCode', @@ -1814,3 +1817,6 @@ ALTER TABLE sys_dict_data MODIFY COLUMN `dict_code` bigint(0) NOT NULL AUTO_INCREMENT COMMENT '字典编码' FIRST; ALTER TABLE sys_dict_type MODIFY COLUMN `dict_id` bigint(0) NOT NULL AUTO_INCREMENT COMMENT '字典主键' FIRST; + + +CALL Pro_Temp_ColumnWork('thr_inv_order_detail', 'batchNo', 'varchar(60)', 2);