Merge branch 'master' into dev-wuhan-temp

tags/yfai-pcn-ext-v2.3
王杰 8 months ago
commit ba1a743d20

@ -17,10 +17,11 @@ public interface IMesEquipmentLogExtService {
@ApiOperation(value = "根据设备ID,是否常变值状态,设备数据变量ID集合 查询设备ID分表采集数据")
List<MesEquipmentLog> getEquipmentLogList(String organizeCode, Integer equipId, Integer needNewValue, List<Long> equipVariableIdList);
@ApiOperation(value = "根据设备ID,设备数据变量ID集合 修改设备ID分表采集数据的状态")
void updateEquipmentLogList(String organizeCode, Integer equipId, List<Long> equipVariableIdList);
@ApiOperation(value = "根据设备ID 查询设备ID分表所有采集数据")
MesEquipmentLog queryMesEquipmentLog(String organizeCode, Integer equipId, Long equipVariableId);
void updateEquipmentLogValue(String organizeCode, Integer equipId, Long equipVariableId, String value);
@ApiOperation(value = "根据设备ID,设备LOG表ID集合 修改设备ID分表采集数据的状态")
void updateEquipmentLogList(String organizeCode, Integer equipId, List<Long> equipmentLogIdList);
@ApiOperation(value = "获取设备数据变量对应的采集数据")
MesEquipLogDispatchContext getEquipLogDispatchContext(MesCellEquipContext cellEquipContext, List<MesEquipmentVariable> equipmentVariableList, List<MesEquipmentVariableCfg> equipmentVariableCfgList);
@ -28,7 +29,6 @@ public interface IMesEquipmentLogExtService {
@ApiOperation(value = "验证设备通信质量")
Boolean checkEquipQuality(Integer quality);
@ApiOperation(value = "根据设备ID 查询设备ID分表所有采集数据")
MesEquipmentLog queryMesEquipmentLog(String organizeCode, Integer equipId, Long equipVariableId);
}

@ -0,0 +1,17 @@
package cn.estsh.i3plus.ext.mes.pcn.apiservice.dao;
import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesEquipVariableCollectContext;
import cn.estsh.i3plus.pojo.mes.bean.MesEquipmentVariable;
import io.swagger.annotations.ApiOperation;
import java.util.List;
public interface IMesEquipmentLogDao {
@ApiOperation(value = "根据设备ID, 变量类型查询设备日志表")
List<MesEquipVariableCollectContext> queryMesEquipmentLog(List<MesEquipmentVariable> equipmentVariableList, String organizeCode, Integer equipId, Integer variableType);
@ApiOperation(value = "根据设备ID, 设备LOG表ID集合修改设备日志表的数据状态")
void updateEquipVariableStatus(String organizeCode, Integer equipId, List<Long> equipmentLogIdList, Integer equipVariableStatus);
}

@ -0,0 +1,111 @@
package cn.estsh.i3plus.ext.mes.pcn.apiservice.daoimpl;
import cn.estsh.i3plus.ext.mes.pcn.apiservice.dao.IMesEquipmentLogDao;
import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesEquipVariableCollectContext;
import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtConstWords;
import cn.estsh.i3plus.pojo.mes.bean.MesEquipmentVariable;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import org.springframework.util.StringUtils;
import javax.persistence.EntityManager;
import javax.persistence.Query;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
/**
* @Description : MESDao
* @Reference :
* @Author : xiangming.liao
* @CreateDate : 2020-02-21
* @Modify:
**/
@Service
public class MesEquipmentLogDao implements IMesEquipmentLogDao {
@Autowired
private EntityManager entityManager;
@Override
public List<MesEquipVariableCollectContext> queryMesEquipmentLog(List<MesEquipmentVariable> equipmentVariableList, String organizeCode, Integer equipId, Integer variableType) {
if (CollectionUtils.isEmpty(equipmentVariableList) || StringUtils.isEmpty(organizeCode) || StringUtils.isEmpty(equipId) || StringUtils.isEmpty(variableType)) return null;
StringBuffer builder = new StringBuffer();
builder.append(" select e.equip_variable_id, e.equip_variable_value, e.equip_variable_status, e.quality, e.modify_date_time, e.id ");
builder.append(" from mes_equipment_log_");
builder.append(equipId);
builder.append(" e where e.organize_code = :organizeCode and e.variable_type = :variableType ");
Query query = entityManager.createNativeQuery(builder.toString());
query.setParameter(MesPcnExtConstWords.ORGANIZE_CODE, organizeCode);
query.setParameter(MesPcnExtConstWords.VARIABLE_TYPE, variableType);
List list = query.getResultList();
if (CollectionUtils.isEmpty(list)) return null;
List<Long> equipVariableIdList = equipmentVariableList.stream().filter(o -> null != o).map(MesEquipmentVariable::getId).collect(Collectors.toList());
List<MesEquipVariableCollectContext> equipVariableCollectContextList = generateEquipVariableCollectContextList(equipmentVariableList);
for (Object equipmentLog : list) {
if (null == equipmentLog) continue;
Object[] equipmentLogArr = (Object[]) equipmentLog;
if (null == equipmentLogArr || equipmentLogArr.length != 6 || equipVariableIdList.contains(equipmentLogArr[0])) continue;
equipVariableCollectContextList.stream().filter(o -> (null != o && o.getEquipVariableId().compareTo((Long) equipmentLogArr[0]) == 0)).findFirst().get().copyValue(equipmentLogArr[1], equipmentLogArr[2], equipmentLogArr[3], equipmentLogArr[4], equipmentLogArr[5]);
}
return equipVariableCollectContextList;
}
@Override
public void updateEquipVariableStatus(String organizeCode, Integer equipId, List<Long> equipmentLogIdList, Integer equipVariableStatus) {
if (StringUtils.isEmpty(organizeCode) || StringUtils.isEmpty(equipId) || CollectionUtils.isEmpty(equipmentLogIdList)) return;
StringBuffer builder = new StringBuffer();
for (int i = 0; i < equipmentLogIdList.size(); i ++) {
if (StringUtils.isEmpty(equipmentLogIdList.get(i))) continue;
if (!StringUtils.isEmpty(builder)) builder.append(MesPcnExtConstWords.SEMICOLON);
builder.append(" update mes_equipment_log_");
builder.append(equipId);
builder.append(" set equip_variable_status = :equipVariableStatus where id = :id_");
builder.append(i);
}
Query update = entityManager.createNativeQuery(builder.toString());
for (int i = 0; i < equipmentLogIdList.size(); i ++) {
if (StringUtils.isEmpty(equipmentLogIdList.get(i))) continue;
update.setParameter(String.format("id_%s", i), equipVariableStatus);
}
update.executeUpdate();
}
private List<MesEquipVariableCollectContext> generateEquipVariableCollectContextList(List<MesEquipmentVariable> equipmentVariableList) {
List<MesEquipVariableCollectContext> equipVariableCollectContextList = new ArrayList<>();
equipmentVariableList.stream().filter(o -> null != o).forEach(o -> {
MesEquipVariableCollectContext equipVariableCollectContext = new MesEquipVariableCollectContext(o.getId());
BeanUtils.copyProperties(o, equipVariableCollectContext);
equipVariableCollectContextList.add(equipVariableCollectContext);
});
return equipVariableCollectContextList;
}
}

@ -1,9 +1,11 @@
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.apiservice.dao.IMesEquipmentLogDao;
import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesCellEquipContext;
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.context.MesEquipVariableCollectContext;
import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtConstWords;
import cn.estsh.i3plus.pojo.base.bean.DdlPackBean;
import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack;
@ -34,6 +36,9 @@ public class MesEquipmentLogExtService implements IMesEquipmentLogExtService {
@Autowired
private MesEquipmentLogRepository equipmentLogRepository;
@Autowired
private IMesEquipmentLogDao equipmentLogDao;
@Override
public List<MesEquipmentLog> getEquipmentLogList(String organizeCode, Integer equipId) {
if (StringUtils.isEmpty(organizeCode) || StringUtils.isEmpty(equipId)) return null;
@ -54,21 +59,18 @@ public class MesEquipmentLogExtService implements IMesEquipmentLogExtService {
}
@Override
public void updateEquipmentLogList(String organizeCode, Integer equipId, List<Long> equipVariableIdList) {
if (StringUtils.isEmpty(organizeCode) || StringUtils.isEmpty(equipId) || CollectionUtils.isEmpty(equipVariableIdList)) return;
DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode);
DdlPreparedPack.getNumEqualPack(equipId, MesPcnExtConstWords.EQUIP_ID, packBean);
if (!CollectionUtils.isEmpty(equipVariableIdList) && equipVariableIdList.size() == 1 ) DdlPreparedPack.getNumEqualPack(equipVariableIdList.get(0), MesPcnExtConstWords.EQUIP_VARIABLE_ID, packBean);
else DdlPreparedPack.getInPackList(equipVariableIdList, MesPcnExtConstWords.EQUIP_VARIABLE_ID, packBean);
equipmentLogRepository.updateByProperties(new String[]{MesPcnExtConstWords.EQUIP_VARIABLE_STATUS}, new Object[]{MesExtEnumUtil.EQUIP_VARIABLE_NEED_NEW_VALUE.TRUE.getValue()}, packBean);
public MesEquipmentLog queryMesEquipmentLog(String organizeCode, Integer equipId, Long equipVariableId) {
DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean();
DdlPreparedPack.getStringEqualPack(organizeCode, MesPcnExtConstWords.ORGANIZE_CODE, ddlPackBean);
DdlPreparedPack.getNumEqualPack(equipId, MesPcnExtConstWords.EQUIP_ID, ddlPackBean);
DdlPreparedPack.getNumEqualPack(equipVariableId, MesPcnExtConstWords.EQUIP_VARIABLE_ID, ddlPackBean);
return equipmentLogRepository.getByProperty(ddlPackBean);
}
@Override
public void updateEquipmentLogValue(String organizeCode, Integer equipId, Long equipVariableId, String value) {
DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode);
DdlPreparedPack.getNumEqualPack(equipId, MesPcnExtConstWords.EQUIP_ID, packBean);
DdlPreparedPack.getNumEqualPack(equipVariableId, MesPcnExtConstWords.EQUIP_VARIABLE_ID, packBean);
equipmentLogRepository.updateByProperties(new String[]{MesPcnExtConstWords.EQUIP_VARIABLE_STATUS, MesPcnExtConstWords.EQUIP_VARIABLE_STATUS}, new Object[]{value, MesExtEnumUtil.EQUIP_VARIABLE_NEED_NEW_VALUE.TRUE.getEquipVariableStatus()}, packBean);
public void updateEquipmentLogList(String organizeCode, Integer equipId, List<Long> equipmentLogIdList) {
if (StringUtils.isEmpty(organizeCode) || StringUtils.isEmpty(equipId) || CollectionUtils.isEmpty(equipmentLogIdList)) return;
equipmentLogDao.updateEquipVariableStatus(organizeCode, equipId, equipmentLogIdList, MesExtEnumUtil.EQUIP_VARIABLE_NEED_NEW_VALUE.FALSE.getEquipVariableStatus());
}
@Override
@ -84,100 +86,52 @@ public class MesEquipmentLogExtService implements IMesEquipmentLogExtService {
if (CollectionUtils.isEmpty(equipmentVariableList) || CollectionUtils.isEmpty(equipmentVariableCfgList)) return equipLogDispatchContext;
//封装数据变量接口逻辑、数据变量、设备LOG信息的嵌套对象集合
List<MesEquipVariableCfgCollectContext> collectContextList = generateEquipVariableCfgCollectLogContextList(equipLogDispatchContext, equipmentVariableList, equipmentVariableCfgList);
//标记当前设备通信默认正常
cellEquipContext.setQuality(MesExtEnumUtil.EQUIP_LOG_QUALITY.defaultQuality());
//根据常变值分别获取设备ID分表的采集数据
Map<Long, List<MesEquipmentLog>> needNewValue2Collect = getEquipmentLog(equipLogDispatchContext, cellEquipContext, collectContextList, MesExtEnumUtil.EQUIP_VARIABLE_NEED_NEW_VALUE.TRUE.getValue());
Map<Long, List<MesEquipmentLog>> unNeedNewValue2Collect = getEquipmentLog(equipLogDispatchContext, cellEquipContext, collectContextList, MesExtEnumUtil.EQUIP_VARIABLE_NEED_NEW_VALUE.FALSE.getValue());
List<MesEquipVariableCollectContext> equipVariableCollectContextList = equipmentLogDao.queryMesEquipmentLog(equipmentVariableList, cellEquipContext.getOrganizeCode(), cellEquipContext.getEquipId(), MesExtEnumUtil.EQUIP_VARIABLE_TYPE.PRODUCTION.getValue());
//标记需要修改的设备数据变量ID 【在主方法体中修改常变值配置对应的设备ID分表的采集数据的状态为1】
if (!CollectionUtils.isEmpty(needNewValue2Collect) && checkEquipQuality(cellEquipContext.getQuality())) equipLogDispatchContext.resetEquipVariableIdList(new ArrayList<>(needNewValue2Collect.keySet()));
// 标记当前设备通信是否正常
Optional<MesEquipVariableCollectContext> optional = CollectionUtils.isEmpty(equipVariableCollectContextList) ? null : equipVariableCollectContextList.stream().filter(o -> (null != o && !StringUtils.isEmpty(o.getQuality()) && !checkEquipQuality(o.getQuality()))).findFirst();
cellEquipContext.setQuality((null != optional && optional.isPresent()) ? optional.get().getQuality() : MesExtEnumUtil.EQUIP_LOG_QUALITY.defaultQuality());
for (MesEquipVariableCfgCollectContext equipVariableCfgCollectContext : collectContextList) {
if (null == equipVariableCfgCollectContext || CollectionUtils.isEmpty(equipVariableCfgCollectContext.getEquipVariableCollectContextList())) continue;
equipVariableCfgCollectContext.getEquipVariableCollectContextList().forEach(o -> o.copyValue(filterEquipmentLog(needNewValue2Collect, unNeedNewValue2Collect, o.getEquipVariableId(), equipVariableCfgCollectContext.getNeedNewValue())));
}
// 封装数据变量接口逻辑、数据变量、设备LOG信息的嵌套对象集合
List<MesEquipVariableCfgCollectContext> collectContextList = generateEquipVariableCfgCollectLogContextList(equipLogDispatchContext, cellEquipContext, equipVariableCollectContextList, equipmentVariableCfgList);
return equipLogDispatchContext.equipVariableCfgCollectContextList(collectContextList);
}
private List<MesEquipVariableCfgCollectContext> generateEquipVariableCfgCollectLogContextList(MesEquipLogDispatchContext equipLogDispatchContext, List<MesEquipmentVariable> equipmentVariableList, List<MesEquipmentVariableCfg> equipmentVariableCfgList) {
private List<MesEquipVariableCfgCollectContext> generateEquipVariableCfgCollectLogContextList(MesEquipLogDispatchContext equipLogDispatchContext, MesCellEquipContext cellEquipContext,
List<MesEquipVariableCollectContext> equipVariableCollectContextList, List<MesEquipmentVariableCfg> equipmentVariableCfgList) {
List<MesEquipVariableCfgCollectContext> equipVariableCollectContextList = null;
List<MesEquipVariableCfgCollectContext> equipVariableCfgCollectContextList = null;
Map<String, List<MesEquipmentVariable>> categoryLevelTwoMap = equipmentVariableList.stream().filter(o -> null != o).collect(Collectors.groupingBy(MesEquipmentVariable::getCategoryLevelTwo));
Map<String, List<MesEquipVariableCollectContext>> categoryLevelTwoMap = equipVariableCollectContextList.stream().filter(o -> null != o).collect(Collectors.groupingBy(MesEquipVariableCollectContext::getCategoryLevelTwo));
for (MesEquipmentVariableCfg equipmentVariableCfg : equipmentVariableCfgList) {
if (null == equipmentVariableCfg) continue;
MesEquipVariableCfgCollectContext equipVariableCfgCollect = new MesEquipVariableCfgCollectContext();
BeanUtils.copyProperties(equipmentVariableCfg, equipVariableCfgCollect);
equipVariableCfgCollect.equipVariableCollectContextList(categoryLevelTwoMap.get(equipmentVariableCfg.getCategoryLevelTwo()));
if (StringUtils.isEmpty(equipmentVariableCfg.getNeedNewValue())) equipVariableCfgCollect.setNeedNewValue(MesExtEnumUtil.EQUIP_VARIABLE_NEED_NEW_VALUE.FALSE.getValue());
MesEquipVariableCfgCollectContext equipVariableCfgCollectContext = new MesEquipVariableCfgCollectContext();
BeanUtils.copyProperties(equipmentVariableCfg, equipVariableCfgCollectContext);
if (MesExtEnumUtil.EQUIP_VARIABLE_NEED_NEW_VALUE.TRUE.getValue() == equipVariableCfgCollect.getNeedNewValue()) equipLogDispatchContext.needNewValue();
if (StringUtils.isEmpty(equipmentVariableCfg.getNeedNewValue())) equipVariableCfgCollectContext.setNeedNewValue(MesExtEnumUtil.EQUIP_VARIABLE_NEED_NEW_VALUE.FALSE.getValue());
if (MesExtEnumUtil.EQUIP_VARIABLE_NEED_NEW_VALUE.TRUE.getValue() == equipVariableCfgCollectContext.getNeedNewValue()) equipLogDispatchContext.needNewValue();
if (CollectionUtils.isEmpty(equipVariableCollectContextList)) equipVariableCollectContextList = new ArrayList<>();
// 内部方法: 根据常变值重写查询出来的设备变量值,赋值设备变量ID集合
equipVariableCfgCollectContext.equipVariableCollectContextList(categoryLevelTwoMap.get(equipmentVariableCfg.getCategoryLevelTwo()));
equipVariableCollectContextList.add(equipVariableCfgCollect);
}
return equipVariableCollectContextList;
// 已经采集到任何数据情况下isCollectValue标记为true
if (equipLogDispatchContext.getIsCollectValue() || equipVariableCfgCollectContext.getIsCollectValue()) equipLogDispatchContext.isCollectValue();
}
if (CollectionUtils.isEmpty(equipVariableCfgCollectContextList)) equipVariableCfgCollectContextList = new ArrayList<>();
private MesEquipmentLog filterEquipmentLog(Map<Long, List<MesEquipmentLog>> needNewValue2Collect, Map<Long, List<MesEquipmentLog>> unNeedNewValue2Collect, Long equipVariableId, Integer needNewValue) {
if (!StringUtils.isEmpty(needNewValue) && MesExtEnumUtil.EQUIP_VARIABLE_NEED_NEW_VALUE.TRUE.getValue() == needNewValue) return filterEquipmentLog(needNewValue2Collect, equipVariableId);
else return filterEquipmentLog(unNeedNewValue2Collect, equipVariableId);
}
equipVariableCfgCollectContextList.add(equipVariableCfgCollectContext);
private MesEquipmentLog filterEquipmentLog(Map<Long, List<MesEquipmentLog>> collectMap, Long equipVariableId) {
return (!CollectionUtils.isEmpty(collectMap) && collectMap.containsKey(equipVariableId)) ? collectMap.get(equipVariableId).get(0) : null;
}
private Map<Long, List<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, collectEquipVariableIdList(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());
//【已经采集到任何数据 或者 (equipmentLogList有数据且是长变值方式获取的 或者 不是常变值方式获取的但必须有value) 】 情况下isCollectValue标记为true
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.groupingBy(MesEquipmentLog::getEquipVariableId));
}
private Boolean checkEquipmentLogHasValue(List<MesEquipmentLog> equipmentLogList) {
Optional<MesEquipmentLog> optional = CollectionUtils.isEmpty(equipmentLogList) ? null : equipmentLogList.stream().filter(o -> (null != o && !StringUtils.isEmpty(o.getEquipVariableValue()))).findFirst();
return null != optional && optional.isPresent() ? true : false;
}
private List<Long> collectEquipVariableIdList(List<MesEquipVariableCfgCollectContext> equipVariableCollectContextList) {
List<Long> equipVariableIdList = null;
for (MesEquipVariableCfgCollectContext equipVariableCfgCollectContext : equipVariableCollectContextList) {
if (null == equipVariableCfgCollectContext || CollectionUtils.isEmpty(equipVariableCfgCollectContext.getEquipVariableIdList())) continue;
if (CollectionUtils.isEmpty(equipVariableIdList)) equipVariableIdList = new ArrayList<>();
equipVariableIdList.addAll(equipVariableCfgCollectContext.getEquipVariableIdList());
// 标记需要修改的设备数据变量ID 【在主方法体中修改常变值配置对应的设备ID分表的采集数据的状态为1】
if (equipVariableCfgCollectContext.getIsCollectValue() && checkEquipQuality(cellEquipContext.getQuality())) equipLogDispatchContext.resetEquipmentLogIdList(equipVariableCfgCollectContext.getEquipmentLogIdList());
}
return CollectionUtils.isEmpty(equipVariableIdList) ? null : equipVariableIdList.stream().filter(o -> !StringUtils.isEmpty(o)).distinct().collect(Collectors.toList());
}
@Override
public MesEquipmentLog queryMesEquipmentLog(String organizeCode, Integer equipId, Long equipVariableId) {
DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean();
DdlPreparedPack.getStringEqualPack(organizeCode, "organizeCode", ddlPackBean);
DdlPreparedPack.getNumEqualPack(equipId, "equipId", ddlPackBean);
DdlPreparedPack.getNumEqualPack(equipVariableId, "equipVariableId", ddlPackBean);
return equipVariableCfgCollectContextList;
return equipmentLogRepository.getByProperty(ddlPackBean);
}
}

@ -152,7 +152,7 @@ public class MesAssemblyReadStepService extends BaseStepService {
matchAssemblySnValid(reqBean, resultBean, stepParamMap, stepResult, productionProcessContext, cellEquipContext, equipLogDispatchContext);
//根据设备ID,设备数据变量ID集合 修改设备ID分表采集数据的状态
equipmentLogExtService.updateEquipmentLogList(reqBean.getOrganizeCode(), cellEquipContext.getEquipId(), equipLogDispatchContext.getResetEquipVariableIdList());
equipmentLogExtService.updateEquipmentLogList(reqBean.getOrganizeCode(), cellEquipContext.getEquipId(), equipLogDispatchContext.getResetEquipmentLogIdList());
return stepResult;

@ -107,7 +107,7 @@ public class MesEquipByPassReadStepService extends BaseStepService {
this.sendMessage(reqBean, resultBean.busiType(MesPcnEnumUtil.STATION_BUSI_TYPE.BYPASS_MODULE.getValue()).dataType(MesPcnEnumUtil.STATION_DATA_TYPE.COLOR.getValue()).resultObj(result ? MesExtEnumUtil.COLOR.GREEN.getValue() : MesExtEnumUtil.COLOR.RED.getValue()));
//根据设备ID,设备数据变量ID集合 修改设备ID分表采集数据的状态
equipmentLogExtService.updateEquipmentLogList(reqBean.getOrganizeCode(), cellEquipContext.getEquipId(), equipLogDispatchContext.getResetEquipVariableIdList());
equipmentLogExtService.updateEquipmentLogList(reqBean.getOrganizeCode(), cellEquipContext.getEquipId(), equipLogDispatchContext.getResetEquipmentLogIdList());
return stepDynamicsCompleteAndSendMsgReturn(reqBean, resultBean.writeDbLog(MesPcnEnumUtil.WORK_CELL_SCAN_MONITOR_LOG_TYPE.READ.getValue()).checkRepeat().scanInfo(resultBean.getResultObj().toString()), stepResult,
true, MesPcnEnumUtil.STATION_BUSI_TYPE.RUNNING_INFO, MesPcnEnumUtil.STATION_DATA_TYPE.TEXT, String.format("当前已读取到设备[%s]BYSS信号[%s]!", cellEquipContext.getEquipmentName(), resultBean.getResultObj()));

@ -157,7 +157,7 @@ public class MesFirstMouldNoReadStepService extends BaseStepService {
//根据设备ID,设备数据变量ID集合 修改设备ID分表采集数据的状态
equipmentLogExtService.updateEquipmentLogList(reqBean.getOrganizeCode(), cellEquipContext.getEquipId(), equipLogDispatchContext.getResetEquipVariableIdList());
equipmentLogExtService.updateEquipmentLogList(reqBean.getOrganizeCode(), cellEquipContext.getEquipId(), equipLogDispatchContext.getResetEquipmentLogIdList());
this.sendMessage(reqBean, resultBean.writeDbLog(MesPcnEnumUtil.WORK_CELL_SCAN_MONITOR_LOG_TYPE.READ.getValue()),
String.format("读取到设备[%s]头道模具号的详细JSON内容: %s", cellEquipContext.getEquipmentName(), JSONObject.toJSONString(equipLogDispatchContext)), MesPcnEnumUtil.STATION_BUSI_TYPE.RUNNING_INFO, MesPcnEnumUtil.STATION_DATA_TYPE.TEXT);

@ -124,7 +124,7 @@ public class MesMembraneSignalReadStepService extends BaseStepService {
matchMembraneSignal(reqBean, resultBean, stepParamMap, stepResult, productionProcessContext, cellEquipContext, equipLogDispatchContext);
//根据设备ID,设备数据变量ID集合 修改设备ID分表采集数据的状态
equipmentLogExtService.updateEquipmentLogList(reqBean.getOrganizeCode(), cellEquipContext.getEquipId(), equipLogDispatchContext.getResetEquipVariableIdList());
equipmentLogExtService.updateEquipmentLogList(reqBean.getOrganizeCode(), cellEquipContext.getEquipId(), equipLogDispatchContext.getResetEquipmentLogIdList());
return stepResult;

@ -165,7 +165,7 @@ public class MesMouldNoReadStepService extends BaseStepService {
}
//根据设备ID,设备数据变量ID集合 修改设备ID分表采集数据的状态
equipmentLogExtService.updateEquipmentLogList(reqBean.getOrganizeCode(), cellEquipContext.getEquipId(), equipLogDispatchContext.getResetEquipVariableIdList());
equipmentLogExtService.updateEquipmentLogList(reqBean.getOrganizeCode(), cellEquipContext.getEquipId(), equipLogDispatchContext.getResetEquipmentLogIdList());
this.sendMessage(reqBean, resultBean.writeDbLog(MesPcnEnumUtil.WORK_CELL_SCAN_MONITOR_LOG_TYPE.READ.getValue()),
String.format("读取到设备[%s]模具号的详细JSON内容: %s", cellEquipContext.getEquipmentName(), JSONObject.toJSONString(equipLogDispatchContext)), MesPcnEnumUtil.STATION_BUSI_TYPE.RUNNING_INFO, MesPcnEnumUtil.STATION_DATA_TYPE.TEXT);

@ -129,7 +129,7 @@ public class MesProductResultReadStepService extends BaseStepService {
matchProductResult(reqBean, resultBean, stepParamMap, stepResult, productionProcessContext, cellEquipContext, equipLogDispatchContext, shotCounter(equipmentVariableList));
//根据设备ID,设备数据变量ID集合 修改设备ID分表采集数据的状态
equipmentLogExtService.updateEquipmentLogList(reqBean.getOrganizeCode(), cellEquipContext.getEquipId(), equipLogDispatchContext.getResetEquipVariableIdList());
equipmentLogExtService.updateEquipmentLogList(reqBean.getOrganizeCode(), cellEquipContext.getEquipId(), equipLogDispatchContext.getResetEquipmentLogIdList());
this.sendMessage(reqBean, resultBean.writeDbLog(MesPcnEnumUtil.WORK_CELL_SCAN_MONITOR_LOG_TYPE.READ.getValue()),
String.format("读取到设备[%s]加工结果的详细JSON内容: %s", cellEquipContext.getEquipmentName(), JSONObject.toJSONString(equipLogDispatchContext)), MesPcnEnumUtil.STATION_BUSI_TYPE.RUNNING_INFO, MesPcnEnumUtil.STATION_DATA_TYPE.TEXT);

@ -168,7 +168,7 @@ public class MesProductSnReadStepService extends BaseStepService {
}
//根据设备ID,设备数据变量ID集合 修改设备ID分表采集数据的状态
equipmentLogExtService.updateEquipmentLogList(reqBean.getOrganizeCode(), cellEquipContext.getEquipId(), equipLogDispatchContext.getResetEquipVariableIdList());
equipmentLogExtService.updateEquipmentLogList(reqBean.getOrganizeCode(), cellEquipContext.getEquipId(), equipLogDispatchContext.getResetEquipmentLogIdList());
this.sendMessage(reqBean, resultBean.writeDbLog(MesPcnEnumUtil.WORK_CELL_SCAN_MONITOR_LOG_TYPE.READ.getValue()).checkRepeat(),
String.format("读取到设备[%s]主条码的详细JSON内容: %s", cellEquipContext.getEquipmentName(), JSONObject.toJSONString(equipLogDispatchContext)), MesPcnEnumUtil.STATION_BUSI_TYPE.RUNNING_INFO, MesPcnEnumUtil.STATION_DATA_TYPE.TEXT);

@ -169,7 +169,7 @@ public class MesProductionPartNoReadStepService extends BaseStepService {
}
//根据设备ID,设备数据变量ID集合 修改设备ID分表采集数据的状态
equipmentLogExtService.updateEquipmentLogList(reqBean.getOrganizeCode(), cellEquipContext.getEquipId(), equipLogDispatchContext.getResetEquipVariableIdList());
equipmentLogExtService.updateEquipmentLogList(reqBean.getOrganizeCode(), cellEquipContext.getEquipId(), equipLogDispatchContext.getResetEquipmentLogIdList());
this.sendMessage(reqBean, resultBean.writeDbLog(MesPcnEnumUtil.WORK_CELL_SCAN_MONITOR_LOG_TYPE.READ.getValue()),
String.format("读取到设备[%s]产出零件号的详细JSON内容: %s", cellEquipContext.getEquipmentName(), JSONObject.toJSONString(equipLogDispatchContext)), MesPcnEnumUtil.STATION_BUSI_TYPE.RUNNING_INFO, MesPcnEnumUtil.STATION_DATA_TYPE.TEXT);

@ -124,7 +124,7 @@ public class MesReadySignalReadStepService extends BaseStepService {
matchReadySignal(reqBean, resultBean, stepParamMap, stepResult, productionProcessContext, cellEquipContext, equipLogDispatchContext);
//根据设备ID,设备数据变量ID集合 修改设备ID分表采集数据的状态
equipmentLogExtService.updateEquipmentLogList(reqBean.getOrganizeCode(), cellEquipContext.getEquipId(), equipLogDispatchContext.getResetEquipVariableIdList());
equipmentLogExtService.updateEquipmentLogList(reqBean.getOrganizeCode(), cellEquipContext.getEquipId(), equipLogDispatchContext.getResetEquipmentLogIdList());
return stepResult;

@ -141,7 +141,7 @@ public class MesWorkOrderReadStepService extends BaseStepService {
matchWorkOrderValid(reqBean, resultBean, stepParamMap, stepResult, productionProcessContext, cellEquipContext, equipLogDispatchContext);
//根据设备ID,设备数据变量ID集合 修改设备ID分表采集数据的状态
equipmentLogExtService.updateEquipmentLogList(reqBean.getOrganizeCode(), cellEquipContext.getEquipId(), equipLogDispatchContext.getResetEquipVariableIdList());
equipmentLogExtService.updateEquipmentLogList(reqBean.getOrganizeCode(), cellEquipContext.getEquipId(), equipLogDispatchContext.getResetEquipmentLogIdList());
return stepResult;

@ -2,9 +2,13 @@ package cn.estsh.i3plus.ext.mes.pcn.pojo.context;
import io.swagger.annotations.ApiParam;
import lombok.Data;
import org.springframework.util.CollectionUtils;
import org.springframework.util.StringUtils;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
/**
* -LOG
@ -26,8 +30,8 @@ public class MesEquipLogDispatchContext implements Serializable {
@ApiParam("数据变量接口逻辑信息集合")
private List<MesEquipVariableCfgCollectContext> equipVariableCfgCollectContextList;
@ApiParam("需要重置设备变量ID集合")
private List<Long> resetEquipVariableIdList;
@ApiParam("需要重置设备LOG表ID集合")
private List<Long> resetEquipmentLogIdList;
public MesEquipLogDispatchContext() {}
@ -50,8 +54,11 @@ public class MesEquipLogDispatchContext implements Serializable {
return this;
}
public MesEquipLogDispatchContext resetEquipVariableIdList(List<Long> resetEquipVariableIdList) {
this.resetEquipVariableIdList = resetEquipVariableIdList;
public MesEquipLogDispatchContext resetEquipmentLogIdList(List<Long> equipmentLogIdList) {
if (CollectionUtils.isEmpty(equipmentLogIdList)) return this;
if (CollectionUtils.isEmpty(this.resetEquipmentLogIdList)) this.resetEquipmentLogIdList = new ArrayList<>();
this.resetEquipmentLogIdList.addAll(equipmentLogIdList);
this.resetEquipmentLogIdList = CollectionUtils.isEmpty(this.resetEquipmentLogIdList) ? null : this.resetEquipmentLogIdList.stream().filter(o -> !StringUtils.isEmpty(o)).distinct().collect(Collectors.toList());
return this;
}

@ -1,14 +1,17 @@
package cn.estsh.i3plus.ext.mes.pcn.pojo.context;
import cn.estsh.i3plus.pojo.mes.bean.MesEquipmentVariable;
import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil;
import io.swagger.annotations.ApiParam;
import lombok.Data;
import org.springframework.beans.BeanUtils;
import org.springframework.util.CollectionUtils;
import org.springframework.util.StringUtils;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
/**
* -
@ -42,20 +45,25 @@ public class MesEquipVariableCfgCollectContext implements Serializable {
@ApiParam("数据变量集合")
private List<MesEquipVariableCollectContext> equipVariableCollectContextList;
@ApiParam("设备变量ID集合")
private List<Long> equipVariableIdList;
public MesEquipVariableCfgCollectContext equipVariableCollectContextList(List<MesEquipmentVariable> equipVariableList) {
if (CollectionUtils.isEmpty(equipVariableList)) return this;
this.equipVariableCollectContextList = new ArrayList<>();
this.equipVariableIdList = new ArrayList<>();
for (MesEquipmentVariable equipmentVariable : equipVariableList) {
if (null == equipmentVariable) continue;
MesEquipVariableCollectContext equipVariableCollectContext = new MesEquipVariableCollectContext(equipmentVariable.getId());
BeanUtils.copyProperties(equipmentVariable, equipVariableCollectContext);
equipVariableCollectContextList.add(equipVariableCollectContext);
equipVariableIdList.add(equipmentVariable.getId());
@ApiParam("设备LOG表ID集合")
private List<Long> equipmentLogIdList;
@ApiParam("是否采集到数据")
private Boolean isCollectValue = false;
public MesEquipVariableCfgCollectContext equipVariableCollectContextList(List<MesEquipVariableCollectContext> equipVariableCollectContextList) {
if (CollectionUtils.isEmpty(equipVariableCollectContextList)) return this;
for (MesEquipVariableCollectContext equipVariableCollectContext : equipVariableCollectContextList) {
if (null == equipVariableCollectContext) continue;
//判断是否常变值, 常变值equipVariableStatus必须状态=0
if (MesExtEnumUtil.EQUIP_VARIABLE_NEED_NEW_VALUE.TRUE.getValue() == this.needNewValue && (StringUtils.isEmpty(equipVariableCollectContext.getEquipVariableStatus()) ||
MesExtEnumUtil.EQUIP_VARIABLE_NEED_NEW_VALUE.TRUE.getEquipVariableStatus() != equipVariableCollectContext.getEquipVariableStatus())) equipVariableCollectContext.setEquipVariableValue(null);
//已经采集到任何数据情况下isCollectValue标记为true
if (!StringUtils.isEmpty(equipVariableCollectContext.getEquipVariableValue())) isCollectValue = true;
}
this.equipVariableCollectContextList = equipVariableCollectContextList;
this.equipmentLogIdList = equipVariableCollectContextList.stream().filter(o -> (null != o && !StringUtils.isEmpty(o.getEquipmentLogId()))).map(MesEquipVariableCollectContext::getEquipmentLogId).collect(Collectors.toList());
return this;
}
}

@ -1,12 +1,10 @@
package cn.estsh.i3plus.ext.mes.pcn.pojo.context;
import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtConstWords;
import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil;
import cn.estsh.i3plus.pojo.mes.bean.MesEquipmentLog;
import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil;
import io.swagger.annotations.ApiParam;
import lombok.Data;
import org.springframework.beans.BeanUtils;
import org.springframework.util.StringUtils;
import java.io.Serializable;
@ -24,6 +22,9 @@ public class MesEquipVariableCollectContext implements Serializable {
@ApiParam("设备变量ID")
private Long equipVariableId;
@ApiParam("设备LOG表ID")
private Long equipmentLogId;
@ApiParam("设备ID")
private Integer equipId;
@ -82,7 +83,7 @@ public class MesEquipVariableCollectContext implements Serializable {
private String equipVariableValue;
@ApiParam("变量状态")
private String equipVariableStatus;
private Integer equipVariableStatus;
@ApiParam("设备质量")
private Integer quality;
@ -110,10 +111,12 @@ public class MesEquipVariableCollectContext implements Serializable {
}
//读取信息赋值
public void copyValue(MesEquipmentLog equipmentLog) {
if (null == equipmentLog) return;
BeanUtils.copyProperties(equipmentLog, this, MesPcnExtConstWords.CATEGORY_LEVEL_TWO);
this.writeDatetime = equipmentLog.getModifyDatetime();
public void copyValue(Object equipVariableValue, Object equipVariableStatus, Object quality, Object modifyDatetime, Object id) {
if (!StringUtils.isEmpty(equipVariableValue)) this.equipVariableValue = (String) equipVariableValue;
if (!StringUtils.isEmpty(equipVariableStatus)) this.equipVariableStatus = (Integer) equipVariableStatus;
if (!StringUtils.isEmpty(quality)) this.quality = (Integer) quality;
if (!StringUtils.isEmpty(modifyDatetime)) this.writeDatetime = (String) modifyDatetime;
if (!StringUtils.isEmpty(id)) this.equipmentLogId = (Long) id;
this.messageSource = MesExtEnumUtil.CELL_MESSAGE_SOURCE.READ.getValue();
}

Loading…
Cancel
Save