From 3180878150f6e22b30394f745008d81cb80af12d Mon Sep 17 00:00:00 2001
From: Jay <csj123456>
Date: 星期四, 17 四月 2025 13:58:02 +0800
Subject: [PATCH] 新增累计真实值和累计预测值的导出

---
 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/common/utils/ExcelUtil.java |   35 +++++++++++++++++++++++++++++++----
 1 files changed, 31 insertions(+), 4 deletions(-)

diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/common/utils/ExcelUtil.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/common/utils/ExcelUtil.java
index 620f028..a933e7d 100644
--- a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/common/utils/ExcelUtil.java
+++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/common/utils/ExcelUtil.java
@@ -12,8 +12,10 @@
 import java.io.IOException;
 import java.io.OutputStream;
 import java.lang.reflect.Field;
-import java.text.SimpleDateFormat;
-import java.util.*;
+import java.util.HashMap;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
 import java.util.logging.Level;
 import java.util.logging.Logger;
 
@@ -172,12 +174,14 @@
         cellStyle4.setDataFormat(df.getFormat("#,##0.000000"));
 
         // 创建标题
-        String[] title = new String[1 + respVO.getLegend().size() * 3];
+        String[] title = new String[1 + respVO.getLegend().size() * 5];
         title[0] = "日期时间";
         for (int i = 0; respVO.getLegend().size() > i; i++) {
             title[i * 3 + 1] = respVO.getLegend().get(i) + ":真实值";
             title[i * 3 + 2] = respVO.getLegend().get(i) + ":预测值T+N";
             title[i * 3 + 3] = respVO.getLegend().get(i) + ":预测值T+L";
+            title[i * 3 + 4] = respVO.getLegend().get(i) + ":累计真实值";
+            title[i * 3 + 5] = respVO.getLegend().get(i) + ":累计预测值";
         }
         HSSFRow rowTitle = sheet.createRow(0);
         HSSFCell hc;
@@ -209,6 +213,8 @@
                 Map<String, Object> realDataMap = new HashMap<String, Object>();
                 Map<String, Object> preDataNMap = new HashMap<String, Object>();
                 Map<String, Object> preDataLMap = new HashMap<String, Object>();
+                Map<String, Object> cumulantRealDataMap = new HashMap<String, Object>();
+                Map<String, Object> cumulantPreDataMap = new HashMap<String, Object>();
                 //真实值
                 List<Object[]> realData = viewData.getRealData();
                 if (!CollectionUtils.isEmpty(realData)) {
@@ -225,10 +231,23 @@
                 }
                 //预测值T+L
                 List<Object[]> preDataL = viewData.getPreDataL();
-
                 if (!CollectionUtils.isEmpty(preDataL)) {
                     for (Object[] item : preDataL) {
                         preDataLMap.put(item[0].toString(), item[1]);
+                    }
+                }
+                //累计真实值
+                List<Object[]> cumulantRealData = viewData.getCumulantRealData();
+                if (!CollectionUtils.isEmpty(cumulantRealData)) {
+                    for (Object[] item : cumulantRealData) {
+                        cumulantRealDataMap.put(item[0].toString(), item[1]);
+                    }
+                }
+                //累计预测值
+                List<Object[]> cumulantPreData = viewData.getCumulantPreData();
+                if (!CollectionUtils.isEmpty(cumulantPreData)) {
+                    for (Object[] item : cumulantPreData) {
+                        cumulantPreDataMap.put(item[0].toString(), item[1]);
                     }
                 }
 
@@ -247,6 +266,14 @@
                         hc = rowBody.createCell(j * 3 + 3);
                         hc.setCellValue(preDataLMap.get(respVO.getCategories().get(i)).toString());
                     }
+                    if (cumulantRealDataMap.get(respVO.getCategories().get(i)) != null) {
+                        hc = rowBody.createCell(j * 3 + 4);
+                        hc.setCellValue(cumulantRealDataMap.get(respVO.getCategories().get(i)).toString());
+                    }
+                    if (cumulantPreDataMap.get(respVO.getCategories().get(i)) != null) {
+                        hc = rowBody.createCell(j * 3 + 5);
+                        hc.setCellValue(cumulantPreDataMap.get(respVO.getCategories().get(i)).toString());
+                    }
                 }
 
                 j++;

--
Gitblit v1.9.3