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 +++++++++++++++++++++++++++++++-------------------- 1 files changed, 63 insertions(+), 40 deletions(-) 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) { -- Gitblit v1.9.1