diff --git a/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/base/IMesEquipmentLogService.java b/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/base/IMesEquipmentLogService.java index 0e8990c..56bff8f 100644 --- a/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/base/IMesEquipmentLogService.java +++ b/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/base/IMesEquipmentLogService.java @@ -7,7 +7,7 @@ public interface IMesEquipmentLogService { void saveEquipmentLogToRedis(ActorMessage actorMessage); - void saveEquipmentLogDetails(String organizeCode); + void saveEquipmentLogDetails(String organizeCode, String userInfo, Integer qty); void updateValue(EquipLogMqttMsg equipLogMqttMsg); } diff --git a/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/busi/IMesEquipmentLogExtService.java b/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/busi/IMesEquipmentLogExtService.java index 2ba0cc5..4f022e9 100644 --- a/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/busi/IMesEquipmentLogExtService.java +++ b/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/busi/IMesEquipmentLogExtService.java @@ -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.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.MesEquipmentVariableCfg; import io.swagger.annotations.ApiOperation; @@ -13,15 +14,6 @@ import java.util.Map; public interface IMesEquipmentLogExtService { - @ApiOperation(value = "根据设备ID 查询设备ID分表所有采集数据") - List getEquipmentLogList(String organizeCode, Integer equipId); - - @ApiOperation(value = "根据设备ID,是否常变值状态,设备数据变量ID集合 查询设备ID分表采集数据") - List getEquipmentLogList(String organizeCode, Integer equipId, Integer needNewValue, List equipVariableIdList); - - @ApiOperation(value = "根据设备ID 查询设备ID分表所有采集数据") - MesEquipmentLog queryMesEquipmentLog(String organizeCode, Integer equipId, Long equipVariableId); - @ApiOperation(value = "根据设备ID,设备LOG表ID集合 修改设备ID分表采集数据的状态") void updateEquipmentLogList(String organizeCode, Integer equipId, Map equipmentLogIdMap); @@ -37,4 +29,6 @@ public interface IMesEquipmentLogExtService { @ApiOperation(value = "根据设备ID,是否常变值状态,设备数据变量ID集合,变量类型 查询设备ID分表采集数据") List getEquipmentLogCollectList(String organizeCode, Integer equipId, Integer needNewValue, Integer variableType, List equipVariableIdList); + @ApiOperation(value = "根据设备ID, 批量写入设备LOG明细数据") + void insertBatchEquipmentLogDetail(String organizeCode, Integer equipId, String userInfo, MesEquipmentRecord mesEquipmentRecord, List equipmentLogList); } diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/controller/busi/TestController.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/controller/busi/TestController.java index 9605122..c41c47b 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/controller/busi/TestController.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/controller/busi/TestController.java @@ -1,21 +1,18 @@ 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.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.apiservice.schedulejob.MesReportNoSortJob; 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.pojo.constant.MesCommonConstant; import cn.estsh.i3plus.platform.common.convert.ConvertBean; import cn.estsh.i3plus.pojo.base.bean.DdlPackBean; -import cn.estsh.i3plus.pojo.base.bean.ListPager; -import cn.estsh.i3plus.pojo.base.common.Pager; -import cn.estsh.i3plus.pojo.mes.bean.*; -import cn.estsh.i3plus.pojo.mes.bean.rework.MesReworkTask; +import cn.estsh.i3plus.pojo.mes.bean.MesProductionRecord; +import cn.estsh.i3plus.pojo.mes.bean.MesShift; +import cn.estsh.i3plus.pojo.mes.bean.MesWorkOrder; import cn.estsh.i3plus.pojo.mes.repository.MesProductionRecordRepository; 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.ImppExceptionBuilder; import cn.estsh.impp.framework.boot.util.ResultBean; @@ -33,8 +30,7 @@ import java.util.stream.Collectors; @RestController @RequestMapping(MesCommonConstant.MES_YANFEN + "/test") public class TestController { - @Autowired - private IMesEquipmentLogExtService mesEquipmentLogExtService; + @Autowired private MesReportNoSortJob mesReportNoSortJob; @@ -54,19 +50,6 @@ public class TestController { @Autowired private TestService testService; - @GetMapping("/equipment/log/query") - @ApiOperation(value = "查询设备交互") - public ResultBean queryReworkTaskByPager(String organizeCode, Integer equipId) { - try { - List 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") @ApiOperation(value = "查询设备交互") public ResultBean queryReworkTaskByPager(String organizeCode) { diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/dao/IMesEquipmentLogDao.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/dao/IMesEquipmentLogDao.java index 61b7c8b..dd2283f 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/dao/IMesEquipmentLogDao.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/dao/IMesEquipmentLogDao.java @@ -1,6 +1,8 @@ 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.MesEquipmentLog; +import cn.estsh.i3plus.pojo.mes.bean.MesEquipmentRecord; import cn.estsh.i3plus.pojo.mes.bean.MesEquipmentVariable; import io.swagger.annotations.ApiOperation; @@ -21,4 +23,6 @@ public interface IMesEquipmentLogDao { @ApiOperation(value = "根据设备ID, 变量类型查询设备日志表") List queryMesEquipmentLog(String organizeCode, Integer equipId, Integer variableType); + @ApiOperation(value = "根据设备ID, 批量写入设备LOG明细数据") + void insertBatchEquipmentLogDetail(String organizeCode, Integer equipId, String userInfo, MesEquipmentRecord mesEquipmentRecord, List equipmentLogList); } 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 d87c590..0659beb 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 @@ -5,6 +5,8 @@ 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.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 org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -186,4 +188,106 @@ public class MesEquipmentLogDao implements IMesEquipmentLogDao { return equipVariableCollectContextList; } + @Override + public void insertBatchEquipmentLogDetail(String organizeCode, Integer equipId, String userInfo, MesEquipmentRecord mesEquipmentRecord, List equipmentLogList) { + + StringBuffer builder = new StringBuffer(); + + for (MesEquipmentLog equipmentLog : equipmentLogList) { + + if (null == equipmentLog) continue; + + + + + } + + + + + + + + + + + + + + + + + + + + + + + + +// 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(); + + + } + } diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/schedulejob/MesSaveVariableJob.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/schedulejob/MesSaveVariableJob.java index 2965988..ffccf45 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/schedulejob/MesSaveVariableJob.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/schedulejob/MesSaveVariableJob.java @@ -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.pojo.util.MesPcnExtConstWords; import cn.estsh.impp.framework.boot.init.ApplicationProperties; import cn.hutool.json.JSONObject; import cn.hutool.json.JSONUtil; @@ -11,6 +12,7 @@ import org.quartz.DisallowConcurrentExecution; import org.quartz.JobExecutionContext; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; +import org.springframework.util.StringUtils; /** * @author wangjie @@ -26,6 +28,9 @@ public class MesSaveVariableJob extends BaseMesScheduleJob { @Autowired private IMesEquipmentLogService mesEquipmentLogService; + //默认批量一次性最大写800条数据 + private static final Integer DEFAULT_QTY = 800; + public MesSaveVariableJob() { super(MesSaveVariableJob.class, "保存工艺参数job"); } @@ -33,24 +38,26 @@ public class MesSaveVariableJob extends BaseMesScheduleJob { @Override public void executeMesJob(JobExecutionContext context, ApplicationProperties applicationProperties) { - log.info("保存工艺参数job -- START "); + log.info("保存工艺参数JOB --- START "); - /*String jobParam = this.getJobParam(); - JSONObject jsonObject= JSONUtil.parseObj(jobParam);*/ - String organizeCode = "CK01"; + String jobParam = this.getJobParam(); + JSONObject params= JSONUtil.parseObj(jobParam); + 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){ - log.error("请添加需要报工的工厂代码!"); + if (StringUtils.isEmpty(organizeCode)){ + log.info("保存工艺参数JOB --- ERROR --- JOB未配置工厂参数"); return; } long startTime = System.currentTimeMillis(); - mesEquipmentLogService.saveEquipmentLogDetails(organizeCode); + mesEquipmentLogService.saveEquipmentLogDetails(organizeCode, MesPcnExtConstWords.JOB, qty); long endTime = System.currentTimeMillis(); - log.info("保存工艺参数job --- END --- 耗时: {} ms", endTime - startTime); + log.info("保存工艺参数JOB --- END --- 耗时: {} ms", endTime - startTime); } 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 70aece6..58bc8b4 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 @@ -36,10 +36,7 @@ import org.springframework.util.StringUtils; import javax.annotation.Resource; import javax.persistence.EntityManager; import javax.persistence.Query; -import java.util.ArrayList; -import java.util.List; -import java.util.Map; -import java.util.StringJoiner; +import java.util.*; import java.util.stream.Collectors; @Slf4j @@ -52,17 +49,17 @@ public class MesEquipmentLogService implements IMesEquipmentLogService { private MesEquipmentVariableRepository equipmentVariableRepository; @Autowired - private MesEquipmentLogExtService mesEquipmentLogExtService; - @Autowired - private MesEquipmentExtService mesEquipmentExtService; - @Autowired - private MesEquipmentLogDetailRepository mesEquipmentLogDetailRepository; + private MesEquipmentLogExtService equipmentLogExtService; + @Autowired - private MesEquipmentLogRepository mesEquipmentLogRepository; + private MesEquipmentExtService equipmentExtService; + @Autowired private MesEquipmentRecordRepository mesEquipmentRecordRepository; + @Autowired private SnowflakeIdMaker snowflakeIdMaker; + @Resource(name = "redisMesPcn") private ImppRedis redisMesPcn; @@ -75,7 +72,7 @@ public class MesEquipmentLogService implements IMesEquipmentLogService { @Override public void saveEquipmentLogToRedis(ActorMessage actorMessage) { // 获取设备变量属性 - List equipmentVariableList = mesEquipmentExtService.getEquipmentVariableList(actorMessage.getOrganizeCode(), actorMessage.getEquipmentCode(), MesExtEnumUtil.EQUIP_VARIABLE_TYPE.PROCESS_FINISH.getValue()); + List equipmentVariableList = equipmentExtService.getEquipmentVariableList(actorMessage.getOrganizeCode(), actorMessage.getEquipmentCode(), MesExtEnumUtil.EQUIP_VARIABLE_TYPE.PROCESS_FINISH.getValue()); // 获取变量ID集合 Map equipVariableMap = CollectionUtils.isEmpty(equipmentVariableList) ? null : equipmentVariableList.stream().filter(o -> null != o).collect(Collectors.toMap(MesEquipmentVariable::getId, o -> o)); if (CollectionUtils.isEmpty(equipVariableMap)) { @@ -84,7 +81,7 @@ public class MesEquipmentLogService implements IMesEquipmentLogService { } // 获取设备数据采集信息 - List equipmentLogList = mesEquipmentLogExtService.getEquipmentLogCollectList(actorMessage.getOrganizeCode(), actorMessage.getEquipId(), MesExtEnumUtil.EQUIP_VARIABLE_NEED_NEW_VALUE.FALSE.getValue(), MesExtEnumUtil.EQUIP_VARIABLE_TYPE.PROCESS_FINISH.getValue()); + List 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()); if (CollectionUtils.isEmpty(equipmentLogList)) { @@ -119,37 +116,44 @@ public class MesEquipmentLogService implements IMesEquipmentLogService { } @Override - public void saveEquipmentLogDetails(String organizeCode) { + public void saveEquipmentLogDetails(String organizeCode, String userInfo, Integer qty) { DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(organizeCode); - DdlPreparedPack.getNumEqualPack(MesExtEnumUtil.RECORD_STATUS.RECORD_STATUS_10.getValue(), "recordStatus", ddlPackBean); - DdlPreparedPack.getOrderByPack(new Object[]{CommonEnumUtil.ASC_OR_DESC.ASC.getValue()}, new String[]{"createDatetime"}, 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[]{MesPcnExtConstWords.CREATE_DATE_TIME}, ddlPackBean); List 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; for (MesEquipmentRecord mesEquipmentRecord : mesEquipmentRecords) { 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); List equipmentLogList = (List)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 mesEquipmentLogDetails = new ArrayList<>(); + + // 修改状态 + 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); + // 删除key + redisMesPcn.deleteKey(key); + + if (CollectionUtils.isEmpty(equipmentLogList)) return; + + Optional 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); + for (MesEquipmentLog mesEquipmentLog : equipmentLogList) { MesEquipmentLogDetail mesEquipmentLogDetail = new MesEquipmentLogDetail(); @@ -163,20 +167,29 @@ public class MesEquipmentLogService implements IMesEquipmentLogService { mesEquipmentLogDetail.setCreateUser(null); mesEquipmentLogDetail.setOrgEquipId(mesEquipmentLogDetail.getOrganizeCode()+"_"+mesEquipmentLogDetail.getEquipId()); - String jsonStr = mesEquipmentRecord.getProduceSnJson(); - if (!StringUtils.isEmpty(jsonStr)) { + if (!StringUtils.isEmpty(mesEquipmentRecord.getProduceSnJson())) mesEquipmentLogDetail.setExtend(mesEquipmentRecord.getProduceSnJson()); - mesEquipmentLogDetail.setExtend(mesEquipmentRecord.getProduceSnJson()); - } ConvertBean.serviceModelInitialize(mesEquipmentLogDetail, "job"); mesEquipmentLogDetails.add(mesEquipmentLogDetail); } - mesEquipmentLogDetailRepository.saveAll(mesEquipmentLogDetails); - // 修改状态 - mesEquipmentRecord.setRecordStatus(MesExtEnumUtil.RECORD_STATUS.RECORD_STATUS_20.getValue()); - mesEquipmentRecordRepository.save(mesEquipmentRecord); - // 删除key - redisMesPcn.deleteKey(key); + + } + + private void insertBatchEquipmentLogDetail(String organizeCode, Integer equipId, String userInfo, Integer qty, MesEquipmentRecord mesEquipmentRecord, List equipmentLogList) { + + if (CollectionUtils.isEmpty(equipmentLogList)) return; + + if (qty.compareTo(equipmentLogList.size()) >= 0) { + equipmentLogExtService.insertBatchEquipmentLogDetail(organizeCode, equipId, userInfo, mesEquipmentRecord, equipmentLogList); + equipmentLogList = null; + } 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); + } @Override @@ -191,12 +204,12 @@ public class MesEquipmentLogService implements IMesEquipmentLogService { if (mesEquipmentVariable == null) { return; } - // 获取设备点位数据 + // 获取设备点位数据 //TODO 暂不使用此代码块 使用需要调整代码 此表已不支持shardingsphere配置 MesEquipmentLog equipmentLog = getMesEquipmentLog(equipLogMqttMsg, mesEquipmentVariable); if (equipmentLog == null) { return; } - // 更新设备点位数据 + // 更新设备点位数据 //TODO 暂不使用此代码块 使用需要调整代码 此表已不支持shardingsphere配置 updateEquipmentLog(equipLogMqttMsg, mesEquipmentVariable, equipmentLog); @@ -213,12 +226,12 @@ public class MesEquipmentLogService implements IMesEquipmentLogService { } 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); - log.info("== MesEquipmentLog修改结束"); +// 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); +// log.info("== MesEquipmentLog修改结束"); } private MesEquipmentVariable getMesEquipmentVariable(EquipLogMqttMsg equipLogMqttMsg) { @@ -245,22 +258,23 @@ public class MesEquipmentLogService implements IMesEquipmentLogService { } 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; +// 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; + return null; } public void saveLogDetail(MesEquipmentLogDetail mesEquipmentLogDetail) { diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/equiplog/MesEquipmentLogExtService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/equiplog/MesEquipmentLogExtService.java index 3daf5f5..840e937 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/equiplog/MesEquipmentLogExtService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/equiplog/MesEquipmentLogExtService.java @@ -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.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; 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.MesEquipmentVariableCfg; -import cn.estsh.i3plus.pojo.mes.repository.MesEquipmentLogRepository; import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeanUtils; @@ -34,40 +31,9 @@ import java.util.stream.Collectors; public class MesEquipmentLogExtService implements IMesEquipmentLogExtService { @Autowired - private MesEquipmentLogRepository equipmentLogRepository; - - @Autowired private IMesEquipmentLogDao equipmentLogDao; @Override - public List 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 getEquipmentLogList(String organizeCode, Integer equipId, Integer needNewValue, List 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 equipmentLogIdMap) { if (StringUtils.isEmpty(organizeCode) || StringUtils.isEmpty(equipId) || CollectionUtils.isEmpty(equipmentLogIdMap)) return; 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 equipmentLogList) { + equipmentLogDao.insertBatchEquipmentLogDetail(organizeCode, equipId, userInfo, mesEquipmentRecord, equipmentLogList); + } + } 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 5ac9c41..87ef227 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 @@ -195,6 +195,10 @@ public class MesPcnExtConstWords { public static final String MESSAGE_TYPE = "messageType"; // 工厂_工作中心 public static final String ORG_WORK_CODE = "orgWorkCode"; + // JOB + public static final String JOB = "JOB"; + // 记录状态 + public static final String RECORD_STATUS = "recordStatus"; // 时间格式 public static final String DATE_FORMAT_SSS = "yyyy-MM-dd HH:mm:ss.SSS";