Merge branch 'master' into dev-wuhan-temp

tags/yfai-pcn-ext-v2.3
王杰 7 months ago
commit b118f22767

@ -7,7 +7,7 @@ public interface IMesEquipmentLogService {
void saveEquipmentLogToRedis(ActorMessage actorMessage); void saveEquipmentLogToRedis(ActorMessage actorMessage);
void saveEquipmentLogDetails(String organizeCode); void saveEquipmentLogDetails(String organizeCode, String userInfo, Integer qty);
void updateValue(EquipLogMqttMsg equipLogMqttMsg); void updateValue(EquipLogMqttMsg equipLogMqttMsg);
} }

@ -4,6 +4,7 @@ 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.MesEquipLogDispatchContext;
import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesEquipVariableCollectContext; import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesEquipVariableCollectContext;
import cn.estsh.i3plus.pojo.mes.bean.MesEquipmentLog; import cn.estsh.i3plus.pojo.mes.bean.MesEquipmentLog;
import cn.estsh.i3plus.pojo.mes.bean.MesEquipmentRecord;
import cn.estsh.i3plus.pojo.mes.bean.MesEquipmentVariable; import cn.estsh.i3plus.pojo.mes.bean.MesEquipmentVariable;
import cn.estsh.i3plus.pojo.mes.bean.MesEquipmentVariableCfg; import cn.estsh.i3plus.pojo.mes.bean.MesEquipmentVariableCfg;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
@ -13,15 +14,6 @@ import java.util.Map;
public interface IMesEquipmentLogExtService { public interface IMesEquipmentLogExtService {
@ApiOperation(value = "根据设备ID 查询设备ID分表所有采集数据")
List<MesEquipmentLog> getEquipmentLogList(String organizeCode, Integer equipId);
@ApiOperation(value = "根据设备ID,是否常变值状态,设备数据变量ID集合 查询设备ID分表采集数据")
List<MesEquipmentLog> getEquipmentLogList(String organizeCode, Integer equipId, Integer needNewValue, List<Long> equipVariableIdList);
@ApiOperation(value = "根据设备ID 查询设备ID分表所有采集数据")
MesEquipmentLog queryMesEquipmentLog(String organizeCode, Integer equipId, Long equipVariableId);
@ApiOperation(value = "根据设备ID,设备LOG表ID集合 修改设备ID分表采集数据的状态") @ApiOperation(value = "根据设备ID,设备LOG表ID集合 修改设备ID分表采集数据的状态")
void updateEquipmentLogList(String organizeCode, Integer equipId, Map<Long, String> equipmentLogIdMap); void updateEquipmentLogList(String organizeCode, Integer equipId, Map<Long, String> equipmentLogIdMap);
@ -37,4 +29,6 @@ public interface IMesEquipmentLogExtService {
@ApiOperation(value = "根据设备ID,是否常变值状态,设备数据变量ID集合,变量类型 查询设备ID分表采集数据") @ApiOperation(value = "根据设备ID,是否常变值状态,设备数据变量ID集合,变量类型 查询设备ID分表采集数据")
List<MesEquipVariableCollectContext> getEquipmentLogCollectList(String organizeCode, Integer equipId, Integer needNewValue, Integer variableType, List<Long> equipVariableIdList); List<MesEquipVariableCollectContext> getEquipmentLogCollectList(String organizeCode, Integer equipId, Integer needNewValue, Integer variableType, List<Long> equipVariableIdList);
@ApiOperation(value = "根据设备ID, 批量写入设备LOG明细数据")
void insertBatchEquipmentLogDetail(String organizeCode, Integer equipId, String userInfo, MesEquipmentRecord mesEquipmentRecord, List<MesEquipmentLog> equipmentLogList);
} }

@ -1,21 +1,18 @@
package cn.estsh.i3plus.ext.mes.pcn.apiservice.controller.busi; package cn.estsh.i3plus.ext.mes.pcn.apiservice.controller.busi;
import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesConfigService; import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesConfigService;
import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesEquipmentLogExtService;
import cn.estsh.i3plus.ext.mes.pcn.apiservice.schedulejob.MesReportNoSortJob;
import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesWorkOrderService; import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesWorkOrderService;
import cn.estsh.i3plus.ext.mes.pcn.apiservice.schedulejob.MesReportNoSortJob;
import cn.estsh.i3plus.ext.mes.pcn.apiservice.schedulejob.MesReportWorkByPreDayJob; import cn.estsh.i3plus.ext.mes.pcn.apiservice.schedulejob.MesReportWorkByPreDayJob;
import cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.test.TestService; import cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.test.TestService;
import cn.estsh.i3plus.ext.mes.pcn.pojo.constant.MesCommonConstant; import cn.estsh.i3plus.ext.mes.pcn.pojo.constant.MesCommonConstant;
import cn.estsh.i3plus.platform.common.convert.ConvertBean; import cn.estsh.i3plus.platform.common.convert.ConvertBean;
import cn.estsh.i3plus.pojo.base.bean.DdlPackBean; import cn.estsh.i3plus.pojo.base.bean.DdlPackBean;
import cn.estsh.i3plus.pojo.base.bean.ListPager; import cn.estsh.i3plus.pojo.mes.bean.MesProductionRecord;
import cn.estsh.i3plus.pojo.base.common.Pager; import cn.estsh.i3plus.pojo.mes.bean.MesShift;
import cn.estsh.i3plus.pojo.mes.bean.*; import cn.estsh.i3plus.pojo.mes.bean.MesWorkOrder;
import cn.estsh.i3plus.pojo.mes.bean.rework.MesReworkTask;
import cn.estsh.i3plus.pojo.mes.repository.MesProductionRecordRepository; import cn.estsh.i3plus.pojo.mes.repository.MesProductionRecordRepository;
import cn.estsh.i3plus.pojo.mes.repository.MesShiftRepository; import cn.estsh.i3plus.pojo.mes.repository.MesShiftRepository;
import cn.estsh.impp.framework.boot.auth.AuthUtil;
import cn.estsh.impp.framework.boot.exception.ImppBusiException; import cn.estsh.impp.framework.boot.exception.ImppBusiException;
import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder; import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder;
import cn.estsh.impp.framework.boot.util.ResultBean; import cn.estsh.impp.framework.boot.util.ResultBean;
@ -33,8 +30,7 @@ import java.util.stream.Collectors;
@RestController @RestController
@RequestMapping(MesCommonConstant.MES_YANFEN + "/test") @RequestMapping(MesCommonConstant.MES_YANFEN + "/test")
public class TestController { public class TestController {
@Autowired
private IMesEquipmentLogExtService mesEquipmentLogExtService;
@Autowired @Autowired
private MesReportNoSortJob mesReportNoSortJob; private MesReportNoSortJob mesReportNoSortJob;
@ -54,19 +50,6 @@ public class TestController {
@Autowired @Autowired
private TestService testService; private TestService testService;
@GetMapping("/equipment/log/query")
@ApiOperation(value = "查询设备交互")
public ResultBean queryReworkTaskByPager(String organizeCode, Integer equipId) {
try {
List<MesEquipmentLog> equipmentLogList = mesEquipmentLogExtService.getEquipmentLogList(organizeCode, equipId);
return ResultBean.success("查询成功").setResultList(equipmentLogList);
} catch (ImppBusiException imppException) {
return ResultBean.fail(imppException);
} catch (Exception e) {
return ImppExceptionBuilder.newInstance().buildExceptionResult(e);
}
}
@GetMapping("/reportWorkByPreDayJob") @GetMapping("/reportWorkByPreDayJob")
@ApiOperation(value = "查询设备交互") @ApiOperation(value = "查询设备交互")
public ResultBean queryReworkTaskByPager(String organizeCode) { public ResultBean queryReworkTaskByPager(String organizeCode) {

@ -1,6 +1,8 @@
package cn.estsh.i3plus.ext.mes.pcn.apiservice.dao; package cn.estsh.i3plus.ext.mes.pcn.apiservice.dao;
import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesEquipVariableCollectContext; import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesEquipVariableCollectContext;
import cn.estsh.i3plus.pojo.mes.bean.MesEquipmentLog;
import cn.estsh.i3plus.pojo.mes.bean.MesEquipmentRecord;
import cn.estsh.i3plus.pojo.mes.bean.MesEquipmentVariable; import cn.estsh.i3plus.pojo.mes.bean.MesEquipmentVariable;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
@ -21,4 +23,6 @@ public interface IMesEquipmentLogDao {
@ApiOperation(value = "根据设备ID, 变量类型查询设备日志表") @ApiOperation(value = "根据设备ID, 变量类型查询设备日志表")
List<MesEquipVariableCollectContext> queryMesEquipmentLog(String organizeCode, Integer equipId, Integer variableType); List<MesEquipVariableCollectContext> queryMesEquipmentLog(String organizeCode, Integer equipId, Integer variableType);
@ApiOperation(value = "根据设备ID, 批量写入设备LOG明细数据")
void insertBatchEquipmentLogDetail(String organizeCode, Integer equipId, String userInfo, MesEquipmentRecord mesEquipmentRecord, List<MesEquipmentLog> equipmentLogList);
} }

@ -4,7 +4,10 @@ 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.apiservice.dao.IMesEquipmentLogDao;
import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesEquipVariableCollectContext; import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesEquipVariableCollectContext;
import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtConstWords; import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtConstWords;
import cn.estsh.i3plus.platform.common.tool.TimeTool;
import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil;
import cn.estsh.i3plus.pojo.mes.bean.MesEquipmentLog;
import cn.estsh.i3plus.pojo.mes.bean.MesEquipmentRecord;
import cn.estsh.i3plus.pojo.mes.bean.MesEquipmentVariable; import cn.estsh.i3plus.pojo.mes.bean.MesEquipmentVariable;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@ -18,6 +21,7 @@ import javax.persistence.Query;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.StringJoiner;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@Service @Service
@ -29,6 +33,17 @@ public class MesEquipmentLogDao implements IMesEquipmentLogDao {
@Autowired @Autowired
private EntityManager entityManager; private EntityManager entityManager;
private final static String TWO_S_APPEND = "%s_%s";
private final static String[] equipmentLogDetailFields = {MesPcnExtConstWords.ID, MesPcnExtConstWords.ORGANIZE_CODE, MesPcnExtConstWords.IS_VALID, MesPcnExtConstWords.IS_DELETED,
MesPcnExtConstWords.CREATE_USER, MesPcnExtConstWords.CREATE_DATE_TIME, MesPcnExtConstWords.MODIFY_USER, MesPcnExtConstWords.MODIFY_DATE_TIME,
MesPcnExtConstWords.DESCRIPTION, MesPcnExtConstWords.REMARK, MesPcnExtConstWords.SYSTEM_SYNC_DATE_TIME, MesPcnExtConstWords.SYSTEM_SYNC_STATUS,
MesPcnExtConstWords.AREA_CODE, MesPcnExtConstWords.WORK_CENTER_CODE, MesPcnExtConstWords.WORK_CELL_CODE, MesPcnExtConstWords.EQUIPMENT_CODE,
MesPcnExtConstWords.PROCESS_CODE, MesPcnExtConstWords.CRAFT_CODE, MesPcnExtConstWords.MOULD_RECORD_ID, MesPcnExtConstWords.EXTEND,
MesPcnExtConstWords.ORG_EQUIP_ID, MesPcnExtConstWords.EQUIP_ID, MesPcnExtConstWords.EQUIP_VARIABLE_ID, MesPcnExtConstWords.EQUIP_VARIABLE_NAME,
MesPcnExtConstWords.EQUIP_VARIABLE_DESC, MesPcnExtConstWords.READ_WRITE_FLAG, MesPcnExtConstWords.DATA_TYPE, MesPcnExtConstWords.EQUIP_VARIABLE_VALUE,
MesPcnExtConstWords.VARIABLE_TYPE, MesPcnExtConstWords.CATEGORY_LEVEL_TWO, MesPcnExtConstWords.QUALITY};
@Override @Override
public List<MesEquipVariableCollectContext> queryMesEquipmentLog(List<MesEquipmentVariable> equipmentVariableList, String organizeCode, Integer equipId, Integer variableType) { public List<MesEquipVariableCollectContext> queryMesEquipmentLog(List<MesEquipmentVariable> equipmentVariableList, String organizeCode, Integer equipId, Integer variableType) {
@ -95,9 +110,9 @@ public class MesEquipmentLogDao implements IMesEquipmentLogDao {
Integer index = 0; Integer index = 0;
for (Map.Entry<Long, String> entry : equipmentLogIdMap.entrySet()) { for (Map.Entry<Long, String> entry : equipmentLogIdMap.entrySet()) {
if (null == entry) continue; if (null == entry) continue;
update.setParameter(String.format("%s_%s", MesPcnExtConstWords.EQUIP_VARIABLE_STATUS, index), equipVariableStatus); update.setParameter(String.format(TWO_S_APPEND, MesPcnExtConstWords.EQUIP_VARIABLE_STATUS, index), equipVariableStatus);
update.setParameter(String.format("%s_%s", MesPcnExtConstWords.ID, index), entry.getKey()); update.setParameter(String.format(TWO_S_APPEND, MesPcnExtConstWords.ID, index), entry.getKey());
update.setParameter(String.format("%s_%s", MesPcnExtConstWords.MODIFY_DATE_TIME, index), entry.getValue()); update.setParameter(String.format(TWO_S_APPEND, MesPcnExtConstWords.MODIFY_DATE_TIME, index), entry.getValue());
index ++; index ++;
} }
@ -186,4 +201,87 @@ public class MesEquipmentLogDao implements IMesEquipmentLogDao {
return equipVariableCollectContextList; return equipVariableCollectContextList;
} }
@Override
public void insertBatchEquipmentLogDetail(String organizeCode, Integer equipId, String userInfo, MesEquipmentRecord equipmentRecord, List<MesEquipmentLog> equipmentLogList) {
StringBuffer builder = new StringBuffer();
Integer index = 0;
for (MesEquipmentLog equipmentLog : equipmentLogList) {
if (null == equipmentLog) continue;
builder.append(" insert into mes_equipment_log_");
if (!StringUtils.isEmpty(mesShardingAppendOrg) && mesShardingAppendOrg.toUpperCase().equals(CommonEnumUtil.TRUE_OR_FALSE.TRUE.name())) builder.append(organizeCode.toLowerCase()).append(MesPcnExtConstWords.E_UNDERLINE);
builder.append(equipId);
builder.append("( id, organize_code, is_valid, is_deleted, create_user, create_date_time, modify_user, modify_date_time,");
builder.append(" description, remark, system_sync_date_time, system_sync_status,");
builder.append(" area_code, work_center_code, work_cell_code, equipment_code, process_code, craft_code,");
builder.append(" mould_record_id, extend, org_equip_id, equip_id, equip_variable_id, equip_variable_name, equip_variable_desc,");
builder.append(" read_write_flag, data_type, equip_variable_value, variable_type, category_level_two, quality)");
builder.append(" values ( ");
for (int i = 0; i < equipmentLogDetailFields.length; i ++) {
if (StringUtils.isEmpty(equipmentLogDetailFields[i])) continue;
builder.append(MesPcnExtConstWords.COLON);
builder.append(equipmentLogDetailFields[i]);
builder.append(MesPcnExtConstWords.E_UNDERLINE);
builder.append(index);
if (i != equipmentLogDetailFields.length - 1) builder.append(" , ");
}
builder.append(" );");
index ++;
}
Query insert = entityManager.createNativeQuery(builder.toString());
String nowTime = TimeTool.getNowTime(true);
String orgEquipId = new StringJoiner(MesPcnExtConstWords.E_UNDERLINE).add(organizeCode).add(equipId.toString()).toString();
index = 0;
for (MesEquipmentLog equipmentLog : equipmentLogList) {
if (null == equipmentLog) continue;
insert.setParameter(String.format(TWO_S_APPEND, MesPcnExtConstWords.ID, index), equipmentLog.getId());
insert.setParameter(String.format(TWO_S_APPEND, MesPcnExtConstWords.ORGANIZE_CODE, index), organizeCode);
insert.setParameter(String.format(TWO_S_APPEND, MesPcnExtConstWords.IS_VALID, index), CommonEnumUtil.IS_VAILD.VAILD.getValue());
insert.setParameter(String.format(TWO_S_APPEND, MesPcnExtConstWords.IS_DELETED, index), CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue());
insert.setParameter(String.format(TWO_S_APPEND, MesPcnExtConstWords.CREATE_USER, index), userInfo);
insert.setParameter(String.format(TWO_S_APPEND, MesPcnExtConstWords.CREATE_DATE_TIME, index), nowTime);
insert.setParameter(String.format(TWO_S_APPEND, MesPcnExtConstWords.MODIFY_USER, index), userInfo);
insert.setParameter(String.format(TWO_S_APPEND, MesPcnExtConstWords.MODIFY_DATE_TIME, index), nowTime);
insert.setParameter(String.format(TWO_S_APPEND, MesPcnExtConstWords.DESCRIPTION, index), null);
insert.setParameter(String.format(TWO_S_APPEND, MesPcnExtConstWords.REMARK, index), null);
insert.setParameter(String.format(TWO_S_APPEND, MesPcnExtConstWords.SYSTEM_SYNC_DATE_TIME, index), null);
insert.setParameter(String.format(TWO_S_APPEND, MesPcnExtConstWords.SYSTEM_SYNC_STATUS, index), CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue());
insert.setParameter(String.format(TWO_S_APPEND, MesPcnExtConstWords.AREA_CODE, index), equipmentRecord.getAreaCode());
insert.setParameter(String.format(TWO_S_APPEND, MesPcnExtConstWords.WORK_CENTER_CODE, index), equipmentRecord.getWorkCenterCode());
insert.setParameter(String.format(TWO_S_APPEND, MesPcnExtConstWords.WORK_CELL_CODE, index), equipmentRecord.getWorkCellCode());
insert.setParameter(String.format(TWO_S_APPEND, MesPcnExtConstWords.EQUIPMENT_CODE, index), equipmentRecord.getEquipmentCode());
insert.setParameter(String.format(TWO_S_APPEND, MesPcnExtConstWords.PROCESS_CODE, index), equipmentRecord.getProcessCode());
insert.setParameter(String.format(TWO_S_APPEND, MesPcnExtConstWords.CRAFT_CODE, index), equipmentRecord.getCraftCode());
insert.setParameter(String.format(TWO_S_APPEND, MesPcnExtConstWords.MOULD_RECORD_ID, index), equipmentRecord.getId());
insert.setParameter(String.format(TWO_S_APPEND, MesPcnExtConstWords.EXTEND, index), equipmentRecord.getProduceSnJson());
insert.setParameter(String.format(TWO_S_APPEND, MesPcnExtConstWords.ORG_EQUIP_ID, index), orgEquipId);
insert.setParameter(String.format(TWO_S_APPEND, MesPcnExtConstWords.EQUIP_ID, index), equipId);
insert.setParameter(String.format(TWO_S_APPEND, MesPcnExtConstWords.EQUIP_VARIABLE_ID, index), equipmentLog.getEquipVariableId());
insert.setParameter(String.format(TWO_S_APPEND, MesPcnExtConstWords.EQUIP_VARIABLE_NAME, index), equipmentLog.getEquipVariableName());
insert.setParameter(String.format(TWO_S_APPEND, MesPcnExtConstWords.EQUIP_VARIABLE_DESC, index), equipmentLog.getEquipVariableDesc());
insert.setParameter(String.format(TWO_S_APPEND, MesPcnExtConstWords.READ_WRITE_FLAG, index), equipmentLog.getReadWriteFlag());
insert.setParameter(String.format(TWO_S_APPEND, MesPcnExtConstWords.DATA_TYPE, index), equipmentLog.getDataType());
insert.setParameter(String.format(TWO_S_APPEND, MesPcnExtConstWords.EQUIP_VARIABLE_VALUE, index), equipmentLog.getEquipVariableValue());
insert.setParameter(String.format(TWO_S_APPEND, MesPcnExtConstWords.VARIABLE_TYPE, index), equipmentLog.getVariableType());
insert.setParameter(String.format(TWO_S_APPEND, MesPcnExtConstWords.CATEGORY_LEVEL_TWO, index), equipmentLog.getCategoryLevelTwo());
insert.setParameter(String.format(TWO_S_APPEND, MesPcnExtConstWords.QUALITY, index), equipmentLog.getQuality());
index ++;
}
insert.executeUpdate();
}
} }

@ -2,6 +2,7 @@ package cn.estsh.i3plus.ext.mes.pcn.apiservice.schedulejob;
import cn.estsh.i3plus.ext.mes.pcn.api.base.IMesEquipmentLogService; import cn.estsh.i3plus.ext.mes.pcn.api.base.IMesEquipmentLogService;
import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtConstWords;
import cn.estsh.impp.framework.boot.init.ApplicationProperties; import cn.estsh.impp.framework.boot.init.ApplicationProperties;
import cn.hutool.json.JSONObject; import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil; import cn.hutool.json.JSONUtil;
@ -11,6 +12,7 @@ import org.quartz.DisallowConcurrentExecution;
import org.quartz.JobExecutionContext; import org.quartz.JobExecutionContext;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import org.springframework.util.StringUtils;
/** /**
* @author wangjie * @author wangjie
@ -26,6 +28,9 @@ public class MesSaveVariableJob extends BaseMesScheduleJob {
@Autowired @Autowired
private IMesEquipmentLogService mesEquipmentLogService; private IMesEquipmentLogService mesEquipmentLogService;
//默认批量一次性最大写800条数据
private static final Integer DEFAULT_QTY = 800;
public MesSaveVariableJob() { public MesSaveVariableJob() {
super(MesSaveVariableJob.class, "保存工艺参数job"); super(MesSaveVariableJob.class, "保存工艺参数job");
} }
@ -33,24 +38,26 @@ public class MesSaveVariableJob extends BaseMesScheduleJob {
@Override @Override
public void executeMesJob(JobExecutionContext context, ApplicationProperties applicationProperties) { public void executeMesJob(JobExecutionContext context, ApplicationProperties applicationProperties) {
log.info("保存工艺参数job -- START "); log.info("保存工艺参数JOB --- START ");
/*String jobParam = this.getJobParam(); String jobParam = this.getJobParam();
JSONObject jsonObject= JSONUtil.parseObj(jobParam);*/ JSONObject params= JSONUtil.parseObj(jobParam);
String organizeCode = "CK01"; String organizeCode = (null == params || !params.containsKey(MesPcnExtConstWords.ORGANIZE_CODE)) ? null : params.get(MesPcnExtConstWords.ORGANIZE_CODE).toString();
Integer qty = (null == params || !params.containsKey(MesPcnExtConstWords.QTY)) ? DEFAULT_QTY : Integer.valueOf(params.get(MesPcnExtConstWords.QTY).toString());
qty = qty.compareTo(DEFAULT_QTY) > 0 ? DEFAULT_QTY : qty;
if (null == organizeCode){ if (StringUtils.isEmpty(organizeCode)){
log.error("请添加需要报工的工厂代码!"); log.info("保存工艺参数JOB --- ERROR --- JOB未配置工厂参数");
return; return;
} }
long startTime = System.currentTimeMillis(); long startTime = System.currentTimeMillis();
mesEquipmentLogService.saveEquipmentLogDetails(organizeCode); mesEquipmentLogService.saveEquipmentLogDetails(organizeCode, MesPcnExtConstWords.JOB, qty);
long endTime = System.currentTimeMillis(); long endTime = System.currentTimeMillis();
log.info("保存工艺参数job --- END --- 耗时: {} ms", endTime - startTime); log.info("保存工艺参数JOB --- END --- 耗时: {} ms", endTime - startTime);
} }

@ -16,8 +16,6 @@ import cn.estsh.i3plus.pojo.mes.bean.MesEquipmentLog;
import cn.estsh.i3plus.pojo.mes.bean.MesEquipmentLogDetail; import cn.estsh.i3plus.pojo.mes.bean.MesEquipmentLogDetail;
import cn.estsh.i3plus.pojo.mes.bean.MesEquipmentRecord; import cn.estsh.i3plus.pojo.mes.bean.MesEquipmentRecord;
import cn.estsh.i3plus.pojo.mes.bean.MesEquipmentVariable; import cn.estsh.i3plus.pojo.mes.bean.MesEquipmentVariable;
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.MesEquipmentRecordRepository;
import cn.estsh.i3plus.pojo.mes.repository.MesEquipmentVariableRepository; import cn.estsh.i3plus.pojo.mes.repository.MesEquipmentVariableRepository;
import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil; import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil;
@ -36,9 +34,9 @@ import org.springframework.util.StringUtils;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.persistence.EntityManager; import javax.persistence.EntityManager;
import javax.persistence.Query; import javax.persistence.Query;
import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Optional;
import java.util.StringJoiner; import java.util.StringJoiner;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@ -52,17 +50,17 @@ public class MesEquipmentLogService implements IMesEquipmentLogService {
private MesEquipmentVariableRepository equipmentVariableRepository; private MesEquipmentVariableRepository equipmentVariableRepository;
@Autowired @Autowired
private MesEquipmentLogExtService mesEquipmentLogExtService; private MesEquipmentLogExtService equipmentLogExtService;
@Autowired
private MesEquipmentExtService mesEquipmentExtService;
@Autowired
private MesEquipmentLogDetailRepository mesEquipmentLogDetailRepository;
@Autowired @Autowired
private MesEquipmentLogRepository mesEquipmentLogRepository; private MesEquipmentExtService equipmentExtService;
@Autowired @Autowired
private MesEquipmentRecordRepository mesEquipmentRecordRepository; private MesEquipmentRecordRepository mesEquipmentRecordRepository;
@Autowired @Autowired
private SnowflakeIdMaker snowflakeIdMaker; private SnowflakeIdMaker snowflakeIdMaker;
@Resource(name = "redisMesPcn") @Resource(name = "redisMesPcn")
private ImppRedis redisMesPcn; private ImppRedis redisMesPcn;
@ -75,7 +73,7 @@ public class MesEquipmentLogService implements IMesEquipmentLogService {
@Override @Override
public void saveEquipmentLogToRedis(ActorMessage actorMessage) { public void saveEquipmentLogToRedis(ActorMessage actorMessage) {
// 获取设备变量属性 // 获取设备变量属性
List<MesEquipmentVariable> equipmentVariableList = mesEquipmentExtService.getEquipmentVariableList(actorMessage.getOrganizeCode(), actorMessage.getEquipmentCode(), MesExtEnumUtil.EQUIP_VARIABLE_TYPE.PROCESS_FINISH.getValue()); List<MesEquipmentVariable> equipmentVariableList = equipmentExtService.getEquipmentVariableList(actorMessage.getOrganizeCode(), actorMessage.getEquipmentCode(), MesExtEnumUtil.EQUIP_VARIABLE_TYPE.PROCESS_FINISH.getValue());
// 获取变量ID集合 // 获取变量ID集合
Map<Long, MesEquipmentVariable> equipVariableMap = CollectionUtils.isEmpty(equipmentVariableList) ? null : equipmentVariableList.stream().filter(o -> null != o).collect(Collectors.toMap(MesEquipmentVariable::getId, o -> o)); Map<Long, MesEquipmentVariable> equipVariableMap = CollectionUtils.isEmpty(equipmentVariableList) ? null : equipmentVariableList.stream().filter(o -> null != o).collect(Collectors.toMap(MesEquipmentVariable::getId, o -> o));
if (CollectionUtils.isEmpty(equipVariableMap)) { if (CollectionUtils.isEmpty(equipVariableMap)) {
@ -84,7 +82,7 @@ public class MesEquipmentLogService implements IMesEquipmentLogService {
} }
// 获取设备数据采集信息 // 获取设备数据采集信息
List<MesEquipVariableCollectContext> equipmentLogList = mesEquipmentLogExtService.getEquipmentLogCollectList(actorMessage.getOrganizeCode(), actorMessage.getEquipId(), MesExtEnumUtil.EQUIP_VARIABLE_NEED_NEW_VALUE.FALSE.getValue(), MesExtEnumUtil.EQUIP_VARIABLE_TYPE.PROCESS_FINISH.getValue()); List<MesEquipVariableCollectContext> equipmentLogList = equipmentLogExtService.getEquipmentLogCollectList(actorMessage.getOrganizeCode(), actorMessage.getEquipId(), MesExtEnumUtil.EQUIP_VARIABLE_NEED_NEW_VALUE.FALSE.getValue(), MesExtEnumUtil.EQUIP_VARIABLE_TYPE.PROCESS_FINISH.getValue());
// 筛选出该设备中设备变量属性对应的数据采集信息 // 筛选出该设备中设备变量属性对应的数据采集信息
equipmentLogList = CollectionUtils.isEmpty(equipmentLogList) ? null : equipmentLogList.stream().filter(o -> equipVariableMap.containsKey(o.getEquipVariableId())).collect(Collectors.toList()); equipmentLogList = CollectionUtils.isEmpty(equipmentLogList) ? null : equipmentLogList.stream().filter(o -> equipVariableMap.containsKey(o.getEquipVariableId())).collect(Collectors.toList());
if (CollectionUtils.isEmpty(equipmentLogList)) { if (CollectionUtils.isEmpty(equipmentLogList)) {
@ -97,12 +95,13 @@ public class MesEquipmentLogService implements IMesEquipmentLogService {
MesEquipmentRecord mesEquipmentRecord =new MesEquipmentRecord(); MesEquipmentRecord mesEquipmentRecord =new MesEquipmentRecord();
BeanUtils.copyProperties(actorMessage, mesEquipmentRecord); BeanUtils.copyProperties(actorMessage, mesEquipmentRecord);
mesEquipmentRecord.setRecordStatus(MesExtEnumUtil.RECORD_STATUS.RECORD_STATUS_10.getValue()); mesEquipmentRecord.setRecordStatus(MesExtEnumUtil.RECORD_STATUS.RECORD_STATUS_10.getValue());
mesEquipmentRecord.setId(snowflakeIdMaker.nextId()); mesEquipmentRecord.setId(!StringUtils.isEmpty(actorMessage.getMouldRecordId()) ? actorMessage.getMouldRecordId() : snowflakeIdMaker.nextId());
ConvertBean.serviceModelInitialize(mesEquipmentRecord, actorMessage.getUserName()); ConvertBean.serviceModelInitialize(mesEquipmentRecord, actorMessage.getUserName());
String key = getKey(mesEquipmentRecord); String key = getKey(mesEquipmentRecord);
equipmentLogList.forEach(equipLog -> redisMesPcn.putList(key, equipLog)); equipmentLogList.forEach(equipLog -> redisMesPcn.putList(key, equipLog));
//不能使用insert, 防止id偶发重复问题
mesEquipmentRecordRepository.save(mesEquipmentRecord); mesEquipmentRecordRepository.save(mesEquipmentRecord);
log.info("工厂{}生产线{}工位{}:FSM STATE DISPATCHER --- DO STEP --- {} EXEC --- KEY:{} --- 工艺参数:{}", log.info("工厂{}生产线{}工位{}:FSM STATE DISPATCHER --- DO STEP --- {} EXEC --- KEY:{} --- 工艺参数:{}",
@ -119,64 +118,58 @@ public class MesEquipmentLogService implements IMesEquipmentLogService {
} }
@Override @Override
public void saveEquipmentLogDetails(String organizeCode) { public void saveEquipmentLogDetails(String organizeCode, String userInfo, Integer qty) {
DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(organizeCode); DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(organizeCode);
DdlPreparedPack.getNumEqualPack(MesExtEnumUtil.RECORD_STATUS.RECORD_STATUS_10.getValue(), "recordStatus", ddlPackBean); DdlPreparedPack.getNumEqualPack(MesExtEnumUtil.RECORD_STATUS.RECORD_STATUS_10.getValue(), MesPcnExtConstWords.RECORD_STATUS, ddlPackBean);
DdlPreparedPack.getOrderByPack(new Object[]{CommonEnumUtil.ASC_OR_DESC.ASC.getValue()}, new String[]{"createDatetime"}, ddlPackBean); DdlPreparedPack.getOrderByPack(new Object[]{CommonEnumUtil.ASC_OR_DESC.ASC.getValue()}, new String[]{MesPcnExtConstWords.CREATE_DATE_TIME}, ddlPackBean);
List<MesEquipmentRecord> mesEquipmentRecords = mesEquipmentRecordRepository.findByHqlTopWhere(ddlPackBean, 10); List<MesEquipmentRecord> mesEquipmentRecords = mesEquipmentRecordRepository.findByHqlTopWhere(ddlPackBean, 10);
LOGGER.info("保存工艺参数job --- 读取到设备记录信息[{}]条 ---", CollectionUtils.isEmpty(mesEquipmentRecords) ? MesPcnExtConstWords.ZERO : mesEquipmentRecords.size()); LOGGER.info("保存工艺参数JOB --- 读取到设备记录信息[{}]条 ---", CollectionUtils.isEmpty(mesEquipmentRecords) ? MesPcnExtConstWords.ZERO : mesEquipmentRecords.size());
if (CollectionUtils.isEmpty(mesEquipmentRecords)) return; if (CollectionUtils.isEmpty(mesEquipmentRecords)) return;
for (MesEquipmentRecord mesEquipmentRecord : mesEquipmentRecords) { for (MesEquipmentRecord mesEquipmentRecord : mesEquipmentRecords) {
if (null == mesEquipmentRecord) continue; if (null == mesEquipmentRecord) continue;
saveEquipmentLogDetail(mesEquipmentRecord); saveEquipmentLogDetail(organizeCode, userInfo, qty, mesEquipmentRecord);
} }
} }
private void saveEquipmentLogDetail(MesEquipmentRecord mesEquipmentRecord) { private void saveEquipmentLogDetail(String organizeCode, String userInfo, Integer qty, MesEquipmentRecord mesEquipmentRecord) {
String key = getKey(mesEquipmentRecord); String key = getKey(mesEquipmentRecord);
List<MesEquipmentLog> equipmentLogList = (List<MesEquipmentLog>)redisMesPcn.getList(key, 0, -1); List<MesEquipmentLog> equipmentLogList = (List<MesEquipmentLog>)redisMesPcn.getList(key, 0, -1);
if (CollectionUtils.isEmpty(equipmentLogList)) {
// 修改状态
mesEquipmentRecord.setRecordStatus(MesExtEnumUtil.RECORD_STATUS.RECORD_STATUS_20.getValue());
mesEquipmentRecordRepository.save(mesEquipmentRecord);
// 删除key
redisMesPcn.deleteKey(key);
return;
}
List<MesEquipmentLogDetail> mesEquipmentLogDetails = new ArrayList<>();
for (MesEquipmentLog mesEquipmentLog : equipmentLogList) {
MesEquipmentLogDetail mesEquipmentLogDetail = new MesEquipmentLogDetail();
BeanUtils.copyProperties(mesEquipmentLog, mesEquipmentLogDetail);
mesEquipmentLogDetail.setAreaCode(mesEquipmentRecord.getAreaCode());
mesEquipmentLogDetail.setCraftCode(mesEquipmentRecord.getCraftCode());
mesEquipmentLogDetail.setProcessCode(mesEquipmentRecord.getProcessCode());
mesEquipmentLogDetail.setWorkCenterCode(mesEquipmentRecord.getWorkCenterCode());
mesEquipmentLogDetail.setId(null);
mesEquipmentLogDetail.setCreateDatetime(null);
mesEquipmentLogDetail.setCreateUser(null);
mesEquipmentLogDetail.setOrgEquipId(mesEquipmentLogDetail.getOrganizeCode()+"_"+mesEquipmentLogDetail.getEquipId());
String jsonStr = mesEquipmentRecord.getProduceSnJson();
if (!StringUtils.isEmpty(jsonStr)) {
mesEquipmentLogDetail.setExtend(mesEquipmentRecord.getProduceSnJson());
}
ConvertBean.serviceModelInitialize(mesEquipmentLogDetail, "job");
mesEquipmentLogDetails.add(mesEquipmentLogDetail);
}
mesEquipmentLogDetailRepository.saveAll(mesEquipmentLogDetails);
// 修改状态 // 修改状态
mesEquipmentRecord.setRecordStatus(MesExtEnumUtil.RECORD_STATUS.RECORD_STATUS_20.getValue()); mesEquipmentRecord.setRecordStatus(CollectionUtils.isEmpty(equipmentLogList) ? MesExtEnumUtil.RECORD_STATUS.RECORD_STATUS_20.getValue() : MesExtEnumUtil.RECORD_STATUS.RECORD_STATUS_30.getValue());
ConvertBean.serviceModelUpdate(mesEquipmentRecord, userInfo);
mesEquipmentRecordRepository.save(mesEquipmentRecord); mesEquipmentRecordRepository.save(mesEquipmentRecord);
// 删除key // 删除key
redisMesPcn.deleteKey(key); redisMesPcn.deleteKey(key);
if (CollectionUtils.isEmpty(equipmentLogList)) return;
Optional<MesEquipmentLog> optional = equipmentLogList.stream().filter(o -> (null != o && !StringUtils.isEmpty(o.getEquipId()))).findFirst();
if (null == optional || !optional.isPresent()) return;
insertBatchEquipmentLogDetail(organizeCode, optional.get().getEquipId(), userInfo, qty, mesEquipmentRecord, equipmentLogList);
}
private void insertBatchEquipmentLogDetail(String organizeCode, Integer equipId, String userInfo, Integer qty, MesEquipmentRecord mesEquipmentRecord, List<MesEquipmentLog> equipmentLogList) {
if (CollectionUtils.isEmpty(equipmentLogList)) return;
if (qty.compareTo(equipmentLogList.size()) >= 0) {
equipmentLogExtService.insertBatchEquipmentLogDetail(organizeCode, equipId, userInfo, mesEquipmentRecord, equipmentLogList);
return;
} else {
List<MesEquipmentLog> handleList = equipmentLogList.subList(0, qty);
equipmentLogExtService.insertBatchEquipmentLogDetail(organizeCode, equipId, userInfo, mesEquipmentRecord, handleList);
insertBatchEquipmentLogDetail(organizeCode, equipId, userInfo, qty, mesEquipmentRecord, equipmentLogList.subList(qty, equipmentLogList.size()));
}
} }
@Override @Override
@ -191,12 +184,12 @@ public class MesEquipmentLogService implements IMesEquipmentLogService {
if (mesEquipmentVariable == null) { if (mesEquipmentVariable == null) {
return; return;
} }
// 获取设备点位数据 // 获取设备点位数据 //TODO 暂不使用此代码块 使用需要调整代码 此表已不支持shardingsphere配置
MesEquipmentLog equipmentLog = getMesEquipmentLog(equipLogMqttMsg, mesEquipmentVariable); MesEquipmentLog equipmentLog = getMesEquipmentLog(equipLogMqttMsg, mesEquipmentVariable);
if (equipmentLog == null) { if (equipmentLog == null) {
return; return;
} }
// 更新设备点位数据 // 更新设备点位数据 //TODO 暂不使用此代码块 使用需要调整代码 此表已不支持shardingsphere配置
updateEquipmentLog(equipLogMqttMsg, mesEquipmentVariable, equipmentLog); updateEquipmentLog(equipLogMqttMsg, mesEquipmentVariable, equipmentLog);
@ -213,12 +206,12 @@ public class MesEquipmentLogService implements IMesEquipmentLogService {
} }
private void updateEquipmentLog(EquipLogMqttMsg equipLogMqttMsg, MesEquipmentVariable mesEquipmentVariable, MesEquipmentLog equipmentLog) { private void updateEquipmentLog(EquipLogMqttMsg equipLogMqttMsg, MesEquipmentVariable mesEquipmentVariable, MesEquipmentLog equipmentLog) {
DdlPackBean packBean = DdlPackBean.getDdlPackBean(mesEquipmentVariable.getOrganizeCode()); // DdlPackBean packBean = DdlPackBean.getDdlPackBean(mesEquipmentVariable.getOrganizeCode());
DdlPreparedPack.getNumEqualPack(equipmentLog.getEquipId(), MesPcnExtConstWords.EQUIP_ID, packBean); // DdlPreparedPack.getNumEqualPack(equipmentLog.getEquipId(), MesPcnExtConstWords.EQUIP_ID, packBean);
DdlPreparedPack.getNumEqualPack(equipmentLog.getEquipVariableId(), MesPcnExtConstWords.EQUIP_VARIABLE_ID, packBean); // DdlPreparedPack.getNumEqualPack(equipmentLog.getEquipVariableId(), MesPcnExtConstWords.EQUIP_VARIABLE_ID, packBean);
log.info("== MesEquipmentLog修改开始"); // 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修改结束"); // log.info("== MesEquipmentLog修改结束");
} }
private MesEquipmentVariable getMesEquipmentVariable(EquipLogMqttMsg equipLogMqttMsg) { private MesEquipmentVariable getMesEquipmentVariable(EquipLogMqttMsg equipLogMqttMsg) {
@ -245,22 +238,23 @@ public class MesEquipmentLogService implements IMesEquipmentLogService {
} }
private MesEquipmentLog getMesEquipmentLog(EquipLogMqttMsg equipLogMqttMsg, MesEquipmentVariable mesEquipmentVariable) { private MesEquipmentLog getMesEquipmentLog(EquipLogMqttMsg equipLogMqttMsg, MesEquipmentVariable mesEquipmentVariable) {
String variableKey = getVariableKey(equipLogMqttMsg.getPTCode(), "MES_EQUIPMENT_LOG"); // String variableKey = getVariableKey(equipLogMqttMsg.getPTCode(), "MES_EQUIPMENT_LOG");
Object obj = redisMesPcn.getHash(variableKey, equipLogMqttMsg.getKey()); // Object obj = redisMesPcn.getHash(variableKey, equipLogMqttMsg.getKey());
MesEquipmentLog equipmentLog = new MesEquipmentLog(); // MesEquipmentLog equipmentLog = new MesEquipmentLog();
if (obj == null) { // if (obj == null) {
log.info("== MesEquipmentLog查询开始"); // log.info("== MesEquipmentLog查询开始");
equipmentLog = mesEquipmentLogExtService.queryMesEquipmentLog(mesEquipmentVariable.getOrganizeCode(), Integer.valueOf(equipLogMqttMsg.getPTCode()), mesEquipmentVariable.getId()); // equipmentLog = mesEquipmentLogExtService.queryMesEquipmentLog(mesEquipmentVariable.getOrganizeCode(), Integer.valueOf(equipLogMqttMsg.getPTCode()), mesEquipmentVariable.getId());
log.info("== MesEquipmentLog查询结束"); // log.info("== MesEquipmentLog查询结束");
if (equipmentLog == null) { // if (equipmentLog == null) {
LOGGER.info("log信息不存在 不存在【{}】", equipLogMqttMsg.getTagAddress()); // LOGGER.info("log信息不存在 不存在【{}】", equipLogMqttMsg.getTagAddress());
return null; // return null;
} // }
redisMesPcn.putHash(variableKey, equipLogMqttMsg.getKey(), equipmentLog); // redisMesPcn.putHash(variableKey, equipLogMqttMsg.getKey(), equipmentLog);
} else { // } else {
equipmentLog = (MesEquipmentLog) obj; // equipmentLog = (MesEquipmentLog) obj;
} // }
return equipmentLog; // return equipmentLog;
return null;
} }
public void saveLogDetail(MesEquipmentLogDetail mesEquipmentLogDetail) { public void saveLogDetail(MesEquipmentLogDetail mesEquipmentLogDetail) {

@ -6,13 +6,10 @@ 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.MesEquipLogDispatchContext;
import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesEquipVariableCfgCollectContext; 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.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;
import cn.estsh.i3plus.pojo.mes.bean.MesEquipmentLog; import cn.estsh.i3plus.pojo.mes.bean.MesEquipmentLog;
import cn.estsh.i3plus.pojo.mes.bean.MesEquipmentRecord;
import cn.estsh.i3plus.pojo.mes.bean.MesEquipmentVariable; import cn.estsh.i3plus.pojo.mes.bean.MesEquipmentVariable;
import cn.estsh.i3plus.pojo.mes.bean.MesEquipmentVariableCfg; import cn.estsh.i3plus.pojo.mes.bean.MesEquipmentVariableCfg;
import cn.estsh.i3plus.pojo.mes.repository.MesEquipmentLogRepository;
import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil; import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
@ -34,40 +31,9 @@ import java.util.stream.Collectors;
public class MesEquipmentLogExtService implements IMesEquipmentLogExtService { public class MesEquipmentLogExtService implements IMesEquipmentLogExtService {
@Autowired @Autowired
private MesEquipmentLogRepository equipmentLogRepository;
@Autowired
private IMesEquipmentLogDao equipmentLogDao; private IMesEquipmentLogDao equipmentLogDao;
@Override @Override
public List<MesEquipmentLog> getEquipmentLogList(String organizeCode, Integer equipId) {
if (StringUtils.isEmpty(organizeCode) || StringUtils.isEmpty(equipId)) return null;
DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode);
DdlPreparedPack.getNumEqualPack(equipId, MesPcnExtConstWords.EQUIP_ID, packBean);
return equipmentLogRepository.findByHqlWhere(packBean);
}
@Override
public List<MesEquipmentLog> getEquipmentLogList(String organizeCode, Integer equipId, Integer needNewValue, List<Long> equipVariableIdList) {
if (StringUtils.isEmpty(organizeCode) || StringUtils.isEmpty(equipId) || CollectionUtils.isEmpty(equipVariableIdList)) return null;
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);
if (!StringUtils.isEmpty(needNewValue) && MesExtEnumUtil.EQUIP_VARIABLE_NEED_NEW_VALUE.TRUE.getValue() == needNewValue) DdlPreparedPack.getNegativeNumEqualPack(MesPcnExtConstWords.ZERO, MesPcnExtConstWords.EQUIP_VARIABLE_STATUS, packBean);
return equipmentLogRepository.findByHqlWhere(packBean);
}
@Override
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 updateEquipmentLogList(String organizeCode, Integer equipId, Map<Long, String> equipmentLogIdMap) { public void updateEquipmentLogList(String organizeCode, Integer equipId, Map<Long, String> equipmentLogIdMap) {
if (StringUtils.isEmpty(organizeCode) || StringUtils.isEmpty(equipId) || CollectionUtils.isEmpty(equipmentLogIdMap)) return; if (StringUtils.isEmpty(organizeCode) || StringUtils.isEmpty(equipId) || CollectionUtils.isEmpty(equipmentLogIdMap)) return;
equipmentLogDao.updateEquipVariableStatus(organizeCode, equipId, equipmentLogIdMap, MesExtEnumUtil.EQUIP_VARIABLE_NEED_NEW_VALUE.FALSE.getEquipVariableStatus()); equipmentLogDao.updateEquipVariableStatus(organizeCode, equipId, equipmentLogIdMap, MesExtEnumUtil.EQUIP_VARIABLE_NEED_NEW_VALUE.FALSE.getEquipVariableStatus());
@ -175,4 +141,9 @@ public class MesEquipmentLogExtService implements IMesEquipmentLogExtService {
} }
@Override
public void insertBatchEquipmentLogDetail(String organizeCode, Integer equipId, String userInfo, MesEquipmentRecord mesEquipmentRecord, List<MesEquipmentLog> equipmentLogList) {
equipmentLogDao.insertBatchEquipmentLogDetail(organizeCode, equipId, userInfo, mesEquipmentRecord, equipmentLogList);
}
} }

@ -7,6 +7,7 @@ import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProductionProcessContextStepServ
import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesCellEquipContext; import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesCellEquipContext;
import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesProductionProcessContext; import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesProductionProcessContext;
import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesProductionPsOutContext; import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesProductionPsOutContext;
import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesScanMonitorContext;
import cn.estsh.i3plus.ext.mes.pcn.pojo.model.ActorMessage; import cn.estsh.i3plus.ext.mes.pcn.pojo.model.ActorMessage;
import cn.estsh.i3plus.ext.mes.pcn.pojo.model.MesOrderModel; import cn.estsh.i3plus.ext.mes.pcn.pojo.model.MesOrderModel;
import cn.estsh.i3plus.mes.pcn.config.SpringExtProvider; import cn.estsh.i3plus.mes.pcn.config.SpringExtProvider;
@ -63,8 +64,12 @@ public class MesVariableWhenFinishedReadStepService extends BaseStepService {
// 获取上下文信息 // 获取上下文信息
MesProductionProcessContext productionProcessContext = productionProcessContextStepService.dispatchCurCellEquipment(reqBean); MesProductionProcessContext productionProcessContext = productionProcessContextStepService.dispatchCurCellEquipment(reqBean);
//获取上下文工位扫描监控信息
MesScanMonitorContext scanMonitorContext = productionProcessContextStepService.dispatchScanMonitorContext(reqBean, true);
// 获取条码信息 // 获取条码信息
List<MesProductionPsOutContext> mesProduceSnContexts = mesProductionDispatchContextStepService.getProductionPsOutContext(reqBean); List<MesProductionPsOutContext> mesProduceSnContexts = mesProductionDispatchContextStepService.getProductionPsOutContext(reqBean);
// 通过上下文获取工位设备信息 // 通过上下文获取工位设备信息
MesCellEquipContext curCellEquip = productionProcessContext.getCurCellEquip(); MesCellEquipContext curCellEquip = productionProcessContext.getCurCellEquip();
@ -85,6 +90,7 @@ public class MesVariableWhenFinishedReadStepService extends BaseStepService {
.processCode(reqBean.getProcessCode()) .processCode(reqBean.getProcessCode())
.produceSnJson(mesProduceSnsStr) .produceSnJson(mesProduceSnsStr)
.userName(reqBean.getUserInfo()) .userName(reqBean.getUserInfo())
.mouldRecordId(scanMonitorContext.getMouldRecordId())
.build(); .build();
// 数据采集信息需要存放到 redis中 // 数据采集信息需要存放到 redis中

@ -10,24 +10,38 @@ public class ActorMessage {
@ApiParam("用户名称") @ApiParam("用户名称")
private String userName; private String userName;
@ApiParam("组织代码") @ApiParam("组织代码")
private String organizeCode; private String organizeCode;
@ApiParam("组织名称") @ApiParam("组织名称")
private String organizeName; private String organizeName;
@ApiParam("工作中心代码") @ApiParam("工作中心代码")
private String workCenterCode; private String workCenterCode;
@ApiParam("工作单元代码")
@ApiParam("工位代码")
private String workCellCode; private String workCellCode;
@ApiParam("区域代码")
private String areaCode; private String areaCode;
@ApiParam("工艺代码")
private String craftCode; private String craftCode;
@ApiParam("工序代码")
private String processCode; private String processCode;
@ApiParam("条码信息JOSN")
private String produceSnJson; private String produceSnJson;
@ApiParam("设备代码")
private String equipmentCode; private String equipmentCode;
@ApiParam("设备ID")
private Integer equipId; private Integer equipId;
@ApiParam("开模记录ID")
private Long mouldRecordId;
} }

@ -83,6 +83,16 @@ public class MesPcnExtConstWords {
public static final String EQUIPMENT_NAME = "equipmentName"; public static final String EQUIPMENT_NAME = "equipmentName";
// 设备数据变量ID // 设备数据变量ID
public static final String EQUIP_VARIABLE_ID = "equipVariableId"; public static final String EQUIP_VARIABLE_ID = "equipVariableId";
// 设备数据变量名称
public static final String EQUIP_VARIABLE_NAME = "equipVariableName";
// 设备数据变量描述
public static final String EQUIP_VARIABLE_DESC = "equipVariableDesc";
// 读写标志
public static final String READ_WRITE_FLAG = "readWriteFlag";
// 数据类型
public static final String DATA_TYPE = "dataType";
// 设备质量
public static final String QUALITY = "quality";
// 设备ID // 设备ID
public static final String EQUIP_ID = "equipId"; public static final String EQUIP_ID = "equipId";
// 变量类型 // 变量类型
@ -241,6 +251,14 @@ public class MesPcnExtConstWords {
public static final String MESSAGE_TYPE = "messageType"; public static final String MESSAGE_TYPE = "messageType";
// 工厂_工作中心 // 工厂_工作中心
public static final String ORG_WORK_CODE = "orgWorkCode"; public static final String ORG_WORK_CODE = "orgWorkCode";
// 工厂_设备ID
public static final String ORG_EQUIP_ID = "orgEquipId";
// JOB
public static final String JOB = "JOB";
// 记录状态
public static final String RECORD_STATUS = "recordStatus";
// 扩展字段
public static final String EXTEND = "extend";
// 时间格式 // 时间格式
public static final String DATE_FORMAT_SSS = "yyyy-MM-dd HH:mm:ss.SSS"; public static final String DATE_FORMAT_SSS = "yyyy-MM-dd HH:mm:ss.SSS";

Loading…
Cancel
Save