From da319beefa8028f35710bfd5581f29b64503838b Mon Sep 17 00:00:00 2001 From: "jhforever.wang@estsh.com" Date: Mon, 27 May 2024 22:59:20 +0800 Subject: [PATCH] pcn --- .../IMesProductionProcessContextStepService.java | 35 +++++++--- .../step/MesAssemblyReadStepService.java | 14 +++- .../step/MesAssemblyScanStepService.java | 7 ++ .../step/MesFirstMouldNoReadStepService.java | 29 ++++++--- .../step/MesMouldNoReadStepService.java | 15 ++++- .../step/MesProductResultReadStepService.java | 12 ++++ .../step/MesProductSnReadStepService.java | 13 ++++ .../MesProductionProcessContextStepService.java | 75 ++++++++++++++++------ .../ext/mes/pcn/pojo/util/MesPcnExtConstWords.java | 12 +++- 9 files changed, 169 insertions(+), 43 deletions(-) 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 2da87b4..b41cd7f 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 @@ -7,6 +7,7 @@ import cn.estsh.i3plus.pojo.mes.bean.MesEquipmentVariableCfg; import cn.estsh.i3plus.pojo.mes.bean.MesProdRouteOptParam; import cn.estsh.i3plus.pojo.mes.model.StationKvBean; import cn.estsh.i3plus.pojo.mes.model.StationRequestBean; +import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil; import io.swagger.annotations.ApiOperation; import java.util.List; @@ -15,15 +16,6 @@ import java.util.Optional; public interface IMesProductionProcessContextStepService { - @ApiOperation(value = "存储上下文对象") - Boolean doCacheContext(StationRequestBean reqBean, String item, Object o); - - @ApiOperation(value = "获取上下文对象") - String getCachedContext(StationRequestBean reqBean, String item); - - @ApiOperation(value = "获取展示组件MODULE_CONTENT内容") - List> getCachedModuleContext(StationRequestBean reqBean); - @ApiOperation(value = "存储生产过程上下文对象【工步根据业务实际情况执行,配置错误等情况无需执行】") Boolean doCacheProductionProcessContext(StationRequestBean reqBean, MesProductionProcessContext productionProcessContext); @@ -90,4 +82,29 @@ public interface IMesProductionProcessContextStepService { @ApiOperation(value = "发送设备质量信息") void sendEquipQualityMessage(StationRequestBean reqBean, MesCellEquipContext cellEquipContext); + + @ApiOperation(value = "存储展示组件MODULE_CONTENT内容") + Boolean doCacheModuleContext(StationRequestBean reqBean, List> dataList); + + @ApiOperation(value = "获取展示组件MODULE_CONTENT内容") + List> getCachedModuleContext(StationRequestBean reqBean); + + @ApiOperation(value = "存储上个扫描/读取信息") + Boolean doCacheLastScanContext(StationRequestBean reqBean, List dataList); + + @ApiOperation(value = "获取上个扫描/读取信息") + List getCachedLastScanContext(StationRequestBean reqBean); + + @ApiOperation(value = "发送工步内容") + void doSendStepContextMessage(StationRequestBean reqBean); + + @ApiOperation(value = "发送工步内容") + void doSendStepContextMessage(StationRequestBean reqBean, String scanInfo, MesExtEnumUtil.CELL_MESSAGE_SOURCE source); + + @ApiOperation(value = "发送工步内容") + void sendStepContextMessage(StationRequestBean reqBean, List resultList); + + + + } diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesAssemblyReadStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesAssemblyReadStepService.java index 53916b2..0d362a5 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesAssemblyReadStepService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesAssemblyReadStepService.java @@ -28,6 +28,7 @@ import org.springframework.util.StringUtils; import java.util.List; import java.util.Map; import java.util.Optional; +import java.util.stream.Collectors; /** * @Description : 读装配件条码工步 @@ -50,6 +51,15 @@ public class MesAssemblyReadStepService extends BaseStepService { private IMesMouldMultiCavityService mouldMultiCavityService; @Override + public StepResult init(StationRequestBean reqBean) { + + productionProcessContextStepService.doSendStepContextMessage(reqBean); + + return super.init(reqBean); + + } + + @Override public StepResult execute(StationRequestBean reqBean) { StationResultBean resultBean = new StationResultBean(); @@ -115,9 +125,11 @@ public class MesAssemblyReadStepService extends BaseStepService { //保存设备当前一轮工序待验证的装配件条码信息 productionProcessContext.assemblySnJson(equipVariableCollectContextList); + productionProcessContextStepService.doSendStepContextMessage(reqBean, + equipVariableCollectContextList.stream().filter(o -> null != o).map(MesEquipVariableCollectContext::getEquipVariableValue).collect(Collectors.joining(MesPcnExtConstWords.SEMICOLON)), MesExtEnumUtil.CELL_MESSAGE_SOURCE.READ); + return stepResult; } - } diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesAssemblyScanStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesAssemblyScanStepService.java index 37ee7c1..524e3fe 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesAssemblyScanStepService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesAssemblyScanStepService.java @@ -8,6 +8,7 @@ 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; @@ -29,7 +30,11 @@ public class MesAssemblyScanStepService extends BaseStepService { @Override public StepResult guide(StationRequestBean reqBean) { + + productionProcessContextStepService.doSendStepContextMessage(reqBean); + return execSuccessCompleteAndSendGuideReturn(reqBean, new StationResultBean(), "请扫描装配件条码!"); + } @Override @@ -46,6 +51,8 @@ public class MesAssemblyScanStepService extends BaseStepService { //保存设备当前一轮工序待验证的装配件条码信息 productionProcessContext.assemblySnJson(getAssemblySnJson(reqBean)); + productionProcessContextStepService.doSendStepContextMessage(reqBean, reqBean.getScanInfo(), MesExtEnumUtil.CELL_MESSAGE_SOURCE.SCAN); + return stepResult; } diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesFirstMouldNoReadStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesFirstMouldNoReadStepService.java index 5cd73e1..539a480 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesFirstMouldNoReadStepService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesFirstMouldNoReadStepService.java @@ -57,6 +57,15 @@ public class MesFirstMouldNoReadStepService extends BaseStepService { private IPartService partService; @Override + public StepResult init(StationRequestBean reqBean) { + + productionProcessContextStepService.doSendStepContextMessage(reqBean); + + return super.init(reqBean); + + } + + @Override public StepResult execute(StationRequestBean reqBean) { StationResultBean resultBean = new StationResultBean(); @@ -121,13 +130,15 @@ public class MesFirstMouldNoReadStepService extends BaseStepService { String firstMouldNo = equipVariableCollectContextList.get(0).getEquipVariableValue(); + productionProcessContextStepService.doSendStepContextMessage(reqBean, firstMouldNo, MesExtEnumUtil.CELL_MESSAGE_SOURCE.READ); + //验证一模多腔信息 List mouldMultiCavityList = getMouldMultiCavityList(reqBean, resultBean, productionProcessContext, cellEquipContext.getEquipmentCode(), firstMouldNo, true); - //获取物料信息 + //获取零件信息 Map partDataMap = getPartDataMap(reqBean, resultBean, productionProcessContext, mouldMultiCavityList); - //保存设备当前一轮工序的头道模具号,一模多腔信息,物料信息 + //保存设备当前一轮工序的头道模具号,一模多腔信息,零件信息 productionProcessContext.firstMouldNo(equipVariableCollectContextList.get(0)).mouldCavityJson(mouldMultiCavityList).partDataJson(partDataMap); //更新展示组件MODULE_CONTENT内容 @@ -164,24 +175,24 @@ public class MesFirstMouldNoReadStepService extends BaseStepService { Map finalPartDataMap = partService.getPartMap(reqBean.getOrganizeCode(), partNoList); - //物料信息缺失 抛出异常 + //零件信息缺失 抛出异常 List filterList = CollectionUtils.isEmpty(finalPartDataMap) ? null : partNoList.stream().filter(o -> (null != o && !finalPartDataMap.containsKey(o))).collect(Collectors.toList()); - if (CollectionUtils.isEmpty(partDataMap) || !CollectionUtils.isEmpty(filterList)) execExpSendMsgAndThrowEx(reqBean, resultBean, String.format("请检查物料信息,物料编码%s信息不存在!", CollectionUtils.isEmpty(finalPartDataMap) ? partNoList.toString() : filterList.toString())); + if (CollectionUtils.isEmpty(partDataMap) || !CollectionUtils.isEmpty(filterList)) execExpSendMsgAndThrowEx(reqBean, resultBean, String.format("请检查零件信息,零件编码%s信息不存在!", CollectionUtils.isEmpty(finalPartDataMap) ? partNoList.toString() : filterList.toString())); return finalPartDataMap; } public void doCacheMoudleContext(StationRequestBean reqBean, List mouldMultiCavityList, Boolean isFirstMouldNo) { - productionProcessContextStepService.doCacheContext(reqBean, MesPcnEnumUtil.STATION_BUSI_TYPE.MODULE_CONTENT.getValue(), getModuleContextData(reqBean, mouldMultiCavityList, isFirstMouldNo)); + productionProcessContextStepService.doCacheModuleContext(reqBean, getModuleContextData(reqBean, mouldMultiCavityList, isFirstMouldNo)); } private List> getModuleContextData(StationRequestBean reqBean, List mouldMultiCavityList, Boolean isFirstMouldNo) { - List> moduleContextData = new ArrayList<>(); - mouldMultiCavityList.forEach(o -> StationKvBeanUtil.addStationKvBeanList(moduleContextData, - new ArrayList<>(), new StationKvBean(MesPcnExtConstWords.MOULD_NO, isFirstMouldNo ? "头道模具号" : "模具号", o.getMouldNo()), new StationKvBean(MesPcnConstWords.PART_NO, "物料编码", o.getPartNo()), new StationKvBean(MesPcnConstWords.PART_NAME, "物料名称", o.getPartName()))); - return moduleContextData; + List> dataList = new ArrayList<>(); + mouldMultiCavityList.forEach(o -> StationKvBeanUtil.addStationKvBeanList(dataList, + new ArrayList<>(), new StationKvBean(MesPcnExtConstWords.MOULD_NO, isFirstMouldNo ? "头道模具号" : "模具号", o.getMouldNo()), new StationKvBean(MesPcnConstWords.PART_NO, "零件编码", o.getPartNo()), new StationKvBean(MesPcnConstWords.PART_NAME, "零件名称", o.getPartName()))); + return dataList; } diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesMouldNoReadStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesMouldNoReadStepService.java index f10aaca..2999797 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesMouldNoReadStepService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesMouldNoReadStepService.java @@ -51,6 +51,15 @@ public class MesMouldNoReadStepService extends BaseStepService { private MesFirstMouldNoReadStepService firstMouldNoReadStepService; @Override + public StepResult init(StationRequestBean reqBean) { + + productionProcessContextStepService.doSendStepContextMessage(reqBean); + + return super.init(reqBean); + + } + + @Override public StepResult execute(StationRequestBean reqBean) { StationResultBean resultBean = new StationResultBean(); @@ -118,6 +127,8 @@ public class MesMouldNoReadStepService extends BaseStepService { String mouldNo = equipVariableCollectContextList.get(0).getEquipVariableValue(); + productionProcessContextStepService.doSendStepContextMessage(reqBean, mouldNo, MesExtEnumUtil.CELL_MESSAGE_SOURCE.READ); + stepResult.obj(equipVariableCollectContextList.get(0)); if (!StringUtils.isEmpty(productionProcessContext.getFirstMouldNo()) || !StringUtils.isEmpty(productionProcessContext.getWorkOrderDataJson())) return stepResult; @@ -125,10 +136,10 @@ public class MesMouldNoReadStepService extends BaseStepService { //磨具号当头道模具号的使用 List mouldMultiCavityList = firstMouldNoReadStepService.getMouldMultiCavityList(reqBean, resultBean, productionProcessContext, cellEquipContext.getEquipmentCode(), mouldNo, false); - //获取物料信息 + //获取零件信息 Map partDataMap = firstMouldNoReadStepService.getPartDataMap(reqBean, resultBean, productionProcessContext, mouldMultiCavityList); - //保存设备当前一轮工序的一模多腔信息,物料信息 + //保存设备当前一轮工序的一模多腔信息,零件信息 productionProcessContext.mouldCavityJson(mouldMultiCavityList).partDataJson(partDataMap); //更新展示组件MODULE_CONTENT内容 diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProductResultReadStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProductResultReadStepService.java index cf4351d..78db84f 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProductResultReadStepService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProductResultReadStepService.java @@ -46,6 +46,15 @@ public class MesProductResultReadStepService extends BaseStepService { private IMesEquipVariableCfgRuleMatchDispatchService equipVariableCfgRuleMatchService; @Override + public StepResult init(StationRequestBean reqBean) { + + productionProcessContextStepService.doSendStepContextMessage(reqBean); + + return super.init(reqBean); + + } + + @Override public StepResult execute(StationRequestBean reqBean) { StationResultBean resultBean = new StationResultBean(); @@ -120,6 +129,9 @@ public class MesProductResultReadStepService extends BaseStepService { for (Map.Entry> entry : variableCategoryMap.entrySet()) { if (null == entry) continue; if (!(Boolean) equipVariableCfgRuleMatchService.matchEquipVariableCfgCollectContext(reqBean, productionProcessContext, entry.getKey(), entry.getValue())) continue; + + productionProcessContextStepService.doSendStepContextMessage(reqBean, MesExtEnumUtil.EQUIP_VARIABLE_CFG_CATEGORY.valueOfDescription(entry.getKey()), MesExtEnumUtil.CELL_MESSAGE_SOURCE.READ); + if (MesExtEnumUtil.EQUIP_VARIABLE_CFG_CATEGORY.PRODUCT_NOK.getValue().equals(entry.getKey())) return execNonCompleteAndSendMsgReturn(reqBean, resultBean, stepResult, String.format("%s!", MesExtEnumUtil.EQUIP_VARIABLE_CFG_CATEGORY.PRODUCT_NOK.getDescription())); return execDynamicsCompleteAndSendMsgReturn(reqBean, resultBean, stepResult.obj(entry.getKey()), true, MesPcnEnumUtil.STATION_BUSI_TYPE.MESSAGE, diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProductSnReadStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProductSnReadStepService.java index 40eee53..d36c3d0 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProductSnReadStepService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProductSnReadStepService.java @@ -28,6 +28,7 @@ import org.springframework.util.StringUtils; import java.util.List; import java.util.Map; import java.util.Optional; +import java.util.stream.Collectors; /** * @Description : 读主条码工步 @@ -50,6 +51,15 @@ public class MesProductSnReadStepService extends BaseStepService { private IMesMouldMultiCavityService mouldMultiCavityService; @Override + public StepResult init(StationRequestBean reqBean) { + + productionProcessContextStepService.doSendStepContextMessage(reqBean); + + return super.init(reqBean); + + } + + @Override public StepResult execute(StationRequestBean reqBean) { StationResultBean resultBean = new StationResultBean(); @@ -115,6 +125,9 @@ public class MesProductSnReadStepService extends BaseStepService { //保存设备当前一轮工序的待验证的主条码信息 productionProcessContext.productSnJson(equipVariableCollectContextList); + productionProcessContextStepService.doSendStepContextMessage(reqBean, + equipVariableCollectContextList.stream().filter(o -> null != o).map(MesEquipVariableCollectContext::getEquipVariableValue).collect(Collectors.joining(MesPcnExtConstWords.SEMICOLON)), MesExtEnumUtil.CELL_MESSAGE_SOURCE.READ); + return stepResult; } diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProductionProcessContextStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProductionProcessContextStepService.java index a39891a..42426b8 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProductionProcessContextStepService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProductionProcessContextStepService.java @@ -8,6 +8,7 @@ import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesProductionProcessContext; import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtConstWords; import cn.estsh.i3plus.mes.pcn.actor.shipping.dispatch.IFsmRouteDataService; import cn.estsh.i3plus.mes.pcn.serviceimpl.fsm.BaseStepService; +import cn.estsh.i3plus.mes.pcn.util.StationKvBeanUtil; import cn.estsh.i3plus.pojo.base.enumutil.MesPcnEnumUtil; import cn.estsh.i3plus.pojo.mes.bean.*; import cn.estsh.i3plus.pojo.mes.model.StationKvBean; @@ -22,10 +23,7 @@ import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; import org.springframework.util.StringUtils; -import java.util.Arrays; -import java.util.List; -import java.util.Map; -import java.util.Optional; +import java.util.*; import java.util.stream.Collectors; /** @@ -48,22 +46,6 @@ public class MesProductionProcessContextStepService extends BaseStepService impl private String getContextKey(StationRequestBean reqBean) { return getFsmBusikey(reqBean, MesPcnExtConstWords.PRODUCTION_PROCESS_CONTEXT); } @Override - public Boolean doCacheContext(StationRequestBean reqBean, String item, Object o) { - return saveFsmBusiData(reqBean.getOrganizeCode(), getContextKey(reqBean), item, JSONObject.toJSONString(o)); - } - - @Override - public String getCachedContext(StationRequestBean reqBean, String item) { - return getFsmBusiData(reqBean.getOrganizeCode(), getContextKey(reqBean), item); - } - - @Override - public List> getCachedModuleContext(StationRequestBean reqBean) { - String moduleContent = getFsmBusiData(reqBean.getOrganizeCode(), getContextKey(reqBean), MesPcnEnumUtil.STATION_BUSI_TYPE.MODULE_CONTENT.getValue()); - return StringUtils.isEmpty(moduleContent) ? null : JSONObject.parseObject(moduleContent, new TypeReference>>() {}); - } - - @Override public Boolean doCacheProductionProcessContext(StationRequestBean reqBean, MesProductionProcessContext productionProcessContext) { return saveFsmBusiData(reqBean.getOrganizeCode(), getContextKey(reqBean), MesProductionProcessContext.class.getSimpleName(), JSONObject.toJSONString(productionProcessContext)); } @@ -299,4 +281,57 @@ public class MesProductionProcessContextStepService extends BaseStepService impl this.sendMessage(reqBean, resultBean); } + + + @Override + public Boolean doCacheModuleContext(StationRequestBean reqBean, List> dataList) { + return saveFsmBusiData(reqBean.getOrganizeCode(), getContextKey(reqBean), MesPcnEnumUtil.STATION_BUSI_TYPE.MODULE_CONTENT.getValue(), JSONObject.toJSONString(dataList)); + } + + @Override + public List> getCachedModuleContext(StationRequestBean reqBean) { + String moduleContent = getFsmBusiData(reqBean.getOrganizeCode(), getContextKey(reqBean), MesPcnEnumUtil.STATION_BUSI_TYPE.MODULE_CONTENT.getValue()); + return StringUtils.isEmpty(moduleContent) ? null : JSONObject.parseObject(moduleContent, new TypeReference>>() {}); + } + + @Override + public Boolean doCacheLastScanContext(StationRequestBean reqBean, List dataList) { + return saveFsmBusiData(reqBean.getOrganizeCode(), getContextKey(reqBean), MesPcnExtConstWords.LAST_SCAN_INFO, JSONObject.toJSONString(dataList)); + } + + @Override + public List getCachedLastScanContext(StationRequestBean reqBean) { + String lastScanContent = getFsmBusiData(reqBean.getOrganizeCode(), getContextKey(reqBean), MesPcnExtConstWords.LAST_SCAN_INFO); + return StringUtils.isEmpty(lastScanContent) ? new ArrayList<>() : JSONObject.parseArray(lastScanContent, StationKvBean.class); + } + + @Override + public void doSendStepContextMessage(StationRequestBean reqBean) { + sendStepContextMessage(reqBean, getCachedLastScanContext(reqBean)); + } + + @Override + public void doSendStepContextMessage(StationRequestBean reqBean, String scanInfo, MesExtEnumUtil.CELL_MESSAGE_SOURCE source) { + + List lastScanContext = getCachedLastScanContext(reqBean); + + StationKvBeanUtil.addStationKvBeanLimix100ThenHalf(lastScanContext, new StationKvBean().name(source.getDescription()).value(scanInfo)); + + doCacheLastScanContext(reqBean, lastScanContext); + + sendStepContextMessage(reqBean, lastScanContext); + + } + + @Override + public void sendStepContextMessage(StationRequestBean reqBean, List lastScanContext) { + StationResultBean resultBean = new StationResultBean(); + resultBean.setResultList(StationKvBeanUtil.addStationKvBeanList(new ArrayList<>(), + lastScanContext.size() > 1 ? lastScanContext.get(1).name("上次" + lastScanContext.get(1).getName()).key(MesPcnExtConstWords.LAST_SCAN_INFO) : null, + lastScanContext.size() > 0 ? lastScanContext.get(0).name("当前" + lastScanContext.get(0).getName()).key(MesPcnExtConstWords.SCAN_INFO) : null)); + resultBean.setBusiType(MesPcnEnumUtil.STATION_BUSI_TYPE.STEP_CONTENT.getValue()); + resultBean.setDataType(MesPcnEnumUtil.STATION_DATA_TYPE.KEY_VALUE.getValue()); + this.sendMessage(reqBean, resultBean); + } + } 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 b1e94d5..5214ac7 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 @@ -83,10 +83,18 @@ public class MesPcnExtConstWords { public static final String AND = "&"; // 空 public static final String EMPTY = ""; + // ; + public static final String SEMICOLON = ";"; - //生产过程控制上下文 + // 生产过程控制上下文 public static final String PRODUCTION_PROCESS_CONTEXT = "PRODUCTION_PROCESS_CONTEXT"; - //定制页面名称(默认) + // 定制页面名称(默认) public static final String CUSTOM_PAGE_NAME_DEFAULT = "CUSTOM_PAGE_NAME_DEFAULT"; + // 上个扫描信息 + public static final String LAST_SCAN_INFO = "lastScanInfo"; + + // 当前扫描信息 + public static final String SCAN_INFO = "scanInfo"; + }