From 1cf4524daf07ad23c3ad477e7e0998c194d0f951 Mon Sep 17 00:00:00 2001 From: yxw Date: Mon, 30 Sep 2024 15:30:38 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=A2=E6=88=B7=E6=9D=A1=E7=A0=81=E6=89=93?= =?UTF-8?q?=E5=8D=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../print/strategy/CustSnPrintStrategy.java | 9 +++--- .../step/MesProductSnPrintSortStepService.java | 36 +++++++++++++--------- .../ext/mes/pcn/pojo/util/MesPcnExtConstWords.java | 3 +- 3 files changed, 28 insertions(+), 20 deletions(-) diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/print/strategy/CustSnPrintStrategy.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/print/strategy/CustSnPrintStrategy.java index 42fc015..af80064 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/print/strategy/CustSnPrintStrategy.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/print/strategy/CustSnPrintStrategy.java @@ -33,10 +33,10 @@ public class CustSnPrintStrategy implements IPrintTemplateStrategyService { MesNumberRule numberRule , StepResult stepResult, StationRequestBean reqBean, Boolean isStep) { - Map modelMap = (Map) model.getSourceData(); + MesWorkOrder workOrder = (MesWorkOrder) model.getSourceData(); // 工单信息 - MesWorkOrder workOrder = (MesWorkOrder) modelMap.get("mesWorkOrder"); + //MesWorkOrder workOrder = (MesWorkOrder) modelMap.get("mesWorkOrder"); if (workOrder == null) { log.info("CustSnPrintStrategy --- execute --- 工单信息为空"); @@ -57,7 +57,7 @@ public class CustSnPrintStrategy implements IPrintTemplateStrategyService { // 客户条码 resultMap.put(MesPcnExtConstWords.CUST_SN, workOrder.getCustSn()); // 客户零件号 前缀 排除后四位 - resultMap.put(MesPcnExtConstWords.CUST_PART_NO_PERFIX, custPartNoPrefix); + resultMap.put(MesPcnExtConstWords.CUST_PART_NO_PREFIX, custPartNoPrefix); // 客户零件号 后四位 resultMap.put(MesPcnExtConstWords.CUST_PART_NO_AFTER_FOUR, custPartNoAfterFour); @@ -146,7 +146,8 @@ public class CustSnPrintStrategy implements IPrintTemplateStrategyService { log.error("CustSnPrintStrategy --- execute --- 报错:{}", e.getMessage()); return model; } - resultMap.put(MesPcnExtConstWords.CUST_SN_DATA_MATRIX, dataMatrixCode); + resultMap.put(MesPcnExtConstWords.CUST_SN_DATA_MATRIX, Base64.getEncoder().encodeToString(dataMatrixCode.toByteArray())); + //resultMap.put(MesPcnExtConstWords.CUST_SN_DATA_MATRIX_BASE64, ); printDataMapList.add(resultMap); diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProductSnPrintSortStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProductSnPrintSortStepService.java index f1d8f7e..e9e5023 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProductSnPrintSortStepService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProductSnPrintSortStepService.java @@ -83,7 +83,7 @@ public class MesProductSnPrintSortStepService extends BaseStepService { /** * 重构,返回给前端打印数据 */ - List printModelList = new ArrayList<>(); + //List printModelList = new ArrayList<>(); //2. 获取条码需要模板、模板代码、打印机 --- 循环遍历条码 封装数据 if (CollectionUtils.isEmpty(productionPartContextList)) return stepResult; @@ -96,14 +96,7 @@ public class MesProductSnPrintSortStepService extends BaseStepService { List needModifyWorkOrderList = new ArrayList<>(); - DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode); - DdlPreparedPack.getStringEqualPack("WH_CUST_SN_RULE", MesPcnExtConstWords.RULE_CODE, packBean); - MesNumberRule numberRule = numberRuleRepository.getByProperty(packBean); - - if (numberRule == null) { - log.error("MesCustSnPrintStepService --- exec --- 客户条码编码规则[WH_CUST_SN_RULE]无效"); - return stepResult; - } + List> resultMap = new ArrayList<>(); for (MesProductionPartContext sn : productionPartContextList) { @@ -112,16 +105,28 @@ public class MesProductSnPrintSortStepService extends BaseStepService { if (workOrder == null) { log.error("MesCustSnPrintStepService --- exec --- 工单号:{}无效", sn.getWorkOrderNo()); + stepExpSendMsgAndThrowEx(reqBean, resultBean, String.format("工单号:{}无效!", sn.getWorkOrderNo())); continue; } if ((partDataContext == null) || (!partDataContext.containsKey(workOrder.getPartNo()))) { log.error("MesCustSnPrintStepService --- exec --- 工单号:{}零件{}丢失缓存", sn.getWorkOrderNo(), sn.getPartNo()); - continue; + stepExpSendMsgAndThrowEx(reqBean, resultBean, String.format("工单号[%s]零件号[%s]丢失零件信息缓存!", sn.getWorkOrderNo(), sn.getPartNo())); + } + MesPart mesPart = partDataContext.get(sn.getPartNo()); + + String custMatchRule = StringUtils.isEmpty(mesPart.getCustMatchRule()) ? "WH_CUST_SN_RULE" : mesPart.getCustMatchRule(); + DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode); + DdlPreparedPack.getStringEqualPack(custMatchRule, MesPcnExtConstWords.RULE_CODE, packBean); + MesNumberRule numberRule = numberRuleRepository.getByProperty(packBean); + + if (numberRule == null) { + log.error("MesCustSnPrintStepService --- exec --- 客户条码编码规则[WH_CUST_SN_RULE]无效"); + stepExpSendMsgAndThrowEx(reqBean, resultBean, String.format("工单号[%s]零件号[%s]客户条码编码规则[%s]无效!", sn.getWorkOrderNo(), sn.getPartNo(), custMatchRule)); } // 从物料信息中获取标签模板 - String labelTemplateCode = partDataContext.get(sn.getPartNo()).getProductLabelTemplate(); + String labelTemplateCode = partDataContext.get(sn.getPartNo()).getCustLabelTemplate(); // 从物料信息中获取打印机 String productPrinterCode = partDataContext.get(sn.getPartNo()).getProductPrinterCode(); @@ -156,8 +161,8 @@ public class MesProductSnPrintSortStepService extends BaseStepService { } IPrintTemplateStrategyService strategyService = (IPrintTemplateStrategyService) SpringContextsUtil.getBean(methodCode); // GenSerialNoModel model , MesProduceSnPrintModel mesProduceSnPrintModel, MesNumberRule numberRule, StepResult stepResult, StationRequestBean reqBean, Boolean isStep - MesProduceSnPrintModel printModel = strategyService.execute(null, mesProduceSnPrintModel, null, stepResult, reqBean, true); - printModelList.add(printModel); + MesProduceSnPrintModel printModel = strategyService.execute(null, mesProduceSnPrintModel, numberRule, stepResult, reqBean, true); + resultMap.addAll(printModel.getPrintContextList()); needModifyWorkOrderList.add(workOrder); } @@ -165,10 +170,11 @@ public class MesProductSnPrintSortStepService extends BaseStepService { //前端接收到busiTyep是customComponent,并且 dataType是file类型的消息,就需要打印后续消息里的数据,一个模板对应多个打印数据 resultBean.setBusiType(MesPcnEnumUtil.STATION_BUSI_TYPE.CUSTOM_COMPONENT.getValue()); resultBean.setDataType(MesPcnEnumUtil.STATION_DATA_TYPE.FILE.getValue()); - resultBean.setResultObj(printModelList); + resultBean.setCustomPageName("SORT_WORK_CENTER_PRINT"); + resultBean.setResultObj(resultMap); //3. 发送数据给到前端 this.sendMessage(reqBean, resultBean); - List snLogList = printModelList.stream().map(MesProduceSnPrintModel::getMesPrintedSnLogList).flatMap(List::stream).collect(Collectors.toList()); + List snLogList = new ArrayList<>(); //更新打印状态 for (MesWorkOrder workOrder : needModifyWorkOrderList) { MesPrintedSnLog snLog = new MesPrintedSnLog(); diff --git a/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/util/MesPcnExtConstWords.java b/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/util/MesPcnExtConstWords.java index 0115a0e..9919565 100644 --- a/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/util/MesPcnExtConstWords.java +++ b/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/util/MesPcnExtConstWords.java @@ -515,7 +515,7 @@ public class MesPcnExtConstWords { //客户零件号 public static final String CUST_PART_NO = "custPartNo"; //客户零件号 前缀 排除后四位 - public static final String CUST_PART_NO_PERFIX = "custPartNoPerfix"; + public static final String CUST_PART_NO_PREFIX = "custPartNoPrefix"; //客户零件号 后四位 public static final String CUST_PART_NO_AFTER_FOUR = "custPartNoAfterFour"; //客户条码VPPS @@ -615,4 +615,5 @@ public class MesPcnExtConstWords { public static final int DATA_MATRIX_CODE_HEIGHT = 80; // dataMatrix 形式的客户条码 public static final String CUST_SN_DATA_MATRIX = "custSnDataMatrix"; + public static final String CUST_SN_DATA_MATRIX_BASE64 = "custSnDataMatrixBase64"; }