From 7b576876e69f7bd6dffca135e1576264820fffbb Mon Sep 17 00:00:00 2001
From: 潘志宝 <979469083@qq.com>
Date: 星期四, 26 六月 2025 14:29:22 +0800
Subject: [PATCH] 获取转炉煤气回收消耗总量

---
 ansteel-biz/src/main/java/com/iailab/module/ansteel/api/dto/GasLdgCulRespDTO.java           |   24 ++++++++++++
 ansteel-biz/src/main/java/com/iailab/module/ansteel/api/controller/admin/GasController.java |   69 +++++++++++++++++++++++++++++++++-
 2 files changed, 90 insertions(+), 3 deletions(-)

diff --git a/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/controller/admin/GasController.java b/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/controller/admin/GasController.java
index ba5e8aa..71f2949 100644
--- a/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/controller/admin/GasController.java
+++ b/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/controller/admin/GasController.java
@@ -1,19 +1,25 @@
 package com.iailab.module.ansteel.api.controller.admin;
 
 import com.iailab.framework.common.pojo.CommonResult;
-import com.iailab.module.ansteel.api.dto.PowerNetFactorDTO;
+import com.iailab.framework.common.util.date.DateUtils;
+import com.iailab.module.ansteel.api.dto.GasLdgCulRespDTO;
 import com.iailab.module.ansteel.api.dto.PreDataViewSimpleDTO;
-import com.iailab.module.ansteel.gas.entity.GasPredConfEntity;
 import com.iailab.module.ansteel.gas.service.GasPredConfService;
-import com.iailab.module.ansteel.power.entity.PowerNetFactorEntity;
+import com.iailab.module.ansteel.page.service.PageParamService;
+import com.iailab.module.model.api.mcs.McsApi;
+import com.iailab.module.model.api.mcs.dto.PreDataJsonReqVO;
 import io.swagger.v3.oas.annotations.Operation;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.util.CollectionUtils;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 
+import java.math.BigDecimal;
+import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
 
@@ -32,9 +38,66 @@
     @Autowired
     private GasPredConfService gasPredConfService;
 
+    @Autowired
+    private PageParamService pageParamService;
+
+    @Autowired
+    private McsApi mcsApi;
+
     @GetMapping("/pred-conf/list")
     @Operation(summary = "煤气预测配置")
     public CommonResult<List<PreDataViewSimpleDTO>> getGasPredConfList(@RequestParam Map<String, Object> params) {
         return CommonResult.success(gasPredConfService.list(params));
     }
+
+    @GetMapping("/pred-conf/list")
+    @Operation(summary = "获取转炉煤气回收消耗总量")
+    public CommonResult<GasLdgCulRespDTO> getGasLdgCul(@RequestParam Map<String, Object> params) {
+        GasLdgCulRespDTO result = new GasLdgCulRespDTO();
+        String type = (String) params.get("type");
+        String predictTime = (String) params.get("predictTime");
+        if (StringUtils.isBlank(type) || StringUtils.isBlank(predictTime)) {
+            return CommonResult.success(result);
+        }
+        PreDataJsonReqVO reqVO = new PreDataJsonReqVO();
+        reqVO.setPredictTime(DateUtils.parse(predictTime, DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND));
+        List<String> outputIdList = new ArrayList<>();
+        String xhOut = pageParamService.getValue("iLDG_XH_" + type);
+        if (StringUtils.isNotBlank(xhOut)) {
+            outputIdList.add(xhOut);
+        }
+        String hsOut = pageParamService.getValue("iLDG_HS_" + type);
+        if (StringUtils.isNotBlank(hsOut)) {
+            outputIdList.add(hsOut);
+        }
+        reqVO.setOutputIdList(outputIdList);
+        if (CollectionUtils.isEmpty(outputIdList)) {
+            return CommonResult.success(result);
+        }
+        log.info("getPreDataCur,reqVO={}", reqVO);
+        Map<String, List<Object[]>> preData = mcsApi.getPreDataCur(reqVO);
+        if (CollectionUtils.isEmpty(preData)) {
+            return CommonResult.success(result);
+        }
+        if (preData.containsKey(xhOut)) {
+            List<Object[]> data = preData.get(xhOut);
+            double total = 0.0;
+            for (int i = 0; i < data.size(); i++) {
+                Object[] obj = data.get(i);
+                total = total + new BigDecimal(obj[1].toString()).doubleValue();
+            }
+            result.setXh(new BigDecimal(total).divide(new BigDecimal(60), 2, BigDecimal.ROUND_HALF_UP));
+        }
+        if (preData.containsKey(hsOut)) {
+            List<Object[]> data = preData.get(hsOut);
+            double total = 0.0;
+            for (int i = 0; i < data.size(); i++) {
+                Object[] obj = data.get(i);
+                total = total + new BigDecimal(obj[1].toString()).doubleValue();
+            }
+            result.setHs(new BigDecimal(total).divide(new BigDecimal(60), 2, BigDecimal.ROUND_HALF_UP));
+        }
+
+        return CommonResult.success(result);
+    }
 }
diff --git a/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/dto/GasLdgCulRespDTO.java b/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/dto/GasLdgCulRespDTO.java
new file mode 100644
index 0000000..0b6ffde
--- /dev/null
+++ b/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/dto/GasLdgCulRespDTO.java
@@ -0,0 +1,24 @@
+package com.iailab.module.ansteel.api.dto;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+
+/**
+ * @author PanZhibao
+ * @Description
+ * @createTime 2025年06月26日
+ */
+@Schema(description = "转炉煤气回收消耗总量")
+@Data
+public class GasLdgCulRespDTO implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    @Schema(description = "消耗总量")
+    private BigDecimal xh;
+
+    @Schema(description = "回收总量")
+    private BigDecimal hs;
+}
\ No newline at end of file

--
Gitblit v1.9.3