tags/yfai-pcn-ext-v1.0
王杰 12 months ago
parent f287f84070
commit b6ede3b70c

@ -7,7 +7,6 @@ import cn.estsh.i3plus.pojo.mes.bean.MesEquipmentVariable;
import cn.estsh.i3plus.pojo.mes.bean.MesEquipmentVariableCfg;
import io.swagger.annotations.ApiOperation;
import java.util.ArrayList;
import java.util.List;
public interface IMesEquipmentLogExtService {
@ -24,4 +23,7 @@ public interface IMesEquipmentLogExtService {
@ApiOperation(value = "获取设备数据变量对应的采集数据")
List<MesEquipVariableCfgCollectContext> doHandleEquipmentLogList(MesCellEquipContext cellEquipContext, List<MesEquipmentVariable> equipmentVariableList, List<MesEquipmentVariableCfg> equipmentVariableCfgList);
@ApiOperation(value = "验证设备通信质量")
Boolean checkEquipQuality(Integer quality);
}

@ -77,4 +77,6 @@ public interface IMesProductionProcessContextStepService {
@ApiOperation(value = "获取设备数据变量信息")
List<MesEquipmentVariable> findEquipmentVariableList(List<MesEquipmentVariable> equipmentVariableList, Integer variableType, List<String> categoryLevelTwoList);
@ApiOperation(value = "发送设备质量信息")
void sendEquipQualityMessage(StationRequestBean reqBean, MesCellEquipContext cellEquipContext);
}

@ -4,6 +4,7 @@ import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesEquipmentLogExtService;
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.util.MesPcnExtConstWords;
import cn.estsh.i3plus.platform.common.tool.TimeTool;
import cn.estsh.i3plus.pojo.base.bean.DdlPackBean;
import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack;
import cn.estsh.i3plus.pojo.mes.bean.MesEquipmentLog;
@ -21,6 +22,7 @@ import org.springframework.util.StringUtils;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import java.util.stream.Collectors;
@Slf4j
@ -60,6 +62,11 @@ public class MesEquipmentLogExtService implements IMesEquipmentLogExtService {
}
@Override
public Boolean checkEquipQuality(Integer quality) {
return MesExtEnumUtil.EQUIP_LOG_QUALITY.checkQuality(quality);
}
@Override
public List<MesEquipVariableCfgCollectContext> doHandleEquipmentLogList(MesCellEquipContext cellEquipContext, List<MesEquipmentVariable> equipmentVariableList, List<MesEquipmentVariableCfg> equipmentVariableCfgList) {
if (CollectionUtils.isEmpty(equipmentVariableList) || CollectionUtils.isEmpty(equipmentVariableCfgList)) return null;
@ -67,16 +74,19 @@ public class MesEquipmentLogExtService implements IMesEquipmentLogExtService {
//封装数据变量接口逻辑、数据变量、设备LOG信息的嵌套对象集合
List<MesEquipVariableCfgCollectContext> collectContextList = generateEquipVariableCfgCollectLogContextList(equipmentVariableList, equipmentVariableCfgList);
//标记当前设备通信默认正常
cellEquipContext.setQuality(MesExtEnumUtil.EQUIP_LOG_QUALITY.defaultQuality());
//根据常变值分别获取设备ID分表的采集数据
Map<Long, MesEquipmentLog> needNewValue2Collect = getEquipmentLog(cellEquipContext, collectContextList, MesExtEnumUtil.EQUIP_VARIABLE_NEED_NEW_VALUE.TRUE.getValue());
Map<Long, MesEquipmentLog> unNeedNewValue2Collect = getEquipmentLog(cellEquipContext, collectContextList, MesExtEnumUtil.EQUIP_VARIABLE_NEED_NEW_VALUE.FALSE.getValue());
//修改常变值配置对应的设备ID分表的采集数据的状态为1
if (!CollectionUtils.isEmpty(needNewValue2Collect)) updateEquipmentLogList(cellEquipContext.getOrganizeCode(), cellEquipContext.getEquipId(), new ArrayList<>(needNewValue2Collect.keySet()));
if (!CollectionUtils.isEmpty(needNewValue2Collect) && checkEquipQuality(cellEquipContext.getQuality())) updateEquipmentLogList(cellEquipContext.getOrganizeCode(), cellEquipContext.getEquipId(), new ArrayList<>(needNewValue2Collect.keySet()));
String equipVariableReadtime = TimeTool.getNowTime(true);
for (MesEquipVariableCfgCollectContext equipVariableCfgCollectContext : collectContextList) {
if (null == equipVariableCfgCollectContext || CollectionUtils.isEmpty(equipVariableCfgCollectContext.getEquipVariableCollectContextList())) continue;
equipVariableCfgCollectContext.getEquipVariableCollectContextList().forEach(o -> o.copyValue(filterEquipmentLog(needNewValue2Collect, unNeedNewValue2Collect, o.getClientHandle(), equipVariableCfgCollectContext.getNeedNewValue())));
equipVariableCfgCollectContext.getEquipVariableCollectContextList().forEach(o -> o.copyValue(filterEquipmentLog(needNewValue2Collect, unNeedNewValue2Collect, o.getClientHandle(), equipVariableCfgCollectContext.getNeedNewValue()), equipVariableReadtime));
}
return collectContextList;
@ -117,6 +127,8 @@ public class MesEquipmentLogExtService implements IMesEquipmentLogExtService {
List<MesEquipVariableCfgCollectContext> filterList = equipVariableCollectContextList.stream().filter(o -> (null != o && o.getNeedNewValue().compareTo(needNewValue) == 0)).collect(Collectors.toList());
if (CollectionUtils.isEmpty(filterList)) return null;
List<MesEquipmentLog> equipmentLogList = getEquipmentLogList(cellEquipContext.getOrganizeCode(), cellEquipContext.getEquipId(), needNewValue, collectClientHandleList(filterList));
Optional<MesEquipmentLog> optional = CollectionUtils.isEmpty(equipmentLogList) ? null : equipmentLogList.stream().filter(o -> (null != o && !checkEquipQuality(o.getQuality()))).findFirst();
if (null != optional && optional.isPresent()) cellEquipContext.setQuality(optional.get().getQuality());
return CollectionUtils.isEmpty(equipmentLogList) ? null : equipmentLogList.stream().filter(o -> null != o).collect(Collectors.toMap(MesEquipmentLog::getId, o -> o));
}

@ -0,0 +1,111 @@
//package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.step;
//
//import cn.estsh.i3plus.ext.mes.pcn.api.base.IMesMouldMultiCavityService;
//import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesEquipVariableCfgRuleMatchDispatchService;
//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.MesEquipVariableCollectContext;
//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.serviceimpl.fsm.BaseStepService;
//import cn.estsh.i3plus.pojo.base.enumutil.MesPcnEnumUtil;
//import cn.estsh.i3plus.pojo.mes.bean.MesEquipmentVariable;
//import cn.estsh.i3plus.pojo.mes.bean.MesEquipmentVariableCfg;
//import cn.estsh.i3plus.pojo.mes.bean.MesMouldMultiCavity;
//import cn.estsh.i3plus.pojo.mes.bean.MesProdRouteOptParam;
//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 com.alibaba.fastjson.JSONObject;
//import lombok.extern.slf4j.Slf4j;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.stereotype.Service;
//import org.springframework.util.CollectionUtils;
//import org.springframework.util.StringUtils;
//
//import java.util.List;
//import java.util.Map;
//import java.util.Optional;
//
///**
// * @Description : 读装配件条码工步
// * @Author : wangjie
// **/
//@Slf4j
//@Service("mesAssemblyReadStepService")
//public class MesAssemblyReadStepService extends BaseStepService {
//
// @Autowired
// private IMesProductionProcessContextStepService productionProcessContextStepService;
//
// @Autowired
// private IMesEquipmentLogExtService equipmentLogExtService;
//
// @Autowired
// private IMesEquipVariableCfgRuleMatchDispatchService equipVariableCfgRuleMatchService;
//
// @Autowired
// private IMesMouldMultiCavityService mouldMultiCavityService;
//
// @Override
// public StepResult execute(StationRequestBean reqBean) {
//
// StationResultBean resultBean = new StationResultBean();
//
// StepResult stepResult = StepResult.getSuccessComplete();
//
// Optional<Map<String, MesProdRouteOptParam>> stepParamMap = getStepParams(reqBean);
//
// MesProductionProcessContext productionProcessContext = productionProcessContextStepService.getCurCellEquipment(reqBean, stepParamMap);
//
// productionProcessContextStepService.getEquipmentVariableCfgList(productionProcessContext);
//
// //获取生产过程上下文对象有异常信息 抛出异常
// if (!productionProcessContext.getSuccess()) execExpSendMsgAndThrowEx(reqBean, resultBean, productionProcessContext.getMessage());
//
// List<MesEquipmentVariableCfg> equipmentVariableCfgList = productionProcessContext.getEquipVariableCfgListByVct();
//
// equipmentVariableCfgList = productionProcessContextStepService.collectEquipmentVariableCfgList(equipmentVariableCfgList, MesExtEnumUtil.EQUIP_VARIABLE_CFG_CATEGORY.ASSEMBLY.getValue());
//
// MesCellEquipContext cellEquipContext = productionProcessContext.getCurCellEquip();
//
// //配置错误 抛出异常
// if (CollectionUtils.isEmpty(equipmentVariableCfgList)) execExpSendMsgAndThrowEx(reqBean, resultBean,
// String.format("请检查设备数据变量接口逻辑信息,设备[%s]未配置变量配置类型[%s]装配件条码相关变量类别的数据变量接口逻辑信息", cellEquipContext.getEquipmentCode(), cellEquipContext.getVariableCfgType()));
//
// List<String> categoryLevelTwoList = productionProcessContextStepService.collectCategoryLevelTwoList(equipmentVariableCfgList);
//
// List<MesEquipmentVariable> equipmentVariableList = productionProcessContextStepService.findEquipmentVariableList(productionProcessContext, MesExtEnumUtil.EQUIP_VARIABLE_TYPE.PRODUCTION.getValue(), categoryLevelTwoList);
//
// //配置错误 抛出异常
// if (CollectionUtils.isEmpty(equipmentVariableList)) execExpSendMsgAndThrowEx(reqBean, resultBean,
// 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);
//
// //读取模具号进行规则匹配
// List<MesEquipVariableCollectContext> equipVariableCollectContextList = (List<MesEquipVariableCollectContext>) equipVariableCfgRuleMatchService.matchEquipVariableCfgCollectContext(reqBean, productionProcessContext, MesExtEnumUtil.EQUIP_VARIABLE_CFG_CATEGORY.MOULD_NO.getValue(), collectContextList);
//
// //验证模具号的有效性
// checkMouldNoValid(reqBean, resultBean, stepResult, productionProcessContext, cellEquipContext, equipVariableCollectContextList);
//
// //设置STATE_CMD: 失败返回至结束状态, 下次触发流程直接强制执行当前状态点
// if (!stepResult.isCompleted()) stepResult.setStateCmd(MesPcnEnumUtil.STATION_REQUEST_BEAN_CMD.FORCE_STATE);
//
// productionProcessContextStepService.doCacheContext(reqBean, productionProcessContext);
//
// if (!stepResult.isCompleted()) threadSleep(stepParamMap, MesPcnExtConstWords.READ_FAILURE_SLEEP, 1000L);
//
// return stepResult;
//
// }
//
//
//
//
//
//}

@ -86,11 +86,14 @@ public class MesFirstMouldNoReadStepService extends BaseStepService {
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);
//读取头道模具号进行规则匹配
List<MesEquipVariableCollectContext> equipVariableCollectContextList = (List<MesEquipVariableCollectContext>) equipVariableCfgRuleMatchService.matchEquipVariableCfgCollectContext(reqBean, productionProcessContext, MesExtEnumUtil.EQUIP_VARIABLE_CFG_CATEGORY.FIRST_MOULD_NO.getValue(), collectContextList);
//验证设备通信质量
productionProcessContextStepService.sendEquipQualityMessage(reqBean, cellEquipContext);
if (!equipmentLogExtService.checkEquipQuality(cellEquipContext.getQuality()))
execDynamicsCompleteAndSendMsg(reqBean, resultBean, stepResult, false,
MesPcnEnumUtil.STATION_BUSI_TYPE.MESSAGE, MesPcnEnumUtil.STATION_DATA_TYPE.EXP_TEXT, String.format("请检查设备的质量状态,读取到设备[%s]的数据变量质量值为[%s]", cellEquipContext.getEquipmentCode(), cellEquipContext.getQuality()));
//验证头道模具号的有效性
checkMouldNoValid(reqBean, resultBean, stepResult, productionProcessContext, cellEquipContext, equipVariableCollectContextList);
if (stepResult.isCompleted()) checkFirstMouldNoValid(reqBean, resultBean, stepResult, productionProcessContext, cellEquipContext, collectContextList);
//设置STATE_CMD: 失败返回至结束状态, 下次触发流程直接强制执行当前状态点
if (!stepResult.isCompleted()) stepResult.setStateCmd(MesPcnEnumUtil.STATION_REQUEST_BEAN_CMD.FORCE_STATE);
@ -103,7 +106,10 @@ public class MesFirstMouldNoReadStepService extends BaseStepService {
}
private StepResult checkMouldNoValid(StationRequestBean reqBean, StationResultBean resultBean, StepResult stepResult, MesProductionProcessContext productionProcessContext, MesCellEquipContext cellEquipContext, List<MesEquipVariableCollectContext> equipVariableCollectContextList) {
private StepResult checkFirstMouldNoValid(StationRequestBean reqBean, StationResultBean resultBean, StepResult stepResult, MesProductionProcessContext productionProcessContext, MesCellEquipContext cellEquipContext, List<MesEquipVariableCfgCollectContext> collectContextList) {
//读取头道模具号进行规则匹配
List<MesEquipVariableCollectContext> equipVariableCollectContextList = (List<MesEquipVariableCollectContext>) equipVariableCfgRuleMatchService.matchEquipVariableCfgCollectContext(reqBean, productionProcessContext, MesExtEnumUtil.EQUIP_VARIABLE_CFG_CATEGORY.FIRST_MOULD_NO.getValue(), collectContextList);
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()));

@ -87,11 +87,14 @@ public class MesMouldNoReadStepService extends BaseStepService {
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);
//读取模具号进行规则匹配
List<MesEquipVariableCollectContext> equipVariableCollectContextList = (List<MesEquipVariableCollectContext>) equipVariableCfgRuleMatchService.matchEquipVariableCfgCollectContext(reqBean, productionProcessContext, MesExtEnumUtil.EQUIP_VARIABLE_CFG_CATEGORY.MOULD_NO.getValue(), collectContextList);
//验证设备通信质量
productionProcessContextStepService.sendEquipQualityMessage(reqBean, cellEquipContext);
if (!equipmentLogExtService.checkEquipQuality(cellEquipContext.getQuality()))
execDynamicsCompleteAndSendMsg(reqBean, resultBean, stepResult, false,
MesPcnEnumUtil.STATION_BUSI_TYPE.MESSAGE, MesPcnEnumUtil.STATION_DATA_TYPE.EXP_TEXT, String.format("请检查设备的质量状态,读取到设备[%s]的数据变量质量值为[%s]", cellEquipContext.getEquipmentCode(), cellEquipContext.getQuality()));
//验证模具号的有效性
checkMouldNoValid(reqBean, resultBean, stepResult, productionProcessContext, cellEquipContext, equipVariableCollectContextList);
//验证头道模具号的有效性
if (stepResult.isCompleted()) checkMouldNoValid(reqBean, resultBean, stepResult, productionProcessContext, cellEquipContext, collectContextList);
//设置STATE_CMD: 失败返回至结束状态, 下次触发流程直接强制执行当前状态点
if (!stepResult.isCompleted()) stepResult.setStateCmd(MesPcnEnumUtil.STATION_REQUEST_BEAN_CMD.FORCE_STATE);
@ -104,7 +107,10 @@ public class MesMouldNoReadStepService extends BaseStepService {
}
private StepResult checkMouldNoValid(StationRequestBean reqBean, StationResultBean resultBean, StepResult stepResult, MesProductionProcessContext productionProcessContext, MesCellEquipContext cellEquipContext, List<MesEquipVariableCollectContext> equipVariableCollectContextList) {
private StepResult checkMouldNoValid(StationRequestBean reqBean, StationResultBean resultBean, StepResult stepResult, MesProductionProcessContext productionProcessContext, MesCellEquipContext cellEquipContext, List<MesEquipVariableCfgCollectContext> collectContextList) {
//读取模具号进行规则匹配
List<MesEquipVariableCollectContext> equipVariableCollectContextList = (List<MesEquipVariableCollectContext>) equipVariableCfgRuleMatchService.matchEquipVariableCfgCollectContext(reqBean, productionProcessContext, MesExtEnumUtil.EQUIP_VARIABLE_CFG_CATEGORY.MOULD_NO.getValue(), collectContextList);
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()));

@ -83,12 +83,13 @@ public class MesProductResultReadStepService extends BaseStepService {
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);
Map<String, List<MesEquipVariableCfgCollectContext>> variableCategoryMap = collectContextList.stream().filter(o -> null != o).collect(Collectors.groupingBy(MesEquipVariableCfgCollectContext::getVariableCategory));
matchVariableCategoryMap(reqBean, resultBean, stepResult, productionProcessContext, cellEquipContext, variableCategoryMap);
//验证设备通信质量; 设置STATE_CMD: 失败返回至结束状态, 下次触发流程直接强制执行当前状态点
productionProcessContextStepService.sendEquipQualityMessage(reqBean, cellEquipContext);
if (!equipmentLogExtService.checkEquipQuality(cellEquipContext.getQuality()))
execDynamicsCompleteAndSendMsg(reqBean, resultBean, stepResult.stateCmd(MesPcnEnumUtil.STATION_REQUEST_BEAN_CMD.FORCE_STATE), false,
MesPcnEnumUtil.STATION_BUSI_TYPE.MESSAGE, MesPcnEnumUtil.STATION_DATA_TYPE.EXP_TEXT, String.format("请检查设备的质量状态,读取到设备[%s]的数据变量质量值为[%s]", cellEquipContext.getEquipmentCode(), cellEquipContext.getQuality()));
//保存设备当前一轮工序的加工结果: 只保存成功/报废/可疑的结果
if (stepResult.isCompleted()) productionProcessContext.productResult((String) stepResult.getObj());
if (stepResult.isCompleted()) matchProductResult(reqBean, resultBean, stepResult, productionProcessContext, cellEquipContext, collectContextList);
productionProcessContextStepService.doCacheContext(reqBean, productionProcessContext);
@ -98,6 +99,18 @@ public class MesProductResultReadStepService extends BaseStepService {
}
private void matchProductResult(StationRequestBean reqBean, StationResultBean resultBean, StepResult stepResult,
MesProductionProcessContext productionProcessContext, MesCellEquipContext cellEquipContext, List<MesEquipVariableCfgCollectContext> collectContextList) {
Map<String, List<MesEquipVariableCfgCollectContext>> variableCategoryMap = collectContextList.stream().filter(o -> null != o).collect(Collectors.groupingBy(MesEquipVariableCfgCollectContext::getVariableCategory));
matchVariableCategoryMap(reqBean, resultBean, stepResult, productionProcessContext, cellEquipContext, variableCategoryMap);
//保存设备当前一轮工序的加工结果: 只保存成功/报废/可疑的结果
if (stepResult.isCompleted()) productionProcessContext.productResult((String) stepResult.getObj());
}
//加工结果规则匹配:根据变量类别分组, 只要匹配一组即可; 在一组中根据规则类别分组, 相同规则类别的一组必须全部匹配, 任意一组规则类别匹配成功即可
private StepResult matchVariableCategoryMap(StationRequestBean reqBean, StationResultBean resultBean, StepResult stepResult,
MesProductionProcessContext productionProcessContext, MesCellEquipContext cellEquipContext, Map<String, List<MesEquipVariableCfgCollectContext>> variableCategoryMap) {
@ -118,6 +131,4 @@ public class MesProductResultReadStepService extends BaseStepService {
}
}

@ -8,8 +8,11 @@ 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.pojo.base.enumutil.MesPcnEnumUtil;
import cn.estsh.i3plus.pojo.mes.bean.*;
import cn.estsh.i3plus.pojo.mes.model.StationRequestBean;
import cn.estsh.i3plus.pojo.mes.model.StationResultBean;
import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil;
import com.alibaba.fastjson.JSONObject;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
@ -263,4 +266,13 @@ public class MesProductionProcessContextStepService extends BaseStepService impl
equipmentVariableList.stream().filter(o -> (null != o && categoryLevelTwoList.contains(o.getCategoryLevelTwo()) && o.getVariableType().compareTo(variableType) == 0)).collect(Collectors.toList());
}
@Override
public void sendEquipQualityMessage(StationRequestBean reqBean, MesCellEquipContext cellEquipContext) {
StationResultBean resultBean = new StationResultBean();
resultBean.setResultObj(MesExtEnumUtil.EQUIP_LOG_QUALITY.valueOfColor(cellEquipContext.getQuality()));
resultBean.setBusiType(MesPcnEnumUtil.STATION_BUSI_TYPE.QUALITY_MODULE.getValue());
resultBean.setDataType(MesPcnEnumUtil.STATION_DATA_TYPE.COLOR.getValue());
this.sendMessage(reqBean, resultBean);
}
}

@ -1,5 +1,6 @@
package cn.estsh.i3plus.ext.mes.pcn.pojo.context;
import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil;
import io.swagger.annotations.ApiParam;
import lombok.Data;
@ -42,4 +43,7 @@ public class MesCellEquipContext {
@ApiParam("是否监控停机")
private String monitorDownTime;
@ApiParam("设备质量")
private Integer quality = MesExtEnumUtil.EQUIP_LOG_QUALITY.QUALITY.getValue();
}

@ -80,14 +80,18 @@ public class MesEquipVariableCollectContext {
@ApiParam("设备质量")
private Integer quality;
@ApiParam("读取时间")
private String equipVariableReadtime;
public MesEquipVariableCollectContext() {}
public MesEquipVariableCollectContext(Long equipVariableId) {
this.equipVariableId = equipVariableId;
}
public void copyValue(MesEquipmentLog equipmentLog) {
public void copyValue(MesEquipmentLog equipmentLog, String equipVariableReadtime) {
if (null == equipmentLog) return;
BeanUtils.copyProperties(equipmentLog, this);
this.equipVariableReadtime = equipVariableReadtime;
}
}

Loading…
Cancel
Save