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 816af80..a2076b3 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 @@ -1,9 +1,8 @@ package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.print.strategy; import cn.estsh.i3plus.ext.mes.pcn.api.base.IMesCustomerPartService; -import cn.estsh.i3plus.ext.mes.pcn.api.base.IMesPartService; import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesPrintedSnLogService; -import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesWorkOrderService; +import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProduceSnExtService; import cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.print.IPrintTemplateStrategyService; import cn.estsh.i3plus.ext.mes.pcn.apiservice.util.MesPcnException; import cn.estsh.i3plus.ext.mes.pcn.pojo.model.MesProduceSnPrintDataModel; @@ -11,10 +10,12 @@ 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.codemaker.SnowflakeIdMaker; -import cn.estsh.i3plus.pojo.mes.bean.*; +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; import cn.estsh.i3plus.pojo.mes.bean.edi.cd.MesCimVolvoJisRackId; import cn.estsh.i3plus.pojo.mes.bean.edi.cd.MesCimVolvoJisRackIdDetail; import cn.estsh.i3plus.pojo.mes.bean.shipping.MesCustSortInfo; @@ -24,7 +25,6 @@ import cn.estsh.i3plus.pojo.mes.model.StepResult; import cn.estsh.i3plus.pojo.mes.repository.MesCustSoftInfoRepository; import cn.estsh.i3plus.pojo.mes.repository.edi.cd.MesCimVolvoJisRackIdDetailRepository; import cn.estsh.i3plus.pojo.mes.repository.edi.cd.MesCimVolvoJisRackIdRepository; -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; @@ -50,37 +50,39 @@ public class ChengDuVolvoPartPrintStrategy implements IPrintTemplateStrategyServ private SnowflakeIdMaker snowflakeIdMaker; @Autowired - private IMesPartService mesPartService; - - @Autowired private IMesPrintedSnLogService mesPrintedSnLogService; @Autowired private IMesCustomerPartService mesCustomerPartService; @Autowired - private IMesWorkOrderService mesWorkOrderService; - @Autowired private MesCustSoftInfoRepository custSoftInfoRDao; @Autowired private MesCimVolvoJisRackIdDetailRepository rackIdDetailRDao; @Autowired private MesCimVolvoJisRackIdRepository volvoJisRackIdRDao; + @Autowired + private IMesProduceSnExtService produceSnExtService; @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()); if (!isStep){ 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()); + Map modelMap = (Map) mesProduceSnPrintModel.getSourceData(); + // 工单信息 + MesWorkOrder workOrder = (MesWorkOrder) modelMap.get("mesWorkOrder"); + MesProduceSn mesProduceSn = produceSnExtService.getProduceSnByCustSn(organizeCode, workOrder.getCustSn()); + if (mesProduceSn == null) { + MesPcnException.throwBusiException("客户条码[%s]不存在!", workOrder.getCustSn()); + } - MesProduceSn mesProduceSn = mesProduceSnPrintModel.getMesProduceSnList().get(0); //封装打印信息 MesProduceSnPrintDataModel printDataModel = getModel(mesProduceSn, customerPart); mesProduceSnPrintModel.getMesProduceSnPrintDataModelList().clear(); - Map printTemplateData = new HashMap<>(getPrintContextMap(mesProduceSn, customerPart)); + Map printTemplateData = new HashMap<>(getPrintContextMap(mesProduceSn, workOrder)); List> printDataMapList = new ArrayList<>(); printDataMapList.add(printTemplateData); mesProduceSnPrintModel.getPrintContextList().add(packResultMap(mesProduceSnPrintModel, printDataMapList)); @@ -90,27 +92,6 @@ public class ChengDuVolvoPartPrintStrategy implements IPrintTemplateStrategyServ return mesProduceSnPrintModel; } - private MesProduceSn generateMesProduceSn(MesPart mesPart, String sn, String userName, Double qty) { - MesProduceSn mesProduceSn = new MesProduceSn(); - mesProduceSn.setSerialNumber(snowflakeIdMaker.nextId() + ""); - mesProduceSn.setProductSn(sn); - mesProduceSn.setCustSn(sn); - mesProduceSn.setPartNo(mesPart.getPartNo()); - mesProduceSn.setPartName(mesPart.getPartName()); - mesProduceSn.setProcessLabelTemplate(mesPart.getProcessLabelTemplate()); - mesProduceSn.setCustLabelTemplate(mesPart.getCustLabelTemplate()); - mesProduceSn.setProdLabelTemplate(mesPart.getProductLabelTemplate()); - mesProduceSn.setQty(qty); - mesProduceSn.setSnStatus(MesExtEnumUtil.PRODUCE_SN_STATUS.CREATE.getValue()); - mesProduceSn.setQcStatus(MesExtEnumUtil.PRODUCE_QC_STATUS.QUALIFIED.getValue()); - mesProduceSn.setLotNo(TimeTool.getToday()); - mesProduceSn.setPrintCount(MesPcnExtConstWords.ONE); - mesProduceSn.setPrintStatus(MesExtEnumUtil.PRINT_STATUS.PRINTED.getValue()); - mesProduceSn.setOrganizeCode(mesPart.getOrganizeCode()); - ConvertBean.serviceModelInitialize(mesProduceSn, userName); - return mesProduceSn; - } - private MesProduceSnPrintDataModel getModel(MesProduceSn produceSn, MesCustomerPart customerPart) { MesProduceSnPrintDataModel mesProduceSnPrintDataModel = new MesProduceSnPrintDataModel(); mesProduceSnPrintDataModel.setPartNo(produceSn.getPartNo()); @@ -118,17 +99,16 @@ public class ChengDuVolvoPartPrintStrategy implements IPrintTemplateStrategyServ if (!Objects.isNull(customerPart)) { mesProduceSnPrintDataModel.setCustPartNo(customerPart.getCustPartNo()); } - mesProduceSnPrintDataModel.setBarcode(produceSn.getProductSn()); + mesProduceSnPrintDataModel.setBarcode(produceSn.getCustSn()); mesProduceSnPrintDataModel.setPrintDate(TimeTool.getNowTime(true)); mesProduceSnPrintDataModel.setUserName(produceSn.getCreateUser()); mesProduceSnPrintDataModel.setProductDate(TimeTool.parseStringFormat(produceSn.getLotNo(), DateUtil.SHORT_FORMAT, "yyyy/MM/dd")); return mesProduceSnPrintDataModel; } - private Map getPrintContextMap(MesProduceSn produceSn, MesCustomerPart customerPart) { - MesWorkOrder workOrder = mesWorkOrderService.getWorkOrderNoByCustSn(produceSn.getOrganizeCode(), produceSn.getProductSn()); + private Map getPrintContextMap(MesProduceSn produceSn, MesWorkOrder workOrder) { if (workOrder == null || StringUtils.isEmpty(workOrder.getWorkOrderSource())) { - MesPcnException.throwBusiException("客户条码[%s]对应的工单信息不存在!", produceSn.getProductSn()); + MesPcnException.throwBusiException("客户条码[%s]对应的工单信息缺少来源!", workOrder.getCustSn()); } MesCustSortInfo custSoftInfo = custSoftInfoRDao.getById(Long.parseLong(workOrder.getWorkOrderSource())); @@ -152,7 +132,7 @@ public class ChengDuVolvoPartPrintStrategy implements IPrintTemplateStrategyServ result.put(MesPcnExtConstWords.VOLVO_RACKID, rackId.getJisRackId()); result.put(MesPcnExtConstWords.VOLVO_POSITION, rackIdDetail.getPosition()); result.put(MesPcnExtConstWords.CUST_PART_NO, custSoftInfo.getCustPartNo()); - result.put(MesPcnExtConstWords.PRINT_BAR_CODE, produceSn.getProductSn()); + result.put(MesPcnExtConstWords.PRINT_BAR_CODE, produceSn.getCustSn()); result.put(MesPcnExtConstWords.PRINT_DATE, TimeTool.getNowTime(true)); result.put(MesPcnExtConstWords.USER_NAME, produceSn.getCreateUser()); return result;