diff --git a/ghy-order/src/main/java/com/ghy/order/service/impl/OrderDetailServiceImpl.java b/ghy-order/src/main/java/com/ghy/order/service/impl/OrderDetailServiceImpl.java index 8fd59a0a..1e3e18b0 100644 --- a/ghy-order/src/main/java/com/ghy/order/service/impl/OrderDetailServiceImpl.java +++ b/ghy-order/src/main/java/com/ghy/order/service/impl/OrderDetailServiceImpl.java @@ -137,7 +137,9 @@ public class OrderDetailServiceImpl implements OrderDetailService { break; } } - if (flag) { + // 判断主单是否全部派单 + boolean allAssign = orderMasterService.isAllAssign(detailInfo.getOrderMasterId()); + if (flag && allAssign) { OrderMaster orderMaster = orderMasterMapper.selectById(detailInfo.getOrderMasterId()); if (ObjectUtils.isEmpty(orderDetail.getExpectTimeStart())) { orderMaster.setOrderStatus(orderStatus); diff --git a/ghy-order/src/main/java/com/ghy/order/service/impl/OrderMasterServiceImpl.java b/ghy-order/src/main/java/com/ghy/order/service/impl/OrderMasterServiceImpl.java index 8e4d7164..abcf3f4a 100644 --- a/ghy-order/src/main/java/com/ghy/order/service/impl/OrderMasterServiceImpl.java +++ b/ghy-order/src/main/java/com/ghy/order/service/impl/OrderMasterServiceImpl.java @@ -445,11 +445,12 @@ public class OrderMasterServiceImpl implements OrderMasterService { Assert.notNull(orderMaster, "OrderMaster is null!!!"); // 先判断主订单是否派完单 List masterGoods = orderGoodsService.selectByOrderMasterId(orderMasterId); - long masterCount = masterGoods.stream().mapToInt(OrderGoods::getGoodsNum).sum(); - long detailCount = orderDetailService.selectByOrderMasterId(orderMasterId).stream().mapToInt(x -> { - List detailGoods = orderGoodsService.selectByOrderDetailId(x.getId()); - return detailGoods.stream().mapToInt(OrderGoods::getGoodsNum).sum(); - }).sum(); - return masterCount == detailCount; + for (OrderGoods orderGoods : masterGoods) { + // 是否有未派完的子单 + if(!orderGoods.getGoodsNum().equals(orderGoods.getServerGoodsNum())){ + return false; + } + } + return true; } }