鞍钢鲅鱼圈能源管控系统后端代码
潘志宝
4 天以前 a01eec9f761ffcc11d42da0a82595e720427dd68
ansteel-biz/src/main/java/com/iailab/module/ansteel/job/task/RunScheduleModuleTask.java
@@ -1,6 +1,9 @@
package com.iailab.module.ansteel.job.task;
import com.iailab.module.data.api.point.DataPointApi;
import com.iailab.module.data.api.point.dto.ApiPointValueWriteDTO;
import com.iailab.module.model.api.mcs.McsApi;
import com.iailab.module.model.api.mcs.dto.AlarmMessageRespDTO;
import com.iailab.module.model.api.mcs.dto.ScheduleSuggestRespDTO;
import com.iailab.module.model.api.mdk.MdkApi;
import com.iailab.module.model.api.mdk.dto.MdkScheduleReqDTO;
@@ -11,6 +14,7 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.math.BigDecimal;
import java.util.Calendar;
import java.util.Map;
@@ -24,11 +28,19 @@
    private String LdgCode = "AnSteelldgstrategy"; //转炉实时调度
    private String CogCode = "AnSteelcogstrategy"; //焦炉实时调度
    private String BfgCode = "AnSteelbfgstrategy"; //高炉实时调度
    private String suggestionKey = "suggestion"; //建议key
    private String warningKey = "earlywarning"; //预警key
    private String cogLowerKey = "lower_limit_ad_cog_guiwei"; //COG下限key
    private String cogUpperKey = "upper_limit_ad_cog_guiwei"; //COG上限key
    private String bfgLowerKey = "lower_limit_ad_bfg_guiwei"; //BFG下限key
    private String bfgUupperKey = "upper_limit_ad_bfg_guiwei"; //BFG上限key
    @Autowired
    private MdkApi mdkApi;
    @Autowired
    private McsApi mcsApi;
    @Autowired
    private DataPointApi dataPointApi;
    @Override
