shasteel-biz/src/main/java/com/iailab/module/shasteel/job/task/RunPredictModuleTask.java
@@ -1,5 +1,6 @@ package com.iailab.module.shasteel.job.task; import com.iailab.framework.common.util.date.DateUtils; import com.iailab.module.model.api.mdk.MdkApi; import com.iailab.module.model.api.mdk.dto.MdkPredictReqDTO; import com.iailab.module.shasteel.mq.common.constant.RoutingConstant; @@ -52,7 +53,7 @@ logger.info(type + "模块预测完成。"); Map<String, Object> msg = new HashMap<>(); msg.put("moduleType", type); msg.put("predictTime", predictTime); msg.put("predictTime", DateUtils.format(predictTime, DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)); rabbitTemplate.convertAndSend(RoutingConstant.EXCHANGE, RoutingConstant.Iailab_Model_PredictFinish, msg); }); } catch (Exception ex) { shasteel-biz/src/main/java/com/iailab/module/shasteel/job/task/RunScheduleAirIndexClassTask.java
对比新文件 @@ -0,0 +1,73 @@ package com.iailab.module.shasteel.job.task; import com.iailab.module.model.api.mcs.McsApi; import com.iailab.module.model.api.mcs.dto.StScheduleSchemeDTO; import com.iailab.module.model.api.mdk.MdkApi; import com.iailab.module.model.api.mdk.dto.MdkScheduleReqDTO; import com.iailab.module.model.api.mdk.dto.MdkScheduleRespDTO; import com.iailab.module.model.enums.ScheduleTriggerMethodEnum; import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.springframework.util.CollectionUtils; import javax.annotation.Resource; import java.util.Calendar; import java.util.Date; import java.util.List; /** * 压缩空气运行指标(班) * 8*60=480 数据 * 每班更新,20 0 0,8,16 * * ? * * * @author PanZhibao * @Description * @createTime 2025年01月03日 */ @Component("runScheduleAirIndexClassTask") public class RunScheduleAirIndexClassTask implements ITask { private Logger logger = LoggerFactory.getLogger(getClass()); @Resource private McsApi mcsApi; @Autowired private MdkApi mdkApi; @Override public void run(String params) { logger.info("RunScheduleAirIndexClassTask,参数为:{}", params); try { Calendar calendar = Calendar.getInstance(); calendar.set(Calendar.MILLISECOND, 0); calendar.set(Calendar.SECOND, 0); Date scheduleTime = calendar.getTime(); if (StringUtils.isEmpty(params)) { logger.info("参数为空"); return; } // 根据条件查找方案 List<StScheduleSchemeDTO> schemeList = mcsApi.listScheduleScheme(ScheduleTriggerMethodEnum.JOB.getCode(), params); if (CollectionUtils.isEmpty(schemeList)) { logger.info("方案为空"); return; } for (StScheduleSchemeDTO scheme : schemeList) { MdkScheduleReqDTO dto = new MdkScheduleReqDTO(); dto.setScheduleTime(scheduleTime); dto.setScheduleCode(scheme.getCode()); MdkScheduleRespDTO mdkScheduleRespDTO = mdkApi.doSchedule(dto); // 结果写入测点 mdkApi.scheduleModelOut(mdkScheduleRespDTO); } logger.info(params + "调度方案执行完成"); } catch (Exception ex) { logger.error("RunScheduleAirIndexClassTask运行异常"); ex.printStackTrace(); } logger.info("RunScheduleAirIndexClassTask运行完成"); } } shasteel-biz/src/main/java/com/iailab/module/shasteel/job/task/RunScheduleAirIndexMonthTask.java
对比新文件 @@ -0,0 +1,87 @@ package com.iailab.module.shasteel.job.task; import com.iailab.module.model.api.mcs.McsApi; import com.iailab.module.model.api.mcs.dto.StScheduleSchemeDTO; import com.iailab.module.model.api.mdk.MdkApi; import com.iailab.module.model.api.mdk.dto.MdkScheduleReqDTO; import com.iailab.module.model.api.mdk.dto.MdkScheduleRespDTO; import com.iailab.module.model.enums.ScheduleTriggerMethodEnum; import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.springframework.util.CollectionUtils; import javax.annotation.Resource; import java.time.LocalDate; import java.time.LocalDateTime; import java.time.temporal.ChronoUnit; import java.util.*; /** * 压缩空气运行指标(月) * 动态数据长度,月初到当天 * 每天更新,10 0 0 1/1 * ? * * @author PanZhibao * @Description * @createTime 2024年12月31日 */ @Component("runScheduleAirIndexMonthTask") public class RunScheduleAirIndexMonthTask implements ITask { private Logger logger = LoggerFactory.getLogger(getClass()); @Resource private McsApi mcsApi; @Autowired private MdkApi mdkApi; @Override public void run(String params) { logger.info("RunScheduleAirIndexMonthTask,参数为:{}", params); try { Calendar calendar = Calendar.getInstance(); calendar.set(Calendar.MILLISECOND, 0); calendar.set(Calendar.SECOND, 0); Date scheduleTime = calendar.getTime(); if (StringUtils.isEmpty(params)) { logger.info("参数为空"); return; } // 根据条件查找方案 List<StScheduleSchemeDTO> schemeList = mcsApi.listScheduleScheme(ScheduleTriggerMethodEnum.JOB.getCode(), params); if (CollectionUtils.isEmpty(schemeList)) { logger.info("方案为空"); return; } for (StScheduleSchemeDTO scheme : schemeList) { MdkScheduleReqDTO dto = new MdkScheduleReqDTO(); dto.setScheduleTime(scheduleTime); dto.setScheduleCode(scheme.getCode()); LocalDateTime now = LocalDateTime.now(); LocalDate startOfMonth = LocalDate.now().withDayOfMonth(1); LocalDateTime startOfMonthAtMidnight = startOfMonth.atStartOfDay(); long timeDifference = ChronoUnit.MINUTES.between(startOfMonthAtMidnight, now); Map<Integer, Integer> dynamicDataLength = new HashMap<>(); dynamicDataLength.put(1, (int) timeDifference); dynamicDataLength.put(2, (int) timeDifference); dynamicDataLength.put(3, (int) timeDifference); dto.setDynamicDataLength( dynamicDataLength); Map<String, String> dynamicSettings = new HashMap<>(); dynamicSettings.put("embedDim", String.valueOf(timeDifference)); dto.setDynamicSettings(dynamicSettings); MdkScheduleRespDTO mdkScheduleRespDTO = mdkApi.doSchedule(dto); // 结果写入测点 mdkApi.scheduleModelOut(mdkScheduleRespDTO); } logger.info(params + "调度方案执行完成"); } catch (Exception ex) { logger.error("RunScheduleAirIndexMonthTask运行异常"); ex.printStackTrace(); } logger.info("RunScheduleAirIndexMonthTask运行完成"); } } shasteel-biz/src/main/java/com/iailab/module/shasteel/job/task/RunScheduleAirIndexWeekTask.java
对比新文件 @@ -0,0 +1,71 @@ package com.iailab.module.shasteel.job.task; import com.iailab.module.model.api.mcs.McsApi; import com.iailab.module.model.api.mcs.dto.StScheduleSchemeDTO; import com.iailab.module.model.api.mdk.MdkApi; import com.iailab.module.model.api.mdk.dto.MdkScheduleReqDTO; import com.iailab.module.model.api.mdk.dto.MdkScheduleRespDTO; import com.iailab.module.model.enums.ScheduleTriggerMethodEnum; import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.springframework.util.CollectionUtils; import javax.annotation.Resource; import java.util.*; /** * 压缩空气运行指标(周) * 最近7天的数据 * 每天更新,20 0 0 1/1 * ? * * @author PanZhibao * @Description * @createTime 2025年01月03日 */ @Component("runScheduleAirIndexWeekTask") public class RunScheduleAirIndexWeekTask implements ITask { private Logger logger = LoggerFactory.getLogger(getClass()); @Resource private McsApi mcsApi; @Autowired private MdkApi mdkApi; @Override public void run(String params) { logger.info("RunScheduleAirIndexWeekTask,参数为:{}", params); try { Calendar calendar = Calendar.getInstance(); calendar.set(Calendar.MILLISECOND, 0); calendar.set(Calendar.SECOND, 0); Date scheduleTime = calendar.getTime(); if (StringUtils.isEmpty(params)) { logger.info("参数为空"); return; } // 根据条件查找方案 List<StScheduleSchemeDTO> schemeList = mcsApi.listScheduleScheme(ScheduleTriggerMethodEnum.JOB.getCode(), params); if (CollectionUtils.isEmpty(schemeList)) { logger.info("方案为空"); return; } for (StScheduleSchemeDTO scheme : schemeList) { MdkScheduleReqDTO dto = new MdkScheduleReqDTO(); dto.setScheduleTime(scheduleTime); dto.setScheduleCode(scheme.getCode()); MdkScheduleRespDTO mdkScheduleRespDTO = mdkApi.doSchedule(dto); // 结果写入测点 mdkApi.scheduleModelOut(mdkScheduleRespDTO); } logger.info(params + "调度方案执行完成"); } catch (Exception ex) { logger.error("RunScheduleAirIndexWeekTask运行异常"); ex.printStackTrace(); } logger.info("RunScheduleAirIndexWeekTask运行完成"); } } shasteel-biz/src/main/java/com/iailab/module/shasteel/job/task/RunScheduleAirTask.java
@@ -57,10 +57,8 @@ dto.setScheduleTime(scheduleTime); dto.setScheduleCode(scheme.getCode()); MdkScheduleRespDTO mdkScheduleRespDTO = mdkApi.doSchedule(dto); // 结果写入测点 mdkApi.scheduleModelOut(mdkScheduleRespDTO); } logger.info(params + "调度方案执行完成"); } catch (Exception ex) { shasteel-biz/src/main/java/com/iailab/module/shasteel/mq/consumer/ModelPredictFinishConsumer.java
@@ -60,14 +60,14 @@ if (CollectionUtils.isEmpty(configList)) { return; } List<String> OutputIdList = new ArrayList<>(); List<String> outputIdList = new ArrayList<>(); configList.forEach(item -> { OutputIdList.add(item.getOutId()); outputIdList.add(item.getOutId()); }); configList.forEach(item -> { PreDataJsonReqVO reqVO = new PreDataJsonReqVO(); reqVO.setPredictTime(DateUtils.parse(messageJson.get("predictTime").toString(), DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)); reqVO.setOutputIdList(OutputIdList); reqVO.setOutputIdList(outputIdList); Map<String, List<Object[]>> preData = mcsApi.getPreDataCur(reqVO); if (CollectionUtils.isEmpty(preData)) { return;