From 3137abbfa93433cad0c8736c955587b3c459ee76 Mon Sep 17 00:00:00 2001 From: "jhforever.wang@estsh.com" Date: Thu, 13 Mar 2025 15:32:58 +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 | 12 +++++----- .../function/MesFunctionQueueOrderPushService.java | 28 ++++++++++++++++------ .../ext/mes/pcn/pojo/util/MesPcnExtConstWords.java | 4 ++++ 4 files changed, 33 insertions(+), 15 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 7b359ee..ba89795 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 @@ -28,14 +28,14 @@ public interface IMesQueueOrderPushService { Integer getQueueOrderPushMaxSeq(String organizeCode, MesQueueOrderPushCellCfg queueOrderPushCellCfg); @ApiOperation(value = "根据条件顺序号查询上一个顺序号,返回加一") - Integer getQueueOrderPushCalcSeq(String organizeCode, MesQueueOrderPushCellCfg queueOrderPushCellCfg, Integer processSeqNext); + Integer getQueueOrderPushCalcSeq(String organizeCode, MesQueueOrderPushCellCfg queueOrderPushCellCfg, Integer processSeqUp); @ApiOperation(value = "写入工位工单推送信息") void insertQueueOrderPush(String organizeCode, String userInfo, List queueOrderPushCellCfgList, MesProductionPsOutContext productionPsOutContext, MesProductionPartContext productionPartContext); @ApiOperation(value = "写入工位工单推送信息") - void insertQueueOrderPush(StationRequestBean reqBean, MesWorkOrder workOrder, MesQueueOrderPushCellCfg queueOrderPushCellCfg, String processSeqNext); + void insertQueueOrderPush(StationRequestBean reqBean, MesWorkOrder workOrder, MesQueueOrderPushCellCfg queueOrderPushCellCfg, String processSeqUp); @ApiOperation(value = "根据ID查询生产队列工位推送信息") MesQueueOrderPush getQueueOrderPush(String organizeCode, Long id); 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 7f4be19..1eee104 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 @@ -68,17 +68,17 @@ public class MesQueueOrderPushService implements IMesQueueOrderPushService { //根据条件顺序号查询上一个顺序号,返回加一 @Override - public Integer getQueueOrderPushCalcSeq(String organizeCode, MesQueueOrderPushCellCfg queueOrderPushCellCfg, Integer processSeqNext) { + public Integer getQueueOrderPushCalcSeq(String organizeCode, MesQueueOrderPushCellCfg queueOrderPushCellCfg, Integer processSeqUp) { if (StringUtils.isEmpty(organizeCode) || null == queueOrderPushCellCfg) return MesPcnExtConstWords.TEN; DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode); DdlPreparedPack.getStringEqualPack(queueOrderPushCellCfg.getPushSourceCode(), MesPcnExtConstWords.PUSH_SOURCE_CODE, packBean); DdlPreparedPack.getStringEqualPack(queueOrderPushCellCfg.getWorkCenterCode(), MesPcnExtConstWords.WORK_CENTER_CODE, packBean); - DdlPreparedPack.getNumberSmallerPackContainsZero(processSeqNext, MesPcnExtConstWords.PROCESS_SEQ, packBean); + DdlPreparedPack.getNumberSmallerPackContainsZero(processSeqUp, MesPcnExtConstWords.PROCESS_SEQ, packBean); DdlPreparedPack.getOrderByPack(new Object[]{CommonEnumUtil.ASC_OR_DESC.DESC.getValue()}, new String[]{MesPcnExtConstWords.PROCESS_SEQ}, packBean); MesQueueOrderPush queueOrderPushDb2MaxSeq = queueOrderPushRepository.getByProperty(packBean); if (null == queueOrderPushDb2MaxSeq) return MesPcnExtConstWords.ONE; Integer processSeq = queueOrderPushDb2MaxSeq.getProcessSeq() + 1; - if (processSeq.compareTo(processSeqNext) == 0) return queueOrderPushDb2MaxSeq.getProcessSeq(); + if (processSeq.compareTo(processSeqUp) == 0) return queueOrderPushDb2MaxSeq.getProcessSeq(); return processSeq; } @@ -115,12 +115,12 @@ public class MesQueueOrderPushService implements IMesQueueOrderPushService { //写入工位工单推送信息 @Override - public void insertQueueOrderPush(StationRequestBean reqBean, MesWorkOrder workOrder, MesQueueOrderPushCellCfg queueOrderPushCellCfg, String processSeqNext) { + public void insertQueueOrderPush(StationRequestBean reqBean, MesWorkOrder workOrder, MesQueueOrderPushCellCfg queueOrderPushCellCfg, String processSeqUp) { Integer processSeq; //获取当前生产线推单代码中最大的顺序号 - if (StringUtils.isEmpty(processSeqNext)) processSeq = getQueueOrderPushMaxSeq(reqBean.getOrganizeCode(), queueOrderPushCellCfg); + if (StringUtils.isEmpty(processSeqUp)) processSeq = getQueueOrderPushMaxSeq(reqBean.getOrganizeCode(), queueOrderPushCellCfg); //根据条件顺序号查询上一个顺序号,返回加一 - else processSeq = getQueueOrderPushCalcSeq(reqBean.getOrganizeCode(), queueOrderPushCellCfg, Integer.valueOf(processSeqNext)); + else processSeq = getQueueOrderPushCalcSeq(reqBean.getOrganizeCode(), queueOrderPushCellCfg, Integer.valueOf(processSeqUp)); //新增队列 MesQueueOrderPush queueOrderPush = new MesQueueOrderPush(); 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 2dfe0bd..91f2f8f 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 @@ -130,10 +130,10 @@ 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)) { + if (StringUtils.isEmpty(paramMap.get(MesPcnExtConstWords.PUSH_SOURCE_CODE))) { return packResultMap(reqBean, resultBean, resultMap, String.format("[%s]新增:请选择推送来源代码!", buttonDynamicModel.getButtonName())); } - if (!paramMap.containsKey(MesPcnExtConstWords.WORK_ORDER_NO)) { + if (StringUtils.isEmpty(paramMap.get(MesPcnExtConstWords.WORK_ORDER_NO))) { return packResultMap(reqBean, resultBean, resultMap, String.format("[%s]新增:请扫描加工单或客户条码!", buttonDynamicModel.getButtonName())); } @@ -157,7 +157,7 @@ public class MesFunctionQueueOrderPushService extends BaseSwsService implements } //写入工位工单推送信息 - queueOrderPushService.insertQueueOrderPush(reqBean, workOrder, optional.get(), paramMap.get(MesPcnExtConstWords.PROCESS_SEQ)); + queueOrderPushService.insertQueueOrderPush(reqBean, workOrder, optional.get(), paramMap.get(MesPcnExtConstWords.PROCESS_SEQ_UP)); return resultMap; @@ -166,11 +166,11 @@ public class MesFunctionQueueOrderPushService extends BaseSwsService implements //修改【仅支持修改顺序】 private Map updateQueueOrderPush(StationRequestBean reqBean, StationResultBean resultBean, ButtonDynamicModel buttonDynamicModel, Map resultMap, Map paramMap) { - if (!paramMap.containsKey(MesPcnExtConstWords.ID)) { + if (StringUtils.isEmpty(paramMap.get(MesPcnExtConstWords.ID))) { return packResultMap(reqBean, resultBean, resultMap, String.format("[%s]修改:缺少修改数据的ID参数!", buttonDynamicModel.getButtonName())); } - if (!paramMap.containsKey(MesPcnExtConstWords.PROCESS_SEQ)) { - return packResultMap(reqBean, resultBean, resultMap, String.format("[%s]修改:请输入工艺顺序号!", buttonDynamicModel.getButtonName())); + if (StringUtils.isEmpty(paramMap.get(MesPcnExtConstWords.PROCESS_SEQ)) && StringUtils.isEmpty(paramMap.get(MesPcnExtConstWords.PROCESS_SEQ_UP)) && StringUtils.isEmpty(paramMap.get(MesPcnExtConstWords.PROCESS_SEQ_DOWN))) { + return packResultMap(reqBean, resultBean, resultMap, String.format("[%s]修改:缺少工艺顺序号!", buttonDynamicModel.getButtonName())); } //根据ID查询生产队列工位推送信息 MesQueueOrderPush queueOrderPush = queueOrderPushService.getQueueOrderPush(reqBean.getOrganizeCode(), Long.valueOf(paramMap.get(MesPcnExtConstWords.ID))); @@ -180,12 +180,26 @@ public class MesFunctionQueueOrderPushService extends BaseSwsService implements if (queueOrderPush.getQueueStatus().compareTo(MesExtEnumUtil.QUEUE_ORDER_STATUS.CREATE.getValue()) != 0) { return packResultMap(reqBean, resultBean, resultMap, String.format("[%s]修改:当前修改的队列信息状态为[%s],不支持修改操作!", buttonDynamicModel.getButtonName(), MesExtEnumUtil.QUEUE_ORDER_STATUS.valueOfDescription(queueOrderPush.getQueueStatus()))); } + + //处理排序线推单上下文, 返回推送工位类型对应的配置信息 【目标工位】 + 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(queueOrderPush.getPushSourceCode()))).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())); + } + + Integer processSeq; + if (!StringUtils.isEmpty(paramMap.get(MesPcnExtConstWords.PROCESS_SEQ))) processSeq = Integer.valueOf(paramMap.get(MesPcnExtConstWords.PROCESS_SEQ)); + else if (!StringUtils.isEmpty(paramMap.get(MesPcnExtConstWords.PROCESS_SEQ_UP))) processSeq = queueOrderPushService.getQueueOrderPushCalcSeq(reqBean.getOrganizeCode(), optional.get(), Integer.valueOf(paramMap.get(MesPcnExtConstWords.PROCESS_SEQ_UP))); + else processSeq = Integer.valueOf(paramMap.get(MesPcnExtConstWords.PROCESS_SEQ_UP)) + 1; //根据条件修改生产队列工位推送信息 queueOrderPushService.saveQueueOrderPushByCondition( new String[]{MesPcnExtConstWords.ORGANIZE_CODE, MesPcnExtConstWords.ID}, new Object[]{reqBean.getOrganizeCode(), Long.valueOf(paramMap.get(MesPcnExtConstWords.ID))}, new String[]{MesPcnExtConstWords.PROCESS_SEQ, MesPcnExtConstWords.MODIFY_USER, MesPcnExtConstWords.MODIFY_DATE_TIME, MesPcnExtConstWords.SYSTEM_SYNC_STATUS, MesPcnExtConstWords.SYSTEM_SYNC_DATE_TIME}, - new Object[]{Integer.valueOf(paramMap.get(MesPcnExtConstWords.PROCESS_SEQ)), reqBean.getUserInfo(), TimeTool.getNowTime(true), CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue(), MesPcnExtConstWords.EMPTY}); + new Object[]{processSeq, reqBean.getUserInfo(), TimeTool.getNowTime(true), CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue(), MesPcnExtConstWords.EMPTY}); return resultMap; } 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 6f1e9e3..12b354b 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 @@ -363,6 +363,10 @@ public class MesPcnExtConstWords { public static final String TARGET_WORK_CELL_CODE = "targetWorkCellCode"; //工艺顺序号 public static final String PROCESS_SEQ = "processSeq"; + //工艺顺序号(上面) + public static final String PROCESS_SEQ_UP = "processSeqUp"; + //工艺顺序号(下面) + public static final String PROCESS_SEQ_DOWN = "processSeqDown"; //推送来源代码 public static final String PUSH_SOURCE_CODE = "pushSourceCode"; //业务类型