From cd7f83d5b2c9a36ad571e016d743ab61824dbfe5 Mon Sep 17 00:00:00 2001
From: whycxzp <glperry@163.com>
Date: 星期二, 10 六月 2025 16:44:50 +0800
Subject: [PATCH] 测试调整格式

---
 src/main/java/com/whyc/service/ExcelService.java |  385 ++++++++++++++++++++++++++++++++++++++++--------------
 1 files changed, 283 insertions(+), 102 deletions(-)

diff --git a/src/main/java/com/whyc/service/ExcelService.java b/src/main/java/com/whyc/service/ExcelService.java
index 4927078..dac33f0 100644
--- a/src/main/java/com/whyc/service/ExcelService.java
+++ b/src/main/java/com/whyc/service/ExcelService.java
@@ -572,30 +572,20 @@
         CellRangeAddress region = new CellRangeAddress(0, 0,  0, columnCount-1);
         sheet.addMergedRegion(region);
 
-        //TODO 绗簩琛岀殑鍚堝苟鍒楁槸鏍规嵁鍙樺姩鐨�,鍚庣画璋冩暣
-        CellRangeAddress region21 = new CellRangeAddress(1, 1,  0, 1);
-        sheet.addMergedRegion(region21);
-
-        CellRangeAddress region22 = new CellRangeAddress(1, 1,  3, 9);
-        sheet.addMergedRegion(region22);
-
-        CellRangeAddress region23 = new CellRangeAddress(1, 1,  10, 13);
-        sheet.addMergedRegion(region23);
-
-        CellRangeAddress region24 = new CellRangeAddress(1, 1,  14, 17);
-        sheet.addMergedRegion(region24);
-
-        CellRangeAddress region25 = new CellRangeAddress(1, 1,  18, 24);
-        sheet.addMergedRegion(region25);
-
         //绗笁琛�,绗簲琛�,绗叚琛岀殑鍚堝苟鍒�,鍓嶄袱涓崟鍏冩ā鍧楁槸鍥哄畾鐨�,鍏朵腑1涓悎骞跺崟鍏�
-        CellRangeAddress region31 = new CellRangeAddress(2, 2,  2, 3);
-        CellRangeAddress region51 = new CellRangeAddress(4, 4,  2, 3);
-        CellRangeAddress region61 = new CellRangeAddress(5, 5,  2, 3);
-        sheet.addMergedRegion(region31);
-        sheet.addMergedRegion(region51);
-        sheet.addMergedRegion(region61);
+        CellRangeAddress region31 = new CellRangeAddress(2, 2,  1, 2);
+        CellRangeAddress region32 = new CellRangeAddress(2, 2,  3, 4);
+        CellRangeAddress region51 = new CellRangeAddress(4, 4,  1, 2);
+        CellRangeAddress region52 = new CellRangeAddress(4, 4,  3, 4);
+        CellRangeAddress region61 = new CellRangeAddress(5, 5,  1, 2);
+        CellRangeAddress region62 = new CellRangeAddress(5, 5,  3, 4);
 
+        sheet.addMergedRegion(region31);
+        sheet.addMergedRegion(region32);
+        sheet.addMergedRegion(region51);
+        sheet.addMergedRegion(region52);
+        sheet.addMergedRegion(region61);
+        sheet.addMergedRegion(region62);
 
         // 鍒涘缓灞呬腑鏍峰紡
         CellStyle style = workbook.createCellStyle();
@@ -605,80 +595,94 @@
         cellRow1.setCellStyle(style);
 
         //绗簩琛屾槸鏀剧數鍩烘湰淇℃伅
+        //鍥犱负鏄姩鎬佺殑,娌″姙娉曞儚妯℃澘涓�鏍�.
+        //钃勭數姹犵粍鍙�:绗竴鍒�
+        //宸ヤ綔绁ㄤ俊鎭�:浜屼笁鍒�
+        //鏀剧數鏃ユ湡:绗洓鍒楄捣姝�-鏀剧數缁撴潫闈欑疆0.5h
+        //鏀剧數鐢垫祦,鏃堕暱,瀹归噺:鏀剧數缁撴潫鍚庨潤缃�0.5h璧峰埌鍏呮弧鐢�
+        //鐜娓╂箍搴�:澶囨敞
         XSSFRow row1 = sheet.createRow(1);
         XSSFCell cell1Row2 = row1.createCell(0);
         cell1Row2.setCellValue("钃勭數姹犵粍鍙�:" + battInfo.getBattGroupName());
 
-        XSSFCell cell2Row2 = row1.createCell(2);
-        cell2Row2.setCellValue("");
 
