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