From c10267afa5996b9aa514e0d62b06a0860738477d Mon Sep 17 00:00:00 2001 From: "jhforever.wang@estsh.com" Date: Fri, 29 Dec 2023 15:53:52 +0800 Subject: [PATCH] plc collect pd --- ...xSnProcessingCollectProductDataStepService.java | 28 ++++++++++++---------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/step/jx/JxSnProcessingCollectProductDataStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/step/jx/JxSnProcessingCollectProductDataStepService.java index a385526..53ea434 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/step/jx/JxSnProcessingCollectProductDataStepService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/step/jx/JxSnProcessingCollectProductDataStepService.java @@ -92,9 +92,12 @@ public class JxSnProcessingCollectProductDataStepService extends BaseStepService String[] plcCodeArr = checkPlcCodeIsValid(reqBean, resultBean, plcCodes, key); - List plcCodeList = doHandlePlcCodeList(reqBean, resultBean, key); + String plcCodeListStr = plcExtService.getCachedData(key, MesPcnExtConstWords.PLC_CODE_UC); + List plcCodeList = !StringUtils.isEmpty(plcCodeListStr) ? JSONObject.parseArray(plcCodeListStr, String.class) : doHandlePlcCodeList(reqBean, resultBean, key); - checkObjectCfgIsValid(reqBean, resultBean, plcCodeList, key); + List plcCodeList2Cfg = checkObjectCfgIsValid(reqBean, resultBean, plcCodeList, key); + + doHandlePlcCodeList(reqBean, key, plcCodeListStr, plcCodeList, plcCodeList2Cfg); String curExecWorkOrderNo = getCurExecWorkOrderNo(reqBean, resultBean); @@ -128,22 +131,19 @@ public class JxSnProcessingCollectProductDataStepService extends BaseStepService } private List doHandlePlcCodeList(StationRequestBean reqBean, StationResultBean resultBean, String key) { - String value = plcExtService.getCachedData(key, MesPcnExtConstWords.PLC_CODE_UC); - if (!StringUtils.isEmpty(value)) return JSONObject.parseArray(value, String.class); - List plcList = plcExtService.getPlcDbList(reqBean.getOrganizeCode(), reqBean.getWorkCenterCode(), reqBean.getWorkCellCode()); - plcList = CollectionUtils.isEmpty(plcList) ? null : plcList.stream().filter(o -> (null != o && !StringUtils.isEmpty(o.getObjectCode()) && !StringUtils.isEmpty(o.getChannel()) && !StringUtils.isEmpty(o.getDevice()) && !StringUtils.isEmpty(o.getTagAddress()))).collect(Collectors.toList()); + plcList = CollectionUtils.isEmpty(plcList) ? null : plcList.stream().filter(o -> (null != o && !StringUtils.isEmpty(o.getChannel()) && !StringUtils.isEmpty(o.getDevice()) && !StringUtils.isEmpty(o.getTagAddress()))).collect(Collectors.toList()); if (CollectionUtils.isEmpty(plcList)) execExpSendMsgAndThrowEx(reqBean, resultBean, String.format("生产线[%s]工位[%s]未配置有效的数据位PLC信息!", reqBean.getWorkCenterCode(), reqBean.getWorkCellCode())); - plcList.forEach(o -> plcExtService.doCacheData(reqBean.getOrganizeCode(), key, o.getPlcCode(), JSONObject.toJSONString(o))); + return plcList.stream().filter(o -> null != o).map(MesPlc::getPlcCode).collect(Collectors.toList()); + } - List plcCodeList = plcList.stream().filter(o -> null != o).map(MesPlc::getPlcCode).collect(Collectors.toList()); - plcExtService.doCacheData(reqBean.getOrganizeCode(), key, MesPcnExtConstWords.PLC_CODE_UC, JSONObject.toJSONString(plcCodeList)); - - return plcCodeList; + private void doHandlePlcCodeList(StationRequestBean reqBean, String key, String plcCodeListStr, List plcCodeList, List plcCodeList2Cfg) { + if (!StringUtils.isEmpty(plcCodeListStr) && (plcCodeList.containsAll(plcCodeList2Cfg) && plcCodeList2Cfg.containsAll(plcCodeList))) return; + plcExtService.doCacheData(reqBean.getOrganizeCode(), key, MesPcnExtConstWords.PLC_CODE_UC, JSONObject.toJSONString(plcCodeList2Cfg)); } - private void checkObjectCfgIsValid(StationRequestBean reqBean, StationResultBean resultBean, List plcCodeList, String key) { + private List checkObjectCfgIsValid(StationRequestBean reqBean, StationResultBean resultBean, List plcCodeList, String key) { String value = plcExtService.getCachedData(key, MesPcnExtConstWords.OBJECT_CODE_UC); List objectCfgList = !StringUtils.isEmpty(value) ? JSONObject.parseArray(value, MesObjectCfg.class) : getObjectCfgDbList(reqBean, resultBean, plcCodeList); @@ -151,9 +151,11 @@ public class JxSnProcessingCollectProductDataStepService extends BaseStepService plcCodeList2ObjectCfg = CollectionUtils.isEmpty(plcCodeList2ObjectCfg) ? null : plcCodeList2ObjectCfg.stream().filter(o -> !StringUtils.isEmpty(o)).distinct().collect(Collectors.toList()); if (CollectionUtils.isEmpty(plcCodeList2ObjectCfg)) execExpSendMsgAndThrowEx(reqBean, resultBean, String.format("生产线[%s]工位[%s]配置的数据位PLC信息未关联有效的对象结构信息!", reqBean.getWorkCenterCode(), reqBean.getWorkCellCode())); - if (plcCodeList2ObjectCfg.size() != plcCodeList.size()) execExpSendMsgAndThrowEx(reqBean, resultBean, String.format("生产线[%s]工位[%s]配置的部分数据位PLC信息未关联有效的对象结构信息!", reqBean.getWorkCenterCode(), reqBean.getWorkCellCode())); if (StringUtils.isEmpty(value)) plcExtService.doCacheData(reqBean.getOrganizeCode(), key, MesPcnExtConstWords.OBJECT_CODE_UC, JSONObject.toJSONString(objectCfgList)); + + List plcCodeList2Cfg = objectCfgList.stream().filter(o -> null != o).map(MesObjectCfg::getPlcCode).collect(Collectors.toList()); + return plcCodeList2Cfg.stream().filter(o -> null != o).distinct().collect(Collectors.toList()); } private List getObjectCfgDbList(StationRequestBean reqBean, StationResultBean resultBean, List plcCodeList) {