diff --git a/mhd_wms/src/main/java/com/mhd/wms/application/service/stockShelfOrder/StockShelfOrderApplicationService.java b/mhd_wms/src/main/java/com/mhd/wms/application/service/stockShelfOrder/StockShelfOrderApplicationService.java index 0e40e23d6..ac286e6c3 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/application/service/stockShelfOrder/StockShelfOrderApplicationService.java +++ b/mhd_wms/src/main/java/com/mhd/wms/application/service/stockShelfOrder/StockShelfOrderApplicationService.java @@ -337,15 +337,19 @@ public class StockShelfOrderApplicationService { List shelfMaterialDetailDOList = stockReceiptOrderDO.getMaterialDetailList(); shelfMaterialDetailDOList.forEach(shelfMaterialDetailDO -> { List shelfMaterialDetailDOChildrenList1 = shelfMaterialDetailDO.getChildren(); - ShelfMaterialDetailDO shelfMaterialDetailDOChildren = shelfMaterialDetailDOChildrenList1.stream().filter(p -> 1 == p.getLevel()).collect(Collectors.toList()).get(0); - shelfMaterialDetailDO.setMaterialDetailId(shelfMaterialDetailDOChildren.getMaterialDetailId()); - shelfMaterialDetailDO.setShelvesQuantity(shelfMaterialDetailDOChildren.getShelvesQuantity()); - shelfMaterialDetailDO.setWarehouseId(shelfMaterialDetailDOChildren.getWarehouseId()); - shelfMaterialDetailDO.setStorageSectionId(shelfMaterialDetailDOChildren.getStorageSectionId()); - shelfMaterialDetailDO.setStorageLocationId(shelfMaterialDetailDOChildren.getStorageLocationId()); - shelfMaterialDetailDO.setContainerId(shelfMaterialDetailDOChildren.getContainerId()); - shelfMaterialDetailDO.setLevel(shelfMaterialDetailDOChildren.getLevel()); - shelfMaterialDetailDO.setMaterialDetailSerialNumberList(shelfMaterialDetailDOChildren.getMaterialDetailSerialNumberList()); + ShelfMaterialDetailDO shelfMaterialDetailDOChildren = null; + List shelfMaterialDetailDOChildrenList11 = shelfMaterialDetailDO.getChildren().stream().filter(p -> 1 == p.getLevel()).collect(Collectors.toList()); + if (shelfMaterialDetailDOChildrenList11 != null && !shelfMaterialDetailDOChildrenList11.isEmpty() && shelfMaterialDetailDOChildrenList11.size() != 0) shelfMaterialDetailDOChildren = shelfMaterialDetailDOChildrenList11.get(0); + if (shelfMaterialDetailDOChildren != null) { + shelfMaterialDetailDO.setMaterialDetailId(shelfMaterialDetailDOChildren.getMaterialDetailId()); + shelfMaterialDetailDO.setShelvesQuantity(shelfMaterialDetailDOChildren.getShelvesQuantity()); + shelfMaterialDetailDO.setWarehouseId(shelfMaterialDetailDOChildren.getWarehouseId()); + shelfMaterialDetailDO.setStorageSectionId(shelfMaterialDetailDOChildren.getStorageSectionId()); + shelfMaterialDetailDO.setStorageLocationId(shelfMaterialDetailDOChildren.getStorageLocationId()); + shelfMaterialDetailDO.setContainerId(shelfMaterialDetailDOChildren.getContainerId()); + shelfMaterialDetailDO.setLevel(shelfMaterialDetailDOChildren.getLevel()); + shelfMaterialDetailDO.setMaterialDetailSerialNumberList(shelfMaterialDetailDOChildren.getMaterialDetailSerialNumberList()); + } //只留二级 List shelfMaterialDetailDOChildrenList2 = shelfMaterialDetailDOChildrenList1.stream().filter(p -> 2 == p.getLevel()).collect(Collectors.toList()); shelfMaterialDetailDO.setChildren(shelfMaterialDetailDOChildrenList2); @@ -469,7 +473,15 @@ public class StockShelfOrderApplicationService { if (shelfMaterialDetailPO == null){ throw new ServiceException("物料明细不存在"); } - if (shelfMaterialDetailDO.getShelvesQuantity().compareTo(BigDecimal.ZERO) == 0){ + List children = shelfMaterialDetailDO.getChildren(); + BigDecimal childrenShelvesQuantitySum = BigDecimal.ZERO; + if (!CollectionUtils.isEmpty(children)) { + childrenShelvesQuantitySum = children.stream() + .map(ShelfMaterialDetailDO::getShelvesQuantity) + .filter(Objects::nonNull) + .reduce(BigDecimal.ZERO, BigDecimal::add); + } + if (shelfMaterialDetailDO.getShelvesQuantity().compareTo(BigDecimal.ZERO) == 0 && childrenShelvesQuantitySum.compareTo(BigDecimal.ZERO) == 0){ //未进行上架直接跳过 continue; }