鞍钢鲅鱼圈能源管控系统后端代码
潘志宝
2025-03-31 277bf84e1b064c216fc656853d48c829e9c0e204
异常工况下的负荷移植
已修改4个文件
76 ■■■■■ 文件已修改
ansteel-biz/src/main/java/com/iailab/module/ansteel/api/controller/admin/ModelController.java 67 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ansteel-biz/src/main/java/com/iailab/module/ansteel/api/vo/PowerTransferReqVO.java 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ansteel-biz/src/main/java/com/iailab/module/ansteel/api/vo/PowerTransferRespVO.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
doc/鞍钢数据接口文档_dev_pan.doc 补丁 | 查看 | 原始文档 | blame | 历史
ansteel-biz/src/main/java/com/iailab/module/ansteel/api/controller/admin/ModelController.java
@@ -11,6 +11,7 @@
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.CommonConstant;
import io.swagger.v3.oas.annotations.Operation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
@@ -47,35 +48,55 @@
            calendar.set(Calendar.MILLISECOND,0);
            MdkScheduleReqDTO dto = new MdkScheduleReqDTO();
            dto.setScheduleTime(calendar.getTime());
            dto.setScheduleCode("AnSteelpowertransfer");
            Map<String, String> dynamicSettings = new HashMap<>();
            Integer[] xiufengOrder = {reqVO.getBfg(),
                    reqVO.getStart(),
                    reqVO.getMins()};
            dynamicSettings.put("xiufeng_order", JSONArray.toJSONString(xiufengOrder));
            dynamicSettings.put("jiaohua_BFG_down", reqVO.getLimit().toString());
            dto.setDynamicSettings(dynamicSettings);
            if ("1".equals(reqVO.getType())) {
                // 高炉休风
                dto.setScheduleCode("AnSteelpowertransfer");
                Map<String, String> dynamicSettings = new HashMap<>();
                Integer[] xiufengOrder = {reqVO.getBfg(),
                        reqVO.getStart(),
                        reqVO.getMins()};
                dynamicSettings.put("xiufeng_order", JSONArray.toJSONString(xiufengOrder));
                dynamicSettings.put("jiaohua_BFG_down", reqVO.getLimit().toString());
                dto.setDynamicSettings(dynamicSettings);
            } else if ("2".equals(reqVO.getType())) {
                // 产线检修
            }
            log.info("调度方案开始执行," + JSONObject.toJSONString(dto));
            MdkScheduleRespDTO mdkScheduleRespDTO = mdkApi.doSchedule(dto);
            log.info("调度方案执行完成," + mdkScheduleRespDTO);
            Map<String, Object> data = mdkScheduleRespDTO.getResult();
            result.setBestTotalPower(DecimalUtil.toBigDecimal(data.get("best_total_power")));
            result.setBfgAdvice(DecimalUtil.toBigDecimal(data.get("BFGAdvice")));
            result.setDemandAdvice(DecimalUtil.toBigDecimal(data.get("DemandAdvice")));
            result.setJiaohuaAdviceTime(DecimalUtil.toBigDecimal(data.get("jiaohuaAdvice"), 0).intValue());
            result.setJiaohuaAdviceAmount(DecimalUtil.toBigDecimal(data.get("jiaohuaAdvice"), 1).intValue());
            String statusCode = mdkScheduleRespDTO.getStatusCode();
            if (!CommonConstant.MDK_STATUS_100.equals(statusCode)) {
                log.info("statusCode=" + statusCode);
                return CommonResult.error(GlobalErrorCodeConstants.UNKNOWN.getCode(), "工序异常,无计算结果");
            }
            adviceList.add(DecimalUtil.toPowerTransferDetRespVO("中板工序", data.get("zhongabnAdvice")));
            adviceList.add(DecimalUtil.toPowerTransferDetRespVO("厚板工序", data.get("houbanAdvice")));
            adviceList.add(DecimalUtil.toPowerTransferDetRespVO("热轧工序", data.get("rezhaAdvice")));
            adviceList.add(DecimalUtil.toPowerTransferDetRespVO("白灰工序", data.get("baihuiAdvice")));
            adviceList.add(DecimalUtil.toPowerTransferDetRespVO("3#制氧机", data.get("zhiyangAdvice")));
            adviceList.add(DecimalUtil.toPowerTransferDetRespVO("1#LF炉", data.get("1LFAdvice")));
            adviceList.add(DecimalUtil.toPowerTransferDetRespVO("2#LF炉", data.get("2LFAdvice")));
            adviceList.add(DecimalUtil.toPowerTransferDetRespVO("B系列烧结", data.get("shaojieAdvice")));
            adviceList.add(DecimalUtil.toPowerTransferDetRespVO("CCPP", data.get("CCPPAdvice")));
            Map<String, Object> data = mdkScheduleRespDTO.getResult();
            if ("1".equals(reqVO.getType())) {
                // 高炉休风
                result.setBestTotalPower(DecimalUtil.toBigDecimal(data.get("best_total_power")));
                result.setBfgAdvice(DecimalUtil.toBigDecimal(data.get("BFGAdvice")));
                result.setDemandAdvice(DecimalUtil.toBigDecimal(data.get("DemandAdvice")));
                result.setJiaohuaAdviceTime(DecimalUtil.toBigDecimal(data.get("jiaohuaAdvice"), 0).intValue());
                result.setJiaohuaAdviceAmount(DecimalUtil.toBigDecimal(data.get("jiaohuaAdvice"), 1).intValue());
                adviceList.add(DecimalUtil.toPowerTransferDetRespVO("中板工序", data.get("zhongabnAdvice")));
                adviceList.add(DecimalUtil.toPowerTransferDetRespVO("厚板工序", data.get("houbanAdvice")));
                adviceList.add(DecimalUtil.toPowerTransferDetRespVO("热轧工序", data.get("rezhaAdvice")));
                adviceList.add(DecimalUtil.toPowerTransferDetRespVO("白灰工序", data.get("baihuiAdvice")));
                adviceList.add(DecimalUtil.toPowerTransferDetRespVO("3#制氧机", data.get("zhiyangAdvice")));
                adviceList.add(DecimalUtil.toPowerTransferDetRespVO("1#LF炉", data.get("1LFAdvice")));
                adviceList.add(DecimalUtil.toPowerTransferDetRespVO("2#LF炉", data.get("2LFAdvice")));
                adviceList.add(DecimalUtil.toPowerTransferDetRespVO("B系列烧结", data.get("shaojieAdvice")));
                adviceList.add(DecimalUtil.toPowerTransferDetRespVO("CCPP", data.get("CCPPAdvice")));
            } else if ("2".equals(reqVO.getType())) {
                // 产线检修
            }
        } catch (Exception ex) {
            ex.printStackTrace();
ansteel-biz/src/main/java/com/iailab/module/ansteel/api/vo/PowerTransferReqVO.java
@@ -16,7 +16,10 @@
public class PowerTransferReqVO implements Serializable {
    private static final long serialVersionUID = 1L;
    @Schema(description = "休风时间开始(901)")
    @Schema(description = "异常工况类型(1:高炉休风;2:产线检修)")
    private Integer type;
    @Schema(description = "休风开始时间")
    private Integer start;
    @Schema(description = "休风时长")
@@ -25,6 +28,6 @@
    @Schema(description = "休风高炉(1/2)")
    private Integer bfg;
    @Schema(description = "上限")
    @Schema(description = "焦化消耗高炉煤气下限(大于0)")
    private BigDecimal limit;
}
ansteel-biz/src/main/java/com/iailab/module/ansteel/api/vo/PowerTransferRespVO.java
@@ -33,6 +33,6 @@
    @Schema(description = "焦化减高炉煤气-数量")
    private Integer jiaohuaAdviceAmount;
    @Schema(description = "焦化减高炉煤气-数量")
    @Schema(description = "建议列表")
    private List<PowerTransferDetRespVO> adviceList;
}
doc/鞍钢数据接口文档_dev_pan.doc
Binary files differ