From 87ef87ccc91e1baad110ae801dede3003c4821a7 Mon Sep 17 00:00:00 2001 From: "castle.zang" Date: Thu, 9 Jan 2025 10:17:31 +0800 Subject: [PATCH] =?UTF-8?q?fix=20bug=2044747=20=E5=90=8C=E4=B8=80=E4=B8=AA?= =?UTF-8?q?=E5=8E=9F=E9=9B=B6=E4=BB=B6=E5=AF=B9=E5=BA=94=E5=A4=9A=E4=B8=AA?= =?UTF-8?q?PTR=E9=80=BB=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 | 26 +++++++++++++++------- 1 file changed, 18 insertions(+), 8 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 cef9094..88fa57e 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 @@ -438,14 +438,24 @@ public class MesCreateWorkOrderImpl implements IMesCreateWorkOrder { //获取相同总成的ptrId 在ptr详情中 List custPartPtrList = ptr.stream().filter(item -> item.getIsCustomerSendPrtInfo() == null || item.getIsCustomerSendPrtInfo() != CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue()).collect(Collectors.toList()); if (!custPartPtrList.isEmpty()) { - mesPartPtr = custPartPtrList.get(0); - //查询ptr总成--只有特定总成才会替换 - DdlPackBean detailPartPtr = DdlPackBean.getDdlPackBean(organizeCode); - DdlPreparedPack.getNumEqualPack(mesPartPtr.getId(), "ptrId", detailPartPtr); - DdlPreparedPack.getStringEqualPack(mesWorkOrder.getPartNo(), "totalPartNo", detailPartPtr); - List ptrDetailList = partPtrDetailRao.findByHqlWhere(detailPartPtr); - if (!ptrDetailList.isEmpty()) { - mesPartPtrDetail = ptrDetailList.get(0); + /** + * 修复bug 44747 同一个原零件对应多个ptr逻辑优化 + * 同一个原零件对应多个PTR,如果是内部PTR,需要去遍历每一个PTR的明细(总成零件号),不能是只找第一个PTR; + */ + for (MesPartPtr partPtr : custPartPtrList) { + //查询ptr总成--只有特定总成才会替换 + DdlPackBean detailPartPtr = DdlPackBean.getDdlPackBean(organizeCode); + DdlPreparedPack.getNumEqualPack(partPtr.getId(), "ptrId", detailPartPtr); + DdlPreparedPack.getStringEqualPack(mesWorkOrder.getPartNo(), "totalPartNo", detailPartPtr); + List ptrDetailList = partPtrDetailRao.findByHqlWhere(detailPartPtr); + if (!ptrDetailList.isEmpty()) { + mesPartPtrDetail = ptrDetailList.get(0); + mesPartPtr = partPtr; + break; + } + } + if (mesPartPtr == null){ + mesPartPtr = custPartPtrList.get(0); } } }