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
* @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<OrderItemDO> buildWrapper(
Long groupKey,
String groupKey,
Long partsId,
Integer packMethod,
List<Long> 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<Long, List<PackagePartsSaveReqVO>> groupMap =
Map<String, List<PackagePartsSaveReqVO>> groupMap =
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()) {
@@ -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)
);
@@ -653,21 +653,19 @@
</select>
<select id="selectPackPlateNum" resultType="com.cf.imes.module.executor.dal.dataobject.order.OrderPackNumDO">
select oi.order_id as order_id,
IFNULL(sum(case
when oi.plate_id != 0
and oi.package_id != 0
then 1
else 0
end), 0) as plate_num
from order_item oi
where oi.order_id in
select o.id as orderId, count(oi.plate_id) as plateNum
from orders o
left join order_item oi
on o.organ_id = oi.organ_id
and o.id = oi.order_id
and oi.package_id != 0
and oi.plate_id != 0
where o.id in
<foreach collection="orderIds" item="orderId" open="(" separator="," close=")">
#{orderId}
</foreach>
and oi.package_id != 0
and oi.plate_id != 0
group by oi.order_id
and o.deleted = false
group by o.id
</select>
<select id="selectPackPartsNum" resultType="com.cf.imes.module.executor.dal.dataobject.order.OrderPackNumDO">