沙钢智慧能源系统后端代码
dengzedong
2025-02-14 8153a3fc84b249b808aee7ad049b9a7034ff5e75
Merge remote-tracking branch 'origin/master'
已添加1个文件
已修改3个文件
84 ■■■■■ 文件已修改
shasteel-biz/src/main/java/com/iailab/module/shasteel/job/task/RunPredictModuleTask.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
shasteel-biz/src/main/java/com/iailab/module/shasteel/mq/common/constant/RoutingConstant.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
shasteel-biz/src/main/java/com/iailab/module/shasteel/mq/config/QueuePredictFinishConfig.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
shasteel-biz/src/main/java/com/iailab/module/shasteel/mq/consumer/ModelLDGPredictFinishConsumer.java 65 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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);
        }
    }
}