From 68f09d4fcf79aea1748a3740183d3562ac6b8a03 Mon Sep 17 00:00:00 2001 From: "castle.zang" Date: Tue, 24 Sep 2024 15:58:15 +0800 Subject: [PATCH] =?UTF-8?q?=E6=AD=A6=E6=B1=89=E5=B7=A5=E5=8D=95=E7=94=9F?= =?UTF-8?q?=E6=88=90=E9=98=9F=E5=88=97=E5=92=8C=E5=BA=8F=E5=88=97=E5=8F=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../base/roundness/MesPackageRoundnessService.java | 68 +++++++++++++++++----- 1 file changed, 55 insertions(+), 13 deletions(-) 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 75e94d3..0a26508 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 @@ -4,7 +4,6 @@ import cn.estsh.i3plus.ext.mes.api.base.IMesCustSoftInfoService; import cn.estsh.i3plus.ext.mes.api.base.strategy.IRoundnessStrategy; import cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.base.MesBomService; import cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.base.MesPartSapService; -import cn.estsh.i3plus.ext.mes.pojo.constant.MesCommonConstant; import cn.estsh.i3plus.mes.api.iservice.busi.ISyncFuncService; import cn.estsh.i3plus.platform.common.convert.ConvertBean; import cn.estsh.i3plus.platform.common.tool.TimeTool; @@ -85,6 +84,9 @@ public class MesPackageRoundnessService implements IRoundnessStrategy { @Autowired private MesProduceSnRepository mesProduceSnRao; + @Autowired + private MesQueueOrderRepository queueOrderRao; + @Override public void execute(MesPartProdGroup partProdGroup, List sortInfoList, List details) { try { @@ -188,7 +190,7 @@ public class MesPackageRoundnessService implements IRoundnessStrategy { //订单序号=客户排序信息的序号 mesWorkOrder.setWorkOrderSeq(sortInfo.getCustInfoSeq().toString()); mesWorkOrder.setOrganizeCode(sortInfo.getOrganizeCode()); - mesWorkOrder.setWorkCenterCode(mesPartProdGroupDetail.getWorkCenterCode()); + mesWorkOrder.setWorkCenterCode(partProdGroup.getWorkCenterCode()); mesWorkOrder.setWorkCellCode(mesPartProdGroupDetail.getWorkCellCode()); //来源 @@ -275,17 +277,7 @@ public class MesPackageRoundnessService implements IRoundnessStrategy { mesWorkOrder.setPartProdGroupCode(partProdGroup.getPartProdGroupCode()); mesWorkOrder.setCarModelCode(sortInfo.getVehicleNo()); - /** - * 工单号修改 - * {dynamicRule}{dynamicRule}{dynamicRule}{dynamicrule}{serialNo} - * 工厂代码+工单类型 +客户工厂代码+班次+流水号 - */ - GenSerialNoModel genSerialNoModel = new GenSerialNoModel("MES_WORK_ORDER_NO_WU_HAN"); - genSerialNoModel.setPartNo(mesPartProdGroupDetail.getWorkCenterCode()); - String dynamicRule=organizeCode+","+mesWorkOrder.getOrderFlag()+","+sortInfo.getCustOrderCode()+","+mesWorkOrder.getShiftCode(); - genSerialNoModel.setDynamicRule(dynamicRule); - List resultList = syncFuncService.syncSerialNo(genSerialNoModel.organizeCode(organizeCode), "edi", mesPartProdGroupDetail.getOrganizeCode(), 1).getResultList(); - mesWorkOrder.setWorkOrderNo(resultList.get(0)); + /** * RS 为记录分隔符ASCII:30 @@ -436,6 +428,28 @@ public class MesPackageRoundnessService implements IRoundnessStrategy { }else { mesWorkOrder.setOrderFlag(MesExtEnumUtil.ORDER_TYPE_IDENTIFICATION.N.getValue()); } + /** + * 工单号修改 + * {dynamicRule}{dynamicRule}{dynamicRule}{dynamicrule}{serialNo} + * 工厂代码+工单类型 +客户工厂代码+班次+流水号 + */ + GenSerialNoModel genSerialNoModel = new GenSerialNoModel("MES_WORK_ORDER_NO_WU_HAN"); + genSerialNoModel.setPartNo(mesPartProdGroupDetail.getWorkCenterCode()); + String dynamicRule=organizeCode+","+mesWorkOrder.getOrderFlag()+","+sortInfo.getCustOrderCode()+","+mesWorkOrder.getShiftCode(); + genSerialNoModel.setDynamicRule(dynamicRule); + List resultList = syncFuncService.syncSerialNo(genSerialNoModel.organizeCode(organizeCode), "edi", mesPartProdGroupDetail.getOrganizeCode(), 1).getResultList(); + mesWorkOrder.setWorkOrderNo(resultList.get(0)); + + /** + * 生产序号 + * 工厂-产线-9位流水号,跳号10 + */ + GenSerialNoModel prodSeqSerialNoModel = new GenSerialNoModel("MES_WORK_ORDER_NO_WU_HAN"); + prodSeqSerialNoModel.setProdLocation(mesWorkOrder.getWorkCenterCode()); + + List proSeqResultList = syncFuncService.syncSerialNo(prodSeqSerialNoModel.organizeCode(organizeCode), "edi", mesPartProdGroupDetail.getOrganizeCode(), 1).getResultList(); + String proSeqStr = proSeqResultList.get(0); + mesWorkOrder.setProduceSeq(Long.parseLong(proSeqStr.replace(organizeCode, "").replace(mesWorkOrder.getWorkCenterCode(),""))); mesWorkOrderRao.insert(mesWorkOrder); @@ -446,6 +460,31 @@ public class MesPackageRoundnessService implements IRoundnessStrategy { ConvertBean.saveOrUpdate(orderAssembly, "MES-JOB"); } workOrderAssemblyRao.saveAll(assemblyList); + + List cellCodeList = assemblyList.stream().map(MesWorkOrderAssembly::getWorkCellCode).distinct().collect(Collectors.toList()); + Map cell2Process = assemblyList.stream().collect(Collectors.toMap(MesWorkOrderAssembly::getWorkCellCode, MesWorkOrderAssembly::getProcessSeq)); + for (String cellCode : cellCodeList) { + MesQueueOrder mesQueueOrder = new MesQueueOrder(); + mesQueueOrder.setWorkOrderNo(mesWorkOrder.getWorkOrderNo()); + mesQueueOrder.setOrganizeCode(organizeCode); + mesQueueOrder.setWorkCellCode(cellCode); + mesQueueOrder.setPartProdGroupCode(partProdGroup.getPartProdGroupCode()); + mesQueueOrder.setPartProdGroupName(partProdGroup.getPartProdGroupName()); + mesQueueOrder.setProcessSeq(cell2Process.get(cellCode)); + mesQueueOrder.setPartNo(mesWorkOrder.getPartNo()); + mesQueueOrder.setPartName(mesWorkOrder.getPartName()); + mesQueueOrder.setWorkOrderNo(mesWorkOrder.getWorkOrderNo()); + mesQueueOrder.setSerialNumber(mesWorkOrder.getWorkOrderNo()); + mesQueueOrder.setProductSn(mesWorkOrder.getWorkOrderNo()); + mesQueueOrder.setCustSn(mesWorkOrder.getSn()); + mesQueueOrder.setStatus(MesExtEnumUtil.QUEUE_ORDER_STATUS.CREATE.getValue()); + mesQueueOrder.setProduceSeq(mesWorkOrder.getProduceSeq()); + mesQueueOrder.setWorkOrderSeq(mesWorkOrder.getWorkOrderSeq()); + mesQueueOrder.setCustPartNo(mesWorkOrder.getCustPartNo()); + ConvertBean.saveOrUpdate(mesQueueOrder, "MES-JOB"); + queueOrderRao.insert(mesQueueOrder); + } + } //生成条码表 @@ -494,6 +533,9 @@ public class MesPackageRoundnessService implements IRoundnessStrategy { if (StringUtils.isNotBlank(sortCfg.getVehicleNo()) && !sortCfg.getVehicleNo().equals(VehicleNo)){ continue; } + orderAssembly.setDisplaySeq(sortCfg.getDisplaySeq()); + orderAssembly.setDisplayValue(sortCfg.getDisplayValue()); + orderAssembly.setProcessSeq(sortCfg.getProcessSeq()); orderAssembly.setCraftName(sortCfg.getCraftName()); orderAssembly.setCraftCode(sortCfg.getCraftCode()); orderAssembly.setRouteSeq(sortCfg.getRouteSeq());