diff --git a/src/main/java/com/gaotao/modules/po/service/impl/PoServiceImpl.java b/src/main/java/com/gaotao/modules/po/service/impl/PoServiceImpl.java index 9377e11..ec03187 100644 --- a/src/main/java/com/gaotao/modules/po/service/impl/PoServiceImpl.java +++ b/src/main/java/com/gaotao/modules/po/service/impl/PoServiceImpl.java @@ -233,9 +233,10 @@ public class PoServiceImpl extends ServiceImpl implemen } else { inData.setNeedHandlingUnit("Y"); } - // 创建Handling Unit相关数据 + // 创建Handling Unit相关数据(仅收集本次操作生成的HU) + List currentHandlingUnits = new ArrayList<>(); for (int i = 0; i < inData.getHandlingUnitList().size(); i++) { - handlingUnitPart(inData, i, transHeader, currentUser,shelfLife,receiptDetail); + currentHandlingUnits.addAll(handlingUnitPart(inData, i, transHeader, currentUser,shelfLife,receiptDetail)); } // 免检更新库存 待检验的出入库记录状态为待检验 if ("N".equals(inData.getNeedCheck())) { @@ -250,11 +251,6 @@ public class PoServiceImpl extends ServiceImpl implemen Date supplierExpiryDate = calculateExpiryDate(inData.getSupplierManufactureDate(), shelfLife); if (supplierExpiryDate != null) { inData.setExpiredDate(supplierExpiryDate); - List currentHandlingUnits = handlingUnitService.lambdaQuery() - .eq(HandlingUnit::getSite, inData.getSite()) - .eq(HandlingUnit::getSourceType, "PO_RECEIVE") - .eq(HandlingUnit::getSourceRef, transHeader.getTransNo()) - .list(); changeExpiryDate(currentHandlingUnits, inData); } } @@ -266,8 +262,9 @@ public class PoServiceImpl extends ServiceImpl implemen } } - private void handlingUnitPart(TransDetailDto inData, int i, TransHeader transHeader, + private List handlingUnitPart(TransDetailDto inData, int i, TransHeader transHeader, SysUserEntity currentUser, Integer shelfLife,PoReceiptDetail receiptDetail) { + List createdHandlingUnits = new ArrayList<>(); TransDetailSubDto huInfo = inData.getHandlingUnitList().get(i); Date supplierManufactureDate = inData.getSupplierManufactureDate(); for (int j = 0; j < huInfo.getPackageQty(); j++) { @@ -403,7 +400,9 @@ public class PoServiceImpl extends ServiceImpl implemen huInfo.getPerQty(), currentUser.getUserDisplay(), "Y", "保存成功" ); + createdHandlingUnits.add(handlingUnit); } + return createdHandlingUnits; } private void genInventoryStock(TransDetailDto inData, TransHeader transHeader, PoReceiptDetail receiptDetail) {