From 64002c88f4db8aa64453a1075e54a942874176cf Mon Sep 17 00:00:00 2001 From: "castle.zang" Date: Wed, 18 Dec 2024 18:03:17 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8Dbug=2044421=20PTR=E9=80=BB?= =?UTF-8?q?=E8=BE=91=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../serviceimpl/busi/MesCreateWorkOrderImpl.java | 29 +++++++++++++++++----- 1 file changed, 23 insertions(+), 6 deletions(-) diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/busi/MesCreateWorkOrderImpl.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/busi/MesCreateWorkOrderImpl.java index 887321a..c3594f1 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/busi/MesCreateWorkOrderImpl.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/busi/MesCreateWorkOrderImpl.java @@ -357,7 +357,7 @@ public class MesCreateWorkOrderImpl implements IMesCreateWorkOrder { //客户ptr信息 StringBuilder ptrInfos = new StringBuilder(); String ptrInfo = mesWorkOrder.getPtrInfo(); - List custPtrPartList = Arrays.asList(ptrInfo.split("\\|")); + List custPtrPartList = Arrays.asList(ptrInfo.replaceAll("_","").split("\\|")); boolean ptrFlag = false; boolean custFlag = false; boolean fOrderFlag = false; @@ -369,8 +369,22 @@ public class MesCreateWorkOrderImpl implements IMesCreateWorkOrder { //ptr信息 List partNoList = workOrderPartList.stream().map(MesWorkOrderPart::getPartNo).collect(Collectors.toList()); List partPtrList = getPartPtrList(organizeCode, mesWorkOrder.getWorkCenterCode(), partNoList); + /** + * ptr 拆分成两种情况 + * 1.客户ptr - PTR单 + * 1.1 客户报文中给的是目标零件号 + * 1.2 客户ptr时,ptr详情一定要为空 + * 1.3 客户ptr时,ptr主表中是否卫客户发送ptr信息为选中 + * + * 2.内部ptr - PTR单 + * 2.1 拆分bom,有替换就替换 + * 2.2 是否内部PTR 不看 + * + * 3.内部PTR - F单 + * 2.1 拆分bom,有替换就替换 + * 2.2 如果选择了内部ptr 就是F单 + */ //遍历workOrderPartList - for (MesWorkOrderPart orderPart : workOrderPartList) { List ptr = partPtrList.stream().filter(item -> item.getSrcPartNo().equals(orderPart.getPartNo())).collect(Collectors.toList()); if (ptr.isEmpty()) { @@ -379,7 +393,7 @@ public class MesCreateWorkOrderImpl implements IMesCreateWorkOrder { //判断是否是客户替换 boolean isCust = false; for (MesPartPtr mesPartPtr : ptr) { - if (custPtrPartList.contains(mesPartPtr.getSrcPartNo())) { + if (custPtrPartList.contains(mesPartPtr.getSeqInfoPrtPart()) && mesPartPtr.getIsCustomerSendPrtInfo() == CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue()) { isCust = true; break; } @@ -390,7 +404,7 @@ public class MesCreateWorkOrderImpl implements IMesCreateWorkOrder { if (isCust) { //查找客户发送的ptr信息 - List custPartPtrList = ptr.stream().filter(item -> item.getIsCustomerSendPrtInfo() == CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue() && custPtrPartList.contains(item.getSrcPartNo())).collect(Collectors.toList()); + List custPartPtrList = ptr.stream().filter(item -> item.getIsCustomerSendPrtInfo() == CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue() && custPtrPartList.contains(item.getSeqInfoPrtPart())).collect(Collectors.toList()); if (!custPartPtrList.isEmpty()) { mesPartPtr = custPartPtrList.get(0); } @@ -479,9 +493,12 @@ public class MesCreateWorkOrderImpl implements IMesCreateWorkOrder { } if (ptrFlag && custFlag){ mesWorkOrder.setOrderFlag(MesExtEnumUtil.ORDER_TYPE_IDENTIFICATION.PTR.getValue()); - }else if (ptrFlag){ + }else if (ptrFlag && fOrderFlag){ mesWorkOrder.setOrderFlag(MesExtEnumUtil.ORDER_TYPE_IDENTIFICATION.F.getValue()); - }else { + }else if (ptrFlag){ + mesWorkOrder.setOrderFlag(MesExtEnumUtil.ORDER_TYPE_IDENTIFICATION.PTR.getValue()); + } + else { mesWorkOrder.setOrderFlag(MesExtEnumUtil.ORDER_TYPE_IDENTIFICATION.N.getValue()); }