From 08aa3def342da883239d627e181c94f30fe12ced Mon Sep 17 00:00:00 2001 From: "jhforever.wang@estsh.com" Date: Thu, 19 Sep 2024 19:15:49 +0800 Subject: [PATCH] =?UTF-8?q?=E6=89=93=E5=8D=B0=E9=9D=9E=E6=8A=A5=E5=BA=9F?= =?UTF-8?q?=E6=9D=A1=E7=A0=81=E5=B7=A5=E6=AD=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../step/MesProductSnPrintStepService.java | 40 +++++++++++++++------- 1 file changed, 28 insertions(+), 12 deletions(-) diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProductSnPrintStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProductSnPrintStepService.java index a50c873..c696411 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProductSnPrintStepService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProductSnPrintStepService.java @@ -13,10 +13,7 @@ import cn.estsh.i3plus.pojo.base.bean.DdlPackBean; import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; import cn.estsh.i3plus.pojo.base.enumutil.MesPcnEnumUtil; import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack; -import cn.estsh.i3plus.pojo.mes.bean.MesLabelTemplate; -import cn.estsh.i3plus.pojo.mes.bean.MesLabelTemplateParam; -import cn.estsh.i3plus.pojo.mes.bean.MesPrintedSnLog; -import cn.estsh.i3plus.pojo.mes.bean.MesProduceSn; +import cn.estsh.i3plus.pojo.mes.bean.*; import cn.estsh.i3plus.pojo.mes.model.StationRequestBean; import cn.estsh.i3plus.pojo.mes.model.StationResultBean; import cn.estsh.i3plus.pojo.mes.model.StepResult; @@ -28,11 +25,9 @@ import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil; import cn.estsh.impp.framework.boot.util.SpringContextsUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.util.StringUtils; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; import java.util.stream.Collectors; /** @@ -46,7 +41,7 @@ import java.util.stream.Collectors; public class MesProductSnPrintStepService extends BaseStepService { @Autowired - private IMesProductionDispatchContextStepService mesProductionDispatchContextStepService; + private IMesProductionDispatchContextStepService productionDispatchContextStepService; @Autowired private MesLabelTemplateRepository labelTemplateRao; @@ -76,8 +71,15 @@ public class MesProductSnPrintStepService extends BaseStepService { String organizeCode = reqBean.getOrganizeCode(); StationResultBean resultBean = new StationResultBean(); StepResult stepResult = StepResult.getSuccessComplete(); + + //获取上下文加工结果 + String prodResult = productionDispatchContextStepService.getProductResultContext(reqBean); + //验证加工结果是否满足参数条件: 可疑/报废是否打印 + if (checkIsMatchProdResult(reqBean, prodResult, MesExtEnumUtil.PRODUCT_RESULT_EQUIP_PARAM.PRODUCT_SUSPICIOUS) || checkIsMatchProdResult(reqBean, prodResult, MesExtEnumUtil.PRODUCT_RESULT_EQUIP_PARAM.PRODUCT_SCRAP)) + return stepSuccessCompleteAndSendMsgReturn(reqBean, resultBean.writeDbLog(MesPcnEnumUtil.WORK_CELL_SCAN_MONITOR_LOG_TYPE.PROCESS.getValue()), stepResult, String.format("打印失败:%s!", MesExtEnumUtil.PRODUCT_RESULT_EQUIP_PARAM.codeOfDescription(prodResult))); + // 根据foreign找出加工规则对应的上下文,判断是否需要打印 - List prodRuleDataContext = mesProductionDispatchContextStepService.getProdRuleDataContext(reqBean); + List prodRuleDataContext = productionDispatchContextStepService.getProdRuleDataContext(reqBean); Map> prodRuleContextMap = prodRuleDataContext.stream().collect(Collectors.groupingBy(MesProdRuleContext::getForeignKey)); //需要打印的数据 String 是打印模板code Map> resultData = new HashMap<>(); @@ -85,7 +87,7 @@ public class MesProductSnPrintStepService extends BaseStepService { Map labelTemplateMap = new HashMap<>(); //返回打印标识 给前端 //1. 获取上下文中生成的主条码 - List productionPsOutContextList = mesProductionDispatchContextStepService.getProductionPsOutContext(reqBean); + List productionPsOutContextList = productionDispatchContextStepService.getProductionPsOutContext(reqBean); /** * 重构,返回给前端打印数据 */ @@ -149,7 +151,21 @@ public class MesProductSnPrintStepService extends BaseStepService { } //保存打印条码记录 snLogRao.saveAll(snLogList); - return stepSuccessCompleteAndSendMsgReturn(reqBean, resultBean.writeDbLog(MesPcnEnumUtil.WORK_CELL_SCAN_MONITOR_LOG_TYPE.PROCESS.getValue()), stepResult, "执行打印成功!"); + return stepSuccessCompleteAndSendMsgReturn(reqBean, resultBean.writeDbLog(MesPcnEnumUtil.WORK_CELL_SCAN_MONITOR_LOG_TYPE.PROCESS.getValue()), stepResult, "打印成功!"); + } + + //验证加工结果是否满足参数条件: 可疑/报废是否打印 + private Boolean checkIsMatchProdResult(StationRequestBean reqBean, String prodResult, MesExtEnumUtil.PRODUCT_RESULT_EQUIP_PARAM prodResultEnum) { + + if (StringUtils.isEmpty(prodResult)) return false; + if (!prodResult.equals(prodResultEnum.getCode())) return false; + + Optional> stepParamMap = getStepParams(reqBean); + String unPrintParam = (null != stepParamMap && stepParamMap.isPresent() && stepParamMap.get().containsKey(prodResultEnum.name())) ? stepParamMap.get().get(prodResultEnum.name()).getParamValue() : null; + if (StringUtils.isEmpty(unPrintParam)) return false; + + return true; + } /**