From 7fe1ea37e4044eb61374a51c5a2fe1ecf9e834be Mon Sep 17 00:00:00 2001
From: whycxzp <glperry@163.com>
Date: 星期一, 09 六月 2025 19:07:39 +0800
Subject: [PATCH] 杂项更新

---
 src/main/java/com/whyc/service/ExcelService.java                   |  103 +++++++++++++++++++++-------------
 src/main/java/com/whyc/service/BattRealTimeDataHistoryService.java |    2 
 src/main/java/com/whyc/service/RtDataService.java                  |    9 +++
 src/main/java/com/whyc/service/BattAlarmParamService.java          |    7 ++
 4 files changed, 80 insertions(+), 41 deletions(-)

diff --git a/src/main/java/com/whyc/service/BattAlarmParamService.java b/src/main/java/com/whyc/service/BattAlarmParamService.java
index acd3e32..f392b43 100644
--- a/src/main/java/com/whyc/service/BattAlarmParamService.java
+++ b/src/main/java/com/whyc/service/BattAlarmParamService.java
@@ -79,4 +79,11 @@
         mapper.updateById(param);
         return new Response().setII(1,"淇敼瀹屾垚");
     }
+
+    public BattAlarmParam getTempAlarmParam() {
+        QueryWrapper<BattAlarmParam> query = Wrappers.query();
+        query.eq("alm_id", 119006);
+        query.last(" limit 1");
+        return mapper.selectOne(query);
+    }
 }
