报工问题修改

tags/yfai-pcn-ext-v1.0
微笑着面对明天 10 months ago
parent 93fa082d2f
commit d8112fc96b

@ -7,30 +7,34 @@ import cn.estsh.i3plus.ext.mes.pcn.pojo.mqtt.EquipLogMqttMsg;
import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtConstWords;
import cn.estsh.i3plus.platform.common.convert.ConvertBean;
import cn.estsh.i3plus.platform.common.util.CommonConstWords;
import cn.estsh.i3plus.platform.common.util.MesPcnConstWords;
import cn.estsh.i3plus.pojo.base.bean.DdlPackBean;
import cn.estsh.i3plus.pojo.base.codemaker.SnowflakeIdMaker;
import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil;
import cn.estsh.i3plus.pojo.base.enumutil.MesPcnEnumUtil;
import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack;
import cn.estsh.i3plus.pojo.mes.bean.MesEquipmentLog;
import cn.estsh.i3plus.pojo.mes.bean.MesEquipmentLogDetail;
import cn.estsh.i3plus.pojo.mes.bean.MesEquipmentRecord;
import cn.estsh.i3plus.pojo.mes.bean.MesEquipmentVariable;
import cn.estsh.i3plus.pojo.mes.bean.*;
import cn.estsh.i3plus.pojo.mes.repository.MesEquipmentLogDetailRepository;
import cn.estsh.i3plus.pojo.mes.repository.MesEquipmentLogRepository;
import cn.estsh.i3plus.pojo.mes.repository.MesEquipmentRecordRepository;
import cn.estsh.i3plus.pojo.mes.repository.MesEquipmentVariableRepository;
import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil;
import cn.estsh.impp.framework.boot.util.ImppRedis;
import com.alibaba.fastjson.JSONObject;
import lombok.extern.slf4j.Slf4j;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import org.springframework.util.StringUtils;
import javax.annotation.Resource;
import javax.persistence.EntityManager;
import javax.persistence.Query;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
@ -60,6 +64,12 @@ public class MesEquipmentLogService implements IMesEquipmentLogService {
@Resource(name = "redisMesPcn")
private ImppRedis redisMesPcn;
@Autowired
private EntityManager entityManager;
@Autowired
private JdbcTemplate jdbcTemplate;
@Override
public void saveEquipmentLogToRedis(ActorMessage actorMessage) {
// 获取设备变量属性
@ -99,6 +109,10 @@ public class MesEquipmentLogService implements IMesEquipmentLogService {
return mesEquipmentRecord.getOrganizeCode() + ":" + mesEquipmentRecord.getWorkCenterCode() + ":" + mesEquipmentRecord.getWorkCellCode() + ":" + mesEquipmentRecord.getEquipmentCode () + ":" + mesEquipmentRecord.getId();
}
private String getVariableKey(String equipId, String keyType){
return "PCN" + ":"+ keyType + ":" + equipId;
}
@Override
public void saveEquipmentLogDetails(String organizeCode) {
DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(organizeCode);
@ -160,41 +174,134 @@ public class MesEquipmentLogService implements IMesEquipmentLogService {
log.info("== equipLogMqttMsg ==> messageArrived ,异步处理开始 消息内容: {}", equipLogMqttMsg);
DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean();
DdlPreparedPack.getStringEqualPack(equipLogMqttMsg.getKey(), "tagName", ddlPackBean);
DdlPreparedPack.getNumEqualPack(Integer.valueOf(equipLogMqttMsg.getPTCode()), "equipId", ddlPackBean);
log.info("== mesEquipmentVariable查询开始");
MesEquipmentVariable mesEquipmentVariable = equipmentVariableRepository.getByProperty(ddlPackBean);
log.info("== mesEquipmentVariable查询结束");
/**
*
*/
MesEquipmentVariable mesEquipmentVariable = getMesEquipmentVariable(equipLogMqttMsg);
if (mesEquipmentVariable == null) {
LOGGER.info("tagAddress 不存在【{}】", equipLogMqttMsg.getTagAddress());
return;
}
// 获取设备点位数据
MesEquipmentLog equipmentLog = getMesEquipmentLog(equipLogMqttMsg, mesEquipmentVariable);
if (equipmentLog == null) {
return;
}
log.info("== MesEquipmentLog查询开始");
MesEquipmentLog equipmentLog = mesEquipmentLogExtService.queryMesEquipmentLog(mesEquipmentVariable.getOrganizeCode(), Integer.valueOf(equipLogMqttMsg.getPTCode()), mesEquipmentVariable.getId());
log.info("== MesEquipmentLog查询结束");
// 更新设备点位数据
updateEquipmentLog(equipLogMqttMsg, mesEquipmentVariable, equipmentLog);
MesEquipmentLogDetail mesEquipmentLogDetail = new MesEquipmentLogDetail();
BeanUtils.copyProperties(equipmentLog, mesEquipmentLogDetail);
ConvertBean.serviceModelInitialize(mesEquipmentLogDetail, "mqtt");
log.info("== mesEquipmentLogDetail新增开始");
saveLogDetail(mesEquipmentLogDetail);
//mesEquipmentLogDetailRepository.insert(mesEquipmentLogDetail);
log.info("== mesEquipmentLogDetail新增结束");
log.info("== equipLogMqttMsg ==> messageArrived ,异步处理结束 消息内容: {}", equipLogMqttMsg);
/*ConvertBean.serviceModelUpdate(equipmentLog, "mqtt");
equipmentLog.setEquipVariableValue(equipLogMqttMsg.getValue());
equipmentLog.setEquipVariableStatus(MesExtEnumUtil.EQUIP_VARIABLE_NEED_NEW_VALUE.TRUE.getEquipVariableStatus());
mesEquipmentLogRepository.update(equipmentLog);*/
}
private void updateEquipmentLog(EquipLogMqttMsg equipLogMqttMsg, MesEquipmentVariable mesEquipmentVariable, MesEquipmentLog equipmentLog) {
DdlPackBean packBean = DdlPackBean.getDdlPackBean(mesEquipmentVariable.getOrganizeCode());
DdlPreparedPack.getNumEqualPack(equipmentLog.getEquipId(), MesPcnExtConstWords.EQUIP_ID, packBean);
DdlPreparedPack.getNumEqualPack(equipmentLog.getEquipVariableId(), MesPcnExtConstWords.EQUIP_VARIABLE_ID, packBean);
log.info("== MesEquipmentLog修改开始");
mesEquipmentLogRepository.updateByProperties(new String[]{MesPcnExtConstWords.EQUIP_VARIABLE_STATUS,"equipVariableValue"}, new Object[]{MesExtEnumUtil.EQUIP_VARIABLE_NEED_NEW_VALUE.TRUE.getValue(),equipLogMqttMsg.getValue() }, packBean);
mesEquipmentLogRepository.updateByProperties(new String[]{MesPcnExtConstWords.EQUIP_VARIABLE_STATUS,"equipVariableValue"}, new Object[]{MesExtEnumUtil.EQUIP_VARIABLE_NEED_NEW_VALUE.TRUE.getValue(), equipLogMqttMsg.getValue() }, packBean);
log.info("== MesEquipmentLog修改结束");
}
private MesEquipmentVariable getMesEquipmentVariable(EquipLogMqttMsg equipLogMqttMsg) {
String variableKey = getVariableKey(equipLogMqttMsg.getPTCode(), "MES_EQUIPMENT_VARIABLE");
Object obj = redisMesPcn.getHash(variableKey, equipLogMqttMsg.getKey());
MesEquipmentVariable mesEquipmentVariable = new MesEquipmentVariable();
if (obj == null) {
log.info("== mesEquipmentVariable查询开始");
DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean();
DdlPreparedPack.getStringEqualPack(equipLogMqttMsg.getKey(), "tagName", ddlPackBean);
DdlPreparedPack.getNumEqualPack(Integer.valueOf(equipLogMqttMsg.getPTCode()), "equipId", ddlPackBean);
mesEquipmentVariable = equipmentVariableRepository.getByProperty(ddlPackBean);
log.info("== mesEquipmentVariable查询结束");
if (mesEquipmentVariable == null) {
LOGGER.info("tagAddress 不存在【{}】", equipLogMqttMsg.getTagAddress());
return null;
}
redisMesPcn.putHash(variableKey, equipLogMqttMsg.getKey(), mesEquipmentVariable);
} else {
mesEquipmentVariable = (MesEquipmentVariable) obj;
}
MesEquipmentLogDetail mesEquipmentLogDetail = new MesEquipmentLogDetail();
BeanUtils.copyProperties(equipmentLog, mesEquipmentLogDetail);
ConvertBean.serviceModelInitialize(mesEquipmentLogDetail, "mqtt");
log.info("== mesEquipmentLogDetail新增开始");
mesEquipmentLogDetailRepository.insert(mesEquipmentLogDetail);
log.info("== mesEquipmentLogDetail新增结束");
log.info("== equipLogMqttMsg ==> messageArrived ,异步处理结束 消息内容: {}", equipLogMqttMsg);
return mesEquipmentVariable;
}
private MesEquipmentLog getMesEquipmentLog(EquipLogMqttMsg equipLogMqttMsg, MesEquipmentVariable mesEquipmentVariable) {
String variableKey = getVariableKey(equipLogMqttMsg.getPTCode(), "MES_EQUIPMENT_LOG");
Object obj = redisMesPcn.getHash(variableKey, equipLogMqttMsg.getKey());
MesEquipmentLog equipmentLog = new MesEquipmentLog();
if (obj == null) {
log.info("== MesEquipmentLog查询开始");
equipmentLog = mesEquipmentLogExtService.queryMesEquipmentLog(mesEquipmentVariable.getOrganizeCode(), Integer.valueOf(equipLogMqttMsg.getPTCode()), mesEquipmentVariable.getId());
log.info("== MesEquipmentLog查询结束");
if (equipmentLog == null) {
LOGGER.info("log信息不存在 不存在【{}】", equipLogMqttMsg.getTagAddress());
return null;
}
redisMesPcn.putHash(variableKey, equipLogMqttMsg.getKey(), equipmentLog);
} else {
equipmentLog = (MesEquipmentLog) obj;
}
return equipmentLog;
}
public void saveLogDetail(MesEquipmentLogDetail mesEquipmentLogDetail) {
Long id = snowflakeIdMaker.nextId();
String sql = getSql(mesEquipmentLogDetail.getEquipId());
Query query = entityManager.createNativeQuery(sql);
query.setParameter("organize_code", mesEquipmentLogDetail.getOrganizeCode());
query.setParameter("is_valid", CommonEnumUtil.IS_VAILD.VAILD.getValue());
query.setParameter("is_deleted", CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue());
query.setParameter("id", id);
query.setParameter("equip_variable_id", mesEquipmentLogDetail.getEquipVariableId());
query.setParameter("equip_variable_name", mesEquipmentLogDetail.getEquipVariableName());
query.setParameter("equip_variable_desc", mesEquipmentLogDetail.getEquipVariableDesc());
query.setParameter("read_write_flag", mesEquipmentLogDetail.getReadWriteFlag());
query.setParameter("data_type", mesEquipmentLogDetail.getDataType());
query.setParameter("equip_variable_value", mesEquipmentLogDetail.getEquipVariableValue());
query.setParameter("equip_id", mesEquipmentLogDetail.getEquipId());
query.setParameter("equipment_code", mesEquipmentLogDetail.getEquipmentCode());
query.setParameter("work_center_code", mesEquipmentLogDetail.getWorkCenterCode());
query.setParameter("work_cell_code", mesEquipmentLogDetail.getWorkCellCode());
query.setParameter("process_code", mesEquipmentLogDetail.getProcessCode());
query.setParameter("craft_code", mesEquipmentLogDetail.getCraftCode());
query.setParameter("mould_record_id", mesEquipmentLogDetail.getMouldRecordId());
query.setParameter("extend", mesEquipmentLogDetail.getExtend());
query.setParameter("quality", mesEquipmentLogDetail.getQuality());
query.setParameter("create_date_time", mesEquipmentLogDetail.getCreateDatetime());
query.setParameter("create_user", mesEquipmentLogDetail.getCreateUser());
query.setParameter("is_deleted", mesEquipmentLogDetail.getIsDeleted());
query.setParameter("is_valid", mesEquipmentLogDetail.getIsValid());
query.setParameter("modify_date_time", mesEquipmentLogDetail.getCreateDatetime());
query.setParameter("organize_code", mesEquipmentLogDetail.getOrganizeCode());
query.setParameter("modify_user", mesEquipmentLogDetail.getModifyUser());
query.setParameter("system_sync_status", mesEquipmentLogDetail.getSystemSyncStatus());
query.setParameter("remark", mesEquipmentLogDetail.getRemark());
query.setParameter("description", mesEquipmentLogDetail.getDescription());
query.setParameter("system_sync_date_time", mesEquipmentLogDetail.getSystemSyncDatetime());
query.executeUpdate();
}
private String getSql(Integer equipId) {
String sql = "insert INTO mes_equipment_log_detail_" + equipId +
"( id, equip_variable_id, equip_variable_name, equip_variable_desc, read_write_flag, data_type, equip_variable_value," +
" equip_id, equipment_code, work_center_code, work_cell_code, process_code, craft_code, mould_record_id, extend, quality, " +
"create_date_time, create_user, is_deleted, is_valid, modify_date_time, modify_user, organize_code, system_sync_status, remark," +
" description, system_sync_date_time) VALUES " +
"(:id, :equip_variable_id, :equip_variable_name, :equip_variable_desc, :read_write_flag, :data_type, :equip_variable_value, :equip_id, :equipment_code, " +
":work_center_code, :work_cell_code, :process_code, :craft_code, " +
":mould_record_id, :extend, :quality, :create_date_time, :create_user, :is_deleted, :is_valid, :modify_date_time, :modify_user" +
", :organize_code, :system_sync_status, :remark, :description, :system_sync_date_time)";
return sql;
}
}

Loading…
Cancel
Save