diff --git a/src/main/java/com/glxp/api/entity/collect/IoCollectOrderCodeMan.java b/src/main/java/com/glxp/api/entity/collect/IoCollectOrderCodeMan.java index b951fd9ec..e769893e7 100644 --- a/src/main/java/com/glxp/api/entity/collect/IoCollectOrderCodeMan.java +++ b/src/main/java/com/glxp/api/entity/collect/IoCollectOrderCodeMan.java @@ -72,6 +72,11 @@ public class IoCollectOrderCodeMan implements Serializable { private Integer scanCount; + @TableField(value = "scanActCount") + @ApiModelProperty(value = "") + private Integer scanActCount; + + @TableField(value = "remark") @ApiModelProperty(value = "") private String remark; @@ -95,6 +100,9 @@ public class IoCollectOrderCodeMan implements Serializable { @TableField(exist = false) private Boolean removeFlag; + @TableField(exist = false) + private Boolean splitFlag; + private static final long serialVersionUID = 1L; } diff --git a/src/main/java/com/glxp/api/service/collect/IoCollectOrderCodeManService.java b/src/main/java/com/glxp/api/service/collect/IoCollectOrderCodeManService.java index 44f8735f9..a18460bd5 100644 --- a/src/main/java/com/glxp/api/service/collect/IoCollectOrderCodeManService.java +++ b/src/main/java/com/glxp/api/service/collect/IoCollectOrderCodeManService.java @@ -15,6 +15,7 @@ import com.glxp.api.dao.collect.IoCollectOrderCodeManMapper; import com.glxp.api.entity.auth.InvWarehouseEntity; import com.glxp.api.entity.auth.SysWorkplace; import com.glxp.api.entity.basic.SysWorkplaceDocumentEntity; +import com.glxp.api.entity.basic.SysWorkplacePutRel; import com.glxp.api.entity.basic.UdiEntity; import com.glxp.api.entity.collect.IoCollectOrder; import com.glxp.api.entity.collect.IoCollectOrderBiz; @@ -37,6 +38,7 @@ import com.glxp.api.service.basic.UdiRelevanceService; import com.glxp.api.service.inout.IoSplitCodeService; import com.glxp.api.service.inv.AnncmntProductService; import com.glxp.api.service.thrsys.IThrBusTypeOriginService; +import com.glxp.api.service.thrsys.SysWorkplacePutRelService; import com.glxp.api.service.thrsys.ThrSystemService; import com.glxp.api.util.GennerOrderUtils; import com.glxp.api.util.IntUtil; @@ -111,16 +113,21 @@ public class IoCollectOrderCodeManService extends ServiceImpl collectOrderBizs = collectOrderBizService.listByBillNo(addTagCodeReqeust.getBillNo()); //2.校验是否处方单UDI码 if (IntUtil.value(sysWorkplaceDocumentEntity.getScanType()) == WorkOperType.TYPE_GEN_ORDER) { @@ -222,16 +231,20 @@ public class IoCollectOrderCodeManService extends ServiceImpl IntUtil.value(collectOrderBiz.getCount())) { int needCount = IntUtil.value(collectOrderBiz.getCount()) - IntUtil.value(collectOrderBiz.getScanActCount()); if (needCount > 0) { - if (vailInSplit(collectOrderBiz, collectOrder.getWorkPlaceCode(), needCount)) { + if (vailInSplit(collectOrderBiz, putWorkPlaceCode, needCount)) { throw new JsonException(502, collectOrderBiz.getCpmctymc() + "拆零数量还有剩余,是否继续添加?"); } } @@ -286,15 +290,11 @@ public class IoCollectOrderCodeManService extends ServiceImpl collectOrderBiz.getCount()) { int needCount = IntUtil.value(collectOrderBiz.getCount()) - IntUtil.value(collectOrderBiz.getScanActCount()); if (needCount > 0) { - if (vailInSplit(collectOrderBiz, collectOrder.getWorkPlaceCode(), needCount)) { + if (vailInSplit(collectOrderBiz, putWorkPlaceCode, needCount)) { throw new JsonException(502, collectOrderBiz.getCpmctymc() + "拆零数量还有剩余,是否继续扫码?"); } } @@ -336,9 +336,18 @@ public class IoCollectOrderCodeManService extends ServiceImpl IntUtil.value(collectOrderBiz.getCount())) { int needCount = IntUtil.value(collectOrderBiz.getCount()) - IntUtil.value(collectOrderBiz.getScanActCount()); if (needCount > 0) { - if (vailInSplit(collectOrderBiz, collectOrder.getWorkPlaceCode(), needCount)) { + if (vailInSplit(collectOrderBiz, putWorkPlaceCode, needCount)) { throw new JsonException(502, "当前拆零数量还有剩余,是否继续扫码?"); } } @@ -384,15 +385,11 @@ public class IoCollectOrderCodeManService extends ServiceImpl collectOrderBiz.getCount()) { int needCount = IntUtil.value(collectOrderBiz.getCount()) - IntUtil.value(collectOrderBiz.getScanActCount()); if (needCount > 0) { - if (vailInSplit(collectOrderBiz, collectOrder.getWorkPlaceCode(), needCount)) { + if (vailInSplit(collectOrderBiz, putWorkPlaceCode, needCount)) { throw new JsonException(502, collectOrderBiz.getCpmctymc() + "拆零数量还有剩余,是否继续添加?"); } } @@ -406,11 +403,7 @@ public class IoCollectOrderCodeManService extends ServiceImpl orderDetailBizEntities = orderDetailBizService.findByOrderId(ioOrderEntity.getBillNo()); diff --git a/src/main/java/com/glxp/api/service/inout/IoSplitCodeService.java b/src/main/java/com/glxp/api/service/inout/IoSplitCodeService.java index 229f77fe6..fc3168f91 100644 --- a/src/main/java/com/glxp/api/service/inout/IoSplitCodeService.java +++ b/src/main/java/com/glxp/api/service/inout/IoSplitCodeService.java @@ -75,7 +75,7 @@ public class IoSplitCodeService extends ServiceImpl ioSplitCodeEntities = splitCodeMapper.selectList(new LambdaQueryWrapper() .eq(IoSplitCodeEntity::getCode, code) .eq(workPlaceCode != null, IoSplitCodeEntity::getWorkPlaceCode, workPlaceCode) @@ -252,6 +252,18 @@ public class IoSplitCodeService extends ServiceImpl 0) { + if (IntUtil.value(splitCodeEntity.getRemainCount()) > IntUtil.value(collectOrderCodeMan.getScanCount())) { + splitCodeEntity.setRemainCount(IntUtil.value(splitCodeEntity.getRemainCount()) - IntUtil.value(collectOrderCodeMan.getScanActCount())); + } else { + splitCodeEntity.setRemainCount(0); + } + collectOrderCodeMan.setSplitFlag(true); + splitCodeService.updateById(splitCodeEntity); + } + } } List removeIds = new ArrayList<>(); @@ -281,7 +293,7 @@ public class IoSplitCodeService extends ServiceImpl firstMatch1 = collectOrderCodeMEN.stream() .filter(item -> - item.getBizIdFk().equals(collectOrderBiz.getId())) + !IntUtil.value(item.getSplitFlag()) && item.getBizIdFk().equals(collectOrderBiz.getId())) .findFirst(); if (firstMatch1.isPresent()) { result = firstMatch1.get(); diff --git a/src/main/java/com/glxp/api/service/thrsys/SysWorkplacePutRelService.java b/src/main/java/com/glxp/api/service/thrsys/SysWorkplacePutRelService.java index 74ffe4dbc..ebac573a4 100644 --- a/src/main/java/com/glxp/api/service/thrsys/SysWorkplacePutRelService.java +++ b/src/main/java/com/glxp/api/service/thrsys/SysWorkplacePutRelService.java @@ -27,7 +27,7 @@ public class SysWorkplacePutRelService extends ServiceImpl sysWorkplacePutRelList = list(new LambdaQueryWrapper().eq(SysWorkplacePutRel::getCollectWorkCode, workPlaceCode).eq(SysWorkplacePutRel::getCollectBusType, busType)); + List sysWorkplacePutRelList = list(new LambdaQueryWrapper().eq(SysWorkplacePutRel::getCollectWorkCode, workPlaceCode).eq(busType != null, SysWorkplacePutRel::getCollectBusType, busType)); if (CollUtil.isNotEmpty(sysWorkplacePutRelList)) return sysWorkplacePutRelList.get(0); else @@ -46,8 +46,8 @@ public class SysWorkplacePutRelService extends ServiceImpl SELECT * FROM io_collect_order_code_man icocm - left join udi_wms_ct.io_collect_order bu on icocm.orderIdFk = bu.billNo + left join io_collect_order bu on icocm.orderIdFk = bu.billNo AND udiCode = #{udiCode} diff --git a/src/main/resources/schemas/schema_v2.4.sql b/src/main/resources/schemas/schema_v2.4.sql index e665bc460..81fc83666 100644 --- a/src/main/resources/schemas/schema_v2.4.sql +++ b/src/main/resources/schemas/schema_v2.4.sql @@ -4550,3 +4550,8 @@ CREATE TABLE IF NOT EXISTS `anncmnt_product` CALL Pro_Temp_ColumnWork('basic_bussiness_type', 'productType', ' tinyint NULL DEFAULT NULL COMMENT ''单据类型; 1:器械单据 2:药品单据''', 1); + + +CALL Pro_Temp_ColumnWork('io_collect_order_code_man', 'scanActCount', + 'int NULL DEFAULT NULL COMMENT ''扫码实际数量''', + 1); \ No newline at end of file