修复是否判断完的判断逻辑 + 主单状态随动更新bug

This commit is contained in:
kuang.yife 2023-04-17 19:29:19 +08:00
parent 2889674eed
commit fc6d56dd70
2 changed files with 10 additions and 7 deletions

View File

@ -137,7 +137,9 @@ public class OrderDetailServiceImpl implements OrderDetailService {
break; break;
} }
} }
if (flag) { // 判断主单是否全部派单
boolean allAssign = orderMasterService.isAllAssign(detailInfo.getOrderMasterId());
if (flag && allAssign) {
OrderMaster orderMaster = orderMasterMapper.selectById(detailInfo.getOrderMasterId()); OrderMaster orderMaster = orderMasterMapper.selectById(detailInfo.getOrderMasterId());
if (ObjectUtils.isEmpty(orderDetail.getExpectTimeStart())) { if (ObjectUtils.isEmpty(orderDetail.getExpectTimeStart())) {
orderMaster.setOrderStatus(orderStatus); orderMaster.setOrderStatus(orderStatus);

View File

@ -445,11 +445,12 @@ public class OrderMasterServiceImpl implements OrderMasterService {
Assert.notNull(orderMaster, "OrderMaster is null!!!"); Assert.notNull(orderMaster, "OrderMaster is null!!!");
// 先判断主订单是否派完单 // 先判断主订单是否派完单
List<OrderGoods> masterGoods = orderGoodsService.selectByOrderMasterId(orderMasterId); List<OrderGoods> masterGoods = orderGoodsService.selectByOrderMasterId(orderMasterId);
long masterCount = masterGoods.stream().mapToInt(OrderGoods::getGoodsNum).sum(); for (OrderGoods orderGoods : masterGoods) {
long detailCount = orderDetailService.selectByOrderMasterId(orderMasterId).stream().mapToInt(x -> { // 是否有未派完的子单
List<OrderGoods> detailGoods = orderGoodsService.selectByOrderDetailId(x.getId()); if(!orderGoods.getGoodsNum().equals(orderGoods.getServerGoodsNum())){
return detailGoods.stream().mapToInt(OrderGoods::getGoodsNum).sum(); return false;
}).sum(); }
return masterCount == detailCount; }
return true;
} }
} }