From 1e530831761d706b020e53c836ace35a2c90b88d Mon Sep 17 00:00:00 2001
From: 潘志宝 <979469083@qq.com>
Date: 星期二, 15 四月 2025 08:48:55 +0800
Subject: [PATCH] 功率因数-电网拓扑

---
 ansteel-biz/src/main/java/com/iailab/module/ansteel/api/controller/admin/ModelController.java |  103 ++++++++++++++++++++++++++++++++++-----------------
 1 files changed, 69 insertions(+), 34 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 41a8562..9278972 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
@@ -4,9 +4,11 @@
 import com.alibaba.fastjson.JSONObject;
 import com.iailab.framework.common.exception.enums.GlobalErrorCodeConstants;
 import com.iailab.framework.common.pojo.CommonResult;
+import com.iailab.framework.common.util.date.DateUtils;
 import com.iailab.module.ansteel.api.vo.PowerTransferDetRespVO;
 import com.iailab.module.ansteel.api.vo.PowerTransferReqVO;
 import com.iailab.module.ansteel.api.vo.PowerTransferRespVO;
+import com.iailab.module.ansteel.common.enums.TransferTypeEnum;
 import com.iailab.module.ansteel.common.utils.DecimalUtil;
 import com.iailab.module.model.api.mdk.MdkApi;
 import com.iailab.module.model.api.mdk.dto.MdkScheduleReqDTO;
@@ -54,22 +56,28 @@
             calendar.set(Calendar.MILLISECOND,0);
             MdkScheduleReqDTO dto = new MdkScheduleReqDTO();
             dto.setScheduleTime(calendar.getTime());
-
-            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())) {
-                // 产线检修
-
-
+            String nowH = DateUtils.format(calendar.getTime(), "hh:mm");
+            switch (TransferTypeEnum.getEumByCode(reqVO.getType())) {
+                case XF:
+                    // 高炉休风
+                    dto.setScheduleCode("AnSteelpowertransfer");
+                    Map<String, String> dynamicSettings = new HashMap<>();
+                    Integer[] xiufengOrder = {
+                            reqVO.getBfg(),
+                            reqVO.getStart(),
+                            reqVO.getNow() == null ? Integer.parseInt(nowH) : reqVO.getNow(),
+                            reqVO.getMins()};
+                    dynamicSettings.put("xiufeng_order", JSONArray.toJSONString(xiufengOrder));
+                    dynamicSettings.put("jiaohua_BFG_down", reqVO.getLimit().toString());
+                    dto.setDynamicSettings(dynamicSettings);
+                    break;
+                case JX:
+                    // 产线检修
+                    break;
+                default:
+                    return CommonResult.error(GlobalErrorCodeConstants.NOT_FOUND, "Type参数错误");
             }
+
             log.info("调度方案开始执行," + JSONObject.toJSONString(dto));
             MdkScheduleRespDTO mdkScheduleRespDTO = mdkApi.doSchedule(dto);
             log.info("调度方案执行完成," + mdkScheduleRespDTO);
@@ -81,33 +89,60 @@
             }
 
             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());
+            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(DecimalUtil.toBigDecimal(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());//焦化减高炉煤气-数量
 
-                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")));
+                    if (data.get("zhongabnAdvice") != null) {
+                        adviceList.add(DecimalUtil.toPowerTransferDetRespVO("中板工序", data.get("zhongabnAdvice")));
+                    }
+                    if (data.get("houbanAdvice") != null) {
+                        adviceList.add(DecimalUtil.toPowerTransferDetRespVO("厚板工序", data.get("houbanAdvice")));
+                    }
+                    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("zhiyangAdvice") != null) {
+                        adviceList.add(DecimalUtil.toPowerTransferDetRespVO("3#制氧机", data.get("zhiyangAdvice")));
+                    }
+                    if (data.get("1LFAdvice") != null) {
+                        adviceList.add(DecimalUtil.toPowerTransferDetRespVO("1#LF炉", data.get("1LFAdvice")));
+                    }
+                    if (data.get("2LFAdvice") != null) {
+                        adviceList.add(DecimalUtil.toPowerTransferDetRespVO("2#LF炉", data.get("2LFAdvice")));
+                    }
+                    if (data.get("shaojieAdvice") != null) {
+                        adviceList.add(DecimalUtil.toPowerTransferDetRespVO("B系列烧结", data.get("shaojieAdvice")));
+                    }
+                    if (data.get("shaojieAdvice") != null) {
+                        adviceList.add(DecimalUtil.toPowerTransferDetRespVO("CCPP", data.get("CCPPAdvice")));
+                    }
+                    result.setAdviceList(adviceList);
+                    log.info("XFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXF");
+                    break;
+               case JX:
+                   // 产线检修
 
-            } else if ("2".equals(reqVO.getType())) {
-                // 产线检修
+                   log.info("JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX");
+                    break;
+               default:
+
+                    break;
 
             }
-
         } catch (Exception ex) {
             ex.printStackTrace();
             return CommonResult.error(GlobalErrorCodeConstants.UNKNOWN.getCode(), ex.getMessage());
         }
+        log.info("result=" + JSONObject.toJSONString(result));
         return CommonResult.success(result);
     }
 }
\ No newline at end of file

--
Gitblit v1.9.3