1、房名打包配件增加房间id的分组条件;2、删除包裹明细pack_num未清零修复;

This commit is contained in:
gaoqr
2026-05-08 16:32:03 +08:00
parent 189df72427
commit 5494c2ef42
2 changed files with 24 additions and 22 deletions
@@ -374,15 +374,16 @@ public class PackServiceImpl implements PackService {
* @param packMethod * @param packMethod
* @return * @return
*/ */
private Long getGroupKey(PackagePartsSaveReqVO item, Integer packMethod) { private String getGroupKey(PackagePartsSaveReqVO item, Integer packMethod) {
if (ObjectUtil.equals(OrderPackageMethodEnum.ROOM_NAME.getMethod(), 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)) { } 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)) { } 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 * @return
*/ */
private LambdaQueryWrapper<OrderItemDO> buildWrapper( private LambdaQueryWrapper<OrderItemDO> buildWrapper(
Long groupKey, String groupKey,
Long partsId, Long partsId,
Integer packMethod, Integer packMethod,
List<Long> orderIds, List<Long> orderIds,
@@ -417,7 +418,9 @@ public class PackServiceImpl implements PackService {
} }
if (ObjectUtil.equals(OrderPackageMethodEnum.ROOM_NAME.getMethod(), packMethod)) { 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); .in(OrderItemDO::getOrderId, orderIds);
} else if (ObjectUtil.equals(OrderPackageMethodEnum.BODY_NAME.getMethod(), packMethod)) { } else if (ObjectUtil.equals(OrderPackageMethodEnum.BODY_NAME.getMethod(), packMethod)) {
wrapper.eq(OrderItemDO::getBodyId, groupKey) wrapper.eq(OrderItemDO::getBodyId, groupKey)
@@ -449,12 +452,12 @@ public class PackServiceImpl implements PackService {
if (CollUtil.isEmpty(partsList)) return; if (CollUtil.isEmpty(partsList)) return;
// 分组 // 分组
Map<Long, List<PackagePartsSaveReqVO>> groupMap = Map<String, List<PackagePartsSaveReqVO>> groupMap =
partsList.stream().collect(Collectors.groupingBy(item -> getGroupKey(item, packMethod))); partsList.stream().collect(Collectors.groupingBy(item -> getGroupKey(item, packMethod)));
for (Map.Entry<Long, List<PackagePartsSaveReqVO>> entry : groupMap.entrySet()) { for (Map.Entry<String, List<PackagePartsSaveReqVO>> entry : groupMap.entrySet()) {
Long groupKey = entry.getKey(); String groupKey = entry.getKey();
for (PackagePartsSaveReqVO vo : entry.getValue()) { for (PackagePartsSaveReqVO vo : entry.getValue()) {
@@ -820,6 +823,7 @@ public class PackServiceImpl implements PackService {
.eq(OrderItemDO::getPackageId, packageNo) .eq(OrderItemDO::getPackageId, packageNo)
.eq(OrderItemDO::getPlateId, 0) .eq(OrderItemDO::getPlateId, 0)
.set(OrderItemDO::getPackageId, 0) .set(OrderItemDO::getPackageId, 0)
.set(OrderItemDO::getPackNum, 0)
); );
@@ -653,21 +653,19 @@
</select> </select>
<select id="selectPackPlateNum" resultType="com.cf.imes.module.executor.dal.dataobject.order.OrderPackNumDO"> <select id="selectPackPlateNum" resultType="com.cf.imes.module.executor.dal.dataobject.order.OrderPackNumDO">
select oi.order_id as order_id, select o.id as orderId, count(oi.plate_id) as plateNum
IFNULL(sum(case from orders o
when oi.plate_id != 0 left join order_item oi
and oi.package_id != 0 on o.organ_id = oi.organ_id
then 1 and o.id = oi.order_id
else 0 and oi.package_id != 0
end), 0) as plate_num and oi.plate_id != 0
from order_item oi where o.id in
where oi.order_id in
<foreach collection="orderIds" item="orderId" open="(" separator="," close=")"> <foreach collection="orderIds" item="orderId" open="(" separator="," close=")">
#{orderId} #{orderId}
</foreach> </foreach>
and oi.package_id != 0 and o.deleted = false
and oi.plate_id != 0 group by o.id
group by oi.order_id
</select> </select>
<select id="selectPackPartsNum" resultType="com.cf.imes.module.executor.dal.dataobject.order.OrderPackNumDO"> <select id="selectPackPartsNum" resultType="com.cf.imes.module.executor.dal.dataobject.order.OrderPackNumDO">