From 9006e89fdd7dcbdd69d40325fffe471c1768b402 Mon Sep 17 00:00:00 2001
From: liriming <1343021927@qq.com>
Date: 星期一, 12 五月 2025 13:13:31 +0800
Subject: [PATCH] 预测新增累计曲线

---
 ansteel-biz/src/main/java/com/iailab/module/ansteel/common/constant/CommonConstant.java   |    2 ++
 ansteel-biz/src/main/java/com/iailab/module/ansteel/api/dto/PreDataViewDTO.java           |    3 +++
 ansteel-biz/src/main/java/com/iailab/module/ansteel/api/service/impl/DataServiceImpl.java |   25 ++++++++++++++++++++-----
 3 files changed, 25 insertions(+), 5 deletions(-)

diff --git a/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/dto/PreDataViewDTO.java b/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/dto/PreDataViewDTO.java
index bb8c4d5..6639ccd 100644
--- a/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/dto/PreDataViewDTO.java
+++ b/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/dto/PreDataViewDTO.java
@@ -80,4 +80,7 @@
     @Schema(description = "历史预测值")
     private List<Object[]> preData;
 
+    @Schema(description = "累积值")
+    private List<Object[]> culData;
+
 }
\ No newline at end of file
diff --git a/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/service/impl/DataServiceImpl.java b/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/service/impl/DataServiceImpl.java
index 5eaadf4..600c80e 100644
--- a/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/service/impl/DataServiceImpl.java
+++ b/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/service/impl/DataServiceImpl.java
@@ -3,16 +3,17 @@
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.iailab.framework.common.util.date.DateUtils;
 import com.iailab.framework.common.util.object.ConvertUtils;
-import com.iailab.module.ansteel.api.dao.*;
+import com.iailab.module.ansteel.api.dao.MainProcessIndexDayDao;
+import com.iailab.module.ansteel.api.dao.MainProcessIndexTeamDao;
 import com.iailab.module.ansteel.api.dto.*;
+import com.iailab.module.ansteel.api.service.DataService;
+import com.iailab.module.ansteel.common.constant.CommonConstant;
 import com.iailab.module.ansteel.common.enums.ProcessConfDataTypeEnum;
 import com.iailab.module.ansteel.power.dao.*;
 import com.iailab.module.ansteel.power.entity.PowerCapacitorStatusEntity;
 import com.iailab.module.ansteel.power.entity.PowerControlDetEntity;
 import com.iailab.module.ansteel.power.entity.PowerControlMainEntity;
 import com.iailab.module.ansteel.power.entity.PowerNetFactorEntity;
-import com.iailab.module.ansteel.api.service.DataService;
-import com.iailab.module.ansteel.common.constant.CommonConstant;
 import com.iailab.module.data.api.ind.IndItemApi;
 import com.iailab.module.data.api.ind.dto.ApiIndItemQueryDTO;
 import com.iailab.module.data.api.ind.dto.ApiIndItemValueDTO;
@@ -32,9 +33,8 @@
 
 import java.math.BigDecimal;
 import java.util.*;
+import java.util.concurrent.atomic.AtomicReference;
 import java.util.stream.Collectors;
-
-import static com.iailab.framework.common.pojo.CommonResult.success;
 
 @Slf4j
 @Service
@@ -180,6 +180,7 @@
         int lengthRight = tMap.get(CommonConstant.LENGTH_RIGHT) == null ? predictItem.getPredictLength() : new BigDecimal(tMap.get(CommonConstant.LENGTH_RIGHT)).intValue();
         String trendsDataH = tMap.get(CommonConstant.TRENDSDATA_H) == null ? null : tMap.get(CommonConstant.TRENDSDATA_H);
         String trendsDataL = tMap.get(CommonConstant.TRENDSDATA_L) == null ? null : tMap.get(CommonConstant.TRENDSDATA_L);
+        String culIndex = tMap.get(CommonConstant.CUL_INDEX) == null ? null : tMap.get(CommonConstant.CUL_INDEX);//累计量
 
         Date[] timeArray = calResultTime(predictItem, reqVO.getStartTime(), reqVO.getEndTime(), lengthLeft, lengthRight);
         Date startTime = timeArray[1];
@@ -221,6 +222,20 @@
             preDataView.setTrendsDataL(newList);
         }
 
+        if (StringUtils.isNotBlank(culIndex)) {
+            if(!CollectionUtils.isEmpty(preDataView.getCurData())){
+                AtomicReference<Double> culData = new AtomicReference<>(0d);
+                List<Object[]> newList = preDataView.getCurData().stream()
+                        .map(item -> {
+                            culData.updateAndGet(v -> v + Double.parseDouble(String.format("%.2f", Double.parseDouble(item[1].toString()) / 60)));
+                            item[1] = culData;
+                            return item;
+                        })
+                        .collect(Collectors.toList());
+                preDataView.setCulData(newList);
+            }
+        }
+
         preDataView.setPreData(resultOld.getDataView().getPreDataL());
         result.setPreDataView(preDataView);
         return result;
diff --git a/ansteel-biz/src/main/java/com/iailab/module/ansteel/common/constant/CommonConstant.java b/ansteel-biz/src/main/java/com/iailab/module/ansteel/common/constant/CommonConstant.java
index c841e37..09d0f1c 100644
--- a/ansteel-biz/src/main/java/com/iailab/module/ansteel/common/constant/CommonConstant.java
+++ b/ansteel-biz/src/main/java/com/iailab/module/ansteel/common/constant/CommonConstant.java
@@ -48,6 +48,8 @@
 
     String RESULT_INDEX = "RESULT_INDEX";
 
+    String CUL_INDEX = "CUL_INDEX";
+
     String LENGTH_LEFT = "LENGTH_LEFT";
 
     String LENGTH_RIGHT = "LENGTH_RIGHT";

--
Gitblit v1.9.3