鞍钢鲅鱼圈能源管控系统后端代码
潘志宝
3 天以前 c508cba402a4f522b039c27348c71c432f2056f6
负荷移植建议与方案 修改
已修改4个文件
138 ■■■■■ 文件已修改
ansteel-biz/src/main/java/com/iailab/module/ansteel/api/controller/admin/ModelController.java 94 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ansteel-biz/src/main/java/com/iailab/module/ansteel/api/vo/PowerTransferReqVO.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ansteel-biz/src/main/java/com/iailab/module/ansteel/api/vo/PowerTransferRespVO.java 29 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ansteel-biz/src/main/java/com/iailab/module/ansteel/common/constant/CommonConstant.java 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ansteel-biz/src/main/java/com/iailab/module/ansteel/api/controller/admin/ModelController.java
@@ -76,32 +76,44 @@
        MdkScheduleReqDTO fhyzDto = new MdkScheduleReqDTO();
        PowerTransferRespVO result = new PowerTransferRespVO();
        List<PowerTransferDetRespVO> adviceList = new ArrayList<>();
        List<PowerTransferDetRespVO> demandAdviceList = new ArrayList<>();
        List<PowerTransferDetRespVO> gasAdviceList = new ArrayList<>();
        try {
            log.info("PowerTransferReqVO=" + JSONObject.toJSONString(reqVO));
            Calendar calendar = Calendar.getInstance();
            calendar.set(Calendar.SECOND,0);
            calendar.set(Calendar.MILLISECOND,0);
            // 0 建议编码
            List<ChartParamDTO> demandParamList = mcsApi.getChartParamList(com.iailab.module.ansteel.common.constant.CommonConstant.FHYZ_DEMAND_ADVICE);
            Map<String, ChartParamDTO> demandAdviceCodeMap = new HashMap<>();
            List<String> demandAdviceCodeList = new ArrayList<>();
            if (demandParamList != null) {
                for (ChartParamDTO chartParamDTO : demandParamList) {
                    demandAdviceCodeMap.put(chartParamDTO.getParamCode(), chartParamDTO);
                    demandAdviceCodeList.add(chartParamDTO.getParamCode());
                }
            }
            List<ChartParamDTO> gasParamList = mcsApi.getChartParamList(com.iailab.module.ansteel.common.constant.CommonConstant.FHYZ_GAS_ADVICE);
            Map<String, ChartParamDTO> gasAdviceCodeMap = new HashMap<>();
            List<String> gasAdviceCodeList = new ArrayList<>();
            if (gasParamList != null) {
                for (ChartParamDTO chartParamDTO : gasParamList) {
                    gasAdviceCodeMap.put(chartParamDTO.getParamCode(), chartParamDTO);
                    gasAdviceCodeList.add(chartParamDTO.getParamCode());
                }
            }
            String nowH = DateUtils.format(calendar.getTime(), "hh:mm");
            switch (TransferTypeEnum.getEumByCode(reqVO.getType())) {
                case XF:
                    // 0 建议编码
                    List<ChartParamDTO> chartParamList = mcsApi.getChartParamList(com.iailab.module.ansteel.common.constant.CommonConstant.FHYZ_ADVICE_CODE);
                    Map<String, Integer> fhyzAdviceCodeMap = new HashMap<>();
                    List<String> fhyzAdviceCodeList = new ArrayList<>();
                    if (chartParamList != null) {
                        for (ChartParamDTO chartParamDTO : chartParamList) {
                            fhyzAdviceCodeMap.put(chartParamDTO.getParamCode(), Integer.parseInt(chartParamDTO.getParamValue()));
                            fhyzAdviceCodeList.add(chartParamDTO.getParamCode());
                        }
                    }
                    // 1 日平衡
                    /*日平衡动态参数
                    zhiling_params  [休风高炉,休风时长]
                    jiaohua_params  [是否减焦化BFG,下限]
                    load_change_state   [热轧,厚板,中板,A系列烧结,B系列烧结]
                    testlist   [热轧,厚板,中板,A系列烧结,B系列烧结]
                                        GASrezhaAdvice
                                        GAShoubanAdvice
                                        GASzhongbanAdvice
@@ -125,7 +137,7 @@
                    for (int i = 0; i < loadChangeArr.length; i++) {
                        loadChangeState.add(reqVO.getAdviceCodeList().contains(loadChangeArr[i]) ? 1 : 0);
                    }
                    rphSettings.put("load_change_state", JSONArray.toJSONString(loadChangeState));
                    rphSettings.put("testlist", JSONArray.toJSONString(loadChangeState));
                    rphScheduleReqDTO.setDynamicSettings(rphSettings);
                    log.info("负荷移植调用日平衡开始执行," + JSONObject.toJSONString(rphScheduleReqDTO));
                    MdkScheduleRespDTO rphRespDTO = mdkApi.doSchedule(rphScheduleReqDTO);
@@ -137,7 +149,6 @@
                    }
                    String gasUseAllnNew = rphRespDTO.getResult().get("Gas_Use_All_new").toString();
                    log.info("gasUseAllnNew=" + gasUseAllnNew);
                    // 高炉休风
                    fhyzDto.setScheduleTime(calendar.getTime());
@@ -163,7 +174,7 @@
                        choiceParams.add(-1);
                    } else {
                        for(String adviceCode : reqVO.getAdviceCodeList()) {
                            choiceParams.add(fhyzAdviceCodeMap.get(adviceCode));
                            choiceParams.add(Integer.parseInt(demandAdviceCodeMap.get(adviceCode).getParamValue()));
                        }
                    }
                    dynamicSettings.put("choice_params", JSONArray.toJSONString(choiceParams));
@@ -192,50 +203,21 @@
            switch (TransferTypeEnum.getEumByCode(reqVO.getType())) {
                case XF:
                    // 高炉休风
                    result.setBestTotalPower(DecimalUtil.toBigDecimal(data.get("best_total_power")));//负荷调整总量
                    result.setBfgGap(DecimalUtil.toBigDecimal(data.get("bfg_gap")));//煤气送管网缺口
                    result.setDemand(data.get("demand"));//需量缺口
                    result.setCogGapTime(data.get("cog_gap") == null ? 0 : DecimalUtil.toBigDecimal(data.get("cog_gap"), 0).intValue()); //焦化减高炉煤气-时间
                    result.setCogGapAmount(data.get("cog_gap") == null ? 0 : DecimalUtil.toBigDecimal(data.get("cog_gap"), 1).intValue());//焦化减高炉煤气-数量
                    result.setBfgShengyue(DecimalUtil.toBigDecimal(data.get("BFG_shengyu")));
                    result.setDemand(data.get("demand"));
                    result.setGasGap(data.get("gas_gap"));
                    result.setFadian(data.get("fadian"));
                    if (data.get("zhongbanAdvice") != null) {
                        adviceList.add(DecimalUtil.toPowerTransferDetRespVO("中板工序", data.get("zhongbanAdvice")));
                    for (String adviceCode : demandAdviceCodeList) {
                        if (data.get(adviceCode) != null) {
                            demandAdviceList.add(DecimalUtil.toPowerTransferDetRespVO(demandAdviceCodeMap.get(adviceCode).getParamName(), data.get(adviceCode)));
                        }
                    }
                    if (data.get("houbanAdvice") != null) {
                        adviceList.add(DecimalUtil.toPowerTransferDetRespVO("厚板工序", data.get("houbanAdvice")));
                    for (String adviceCode : gasAdviceCodeList) {
                        if (data.get(adviceCode) != null) {
                            demandAdviceList.add(DecimalUtil.toPowerTransferDetRespVO(gasAdviceCodeMap.get(adviceCode).getParamName(), data.get(adviceCode)));
                        }
                    }
                    if (data.get("rezhaAdvice") != null) {
                        adviceList.add(DecimalUtil.toPowerTransferDetRespVO("热轧工序", data.get("rezhaAdvice")));
                    }
                    if (data.get("baihuiAdvice") != null) {
                        adviceList.add(DecimalUtil.toPowerTransferDetRespVO("白灰工序", data.get("baihuiAdvice")));
                    }
                    if (data.get("3#zhiyangAdvice") != null) {
                        adviceList.add(DecimalUtil.toPowerTransferDetRespVO("3#制氧机", data.get("3#zhiyangAdvice")));
                    }
                    if (data.get("1#LFAdvice") != null) {
                        adviceList.add(DecimalUtil.toPowerTransferDetRespVO("1#LF炉", data.get("1#LFAdvice")));
                    }
                    if (data.get("2#LFAdvice") != null) {
                        adviceList.add(DecimalUtil.toPowerTransferDetRespVO("2#LF炉", data.get("2#LFAdvice")));
                    }
                    if (data.get("shaojieAdvice") != null) {
                        adviceList.add(DecimalUtil.toPowerTransferDetRespVO("B系列烧结", data.get("shaojieAdvice")));
                    }
                    if (data.get("CCPPAdvice") != null) {
                        adviceList.add(DecimalUtil.toPowerTransferDetRespVO("CCPP", data.get("CCPPAdvice")));
                    }
                    if (data.get("135Advice") != null) {
                        adviceList.add(DecimalUtil.toPowerTransferDetRespVO("135机组", data.get("135Advice")));
                    }
                    if (data.get("1#2#zhiyangAdvice") != null) {
                        adviceList.add(DecimalUtil.toPowerTransferDetRespVO("1#2#制氧机", data.get("1#2#zhiyangAdvice")));
                    }
                    if (data.get("2#lianganglianzhuAdvice") != null) {
                        adviceList.add(DecimalUtil.toPowerTransferDetRespVO("2#炼钢连铸", data.get("2#lianganglianzhuAdvice")));
                    }
                    result.setAdviceList(adviceList);
                    result.setDemandAdviceList(demandAdviceList);
                    log.info("XFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXF");
                    break;
               case JX:
ansteel-biz/src/main/java/com/iailab/module/ansteel/api/vo/PowerTransferReqVO.java
@@ -23,7 +23,7 @@
    @Schema(description = "当前时间")
    private Integer now;
    @Schema(description = "休风开始时间")
    @Schema(description = "休风时间")
    private Integer start;
    @Schema(description = "休风时长")
@@ -32,12 +32,12 @@
    @Schema(description = "休风高炉(1/2)")
    private Integer bfg;
    @Schema(description = "焦化消耗高炉煤气下限(大于0)")
    private BigDecimal limit;
    @Schema(description = "是否减焦化BFG(0:否,1:是)")
    private Integer isReduceCog;
    @Schema(description = "焦化消耗高炉煤气下限(大于0)")
    private BigDecimal limit;
    @Schema(description = "中板停机时长")
    private Integer tingjiZhong;
ansteel-biz/src/main/java/com/iailab/module/ansteel/api/vo/PowerTransferRespVO.java
@@ -4,7 +4,6 @@
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.List;
/**
@@ -18,30 +17,18 @@
    private static final long serialVersionUID = 1L;
    @Schema(description = "负荷调整总量")
    private BigDecimal bestTotalPower;
    @Schema(description = "煤气送管网缺口")
    private BigDecimal bfgGap;
    @Schema(description = "煤气缺口")
    private BigDecimal gasGap;
    @Schema(description = "需量缺口")
    private Object demand;
    @Schema(description = "煤气缺口")
    private Object gasGap;
    @Schema(description = "发电")
    private String fadian;
    private Object fadian;
    @Schema(description = "焦化减高炉煤气-时间")
    private Integer cogGapTime;
    @Schema(description = "工序需量管控建议")
    private List<PowerTransferDetRespVO> demandAdviceList;
    @Schema(description = "焦化减高炉煤气-数量")
    private Integer cogGapAmount;
    @Schema(description = "BFG剩余")
    private BigDecimal bfgShengyue;
    @Schema(description = "建议列表")
    private List<PowerTransferDetRespVO> adviceList;
    @Schema(description = "工序煤气管控建议")
    private List<PowerTransferDetRespVO> gasAdviceList;
}
ansteel-biz/src/main/java/com/iailab/module/ansteel/common/constant/CommonConstant.java
@@ -87,6 +87,9 @@
    //电容器编码
    String POWER_CODE = "POWER_CODE";
    //负荷移植建议编码
    String FHYZ_ADVICE_CODE = "FHYZ_ADVICE_CODE";
    //负荷移植-工序需量管控
    String FHYZ_DEMAND_ADVICE = "FHYZ_DEMAND_ADVICE";
    //负荷移植-工序煤气管控
    String FHYZ_GAS_ADVICE = "FHYZ_GAS_ADVICE";
}