沙钢智慧能源系统后端代码
MQ
liriming
2024-12-11 d66e4475926e13188ccbd8f284b293c6eaceacbe
提交 | 用户 | 时间
c9ff6a 1 package com.iailab.module.shasteel.mq.consumer;
2
3 import com.iailab.module.model.api.mcs.McsApi;
d66e44 4 import com.iailab.module.model.api.mcs.dto.StScheduleSchemeDTO;
L 5 import com.iailab.module.model.api.mdk.MdkApi;
6 import com.iailab.module.model.api.mdk.dto.MdkScheduleReqDTO;
7 import com.iailab.module.shasteel.mq.common.RoutingConstant;
c9ff6a 8 import com.iailab.module.shasteel.mq.config.QueueModelAlarmConfig;
9 import lombok.extern.slf4j.Slf4j;
10 import org.springframework.amqp.core.Message;
11 import org.springframework.amqp.rabbit.annotation.RabbitListener;
12 import org.springframework.stereotype.Component;
13
14 import javax.annotation.Resource;
d66e44 15 import java.util.HashMap;
L 16 import java.util.List;
17 import java.util.Map;
c9ff6a 18
19 /**
20  * 监听报警信息
21  *
22  * @author PanZhibao
23  * @Description
24  * @createTime 2024年12月11日
25  */
26 @Slf4j
27 @Component
28 public class ModelAlarmConsumer {
29
30     @Resource
31     private McsApi mcsApi;
32
d66e44 33     @Resource
L 34     private MdkApi mdkApi;
35
c9ff6a 36     /**
37      * 事件标识
38      */
39     private final String EVENT_FLAG = "GasAlarm";
40
41     /**
42      * 监听报警信息,执行调度
43      *
44      * @param message
45      */
46     @RabbitListener(queues = QueueModelAlarmConfig.QUEUE_NAME)
47     public void listen(Message message) {
d66e44 48         String routingKey = message.getMessageProperties().getReceivedRoutingKey();
L 49         log.info("routingKey:" + routingKey);
50         String messageBody = new String(message.getBody());
51         log.info("messageBody:" + messageBody);
c9ff6a 52         // 查找需要执行的调度方案
d66e44 53         Map<String, Object> params = new HashMap<>();
L 54         params.put("trigger_condition", routingKey);
55         List<StScheduleSchemeDTO> scheduleSchemeList = mcsApi.listScheduleScheme(params);//根据触发条件获取调度方案列表
56         for(StScheduleSchemeDTO stScheduleSchemeDTO : scheduleSchemeList){
57             MdkScheduleReqDTO mdkScheduleReqDTO = new MdkScheduleReqDTO();
58             mdkScheduleReqDTO.setScheduleCode(stScheduleSchemeDTO.getCode());
59             mdkScheduleReqDTO.setScheduleTime(stScheduleSchemeDTO.getScheduleTime());
60 //            MdkScheduleRespDTO mdkScheduleRespDTO = mdkApi.doSchedule(mdkScheduleReqDTO);//执行调度方案
61 //            String result = mdkScheduleRespDTO.getResult().toString();
62 //            System.out.println(result);
63 //            AlarmMessageRespDTO alarmMessageRespDTO = new AlarmMessageRespDTO();
64 //            mcsApi.createAlarmMessage(alarmMessageRespDTO);
65         }
66 //        AlarmMessageRespDTO alarmMessageRespDTO = alarmMessage.getAlarmMessageRespDTO();
67 //        JSONObject contentJson = JSONObject.parseObject(alarmMessageRespDTO.getContent());
68 //        String overLimitTime = contentJson.get("overLimitTime").toString();
c9ff6a 69
70         // 根据模型返回结果,保存调度建议
71
72     }
73 }