沙钢智慧能源系统后端代码
dongyukun
2025-02-08 af2d5942652584c65579894c4a4a680bc37dad20
shasteel-biz/src/main/java/com/iailab/module/shasteel/mq/consumer/ModelElecPredictFinishConsumer.java
@@ -1,21 +1,22 @@
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.Calendar;
import java.util.Date;
import java.util.List;
import java.util.*;
/**
 * @description:
@@ -31,6 +32,17 @@
    @Resource
    private MdkApi mdkApi;
    //功率因数调度 code
    private static final List<String> elecScheduleCodes = new ArrayList<String>(){{
        add("rejuandiaodu");
        add("leyangdiaodu");
        add("lengzhadiaodu");
        add("hailidiaodu");
        add("dongqudiaodu");
    }};
    private static final String adviceKey = "advice";
    /**
     * 监听电力预测完成,执行电力调度
@@ -54,7 +66,26 @@
            MdkScheduleReqDTO mdkScheduleReqDTO = new MdkScheduleReqDTO();
            mdkScheduleReqDTO.setScheduleCode(stScheduleSchemeDTO.getCode());
            mdkScheduleReqDTO.setScheduleTime(scheduleTime);
            mdkApi.doSchedule(mdkScheduleReqDTO);
            MdkScheduleRespDTO mdkScheduleRespDTO = mdkApi.doSchedule(mdkScheduleReqDTO);
            //功率因数调度 保存调度建议
            if (elecScheduleCodes.contains(stScheduleSchemeDTO.getCode())) {
                Map<String, Object> result = mdkScheduleRespDTO.getResult();
                if (result.containsKey(adviceKey)) {
                    String advice = result.get(adviceKey).toString().trim();
                    if (StringUtils.isNotBlank(advice)) {
                        ScheduleSuggestRespDTO suggest = new ScheduleSuggestRespDTO();
                        suggest.setTitle("电力调度建议");
                        suggest.setContent(advice);
                        suggest.setSchemeId(stScheduleSchemeDTO.getId());
                        suggest.setScheduleObj(stScheduleSchemeDTO.getScheduleObj());
                        suggest.setScheduleTime(scheduleTime);
                        suggest.setSort(0);
                        mcsApi.createScheduleSuggest(suggest);
                    }
                }
            }
        }