|
|
|
@ -5,7 +5,7 @@ import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesEquipVariableCfgRuleMatchDispatc
|
|
|
|
|
import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesEquipmentLogExtService;
|
|
|
|
|
import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProductionProcessContextStepService;
|
|
|
|
|
import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesCellEquipContext;
|
|
|
|
|
import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesEquipVariableCfgCollectContext;
|
|
|
|
|
import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesEquipLogCollectContext;
|
|
|
|
|
import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesEquipVariableCollectContext;
|
|
|
|
|
import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesProductionProcessContext;
|
|
|
|
|
import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtConstWords;
|
|
|
|
@ -80,7 +80,7 @@ public class MesFirstMouldNoReadStepService extends BaseStepService {
|
|
|
|
|
if (!StringUtils.isEmpty(productionProcessContext.getFirstMouldNo()) && !StringUtils.isEmpty(productionProcessContext.getMouldCavityJson())) return stepResult;
|
|
|
|
|
|
|
|
|
|
//获取生产过程上下文对象有异常信息 抛出异常
|
|
|
|
|
if (!productionProcessContextStepService.getEquipmentVariableCfgList(productionProcessContext).getSuccess()) execExpSendMsgAndThrowEx(reqBean, resultBean, productionProcessContext.getMessage());
|
|
|
|
|
if (!productionProcessContextStepService.getEquipmentVariableCfgList(productionProcessContext).getSuccess()) execExpSendMsgAndThrowEx(reqBean, resultBean.writeDbLog(), productionProcessContext.getMessage());
|
|
|
|
|
|
|
|
|
|
List<MesEquipmentVariableCfg> equipmentVariableCfgList = productionProcessContext.getEquipVariableCfgListByVct();
|
|
|
|
|
|
|
|
|
@ -89,7 +89,7 @@ public class MesFirstMouldNoReadStepService extends BaseStepService {
|
|
|
|
|
MesCellEquipContext cellEquipContext = productionProcessContext.getCurCellEquip();
|
|
|
|
|
|
|
|
|
|
//配置错误 抛出异常
|
|
|
|
|
if (CollectionUtils.isEmpty(equipmentVariableCfgList)) execExpSendMsgAndThrowEx(reqBean, resultBean,
|
|
|
|
|
if (CollectionUtils.isEmpty(equipmentVariableCfgList)) execExpSendMsgAndThrowEx(reqBean, resultBean.writeDbLog(),
|
|
|
|
|
String.format("请检查设备数据变量接口逻辑信息,设备[%s]未配置变量配置类型[%s]头道模具号相关变量类别的数据变量接口逻辑信息!", cellEquipContext.getEquipmentCode(), cellEquipContext.getVariableCfgType()));
|
|
|
|
|
|
|
|
|
|
List<String> categoryLevelTwoList = productionProcessContextStepService.collectCategoryLevelTwoList(equipmentVariableCfgList);
|
|
|
|
@ -97,20 +97,20 @@ public class MesFirstMouldNoReadStepService extends BaseStepService {
|
|
|
|
|
List<MesEquipmentVariable> equipmentVariableList = productionProcessContextStepService.findEquipmentVariableList(productionProcessContext, MesExtEnumUtil.EQUIP_VARIABLE_TYPE.PRODUCTION.getValue(), categoryLevelTwoList);
|
|
|
|
|
|
|
|
|
|
//配置错误 抛出异常
|
|
|
|
|
if (CollectionUtils.isEmpty(equipmentVariableList)) execExpSendMsgAndThrowEx(reqBean, resultBean,
|
|
|
|
|
if (CollectionUtils.isEmpty(equipmentVariableList)) execExpSendMsgAndThrowEx(reqBean, resultBean.writeDbLog(),
|
|
|
|
|
String.format("请检查设备数据变量信息,根据设备[%s]对应的数据变量接口逻辑信息,未配置变量类型[%s]二级变量%s相关的数据变量信息!", cellEquipContext.getEquipmentCode(), MesExtEnumUtil.EQUIP_VARIABLE_TYPE.PRODUCTION.getDescription(), categoryLevelTwoList.toString()));
|
|
|
|
|
|
|
|
|
|
List<MesEquipVariableCfgCollectContext> collectContextList = equipmentLogExtService.doHandleEquipmentLogList(cellEquipContext, equipmentVariableList, equipmentVariableCfgList);
|
|
|
|
|
this.sendMessage(reqBean, resultBean, JSONObject.toJSONString(collectContextList), MesPcnEnumUtil.STATION_BUSI_TYPE.RUNNING_INFO, MesPcnEnumUtil.STATION_DATA_TYPE.TEXT);
|
|
|
|
|
MesEquipLogCollectContext equipLogCollectContext = equipmentLogExtService.doHandleEquipmentLogList(cellEquipContext, equipmentVariableList, equipmentVariableCfgList);
|
|
|
|
|
this.sendMessage(reqBean, resultBean, JSONObject.toJSONString(equipLogCollectContext), MesPcnEnumUtil.STATION_BUSI_TYPE.RUNNING_INFO, MesPcnEnumUtil.STATION_DATA_TYPE.TEXT);
|
|
|
|
|
|
|
|
|
|
//验证设备通信质量
|
|
|
|
|
productionProcessContextStepService.sendEquipQualityMessage(reqBean, cellEquipContext);
|
|
|
|
|
if (!equipmentLogExtService.checkEquipQuality(cellEquipContext.getQuality()))
|
|
|
|
|
execDynamicsCompleteAndSendMsg(reqBean, resultBean, stepResult, false,
|
|
|
|
|
execDynamicsCompleteAndSendMsg(reqBean, resultBean.writeDbLog(), stepResult, false,
|
|
|
|
|
MesPcnEnumUtil.STATION_BUSI_TYPE.MESSAGE, MesPcnEnumUtil.STATION_DATA_TYPE.EXP_TEXT, String.format("请检查设备的质量状态,读取到设备[%s]的数据变量质量值为[%s]!", cellEquipContext.getEquipmentCode(), cellEquipContext.getQuality()));
|
|
|
|
|
|
|
|
|
|
//验证头道模具号的有效性
|
|
|
|
|
if (stepResult.isCompleted()) checkFirstMouldNoValid(reqBean, resultBean, stepResult, productionProcessContext, cellEquipContext, collectContextList);
|
|
|
|
|
if (stepResult.isCompleted()) checkFirstMouldNoValid(reqBean, resultBean, stepResult, productionProcessContext, cellEquipContext, equipLogCollectContext);
|
|
|
|
|
|
|
|
|
|
productionProcessContextStepService.doCacheProductionProcessContext(reqBean, productionProcessContext);
|
|
|
|
|
|
|
|
|
@ -120,13 +120,16 @@ public class MesFirstMouldNoReadStepService extends BaseStepService {
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private StepResult checkFirstMouldNoValid(StationRequestBean reqBean, StationResultBean resultBean, StepResult stepResult, MesProductionProcessContext productionProcessContext, MesCellEquipContext cellEquipContext, List<MesEquipVariableCfgCollectContext> collectContextList) {
|
|
|
|
|
private StepResult checkFirstMouldNoValid(StationRequestBean reqBean, StationResultBean resultBean, StepResult stepResult, MesProductionProcessContext productionProcessContext, MesCellEquipContext cellEquipContext, MesEquipLogCollectContext equipLogCollectContext) {
|
|
|
|
|
|
|
|
|
|
if (!equipLogCollectContext.getIsCollectValue())
|
|
|
|
|
return execDynamicsCompleteAndSendMsgReturn(reqBean, resultBean, stepResult, false, MesPcnEnumUtil.STATION_BUSI_TYPE.GUIDE, MesPcnEnumUtil.STATION_DATA_TYPE.EXP_TEXT, String.format("当前未读取到设备[%s]头道模具号,持续监听中...", cellEquipContext.getEquipmentCode()));
|
|
|
|
|
|
|
|
|
|
//读取的头道模具号进行规则匹配
|
|
|
|
|
List<MesEquipVariableCollectContext> equipVariableCollectContextList = (List<MesEquipVariableCollectContext>) equipVariableCfgRuleMatchService.matchEquipVariableCfgCollectContext(reqBean, productionProcessContext, MesExtEnumUtil.EQUIP_VARIABLE_CFG_CATEGORY.FIRST_MOULD_NO.getValue(), collectContextList);
|
|
|
|
|
List<MesEquipVariableCollectContext> equipVariableCollectContextList = (List<MesEquipVariableCollectContext>) equipVariableCfgRuleMatchService.matchEquipVariableCfgCollectContext(reqBean, productionProcessContext, MesExtEnumUtil.EQUIP_VARIABLE_CFG_CATEGORY.FIRST_MOULD_NO.getValue(), equipLogCollectContext.getEquipVariableCfgCollectContextList());
|
|
|
|
|
|
|
|
|
|
if (CollectionUtils.isEmpty(equipVariableCollectContextList))
|
|
|
|
|
return execDynamicsCompleteAndSendMsgReturn(reqBean, resultBean, stepResult, false, MesPcnEnumUtil.STATION_BUSI_TYPE.GUIDE, MesPcnEnumUtil.STATION_DATA_TYPE.EXP_TEXT, String.format("当前未读取到设备[%s]头道模具号,持续监听中...", cellEquipContext.getEquipmentCode()));
|
|
|
|
|
return execDynamicsCompleteAndSendMsgReturn(reqBean, resultBean.writeDbLog(), stepResult, false, MesPcnEnumUtil.STATION_BUSI_TYPE.GUIDE, MesPcnEnumUtil.STATION_DATA_TYPE.EXP_TEXT, String.format("当前未读取到设备[%s]有效的头道模具号,持续监听中...", cellEquipContext.getEquipmentCode()));
|
|
|
|
|
|
|
|
|
|
String firstMouldNo = equipVariableCollectContextList.get(0).getEquipVariableValue();
|
|
|
|
|
|
|
|
|
@ -155,7 +158,7 @@ public class MesFirstMouldNoReadStepService extends BaseStepService {
|
|
|
|
|
if (!checkCachedMouldMultiCavityValid(mouldMultiCavityList, equipmentCode, mouldNo)) mouldMultiCavityList = mouldMultiCavityService.getMouldMultiCavityList(reqBean.getOrganizeCode(), equipmentCode, mouldNo);
|
|
|
|
|
|
|
|
|
|
//配置错误 抛出异常
|
|
|
|
|
if (CollectionUtils.isEmpty(mouldMultiCavityList)) execExpSendMsgAndThrowEx(reqBean, resultBean, String.format("当前设备[%s]与读取到的%s模具号[%s]未维护有效的一模多腔信息!", equipmentCode, isFirstMouldNo ? "头道" : MesPcnExtConstWords.EMPTY, mouldNo));
|
|
|
|
|
if (CollectionUtils.isEmpty(mouldMultiCavityList)) execExpSendMsgAndThrowEx(reqBean, resultBean.writeDbLog(), String.format("当前设备[%s]与读取到的%s模具号[%s]未维护有效的一模多腔信息!", equipmentCode, isFirstMouldNo ? "头道" : MesPcnExtConstWords.EMPTY, mouldNo));
|
|
|
|
|
|
|
|
|
|
return mouldMultiCavityList;
|
|
|
|
|
|
|
|
|
@ -178,7 +181,7 @@ public class MesFirstMouldNoReadStepService extends BaseStepService {
|
|
|
|
|
//零件信息缺失 抛出异常
|
|
|
|
|
List<String> filterList = CollectionUtils.isEmpty(finalPartDataMap) ? null : partNoList.stream().filter(o -> (null != o && !finalPartDataMap.containsKey(o))).collect(Collectors.toList());
|
|
|
|
|
|
|
|
|
|
if (CollectionUtils.isEmpty(finalPartDataMap) || !CollectionUtils.isEmpty(filterList)) execExpSendMsgAndThrowEx(reqBean, resultBean, String.format("请检查零件信息,零件编码%s信息不存在!", CollectionUtils.isEmpty(finalPartDataMap) ? partNoList.toString() : filterList.toString()));
|
|
|
|
|
if (CollectionUtils.isEmpty(finalPartDataMap) || !CollectionUtils.isEmpty(filterList)) execExpSendMsgAndThrowEx(reqBean, resultBean.writeDbLog(), String.format("请检查零件信息,零件编码%s信息不存在!", CollectionUtils.isEmpty(finalPartDataMap) ? partNoList.toString() : filterList.toString()));
|
|
|
|
|
|
|
|
|
|
return finalPartDataMap;
|
|
|
|
|
|
|
|
|
|