From 4c811b0c9b80066c6dbd6793adcdc67980469d8d Mon Sep 17 00:00:00 2001 From: "jhforever.wang@estsh.com" Date: Tue, 18 Mar 2025 13:59:47 +0800 Subject: [PATCH] =?UTF-8?q?=E7=A4=BC=E5=98=89=E5=B7=A5=E4=BD=8D=E9=9B=B6?= =?UTF-8?q?=E4=BB=B6=E6=89=93=E5=8D=B0=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mes/pcn/api/base/IMesProdOrgExtService.java | 8 +++---- .../IMesProductionProcessContextStepService.java | 3 +++ .../serviceimpl/base/MesProdOrgExtService.java | 20 ++++++++++------- .../step/MesProductSnPrintNosortStepService.java | 25 +++++++++++++++++----- .../MesProductionProcessContextStepService.java | 11 ++++++++++ .../ext/mes/pcn/pojo/util/MesPcnExtConstWords.java | 2 ++ 6 files changed, 52 insertions(+), 17 deletions(-) diff --git a/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/base/IMesProdOrgExtService.java b/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/base/IMesProdOrgExtService.java index 979e94d..ce3c57f 100644 --- a/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/base/IMesProdOrgExtService.java +++ b/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/base/IMesProdOrgExtService.java @@ -1,9 +1,6 @@ package cn.estsh.i3plus.ext.mes.pcn.api.base; -import cn.estsh.i3plus.pojo.mes.bean.MesCraft; -import cn.estsh.i3plus.pojo.mes.bean.MesWorkCell; -import cn.estsh.i3plus.pojo.mes.bean.MesWorkCellExtendCfg; -import cn.estsh.i3plus.pojo.mes.bean.MesWorkCenter; +import cn.estsh.i3plus.pojo.mes.bean.*; import io.swagger.annotations.ApiOperation; import java.util.List; @@ -56,4 +53,7 @@ public interface IMesProdOrgExtService { @ApiOperation(value = "根据生产线代码,工位代码查询主子工位实虚关系信息") List getWorkCellExtendCfgRvListByBak(String organizeCode, String workCenterCodeBak, String workCellCodeBak); + @ApiOperation(value = "根据生产线代码,工位代码查询工位零件打印机配置信息") + List getWorkCellPartPrinterCfgList(String organizeCode, String workCenterCode, String workCellCode); + } diff --git a/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/busi/IMesProductionProcessContextStepService.java b/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/busi/IMesProductionProcessContextStepService.java index fc5dc9f..42f613f 100644 --- a/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/busi/IMesProductionProcessContextStepService.java +++ b/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/busi/IMesProductionProcessContextStepService.java @@ -191,4 +191,7 @@ public interface IMesProductionProcessContextStepService { @ApiOperation(value = "处理排序线推单配置上下文, 返回推送工位类型对应的配置信息") List dispatchQueueOrderPushCellCfgContext(StationRequestBean reqBean, Integer pushType); + @ApiOperation(value = "处理工位零件打印机配置") + List disPatchWorkCellPartPrinterCfg(StationRequestBean reqBean, Boolean pcNosortPrinterCfg); + } diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/base/MesProdOrgExtService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/base/MesProdOrgExtService.java index b5ae781..0b1a66c 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/base/MesProdOrgExtService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/base/MesProdOrgExtService.java @@ -5,14 +5,8 @@ import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtConstWords; import cn.estsh.i3plus.pojo.base.bean.DdlPackBean; import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack; -import cn.estsh.i3plus.pojo.mes.bean.MesCraft; -import cn.estsh.i3plus.pojo.mes.bean.MesWorkCell; -import cn.estsh.i3plus.pojo.mes.bean.MesWorkCellExtendCfg; -import cn.estsh.i3plus.pojo.mes.bean.MesWorkCenter; -import cn.estsh.i3plus.pojo.mes.repository.MesCraftRepository; -import cn.estsh.i3plus.pojo.mes.repository.MesWorkCellExtendCfgRepository; -import cn.estsh.i3plus.pojo.mes.repository.MesWorkCellRepository; -import cn.estsh.i3plus.pojo.mes.repository.MesWorkCenterRepository; +import cn.estsh.i3plus.pojo.mes.bean.*; +import cn.estsh.i3plus.pojo.mes.repository.*; import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; @@ -39,6 +33,9 @@ public class MesProdOrgExtService implements IMesProdOrgExtService { @Autowired private MesWorkCellExtendCfgRepository workCellExtendCfgRepository; + @Autowired + private MesWorkCellPartPrinterCfgRepository workCellPartPrinterCfgRepository; + @Override public MesWorkCenter getWorkCenterDb(String organizeCode, String workCenterCode) { if (StringUtils.isEmpty(organizeCode) || StringUtils.isEmpty(workCenterCode)) return null; @@ -186,4 +183,11 @@ public class MesProdOrgExtService implements IMesProdOrgExtService { return getWorkCellExtendCfgList(organizeCode, workCellExtendCfg.getWorkCenterCode(), workCellExtendCfg.getWorkCellCode(), MesExtEnumUtil.WORK_CELL_EXTEND_TYPE.RV.getValue()); } + @Override + public List getWorkCellPartPrinterCfgList(String organizeCode, String workCenterCode, String workCellCode) { + return workCellPartPrinterCfgRepository.findByProperty( + new String[]{MesPcnExtConstWords.ORGANIZE_CODE, MesPcnExtConstWords.IS_DELETED, MesPcnExtConstWords.IS_VALID, MesPcnExtConstWords.WORK_CENTER_CODE, MesPcnExtConstWords.WORK_CELL_CODE}, + new Object[]{organizeCode, CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue(), CommonEnumUtil.IS_VAILD.VAILD.getValue(), workCenterCode, workCellCode}); + } + } diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProductSnPrintNosortStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProductSnPrintNosortStepService.java index e9aa4a3..0a71c45 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProductSnPrintNosortStepService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProductSnPrintNosortStepService.java @@ -2,6 +2,7 @@ package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.step; import cn.estsh.i3plus.ext.mes.pcn.api.base.IMesTemplateService; import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProductionDispatchContextStepService; +import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProductionProcessContextStepService; import cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.print.IPrintTemplateStrategyService; import cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.step.method.MesPartDataMapSaveStepService; import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesProdRuleContext; @@ -43,6 +44,9 @@ import java.util.stream.Collectors; public class MesProductSnPrintNosortStepService extends BaseStepService { @Autowired + private IMesProductionProcessContextStepService productionProcessContextStepService; + + @Autowired private IMesProductionDispatchContextStepService productionDispatchContextStepService; @Autowired @@ -90,6 +94,8 @@ public class MesProductSnPrintNosortStepService extends BaseStepService { Boolean pcNosortPrinterCfg = getPcNosortPrinterCfg(reqBean.getOrganizeCode()); //保存零件数据信息 Map partDataMap = savePartDataMap(reqBean, resultBean, stepResult, prodRuleDataContextList, pcNosortPrinterCfg); + //处理工位零件打印机配置 + List workCellPartPrinterCfgList = productionProcessContextStepService.disPatchWorkCellPartPrinterCfg(reqBean, pcNosortPrinterCfg); //需要打印的数据 String 是打印模板code Map> resultData = new HashMap<>(); @@ -130,7 +136,7 @@ public class MesProductSnPrintNosortStepService extends BaseStepService { mesProduceSnPrintModel.setUserName(reqBean.getUserInfo()); if (pcNosortPrinterCfg) { //赋值打印机 - String printer = filterPrinter(partDataMap, sn.getPartNo()); + String printer = filterPrinter(reqBean, workCellPartPrinterCfgList, partDataMap, sn.getPartNo()); if (!StringUtils.isEmpty(printer)) mesProduceSnPrintModel.setPrinter(printer); } List snList = new ArrayList<>(); @@ -189,10 +195,19 @@ public class MesProductSnPrintNosortStepService extends BaseStepService { } //获取打印机 - private String filterPrinter(Map partDataMap, String partNo) { - if (CollectionUtils.isEmpty(partDataMap) || !partDataMap.containsKey(partNo)) return null; - String priter = partDataMap.get(partNo).getProductPrinterCode(); - return !StringUtils.isEmpty(priter) ? priter : null; + private String filterPrinter(StationRequestBean reqBean, List workCellPartPrinterCfgList, Map partDataMap, String partNo) { + String priter = null; + if (!CollectionUtils.isEmpty(workCellPartPrinterCfgList)) { + Optional optional = workCellPartPrinterCfgList.stream().filter(o -> (null != o + && !StringUtils.isEmpty(o.getWorkCenterCode()) && o.getWorkCenterCode().equals(reqBean.getWorkCenterCode()) + && !StringUtils.isEmpty(o.getWorkCellCode()) && o.getWorkCellCode().equals(reqBean.getWorkCellCode()) + && !StringUtils.isEmpty(o.getPartNo()) && o.getPartNo().equals(partNo) && !StringUtils.isEmpty(o.getPrinterCode()))).findFirst(); + if (null != optional && optional.isPresent()) priter = optional.get().getPrinterCode(); + } + if (StringUtils.isEmpty(priter) && !CollectionUtils.isEmpty(partDataMap) && partDataMap.containsKey(partNo)) { + priter = partDataMap.get(partNo).getProductPrinterCode(); + } + return priter; } //保存零件数据信息 diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/context/MesProductionProcessContextStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/context/MesProductionProcessContextStepService.java index c2e0b0a..809ef4d 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/context/MesProductionProcessContextStepService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/context/MesProductionProcessContextStepService.java @@ -698,4 +698,15 @@ public class MesProductionProcessContextStepService extends BaseStepService impl return filterList; } + @Override + public List disPatchWorkCellPartPrinterCfg(StationRequestBean reqBean, Boolean pcNosortPrinterCfg) { + if (!pcNosortPrinterCfg) return null; + String context = getFsmBusiData(reqBean.getOrganizeCode(), getContextKey(reqBean), MesPcnExtConstWords.CELL_PART_PRINTER_CONTEXT); + if (!StringUtils.isEmpty(context)) return context.equals(CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValueStr()) ? null : JSONObject.parseArray(context, MesWorkCellPartPrinterCfg.class); + List workCellPartPrinterCfgList = prodOrgExtService.getWorkCellPartPrinterCfgList(reqBean.getOrganizeCode(), reqBean.getWorkCenterCode(), reqBean.getWorkCellCode()); + dispatchFsmBusiData(reqBean.getOrganizeCode(), getContextKey(reqBean), MesPcnExtConstWords.CELL_PART_PRINTER_CONTEXT, + !CollectionUtils.isEmpty(workCellPartPrinterCfgList) ? JSONObject.toJSONString(workCellPartPrinterCfgList) : CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValueStr()); + return workCellPartPrinterCfgList; + } + } 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 83b2a03..f13772b 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 @@ -662,6 +662,8 @@ public class MesPcnExtConstWords { public static final String QUEUE_PUSH_LOCK_CONTEXT = "QUEUE_PUSH_LOCK_CONTEXT"; // 推送队列上下文 public static final String QUEUE_PUSH_CONTEXT = "QUEUE_PUSH_CONTEXT"; + // 工位零件打印机上下文 + public static final String CELL_PART_PRINTER_CONTEXT = "CELL_PART_PRINTER_CONTEXT"; // 上下文: 展示组件数据 public static final String MODULE_CONTENT_CONTEXT = "MODULE_CONTENT_CONTEXT";