From 72ca534717ebed5b3765a69e52c27e0ad33ae7fc Mon Sep 17 00:00:00 2001 From: jason Date: Wed, 21 May 2025 14:13:33 +0800 Subject: [PATCH] =?UTF-8?q?=E5=90=88=E5=B9=B6=E6=88=90=E9=83=BD=E6=89=93?= =?UTF-8?q?=E5=8D=B0=E5=8F=8A=E6=9D=A1=E7=A0=81=E7=94=9F=E6=88=90=E5=AE=A2?= =?UTF-8?q?=E6=88=B7=E9=9B=B6=E4=BB=B6=E5=8F=B7=E5=8F=96=E5=BE=85=E5=BC=80?= =?UTF-8?q?=E7=A5=A8=E7=89=A9=E6=96=99=E4=B8=AD=E7=9A=84=E5=AE=A2=E6=88=B7?= =?UTF-8?q?=E9=9B=B6=E4=BB=B6=E5=8F=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../strategy/ChengDuSplitFixCharPrintStrategy.java | 55 +++++++++------------- .../print/strategy/ChengDuSplitPrintStrategy.java | 32 ++++--------- .../strategy/ChengDuVolvoPartPrintStrategy.java | 14 ++---- 3 files changed, 35 insertions(+), 66 deletions(-) diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/print/strategy/ChengDuSplitFixCharPrintStrategy.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/print/strategy/ChengDuSplitFixCharPrintStrategy.java index 1a1ebae..670f76c 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/print/strategy/ChengDuSplitFixCharPrintStrategy.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/print/strategy/ChengDuSplitFixCharPrintStrategy.java @@ -11,22 +11,23 @@ import cn.estsh.i3plus.mes.pcn.api.iservice.busi.ISyncFuncService; import cn.estsh.i3plus.mes.pcn.util.DateUtil; import cn.estsh.i3plus.platform.common.convert.ConvertBean; import cn.estsh.i3plus.platform.common.tool.TimeTool; -import cn.estsh.i3plus.pojo.base.bean.DdlPackBean; import cn.estsh.i3plus.pojo.base.codemaker.SnowflakeIdMaker; -import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack; -import cn.estsh.i3plus.pojo.mes.bean.*; +import cn.estsh.i3plus.pojo.mes.bean.MesNumberRule; +import cn.estsh.i3plus.pojo.mes.bean.MesPart; +import cn.estsh.i3plus.pojo.mes.bean.MesProduceSn; import cn.estsh.i3plus.pojo.mes.model.GenSerialNoModel; import cn.estsh.i3plus.pojo.mes.model.StationRequestBean; import cn.estsh.i3plus.pojo.mes.model.StepResult; -import cn.estsh.i3plus.pojo.mes.repository.MesCustPartInvoicedRepository; import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; -import org.springframework.util.CollectionUtils; import org.springframework.util.StringUtils; -import java.util.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; /** * @Description : 装配目视单标签打印 @@ -52,27 +53,23 @@ public class ChengDuSplitFixCharPrintStrategy implements IPrintTemplateStrategyS @Autowired private IMesCustomerPartService mesCustomerPartService; - @Autowired - private MesCustPartInvoicedRepository partInvoicedRao; @Override public MesProduceSnPrintModel execute(GenSerialNoModel genSerialNoModel, MesProduceSnPrintModel mesProduceSnPrintModel, MesNumberRule numberRule, StepResult stepResult, StationRequestBean reqBean, Boolean isStep) { String organizeCode = mesProduceSnPrintModel.getOrganizeCode(); //物料信息 MesPart mesPart = mesPartService.getMesPartByPartNo(mesProduceSnPrintModel.getPartNo(), organizeCode); - MesCustomerPart customerPart = (!Objects.isNull(genSerialNoModel) && !CollectionUtils.isEmpty(genSerialNoModel.getDataMap()) && genSerialNoModel.getDataMap().containsKey(MesCustomerPart.class.getSimpleName())) ? (MesCustomerPart) genSerialNoModel.getDataMap().get(MesCustomerPart.class.getSimpleName()) : mesCustomerPartService.getMesCustomerPart(organizeCode,mesProduceSnPrintModel.getPartNo()); + final String custPartNo = mesCustomerPartService.getCustPartNo(organizeCode,mesProduceSnPrintModel.getPartNo()); if (!isStep){ - if (!Objects.isNull(customerPart)) { - genSerialNoModel.setCustPartNo(customerPart.getCustPartNo()); - } + genSerialNoModel.setCustPartNo(custPartNo); for (int i = 0; i < mesProduceSnPrintModel.getPrintQty(); i++) { //保存条码信息 MesProduceSn produceSn = generateMesProduceSn(mesPart, syncFuncService.syncSerialNo(genSerialNoModel.partSnParam(mesPart.getPartSnParam()), mesProduceSnPrintModel.getUserName(), organizeCode, 1).getResultList().get(0).toString(), mesProduceSnPrintModel.getUserName(), mesProduceSnPrintModel.getQty()); //封装打印信息 - MesProduceSnPrintDataModel printDataModel = getModel(produceSn, customerPart); + MesProduceSnPrintDataModel printDataModel = getModel(produceSn, custPartNo); mesProduceSnPrintModel.getMesProduceSnPrintDataModelList().clear(); mesProduceSnPrintModel.getMesProduceSnList().add(produceSn); - Map printTemplateData = new HashMap<>(getPrintContextMap(produceSn, customerPart)); + Map printTemplateData = new HashMap<>(getPrintContextMap(produceSn, custPartNo)); mesProduceSnPrintModel.getPrintContextList().add(printTemplateData); //保存打印记录 mesProduceSnPrintModel.getMesPrintedSnLogList().add(mesPrintedSnLogService.getMesCustomPrintedSnLog(mesProduceSnPrintModel.getUserName(), organizeCode, printDataModel, printTemplateData)); @@ -80,9 +77,9 @@ public class ChengDuSplitFixCharPrintStrategy implements IPrintTemplateStrategyS }else{ MesProduceSn mesProduceSn = mesProduceSnPrintModel.getMesProduceSnList().get(0); //封装打印信息 - MesProduceSnPrintDataModel printDataModel = getModel(mesProduceSn, customerPart); + MesProduceSnPrintDataModel printDataModel = getModel(mesProduceSn, custPartNo); mesProduceSnPrintModel.getMesProduceSnPrintDataModelList().clear(); - Map printTemplateData = new HashMap<>(getPrintContextMap(mesProduceSn, customerPart)); + Map printTemplateData = new HashMap<>(getPrintContextMap(mesProduceSn, custPartNo)); List> printDataMapList = new ArrayList<>(); printDataMapList.add(printTemplateData); mesProduceSnPrintModel.getPrintContextList().add(packResultMap(mesProduceSnPrintModel, printDataMapList)); @@ -114,13 +111,11 @@ public class ChengDuSplitFixCharPrintStrategy implements IPrintTemplateStrategyS return mesProduceSn; } - private MesProduceSnPrintDataModel getModel(MesProduceSn produceSn, MesCustomerPart customerPart) { + private MesProduceSnPrintDataModel getModel(MesProduceSn produceSn, String custPartNo) { MesProduceSnPrintDataModel mesProduceSnPrintDataModel = new MesProduceSnPrintDataModel(); mesProduceSnPrintDataModel.setPartNo(produceSn.getPartNo()); mesProduceSnPrintDataModel.setPartName(produceSn.getPartName()); - if (!Objects.isNull(customerPart)) { - mesProduceSnPrintDataModel.setCustPartNo(customerPart.getCustPartNo()); - } + mesProduceSnPrintDataModel.setCustPartNo(custPartNo); mesProduceSnPrintDataModel.setBarcode(produceSn.getProductSn()); mesProduceSnPrintDataModel.setPrintDate(TimeTool.getNowTime(true)); mesProduceSnPrintDataModel.setUserName(produceSn.getCreateUser()); @@ -128,7 +123,7 @@ public class ChengDuSplitFixCharPrintStrategy implements IPrintTemplateStrategyS return mesProduceSnPrintDataModel; } - private Map getPrintContextMap(MesProduceSn produceSn, MesCustomerPart customerPart) { + private Map getPrintContextMap(MesProduceSn produceSn, String custPartNo) { Map result = new HashMap<>(); String[] splitSn = produceSn.getProductSn().split("#"); if (splitSn.length < 3) { @@ -137,19 +132,11 @@ public class ChengDuSplitFixCharPrintStrategy implements IPrintTemplateStrategyS result.put(MesPcnExtConstWords.PART_NO, produceSn.getPartNo()); result.put(MesPcnExtConstWords.PART_NAME, produceSn.getPartName()); - DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(produceSn.getOrganizeCode()); - DdlPreparedPack.getStringEqualPack(produceSn.getPartNo(), "partNo", ddlPackBean); - MesCustPartInvoiced invoiced = partInvoicedRao.getByProperty(ddlPackBean); - if (invoiced != null && !StringUtils.isEmpty(invoiced.getCustPartNo())) { - result.put(MesPcnExtConstWords.CUST_PART_NO, invoiced.getCustPartNo()); - } else { - if (!Objects.isNull(customerPart)) { - result.put(MesPcnExtConstWords.CUST_PART_NO, customerPart.getCustPartNo()); - } - if (!StringUtils.isEmpty(splitSn[0])) { - result.put("FIX_PART", splitSn[0].substring(0, 1)); - result.put(MesPcnExtConstWords.CUST_PART_NO, splitSn[0].substring(1)); - } + if (!StringUtils.isEmpty(custPartNo)) { + result.put(MesPcnExtConstWords.CUST_PART_NO, custPartNo); + } else if (!StringUtils.isEmpty(splitSn[0])) { + result.put("FIX_PART", splitSn[0].substring(0, 1)); + result.put(MesPcnExtConstWords.CUST_PART_NO, splitSn[0].substring(1)); } if (!StringUtils.isEmpty(splitSn[1])) { diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/print/strategy/ChengDuSplitPrintStrategy.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/print/strategy/ChengDuSplitPrintStrategy.java index c05441d..85945eb 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/print/strategy/ChengDuSplitPrintStrategy.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/print/strategy/ChengDuSplitPrintStrategy.java @@ -8,26 +8,21 @@ import cn.estsh.i3plus.ext.mes.pcn.pojo.model.MesProduceSnPrintDataModel; import cn.estsh.i3plus.ext.mes.pcn.pojo.model.MesProduceSnPrintModel; import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtConstWords; import cn.estsh.i3plus.mes.pcn.api.iservice.busi.ISyncFuncService; -import cn.estsh.i3plus.mes.pcn.util.DateUtil; import cn.estsh.i3plus.platform.common.convert.ConvertBean; import cn.estsh.i3plus.platform.common.tool.TimeTool; -import cn.estsh.i3plus.pojo.base.bean.DdlPackBean; import cn.estsh.i3plus.pojo.base.codemaker.SnowflakeIdMaker; -import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack; -import cn.estsh.i3plus.pojo.mes.bean.*; +import cn.estsh.i3plus.pojo.mes.bean.MesNumberRule; +import cn.estsh.i3plus.pojo.mes.bean.MesPart; +import cn.estsh.i3plus.pojo.mes.bean.MesProduceSn; import cn.estsh.i3plus.pojo.mes.model.GenSerialNoModel; import cn.estsh.i3plus.pojo.mes.model.StationRequestBean; import cn.estsh.i3plus.pojo.mes.model.StepResult; -import cn.estsh.i3plus.pojo.mes.repository.MesCustPartInvoicedRepository; import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; -import org.springframework.util.CollectionUtils; import org.springframework.util.StringUtils; -import java.util.Objects; - /** * @Description : 装配目视单标签打印 * @Reference : @@ -52,24 +47,20 @@ public class ChengDuSplitPrintStrategy implements IPrintTemplateStrategyService @Autowired private IMesCustomerPartService mesCustomerPartService; - @Autowired - private MesCustPartInvoicedRepository partInvoicedRao; @Override public MesProduceSnPrintModel execute(GenSerialNoModel genSerialNoModel, MesProduceSnPrintModel mesProduceSnPrintModel, MesNumberRule numberRule, StepResult stepResult, StationRequestBean reqBean, Boolean isStep) { String organizeCode = mesProduceSnPrintModel.getOrganizeCode(); //物料信息 MesPart mesPart = mesPartService.getMesPartByPartNo(mesProduceSnPrintModel.getPartNo(), organizeCode); - MesCustomerPart customerPart = (!Objects.isNull(genSerialNoModel) && !CollectionUtils.isEmpty(genSerialNoModel.getDataMap()) && genSerialNoModel.getDataMap().containsKey(MesCustomerPart.class.getSimpleName())) ? (MesCustomerPart) genSerialNoModel.getDataMap().get(MesCustomerPart.class.getSimpleName()) : mesCustomerPartService.getMesCustomerPart(organizeCode,mesProduceSnPrintModel.getPartNo()); + final String custPartNo = mesCustomerPartService.getCustPartNo(organizeCode,mesProduceSnPrintModel.getPartNo()); if (!isStep){ - if (!Objects.isNull(customerPart)) { - genSerialNoModel.setCustPartNo(customerPart.getCustPartNo()); - } + genSerialNoModel.setCustPartNo(custPartNo); for (int i = 0; i < mesProduceSnPrintModel.getPrintQty(); i++) { //保存条码信息 MesProduceSn produceSn = generateMesProduceSn(mesPart, syncFuncService.syncSerialNo(genSerialNoModel.partSnParam(mesPart.getPartSnParam()), mesProduceSnPrintModel.getUserName(), organizeCode, 1).getResultList().get(0).toString(), mesProduceSnPrintModel.getUserName(), mesProduceSnPrintModel.getQty()); //封装打印信息 - MesProduceSnPrintDataModel printDataModel = getModel(produceSn, customerPart); + MesProduceSnPrintDataModel printDataModel = getModel(produceSn, custPartNo); mesProduceSnPrintModel.getMesProduceSnPrintDataModelList().add(printDataModel); mesProduceSnPrintModel.getMesProduceSnList().add(produceSn); //保存打印记录 @@ -78,7 +69,7 @@ public class ChengDuSplitPrintStrategy implements IPrintTemplateStrategyService }else{ MesProduceSn mesProduceSn = mesProduceSnPrintModel.getMesProduceSnList().get(0); //封装打印信息 - MesProduceSnPrintDataModel printDataModel = getModel(mesProduceSn, customerPart); + MesProduceSnPrintDataModel printDataModel = getModel(mesProduceSn, custPartNo); mesProduceSnPrintModel.getMesProduceSnPrintDataModelList().add(printDataModel); //保存打印记录 mesProduceSnPrintModel.getMesPrintedSnLogList().add(mesPrintedSnLogService.getMesPrintedSnLog(mesProduceSnPrintModel.getUserName(), organizeCode, printDataModel)); @@ -107,7 +98,7 @@ public class ChengDuSplitPrintStrategy implements IPrintTemplateStrategyService return mesProduceSn; } - private MesProduceSnPrintDataModel getModel(MesProduceSn produceSn, MesCustomerPart customerPart) { + private MesProduceSnPrintDataModel getModel(MesProduceSn produceSn, String custPartNo) { MesProduceSnPrintDataModel mesProduceSnPrintDataModel = new MesProduceSnPrintDataModel(); String[] splitSn = produceSn.getProductSn().split("#"); if (splitSn.length < 3) { @@ -116,11 +107,8 @@ public class ChengDuSplitPrintStrategy implements IPrintTemplateStrategyService mesProduceSnPrintDataModel.setPartNo(produceSn.getPartNo()); mesProduceSnPrintDataModel.setPartName(produceSn.getPartName()); - DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(produceSn.getOrganizeCode()); - DdlPreparedPack.getStringEqualPack(produceSn.getPartNo(), "partNo", ddlPackBean); - MesCustPartInvoiced invoiced = partInvoicedRao.getByProperty(ddlPackBean); - if (invoiced != null && !StringUtils.isEmpty(invoiced.getCustPartNo())) { - mesProduceSnPrintDataModel.setCustPartNo(invoiced.getCustPartNo()); + if (!StringUtils.isEmpty(custPartNo)) { + mesProduceSnPrintDataModel.setCustPartNo(custPartNo); } else { mesProduceSnPrintDataModel.setCustPartNo(splitSn[0] + "#"); } diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/print/strategy/ChengDuVolvoPartPrintStrategy.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/print/strategy/ChengDuVolvoPartPrintStrategy.java index b6d7766..bfb6621 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/print/strategy/ChengDuVolvoPartPrintStrategy.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/print/strategy/ChengDuVolvoPartPrintStrategy.java @@ -11,7 +11,6 @@ import cn.estsh.i3plus.ext.mes.pcn.pojo.model.MesProduceSnPrintModel; import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtConstWords; import cn.estsh.i3plus.mes.pcn.util.DateUtil; import cn.estsh.i3plus.platform.common.tool.TimeTool; -import cn.estsh.i3plus.pojo.mes.bean.MesCustomerPart; import cn.estsh.i3plus.pojo.mes.bean.MesNumberRule; import cn.estsh.i3plus.pojo.mes.bean.MesProduceSn; import cn.estsh.i3plus.pojo.mes.bean.MesWorkOrder; @@ -28,11 +27,8 @@ import com.google.zxing.WriterException; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; -import org.springframework.util.CollectionUtils; import org.springframework.util.StringUtils; -import javax.imageio.ImageIO; -import java.awt.image.BufferedImage; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.util.*; @@ -68,7 +64,7 @@ public class ChengDuVolvoPartPrintStrategy implements IPrintTemplateStrategyServ MesPcnException.throwBusiException("成都volvo零件标签打印只支持工位端打印!"); } //物料信息 - MesCustomerPart customerPart = (!Objects.isNull(genSerialNoModel) && !CollectionUtils.isEmpty(genSerialNoModel.getDataMap()) && genSerialNoModel.getDataMap().containsKey(MesCustomerPart.class.getSimpleName())) ? (MesCustomerPart) genSerialNoModel.getDataMap().get(MesCustomerPart.class.getSimpleName()) : mesCustomerPartService.getMesCustomerPart(organizeCode,mesProduceSnPrintModel.getPartNo()); + final String custPartNo = mesCustomerPartService.getCustPartNo(organizeCode,mesProduceSnPrintModel.getPartNo()); // 工单信息 MesWorkOrder workOrder = (MesWorkOrder) mesProduceSnPrintModel.getSourceData(); MesProduceSn mesProduceSn = produceSnExtService.getProduceSnByCustSn(organizeCode, workOrder.getCustSn()); @@ -76,7 +72,7 @@ public class ChengDuVolvoPartPrintStrategy implements IPrintTemplateStrategyServ MesPcnException.throwBusiException("客户条码[%s]不存在!", workOrder.getCustSn()); } //封装打印信息 - MesProduceSnPrintDataModel printDataModel = getModel(mesProduceSn, customerPart); + MesProduceSnPrintDataModel printDataModel = getModel(mesProduceSn, custPartNo); mesProduceSnPrintModel.getMesProduceSnPrintDataModelList().clear(); Map printTemplateData = new HashMap<>(getPrintContextMap(mesProduceSn, workOrder)); List> printDataMapList = new ArrayList<>(); @@ -88,13 +84,11 @@ public class ChengDuVolvoPartPrintStrategy implements IPrintTemplateStrategyServ return mesProduceSnPrintModel; } - private MesProduceSnPrintDataModel getModel(MesProduceSn produceSn, MesCustomerPart customerPart) { + private MesProduceSnPrintDataModel getModel(MesProduceSn produceSn, String custPartNo) { MesProduceSnPrintDataModel mesProduceSnPrintDataModel = new MesProduceSnPrintDataModel(); mesProduceSnPrintDataModel.setPartNo(produceSn.getPartNo()); mesProduceSnPrintDataModel.setPartName(produceSn.getPartName()); - if (!Objects.isNull(customerPart)) { - mesProduceSnPrintDataModel.setCustPartNo(customerPart.getCustPartNo()); - } + mesProduceSnPrintDataModel.setCustPartNo(custPartNo); mesProduceSnPrintDataModel.setBarcode(produceSn.getCustSn()); mesProduceSnPrintDataModel.setPrintDate(TimeTool.getNowTime(true)); mesProduceSnPrintDataModel.setUserName(produceSn.getCreateUser());