diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/roundness/MesPackageRoundnessService.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/roundness/MesPackageRoundnessService.java index 1b8efa3..bfb43a8 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/roundness/MesPackageRoundnessService.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/roundness/MesPackageRoundnessService.java @@ -379,6 +379,7 @@ public class MesPackageRoundnessService implements IRoundnessStrategy { * 总成拆bom,变成子零件 * 替换子零件,通过替换后的零件,去找排序工艺 */ + Map ptrRuleListMap = new HashMap<>(); //是否修改为P单 boolean isModifyPOrder = false; //查询mes_part_ptr表,根据物料清单查找ptr替换信息 @@ -409,6 +410,7 @@ public class MesPackageRoundnessService implements IRoundnessStrategy { } List partNoList = workOrderPartList.stream().map(MesWorkOrderPart::getPartNo).collect(Collectors.toList()); List partPtrList = getPartPtrList(organizeCode, mesWorkOrder.getWorkCenterCode(), partNoList); + //装配件规则如果进行了零件替换 则使用ptr的规则 key 零件号,value 是规则 for (MesPartPtr mesPartPtr : partPtrList) { //根据mesPartPtr的目标零件号,找到零件信息 @@ -421,11 +423,12 @@ public class MesPackageRoundnessService implements IRoundnessStrategy { orderPart.setPartNo(mesPartSap.getPartNo()); orderPart.setPartName(mesPartSap.getPartName()); orderPart.setShippingPartNo(mesPartSap.getPartNo()); + ptrRuleListMap.put(mesPartSap.getPartNo(), mesPartPtr.getReplacePartSnRule()); if (!isModifyPOrder){ isModifyPOrder = true; } //更新mes_part_ptr的实际数量 + 1 - mesPartPtr.setPrtVehicleActualCount(mesPartPtr.getPrtVehicleActualCount() + 1); + mesPartPtr.setPrtVehicleActualCount(mesPartPtr.getPrtVehicleActualCount() + 1); ConvertBean.saveOrUpdate(mesPartPtr,"JOB"); partPtrRao.update(mesPartPtr); DdlPackBean partPtrDetailPackBean = DdlPackBean.getDdlPackBean(organizeCode); @@ -490,6 +493,9 @@ public class MesPackageRoundnessService implements IRoundnessStrategy { mesWorkOrderService.doSaveWorkOrderPrintQueue(mesWorkOrder); if (!assemblyList.isEmpty()) { for (MesWorkOrderAssembly orderAssembly : assemblyList) { + if (ptrRuleListMap.get(orderAssembly.getPartNo()) != null){ + orderAssembly.setMatchRule(ptrRuleListMap.get(orderAssembly.getPartNo())); + } orderAssembly.setPartNo(mesWorkOrder.getPartNo()); orderAssembly.setPartName(mesWorkOrder.getPartName()); orderAssembly.setWorkOrderNo(mesWorkOrder.getWorkOrderNo());