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); 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"; } 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); } } 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); } } }