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.如果整盒,从工位队列扣除