From 277bf84e1b064c216fc656853d48c829e9c0e204 Mon Sep 17 00:00:00 2001
From: 潘志宝 <979469083@qq.com>
Date: 星期一, 31 三月 2025 16:27:22 +0800
Subject: [PATCH] 异常工况下的负荷移植

---
 ansteel-biz/src/main/java/com/iailab/module/ansteel/api/controller/admin/ModelController.java |   67 ++++++++++++++++++++++-----------
 doc/鞍钢数据接口文档_dev_pan.doc                                                                      |    0 
 ansteel-biz/src/main/java/com/iailab/module/ansteel/api/vo/PowerTransferRespVO.java           |    2 
 ansteel-biz/src/main/java/com/iailab/module/ansteel/api/vo/PowerTransferReqVO.java            |    7 ++-
 4 files changed, 50 insertions(+), 26 deletions(-)

diff --git a/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/controller/admin/ModelController.java b/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/controller/admin/ModelController.java
index 1503e7a..ad95115 100644
--- a/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/controller/admin/ModelController.java
+++ b/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();
diff --git a/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/vo/PowerTransferReqVO.java b/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/vo/PowerTransferReqVO.java
index 62b3546..aba6d93 100644
--- a/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/vo/PowerTransferReqVO.java
+++ b/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;
 }
\ No newline at end of file
diff --git a/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/vo/PowerTransferRespVO.java b/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/vo/PowerTransferRespVO.java
index f59fa27..b95d138 100644
--- a/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/vo/PowerTransferRespVO.java
+++ b/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;
 }
\ No newline at end of file
diff --git "a/doc/\351\236\215\351\222\242\346\225\260\346\215\256\346\216\245\345\217\243\346\226\207\346\241\243_dev_pan.doc" "b/doc/\351\236\215\351\222\242\346\225\260\346\215\256\346\216\245\345\217\243\346\226\207\346\241\243_dev_pan.doc"
index 8f9b9a7..5b180c6 100644
--- "a/doc/\351\236\215\351\222\242\346\225\260\346\215\256\346\216\245\345\217\243\346\226\207\346\241\243_dev_pan.doc"
+++ "b/doc/\351\236\215\351\222\242\346\225\260\346\215\256\346\216\245\345\217\243\346\226\207\346\241\243_dev_pan.doc"
Binary files differ

--
Gitblit v1.9.3