From 65d6d718c117bd91171233cb223e8636c205edf7 Mon Sep 17 00:00:00 2001 From: yewj Date: Thu, 5 Sep 2024 10:16:19 +0800 Subject: [PATCH] =?UTF-8?q?=E8=87=AA=E5=8A=A8=E8=B5=8B=E7=A0=81=E9=80=BB?= =?UTF-8?q?=E8=BE=91=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../entity/collect/IoCollectOrderCodeMan.java | 3 + .../api/entity/inout/IoSplitCodeEntity.java | 6 ++ .../collect/IoCollectOrderCodeManService.java | 6 +- .../api/service/inout/IoSplitCodeService.java | 100 ++++++++++++------ 4 files changed, 79 insertions(+), 36 deletions(-) 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 72dd57679..b951fd9ec 100644 --- a/src/main/java/com/glxp/api/entity/collect/IoCollectOrderCodeMan.java +++ b/src/main/java/com/glxp/api/entity/collect/IoCollectOrderCodeMan.java @@ -92,6 +92,9 @@ public class IoCollectOrderCodeMan implements Serializable { @ApiModelProperty(value = "") private Long updateUser; + @TableField(exist = false) + private Boolean removeFlag; + private static final long serialVersionUID = 1L; } diff --git a/src/main/java/com/glxp/api/entity/inout/IoSplitCodeEntity.java b/src/main/java/com/glxp/api/entity/inout/IoSplitCodeEntity.java index 4d5f570d0..3b9f2a6bb 100644 --- a/src/main/java/com/glxp/api/entity/inout/IoSplitCodeEntity.java +++ b/src/main/java/com/glxp/api/entity/inout/IoSplitCodeEntity.java @@ -10,13 +10,19 @@ import io.swagger.annotations.ApiModelProperty; import java.io.Serializable; import java.util.Date; +import lombok.AllArgsConstructor; +import lombok.Builder; import lombok.Data; +import lombok.NoArgsConstructor; /** * 科室出库码拆零表 */ @ApiModel(value = "com-glxp-api-entity-inout-IoSplitCode") @Data +@Builder +@AllArgsConstructor +@NoArgsConstructor @TableName(value = "io_split_code") public class IoSplitCodeEntity implements Serializable { @TableId(value = "id", type = IdType.INPUT) 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 a80013f95..b2d00bf9a 100644 --- a/src/main/java/com/glxp/api/service/collect/IoCollectOrderCodeManService.java +++ b/src/main/java/com/glxp/api/service/collect/IoCollectOrderCodeManService.java @@ -321,7 +321,6 @@ public class IoCollectOrderCodeManService extends ServiceImpl removeIds = new ArrayList<>(); for (IoCollectOrderBiz collectOrderBiz : collectOrderBizs) { + UdiRelevanceEntity udiRelevanceEntity = udiRelevanceService.selectById(collectOrderBiz.getRelId()); + //去除掉已经手动扫码的数据,找出需要自动扫码的明细,执行上述的拆零或整取 int unTagCount = collectOrderBiz.getCount() - IntUtil.value(collectOrderBiz.getScanActCount()); if (unTagCount > 0) { collectOrderBiz.setUnTagCount(unTagCount); } else { collectOrderBiz.setTagStatus(3); + //手动扫码时涉及到拆零时,把拆零剩余数量插入至拆零表里 + if (unTagCount < 0) { + if (IntUtil.value(udiRelevanceEntity.getUseLeverCount()) > -unTagCount) { + + Optional firstMatch = collectOrderCodeMEN.stream() + .filter(item -> !IntUtil.value(item.getRemoveFlag())) + .findFirst(); + if (firstMatch.isPresent()) { + IoCollectOrderCodeMan result = firstMatch.get(); + IoSplitCodeEntity ioSplitCodeEntity = IoSplitCodeEntity.builder().code(result.getUdiCode()) + .errUdiCode(result.getUdiCode()) + .orderId(result.getOrderIdFk()) + .action(collectOrder.getBusType()) + .relId(result.getRelId()) + .nameCode(result.getNameCode()) + .batchNo(result.getBatchNo()) + .produceDate(result.getProductDate()) + .expireDate(result.getExpireDate()) + .serialNo(result.getSerialNo()) + .scanCount(result.getScanCount()) + .totalCount(result.getScanCount()) + .workPlaceCode(collectOrder.getWorkPlaceCode()) + .status(2) + .fifoSplit(1) + .createTime(new Date()).updateTime(new Date()) + .remainCount(-unTagCount).build(); + splitCodeService.save(ioSplitCodeEntity); + } + + } + } + + continue; } - UdiRelevanceEntity udiRelevanceEntity = udiRelevanceService.selectById(collectOrderBiz.getRelId()); + int quotient = collectOrderBiz.getUnTagCount() / IntUtil.value(udiRelevanceEntity.getUseLeverCount()); int remainder = collectOrderBiz.getUnTagCount() % IntUtil.value(udiRelevanceEntity.getUseLeverCount()); //2.如果整盒,从工位队列扣除