From 5ab9d9098b7bb8f8ef136e9390a34a0e5e20e9be Mon Sep 17 00:00:00 2001 From: "jhforever.wang@estsh.com" Date: Tue, 15 Oct 2024 13:26:03 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B7=A5=E8=89=BA=E5=8F=82=E6=95=B0=E5=AE=8C?= =?UTF-8?q?=E6=88=90=20=E5=8A=A8=E6=80=81sql=E5=86=99=E5=85=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pcn/apiservice/daoimpl/MesEquipmentLogDao.java | 164 ++++++++++----------- .../serviceimpl/base/MesEquipmentLogService.java | 36 +---- .../MesVariableWhenFinishedReadStepService.java | 6 + .../ext/mes/pcn/pojo/model/ActorMessage.java | 16 +- .../ext/mes/pcn/pojo/util/MesPcnExtConstWords.java | 14 ++ 5 files changed, 122 insertions(+), 114 deletions(-) diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/daoimpl/MesEquipmentLogDao.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/daoimpl/MesEquipmentLogDao.java index 0659beb..c998082 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/daoimpl/MesEquipmentLogDao.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/daoimpl/MesEquipmentLogDao.java @@ -4,6 +4,7 @@ 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.platform.common.tool.TimeTool; import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; import cn.estsh.i3plus.pojo.mes.bean.MesEquipmentLog; import cn.estsh.i3plus.pojo.mes.bean.MesEquipmentRecord; @@ -20,6 +21,7 @@ import javax.persistence.Query; import java.util.ArrayList; import java.util.List; import java.util.Map; +import java.util.StringJoiner; import java.util.stream.Collectors; @Service @@ -31,6 +33,17 @@ public class MesEquipmentLogDao implements IMesEquipmentLogDao { @Autowired 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 public List queryMesEquipmentLog(List equipmentVariableList, String organizeCode, Integer equipId, Integer variableType) { @@ -97,9 +110,9 @@ public class MesEquipmentLogDao implements IMesEquipmentLogDao { Integer index = 0; for (Map.Entry entry : equipmentLogIdMap.entrySet()) { if (null == entry) continue; - update.setParameter(String.format("%s_%s", MesPcnExtConstWords.EQUIP_VARIABLE_STATUS, index), equipVariableStatus); - update.setParameter(String.format("%s_%s", 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.EQUIP_VARIABLE_STATUS, index), equipVariableStatus); + update.setParameter(String.format(TWO_S_APPEND, MesPcnExtConstWords.ID, index), entry.getKey()); + update.setParameter(String.format(TWO_S_APPEND, MesPcnExtConstWords.MODIFY_DATE_TIME, index), entry.getValue()); index ++; } @@ -189,104 +202,85 @@ public class MesEquipmentLogDao implements IMesEquipmentLogDao { } @Override - public void insertBatchEquipmentLogDetail(String organizeCode, Integer equipId, String userInfo, MesEquipmentRecord mesEquipmentRecord, List equipmentLogList) { - + public void insertBatchEquipmentLogDetail(String organizeCode, Integer equipId, String userInfo, MesEquipmentRecord equipmentRecord, List 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()); -// StringBuffer builder = new StringBuffer(); -// -// builder.append(" insert into mes_work_cell_scan_monitor_log_"); -// if (!StringUtils.isEmpty(mesShardingAppendOrg) && mesShardingAppendOrg.toUpperCase().equals(CommonEnumUtil.TRUE_OR_FALSE.TRUE.name())) builder.append(resultBean.getOrganizeCode().toLowerCase()).append(MesPcnExtConstWords.E_UNDERLINE); -// builder.append(resultBean.getWorkCenterCode().toLowerCase()); -// 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, equipment_name, process_code, process_name, craft_code, craft_name,"); -// builder.append(" mould_record_id, scan_info, work_order_no, serial_number, product_sn, cust_sn, part_no, part_name,"); -// builder.append(" step_code, log_type, message, message_type, deal_status, org_work_code)"); -// builder.append(" values ( :id , :organizeCode , :isValid , :isDeleted , :createUser , :createDatetime , :modifyUser , :modifyDatetime ,"); -// builder.append(" :description , :remark , :systemSyncDatetime , :systemSyncStatus ,"); -// builder.append(" :areaCode , :workCenterCode , :workCellCode , :equipmentCode , :equipmentName , :processCode , :processName , :craftCode , :craftName ,"); -// builder.append(" :mouldRecordId , :scanInfo , :workOrderNo , :serialNumber , :productSn , :custSn , :partNo , :partName ,"); -// builder.append(" :stepCode , :logType , :message , :messageType , :dealStatus , :orgWorkCode )"); -// -// Query insert = entityManager.createNativeQuery(builder.toString()); -// -// insert.setParameter(MesPcnExtConstWords.ID, snowflakeIdMaker.nextId()); -// insert.setParameter(MesPcnExtConstWords.ORGANIZE_CODE, resultBean.getOrganizeCode()); -// insert.setParameter(MesPcnExtConstWords.IS_VALID, CommonEnumUtil.IS_VAILD.VAILD.getValue()); -// insert.setParameter(MesPcnExtConstWords.IS_DELETED, CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue()); -// insert.setParameter(MesPcnExtConstWords.CREATE_USER, resultBean.getUserInfo()); -// insert.setParameter(MesPcnExtConstWords.CREATE_DATE_TIME, TimeTool.getNowTime(true)); -// insert.setParameter(MesPcnExtConstWords.MODIFY_USER, resultBean.getUserInfo()); -// insert.setParameter(MesPcnExtConstWords.MODIFY_DATE_TIME, TimeTool.getNowTime(true)); -// insert.setParameter(MesPcnExtConstWords.DESCRIPTION, null); -// insert.setParameter(MesPcnExtConstWords.REMARK, null); -// insert.setParameter(MesPcnExtConstWords.SYSTEM_SYNC_DATE_TIME, null); -// insert.setParameter(MesPcnExtConstWords.AREA_CODE, resultBean.getAreaCode()); -// insert.setParameter(MesPcnExtConstWords.WORK_CENTER_CODE, resultBean.getWorkCenterCode()); -// insert.setParameter(MesPcnExtConstWords.WORK_CELL_CODE, resultBean.getWorkCellCode()); -// insert.setParameter(MesPcnExtConstWords.EQUIPMENT_CODE, scanMonitorContext.getEquipmentCode()); -// insert.setParameter(MesPcnExtConstWords.EQUIPMENT_NAME, scanMonitorContext.getEquipmentName()); -// insert.setParameter(MesPcnExtConstWords.PROCESS_CODE, scanMonitorContext.getProcessCode()); -// insert.setParameter(MesPcnExtConstWords.PROCESS_NAME, scanMonitorContext.getProcessName()); -// insert.setParameter(MesPcnExtConstWords.CRAFT_CODE, scanMonitorContext.getCraftCode()); -// insert.setParameter(MesPcnExtConstWords.CRAFT_NAME, scanMonitorContext.getCraftName()); -// insert.setParameter(MesPcnExtConstWords.MOULD_RECORD_ID, scanMonitorContext.getMouldRecordId()); -// insert.setParameter(MesPcnExtConstWords.SCAN_INFO, resultBean.getScanInfo()); -// insert.setParameter(MesPcnExtConstWords.WORK_ORDER_NO, null); -// insert.setParameter(MesPcnExtConstWords.SERIAL_NUMBER, null); -// insert.setParameter(MesPcnExtConstWords.PRODUCT_SN, null); -// insert.setParameter(MesPcnExtConstWords.CUST_SN, null); -// insert.setParameter(MesPcnExtConstWords.PART_NO, null); -// insert.setParameter(MesPcnExtConstWords.PART_NAME, null); -// insert.setParameter(MesPcnExtConstWords.STEP_CODE, resultBean.getStepCode()); -// insert.setParameter(MesPcnExtConstWords.LOG_TYPE, resultBean.getLogType()); -// insert.setParameter(MesPcnExtConstWords.MESSAGE, resultBean.getMessage()); -// insert.setParameter(MesPcnExtConstWords.MESSAGE_TYPE, MesPcnEnumUtil.WORK_CELL_SCAN_MONITOR_MESSAGE_TYPE.codeOfValue(resultBean.getDataType())); -// insert.setParameter(MesPcnExtConstWords.ORG_WORK_CODE, new StringJoiner(MesPcnExtConstWords.E_UNDERLINE).add(resultBean.getOrganizeCode()).add(resultBean.getWorkCenterCode()).toString()); -// //存在开模ID的记录延迟同步 -// if (!StringUtils.isEmpty(scanMonitorContext.getMouldRecordId())) { -// insert.setParameter(MesPcnExtConstWords.SYSTEM_SYNC_STATUS, CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue()); -// insert.setParameter(MesPcnExtConstWords.DEAL_STATUS, MesExtEnumUtil.MES_LOG_DEAL_STATUS.UNDEAL.getValue()); -// } else { -// insert.setParameter(MesPcnExtConstWords.SYSTEM_SYNC_STATUS, CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue()); -// insert.setParameter(MesPcnExtConstWords.DEAL_STATUS, MesExtEnumUtil.MES_LOG_DEAL_STATUS.DEAL_SUCCESS.getValue()); -// } -// -// insert.executeUpdate(); + index ++; + } + insert.executeUpdate(); } diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/base/MesEquipmentLogService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/base/MesEquipmentLogService.java index 58bc8b4..8cd7b78 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/base/MesEquipmentLogService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/base/MesEquipmentLogService.java @@ -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.MesEquipmentRecord; 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.MesEquipmentVariableRepository; import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil; @@ -36,7 +34,10 @@ import org.springframework.util.StringUtils; import javax.annotation.Resource; import javax.persistence.EntityManager; import javax.persistence.Query; -import java.util.*; +import java.util.List; +import java.util.Map; +import java.util.Optional; +import java.util.StringJoiner; import java.util.stream.Collectors; @Slf4j @@ -94,12 +95,13 @@ public class MesEquipmentLogService implements IMesEquipmentLogService { MesEquipmentRecord mesEquipmentRecord =new MesEquipmentRecord(); BeanUtils.copyProperties(actorMessage, mesEquipmentRecord); 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()); String key = getKey(mesEquipmentRecord); equipmentLogList.forEach(equipLog -> redisMesPcn.putList(key, equipLog)); + //不能使用insert, 防止id偶发重复问题 mesEquipmentRecordRepository.save(mesEquipmentRecord); log.info("工厂{}生产线{}工位{}:FSM STATE DISPATCHER --- DO STEP --- {} EXEC --- KEY:{} --- 工艺参数:{}", @@ -154,25 +156,6 @@ public class MesEquipmentLogService implements IMesEquipmentLogService { insertBatchEquipmentLogDetail(organizeCode, optional.get().getEquipId(), userInfo, qty, mesEquipmentRecord, equipmentLogList); - - 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()); - - if (!StringUtils.isEmpty(mesEquipmentRecord.getProduceSnJson())) mesEquipmentLogDetail.setExtend(mesEquipmentRecord.getProduceSnJson()); - - ConvertBean.serviceModelInitialize(mesEquipmentLogDetail, "job"); - mesEquipmentLogDetails.add(mesEquipmentLogDetail); - } - } private void insertBatchEquipmentLogDetail(String organizeCode, Integer equipId, String userInfo, Integer qty, MesEquipmentRecord mesEquipmentRecord, List equipmentLogList) { @@ -181,15 +164,12 @@ public class MesEquipmentLogService implements IMesEquipmentLogService { if (qty.compareTo(equipmentLogList.size()) >= 0) { equipmentLogExtService.insertBatchEquipmentLogDetail(organizeCode, equipId, userInfo, mesEquipmentRecord, equipmentLogList); - equipmentLogList = null; + return; } else { List handleList = equipmentLogList.subList(0, qty); equipmentLogExtService.insertBatchEquipmentLogDetail(organizeCode, equipId, userInfo, mesEquipmentRecord, handleList); - equipmentLogList = equipmentLogList.subList(qty, equipmentLogList.size()); + insertBatchEquipmentLogDetail(organizeCode, equipId, userInfo, qty, mesEquipmentRecord, equipmentLogList.subList(qty, equipmentLogList.size())); } - - insertBatchEquipmentLogDetail(organizeCode, equipId, userInfo, qty, mesEquipmentRecord, equipmentLogList); - } @Override diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesVariableWhenFinishedReadStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesVariableWhenFinishedReadStepService.java index d97a50d..ca98e35 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesVariableWhenFinishedReadStepService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesVariableWhenFinishedReadStepService.java @@ -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.MesProductionProcessContext; 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.MesOrderModel; import cn.estsh.i3plus.mes.pcn.config.SpringExtProvider; @@ -63,8 +64,12 @@ public class MesVariableWhenFinishedReadStepService extends BaseStepService { // 获取上下文信息 MesProductionProcessContext productionProcessContext = productionProcessContextStepService.dispatchCurCellEquipment(reqBean); + //获取上下文工位扫描监控信息 + MesScanMonitorContext scanMonitorContext = productionProcessContextStepService.dispatchScanMonitorContext(reqBean, true); + // 获取条码信息 List mesProduceSnContexts = mesProductionDispatchContextStepService.getProductionPsOutContext(reqBean); + // 通过上下文获取工位设备信息 MesCellEquipContext curCellEquip = productionProcessContext.getCurCellEquip(); @@ -85,6 +90,7 @@ public class MesVariableWhenFinishedReadStepService extends BaseStepService { .processCode(reqBean.getProcessCode()) .produceSnJson(mesProduceSnsStr) .userName(reqBean.getUserInfo()) + .mouldRecordId(scanMonitorContext.getMouldRecordId()) .build(); // 数据采集信息需要存放到 redis中 diff --git a/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/model/ActorMessage.java b/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/model/ActorMessage.java index fe5f51a..e53aa79 100644 --- a/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/model/ActorMessage.java +++ b/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/model/ActorMessage.java @@ -10,24 +10,38 @@ public class ActorMessage { @ApiParam("用户名称") private String userName; + @ApiParam("组织代码") private String organizeCode; + @ApiParam("组织名称") private String organizeName; + @ApiParam("工作中心代码") private String workCenterCode; - @ApiParam("工作单元代码") + + @ApiParam("工位代码") private String workCellCode; + @ApiParam("区域代码") private String areaCode; + @ApiParam("工艺代码") private String craftCode; + @ApiParam("工序代码") private String processCode; + @ApiParam("条码信息JOSN") private String produceSnJson; + @ApiParam("设备代码") private String equipmentCode; + @ApiParam("设备ID") private Integer equipId; + + @ApiParam("开模记录ID") + private Long mouldRecordId; + } diff --git a/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/util/MesPcnExtConstWords.java b/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/util/MesPcnExtConstWords.java index 87ef227..a665372 100644 --- a/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/util/MesPcnExtConstWords.java +++ b/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/util/MesPcnExtConstWords.java @@ -81,6 +81,16 @@ public class MesPcnExtConstWords { public static final String EQUIPMENT_NAME = "equipmentName"; // 设备数据变量ID 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 public static final String EQUIP_ID = "equipId"; // 变量类型 @@ -195,10 +205,14 @@ public class MesPcnExtConstWords { public static final String MESSAGE_TYPE = "messageType"; // 工厂_工作中心 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";