From b27d144246e445d1aa36bc42c2ec1ce39e74122e Mon Sep 17 00:00:00 2001 From: gaoqr <13665037151@163.com> Date: Wed, 15 Apr 2026 17:50:36 +0800 Subject: [PATCH] =?UTF-8?q?1=E3=80=81=E8=A3=85=E9=85=8D=E8=AE=BE=E7=BD=AE?= =?UTF-8?q?=E4=B8=8D=E5=8A=A0=E5=B7=A5=E7=8A=B6=E6=80=81=E6=9C=AA=E7=94=9F?= =?UTF-8?q?=E6=95=88=E4=BF=AE=E5=A4=8D=EF=BC=9B2=E3=80=81=E5=88=86?= =?UTF-8?q?=E5=A0=86=E6=89=93=E5=8C=85details=E4=B8=AD=E7=9A=84=E6=9D=BF?= =?UTF-8?q?=E4=BB=B6=E9=85=8D=E4=BB=B6=E6=9F=9C=E4=BD=93=E5=90=8D=E6=A0=B9?= =?UTF-8?q?=E6=8D=AE=E6=88=90=E5=80=8D=E6=95=B0=E9=87=8F=E6=94=B9=E9=80=A0?= =?UTF-8?q?=E3=80=81=E5=8C=85=E8=A3=B9=E9=85=8D=E4=BB=B6=E6=9D=BF=E4=BB=B6?= =?UTF-8?q?=E6=A0=B9=E6=8D=AE=E6=88=90=E5=80=8D=E6=95=B0=E9=87=8F=E6=94=B9?= =?UTF-8?q?=E9=80=A0=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../assemblylist/AssemblyListServiceImpl.java | 5 +++ .../heapsplit/HeapSplitServiceImpl.java | 25 +++++++++++-- .../service/manage/pack/PackServiceImpl.java | 35 +++++++++++++++++-- .../mapper/orderParts/OrderPartsMapper.xml | 6 +++- 4 files changed, 65 insertions(+), 6 deletions(-) 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