diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/pickingOrder/service/PickingOrderDomainService.java b/mhd_wms/src/main/java/com/mhd/wms/domain/pickingOrder/service/PickingOrderDomainService.java index bfda2e67e..97bb41e56 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/domain/pickingOrder/service/PickingOrderDomainService.java +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/pickingOrder/service/PickingOrderDomainService.java @@ -405,11 +405,19 @@ public class PickingOrderDomainService { .eq(PickingOrder::getOrderNumber, pickingOrderPODb.getOrderNumber())); BigDecimal pickingQuantity = pickingOrderList.stream().map(PickingOrder::getPickingQuantity).reduce(BigDecimal.ZERO, BigDecimal::add); if (1 == pickingOrderPODb.getType()){ - int status = 7; + int status = 6; //不需要复核的单子 标记出库单完成 StockOutOrder stockOutOrderDb = stockOutOrderService.getOne(new QueryWrapper().lambda() .eq(StockOutOrder::getOutOrderNumber, pickingOrderPODb.getOrderNumber())); - if (pickingQuantity.compareTo(stockOutOrderDb.getQuantity()) >= 0){ + // 与下发拣货数量比较:只下发部分时用拣货计划数量,否则用出库单总数量 + List allPickingOrders = pickingOrderService.list(new QueryWrapper().lambda() + .eq(PickingOrder::getDelFlag, 1) + .eq(PickingOrder::getOrderNumber, pickingOrderPODb.getOrderNumber())); + BigDecimal totalPickingPlanQuantity = allPickingOrders.stream() + .map(PickingOrder::getQuantity).filter(java.util.Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add); + BigDecimal thresholdQuantity = (totalPickingPlanQuantity != null && totalPickingPlanQuantity.compareTo(BigDecimal.ZERO) > 0) + ? totalPickingPlanQuantity : (stockOutOrderDb.getQuantity() != null ? stockOutOrderDb.getQuantity() : BigDecimal.ZERO); + if (pickingQuantity.compareTo(thresholdQuantity) >= 0){ status = 7; if (pickingOrderPODb.getReview() == 2){ status = 9; diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/stockOutTaskOrder/service/StockOutTaskOrderDomainService.java b/mhd_wms/src/main/java/com/mhd/wms/domain/stockOutTaskOrder/service/StockOutTaskOrderDomainService.java index e6f9a6c39..4a841264d 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/domain/stockOutTaskOrder/service/StockOutTaskOrderDomainService.java +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/stockOutTaskOrder/service/StockOutTaskOrderDomainService.java @@ -535,7 +535,15 @@ public class StockOutTaskOrderDomainService { StockOutOrder stockOutOrderDb = stockOutOrderService.getOne(new QueryWrapper().lambda() .eq(StockOutOrder::getDelFlag, 1) .eq(StockOutOrder::getOutOrderNumber, pickingOrderPODb.getOrderNumber())); - if (pickingQuantity.compareTo(stockOutOrderDb.getQuantity()) >= 0){ + // 与下发拣货数量比较:只下发部分时用分配数量/拣货计划数量,否则用出库单总数量 + List allPickingOrders = pickingOrderService.list(new QueryWrapper().lambda() + .eq(PickingOrder::getDelFlag, 1) + .eq(PickingOrder::getOrderNumber, pickingOrderPODb.getOrderNumber())); + BigDecimal totalPickingPlanQuantity = allPickingOrders.stream() + .map(PickingOrder::getQuantity).filter(java.util.Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add); + BigDecimal thresholdQuantity = (totalPickingPlanQuantity != null && totalPickingPlanQuantity.compareTo(BigDecimal.ZERO) > 0) + ? totalPickingPlanQuantity : (stockOutOrderDb.getQuantity() != null ? stockOutOrderDb.getQuantity() : BigDecimal.ZERO); + if (pickingQuantity.compareTo(thresholdQuantity) >= 0){ status = 7; if (pickingOrderPODb.getReview() == 2){ status = 9;