From 84e106b4438fbf3a0f514b9a0cf7e0a73a77584c Mon Sep 17 00:00:00 2001 From: fengyuan_yang <1976974459@qq.com> Date: Wed, 22 Oct 2025 15:22:16 +0800 Subject: [PATCH] =?UTF-8?q?2025-10-22=20copyPart=20Routing=E8=B0=83?= =?UTF-8?q?=E6=95=B4=20routing=E7=89=88=E6=9C=AC=E6=A0=B9=E6=8D=AE?= =?UTF-8?q?=E7=B1=BB=E5=9E=8B=E4=BB=8E1=E5=BC=80=E5=A7=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/PartInformationServiceImpl.java | 81 ++++++++----------- 1 file changed, 32 insertions(+), 49 deletions(-) diff --git a/src/main/java/com/spring/modules/part/service/impl/PartInformationServiceImpl.java b/src/main/java/com/spring/modules/part/service/impl/PartInformationServiceImpl.java index c9fcd146..99d42a4c 100644 --- a/src/main/java/com/spring/modules/part/service/impl/PartInformationServiceImpl.java +++ b/src/main/java/com/spring/modules/part/service/impl/PartInformationServiceImpl.java @@ -2263,13 +2263,20 @@ public class PartInformationServiceImpl extends ServiceImpl operationMap = new HashMap(); // 存放新的operationId // 存放新的routingRevision,key为"site_partNo_routingType",value为当前的routingRevision值 HashMap routingRevisionMap = new HashMap(); + // 存放老routing_revision到新routing_revision的映射,key为"routingType_oldRoutingRevision",value为新的routingRevision + HashMap oldToNewRevisionMap = new HashMap(); + if (!routingHeaderList.isEmpty()) { for (RoutingHeaderVo routingHeader : routingHeaderList) { + // 记录原来的routingRevision + Integer oldRoutingRevision = routingHeader.getRoutingRevision(); + String oldRoutingType = routingHeader.getRoutingType(); + routingHeader.setSite(toPart.getSite()); routingHeader.setPartNo(toPart.getPartNo()); routingHeader.setCreateBy(inData.getCreateBy()); - // 根据site、partNo、routingType生成key + // 根据site、partNo、routingType生成key,为新物料分配新的routingRevision String revisionKey = toPart.getSite() + "_" + toPart.getPartNo() + "_" + routingHeader.getRoutingType(); Integer currentRevision = routingRevisionMap.get(revisionKey); if (currentRevision == null) { @@ -2280,6 +2287,10 @@ public class PartInformationServiceImpl extends ServiceImpl routingToolList = routingManagementMapper.selectRoutingToolByPartNo(fromPart.getSite(), fromPart.getPartNo()); List routingGuidelineList = routingManagementMapper.selectRoutingGuidelineByPartNo(fromPart.getSite(), fromPart.getPartNo()); - // 清空routingRevisionMap,为detail等表重新计数 - routingRevisionMap.clear(); - if (!routingDetailList.isEmpty()) { for (RoutingDetailVo routingDetail : routingDetailList) { routingDetail.setSite(toPart.getSite()); routingDetail.setPartNo(toPart.getPartNo()); routingDetail.setCreateBy(inData.getCreateBy()); - // 根据site、partNo、routingType生成key - String revisionKey = toPart.getSite() + "_" + toPart.getPartNo() + "_" + routingDetail.getRoutingType(); - Integer currentRevision = routingRevisionMap.get(revisionKey); - if (currentRevision == null) { - currentRevision = 1; - } else { - currentRevision = currentRevision + 1; + // 根据routingType和老的routingRevision查找新的routingRevision + String oldRevisionKey = routingDetail.getRoutingType() + "_" + routingDetail.getRoutingRevision(); + Integer newRevision = oldToNewRevisionMap.get(oldRevisionKey); + if (newRevision != null) { + routingDetail.setRoutingRevision(newRevision); } - routingRevisionMap.put(revisionKey, currentRevision); - routingDetail.setRoutingRevision(currentRevision); } routingManagementMapper.saveRoutingDetailList(routingDetailList); } - // 清空routingRevisionMap,为component表重新计数 - routingRevisionMap.clear(); - if (!routingComponentList.isEmpty()) { Integer oldOperationId; for (RoutingComponentVo routingComponent : routingComponentList) { @@ -2322,25 +2323,18 @@ public class PartInformationServiceImpl extends ServiceImpl