修复是否判断完的判断逻辑 + 主单状态随动更新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;
}
}
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);

View File

@ -445,11 +445,12 @@ public class OrderMasterServiceImpl implements OrderMasterService {
Assert.notNull(orderMaster, "OrderMaster is null!!!");
// 先判断主订单是否派完单
List<OrderGoods> masterGoods = orderGoodsService.selectByOrderMasterId(orderMasterId);
long masterCount = masterGoods.stream().mapToInt(OrderGoods::getGoodsNum).sum();
long detailCount = orderDetailService.selectByOrderMasterId(orderMasterId).stream().mapToInt(x -> {
List<OrderGoods> 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;
}
}