@@ -53,11 +65,12 @@
            //日平衡调度建议保存
            Object time8 =  mdkScheduleRespDTO.getResult().get("Time8");
            Object time16 = mdkScheduleRespDTO.getResult().get("Time16");
            Object time24 =  mdkScheduleRespDTO.getResult().get("Time24");
            if (GasCode.equals(params)) {
                if(time8!=null) {
                Object time8 =  mdkScheduleRespDTO.getResult().get("Time8");
                Object time16 = mdkScheduleRespDTO.getResult().get("Time16");
                Object time24 =  mdkScheduleRespDTO.getResult().get("Time24");
                if(time8!=null && StringUtils.isNotBlank(time8.toString())) {
                    ScheduleSuggestRespDTO suggestDto = new ScheduleSuggestRespDTO();
                    suggestDto.setTitle("日平衡建议");
                    suggestDto.setContent(time8.toString());
@@ -70,7 +83,7 @@
                        logger.error("日平衡建议保存失败");
                    }
                }
                if(time16!=null) {
                if(time16!=null && StringUtils.isNotBlank(time16.toString())) {
                    ScheduleSuggestRespDTO suggestDto = new ScheduleSuggestRespDTO();
                    suggestDto.setTitle("日平衡建议");
                    suggestDto.setContent(time16.toString());
@@ -83,7 +96,7 @@
                        logger.error("日平衡建议保存失败");
                    }
                }
                if(time24!=null) {
                if(time24!=null && StringUtils.isNotBlank(time24.toString())) {
                    ScheduleSuggestRespDTO suggestDto = new ScheduleSuggestRespDTO();
                    suggestDto.setTitle("日平衡建议");
                    suggestDto.setContent(time24.toString());
@@ -97,54 +110,147 @@
                    }
                }
            }
            //转炉实时调度建议保存
            Object LDG = mdkScheduleRespDTO.getResult().get("suggestion");
            if (LdgCode.equals(params) && LDG != null) {
                ScheduleSuggestRespDTO suggestDto = new ScheduleSuggestRespDTO();
                suggestDto.setTitle("转炉实时调度建议");
                suggestDto.setContent(LDG.toString());
                suggestDto.setScheduleObj("LDG");
                suggestDto.setScheduleTime(dto.getScheduleTime());
                suggestDto.setCreateTime(calendar.getTime());
                if (mcsApi.createScheduleSuggest(suggestDto)) {
                    logger.info("转炉实时调度建议{" + LDG + "}保存成功");
                } else {
                    logger.error("转炉实时调度建议保存失败");
            //转炉实时调度
            if (LdgCode.equals(params)) {
                // 建议
                Object suggestion = mdkScheduleRespDTO.getResult().get(suggestionKey);
                if (suggestion != null && StringUtils.isNotBlank(suggestion.toString())) {
                    ScheduleSuggestRespDTO suggestDto = new ScheduleSuggestRespDTO();
                    suggestDto.setTitle("转炉实时调度建议");
                    suggestDto.setContent(suggestion.toString());
                    suggestDto.setScheduleObj("LDG");
                    suggestDto.setScheduleTime(dto.getScheduleTime());
                    suggestDto.setCreateTime(calendar.getTime());
                    if (mcsApi.createScheduleSuggest(suggestDto)) {
                        logger.info("转炉实时调度建议{" + suggestion + "}保存成功");
                    } else {
                        logger.error("转炉实时调度建议保存失败");
                    }
                }
                // 预警
                Object earlywarning = mdkScheduleRespDTO.getResult().get(warningKey);
                if (earlywarning != null && StringUtils.isNotBlank(earlywarning.toString())) {
                    AlarmMessageRespDTO alarmMessageRespDTO = new AlarmMessageRespDTO();
                    alarmMessageRespDTO.setContent(earlywarning.toString());
                    alarmMessageRespDTO.setTitle("转炉实时调度预警");
                    alarmMessageRespDTO.setAlarmObj("LDG");
                    alarmMessageRespDTO.setAlarmTime(dto.getScheduleTime());
                    alarmMessageRespDTO.setCreateTime(calendar.getTime());
                    if (mcsApi.createAlarmMessage(alarmMessageRespDTO)) {
                        logger.info("转炉实时调度预警{" + earlywarning + "}保存成功");
                    } else {
                        logger.error("转炉实时调度预警保存失败");
                    }
                }
            }
            //焦炉实时调度建议保存
            Object COG = mdkScheduleRespDTO.getResult().get("suggestion");
            if (CogCode.equals(params) && COG != null) {
                ScheduleSuggestRespDTO suggestDto = new ScheduleSuggestRespDTO();
                suggestDto.setTitle("焦炉实时调度建议");
                suggestDto.setContent(COG.toString());
                suggestDto.setScheduleObj("COG");
                suggestDto.setScheduleTime(dto.getScheduleTime());
                suggestDto.setCreateTime(calendar.getTime());
                if (mcsApi.createScheduleSuggest(suggestDto)) {
                    logger.info("焦炉实时调度建议{" + COG + "}保存成功");
                } else {
                    logger.error("焦炉实时调度建议保存失败");
            //焦炉实时调度
            if (CogCode.equals(params)) {
                // 建议
                Object suggestion = mdkScheduleRespDTO.getResult().get(suggestionKey);
                if (suggestion != null && StringUtils.isNotBlank(suggestion.toString())) {
                    ScheduleSuggestRespDTO suggestDto = new ScheduleSuggestRespDTO();
                    suggestDto.setTitle("焦炉实时调度建议");
                    suggestDto.setContent(suggestion.toString());
                    suggestDto.setScheduleObj("COG");
                    suggestDto.setScheduleTime(dto.getScheduleTime());
                    suggestDto.setCreateTime(calendar.getTime());
                    if (mcsApi.createScheduleSuggest(suggestDto)) {
                        logger.info("焦炉实时调度建议{" + suggestion + "}保存成功");
                    } else {
                        logger.error("焦炉实时调度建议保存失败");
                    }
                }
                // 预警
                Object earlywarning = mdkScheduleRespDTO.getResult().get(warningKey);
                if (earlywarning != null && StringUtils.isNotBlank(earlywarning.toString())) {
                    AlarmMessageRespDTO alarmMessageRespDTO = new AlarmMessageRespDTO();
                    alarmMessageRespDTO.setContent(earlywarning.toString());
                    alarmMessageRespDTO.setTitle("焦炉实时调度预警");
                    alarmMessageRespDTO.setAlarmObj("COG");
                    alarmMessageRespDTO.setAlarmTime(dto.getScheduleTime());
                    alarmMessageRespDTO.setCreateTime(calendar.getTime());
                    if (mcsApi.createAlarmMessage(alarmMessageRespDTO)) {
                        logger.info("焦炉实时调度预警{" + earlywarning + "}保存成功");
                    } else {
                        logger.error("焦炉实时调度预警保存失败");
                    }
                }
                // 下发上下限
                Object upper = mdkScheduleRespDTO.getResult().get(cogUpperKey);
                if (upper != null) {
                    BigDecimal value = new BigDecimal(upper.toString()).setScale(2,BigDecimal.ROUND_HALF_UP);
                    ApiPointValueWriteDTO pointValueWriteDTO = new ApiPointValueWriteDTO();
                    pointValueWriteDTO.setPointNo("F0000201831");
                    pointValueWriteDTO.setValue(value.doubleValue());
                    dataPointApi.writePointRealValue(pointValueWriteDTO);
                }
                Object lower = mdkScheduleRespDTO.getResult().get(cogLowerKey);
                if (lower != null) {
                    BigDecimal value = new BigDecimal(lower.toString()).setScale(2,BigDecimal.ROUND_HALF_UP);
                    ApiPointValueWriteDTO pointValueWriteDTO = new ApiPointValueWriteDTO();
                    pointValueWriteDTO.setPointNo("F0000201832");
                    pointValueWriteDTO.setValue(value.doubleValue());
                    dataPointApi.writePointRealValue(pointValueWriteDTO);
                }
            }
            //高炉实时调度建议保存
            Object BFG = mdkScheduleRespDTO.getResult().get("suggestion");
            if (BfgCode.equals(params) && BFG != null) {
                ScheduleSuggestRespDTO suggestDto = new ScheduleSuggestRespDTO();
                suggestDto.setTitle("高炉实时调度建议");
                suggestDto.setContent(BFG.toString());
                suggestDto.setScheduleObj("BFG");
                suggestDto.setScheduleTime(dto.getScheduleTime());
                suggestDto.setCreateTime(calendar.getTime());
                if (mcsApi.createScheduleSuggest(suggestDto)) {
                    logger.info("高炉实时调度建议{" + BFG + "}保存成功");
                } else {
                    logger.error("高炉实时调度建议保存失败");
            //高炉实时调度
            if (BfgCode.equals(params)) {
                // 建议
                Object suggestion = mdkScheduleRespDTO.getResult().get(suggestionKey);
                if (suggestion != null && StringUtils.isNotBlank(suggestion.toString())) {
                    ScheduleSuggestRespDTO suggestDto = new ScheduleSuggestRespDTO();
                    suggestDto.setTitle("高炉实时调度建议");
                    suggestDto.setContent(suggestion.toString());
                    suggestDto.setScheduleObj("BFG");
                    suggestDto.setScheduleTime(dto.getScheduleTime());
                    suggestDto.setCreateTime(calendar.getTime());
                    if (mcsApi.createScheduleSuggest(suggestDto)) {
                        logger.info("高炉实时调度建议{" + suggestion + "}保存成功");
                    } else {
                        logger.error("高炉实时调度建议保存失败");
                    }
                }
                // 预警
                Object earlywarning = mdkScheduleRespDTO.getResult().get(warningKey);
                if (earlywarning != null && StringUtils.isNotBlank(earlywarning.toString())) {
                    AlarmMessageRespDTO alarmMessageRespDTO = new AlarmMessageRespDTO();
                    alarmMessageRespDTO.setContent(earlywarning.toString());
                    alarmMessageRespDTO.setTitle("高炉实时调度预警");
                    alarmMessageRespDTO.setAlarmObj("BFG");
                    alarmMessageRespDTO.setAlarmTime(dto.getScheduleTime());
                    alarmMessageRespDTO.setCreateTime(calendar.getTime());
                    if (mcsApi.createAlarmMessage(alarmMessageRespDTO)) {
                        logger.info("高炉实时调度预警{" + earlywarning + "}保存成功");
                    } else {
                        logger.error("高炉实时调度预警保存失败");
                    }
                }
                // 下发上下限
                Object upper = mdkScheduleRespDTO.getResult().get(bfgUupperKey);
                if (upper != null) {
                    BigDecimal value = new BigDecimal(upper.toString()).setScale(2,BigDecimal.ROUND_HALF_UP);
                    ApiPointValueWriteDTO pointValueWriteDTO = new ApiPointValueWriteDTO();
                    pointValueWriteDTO.setPointNo("F0000201829");
                    pointValueWriteDTO.setValue(value.doubleValue());
                    dataPointApi.writePointRealValue(pointValueWriteDTO);
                }
                Object lower = mdkScheduleRespDTO.getResult().get(bfgLowerKey);
                if (lower != null) {
                    BigDecimal value = new BigDecimal(lower.toString()).setScale(2,BigDecimal.ROUND_HALF_UP);
                    ApiPointValueWriteDTO pointValueWriteDTO = new ApiPointValueWriteDTO();
                    pointValueWriteDTO.setPointNo("F0000201830");
                    pointValueWriteDTO.setValue(value.doubleValue());
                    dataPointApi.writePointRealValue(pointValueWriteDTO);
                }
            }
        } catch (Exception ex) {
            logger.error("runScheduleModuleTask运行异常");
            ex.printStackTrace();
            logger.error("runScheduleModuleTask运行异常",ex);
        }
        logger.info("runScheduleModuleTask运行完成");
    }