|
|
|
@ -2,7 +2,7 @@ package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.equiplog;
|
|
|
|
|
|
|
|
|
|
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.MesEquipLogCollectContext;
|
|
|
|
|
import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesEquipLogDispatchContext;
|
|
|
|
|
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;
|
|
|
|
@ -68,20 +68,20 @@ public class MesEquipmentLogExtService implements IMesEquipmentLogExtService {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public MesEquipLogCollectContext doHandleEquipmentLogList(MesCellEquipContext cellEquipContext, List<MesEquipmentVariable> equipmentVariableList, List<MesEquipmentVariableCfg> equipmentVariableCfgList) {
|
|
|
|
|
public MesEquipLogDispatchContext doHandleEquipmentLogList(MesCellEquipContext cellEquipContext, List<MesEquipmentVariable> equipmentVariableList, List<MesEquipmentVariableCfg> equipmentVariableCfgList) {
|
|
|
|
|
|
|
|
|
|
MesEquipLogCollectContext equipLogCollectContext = new MesEquipLogCollectContext(cellEquipContext.getOrganizeCode());
|
|
|
|
|
MesEquipLogDispatchContext equipLogDispatchContext = new MesEquipLogDispatchContext(cellEquipContext.getOrganizeCode());
|
|
|
|
|
|
|
|
|
|
if (CollectionUtils.isEmpty(equipmentVariableList) || CollectionUtils.isEmpty(equipmentVariableCfgList)) return equipLogCollectContext;
|
|
|
|
|
if (CollectionUtils.isEmpty(equipmentVariableList) || CollectionUtils.isEmpty(equipmentVariableCfgList)) return equipLogDispatchContext;
|
|
|
|
|
|
|
|
|
|
//封装数据变量接口逻辑、数据变量、设备LOG信息的嵌套对象集合
|
|
|
|
|
List<MesEquipVariableCfgCollectContext> collectContextList = generateEquipVariableCfgCollectLogContextList(equipLogCollectContext, equipmentVariableList, equipmentVariableCfgList);
|
|
|
|
|
List<MesEquipVariableCfgCollectContext> collectContextList = generateEquipVariableCfgCollectLogContextList(equipLogDispatchContext, equipmentVariableList, equipmentVariableCfgList);
|
|
|
|
|
|
|
|
|
|
//标记当前设备通信默认正常
|
|
|
|
|
cellEquipContext.setQuality(MesExtEnumUtil.EQUIP_LOG_QUALITY.defaultQuality());
|
|
|
|
|
//根据常变值分别获取设备ID分表的采集数据
|
|
|
|
|
Map<Long, MesEquipmentLog> needNewValue2Collect = getEquipmentLog(equipLogCollectContext, cellEquipContext, collectContextList, MesExtEnumUtil.EQUIP_VARIABLE_NEED_NEW_VALUE.TRUE.getValue());
|
|
|
|
|
Map<Long, MesEquipmentLog> unNeedNewValue2Collect = getEquipmentLog(equipLogCollectContext, cellEquipContext, collectContextList, MesExtEnumUtil.EQUIP_VARIABLE_NEED_NEW_VALUE.FALSE.getValue());
|
|
|
|
|
Map<Long, MesEquipmentLog> needNewValue2Collect = getEquipmentLog(equipLogDispatchContext, cellEquipContext, collectContextList, MesExtEnumUtil.EQUIP_VARIABLE_NEED_NEW_VALUE.TRUE.getValue());
|
|
|
|
|
Map<Long, MesEquipmentLog> unNeedNewValue2Collect = getEquipmentLog(equipLogDispatchContext, cellEquipContext, collectContextList, MesExtEnumUtil.EQUIP_VARIABLE_NEED_NEW_VALUE.FALSE.getValue());
|
|
|
|
|
|
|
|
|
|
//修改常变值配置对应的设备ID分表的采集数据的状态为1
|
|
|
|
|
if (!CollectionUtils.isEmpty(needNewValue2Collect) && checkEquipQuality(cellEquipContext.getQuality())) updateEquipmentLogList(cellEquipContext.getOrganizeCode(), cellEquipContext.getEquipId(), new ArrayList<>(needNewValue2Collect.keySet()));
|
|
|
|
@ -92,11 +92,11 @@ public class MesEquipmentLogExtService implements IMesEquipmentLogExtService {
|
|
|
|
|
equipVariableCfgCollectContext.getEquipVariableCollectContextList().forEach(o -> o.copyValue(filterEquipmentLog(needNewValue2Collect, unNeedNewValue2Collect, o.getClientHandle(), equipVariableCfgCollectContext.getNeedNewValue()), equipVariableReadtime));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return equipLogCollectContext.equipVariableCfgCollectContextList(collectContextList);
|
|
|
|
|
return equipLogDispatchContext.equipVariableCfgCollectContextList(collectContextList);
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private List<MesEquipVariableCfgCollectContext> generateEquipVariableCfgCollectLogContextList(MesEquipLogCollectContext equipLogCollectContext, List<MesEquipmentVariable> equipmentVariableList, List<MesEquipmentVariableCfg> equipmentVariableCfgList) {
|
|
|
|
|
private List<MesEquipVariableCfgCollectContext> generateEquipVariableCfgCollectLogContextList(MesEquipLogDispatchContext equipLogDispatchContext, List<MesEquipmentVariable> equipmentVariableList, List<MesEquipmentVariableCfg> equipmentVariableCfgList) {
|
|
|
|
|
|
|
|
|
|
List<MesEquipVariableCfgCollectContext> equipVariableCollectContextList = null;
|
|
|
|
|
|
|
|
|
@ -112,7 +112,7 @@ public class MesEquipmentLogExtService implements IMesEquipmentLogExtService {
|
|
|
|
|
|
|
|
|
|
if (StringUtils.isEmpty(equipmentVariableCfg.getNeedNewValue())) equipVariableCfgCollect.setNeedNewValue(MesExtEnumUtil.EQUIP_VARIABLE_NEED_NEW_VALUE.FALSE.getValue());
|
|
|
|
|
|
|
|
|
|
if (MesExtEnumUtil.EQUIP_VARIABLE_NEED_NEW_VALUE.TRUE.getValue() == equipVariableCfgCollect.getNeedNewValue()) equipLogCollectContext.needNewValue();
|
|
|
|
|
if (MesExtEnumUtil.EQUIP_VARIABLE_NEED_NEW_VALUE.TRUE.getValue() == equipVariableCfgCollect.getNeedNewValue()) equipLogDispatchContext.needNewValue();
|
|
|
|
|
|
|
|
|
|
if (CollectionUtils.isEmpty(equipVariableCollectContextList)) equipVariableCollectContextList = new ArrayList<>();
|
|
|
|
|
|
|
|
|
@ -132,7 +132,7 @@ public class MesEquipmentLogExtService implements IMesEquipmentLogExtService {
|
|
|
|
|
return !CollectionUtils.isEmpty(collectMap) ? collectMap.get(Long.valueOf(clientHandle.toString())) : null;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private Map<Long, MesEquipmentLog> getEquipmentLog(MesEquipLogCollectContext equipLogCollectContext, MesCellEquipContext cellEquipContext, List<MesEquipVariableCfgCollectContext> equipVariableCollectContextList, Integer needNewValue) {
|
|
|
|
|
private Map<Long, MesEquipmentLog> getEquipmentLog(MesEquipLogDispatchContext equipLogDispatchContext, MesCellEquipContext cellEquipContext, List<MesEquipVariableCfgCollectContext> equipVariableCollectContextList, Integer needNewValue) {
|
|
|
|
|
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));
|
|
|
|
@ -140,7 +140,7 @@ public class MesEquipmentLogExtService implements IMesEquipmentLogExtService {
|
|
|
|
|
if (null != optional && optional.isPresent()) cellEquipContext.setQuality(optional.get().getQuality());
|
|
|
|
|
|
|
|
|
|
//【已经采集到任何数据 或者 (equipmentLogList有数据且是长变值方式获取的 或者 不是常变值方式获取的但必须有value) 】 情况下isCollectValue标记为true
|
|
|
|
|
if (equipLogCollectContext.getIsCollectValue() || (!CollectionUtils.isEmpty(equipmentLogList) && (needNewValue == MesExtEnumUtil.EQUIP_VARIABLE_NEED_NEW_VALUE.TRUE.getValue() || checkEquipmentLogHasValue(equipmentLogList)))) equipLogCollectContext.isCollectValue();
|
|
|
|
|
if (equipLogDispatchContext.getIsCollectValue() || (!CollectionUtils.isEmpty(equipmentLogList) && (needNewValue == MesExtEnumUtil.EQUIP_VARIABLE_NEED_NEW_VALUE.TRUE.getValue() || checkEquipmentLogHasValue(equipmentLogList)))) equipLogDispatchContext.isCollectValue();
|
|
|
|
|
|
|
|
|
|
return CollectionUtils.isEmpty(equipmentLogList) ? null : equipmentLogList.stream().filter(o -> null != o).collect(Collectors.toMap(MesEquipmentLog::getId, o -> o));
|
|
|
|
|
}
|
|
|
|
|