diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/manage/pack/PackServiceImpl.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/manage/pack/PackServiceImpl.java index 58cb10bfb..93f1bc0d6 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/manage/pack/PackServiceImpl.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/manage/pack/PackServiceImpl.java @@ -374,15 +374,16 @@ public class PackServiceImpl implements PackService { * @param packMethod * @return */ - private Long getGroupKey(PackagePartsSaveReqVO item, Integer packMethod) { + private String getGroupKey(PackagePartsSaveReqVO item, Integer packMethod) { if (ObjectUtil.equals(OrderPackageMethodEnum.ROOM_NAME.getMethod(), packMethod)) { - return item.getRoomId(); + return item.getRoomId() + "-" + item.getBodyId(); } else if (ObjectUtil.equals(OrderPackageMethodEnum.BODY_NAME.getMethod(), packMethod)) { - return item.getBodyId(); + return String.valueOf(item.getBodyId()); } else if (ObjectUtil.equals(OrderPackageMethodEnum.ORDER.getMethod(), packMethod)) { - return item.getOrderId(); + return String.valueOf(item.getOrderId()); } - return 0L; + // todo 规范异常 + throw new IllegalArgumentException("未知打包方式: " + packMethod); } /** @@ -397,7 +398,7 @@ public class PackServiceImpl implements PackService { * @return */ private LambdaQueryWrapper buildWrapper( - Long groupKey, + String groupKey, Long partsId, Integer packMethod, List orderIds, @@ -417,7 +418,9 @@ public class PackServiceImpl implements PackService { } if (ObjectUtil.equals(OrderPackageMethodEnum.ROOM_NAME.getMethod(), packMethod)) { - wrapper.eq(OrderItemDO::getRoomId, groupKey) + String[] keys = groupKey.split("-"); + wrapper.eq(OrderItemDO::getRoomId, keys[0]) + .eq(OrderItemDO::getBodyId, keys[1]) .in(OrderItemDO::getOrderId, orderIds); } else if (ObjectUtil.equals(OrderPackageMethodEnum.BODY_NAME.getMethod(), packMethod)) { wrapper.eq(OrderItemDO::getBodyId, groupKey) @@ -449,12 +452,12 @@ public class PackServiceImpl implements PackService { if (CollUtil.isEmpty(partsList)) return; // 分组 - Map> groupMap = + Map> groupMap = partsList.stream().collect(Collectors.groupingBy(item -> getGroupKey(item, packMethod))); - for (Map.Entry> entry : groupMap.entrySet()) { + for (Map.Entry> entry : groupMap.entrySet()) { - Long groupKey = entry.getKey(); + String groupKey = entry.getKey(); for (PackagePartsSaveReqVO vo : entry.getValue()) { @@ -820,6 +823,7 @@ public class PackServiceImpl implements PackService { .eq(OrderItemDO::getPackageId, packageNo) .eq(OrderItemDO::getPlateId, 0) .set(OrderItemDO::getPackageId, 0) + .set(OrderItemDO::getPackNum, 0) ); diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/order/OrderMapper.xml b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/order/OrderMapper.xml index 23f75f7d9..d745c878d 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/order/OrderMapper.xml +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/order/OrderMapper.xml @@ -653,21 +653,19 @@