shasteel-biz/src/main/java/com/iailab/module/shasteel/mq/common/constant/CommonConstant.java
@@ -1,8 +1,5 @@ package com.iailab.module.shasteel.mq.common.constant; import java.math.BigDecimal; /** * @Description: 通用常量 */ @@ -31,4 +28,22 @@ //电力管网触发条件 String TRIGGER_CONDITION_ELEC = "NET_ELE"; String NET_COG = "NET_COG"; String NET_BFG = "NET_BFG"; String NET_ELE = "NET_ELE"; String NET_O2 = "NET_O2"; String NET_LDG = "NET_LDG"; String NET_STEAM = "NET_STEAM"; String NET_N2 = "NET_N2"; String NET_TEST = "NET_TEST"; String NET_GAS = "NET_GAS"; } shasteel-biz/src/main/java/com/iailab/module/shasteel/mq/consumer/ModelAlarmConsumer.java
@@ -40,10 +40,7 @@ @Resource private MdkApi mdkApi; /** * 事件标识 */ private final String EVENT_FLAG = "GasAlarm"; private static String lastRunGasSchedule = ""; /** * 监听报警信息,执行调度 @@ -61,10 +58,25 @@ return; } Date predictTime = DateUtils.parse(messageJson.get("predictTime").toString(), DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND); if (new Date().getTime() - predictTime.getTime() > 1000 * 60 * 3) { log.info("过滤旧消息"); return; } // 查找需要执行的调度方案 List<StScheduleSchemeDTO> scheduleSchemeList = mcsApi.listScheduleScheme(ScheduleTriggerMethodEnum.EVENT.getCode(), routingKey); if (CollectionUtils.isEmpty(scheduleSchemeList)) { log.info("routingKey:" + routingKey + ",调度方案为空。"); return; } for(StScheduleSchemeDTO stScheduleSchemeDTO : scheduleSchemeList){ String runKey = "GasSchedule_" + stScheduleSchemeDTO.getCode() + "_" + predictTime.getTime(); log.info("runKey:" + runKey); log.info("lastRunGasSchedule:" + lastRunGasSchedule); if (lastRunGasSchedule.equals(runKey)) { continue; } lastRunGasSchedule = runKey; MdkScheduleReqDTO mdkScheduleReqDTO = new MdkScheduleReqDTO(); mdkScheduleReqDTO.setScheduleCode(stScheduleSchemeDTO.getCode()); mdkScheduleReqDTO.setScheduleTime(stScheduleSchemeDTO.getScheduleTime()); shasteel-biz/src/main/java/com/iailab/module/shasteel/mq/consumer/ModelPredictFinishConsumer.java
@@ -39,6 +39,8 @@ @Resource private RabbitTemplate rabbitTemplate; private static String lastRunAlarm = ""; /** * 监听预测完成,产生预警消息 * @@ -55,8 +57,10 @@ if (CollectionUtils.isEmpty(messageJson)) { return; } // 预测时间 Date predictTime = DateUtils.parse(messageJson.get("predictTime").toString(), DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND); // 预测模块/预测管网 String moduleType = messageJson.get("moduleType").toString(); // 查询相关预警配置 List<AlarmConfigRespDTO> configList = mcsApi.listAlarmConfig(new HashMap<String, Object>()); if (CollectionUtils.isEmpty(configList)) { @@ -66,8 +70,16 @@ List<String> outputIdList = configList.stream().map(item -> { return item.getOutId(); }).collect(Collectors.toList()); List<AlarmMessageRespDTO> alarmList = new ArrayList<>(); if (moduleType.equals(CommonConstant.NET_BFG) || moduleType.equals(CommonConstant.NET_COG) || moduleType.equals(CommonConstant.NET_LDG)) { String runKey = "GasAlarm_" + predictTime.getTime(); log.info("runKey:" + runKey); log.info("lastRunAlarm:" + lastRunAlarm); if (lastRunAlarm.equals(runKey)) { return; } lastRunAlarm = runKey; for (AlarmConfigRespDTO configItem : configList) { PreDataJsonReqVO reqVO = new PreDataJsonReqVO(); reqVO.setPredictTime(predictTime); @@ -83,7 +95,6 @@ }).collect(Collectors.toList()).stream().mapToDouble(Double::doubleValue).sum(); culData.put(key, new BigDecimal(nv)); }); List<Object[]> result = preData.get(configItem.getOutId()); if (CollectionUtils.isEmpty(result)) { @@ -149,6 +160,7 @@ alarmList.add(alarmMessage); } } } if (!CollectionUtils.isEmpty(alarmList)) { log.info("发送预警消息"); Map<String, Object> msg = new HashMap<>(2);