diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/assemblylist/AssemblyListServiceImpl.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/assemblylist/AssemblyListServiceImpl.java index 48652df27..dd879fe62 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/assemblylist/AssemblyListServiceImpl.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/assemblylist/AssemblyListServiceImpl.java @@ -230,6 +230,11 @@ public class AssemblyListServiceImpl implements AssemblyListService { if (children != null && !children.isEmpty()) { // 按 name 排序保证 hash 稳定 children.sort(Comparator.comparing(OrderComponentTreeCompareVO::getName)); + + // 2. 递归子节点排序 + for (OrderComponentTreeCompareVO child : children) { + computeHashRecursively(child); + } } // 生成结构字符串并 hash String structureStr = buildStructureString(node); diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/heapsplit/HeapSplitServiceImpl.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/heapsplit/HeapSplitServiceImpl.java index 7e5fa1c32..a55facd20 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/heapsplit/HeapSplitServiceImpl.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/heapsplit/HeapSplitServiceImpl.java @@ -7,7 +7,9 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.cf.imes.framework.common.exception.ServiceException; import com.cf.imes.module.executor.controller.admin.manage.pack.heapsplit.HeapSplitSaveReqVO; import com.cf.imes.module.executor.controller.admin.manage.pack.heapsplit.OrdersHeapSplitDetailRespVO; +import com.cf.imes.module.executor.controller.admin.manage.pack.vo.OrderPartsRespVO; import com.cf.imes.module.executor.controller.admin.manage.pack.vo.PackagePartsSaveReqVO; +import com.cf.imes.module.executor.controller.admin.manage.pack.vo.PlateDetailsRespVO; import com.cf.imes.module.executor.dal.dataobject.orderItem.OrderItemDO; import com.cf.imes.module.executor.dal.mysql.orderItem.OrderItemMapper; import com.cf.imes.module.executor.dal.mysql.orderParts.OrderPartsMapper; @@ -185,9 +187,28 @@ public class HeapSplitServiceImpl implements HeapSplitService { @Override public OrdersHeapSplitDetailRespVO getOrdersHeapSplitedDetail(List orderIds) { OrdersHeapSplitDetailRespVO respVO = new OrdersHeapSplitDetailRespVO(); + // 查询多订单信息 respVO.setOrders(orderService.getPackOrdersInfo(orderIds)); - respVO.setParts(orderPartsMapper.selectOrdersHeapSplitPartsList(orderIds)); - respVO.setPlates(plateMapper.selectOrdersHeapSplitPlateList(orderIds)); + // 查询板件 + List plates = plateMapper.selectOrdersHeapSplitPlateList(orderIds); + // 查询配件 + List parts = orderPartsMapper.selectOrdersHeapSplitPartsList(orderIds); + + // 根据成倍数量重新赋值柜体名称 + plates.forEach(item -> { + if (item.getMultiNum() != null && item.getMultiNum() > 1 + && item.getMultiSort() != null) { + item.setCabinetName(item.getCabinetName() + "-" + item.getMultiSort()); + } + }); + parts.forEach(item -> { + if (item.getMultiNum() != null && item.getMultiNum() > 1 + && item.getMultiSort() != null) { + item.setCabinetName(item.getCabinetName() + "-" + item.getMultiSort()); + } + }); + respVO.setPlates(plates); + respVO.setParts(parts); return respVO; } 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 efbfb7b26..218214358 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 @@ -1058,9 +1058,28 @@ public class PackServiceImpl implements PackService { @Override public OrdersUnpackDetailRespVO getOrdersUnpackDetails(List orderIds) { OrdersUnpackDetailRespVO ordersUnpackDetailRespVO = new OrdersUnpackDetailRespVO(); + // 查询多订单信息 ordersUnpackDetailRespVO.setOrders(orderService.getPackOrdersInfo(orderIds)); - ordersUnpackDetailRespVO.setPlates(orderPlateMapper.selectOrdersPackPlateList(orderIds)); - ordersUnpackDetailRespVO.setParts(orderPartsMapper.selectOrdersPartsList(orderIds)); + // 查询板件 + List plates = orderPlateMapper.selectOrdersPackPlateList(orderIds); + // 查询配件 + List parts = orderPartsMapper.selectOrdersPartsList(orderIds); + + // 根据成倍数量重新赋值柜体名称 + plates.forEach(item -> { + if (item.getMultiNum() != null && item.getMultiNum() > 1 + && item.getMultiSort() != null) { + item.setCabinetName(item.getCabinetName() + "-" + item.getMultiSort()); + } + }); + parts.forEach(item -> { + if (item.getMultiNum() != null && item.getMultiNum() > 1 + && item.getMultiSort() != null) { + item.setCabinetName(item.getCabinetName() + "-" + item.getMultiSort()); + } + }); + ordersUnpackDetailRespVO.setPlates(plates); + ordersUnpackDetailRespVO.setParts(parts); return ordersUnpackDetailRespVO; } @@ -1073,9 +1092,19 @@ public class PackServiceImpl implements PackService { return new ArrayList<>(); } Set orderIds = orderPackagDONews.stream().map(OrderPackagDO::getOrderId).collect(Collectors.toSet()); - List packPartsList = orderPartsMapper.selectPackedParts(orderIds, packageNo); + // 查询板件 List packPlateList = orderPlateMapper.selectPackedPlateList(orderIds, packageNo); + // 查询配件 + List packPartsList = orderPartsMapper.selectPackedParts(orderIds, packageNo); packPlateList.addAll(packPartsList); + + // 根据成倍数量重新赋值柜体名称 + packPlateList.forEach(item -> { + if (item.getMultiNum() != null && item.getMultiNum() > 1 + && item.getMultiSort() != null) { + item.setCabinetName(item.getCabinetName() + "-" + item.getMultiSort()); + } + }); return packPlateList; } diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/orderParts/OrderPartsMapper.xml b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/orderParts/OrderPartsMapper.xml index 53053b15f..b0ef02097 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/orderParts/OrderPartsMapper.xml +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/orderParts/OrderPartsMapper.xml @@ -479,6 +479,8 @@ t.heap_split_status AS heapSplitStatus, t.group_names AS processGroup, t.component_names AS componentName, + t.multi_num AS multiNum, + t.multi_sort AS multiSort, t.num AS num, t.heap_num AS heapNum, op.id AS partsId, @@ -509,7 +511,9 @@ MIN(ob.room_name) AS room_name, MIN(ob.name) AS body_name, SUM(oi.num - oi.heap_num) AS num, - SUM(oi.heap_num) AS heap_num + SUM(oi.heap_num) AS heap_num, + MIN(ob.multi_num) AS multi_num, + MIN(ob.sort) AS multi_sort FROM order_item oi LEFT JOIN order_group og ON oi.organ_id = og.organ_id