From 4668055c23e331d00efe140b14819c79ed70a577 Mon Sep 17 00:00:00 2001 From: "jhforever.wang@estsh.com" Date: Mon, 10 Mar 2025 14:56:33 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8E=A8=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pcn/api/busi/IMesQueueOrderPushService.java | 4 ++ .../serviceimpl/busi/MesQueueOrderPushService.java | 31 +++++++++++++ .../function/MesFunctionPackagePartService.java | 2 +- .../MesFunctionPackageProgressService.java | 2 +- .../function/MesFunctionQueueOrderPushService.java | 52 ++++++++++++++++++---- 5 files changed, 81 insertions(+), 10 deletions(-) diff --git a/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/busi/IMesQueueOrderPushService.java b/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/busi/IMesQueueOrderPushService.java index fd12741..5acee72 100644 --- a/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/busi/IMesQueueOrderPushService.java +++ b/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/busi/IMesQueueOrderPushService.java @@ -8,6 +8,7 @@ import cn.estsh.i3plus.pojo.base.common.Pager; import cn.estsh.i3plus.pojo.mes.bean.MesProduceSn; import cn.estsh.i3plus.pojo.mes.bean.MesQueueOrderPush; import cn.estsh.i3plus.pojo.mes.bean.MesQueueOrderPushCellCfg; +import cn.estsh.i3plus.pojo.mes.bean.MesWorkOrder; import io.swagger.annotations.ApiOperation; import java.util.List; @@ -29,6 +30,9 @@ public interface IMesQueueOrderPushService { void insertQueueOrderPush(String organizeCode, String userInfo, List queueOrderPushCellCfgList, MesProductionPsOutContext productionPsOutContext, MesProductionPartContext productionPartContext); +// @ApiOperation(value = "写入工位工单推送信息") +// void insertQueueOrderPush(String organizeCode, String userInfo, MesWorkOrder workOrder, String... pushSourceCodeArr); + @ApiOperation(value = "根据配置查询创建状态的生产队列工位推送信息") List getQueueOrderPushList(String organizeCode, List queueOrderPushCellCfgList); diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesQueueOrderPushService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesQueueOrderPushService.java index 3477019..dc42c25 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesQueueOrderPushService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesQueueOrderPushService.java @@ -14,6 +14,7 @@ import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack; import cn.estsh.i3plus.pojo.mes.bean.MesQueueOrderPush; import cn.estsh.i3plus.pojo.mes.bean.MesQueueOrderPushCellCfg; +import cn.estsh.i3plus.pojo.mes.bean.MesWorkOrder; import cn.estsh.i3plus.pojo.mes.repository.MesQueueOrderPushCellCfgRepository; import cn.estsh.i3plus.pojo.mes.repository.MesQueueOrderPushRepository; import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil; @@ -94,6 +95,36 @@ public class MesQueueOrderPushService implements IMesQueueOrderPushService { } } +// //写入工位工单推送信息 +// @Override +// public void insertQueueOrderPush(String organizeCode, String userInfo, MesWorkOrder workOrder, String... pushSourceCodeArr) { +// if (StringUtils.isEmpty(organizeCode) || StringUtils.isEmpty(userInfo) || null == productionPsOutContext || CollectionUtils.isEmpty(queueOrderPushCellCfgList)) return; +// Integer processSeq = getQueueOrderPushMaxSeq(organizeCode, productionPsOutContext.getWorkOrderNo()); +// for (MesQueueOrderPushCellCfg queueOrderPushCellCfg : queueOrderPushCellCfgList) { +// if (null == queueOrderPushCellCfg) continue; +// MesQueueOrderPush queueOrderPush = new MesQueueOrderPush(); +// queueOrderPush.setPushSourceCode(queueOrderPushCellCfg.getPushSourceCode()); +// queueOrderPush.setWorkOrderNo(productionPsOutContext.getWorkOrderNo()); +// queueOrderPush.setProductSn(productionPsOutContext.getProductSn()); +// queueOrderPush.setCustSn(productionPsOutContext.getCustSn()); +// queueOrderPush.setPartNo(productionPsOutContext.getPartNo()); +// queueOrderPush.setPartName(productionPsOutContext.getPartName()); +// queueOrderPush.setProcessSeq(processSeq); +// queueOrderPush.setQueueStatus(MesExtEnumUtil.QUEUE_ORDER_STATUS.CREATE.getValue()); +// queueOrderPush.setProductSeq(productionPartContext.getProductSeq()); +// queueOrderPush.setWorkOrderSeq(productionPartContext.getWorkOrderSeq()); +// queueOrderPush.setCarModelCode(productionPartContext.getCarModelCode()); +// queueOrderPush.setCustOrderNo(productionPartContext.getCustOrderNo()); +// queueOrderPush.setPartProdGroupCode(productionPartContext.getPartProdGroupCode()); +// queueOrderPush.setAreaCode(queueOrderPushCellCfg.getAreaCode()); +// queueOrderPush.setWorkCenterCode(queueOrderPushCellCfg.getWorkCenterCode()); +// queueOrderPush.setSourceWorkCellCode(queueOrderPushCellCfg.getWorkCellCode()); +// queueOrderPush.setOrganizeCode(organizeCode); +// ConvertBean.serviceModelInitialize(queueOrderPush, userInfo); +// queueOrderPushRepository.insert(queueOrderPush); +// } +// } + //根据配置查询创建状态的生产队列工位推送信息 @Override public List getQueueOrderPushList(String organizeCode, List queueOrderPushCellCfgList) { diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/station/function/MesFunctionPackagePartService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/station/function/MesFunctionPackagePartService.java index 1a8d096..f62571e 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/station/function/MesFunctionPackagePartService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/station/function/MesFunctionPackagePartService.java @@ -154,7 +154,7 @@ public class MesFunctionPackagePartService extends BaseSwsService implements IFs } //返回提示信息 - private Object packResultMap(StationRequestBean reqBean, StationResultBean resultBean, Map resultMap, String message) { + private Map packResultMap(StationRequestBean reqBean, StationResultBean resultBean, Map resultMap, String message) { this.sendMessage(reqBean, resultBean, message, MesPcnEnumUtil.STATION_BUSI_TYPE.RUNNING_INFO, MesPcnEnumUtil.STATION_DATA_TYPE.EXP_TEXT); resultMap.put(MesPcnExtConstWords.MESSAGE, message); return resultMap; diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/station/function/MesFunctionPackageProgressService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/station/function/MesFunctionPackageProgressService.java index 28cf033..fd34108 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/station/function/MesFunctionPackageProgressService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/station/function/MesFunctionPackageProgressService.java @@ -207,7 +207,7 @@ public class MesFunctionPackageProgressService extends BaseSwsService implements } //返回提示信息 - private Object packResultMap(StationRequestBean reqBean, StationResultBean resultBean, Map resultMap, String message) { + private Map packResultMap(StationRequestBean reqBean, StationResultBean resultBean, Map resultMap, String message) { this.sendMessage(reqBean, resultBean, message, MesPcnEnumUtil.STATION_BUSI_TYPE.RUNNING_INFO, MesPcnEnumUtil.STATION_DATA_TYPE.EXP_TEXT); resultMap.put(MesPcnExtConstWords.MESSAGE, message); return resultMap; diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/station/function/MesFunctionQueueOrderPushService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/station/function/MesFunctionQueueOrderPushService.java index c4ab80b..1be9c3a 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/station/function/MesFunctionQueueOrderPushService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/station/function/MesFunctionQueueOrderPushService.java @@ -3,6 +3,7 @@ package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.station.function; import cn.estsh.i3plus.ext.mes.pcn.api.base.IMesEnumExtService; import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProductionProcessContextStepService; import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesQueueOrderPushService; +import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesWorkOrderExtService; import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtConstWords; import cn.estsh.i3plus.mes.pcn.serviceimpl.fsm.BaseSwsService; import cn.estsh.i3plus.mes.pcn.serviceimpl.fsm.function.IFsmModuleFunctionService; @@ -11,6 +12,7 @@ import cn.estsh.i3plus.pojo.base.common.Pager; import cn.estsh.i3plus.pojo.base.common.PagerHelper; import cn.estsh.i3plus.pojo.base.enumutil.MesPcnEnumUtil; import cn.estsh.i3plus.pojo.mes.bean.MesQueueOrderPushCellCfg; +import cn.estsh.i3plus.pojo.mes.bean.MesWorkOrder; import cn.estsh.i3plus.pojo.mes.model.ButtonDynamicModel; import cn.estsh.i3plus.pojo.mes.model.StationRequestBean; import cn.estsh.i3plus.pojo.mes.model.StationResultBean; @@ -21,10 +23,7 @@ import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; 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; /** @@ -40,6 +39,9 @@ public class MesFunctionQueueOrderPushService extends BaseSwsService implements private IMesQueueOrderPushService queueOrderPushService; @Autowired + private IMesWorkOrderExtService workOrderExtService; + + @Autowired private IMesEnumExtService enumExtService; @Override @@ -69,7 +71,8 @@ public class MesFunctionQueueOrderPushService extends BaseSwsService implements resultBean.writeDbLog(MesPcnEnumUtil.WORK_CELL_SCAN_MONITOR_LOG_TYPE.PICK.getValue()); resultMap.put(MesPcnExtConstWords.DATA_TYPE, MesPcnEnumUtil.STATION_DATA_TYPE.EXP_TEXT.getValue()); - if (BUSI_TYPE.TWO.value.equals(paramMap.get(MesPcnExtConstWords.BUSI_TYPE))) queryQueueOrderPush(reqBean, resultMap, paramMap); + //新增 + if (BUSI_TYPE.TWO.value.equals(paramMap.get(MesPcnExtConstWords.BUSI_TYPE))) insertQueueOrderPush(reqBean, resultBean, buttonDynamicModel, resultMap, paramMap); else if (BUSI_TYPE.THREE.value.equals(paramMap.get(MesPcnExtConstWords.BUSI_TYPE))) queryQueueOrderPush(reqBean, resultMap, paramMap); else queryQueueOrderPush(reqBean, resultMap, paramMap); @@ -82,7 +85,8 @@ public class MesFunctionQueueOrderPushService extends BaseSwsService implements } - private Object queryQueueOrderPush(StationRequestBean reqBean, Map resultMap, Map paramMap) { + //查询 + private Map queryQueueOrderPush(StationRequestBean reqBean, Map resultMap, Map paramMap) { Pager pager = new Pager(); pager.setCurrentPage(paramMap.containsKey(MesPcnExtConstWords.CURRENT_PAGE) ? Integer.valueOf(paramMap.get(MesPcnExtConstWords.CURRENT_PAGE)) : MesPcnExtConstWords.ONE); @@ -90,7 +94,7 @@ public class MesFunctionQueueOrderPushService extends BaseSwsService implements resultMap.put(MesPcnExtConstWords.QUEUE_STATUS, enumExtService.doGetMesEnumByEnumName(reqBean.getOrganizeCode(), MesExtEnumUtil.QUEUE_ORDER_STATUS.class.getSimpleName())); - //处理排序线推单上下文, 返回推送工位类型对应的配置信息 【来源工位】 + //处理排序线推单上下文, 返回推送工位类型对应的配置信息 【目标工位】 List queueOrderPushCellCfgList = productionProcessContextStepService.dispatchQueueOrderPushCellCfgContext(reqBean, MesExtEnumUtil.QUEUE_ORDER_CELL_PUSH_TYPE.TARGET.getValue()); List pushSourceCodeList = (queueOrderPushCellCfgList.stream() .filter(o -> (null != o && !StringUtils.isEmpty(o.getPushSourceCode()))).map(MesQueueOrderPushCellCfg::getPushSourceCode).collect(Collectors.toList()) @@ -110,8 +114,40 @@ public class MesFunctionQueueOrderPushService extends BaseSwsService implements } + //新增 + private Map insertQueueOrderPush(StationRequestBean reqBean, StationResultBean resultBean, + ButtonDynamicModel buttonDynamicModel, Map resultMap, Map paramMap) { + if (!paramMap.containsKey(MesPcnExtConstWords.PUSH_SOURCE_CODE)) { + return packResultMap(reqBean, resultBean, resultMap, String.format("[%s]新增:请选择推送来源代码!", buttonDynamicModel.getButtonName())); + } + if (!paramMap.containsKey(MesPcnExtConstWords.PROCESS_SEQ)) { + return packResultMap(reqBean, resultBean, resultMap, String.format("[%s]新增:请输入工艺顺序号!", buttonDynamicModel.getButtonName())); + } + if (!paramMap.containsKey(MesPcnExtConstWords.WORK_ORDER_NO)) { + return packResultMap(reqBean, resultBean, resultMap, String.format("[%s]新增:请扫描加工单或客户条码!", buttonDynamicModel.getButtonName())); + } + + //处理排序线推单上下文, 返回推送工位类型对应的配置信息 【目标工位】 + List queueOrderPushCellCfg = productionProcessContextStepService.dispatchQueueOrderPushCellCfgContext(reqBean, MesExtEnumUtil.QUEUE_ORDER_CELL_PUSH_TYPE.TARGET.getValue()); + Optional optional = CollectionUtils.isEmpty(queueOrderPushCellCfg) ? null : + queueOrderPushCellCfg.stream().filter(o -> (null != o && o.getPushSourceCode().equals(paramMap.get(MesPcnExtConstWords.PUSH_SOURCE_CODE)))).findFirst(); + if (null == optional || !optional.isPresent()) { + return packResultMap(reqBean, resultBean, resultMap, String.format("[%s]新增:当前工位未配置推送来源代码[%s]推送工位类型[%s]的配置信息!", + buttonDynamicModel.getButtonName(), paramMap.get(MesPcnExtConstWords.PUSH_SOURCE_CODE), MesExtEnumUtil.QUEUE_ORDER_CELL_PUSH_TYPE.TARGET.getDescription())); + } + + //根据工单或者客户条码 查询生产工单信息(排序) + MesWorkOrder workOrder = (MesWorkOrder) workOrderExtService.getWorkOrderSort(reqBean.getOrganizeCode(), paramMap.get(MesPcnExtConstWords.WORK_ORDER_NO), true); + if (null == workOrder) { + return packResultMap(reqBean, resultBean, resultMap, String.format("[%s]新增:根据扫描信息[%s]未匹配到有效的加工单!", buttonDynamicModel.getButtonName(), paramMap.get(MesPcnExtConstWords.WORK_ORDER_NO))); + } + + return resultMap; + + } + //返回提示信息 - private Object packResultMap(StationRequestBean reqBean, StationResultBean resultBean, Map resultMap, String message) { + private Map packResultMap(StationRequestBean reqBean, StationResultBean resultBean, Map resultMap, String message) { this.sendMessage(reqBean, resultBean, message, MesPcnEnumUtil.STATION_BUSI_TYPE.RUNNING_INFO, MesPcnEnumUtil.STATION_DATA_TYPE.EXP_TEXT); resultMap.put(MesPcnExtConstWords.MESSAGE, message); return resultMap;