|
|
|
@ -45,11 +45,13 @@ public class MesProductionProcessContextStepService extends BaseStepService impl
|
|
|
|
|
|
|
|
|
|
private String getContextKey(StationRequestBean reqBean) { return getFsmBusikey(reqBean, MesPcnExtConstWords.PRODUCTION_PROCESS_CONTEXT); }
|
|
|
|
|
|
|
|
|
|
//存储生产过程上下文对象【工步根据业务实际情况执行,配置错误等情况无需执行】
|
|
|
|
|
@Override
|
|
|
|
|
public Boolean doCacheProductionProcessContext(StationRequestBean reqBean, MesProductionProcessContext productionProcessContext) {
|
|
|
|
|
return saveFsmBusiData(reqBean.getOrganizeCode(), getContextKey(reqBean), MesProductionProcessContext.class.getSimpleName(), JSONObject.toJSONString(productionProcessContext));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//获取生产过程上下文对象
|
|
|
|
|
@Override
|
|
|
|
|
public MesProductionProcessContext getProductionProcessContext(StationRequestBean reqBean) {
|
|
|
|
|
|
|
|
|
@ -75,11 +77,13 @@ public class MesProductionProcessContextStepService extends BaseStepService impl
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//获取工序工艺信息
|
|
|
|
|
@Override
|
|
|
|
|
public MesProductionProcessContext processContext(StationRequestBean reqBean) {
|
|
|
|
|
return processContext(reqBean, getProductionProcessContext(reqBean));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//获取工序工艺信息
|
|
|
|
|
@Override
|
|
|
|
|
public MesProductionProcessContext processContext(StationRequestBean reqBean, MesProductionProcessContext productionProcessContext) {
|
|
|
|
|
|
|
|
|
@ -98,6 +102,7 @@ public class MesProductionProcessContextStepService extends BaseStepService impl
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//验证组织模型有效性
|
|
|
|
|
@Override
|
|
|
|
|
public MesProductionProcessContext checkBaseData(StationRequestBean reqBean, MesProductionProcessContext productionProcessContext) {
|
|
|
|
|
|
|
|
|
@ -111,11 +116,13 @@ public class MesProductionProcessContextStepService extends BaseStepService impl
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//获取工位设备集合信息
|
|
|
|
|
@Override
|
|
|
|
|
public MesProductionProcessContext getCellEquipmentList(StationRequestBean reqBean) {
|
|
|
|
|
return getCellEquipmentList(reqBean, getProductionProcessContext(reqBean));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//获取工位设备集合信息
|
|
|
|
|
@Override
|
|
|
|
|
public MesProductionProcessContext getCellEquipmentList(StationRequestBean reqBean, MesProductionProcessContext productionProcessContext) {
|
|
|
|
|
|
|
|
|
@ -128,11 +135,13 @@ public class MesProductionProcessContextStepService extends BaseStepService impl
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//获取工位当前设备信息
|
|
|
|
|
@Override
|
|
|
|
|
public MesProductionProcessContext getCurCellEquipment(StationRequestBean reqBean) {
|
|
|
|
|
return getCurCellEquipment(reqBean, getCellEquipmentList(reqBean));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//获取工位当前设备信息
|
|
|
|
|
@Override
|
|
|
|
|
public MesProductionProcessContext getCurCellEquipment(StationRequestBean reqBean, MesProductionProcessContext productionProcessContext) {
|
|
|
|
|
|
|
|
|
@ -142,11 +151,13 @@ public class MesProductionProcessContextStepService extends BaseStepService impl
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//获取工位当前设备信息
|
|
|
|
|
@Override
|
|
|
|
|
public MesProductionProcessContext getCurCellEquipment(StationRequestBean reqBean, Optional<Map<String, MesProdRouteOptParam>> stepParamMap) {
|
|
|
|
|
return getCurCellEquipment(reqBean, getCellEquipmentList(reqBean), stepParamMap);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//获取工位当前设备信息
|
|
|
|
|
@Override
|
|
|
|
|
public MesProductionProcessContext getCurCellEquipment(StationRequestBean reqBean, MesProductionProcessContext productionProcessContext, Optional<Map<String, MesProdRouteOptParam>> stepParamMap) {
|
|
|
|
|
|
|
|
|
@ -171,11 +182,13 @@ public class MesProductionProcessContextStepService extends BaseStepService impl
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//获取设备数据变量接口逻辑信息
|
|
|
|
|
@Override
|
|
|
|
|
public MesProductionProcessContext getEquipmentVariableCfgList(StationRequestBean reqBean) {
|
|
|
|
|
return getEquipmentVariableCfgList(getCurCellEquipment(reqBean));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//获取设备数据变量接口逻辑信息
|
|
|
|
|
@Override
|
|
|
|
|
public MesProductionProcessContext getEquipmentVariableCfgList(MesProductionProcessContext productionProcessContext) {
|
|
|
|
|
|
|
|
|
@ -197,30 +210,35 @@ public class MesProductionProcessContextStepService extends BaseStepService impl
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//根据变量类别搜集设备数据变量接口逻辑信息
|
|
|
|
|
@Override
|
|
|
|
|
public List<MesEquipmentVariableCfg> collectEquipmentVariableCfgList(List<MesEquipmentVariableCfg> equipmentVariableCfgList, String... variableCategory) {
|
|
|
|
|
List<String> variableCategoryList = null == variableCategory ? null : Arrays.asList(variableCategory);
|
|
|
|
|
return (CollectionUtils.isEmpty(equipmentVariableCfgList) || CollectionUtils.isEmpty(variableCategoryList)) ? null : equipmentVariableCfgList.stream().filter(o -> (null != o && variableCategoryList.contains(o.getVariableCategory()))).collect(Collectors.toList());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//验证设备数据变量接口逻辑信息中是否存在必要的变量类型信息
|
|
|
|
|
@Override
|
|
|
|
|
public MesProductionProcessContext checkNecessaryEquipmentVariableCfg(MesProductionProcessContext productionProcessContext, MesCellEquipContext cellEquipContext, List<MesEquipmentVariableCfg> equipmentVariableCfgList, String... variableCategory) {
|
|
|
|
|
List<String> variableCategoryList = null == variableCategory ? null : Arrays.asList(variableCategory);
|
|
|
|
|
Optional<MesEquipmentVariableCfg> optional = (CollectionUtils.isEmpty(equipmentVariableCfgList) || CollectionUtils.isEmpty(variableCategoryList)) ? null : equipmentVariableCfgList.stream().filter(o -> (null != o && variableCategoryList.contains(o.getVariableCategory()))).findFirst();
|
|
|
|
|
return (null != optional && optional.isPresent()) ? productionProcessContext : productionProcessContext.message(String.format("请检查设备数据变量接口逻辑信息,设备[%s]未配置变量配置类型[%s]变量类别%s的数据变量接口逻辑信息!", cellEquipContext.getEquipmentCode(), cellEquipContext.getVariableCfgType(), variableCategoryList.toString()));
|
|
|
|
|
return (null != optional && optional.isPresent()) ? productionProcessContext : productionProcessContext.message(String.format("请检查设备数据变量接口逻辑信息,设备[%s]未配置变量配置类型[%s]变量类别%s相关的数据变量接口逻辑信息!", cellEquipContext.getEquipmentCode(), cellEquipContext.getVariableCfgType(), variableCategoryList.toString()));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//搜集设备数据变量接口逻辑信息中的二级变量
|
|
|
|
|
@Override
|
|
|
|
|
public List<String> collectCategoryLevelTwoList(List<MesEquipmentVariableCfg> equipmentVariableCfgList) {
|
|
|
|
|
return CollectionUtils.isEmpty(equipmentVariableCfgList) ? null :
|
|
|
|
|
(equipmentVariableCfgList.stream().filter(o -> null != o).map(MesEquipmentVariableCfg::getCategoryLevelTwo).collect(Collectors.toList())).stream().filter(o -> !StringUtils.isEmpty(o)).distinct().collect(Collectors.toList());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//获取设备数据变量信息
|
|
|
|
|
@Override
|
|
|
|
|
public MesProductionProcessContext getEquipmentVariableList(StationRequestBean reqBean, Integer variableType) {
|
|
|
|
|
return getEquipmentVariableList(getEquipmentVariableCfgList(reqBean), variableType);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//获取设备数据变量信息
|
|
|
|
|
@Override
|
|
|
|
|
public MesProductionProcessContext getEquipmentVariableList(MesProductionProcessContext productionProcessContext, Integer variableType) {
|
|
|
|
|
|
|
|
|
@ -240,6 +258,7 @@ public class MesProductionProcessContextStepService extends BaseStepService impl
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//获取设备数据变量信息
|
|
|
|
|
@Override
|
|
|
|
|
public List<MesEquipmentVariable> findEquipmentVariableList(MesProductionProcessContext productionProcessContext, Integer variableType) {
|
|
|
|
|
|
|
|
|
@ -260,18 +279,28 @@ public class MesProductionProcessContextStepService extends BaseStepService impl
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//根据变量类型与二级变量获取设备数据变量信息
|
|
|
|
|
@Override
|
|
|
|
|
public List<MesEquipmentVariable> findEquipmentVariableList(MesProductionProcessContext productionProcessContext, Integer variableType, List<String> categoryLevelTwoList) {
|
|
|
|
|
List<MesEquipmentVariable> equipmentVariableList = findEquipmentVariableList(productionProcessContext, variableType);
|
|
|
|
|
return findEquipmentVariableList(equipmentVariableList, variableType, categoryLevelTwoList);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//获取设备数据变量信息
|
|
|
|
|
@Override
|
|
|
|
|
public List<MesEquipmentVariable> findEquipmentVariableList(List<MesEquipmentVariable> equipmentVariableList, Integer variableType, List<String> categoryLevelTwoList) {
|
|
|
|
|
return (CollectionUtils.isEmpty(equipmentVariableList) || CollectionUtils.isEmpty(categoryLevelTwoList)) ? null :
|
|
|
|
|
equipmentVariableList.stream().filter(o -> (null != o && categoryLevelTwoList.contains(o.getCategoryLevelTwo()) && o.getVariableType().compareTo(variableType) == 0)).collect(Collectors.toList());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//验证设备数据变量信息是否为空
|
|
|
|
|
@Override
|
|
|
|
|
public MesProductionProcessContext checkIsEmptyEquipmentVariableList(MesProductionProcessContext productionProcessContext, MesCellEquipContext cellEquipContext, List<MesEquipmentVariable> equipmentVariableList, MesExtEnumUtil.EQUIP_VARIABLE_TYPE variableType, List<String> categoryLevelTwoList) {
|
|
|
|
|
if (!CollectionUtils.isEmpty(equipmentVariableList)) return productionProcessContext;
|
|
|
|
|
return productionProcessContext.message(String.format("请检查设备数据变量信息,根据设备[%s]对应的数据变量接口逻辑信息,未配置变量类型[%s]二级变量%s相关的数据变量信息!", cellEquipContext.getEquipmentCode(), variableType.getDescription(), categoryLevelTwoList.toString()));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//发送设备质量信息
|
|
|
|
|
@Override
|
|
|
|
|
public void sendEquipQualityMessage(StationRequestBean reqBean, MesCellEquipContext cellEquipContext) {
|
|
|
|
|
StationResultBean resultBean = new StationResultBean();
|
|
|
|
@ -281,8 +310,7 @@ public class MesProductionProcessContextStepService extends BaseStepService impl
|
|
|
|
|
this.sendMessage(reqBean, resultBean);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//存储展示组件MODULE_CONTENT内容
|
|
|
|
|
@Override
|
|
|
|
|
public Boolean doCacheModuleContext(StationRequestBean reqBean, List<List<StationKvBean>> dataList) {
|
|
|
|
|
return saveFsmBusiData(reqBean.getOrganizeCode(), getContextKey(reqBean), MesPcnEnumUtil.STATION_BUSI_TYPE.MODULE_CONTENT.getValue(), JSONObject.toJSONString(dataList));
|
|
|
|
@ -294,22 +322,26 @@ public class MesProductionProcessContextStepService extends BaseStepService impl
|
|
|
|
|
return StringUtils.isEmpty(moduleContent) ? null : JSONObject.parseObject(moduleContent, new TypeReference<List<List<StationKvBean>>>() {});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//存储上个扫描/读取信息
|
|
|
|
|
@Override
|
|
|
|
|
public Boolean doCacheLastScanContext(StationRequestBean reqBean, List<StationKvBean> dataList) {
|
|
|
|
|
return saveFsmBusiData(reqBean.getOrganizeCode(), getContextKey(reqBean), MesPcnExtConstWords.LAST_SCAN_INFO, JSONObject.toJSONString(dataList));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//获取上个扫描/读取信息
|
|
|
|
|
@Override
|
|
|
|
|
public List<StationKvBean> 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) {
|
|
|
|
|
|
|
|
|
@ -323,6 +355,7 @@ public class MesProductionProcessContextStepService extends BaseStepService impl
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//发送工步内容
|
|
|
|
|
@Override
|
|
|
|
|
public void sendStepContextMessage(StationRequestBean reqBean, List<StationKvBean> lastScanContext) {
|
|
|
|
|
StationResultBean resultBean = new StationResultBean();
|
|
|
|
|