From ba951ff29fc82423b14164c652ff367cd46ed7d2 Mon Sep 17 00:00:00 2001 From: "jhforever.wang@estsh.com" Date: Sat, 1 Jun 2024 17:28:49 +0800 Subject: [PATCH] step --- .../mes/pcn/api/base/IMesProdOrgExtService.java | 12 ++++ .../IMesProductionDispatchContextStepService.java | 17 +++-- .../serviceimpl/base/MesProdOrgExtService.java | 43 ++++++++++++ .../step/MesManyCellNoticeNextStepService.java | 65 +++++++++++++++++ .../MesManyCellTriggerTabSwitchStepService.java | 44 ++++++++++++ .../step/MesProductSnScanStepService.java | 81 ++++++++++++++++++++++ .../MesProductionDispatchContextStepService.java | 55 +++++++++++---- .../pcn/pojo/context/MesProdRuleNoSortContext.java | 11 +-- .../ext/mes/pcn/pojo/util/MesPcnExtConstWords.java | 10 +++ 9 files changed, 316 insertions(+), 22 deletions(-) create mode 100644 modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesManyCellNoticeNextStepService.java create mode 100644 modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesManyCellTriggerTabSwitchStepService.java create mode 100644 modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProductSnScanStepService.java 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 4623757..5b5d8fa 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,12 @@ package cn.estsh.i3plus.ext.mes.pcn.api.base; 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 io.swagger.annotations.ApiOperation; +import java.util.List; + public interface IMesProdOrgExtService { @ApiOperation(value = "根据生产线代码查询生产线信息") @@ -12,4 +15,13 @@ public interface IMesProdOrgExtService { @ApiOperation(value = "根据生产线代码,工位代码查询工位信息") MesWorkCell getWorkCellDb(String organizeCode, String workCenterCode, String workCellCode); + @ApiOperation(value = "根据子生产线代码,子工位代码,关系类型查询主子工位关系信息") + MesWorkCellExtendCfg getWorkCellExtendCfg(String organizeCode, String workCenterCodeBak, String workCellCodeBak, Integer extendType); + + @ApiOperation(value = "根据生产线代码,工位代码,关系类型查询主子工位关系信息") + List getWorkCellExtendCfgList(String organizeCode, String workCenterCode, String workCellCode, Integer extendType); + + @ApiOperation(value = "根据生产线代码,工位代码查询主子工位实虚关系信息(排除传参workCellCodeBak数据)") + List getWorkCellExtendCfgRvListByBak(String organizeCode, String workCenterCodeBak, String workCellCodeBak); + } diff --git a/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/busi/IMesProductionDispatchContextStepService.java b/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/busi/IMesProductionDispatchContextStepService.java index 00c5d03..61d81c5 100644 --- a/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/busi/IMesProductionDispatchContextStepService.java +++ b/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/busi/IMesProductionDispatchContextStepService.java @@ -1,9 +1,6 @@ package cn.estsh.i3plus.ext.mes.pcn.api.busi; -import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesCellEquipContext; -import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesEquipVariableCollectContext; -import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesProductionAssemblyContext; -import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesWorkOrderContext; +import cn.estsh.i3plus.ext.mes.pcn.pojo.context.*; import cn.estsh.i3plus.pojo.mes.bean.MesMouldMultiCavity; import cn.estsh.i3plus.pojo.mes.bean.MesPart; import cn.estsh.i3plus.pojo.mes.bean.MesProduceSn; @@ -168,4 +165,16 @@ public interface IMesProductionDispatchContextStepService { @ApiOperation(value = "删除上下文装配件数据信息集合") void deleteAssemblyDataContext(StationRequestBean reqBean); + @ApiOperation(value = "获取上下文非排序产品加工规则信息集合") + List getProdRuleNosortDataContext(StationRequestBean reqBean); + + @ApiOperation(value = "验证上下文非排序产品加工规则信息集合是否存在") + Boolean checkProdRuleNosortDataIsExistContext(StationRequestBean reqBean); + + @ApiOperation(value = "保存上下文非排序产品加工规则信息集合", notes = "[JSON]List") + Boolean saveProdRuleNosortDataContext(StationRequestBean reqBean, List prodRuleNoSortContextList); + + @ApiOperation(value = "删除上下文非排序产品加工规则信息集合") + void deleteProdRuleNosortDataContext(StationRequestBean reqBean); + } 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 c445db1..ad2dd45 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 @@ -4,14 +4,22 @@ import cn.estsh.i3plus.ext.mes.pcn.api.base.IMesProdOrgExtService; import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtConstWords; import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; 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.MesWorkCellExtendCfgRepository; import cn.estsh.i3plus.pojo.mes.repository.MesWorkCellRepository; import cn.estsh.i3plus.pojo.mes.repository.MesWorkCenterRepository; +import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.util.StringUtils; +import java.util.ArrayList; +import java.util.Comparator; +import java.util.List; +import java.util.stream.Collectors; + @Slf4j @Service public class MesProdOrgExtService implements IMesProdOrgExtService { @@ -22,6 +30,9 @@ public class MesProdOrgExtService implements IMesProdOrgExtService { @Autowired private MesWorkCellRepository workCellRepository; + @Autowired + private MesWorkCellExtendCfgRepository workCellExtendCfgRepository; + @Override public MesWorkCenter getWorkCenterDb(String organizeCode, String workCenterCode) { if (StringUtils.isEmpty(organizeCode) || StringUtils.isEmpty(workCenterCode)) return null; @@ -38,4 +49,36 @@ public class MesProdOrgExtService implements IMesProdOrgExtService { new Object[]{organizeCode, CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue(), CommonEnumUtil.IS_VAILD.VAILD.getValue(), workCenterCode, workCellCode}); } + @Override + public MesWorkCellExtendCfg getWorkCellExtendCfg(String organizeCode, String workCenterCodeBak, String workCellCodeBak, Integer extendType) { + if (StringUtils.isEmpty(organizeCode) || StringUtils.isEmpty(workCenterCodeBak) || StringUtils.isEmpty(workCellCodeBak) || StringUtils.isEmpty(extendType)) return null; + return workCellExtendCfgRepository.getByProperty( + new String[]{MesPcnExtConstWords.ORGANIZE_CODE, MesPcnExtConstWords.IS_DELETED, MesPcnExtConstWords.IS_VALID, MesPcnExtConstWords.WORK_CENTER_CODE_BAK, MesPcnExtConstWords.WORK_CENTER_CODE_BAK, MesPcnExtConstWords.EXTEND_TYPE}, + new Object[]{organizeCode, CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue(), CommonEnumUtil.IS_VAILD.VAILD.getValue(), workCenterCodeBak, workCellCodeBak, extendType}); + } + + + @Override + public List getWorkCellExtendCfgList(String organizeCode, String workCenterCode, String workCellCode, Integer extendType) { + if (StringUtils.isEmpty(organizeCode) || StringUtils.isEmpty(workCenterCode) || StringUtils.isEmpty(workCellCode) || StringUtils.isEmpty(extendType)) return null; + return workCellExtendCfgRepository.findByProperty( + new String[]{MesPcnExtConstWords.ORGANIZE_CODE, MesPcnExtConstWords.IS_DELETED, MesPcnExtConstWords.IS_VALID, MesPcnExtConstWords.WORK_CENTER_CODE, MesPcnExtConstWords.WORK_CENTER_CODE, MesPcnExtConstWords.EXTEND_TYPE}, + new Object[]{organizeCode, CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue(), CommonEnumUtil.IS_VAILD.VAILD.getValue(), workCenterCode, workCellCode, extendType}); + } + + @Override + public List getWorkCellExtendCfgRvListByBak(String organizeCode, String workCenterCodeBak, String workCellCodeBak) { + if (StringUtils.isEmpty(organizeCode) || StringUtils.isEmpty(workCenterCodeBak) || StringUtils.isEmpty(workCellCodeBak)) return null; + MesWorkCellExtendCfg workCellExtendCfg = getWorkCellExtendCfg(organizeCode, workCenterCodeBak, workCellCodeBak, MesExtEnumUtil.WORK_CELL_EXTEND_TYPE.RV.getValue()); + if (null == workCellCodeBak) return null; + List workCellExtendCfgList = getWorkCellExtendCfgList(organizeCode, workCellExtendCfg.getWorkCenterCode(), workCellExtendCfg.getWorkCellCode(), MesExtEnumUtil.WORK_CELL_EXTEND_TYPE.RV.getValue()); + List workCellExtendCfgListAfter = workCellExtendCfgList.stream().filter(o -> (null != o && workCellExtendCfg.getId().compareTo(o.getId()) != 0 && workCellExtendCfg.getSeq().compareTo(o.getSeq()) <= 0)).sorted(Comparator.comparing(MesWorkCellExtendCfg::getSeq)).collect(Collectors.toList()); + List workCellExtendCfgListBefore = workCellExtendCfgList.stream().filter(o -> (null != o && workCellExtendCfg.getSeq().compareTo(o.getSeq()) > 0)).sorted(Comparator.comparing(MesWorkCellExtendCfg::getSeq)).collect(Collectors.toList()); + workCellExtendCfgList = new ArrayList<>(); + workCellExtendCfgList.addAll(workCellExtendCfgListAfter); + workCellExtendCfgList.addAll(workCellExtendCfgListBefore); + return workCellExtendCfgList; + + } + } diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesManyCellNoticeNextStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesManyCellNoticeNextStepService.java new file mode 100644 index 0000000..892fdd4 --- /dev/null +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesManyCellNoticeNextStepService.java @@ -0,0 +1,65 @@ +package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.step; + +import cn.estsh.i3plus.ext.mes.pcn.api.base.IMesProdOrgExtService; +import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtConstWords; +import cn.estsh.i3plus.mes.pcn.serviceimpl.fsm.BaseStepService; +import cn.estsh.i3plus.mes.pcn.serviceimpl.fsm.IShippingDispatchService; +import cn.estsh.i3plus.mes.pcn.serviceimpl.fsm.IStepService; +import cn.estsh.i3plus.mes.pcn.websocket.StationWebSocket; +import cn.estsh.i3plus.pojo.mes.bean.MesWorkCellExtendCfg; +import cn.estsh.i3plus.pojo.mes.model.StationRequestBean; +import cn.estsh.i3plus.pojo.mes.model.StationResultBean; +import cn.estsh.i3plus.pojo.mes.model.StepResult; +import cn.estsh.impp.framework.boot.util.SpringContextsUtil; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; + +import java.util.List; + +/** + * @Description : 验证通过后切换分屏扫描框工步 (多工位场景当前工位验证通过后切换至下个虚拟子工位) + * @Author : wangjie + **/ +@Slf4j +@Service("mesManyCellIsVerificationStepService") +public class MesManyCellNoticeNextStepService extends BaseStepService { + + @Autowired + private IMesProdOrgExtService prodOrgExtService; + + @Autowired + private IShippingDispatchService shippingDispatchService; + + @Override + public StepResult execute(StationRequestBean reqBean) { + + StationResultBean resultBean = new StationResultBean(); + + StepResult stepResult = StepResult.getSuccessComplete(); + + //根据生产线代码,工位代码查询主子工位实虚关系信息(排除当前工位) + List workCellExtendCfgList = prodOrgExtService.getWorkCellExtendCfgRvListByBak(reqBean.getOrganizeCode(), reqBean.getWorkCenterCode(), reqBean.getWorkCellCode()); + + if (CollectionUtils.isEmpty(workCellExtendCfgList)) return stepResult; + + for (MesWorkCellExtendCfg workCellExtendCfg : workCellExtendCfgList) { + + if (null == workCellExtendCfg) continue; + + //验证下个工位是否在线 + String clientInfo = shippingDispatchService.getActorClientInfo(reqBean.getOrganizeCode(), workCellExtendCfg.getWorkCenterCode(), workCellExtendCfg.getWorkCellCode()); + if (CollectionUtils.isEmpty(StationWebSocket.getStationWebSocketList(clientInfo))) continue; + + //调用多工位场景触发定位分屏工步, CLIENT_INFO是必要传参 + reqBean.getDataMap().put(MesPcnExtConstWords.CLIENT_INFO, clientInfo); + return ((IStepService) SpringContextsUtil.getBean("mesManyCellTriggerTabSwitchStepService")).execute(reqBean); + + } + + return stepResult; + + } + +} diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesManyCellTriggerTabSwitchStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesManyCellTriggerTabSwitchStepService.java new file mode 100644 index 0000000..8ea34cd --- /dev/null +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesManyCellTriggerTabSwitchStepService.java @@ -0,0 +1,44 @@ +package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.step; + +import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtConstWords; +import cn.estsh.i3plus.mes.pcn.serviceimpl.fsm.BaseStepService; +import cn.estsh.i3plus.pojo.base.enumutil.MesPcnEnumUtil; +import cn.estsh.i3plus.pojo.mes.model.StationRequestBean; +import cn.estsh.i3plus.pojo.mes.model.StationResultBean; +import cn.estsh.i3plus.pojo.mes.model.StepResult; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.BeanUtils; +import org.springframework.stereotype.Service; +import org.springframework.util.StringUtils; + +/** + * @Description : 多工位场景触发定位分屏工步 + * @Author : wangjie + **/ +@Slf4j +@Service("mesManyCellTriggerTabSwitchStepService") +public class MesManyCellTriggerTabSwitchStepService extends BaseStepService { + + @Override + public StepResult execute(StationRequestBean reqBean) { + + StationResultBean resultBean = new StationResultBean(); + + StepResult stepResult = StepResult.getSuccessComplete(); + + //从工位对象的DataMap中取出固定传参[CLIENT_INFO], 值固定格式:工厂@生产线@工位 可以调用IShippingDispatchService.getActorClientInfo + String clientInfo = (null != reqBean.getDataMap() && reqBean.getDataMap().containsKey(MesPcnExtConstWords.CLIENT_INFO)) ? (String) reqBean.getDataMap().get(MesPcnExtConstWords.CLIENT_INFO) : reqBean.getClientInfo(); + + if (StringUtils.isEmpty(clientInfo)) return stepResult; + + if (null != reqBean.getDataMap() && reqBean.getDataMap().containsKey(MesPcnExtConstWords.CLIENT_INFO)) reqBean.getDataMap().remove(MesPcnExtConstWords.CLIENT_INFO); + + StationRequestBean stationRequestBean = new StationRequestBean(); + BeanUtils.copyProperties(reqBean, stationRequestBean); + stationRequestBean.setScanInfo(clientInfo); + + return execDynamicsCompleteAndSendMsgReturn(stationRequestBean, resultBean, stepResult, true, MesPcnEnumUtil.STATION_BUSI_TYPE.TAB_SWITCH, MesPcnEnumUtil.STATION_DATA_TYPE.CUSTOM, String.format("多工位页面切换,从[%s]切换到[%s]!", reqBean.getClientInfo(), clientInfo)); + + } + +} diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProductSnScanStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProductSnScanStepService.java new file mode 100644 index 0000000..4ec7b6b --- /dev/null +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProductSnScanStepService.java @@ -0,0 +1,81 @@ +package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.step; + +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.pojo.context.MesEquipVariableCollectContext; +import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesProductionProcessContext; +import cn.estsh.i3plus.mes.pcn.serviceimpl.fsm.BaseStepService; +import cn.estsh.i3plus.platform.common.tool.TimeTool; +import cn.estsh.i3plus.pojo.mes.model.StationRequestBean; +import cn.estsh.i3plus.pojo.mes.model.StationResultBean; +import cn.estsh.i3plus.pojo.mes.model.StepResult; +import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.util.StringUtils; + +import java.util.ArrayList; +import java.util.List; + +/** + * @Description : 扫描装配件条码工步 + * @Author : wangjie + **/ +@Slf4j +@Service("mesAssemblyScanStepService") +public class MesAssemblyScanStepService extends BaseStepService { + + @Autowired + private IMesProductionProcessContextStepService productionProcessContextStepService; + + @Autowired + private IMesProductionDispatchContextStepService productionDispatchContextStepService; + + @Override + public StepResult guide(StationRequestBean reqBean) { + + productionDispatchContextStepService.doSendStepContextMessage(reqBean); + + return execSuccessCompleteAndSendGuideReturn(reqBean, new StationResultBean(), "请扫描装配件条码!"); + + } + + @Override + public StepResult execute(StationRequestBean reqBean) { + + StationResultBean resultBean = new StationResultBean(); + + StepResult stepResult = StepResult.getSuccessComplete(); + + if (StringUtils.isEmpty(reqBean.getScanInfo())) execSendGuideAndThrowEx(reqBean, resultBean, "请扫描装配件条码!"); + + //扫描信息置空 + String scanInfo = reqBean.resetScanInfo(reqBean.getScanInfo()); + + MesProductionProcessContext productionProcessContext = productionProcessContextStepService.getCurCellEquipment(reqBean); + + //获取生产过程上下文对象有异常信息 抛出异常 + if (!productionProcessContext.getSuccess()) return execNonCompleteAndSendMsgReturn(reqBean, resultBean.writeDbLog(), stepResult, productionProcessContext.getMessage()); + + //保存设备当前一轮工序待验证的装配件条码信息 + productionDispatchContextStepService.saveScanAssemblySnContext(reqBean, getAssemblySnJson(reqBean, scanInfo)); + + //发送工步内容 + productionDispatchContextStepService.doSendStepContextMessage(reqBean, scanInfo, MesExtEnumUtil.CELL_MESSAGE_SOURCE.SCAN); + + return execSuccessCompleteAndSendMsgReturn(reqBean, resultBean.writeDbLog(), stepResult, String.format("当前扫描信息装配件条码[%s]!", scanInfo)); + + } + + private List getAssemblySnJson(StationRequestBean reqBean, String scanInfo) { + + List equipVariableCollectContextList = new ArrayList<>(); + + equipVariableCollectContextList.add(new MesEquipVariableCollectContext(reqBean.getOrganizeCode(), scanInfo, TimeTool.getNowTime(true))); + + return equipVariableCollectContextList; + + } + +} diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/context/MesProductionDispatchContextStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/context/MesProductionDispatchContextStepService.java index c869868..7801ade 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/context/MesProductionDispatchContextStepService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/context/MesProductionDispatchContextStepService.java @@ -177,8 +177,8 @@ public class MesProductionDispatchContextStepService extends BaseStepService imp //验证上下文一模多腔信息是否存在 @Override public Boolean checkMouldMultiCavityIsExistContext(StationRequestBean reqBean) { - String firstMouldNo = getFsmBusiData(reqBean.getOrganizeCode(), getContextKey(reqBean), MesPcnExtConstWords.MOULD_MULTI_CAVITY_CONTEXT); - return !StringUtils.isEmpty(firstMouldNo) ? true : false; + String mouldCavityJson = getFsmBusiData(reqBean.getOrganizeCode(), getContextKey(reqBean), MesPcnExtConstWords.MOULD_MULTI_CAVITY_CONTEXT); + return !StringUtils.isEmpty(mouldCavityJson) ? true : false; } //保存上下文一模多腔信息 [JSON]List @@ -224,8 +224,8 @@ public class MesProductionDispatchContextStepService extends BaseStepService imp //验证上下文模具号是否存在 @Override public Boolean checkMouldNoIsExistContext(StationRequestBean reqBean) { - String firstMouldNo = getFsmBusiData(reqBean.getOrganizeCode(), getContextKey(reqBean), MesPcnExtConstWords.MOULD_NO_CONTEXT); - return !StringUtils.isEmpty(firstMouldNo) ? true : false; + String mouldNo = getFsmBusiData(reqBean.getOrganizeCode(), getContextKey(reqBean), MesPcnExtConstWords.MOULD_NO_CONTEXT); + return !StringUtils.isEmpty(mouldNo) ? true : false; } //保存上下文模具号 [JSON]MesEquipVariableCollectContext::equipVariableValue @@ -251,8 +251,8 @@ public class MesProductionDispatchContextStepService extends BaseStepService imp //验证上下文生产工单数据信息集合是否存在 @Override public Boolean checkWorkOrderDataIsExistContext(StationRequestBean reqBean) { - String firstMouldNo = getFsmBusiData(reqBean.getOrganizeCode(), getContextKey(reqBean), MesPcnExtConstWords.WORK_ORDER_DATA_CONTEXT); - return !StringUtils.isEmpty(firstMouldNo) ? true : false; + String workOrderDataJson = getFsmBusiData(reqBean.getOrganizeCode(), getContextKey(reqBean), MesPcnExtConstWords.WORK_ORDER_DATA_CONTEXT); + return !StringUtils.isEmpty(workOrderDataJson) ? true : false; } //保存上下文生产工单数据信息集合 [JSON]List @@ -278,8 +278,8 @@ public class MesProductionDispatchContextStepService extends BaseStepService imp //验证上下文扫/读信息:主条码是否存在 @Override public Boolean checkScanProductSnIsExistContext(StationRequestBean reqBean) { - String firstMouldNo = getFsmBusiData(reqBean.getOrganizeCode(), getContextKey(reqBean), MesPcnExtConstWords.SCAN_PRODUCT_SN_CONTEXT); - return !StringUtils.isEmpty(firstMouldNo) ? true : false; + String productSnJson = getFsmBusiData(reqBean.getOrganizeCode(), getContextKey(reqBean), MesPcnExtConstWords.SCAN_PRODUCT_SN_CONTEXT); + return !StringUtils.isEmpty(productSnJson) ? true : false; } //保存上下文扫/读信息:主条码 [JSON]List @@ -305,8 +305,8 @@ public class MesProductionDispatchContextStepService extends BaseStepService imp //验证上下文扫/读信息:装配件条码是否存在 @Override public Boolean checkScanAssemblySnIsExistContext(StationRequestBean reqBean) { - String firstMouldNo = getFsmBusiData(reqBean.getOrganizeCode(), getContextKey(reqBean), MesPcnExtConstWords.SCAN_ASSEMBLY_SN_CONTEXT); - return !StringUtils.isEmpty(firstMouldNo) ? true : false; + String assemblySnJson = getFsmBusiData(reqBean.getOrganizeCode(), getContextKey(reqBean), MesPcnExtConstWords.SCAN_ASSEMBLY_SN_CONTEXT); + return !StringUtils.isEmpty(assemblySnJson) ? true : false; } //保存上下文扫/读信息:装配件条码 [JSON]List @@ -332,8 +332,8 @@ public class MesProductionDispatchContextStepService extends BaseStepService imp //验证上下文产出条码数据信息集合是否存在 @Override public Boolean checkOutProduceSnDataIsExistContext(StationRequestBean reqBean) { - String firstMouldNo = getFsmBusiData(reqBean.getOrganizeCode(), getContextKey(reqBean), MesPcnExtConstWords.OUT_PRODUCE_SN_DATA_CONTEXT); - return !StringUtils.isEmpty(firstMouldNo) ? true : false; + String outProduceSnDataJson = getFsmBusiData(reqBean.getOrganizeCode(), getContextKey(reqBean), MesPcnExtConstWords.OUT_PRODUCE_SN_DATA_CONTEXT); + return !StringUtils.isEmpty(outProduceSnDataJson) ? true : false; } //保存上下文产出条码数据信息集合 [JSON]List @@ -368,8 +368,8 @@ public class MesProductionDispatchContextStepService extends BaseStepService imp //验证上下文装配件数据信息集合是否存在 @Override public Boolean checkAssemblyDataIsExistContext(StationRequestBean reqBean) { - String firstMouldNo = getFsmBusiData(reqBean.getOrganizeCode(), getContextKey(reqBean), MesPcnExtConstWords.ASSEMBLY_DATA_CONTEXT); - return !StringUtils.isEmpty(firstMouldNo) ? true : false; + String productionAssemblyJson = getFsmBusiData(reqBean.getOrganizeCode(), getContextKey(reqBean), MesPcnExtConstWords.ASSEMBLY_DATA_CONTEXT); + return !StringUtils.isEmpty(productionAssemblyJson) ? true : false; } //保存上下文装配件数据信息集合 [JSON]List @@ -385,4 +385,31 @@ public class MesProductionDispatchContextStepService extends BaseStepService imp deleteFsmBusiData(reqBean.getOrganizeCode(), getContextKey(reqBean), MesPcnExtConstWords.ASSEMBLY_DATA_CONTEXT); } + //获取上下文非排序产品加工规则信息集合 + @Override + public List getProdRuleNosortDataContext(StationRequestBean reqBean) { + String prodRuleNosortJson = getFsmBusiData(reqBean.getOrganizeCode(), getContextKey(reqBean), MesPcnExtConstWords.PROD_RULE_NOSORT_DATA_CONTEXT); + return !StringUtils.isEmpty(prodRuleNosortJson) ? JSONObject.parseArray(prodRuleNosortJson, MesProdRuleNoSortContext.class) : null; + } + + //验证上下文非排序产品加工规则信息集合是否存在 + @Override + public Boolean checkProdRuleNosortDataIsExistContext(StationRequestBean reqBean) { + String prodRuleNosortJson = getFsmBusiData(reqBean.getOrganizeCode(), getContextKey(reqBean), MesPcnExtConstWords.PROD_RULE_NOSORT_DATA_CONTEXT); + return !StringUtils.isEmpty(prodRuleNosortJson) ? true : false; + } + + //保存上下文非排序产品加工规则信息集合 [JSON]List + @Override + public Boolean saveProdRuleNosortDataContext(StationRequestBean reqBean, List prodRuleNoSortContextList) { + if (CollectionUtils.isEmpty(prodRuleNoSortContextList)) return false; + return saveFsmBusiData(reqBean.getOrganizeCode(), getContextKey(reqBean), MesPcnExtConstWords.PROD_RULE_NOSORT_DATA_CONTEXT, JSONObject.toJSONString(prodRuleNoSortContextList)); + } + + //删除上下文非排序产品加工规则信息集合 + @Override + public void deleteProdRuleNosortDataContext(StationRequestBean reqBean) { + deleteFsmBusiData(reqBean.getOrganizeCode(), getContextKey(reqBean), MesPcnExtConstWords.PROD_RULE_NOSORT_DATA_CONTEXT); + } + } diff --git a/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/context/MesProdRuleNoSortContext.java b/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/context/MesProdRuleNoSortContext.java index d89b1f6..b2fff40 100644 --- a/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/context/MesProdRuleNoSortContext.java +++ b/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/context/MesProdRuleNoSortContext.java @@ -11,7 +11,13 @@ import java.io.Serializable; @Data public class MesProdRuleNoSortContext implements Serializable { - private static final long serialVersionUID = -6129403108477819932L; + private static final long serialVersionUID = -3062405517994447105L; + + @ApiParam(name = "零件条码") + private String productSn; + + @ApiParam(name = "生产工单号") + private String workOrderNo; @ApiParam(name = "进料零件号") private String inPartNo; @@ -49,7 +55,4 @@ public class MesProdRuleNoSortContext implements Serializable { @ApiParam(name = "子箱设备信号点") private String packageEquSignal; - @ApiParam(name = "装配件待绑定清单 ([JSON]List)") - private String productionAssemblyDataJson; - } 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 28aeb06..ec90c84 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 @@ -88,6 +88,12 @@ public class MesPcnExtConstWords { public static final String ROUTE_SEQ = "routeSeq"; // 序号 public static final String INDEX = "index"; + // 产线常量 + public static final String WORK_CENTER_CODE_BAK = "workCenterCodeBak"; + // 工位常量 + public static final String WORK_CELL_CODE_BAK = "workCellCodeBak"; + // 主子工位关系类型 + public static final String EXTEND_TYPE = "extendType"; @@ -115,6 +121,8 @@ public class MesPcnExtConstWords { public static final String CUSTOM_PAGE_NAME_DEFAULT = "CUSTOM_PAGE_NAME_DEFAULT"; // 上个扫描信息 + public static final String CLIENT_INFO = "clientInfo"; + // 上个扫描信息 public static final String LAST_SCAN_INFO = "lastScanInfo"; // 当前扫描信息 public static final String SCAN_INFO = "scanInfo"; @@ -155,6 +163,8 @@ public class MesPcnExtConstWords { public static final String OUT_PRODUCE_SN_DATA_CONTEXT = "OUT_PRODUCE_SN_DATA_CONTEXT"; // 上下文: 装配件清单 public static final String ASSEMBLY_DATA_CONTEXT = "ASSEMBLY_DATA_CONTEXT"; + // 上下文: 非排序产品加工规则信息 + public static final String PROD_RULE_NOSORT_DATA_CONTEXT = "PROD_RULE_NOSORT_DATA_CONTEXT";