From 04d276a07f2774c1d9c107822f34233a58802239 Mon Sep 17 00:00:00 2001 From: dongyukun <1208714201@qq.com> Date: 星期四, 13 二月 2025 17:50:47 +0800 Subject: [PATCH] 转炉管网mq --- shasteel-biz/src/main/java/com/iailab/module/shasteel/job/task/RunPredictModuleTask.java | 4 ++ shasteel-biz/src/main/java/com/iailab/module/shasteel/mq/common/constant/RoutingConstant.java | 3 + shasteel-biz/src/main/java/com/iailab/module/shasteel/mq/consumer/ModelLDGPredictFinishConsumer.java | 65 ++++++++++++++++++++++++++++++++ shasteel-biz/src/main/java/com/iailab/module/shasteel/mq/config/QueuePredictFinishConfig.java | 12 ++++++ 4 files changed, 84 insertions(+), 0 deletions(-) diff --git a/shasteel-biz/src/main/java/com/iailab/module/shasteel/job/task/RunPredictModuleTask.java b/shasteel-biz/src/main/java/com/iailab/module/shasteel/job/task/RunPredictModuleTask.java index a99a554..1da83d1 100644 --- a/shasteel-biz/src/main/java/com/iailab/module/shasteel/job/task/RunPredictModuleTask.java +++ b/shasteel-biz/src/main/java/com/iailab/module/shasteel/job/task/RunPredictModuleTask.java @@ -56,6 +56,10 @@ msg.put("moduleType", type); msg.put("predictTime", DateUtils.format(predictTime, DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)); rabbitTemplate.convertAndSend(RoutingConstant.EXCHANGE, RoutingConstant.Iailab_Model_PredictFinish, msg); + if (type.equals(CommonConstant.NET_LDG)) { + //转炉管网预测完成发送单独消息,执行转炉调度 + rabbitTemplate.convertAndSend(RoutingConstant.EXCHANGE, RoutingConstant.Iailab_Model_PredictFinish_LDG, msg); + } if (type.equals(CommonConstant.TRIGGER_CONDITION_ELEC)) { //电力管网预测完成发送单独消息,执行电力调度 rabbitTemplate.convertAndSend(RoutingConstant.EXCHANGE, RoutingConstant.Iailab_Model_PredictFinish_Elec, msg); diff --git a/shasteel-biz/src/main/java/com/iailab/module/shasteel/mq/common/constant/RoutingConstant.java b/shasteel-biz/src/main/java/com/iailab/module/shasteel/mq/common/constant/RoutingConstant.java index c639c4b..3d634c1 100644 --- a/shasteel-biz/src/main/java/com/iailab/module/shasteel/mq/common/constant/RoutingConstant.java +++ b/shasteel-biz/src/main/java/com/iailab/module/shasteel/mq/common/constant/RoutingConstant.java @@ -9,6 +9,9 @@ // 电力预测模型完成路由 String Iailab_Model_PredictFinish_Elec = "Iailab.Model.PredictFinish.Elec"; + // 转炉预测模型完成路由 + String Iailab_Model_PredictFinish_LDG = "Iailab.Model.PredictFinish.LDG"; + //预警消息路由 String Iailab_Model_Alarm = "Iailab.Model.Alarm"; } \ No newline at end of file diff --git a/shasteel-biz/src/main/java/com/iailab/module/shasteel/mq/config/QueuePredictFinishConfig.java b/shasteel-biz/src/main/java/com/iailab/module/shasteel/mq/config/QueuePredictFinishConfig.java index 2aeb1f1..7a779e4 100644 --- a/shasteel-biz/src/main/java/com/iailab/module/shasteel/mq/config/QueuePredictFinishConfig.java +++ b/shasteel-biz/src/main/java/com/iailab/module/shasteel/mq/config/QueuePredictFinishConfig.java @@ -20,6 +20,8 @@ public final static String QUEUE_NAME_ELEC = "IaiabFastShateel.Model.PredictFinish.Elec"; + public final static String QUEUE_NAME_LDG = "IaiabFastShateel.Model.PredictFinish.LDG"; + @Bean public Queue predictFinishQueue() { return new Queue(QueuePredictFinishConfig.QUEUE_NAME); @@ -28,6 +30,11 @@ @Bean public Queue predictFinishQueueElec() { return new Queue(QueuePredictFinishConfig.QUEUE_NAME_ELEC); + } + + @Bean + public Queue predictFinishQueueLDG() { + return new Queue(QueuePredictFinishConfig.QUEUE_NAME_LDG); } @Bean @@ -45,4 +52,9 @@ Binding bindingExchangeMessageElec() { return BindingBuilder.bind(predictFinishQueueElec()).to(predictFinishExchange()).with(RoutingConstant.Iailab_Model_PredictFinish_Elec); } + + @Bean + Binding bindingExchangeMessageLDG() { + return BindingBuilder.bind(predictFinishQueueLDG()).to(predictFinishExchange()).with(RoutingConstant.Iailab_Model_PredictFinish_LDG); + } } diff --git a/shasteel-biz/src/main/java/com/iailab/module/shasteel/mq/consumer/ModelLDGPredictFinishConsumer.java b/shasteel-biz/src/main/java/com/iailab/module/shasteel/mq/consumer/ModelLDGPredictFinishConsumer.java new file mode 100644 index 0000000..f497290 --- /dev/null +++ b/shasteel-biz/src/main/java/com/iailab/module/shasteel/mq/consumer/ModelLDGPredictFinishConsumer.java @@ -0,0 +1,65 @@ +package com.iailab.module.shasteel.mq.consumer; + +import com.iailab.module.model.api.mcs.McsApi; +import com.iailab.module.model.api.mcs.dto.ScheduleSuggestRespDTO; +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 com.iailab.module.shasteel.mq.common.constant.CommonConstant; +import com.iailab.module.shasteel.mq.config.QueuePredictFinishConfig; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import org.springframework.amqp.core.Message; +import org.springframework.amqp.rabbit.annotation.RabbitListener; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.util.*; + +/** + * @description: + * @author: dyk + * @date: 2025/2/13 17:28 + **/ +@Slf4j +@Component +public class ModelLDGPredictFinishConsumer { + + @Resource + private McsApi mcsApi; + + @Resource + private MdkApi mdkApi; + + /** + * 监听转炉预测完成,执行转炉调度 + * + * @param message + */ + @RabbitListener(queues = QueuePredictFinishConfig.QUEUE_NAME_LDG) + public void listen(Message message) { + String messageBody = new String(message.getBody()); + log.info("开始执行转炉调度,messageBody:" + messageBody); + // 查找需要执行的转炉调度方案 + List<StScheduleSchemeDTO> scheduleSchemeList = mcsApi.listScheduleScheme(ScheduleTriggerMethodEnum.EVENT.getCode(), CommonConstant.NET_LDG); + // 转炉预测完成,执行转炉调度模型 + Calendar calendar = Calendar.getInstance(); + calendar.set(Calendar.MILLISECOND, 0); + calendar.set(Calendar.SECOND, 0); + calendar.set(Calendar.MINUTE, 0); + calendar.set(Calendar.HOUR_OF_DAY, 0); + Date scheduleTime = calendar.getTime(); + for (StScheduleSchemeDTO stScheduleSchemeDTO : scheduleSchemeList) { + MdkScheduleReqDTO mdkScheduleReqDTO = new MdkScheduleReqDTO(); + mdkScheduleReqDTO.setScheduleCode(stScheduleSchemeDTO.getCode()); + mdkScheduleReqDTO.setScheduleTime(scheduleTime); + MdkScheduleRespDTO mdkScheduleRespDTO = mdkApi.doSchedule(mdkScheduleReqDTO); + //转炉调度下发 + mdkApi.scheduleModelOut(mdkScheduleRespDTO); + } + + + } +} \ No newline at end of file -- Gitblit v1.9.3