| | |
| | | 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.*; |
| | | |
| | | /** |
| | | * 压缩空气产消比例 |
| | |
| | | |
| | | @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) { |
| | |
| | | |
| | | if (mdkScheduleRespDTO.getResult().get("exceptMessage") != null && |
| | | StringUtils.isNotEmpty(mdkScheduleRespDTO.getResult().get("exceptMessage").toString())) { |
| | | this.saveAlarmMessage("压缩空气用户用量预警", mdkScheduleRespDTO.getResult().get("exceptMessage"), scheme.getScheduleObj(), scheduleTime); |
| | | 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 + "调度方案执行完成"); |
| | |
| | | logger.info("RunScheduleAirRatioTask运行完成"); |
| | | } |
| | | |
| | | private void saveAlarmMessage(String title, Object content, String scheduleObj, Date scheduleTime) { |
| | | private void saveAlarmMessage(String title, Object content, String scheduleObj, Date scheduleTime, String adjustFlag, int warningAdjustRate) { |
| | | if (content == null) { |
| | | logger.info(title + "预警信息为空,不产生预警"); |
| | | return; |
| | |
| | | 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); |