-        XSSFCell cell3Row2 = row1.createCell(3);
-        cell3Row2.setCellValue("宸ヤ綔绁ㄥ彿锛�2273925\n" +
+        XSSFCell cell2Row2 = row1.createCell(1);
+        cell2Row2.setCellValue("宸ヤ綔绁ㄥ彿锛�2273925\n" +
                 "宸ヤ綔璐熻矗浜猴細椹簯鐕昞n" +
                 "宸ヤ綔鎴愬憳锛氬懆绱犳枃銆佹潕蹇楁爣銆佺帇鏈堢伩绛�");
 
-        XSSFCell cell4Row2 = row1.createCell(10);
-        cell4Row2.setCellValue("鏀剧數鏃ユ湡锛�2021.10.30\n" +
+        XSSFCell cell3Row2 = row1.createCell(3);
+        cell3Row2.setCellValue("鏀剧數鏃ユ湡锛�2021.10.30\n" +
                 "鏀剧數寮�濮嬫椂闂达細10:00\n" +
                 "鏀剧數缁撴潫鏃堕棿锛�19:47");
 
-        XSSFCell cell5Row2 = row1.createCell(14);
-        cell5Row2.setCellValue("鏀剧數鐢垫祦锛圓锛夛細35\n" +
+        XSSFCell cell4Row2 = row1.createCell(5);
+        cell4Row2.setCellValue("鏀剧數鐢垫祦锛圓锛夛細35\n" +
                 "鏀剧數鏃堕暱锛堟椂.鍒嗭級锛�600min\n" +
                 "鏀剧數瀹归噺锛圓h锛夛細300");
 
-        XSSFCell cell6Row2 = row1.createCell(18);
-        cell6Row2.setCellValue("鐜娓╁害锛堚剝锛夛細24.5\n" +
+        XSSFCell cell5Row2 = row1.createCell(columnCount-1);
+        cell5Row2.setCellValue("鐜娓╁害锛堚剝锛夛細24.5\n" +
                 "鐜婀垮害锛�%锛夛細46.7");
-        //绗簩琛岃缃姞绮�
-        //setRowStyle(sheet.getRow(1),cellStyleFontBold);
+
+        //浜岃鐨勫悎骞跺垪鏄牴鎹彉鍔ㄧ殑
+        row1.setHeightInPoints(57);
+        sheet.getRow(0).setHeightInPoints(42);
+        CellRangeAddress region22 = new CellRangeAddress(1, 1,  1, 2);
+        sheet.addMergedRegion(region22);
+
+        CellRangeAddress region23 = new CellRangeAddress(1, 1,  3, 4);
+        sheet.addMergedRegion(region23);
+
+        CellRangeAddress region24 = new CellRangeAddress(1, 1,  5, columnCount-2);
+        sheet.addMergedRegion(region24);
 
         //绗笁琛屾槸鐢垫睜鍙峰拰鐢靛帇绛夌浉鍏虫姮澶�
         //绗洓琛屾槸鐢靛帇鍒楀拰娓╁害鍒楁爣璇�
         XSSFRow row2 = sheet.createRow(2);
         XSSFRow row3 = sheet.createRow(3);
-        XSSFRow row4 = sheet.createRow(4);
-        XSSFRow row5 = sheet.createRow(5);
 
         row2.createCell(0).setCellValue("钃勭數姹犲彿锛�#锛�");
         row2.createCell(1).setCellValue("钃勭數姹犳诞鍏呯數鍘嬪�硷紙V锛�");
-        row2.createCell(2).setCellValue("鏀剧數鍓嶈搫鐢垫睜寮�璺數鍘嬪�硷紙V锛�");
+        row2.createCell(3).setCellValue("鏀剧數鍓嶈搫鐢垫睜寮�璺數鍘嬪�硷紙V锛�");
 
         row3.createCell(0).setCellValue("椤圭洰");
         row3.createCell(1).setCellValue("-1锛堢數鍘嬶級");
-        row3.createCell(2).setCellValue("0锛堢數鍘嬶級");
-        row3.createCell(3).setCellValue("0锛堟俯搴︼級");
+        row3.createCell(2).setCellValue("-1锛堟俯搴︼級");
+        row3.createCell(3).setCellValue("0锛堢數鍘嬶級");
+        row3.createCell(4).setCellValue("0锛堟俯搴︼級");
 
         //鏀剧數鐗瑰畾鐢靛帇鍊�
-        int columnIndex = 3;
+        int columnIndex = 5;
         if(dischargeColumnCount > 0){
-            row2.createCell(5).setCellValue("鏀剧數0.5h钃勭數姹犵數鍘嬪�硷紙V锛�");
-            CellRangeAddress region33 = new CellRangeAddress(2, 2,  4, 5);
-            CellRangeAddress region53 = new CellRangeAddress(4, 4,  4, 5);
-            CellRangeAddress region63 = new CellRangeAddress(5, 5,  4, 5);
+            //row2.createCell(5).setCellValue("鏀剧數0.5h钃勭數姹犵數鍘嬪�硷紙V锛�");
+            row2.createCell(columnCount).setCellValue("鏀剧數0.5h钃勭數姹犵數鍘嬪�硷紙V锛�");
+            CellRangeAddress region33 = new CellRangeAddress(2, 2,  5, 6);
+            CellRangeAddress region53 = new CellRangeAddress(4, 4,  5, 6);
+            CellRangeAddress region63 = new CellRangeAddress(5, 5,  5, 6);
 
             sheet.addMergedRegion(region33);
             sheet.addMergedRegion(region53);
             sheet.addMergedRegion(region63);
 
-            row3.createCell(4).setCellValue("0.5锛堢數鍘嬶級");
-            row3.createCell(5).setCellValue("0.5锛堟俯搴︼級");
+            row3.createCell(5).setCellValue("0.5锛堢數鍘嬶級");
+            row3.createCell(6).setCellValue("0.5锛堟俯搴︼級");
             columnIndex+=2;
             if(dischargeColumnCount > 2){ //鍚堝苟鍗曞厓鏍间簡,鎵�浠ョ储寮�+2
-                row2.createCell(7).setCellValue("鏀剧數1h钃勭數姹犵數鍘嬪�硷紙V锛�");
-                CellRangeAddress region34 = new CellRangeAddress(2, 2,  6, 7);
-                CellRangeAddress region54 = new CellRangeAddress(4, 2,  6, 7);
-                CellRangeAddress region64 = new CellRangeAddress(5, 2,  6, 7);
+                //row2.createCell(7).setCellValue("鏀剧數1h钃勭數姹犵數鍘嬪�硷紙V锛�");
+                row2.createCell(columnCount).setCellValue("鏀剧數1h钃勭數姹犵數鍘嬪�硷紙V锛�");
+                CellRangeAddress region34 = new CellRangeAddress(2, 2,  7, 8);
+                CellRangeAddress region54 = new CellRangeAddress(4, 4,  7, 8);
+                CellRangeAddress region64 = new CellRangeAddress(5, 5,  7, 8);
 
                 sheet.addMergedRegion(region34);
                 sheet.addMergedRegion(region54);
                 sheet.addMergedRegion(region64);
 
-                row3.createCell(6).setCellValue("1锛堢數鍘嬶級");
-                row3.createCell(7).setCellValue("1锛堟俯搴︼級");
+                row3.createCell(7).setCellValue("1锛堢數鍘嬶級");
+                row3.createCell(8).setCellValue("1锛堟俯搴︼級");
                 columnIndex+=2;
                 if(dischargeColumnCount > 4){
-                    columnIndex++;
                     //鏀剧數nh钃勭數姹犵數鍘嬪�硷紙V锛�,n浠�2寮�濮�
                     for(int i = 4;i < dischargeColumnCount;i++){
                         row2.createCell(i+5).setCellValue("鏀剧數" + (i-2) + "h钃勭數姹犵數鍘嬪�硷紙V锛�");
@@ -691,28 +695,27 @@
         }
 
         //鍏呯數鐗瑰畾鐢靛帇鍊�
-        row2.createCell(++columnIndex).setCellValue("鏀剧數缁撴潫0.5h鍚庤搫鐢垫睜寮�璺數鍘嬪�硷紙V锛�");
+        row2.createCell(columnIndex).setCellValue("鏀剧數缁撴潫0.5h鍚庤搫鐢垫睜寮�璺數鍘嬪�硷紙V锛�");
         row3.createCell(columnIndex).setCellValue("10.5");
+        columnIndex++;
         if(chargeColumnCount > 0){
-            columnIndex++;
             row2.createCell(columnIndex).setCellValue("鍏呯數0.5h");
-
+            columnIndex++;
             if(chargeColumnCount > 1){
                 //鍏呯數nh,n浠�1寮�濮�
                 for(int i = 1;i < chargeColumnCount;i++){
-                    columnIndex++;
                     row2.createCell(columnIndex).setCellValue("鍏呯數" + (i) + "h钃勭數姹犵數鍘嬪�硷紙V锛�");
                     row3.createCell(columnIndex);//濉厖鍗曞厓鏍肩殑浣滅敤
+                    columnIndex++;
                 }
 
             }
         }
-        row2.createCell(++columnIndex).setCellValue("鍏呮弧鍚庤搫鐢垫睜鐢靛帇鍊硷紙V)锛堢數娴佷负0锛�");
+        row2.createCell(columnIndex).setCellValue("鍏呮弧鍚庤搫鐢垫睜鐢靛帇鍊硷紙V)锛堢數娴佷负0锛�");
         row3.createCell(columnIndex).setCellValue("11");
-        row2.createCell(++columnIndex).setCellValue("澶囨敞");
+        columnIndex++;
+        row2.createCell(columnIndex).setCellValue("澶囨敞");
         row3.createCell(columnIndex);//濉厖鍗曞厓鏍肩殑浣滅敤
-
-
 
         //浠巖owIndex=4寮�濮�
         int rowIndex = 4;
@@ -837,21 +840,20 @@
             //rowTemp.createCell(4).setCellValue("鏀剧數鍓嶈搫鐢垫睜寮�璺俯搴﹀��:"+(j+1)+"#");
             if(j == 0){
                 rowTemp.createCell(1).setCellValue(fcVolList.get(j).getGroupVol());
-                rowTemp.createCell(2).setCellValue(preVolList.get(j).getGroupVol());
-                rowTemp.createCell(3);
+                rowTemp.createCell(3).setCellValue(preVolList.get(j).getGroupVol());
             }else if (j == 1){
                 rowTemp.createCell(1).setCellValue(fcVolList.get(j).getGroupCurr());
-                rowTemp.createCell(2).setCellValue(preVolList.get(j).getGroupCurr());
-                rowTemp.createCell(3);
+                rowTemp.createCell(3).setCellValue(preVolList.get(j).getGroupCurr());
             }else {
                 rowTemp.createCell(1).setCellValue(fcVolList.get(j).getMonVol());
-                rowTemp.createCell(2).setCellValue(preVolList.get(j).getMonVol());
-                rowTemp.createCell(3).setCellValue(preVolList.get(j).getMonTmp());
+                rowTemp.createCell(2).setCellValue(fcVolList.get(j).getMonVol());
+                rowTemp.createCell(3).setCellValue(preVolList.get(j).getMonVol());
+                rowTemp.createCell(4).setCellValue(preVolList.get(j).getMonTmp());
             }
 
 
             //鏀剧數鐗瑰畾鐢靛帇鍊�
-            int columnIndexTemp = 3;
+            int columnIndexTemp = 5;
             Calendar dischargeCalendar = Calendar.getInstance();
             dischargeCalendar.setTime(dischargeStartTime);
             if(dischargeColumnCount > 0){
@@ -864,28 +866,70 @@
                 dischargeListOneOriginal.sort(Comparator.comparingInt(BattRealTimeDataHistory::getMonNum));
                 addStatistics(dischargeListOneOriginal,"vol");
                 //鎬荤數娴佹�荤數鍘嬪垪鍏�
+                Float groupVolDisOne = dischargeListOneOriginal.get(0).getGroupVol();
+                Float groupCurrDisOne = dischargeListOneOriginal.get(0).getGroupCurr();
 
+                BattRealTimeDataHistory groupVolDataDisOne = new BattRealTimeDataHistory();
+                groupVolDataDisOne.setMonNum(-2);
+                groupVolDataDisOne.setGroupVol(groupVolDisOne);
+
+                BattRealTimeDataHistory groupCurrDataDisOne = new BattRealTimeDataHistory();
+                groupCurrDataDisOne.setMonNum(-1);
+                groupCurrDataDisOne.setGroupCurr(groupCurrDisOne);
+
+                dischargeListOne.add(groupVolDataDisOne);
+                dischargeListOne.add(groupCurrDataDisOne);
+                dischargeListOne.addAll(dischargeListOneOriginal);
 
                 //rowTemp.createCell(5).setCellValue("鏀剧數0.5h鐢靛帇鍊硷紙V锛�:"+(j+1)+"#");
                 //rowTemp.createCell(6).setCellValue("鏀剧數0.5h娓╁害鍊�:"+(j+1)+"#");
-                rowTemp.createCell(4).setCellValue(dischargeListOne.get(j).getMonVol());
-                rowTemp.createCell(5).setCellValue(dischargeListOne.get(j).getMonTmp());
+                if(j==0){
+                    //rowTemp.createCell(5).setCellValue(dischargeListOne.get(j).getGroupVol());
+                    rowTemp.createCell(columnIndexTemp).setCellValue(dischargeListOne.get(j).getGroupVol());
+                }else if (j==1){
+                    rowTemp.createCell(columnIndexTemp).setCellValue(dischargeListOne.get(j).getGroupCurr());
+                }else {
+                    rowTemp.createCell(columnIndexTemp).setCellValue(dischargeListOne.get(j).getMonVol());
+                    rowTemp.createCell(columnIndexTemp+1).setCellValue(dischargeListOne.get(j).getMonTmp());
+                }
                 columnIndexTemp+=2;
                 if(dischargeColumnCount > 2){ //鍚堝苟鍗曞厓鏍间簡,鎵�浠ョ储寮�+2
                     //鏃堕棿鍦ㄦ祴璇曞紑濮嬫椂闂�+1h
                     dischargeCalendar.setTime(dischargeStartTime);
                     dischargeCalendar.add(Calendar.HOUR,1);
                     Date recordTimeTwo = dischargeCalendar.getTime();
-                    List<BattRealTimeDataHistory> dischargeListTwo = battRTDataHisService.getRecordList(battGroupId,recordTimeTwo);
-                    dischargeListTwo.sort(Comparator.comparingInt(BattRealTimeDataHistory::getMonNum));
-                    addStatistics(dischargeListTwo,"vol");
+                    List<BattRealTimeDataHistory> dischargeListTwo = new ArrayList<>();
+                    List<BattRealTimeDataHistory> dischargeListTwoOriginal = battRTDataHisService.getRecordList(battGroupId,recordTimeTwo);
+                    dischargeListTwoOriginal.sort(Comparator.comparingInt(BattRealTimeDataHistory::getMonNum));
+                    addStatistics(dischargeListTwoOriginal,"vol");
+                    //鎬荤數娴佹�荤數鍘嬪垪鍏�
+                    Float groupVolDisTwo = dischargeListTwoOriginal.get(0).getGroupVol();
+                    Float groupCurrDisTwo = dischargeListTwoOriginal.get(0).getGroupCurr();
+
+                    BattRealTimeDataHistory groupVolDataDisTwo = new BattRealTimeDataHistory();
+                    groupVolDataDisTwo.setMonNum(-2);
+                    groupVolDataDisTwo.setGroupVol(groupVolDisTwo);
+
+                    BattRealTimeDataHistory groupCurrDataDisTwo = new BattRealTimeDataHistory();
+                    groupCurrDataDisTwo.setMonNum(-1);
+                    groupCurrDataDisTwo.setGroupCurr(groupCurrDisTwo);
+
+                    dischargeListTwo.add(groupVolDataDisTwo);
+                    dischargeListTwo.add(groupCurrDataDisTwo);
+                    dischargeListTwo.addAll(dischargeListTwoOriginal);
+
                     //rowTemp.createCell(7).setCellValue("鏀剧數1h鐢靛帇鍊硷紙V锛�:"+(j+1)+"#");
                     //rowTemp.createCell(8).setCellValue("鏀剧數1h娓╁害鍊�:"+(j+1)+"#");
-                    rowTemp.createCell(6).setCellValue(dischargeListTwo.get(j).getMonVol());
-                    rowTemp.createCell(7).setCellValue(dischargeListTwo.get(j).getMonTmp());
+                    if (j==0) {
+                        rowTemp.createCell(columnIndexTemp).setCellValue(dischargeListTwo.get(j).getGroupVol());
+                    }else if (j==1){
+                        rowTemp.createCell(columnIndexTemp).setCellValue(dischargeListTwo.get(j).getGroupCurr());
+                    }else {
+                        rowTemp.createCell(columnIndexTemp).setCellValue(dischargeListTwo.get(j).getMonVol());
+                        rowTemp.createCell(columnIndexTemp+1).setCellValue(dischargeListTwo.get(j).getMonTmp());
+                    }
                     columnIndexTemp+=2;
                     if(dischargeColumnCount > 4){
-                        columnIndexTemp++;
                         //鏀剧數nh钃勭數姹犵數鍘嬪�硷紙V锛�,n浠�2寮�濮�
                         for(int i = 4;i < dischargeColumnCount;i++){
                             int dischargeHour = i-2;
@@ -893,11 +937,33 @@
                             dischargeCalendar.setTime(dischargeStartTime);
                             dischargeCalendar.add(Calendar.HOUR,dischargeHour);
                             Date recordTimeN = dischargeCalendar.getTime();
-                            List<BattRealTimeDataHistory> dischargeListN = battRTDataHisService.getRecordList(battGroupId,recordTimeN);
-                            dischargeListN.sort(Comparator.comparingInt(BattRealTimeDataHistory::getMonNum));
-                            addStatistics(dischargeListN,"vol");
+                            List<BattRealTimeDataHistory> dischargeListN = new ArrayList<>();
+                            List<BattRealTimeDataHistory> dischargeListNOriginal = battRTDataHisService.getRecordList(battGroupId,recordTimeN);
+                            dischargeListNOriginal.sort(Comparator.comparingInt(BattRealTimeDataHistory::getMonNum));
+                            addStatistics(dischargeListNOriginal,"vol");
+                            //鎬荤數娴佹�荤數鍘嬪垪鍏�
+                            Float groupVolDisN = dischargeListNOriginal.get(0).getGroupVol();
+                            Float groupCurrDisN = dischargeListNOriginal.get(0).getGroupCurr();
+
+                            BattRealTimeDataHistory groupVolDataDisN = new BattRealTimeDataHistory();
+                            groupVolDataDisN.setMonNum(-2);
+                            groupVolDataDisN.setGroupVol(groupVolDisN);
+
+                            BattRealTimeDataHistory groupCurrDataDisN = new BattRealTimeDataHistory();
+                            groupCurrDataDisN.setMonNum(-1);
+                            groupCurrDataDisN.setGroupCurr(groupCurrDisN);
+
+                            dischargeListN.add(groupVolDataDisN);
+                            dischargeListN.add(groupCurrDataDisN);
+                            dischargeListN.addAll(dischargeListNOriginal);
                             //rowTemp.createCell(i+5).setCellValue("鏀剧數" + dischargeHour + "h钃勭數姹犵數鍘嬪�硷紙V锛�");
-                            rowTemp.createCell(i+5).setCellValue(dischargeListN.get(j).getMonVol());
+                            if(j==0){
+                                rowTemp.createCell(columnIndexTemp).setCellValue(dischargeListN.get(j).getGroupVol());
+                            }else if (j==1){
+                                rowTemp.createCell(columnIndexTemp).setCellValue(dischargeListN.get(j).getGroupCurr());
+                            }else {
+                                rowTemp.createCell(columnIndexTemp).setCellValue(dischargeListN.get(j).getMonVol());
+                            }
                             columnIndexTemp++;
                         }
 
@@ -907,36 +973,68 @@
 
             //濉厖鏀剧數0.5h鍚庡紑璺數鍘嬪��
             if(j == 0){
-                rowTemp.createCell(++columnIndexTemp).setCellValue(dischargeSetVolListOne.get(j).getGroupVol());
+                rowTemp.createCell(columnIndexTemp).setCellValue(dischargeSetVolListOne.get(j).getGroupVol());
             }else if(j == 1){
-                rowTemp.createCell(++columnIndexTemp).setCellValue(dischargeSetVolListOne.get(j).getGroupCurr());
+                rowTemp.createCell(columnIndexTemp).setCellValue(dischargeSetVolListOne.get(j).getGroupCurr());
             }else {
-                rowTemp.createCell(++columnIndexTemp).setCellValue(dischargeSetVolListOne.get(j).getMonVol());
+                rowTemp.createCell(columnIndexTemp).setCellValue(dischargeSetVolListOne.get(j).getMonVol());
             }
+            columnIndexTemp++;
 
             if(chargeColumnCount > 0){
                 chargeCalendar = Calendar.getInstance();
                 chargeCalendar.setTime(chargeStartTime);
                 chargeCalendar.add(Calendar.MINUTE,30);
-                List<BattRealTimeDataHistory> chargeVolListOne = battRTDataHisService.getRecordList(battGroupId, chargeCalendar.getTime());
-                chargeVolListOne.sort(Comparator.comparingInt(BattRealTimeDataHistory::getMonNum));
-                addStatistics(chargeVolListOne,"vol");
-                columnIndexTemp++;
+                List<BattRealTimeDataHistory> chargeVolListOne = new ArrayList<>();
+                List<BattRealTimeDataHistory> chargeVolListOneOriginal = battRTDataHisService.getRecordList(battGroupId, chargeCalendar.getTime());
+                chargeVolListOneOriginal.sort(Comparator.comparingInt(BattRealTimeDataHistory::getMonNum));
+                addStatistics(chargeVolListOneOriginal,"vol");
+                //鎬荤數娴佹�荤數鍘嬪垪鍏�
+                Float groupVolChargeOne = chargeVolListOneOriginal.get(0).getGroupVol();
+                Float groupCurrChargeOne = chargeVolListOneOriginal.get(0).getGroupCurr();
+
+                BattRealTimeDataHistory groupVolDataChargeOne = new BattRealTimeDataHistory();
+                groupVolDataChargeOne.setMonNum(-2);
+                groupVolDataChargeOne.setGroupVol(groupVolChargeOne);
+
+                BattRealTimeDataHistory groupCurrDataChargeOne = new BattRealTimeDataHistory();
+                groupCurrDataChargeOne.setMonNum(-1);
+                groupCurrDataChargeOne.setGroupCurr(groupCurrChargeOne);
+
+                chargeVolListOne.add(groupVolDataChargeOne);
+                chargeVolListOne.add(groupCurrDataChargeOne);
+                chargeVolListOne.addAll(chargeVolListOneOriginal);
                 //rowTemp.createCell(columnIndexTemp).setCellValue("鍏呯數0.5h");
                 rowTemp.createCell(columnIndexTemp).setCellValue(chargeVolListOne.get(j).getMonVol());
+                columnIndexTemp++;
 
                 if(chargeColumnCount > 1){
                     //鍏呯數nh,n浠�1寮�濮�
                     for(int i = 1;i < chargeColumnCount;i++){
-                        columnIndexTemp++;
-
                         chargeCalendar.setTime(chargeStartTime);
                         chargeCalendar.add(Calendar.HOUR,i);
-                        List<BattRealTimeDataHistory> chargeVolListN = battRTDataHisService.getRecordList(battGroupId, chargeCalendar.getTime());
-                        chargeVolListN.sort(Comparator.comparingInt(BattRealTimeDataHistory::getMonNum));
-                        addStatistics(chargeVolListN,"vol");
+                        List<BattRealTimeDataHistory> chargeVolListN = new ArrayList<>();
+                        List<BattRealTimeDataHistory> chargeVolListNOriginal = battRTDataHisService.getRecordList(battGroupId, chargeCalendar.getTime());
+                        chargeVolListNOriginal.sort(Comparator.comparingInt(BattRealTimeDataHistory::getMonNum));
+                        addStatistics(chargeVolListNOriginal,"vol");
+                        //鎬荤數娴佹�荤數鍘嬪垪鍏�
+                        Float groupVolChargeN = chargeVolListNOriginal.get(0).getGroupVol();
+                        Float groupCurrChargeN = chargeVolListNOriginal.get(0).getGroupCurr();
+
+                        BattRealTimeDataHistory groupVolDataChargeN = new BattRealTimeDataHistory();
+                        groupVolDataChargeN.setMonNum(-2);
+                        groupVolDataChargeN.setGroupVol(groupVolChargeN);
+
+                        BattRealTimeDataHistory groupCurrDataChargeN = new BattRealTimeDataHistory();
+                        groupCurrDataChargeN.setMonNum(-1);
+                        groupCurrDataChargeN.setGroupCurr(groupCurrChargeN);
+
+                        chargeVolListN.add(groupVolDataChargeN);
+                        chargeVolListN.add(groupCurrDataChargeN);
+                        chargeVolListN.addAll(chargeVolListNOriginal);
                         //rowTemp.createCell(columnIndexTemp).setCellValue("鍏呯數" + (i) + "h钃勭數姹犵數鍘嬪�硷紙V锛�");
                         rowTemp.createCell(columnIndexTemp).setCellValue(chargeVolListN.get(j).getMonVol());
+                        columnIndexTemp++;
                     }
 
                 }
@@ -946,16 +1044,27 @@
             //rowTemp.createCell(++columnIndexTemp).setCellValue("鍏呮弧鍚庤搫鐢垫睜鐢靛帇鍊硷紙V)锛堢數娴佷负0锛�");
             if (fcVolListAfter.size() > 0){
                 if(j ==  0){
-                    rowTemp.createCell(++columnIndexTemp).setCellValue(fcVolListAfter.get(j).getGroupVol());
+                    rowTemp.createCell(columnIndexTemp).setCellValue(fcVolListAfter.get(j).getGroupVol());
                 }else if(j == 1){
-                    rowTemp.createCell(++columnIndexTemp).setCellValue(fcVolListAfter.get(j).getGroupCurr());
+                    rowTemp.createCell(columnIndexTemp).setCellValue(fcVolListAfter.get(j).getGroupCurr());
                 }else {
-                    rowTemp.createCell(++columnIndexTemp).setCellValue(fcVolListAfter.get(j).getMonVol());
+                    rowTemp.createCell(columnIndexTemp).setCellValue(fcVolListAfter.get(j).getMonVol());
                 }
             }else {
-                rowTemp.createCell(++columnIndexTemp).setCellValue("-");
+                rowTemp.createCell(columnIndexTemp).setCellValue("-");
             }
-            rowTemp.createCell(++columnIndexTemp).setCellValue("-");
+            columnIndexTemp++;
+            rowTemp.createCell(columnIndexTemp);
+        }
+
+        //璁剧疆鍓�6琛屾墍鏈夌殑琛ㄦ牸鍒涘缓,閬垮厤鍑虹幇鏃犺竟妗�
+        for (int i = 0; i < 6; i++) {
+            XSSFRow rowTmp = sheet.getRow(i);
+            for (int j = 0; j < columnCount; j++) {
+                if(rowTmp.getCell(j) == null){
+                    rowTmp.createCell(j);
+                }
+            }
         }
 
         //=====================鏍煎紡璁剧疆=====================//
@@ -967,12 +1076,31 @@
         addGlobalStylesToAllCells(sheet, workbook);
 
         //鍒涘缓绗竴琛屾槸鏍囬琛�
-        setRowStyle(workbook,sheet.getRow(0),true,15);
+        setRowStyle(workbook,sheet.getRow(0),true,20);
         //绗簩琛岃缃姞绮�
-        setRowStyle(workbook,sheet.getRow(1),true,15);
-
+        setRowStyle(workbook,sheet.getRow(1),true,11,HorizontalAlignment.LEFT);
+        //绗洓琛岃缃瓧浣撻鑹�
+        setRowStyle(workbook,sheet.getRow(3),false,9,IndexedColors.GREY_40_PERCENT.getIndex());
+        //绗�5琛屽埌鏈�鍚庝竴琛�,璁剧疆鏁板�肩殑灏忔暟鐐逛负4浣�
+            setDateFormat(workbook,sheet,4,113,1,columnCount-1,"0.0000");
         //鐢熸垚鍥捐〃
         createChart(sheet, columnCount, 6,"");
+    }
+
+    private void setDateFormat(Workbook workbook,XSSFSheet sheet, int rowIndexStart, int rowIndexEnd,int columnIndexStart,int columnIndexEnd, String formatStr) {
+        CellStyle decimalStyle = workbook.createCellStyle();
+        DataFormat format = workbook.createDataFormat();
+        decimalStyle.setDataFormat(format.getFormat(formatStr));
+        for (int i = rowIndexStart; i <= rowIndexEnd; i++) {
+            XSSFRow row = sheet.getRow(i);
+            for (int j = columnIndexStart; j <= columnIndexEnd; j++) {
+                XSSFCell cell = row.getCell(j);
+                if(cell.getCellType() == CellType.NUMERIC) {
+                    cell.getCellStyle().setDataFormat(format.getFormat(formatStr));
+                }
+            }
+
+        }
     }
 
     private XSSFCellStyle getCellStyleFont(XSSFCellStyle cellStyleOriginal, XSSFWorkbook workbook, boolean isFontBold, int fontSize) {
@@ -1104,6 +1232,7 @@
             //璁剧疆瀛椾綋鍜屽姞绮�
             Font font = workbook.createFont();
             font.setFontHeightInPoints((short) (fontSize));
+            font.setFontName("瀹嬩綋");
             font.setBold(isFontBold);
 
             cellStyleNew.setFont(font);
@@ -1111,8 +1240,51 @@
         }
     }
 
+    public void setRowStyle(Workbook workbook,Row row,boolean isFontBold,int fontSize,HorizontalAlignment horizontalAlignment) {
+        for (Cell cell : row) {
+            //鍏堝厠闅嗗師鏉ョ殑灞炴��
+            CellStyle cellStyleNew = workbook.createCellStyle();
+            cellStyleNew.cloneStyleFrom(cell.getCellStyle());
+
+            //璁剧疆瀛椾綋鍜屽姞绮�
+            Font font = workbook.createFont();
+            font.setFontHeightInPoints((short) (fontSize));
+            font.setBold(isFontBold);
+            font.setFontName("瀹嬩綋");
+
+            //璁剧疆姘村钩瀵归綈鏂瑰紡
+            cellStyleNew.setAlignment(horizontalAlignment);
+
+            cellStyleNew.setFont(font);
+            cell.setCellStyle(cellStyleNew);
+        }
+    }
+
+    public void setRowStyle(Workbook workbook,Row row,boolean isFontBold,int fontSize,short color) {
+        for (Cell cell : row) {
+            //璺宠繃绗竴鍒�
+            if(cell.getColumnIndex() == 0) {
+                continue;
+            }
+            //鍏堝厠闅嗗師鏉ョ殑灞炴��
+            CellStyle cellStyleNew = workbook.createCellStyle();
+            cellStyleNew.cloneStyleFrom(cell.getCellStyle());
+
+            //璁剧疆瀛椾綋鍜屽姞绮�
+            Font font = workbook.createFont();
+            font.setFontHeightInPoints((short) (fontSize));
+            font.setBold(isFontBold);
+            font.setFontName("瀹嬩綋");
+            font.setColor(color);
+
+            cellStyleNew.setFont(font);
+            cell.setCellStyle(cellStyleNew);
+        }
+    }
+
     /**
-     * 杩欎釜鏂规硶鏈�鍚庢墽琛�,鐢ㄤ簬瀵瑰凡琚垱寤虹殑琛屽唴鐨勬墍鏈夊崟鍏冩牸娣诲姞杈规.鑳借嚜鍔ㄨ瘑鍒鍒涘缓鐨勬墍鏈夊垪鍜屾墍鏈夊崟鍏冩牸
+     * 璁剧疆鍏ㄥ眬鐨勫睘鎬�.杩欎釜鏂规硶鍦ㄦ墍鏈夊崟鍏冩牸鍒涘缓鍚庤皟鐢�
+     * 鐢ㄤ簬瀵瑰凡琚垱寤虹殑琛屽唴鐨勬墍鏈夊崟鍏冩牸娣诲姞杈规.鑳借嚜鍔ㄨ瘑鍒鍒涘缓鐨勬墍鏈夊垪鍜屾墍鏈夊崟鍏冩牸
      * @param sheet
      * @param workbook
      */
@@ -1124,7 +1296,16 @@
         borderedStyle.setBorderBottom(BorderStyle.THIN);
         borderedStyle.setBorderLeft(BorderStyle.THIN);
         borderedStyle.setBorderRight(BorderStyle.THIN);
-
+        Font font = workbook.createFont();
+        //榛樿瀛椾綋澶у皬涓�9,瀹嬩綋
+        font.setFontHeightInPoints((short) 9);
+        font.setFontName("瀹嬩綋");
+        borderedStyle.setFont(font);
+        //榛樿妯珫灞呬腑
+        borderedStyle.setAlignment(HorizontalAlignment.CENTER);
+        borderedStyle.setVerticalAlignment(VerticalAlignment.CENTER);
+        //榛樿鑷姩鎹㈣
+        borderedStyle.setWrapText(true);
         for (Row row : sheet) {
             for (Cell cell : row) {
                 cell.setCellStyle(borderedStyle);

--
Gitblit v1.9.1