From e1e8106db747f14eb9ed49d4faa85b2921447725 Mon Sep 17 00:00:00 2001 From: "castle.zang" Date: Sun, 17 Nov 2024 19:34:47 +0800 Subject: [PATCH] =?UTF-8?q?PTR=E9=80=BB=E8=BE=91=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../schedulejob/MesCreatePullOrderOfflineJob.java | 2 +- .../MesCreateSortRuleCfgOfflineJob.java | 2 +- .../base/roundness/MesPackageRoundnessService.java | 2 +- .../serviceimpl/busi/MesCreateWorkOrderImpl.java | 54 +++++++++++++--------- 4 files changed, 36 insertions(+), 24 deletions(-) diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/schedulejob/MesCreatePullOrderOfflineJob.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/schedulejob/MesCreatePullOrderOfflineJob.java index 7a94622..f9bfb14 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/schedulejob/MesCreatePullOrderOfflineJob.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/schedulejob/MesCreatePullOrderOfflineJob.java @@ -44,7 +44,7 @@ public class MesCreatePullOrderOfflineJob extends BaseMesScheduleJob { @Override public void executeMesJob(JobExecutionContext context, ApplicationProperties applicationProperties) { - Map paramMap = (Map) JSONObject.parse(jobParam); + Map paramMap = (Map) JSONObject.parse(this.getJobParam()); try { String organizeCode = (String) paramMap.get("organizeCode"); List pullCodeList = (List) paramMap.get("pullCodeList"); diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/schedulejob/MesCreateSortRuleCfgOfflineJob.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/schedulejob/MesCreateSortRuleCfgOfflineJob.java index 77b3c64..fe6b06b 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/schedulejob/MesCreateSortRuleCfgOfflineJob.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/schedulejob/MesCreateSortRuleCfgOfflineJob.java @@ -46,7 +46,7 @@ public class MesCreateSortRuleCfgOfflineJob extends BaseMesScheduleJob { @Override public void executeMesJob(JobExecutionContext context, ApplicationProperties applicationProperties) { - Map paramMap = (Map) JSONObject.parse(jobParam); + Map paramMap = (Map) JSONObject.parse(this.getJobParam()); try { String organizeCode = (String) paramMap.get("organizeCode"); List groupCodeList = (List) paramMap.get("partProdCodeList"); 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 29044cd..846a005 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 @@ -196,7 +196,7 @@ public class MesPackageRoundnessService implements IRoundnessStrategy { return; } - mesCreateWorkOrder.createWorkOrder(partProdGroup, mesPartProdGroupDetail, mesPart, sortInfo,productSeq); + mesCreateWorkOrder.createWorkOrder(partProdGroup, mesPartProdGroupDetail, mesPart, sortInfo,productSeq); // doCreateWorkOrder(partProdGroup, mesPartProdGroupDetail, mesPart, sortInfo); qty -= custQty; sortInfoList.remove(sortInfo); 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 ca6deea..697745e 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 @@ -302,16 +302,7 @@ public class MesCreateWorkOrderImpl implements IMesCreateWorkOrder { workOrderPartList = dismantleBom(mesPartProdGroupDetail.getProductPartNo(), mesWorkOrder.getQty(), sortInfo.getMatchTime(), bom.getBomCode(), sortInfo.getOrganizeCode(), mesPartProdGroupDetail.getWorkCellCode(), mesWorkOrder.getWorkOrderNo()); } - /** - * 工单号修改 - * {ORG}{dynamicRule}{dynamicRule}{dynamicrule}{serialNo} - * 工厂代码+工单类型 +客户工厂代码+班次+流水号 - */ - GenSerialNoModel genSerialNoModel = new GenSerialNoModel("MES_WORK_ORDER_NO_WU_HAN"); - List resultList = syncFuncService.syncSerialNo(genSerialNoModel.organizeCode(organizeCode), "edi", mesPartProdGroupDetail.getOrganizeCode(), 1).getResultList(); - String serialNo = resultList.get(0).replace("MES_WORK_ORDER_NO_WU_HAN", ""); - String orderNoWuHan = organizeCode + mesWorkOrder.getOrderFlag() + sortInfo.getCustOrderCode() + mesWorkOrder.getShiftCode() + serialNo; - mesWorkOrder.setWorkOrderNo(orderNoWuHan); + /** * 总成拆bom,变成子零件 @@ -357,14 +348,16 @@ public class MesCreateWorkOrderImpl implements IMesCreateWorkOrder { List custPtrPartList = Arrays.asList(ptrInfo.split("\\|")); boolean ptrFlag = false; boolean fOrderFlag = false; + List assemblyList = new ArrayList<>(); if (!workOrderPartList.isEmpty()) { //是否基于排序加工规则--待定 //查询装配目视项 - List assemblyList = getAssemblyList(mesWorkOrder.getWorkCenterCode(), mesWorkOrder.getCarModelCode(), workOrderPartList, partProdGroup); + assemblyList = getAssemblyList(mesWorkOrder.getWorkCenterCode(), mesWorkOrder.getCarModelCode(), workOrderPartList, partProdGroup); //ptr信息 List partNoList = workOrderPartList.stream().map(MesWorkOrderPart::getPartNo).collect(Collectors.toList()); List partPtrList = getPartPtrList(organizeCode, mesWorkOrder.getWorkCenterCode(), partNoList); //遍历workOrderPartList + for (MesWorkOrderPart orderPart : workOrderPartList) { List ptr = partPtrList.stream().filter(item -> item.getSrcPartNo().equals(orderPart.getPartNo())).collect(Collectors.toList()); if (ptr.isEmpty()) { @@ -378,8 +371,10 @@ public class MesCreateWorkOrderImpl implements IMesCreateWorkOrder { break; } } + MesPartPtr mesPartPtr = null; MesPartPtrDetail mesPartPtrDetail = null; + if (isCust) { //查找客户发送的ptr信息 List custPartPtrList = ptr.stream().filter(item -> item.getIsCustomerSendPrtInfo() == CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue() && custPtrPartList.contains(item.getSrcPartNo())).collect(Collectors.toList()); @@ -389,7 +384,7 @@ public class MesCreateWorkOrderImpl implements IMesCreateWorkOrder { } else { //获取相同总成的ptrId 在ptr详情中 List custPartPtrList = ptr.stream().filter(item -> item.getIsCustomerSendPrtInfo() == null || item.getIsCustomerSendPrtInfo() != CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue()).collect(Collectors.toList()); - if (!custPtrPartList.isEmpty()) { + if (!custPartPtrList.isEmpty()) { mesPartPtr = custPartPtrList.get(0); //查询ptr总成--只有特定总成才会替换 DdlPackBean detailPartPtr = DdlPackBean.getDdlPackBean(organizeCode); @@ -423,15 +418,22 @@ public class MesCreateWorkOrderImpl implements IMesCreateWorkOrder { ConvertBean.saveOrUpdate(mesPartPtrDetail, "JOB"); partPtrDetailRao.update(mesPartPtrDetail); } - List orderAssemblyList = assemblyList.stream().filter(item -> item.getAssemblyPartNo().equals(orderPart.getPartNo())).collect(Collectors.toList()); - MesWorkOrderAssembly orderAssembly = orderAssemblyList.get(0); - orderAssembly.setAssemblyPartNo(mesPartSap.getPartNo()); - orderAssembly.setAssemblyPartName(mesPartSap.getPartName()); - orderAssembly.setMatchRule(mesPartPtr.getReplacePartSnRule()); - ptrInfos.append("INFO|").append(mesPartPtr.getId()); - if (mesPartPtrDetail != null) { - ptrInfos.append("PART|").append(mesPartPtrDetail.getId()); + MesWorkOrderAssembly orderAssemblyList = null; + for (MesWorkOrderAssembly orderAssembly : assemblyList) { + String assemblyPartNo = orderAssembly.getAssemblyPartNo(); + if (StringUtils.isNotBlank(assemblyPartNo) && assemblyPartNo.equals(mesPartPtr.getSrcPartNo())){ + orderAssemblyList = orderAssembly; + } } + if (!Objects.isNull(orderAssemblyList)){ + orderAssemblyList.setAssemblyPartNo(mesPartSap.getPartNo()); + orderAssemblyList.setAssemblyPartName(mesPartSap.getPartName()); + orderAssemblyList.setMatchRule(mesPartPtr.getReplacePartSnRule()); + ptrInfos.append("INFO|").append(mesPartPtr.getId()); + if (mesPartPtrDetail != null) { + ptrInfos.append("PART|").append(mesPartPtrDetail.getId()); + } + } } } @@ -442,7 +444,17 @@ public class MesCreateWorkOrderImpl implements IMesCreateWorkOrder { }else { mesWorkOrder.setOrderFlag(MesExtEnumUtil.ORDER_TYPE_IDENTIFICATION.N.getValue()); } - List assemblyList = new ArrayList<>(); + /** + * 工单号修改 + * {ORG}{dynamicRule}{dynamicRule}{dynamicrule}{serialNo} + * 工厂代码+工单类型 +客户工厂代码+班次+流水号 + */ + GenSerialNoModel genSerialNoModel = new GenSerialNoModel("MES_WORK_ORDER_NO_WU_HAN"); + List resultList = syncFuncService.syncSerialNo(genSerialNoModel.organizeCode(organizeCode), "edi", mesPartProdGroupDetail.getOrganizeCode(), 1).getResultList(); + String serialNo = resultList.get(0).replace("MES_WORK_ORDER_NO_WU_HAN", ""); + String orderNoWuHan = organizeCode + mesWorkOrder.getOrderFlag() + sortInfo.getCustOrderCode() + mesWorkOrder.getShiftCode() + serialNo; + mesWorkOrder.setWorkOrderNo(orderNoWuHan); + if (!workOrderPartList.isEmpty()) { for (MesWorkOrderPart orderPart : workOrderPartList) { orderPart.setOrganizeCode(organizeCode);