diff --git a/src/main/java/com/whyc/service/BattRealTimeDataHistoryService.java b/src/main/java/com/whyc/service/BattRealTimeDataHistoryService.java
index 942e066..5df9704 100644
--- a/src/main/java/com/whyc/service/BattRealTimeDataHistoryService.java
+++ b/src/main/java/com/whyc/service/BattRealTimeDataHistoryService.java
@@ -190,7 +190,7 @@
 
     public Date getChargeStartTime(int battGroupId, Date recordTime) {
         String battGroupIdTable = getBattGroupIdTable(battGroupId, recordTime);
-        String sql = "select record_time from db_power_history.tb_batt_realdata_" + battGroupIdTable + " where record_time > '" + recordTime + "' and batt_test_type = 2 order limit 1";
+        String sql = "select record_time from db_power_history.tb_batt_realdata_" + battGroupIdTable + " where record_time > '" + recordTime + "' and batt_test_type = 2 limit 1";
         List<Date> timeList = sqlExecuteService.executeQuery_call(sql, new CallBack() {
 
             @Override
diff --git a/src/main/java/com/whyc/service/ExcelService.java b/src/main/java/com/whyc/service/ExcelService.java
index 6b90ac1..a65dc88 100644
--- a/src/main/java/com/whyc/service/ExcelService.java
+++ b/src/main/java/com/whyc/service/ExcelService.java
@@ -60,9 +60,9 @@
         createSheet1(workbook,battGroupId,testRecordCount);
         //鍒涘缓sheet2 -- 姣忔湀鐢靛帇,12涓湀,鍙栨瘡鏈�1鍙烽浂鐐归浂鍒�
         //鍒涘缓sheet3 -- 姣忔湀鍐呴樆, 12涓湀,鍙栨瘡鏈�1鍙烽浂鐐归浂鍒�
-        createSheet2And3(workbook,battGroupId);
+        //createSheet2And3(workbook,battGroupId);
         //鍒涘缓sheet4 -- 姣忓ぉ娓╁害, 30澶�, 鍙栨瘡澶╅浂鐐归浂鍒�
-        createSheet4(workbook,battGroupId);
+        //createSheet4(workbook,battGroupId);
 
         // 灏嗗伐浣滅翱鍐欏叆鏂囦欢
         FileOutputStream fileOut = new FileOutputStream(filePath);
@@ -217,12 +217,12 @@
 
 
         // 鍒涘缓缁樺浘宸ュ叿
-        createChart(sheet2, columnCount,"鐢靛帇鎶樼嚎鍥�");
-        createChart(sheet3, columnCount,"鍐呴樆鎶樼嚎鍥�");
+        createChart(sheet2, columnCount,3,"鐢靛帇鎶樼嚎鍥�");
+        createChart(sheet3, columnCount,3,"鍐呴樆鎶樼嚎鍥�");
 
     }
 
-    private void createChart(XSSFSheet sheet2, int columnCount,  String titleTextSuffix) {
+    private void createChart(XSSFSheet sheet2, int columnCount,int rowStartIndex,  String titleTextSuffix) {
         XSSFDrawing drawing = sheet2.createDrawingPatriarch();
         //108涓崟浣�,10涓崟浣撲竴涓浘鏍�
         int chartCol = 1;
@@ -298,10 +298,10 @@
             XDDFLineChartData dataChart = (XDDFLineChartData) chart.createData(ChartTypes.LINE, categoryAxis, valueAxis);
             for (int j = i  ; j < i+10; j++) {
                 if(j<104) {
-                    XDDFNumericalDataSource<Double> ys = XDDFDataSourcesFactory.fromNumericCellRange(sheet2, new CellRangeAddress(j + 3, j + 3, 1, columnCount -2));
+                    XDDFNumericalDataSource<Double> ys = XDDFDataSourcesFactory.fromNumericCellRange(sheet2, new CellRangeAddress(j + rowStartIndex, j + rowStartIndex, 1, columnCount -2));
                     XDDFLineChartData.Series series = (XDDFLineChartData.Series) dataChart.addSeries(xs, ys);
                     //閫夋嫨甯冨眬1
-                    series.setTitle(((XSSFRow) sheet2.getRow(j + 3)).getCell(0).getStringCellValue(), new CellReference(sheet2.getSheetName(), j + 3, 0, true, true));
+                    series.setTitle(((XSSFRow) sheet2.getRow(j + 6)).getCell(0).getStringCellValue(), new CellReference(sheet2.getSheetName(), j + rowStartIndex, 0, true, true));
                     series.setMarkerStyle(MarkerStyle.CIRCLE); // 璁剧疆鏍囪鐐�
                 }
 
@@ -465,7 +465,7 @@
             cell.setCellStyle(cellStyle);
         }
 
-        createChart(sheet4, columnCount,"娓╁害鎶樼嚎鍥�");
+        createChart(sheet4, columnCount,3,"娓╁害鎶樼嚎鍥�");
 
     }
     public CTValAx getCTValAx(XDDFValueAxis valueAxis, XSSFChart chart) {
@@ -588,15 +588,10 @@
         CellRangeAddress region25 = new CellRangeAddress(1, 1,  18, 24);
         sheet.addMergedRegion(region25);
 
-        //绗笁琛岀殑鍚堝苟鍒�
-        CellRangeAddress region31 = new CellRangeAddress(2, 2,  1, 2);
-        CellRangeAddress region32 = new CellRangeAddress(2, 2,  3, 4);
-        CellRangeAddress region33 = new CellRangeAddress(2, 2,  5, 6);
-        CellRangeAddress region34 = new CellRangeAddress(2, 2,  7, 8);
+        //绗笁琛岀殑鍚堝苟鍒�,鍓嶄袱涓崟鍏冩ā鍧楁槸鍥哄畾鐨�,鍏朵腑1涓悎骞跺崟鍏�
+        CellRangeAddress region31 = new CellRangeAddress(2, 2,  2, 3);
         sheet.addMergedRegion(region31);
-        sheet.addMergedRegion(region32);
-        sheet.addMergedRegion(region33);
-        sheet.addMergedRegion(region34);
+
 
         // 鍒涘缓灞呬腑鏍峰紡
         CellStyle style = workbook.createCellStyle();
@@ -635,24 +630,40 @@
         //setRowStyle(sheet.getRow(1),cellStyleFontBold);
 
         //绗笁琛屾槸鐢垫睜鍙峰拰鐢靛帇绛夌浉鍏虫姮澶�
+        //绗洓琛屾槸鐢靛帇鍒楀拰娓╁害鍒楁爣璇�
         XSSFRow row2 = sheet.createRow(2);
+        XSSFRow row3 = sheet.createRow(3);
         row2.createCell(0).setCellValue("钃勭數姹犲彿锛�#锛�");
         row2.createCell(1).setCellValue("钃勭數姹犳诞鍏呯數鍘嬪�硷紙V锛�");
-        row2.createCell(3).setCellValue("鏀剧數鍓嶈搫鐢垫睜寮�璺數鍘嬪�硷紙V锛�");
+        row2.createCell(2).setCellValue("鏀剧數鍓嶈搫鐢垫睜寮�璺數鍘嬪�硷紙V锛�");
+
+        row3.createCell(0).setCellValue("椤圭洰");
+        row3.createCell(1).setCellValue("-1锛堢數鍘嬶級");
+        row3.createCell(2).setCellValue("0锛堢數鍘嬶級");
+        row3.createCell(3).setCellValue("0锛堟俯搴︼級");
 
         //鏀剧數鐗瑰畾鐢靛帇鍊�
         int columnIndex = 3;
         if(dischargeColumnCount > 0){
             row2.createCell(5).setCellValue("鏀剧數0.5h钃勭數姹犵數鍘嬪�硷紙V锛�");
+            CellRangeAddress region33 = new CellRangeAddress(2, 2,  4, 5);
+            sheet.addMergedRegion(region33);
+            row3.createCell(4).setCellValue("0.5锛堢數鍘嬶級");
+            row3.createCell(5).setCellValue("0.5锛堟俯搴︼級");
             columnIndex+=2;
             if(dischargeColumnCount > 2){ //鍚堝苟鍗曞厓鏍间簡,鎵�浠ョ储寮�+2
                 row2.createCell(7).setCellValue("鏀剧數1h钃勭數姹犵數鍘嬪�硷紙V锛�");
+                CellRangeAddress region34 = new CellRangeAddress(2, 2,  6, 7);
+                sheet.addMergedRegion(region34);
+                row3.createCell(6).setCellValue("1锛堢數鍘嬶級");
+                row3.createCell(7).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锛�");
+                        row3.createCell(i+5).setCellValue(String.valueOf(i-2));
                         columnIndex++;
                     }
 
@@ -662,6 +673,7 @@
 
         //鍏呯數鐗瑰畾鐢靛帇鍊�
         row2.createCell(++columnIndex).setCellValue("鏀剧數缁撴潫0.5h鍚庤搫鐢垫睜寮�璺數鍘嬪�硷紙V锛�");
+        row3.createCell(columnIndex).setCellValue("10.5");
         if(chargeColumnCount > 0){
             columnIndex++;
             row2.createCell(columnIndex).setCellValue("鍏呯數0.5h");
@@ -671,12 +683,16 @@
                 for(int i = 1;i < chargeColumnCount;i++){
                     columnIndex++;
                     row2.createCell(columnIndex).setCellValue("鍏呯數" + (i) + "h钃勭數姹犵數鍘嬪�硷紙V锛�");
+                    row3.createCell(columnIndex);//濉厖鍗曞厓鏍肩殑浣滅敤
                 }
 
             }
         }
         row2.createCell(++columnIndex).setCellValue("鍏呮弧鍚庤搫鐢垫睜鐢靛帇鍊硷紙V)锛堢數娴佷负0锛�");
+        row3.createCell(columnIndex).setCellValue("11");
         row2.createCell(++columnIndex).setCellValue("澶囨敞");
+        row3.createCell(columnIndex);//濉厖鍗曞厓鏍肩殑浣滅敤
+
 
 
         //浠巖owIndex=6寮�濮�
@@ -692,7 +708,23 @@
         preVolList = battRTDataHisService.getPreVolList(battGroupId,dischargeStartTime);
 
         addStatistics(fcVolList,"vol");
-        addStatistics(preVolList,"vol");
+        addStatistics(preVolList,"vol","tmp");
+
+        //鏀剧數缁撴潫0.5h鍚庤搫鐢垫睜寮�璺數鍘嬪��
+        Calendar dischargeEndCalendar = Calendar.getInstance();
+        dischargeEndCalendar.setTime(dischargeEndTime.getTime());
+        dischargeEndCalendar.add(Calendar.MINUTE,30);
+        List<BattRealTimeDataHistory> dischargeSetVolListOne = battRTDataHisService.getRecordList(battGroupId, dischargeEndCalendar.getTime());
+        dischargeSetVolListOne.sort(Comparator.comparingInt(BattRealTimeDataHistory::getMonNum));
+        addStatistics(dischargeSetVolListOne,"vol","tmp");
+        //瀹氫綅鍒板厖鐢靛紑濮嬫椂闂�,鐘舵�佸彉涓哄厖鐢电殑璁板綍鏃堕棿
+        Date chargeStartTime = battRTDataHisService.getChargeStartTime(battGroupId, dischargeEndTime.getTime());
+        //鍏呮弧鍚庤搫鐢垫睜鐨勭數鍘�
+        Calendar chargeCalendar = Calendar.getInstance();
+        chargeCalendar.setTime(chargeStartTime);
+        List<BattRealTimeDataHistory> fcVolListAfter = battRTDataHisService.getFcVolListAfter(battGroupId, chargeCalendar.getTime());
+        fcVolListAfter.sort(Comparator.comparingInt(BattRealTimeDataHistory::getMonNum));
+        addStatistics(fcVolListAfter,"vol","tmp");
 
         //涓�鍏�104鑺傚崟浣�,鍐嶅姞涓婄粺璁℃暟鎹�4鍒�,涓�鍏�108
         for(int j = 0; j < 108; j++){
@@ -715,10 +747,9 @@
             //rowTemp.createCell(3).setCellValue("鏀剧數鍓嶈搫鐢垫睜寮�璺數鍘嬪�硷紙V锛�:"+(j+1)+"#");
             //rowTemp.createCell(4).setCellValue("鏀剧數鍓嶈搫鐢垫睜寮�璺俯搴﹀��:"+(j+1)+"#");
             rowTemp.createCell(1).setCellValue(fcVolList.get(j).getMonVol());
-            rowTemp.createCell(1).setCellValue(fcVolList.get(j).getMonTmp());
 
-            rowTemp.createCell(1).setCellValue(preVolList.get(j).getMonVol());
-            rowTemp.createCell(1).setCellValue(preVolList.get(j).getMonTmp());
+            rowTemp.createCell(2).setCellValue(preVolList.get(j).getMonVol());
+            rowTemp.createCell(3).setCellValue(preVolList.get(j).getMonTmp());
 
 
             //鏀剧數鐗瑰畾鐢靛帇鍊�
@@ -735,8 +766,8 @@
                 addStatistics(dischargeListOne,"vol");
                 //rowTemp.createCell(5).setCellValue("鏀剧數0.5h鐢靛帇鍊硷紙V锛�:"+(j+1)+"#");
                 //rowTemp.createCell(6).setCellValue("鏀剧數0.5h娓╁害鍊�:"+(j+1)+"#");
-                rowTemp.createCell(5).setCellValue(dischargeListOne.get(j).getMonVol());
-                rowTemp.createCell(6).setCellValue(dischargeListOne.get(j).getMonTmp());
+                rowTemp.createCell(4).setCellValue(dischargeListOne.get(j).getMonVol());
+                rowTemp.createCell(5).setCellValue(dischargeListOne.get(j).getMonTmp());
                 columnIndexTemp+=2;
                 if(dischargeColumnCount > 2){ //鍚堝苟鍗曞厓鏍间簡,鎵�浠ョ储寮�+2
                     //鏃堕棿鍦ㄦ祴璇曞紑濮嬫椂闂�+1h
@@ -748,8 +779,8 @@
                     addStatistics(dischargeListTwo,"vol");
                     //rowTemp.createCell(7).setCellValue("鏀剧數1h鐢靛帇鍊硷紙V锛�:"+(j+1)+"#");
                     //rowTemp.createCell(8).setCellValue("鏀剧數1h娓╁害鍊�:"+(j+1)+"#");
-                    rowTemp.createCell(7).setCellValue(dischargeListTwo.get(j).getMonVol());
-                    rowTemp.createCell(8).setCellValue(dischargeListTwo.get(j).getMonTmp());
+                    rowTemp.createCell(6).setCellValue(dischargeListTwo.get(j).getMonVol());
+                    rowTemp.createCell(7).setCellValue(dischargeListTwo.get(j).getMonTmp());
                     columnIndexTemp+=2;
                     if(dischargeColumnCount > 4){
                         columnIndexTemp++;
@@ -772,19 +803,12 @@
                 }
             }
 
-            //鍏呯數鐗瑰畾鐢靛帇鍊�
-            Calendar dischargeEndCalendar = Calendar.getInstance();
-            dischargeEndCalendar.setTime(dischargeEndTime.getTime());
-            dischargeEndCalendar.add(Calendar.MINUTE,30);
-            List<BattRealTimeDataHistory> dischargeSetVolListOne = battRTDataHisService.getRecordList(battGroupId, dischargeEndCalendar.getTime());
-            dischargeSetVolListOne.sort(Comparator.comparingInt(BattRealTimeDataHistory::getMonNum));
-            addStatistics(dischargeSetVolListOne,"vol");
+            //濉厖鏀剧數0.5h鍚庡紑璺數鍘嬪��
             rowTemp.createCell(++columnIndexTemp).setCellValue(dischargeSetVolListOne.get(j).getMonVol());
 
-            //瀹氫綅鍒板厖鐢靛紑濮嬫椂闂�,鐘舵�佸彉涓哄厖鐢电殑璁板綍鏃堕棿
-            Date chargeStartTime = battRTDataHisService.getChargeStartTime(battGroupId, dischargeEndTime.getTime());
+
             if(chargeColumnCount > 0){
-                Calendar chargeCalendar = Calendar.getInstance();
+                chargeCalendar = Calendar.getInstance();
                 chargeCalendar.setTime(chargeStartTime);
                 chargeCalendar.add(Calendar.MINUTE,30);
                 List<BattRealTimeDataHistory> chargeVolListOne = battRTDataHisService.getRecordList(battGroupId, chargeCalendar.getTime());
@@ -811,11 +835,7 @@
                 }
             }
 
-            Calendar chargeCalendar = Calendar.getInstance();
-            chargeCalendar.setTime(chargeStartTime);
-            List<BattRealTimeDataHistory> fcVolListAfter = battRTDataHisService.getFcVolListAfter(battGroupId, chargeCalendar.getTime());
-            fcVolListAfter.sort(Comparator.comparingInt(BattRealTimeDataHistory::getMonNum));
-            addStatistics(fcVolListAfter,"vol");
+            //濉厖鍏呮弧鍚庤搫鐢垫睜鐢靛帇
             //rowTemp.createCell(++columnIndexTemp).setCellValue("鍏呮弧鍚庤搫鐢垫睜鐢靛帇鍊硷紙V)锛堢數娴佷负0锛�");
             if (fcVolListAfter.size() > 0){
                 rowTemp.createCell(++columnIndexTemp).setCellValue(fcVolListAfter.get(j).getMonVol());
@@ -837,6 +857,9 @@
         setRowStyle(workbook,sheet.getRow(0),true,15);
         //绗簩琛岃缃姞绮�
         setRowStyle(workbook,sheet.getRow(1),true,15);
+
+        //鐢熸垚鍥捐〃
+        createChart(sheet, columnCount, 6,"");
     }
 
     private XSSFCellStyle getCellStyleFont(XSSFCellStyle cellStyleOriginal, XSSFWorkbook workbook, boolean isFontBold, int fontSize) {
diff --git a/src/main/java/com/whyc/service/RtDataService.java b/src/main/java/com/whyc/service/RtDataService.java
index 93414ee..d9d0ffe 100644
--- a/src/main/java/com/whyc/service/RtDataService.java
+++ b/src/main/java/com/whyc/service/RtDataService.java
@@ -1,6 +1,7 @@
 package com.whyc.service;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.whyc.dto.Response;
 import com.whyc.mapper.RtDataMapper;
 import com.whyc.pojo.db_real_batt.RtData;
@@ -33,4 +34,12 @@
         List<RtData> list=mapper.selectList(wrapper);
         return new Response().setII(1,list!=null,list,"鍦ㄧ敤鐢垫睜缁勫疄鏃舵帹閫佸崟浣撲俊鎭�");
     }
+
+    public List<RtData> getList(int battGroupId,Integer[] monNumList) {
+        QueryWrapper<RtData> wrapper= Wrappers.query();
+        wrapper.eq("binf_id",battGroupId);
+        wrapper.in("mon_num",monNumList);
+        return mapper.selectList(wrapper);
+    }
+
 }
\ No newline at end of file

--
Gitblit v1.9.1