From d68cb8bad3dd0c2bd05a5bbfb6ecaeeae492ee13 Mon Sep 17 00:00:00 2001 From: Jay <csj123456> Date: 星期三, 09 四月 2025 15:36:16 +0800 Subject: [PATCH] 新增蒸汽发电机组月指标计算定时任务 --- shasteel-biz/src/main/java/com/iailab/module/shasteel/job/task/RunScheduleAirRatioTask.java | 48 +++++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 45 insertions(+), 3 deletions(-) diff --git a/shasteel-biz/src/main/java/com/iailab/module/shasteel/job/task/RunScheduleAirRatioTask.java b/shasteel-biz/src/main/java/com/iailab/module/shasteel/job/task/RunScheduleAirRatioTask.java index 142f6b3..aa2a635 100644 --- a/shasteel-biz/src/main/java/com/iailab/module/shasteel/job/task/RunScheduleAirRatioTask.java +++ b/shasteel-biz/src/main/java/com/iailab/module/shasteel/job/task/RunScheduleAirRatioTask.java @@ -1,6 +1,7 @@ package com.iailab.module.shasteel.job.task; import com.iailab.module.model.api.mcs.McsApi; +import com.iailab.module.model.api.mcs.dto.AlarmMessageRespDTO; 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; @@ -13,12 +14,11 @@ import org.springframework.stereotype.Component; import org.springframework.util.CollectionUtils; -import java.util.Calendar; -import java.util.Date; -import java.util.List; +import java.util.*; /** * 压缩空气产消比例 + * 定时触发,30 0/1 * * * ? * * @author PanZhibao * @Description @@ -33,6 +33,16 @@ @Autowired private MdkApi mdkApi; + + /** + * 调度调整方向 + */ + private static List<String> airAdjustFlag = new ArrayList<>(); + + /** + * 调度建议时间 + */ + private static Map<String, Date> airLastAlarmTime = new HashMap<>(); @Override public void run(String params) { @@ -60,6 +70,13 @@ MdkScheduleRespDTO mdkScheduleRespDTO = mdkApi.doSchedule(dto); // 结果写入测点 mdkApi.scheduleModelOut(mdkScheduleRespDTO); + + if (mdkScheduleRespDTO.getResult().get("exceptMessage") != null && + StringUtils.isNotEmpty(mdkScheduleRespDTO.getResult().get("exceptMessage").toString())) { + String adjustFlag = mdkScheduleRespDTO.getResult().get("adjustFlag").toString(); + logger.info("压缩空气用户用量预警 adjustFlag:{}", adjustFlag); + this.saveAlarmMessage("压缩空气用户用量预警", mdkScheduleRespDTO.getResult().get("exceptMessage"), scheme.getScheduleObj(), scheduleTime, adjustFlag, scheme.getWarningAdjustRate()); + } } logger.info(params + "调度方案执行完成"); } catch (Exception ex) { @@ -68,4 +85,29 @@ } logger.info("RunScheduleAirRatioTask运行完成"); } + + private void saveAlarmMessage(String title, Object content, String scheduleObj, Date scheduleTime, String adjustFlag, int warningAdjustRate) { + if (content == null) { + logger.info(title + "预警信息为空,不产生预警"); + return; + } + String contentStr = content.toString(); + if (StringUtils.isBlank(contentStr)) { + logger.info(title + "预警信息为空,不产生预警"); + return; + } + if (airAdjustFlag.contains(adjustFlag) && airLastAlarmTime.containsKey(title) && (scheduleTime.getTime() - airLastAlarmTime.get(title).getTime() <= Integer.valueOf(warningAdjustRate).longValue() * 60 * 1000)) { + logger.info("预警在有效期内"); + return; + } + airAdjustFlag.add(adjustFlag); + airLastAlarmTime.put(title, scheduleTime); + AlarmMessageRespDTO alarm = new AlarmMessageRespDTO(); + alarm.setTitle(title); + alarm.setContent(contentStr); + alarm.setAlarmObj(scheduleObj); + alarm.setAlarmType(""); + alarm.setAlarmTime(scheduleTime); + mcsApi.createAlarmMessage(alarm); + } } \ No newline at end of file -- Gitblit v1.9.3