7fe1ea37e4044eb61374a51c5a2fe1ecf9e834be..c971825d2a2bc48c74f2ffe97127b50b14445e12
2025-06-09 whycxzp
压入变动的时间列的总电压和电流
c97182 对比 | 目录
2025-06-09 whycxzp
压入总电压和总电流的行列及数据
124025 对比 | 目录
2个文件已修改
183 ■■■■ 已修改文件
src/main/java/com/whyc/service/BattRealTimeDataHistoryService.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/service/ExcelService.java 175 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/service/BattRealTimeDataHistoryService.java
@@ -130,6 +130,8 @@
                    his.setMonNum(rs.getInt("mon_num"));
                    his.setMonVol(rs.getFloat("mon_vol"));
                    his.setMonTmp(rs.getFloat("mon_tmp"));
                    his.setGroupVol(rs.getFloat("group_vol"));
                    his.setGroupCurr(rs.getFloat("group_curr"));
                    list.add(his);
                }
@@ -154,6 +156,8 @@
                    his.setMonNum(rs.getInt("mon_num"));
                    his.setMonVol(rs.getFloat("mon_vol"));
                    his.setMonTmp(rs.getFloat("mon_tmp"));
                    his.setGroupVol(rs.getFloat("group_vol"));
                    his.setGroupCurr(rs.getFloat("group_curr"));
                    list.add(his);
                }
@@ -178,6 +182,8 @@
                    his.setMonNum(rs.getInt("mon_num"));
                    his.setMonVol(rs.getFloat("mon_vol"));
                    his.setMonTmp(rs.getFloat("mon_tmp"));
                    his.setGroupVol(rs.getFloat("group_vol"));
                    his.setGroupCurr(rs.getFloat("group_curr"));
                    list.add(his);
                }
@@ -223,6 +229,8 @@
                    his.setMonNum(rs.getInt("mon_num"));
                    his.setMonVol(rs.getFloat("mon_vol"));
                    his.setMonTmp(rs.getFloat("mon_tmp"));
                    his.setGroupVol(rs.getFloat("group_vol"));
                    his.setGroupCurr(rs.getFloat("group_curr"));
                    list.add(his);
                }
src/main/java/com/whyc/service/ExcelService.java
@@ -588,9 +588,13 @@
        CellRangeAddress region25 = new CellRangeAddress(1, 1,  18, 24);
        sheet.addMergedRegion(region25);
        //第三行的合并列,前两个单元模块是固定的,其中1个合并单元
        //第三行,第五行,第六行的合并列,前两个单元模块是固定的,其中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);
        // 创建居中样式
@@ -633,6 +637,9 @@
        //第四行是电压列和温度列标识
        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)");
@@ -647,14 +654,26 @@
        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);
            sheet.addMergedRegion(region33);
            sheet.addMergedRegion(region53);
            sheet.addMergedRegion(region63);
            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);
                CellRangeAddress region54 = new CellRangeAddress(4, 2,  6, 7);
                CellRangeAddress region64 = new CellRangeAddress(5, 2,  6, 7);
                sheet.addMergedRegion(region34);
                sheet.addMergedRegion(region54);
                sheet.addMergedRegion(region64);
                row3.createCell(6).setCellValue("1(电压)");
                row3.createCell(7).setCellValue("1(温度)");
                columnIndex+=2;
@@ -695,48 +714,118 @@
        //从rowIndex=6开始
        int rowIndex = 6;
        //从rowIndex=4开始
        int rowIndex = 4;
        // 共104节单体,104行. 进行遍历,填充
        //蓄电池浮充电压值列表
        List<BattRealTimeDataHistory> fcVolList = new ArrayList<>();
        fcVolList = battRTDataHisService.getFcVolList(battGroupId,dischargeStartTime);
        List<BattRealTimeDataHistory> fcVolListOriginal = battRTDataHisService.getFcVolList(battGroupId,dischargeStartTime);
        //按单体编号排序,按编号升序
        fcVolList.sort(Comparator.comparingInt(BattRealTimeDataHistory::getMonNum));
        fcVolListOriginal.sort(Comparator.comparingInt(BattRealTimeDataHistory::getMonNum));
        addStatistics(fcVolListOriginal,"vol");
        //总电流总电压列入
        Float fcGroupVol = fcVolListOriginal.get(0).getGroupVol();
        Float fcGroupCurr = fcVolListOriginal.get(0).getGroupCurr();
        BattRealTimeDataHistory fcGroupVolData = new BattRealTimeDataHistory();
        fcGroupVolData.setMonNum(-2);
        fcGroupVolData.setGroupVol(fcGroupVol);
        BattRealTimeDataHistory fcGroupCurrData = new BattRealTimeDataHistory();
        fcGroupCurrData.setMonNum(-1);
        fcGroupCurrData.setGroupCurr(fcGroupCurr);
        fcVolList.add(fcGroupVolData);
        fcVolList.add(fcGroupCurrData);
        fcVolList.addAll(fcVolListOriginal);
        //放点前蓄电池开路电压值
        List<BattRealTimeDataHistory> preVolList = new ArrayList<>();
        preVolList = battRTDataHisService.getPreVolList(battGroupId,dischargeStartTime);
        List<BattRealTimeDataHistory> preVolListOriginal = battRTDataHisService.getPreVolList(battGroupId,dischargeStartTime);
        addStatistics(preVolListOriginal,"vol","tmp");
        //总电流总电压列入
        Float preGroupVol = preVolListOriginal.get(0).getGroupVol();
        Float preGroupCurr = preVolListOriginal.get(0).getGroupCurr();
        addStatistics(fcVolList,"vol");
        addStatistics(preVolList,"vol","tmp");
        BattRealTimeDataHistory preGroupVolData = new BattRealTimeDataHistory();
        preGroupVolData.setMonNum(-2);
        preGroupVolData.setGroupVol(preGroupVol);
        BattRealTimeDataHistory preGroupCurrData = new BattRealTimeDataHistory();
        preGroupCurrData.setMonNum(-1);
        preGroupCurrData.setGroupCurr(preGroupCurr);
        preVolList.add(preGroupVolData);
        preVolList.add(preGroupCurrData);
        preVolList.addAll(preVolListOriginal);
        //放电结束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");
        List<BattRealTimeDataHistory> dischargeSetVolListOne = new ArrayList<>();
        List<BattRealTimeDataHistory> dischargeSetVolListOneOriginal = battRTDataHisService.getRecordList(battGroupId, dischargeEndCalendar.getTime());
        dischargeSetVolListOneOriginal.sort(Comparator.comparingInt(BattRealTimeDataHistory::getMonNum));
        addStatistics(dischargeSetVolListOneOriginal,"vol","tmp");
        //总电流总电压列入
        Float groupVolOne = dischargeSetVolListOneOriginal.get(0).getGroupVol();
        Float groupCurrOne = dischargeSetVolListOneOriginal.get(0).getGroupCurr();
        BattRealTimeDataHistory groupVolDataOne = new BattRealTimeDataHistory();
        groupVolDataOne.setMonNum(-2);
        groupVolDataOne.setGroupVol(groupVolOne);
        BattRealTimeDataHistory groupCurrDataOne = new BattRealTimeDataHistory();
        groupCurrDataOne.setMonNum(-1);
        groupCurrDataOne.setGroupCurr(groupCurrOne);
        dischargeSetVolListOne.add(groupVolDataOne);
        dischargeSetVolListOne.add(groupCurrDataOne);
        dischargeSetVolListOne.addAll(dischargeSetVolListOneOriginal);
        //定位到充电开始时间,状态变为充电的记录时间
        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");
        List<BattRealTimeDataHistory> fcVolListAfter = new ArrayList<>();
        List<BattRealTimeDataHistory> fcVolListAfterOriginal = battRTDataHisService.getFcVolListAfter(battGroupId, chargeCalendar.getTime());
        fcVolListAfterOriginal.sort(Comparator.comparingInt(BattRealTimeDataHistory::getMonNum));
        addStatistics(fcVolListAfterOriginal,"vol","tmp");
        //总电流总电压列入
        if(fcVolListAfterOriginal.size()>0) {
            Float groupVolAfter = fcVolListAfterOriginal.get(0).getGroupVol();
            Float groupCurrAfter = fcVolListAfterOriginal.get(0).getGroupCurr();
        //一共104节单体,再加上统计数据4列,一共108
        for(int j = 0; j < 108; j++){
            BattRealTimeDataHistory groupVolDataAfter = new BattRealTimeDataHistory();
            groupVolDataAfter.setMonNum(-2);
            groupVolDataAfter.setGroupVol(groupVolAfter);
            BattRealTimeDataHistory groupCurrDataAfter = new BattRealTimeDataHistory();
            groupCurrDataAfter.setMonNum(-1);
            groupCurrDataAfter.setGroupCurr(groupCurrAfter);
            fcVolListAfter.add(groupVolDataAfter);
            fcVolListAfter.add(groupCurrDataAfter);
            fcVolListAfter.addAll(fcVolListAfterOriginal);
        }
        //一共104节单体,再加上前面总电压和总电流2列,后面统计数据4列,一共110
        for(int j = 0; j < 110; j++){
            XSSFRow rowTemp = sheet.createRow(rowIndex++);
            if(j<104) {
                rowTemp.createCell(0).setCellValue((j + 1) + "#");
            if(j == 0){
                rowTemp.createCell(0).setCellValue("总电压");
            }else if(j == 1){
                rowTemp.createCell(0).setCellValue("总电流");
            }
            else if(j<106) {
                rowTemp.createCell(0).setCellValue((j - 1) + "#");
            }else{
                if(j == 104){
                if(j == 106){
                    rowTemp.createCell(0).setCellValue("单节平均电压");
                }else if (j == 105){
                }else if (j == 107){
                    rowTemp.createCell(0).setCellValue("单节最大电压");
                }else if (j == 106){
                }else if (j == 108){
                    rowTemp.createCell(0).setCellValue("单节最小电压");
                }else{
                    rowTemp.createCell(0).setCellValue("单节最大差值");
@@ -746,10 +835,19 @@
            //rowTemp.createCell(2).setCellValue("蓄电池浮充温度值:"+(j+1)+"#");
            //rowTemp.createCell(3).setCellValue("放电前蓄电池开路电压值(V):"+(j+1)+"#");
            //rowTemp.createCell(4).setCellValue("放电前蓄电池开路温度值:"+(j+1)+"#");
            rowTemp.createCell(1).setCellValue(fcVolList.get(j).getMonVol());
            rowTemp.createCell(2).setCellValue(preVolList.get(j).getMonVol());
            rowTemp.createCell(3).setCellValue(preVolList.get(j).getMonTmp());
            if(j == 0){
                rowTemp.createCell(1).setCellValue(fcVolList.get(j).getGroupVol());
                rowTemp.createCell(2).setCellValue(preVolList.get(j).getGroupVol());
                rowTemp.createCell(3);
            }else if (j == 1){
                rowTemp.createCell(1).setCellValue(fcVolList.get(j).getGroupCurr());
                rowTemp.createCell(2).setCellValue(preVolList.get(j).getGroupCurr());
                rowTemp.createCell(3);
            }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());
            }
            //放电特定电压值
@@ -760,10 +858,14 @@
                //时间在测试开始时间+0.5h
                dischargeCalendar.add(Calendar.MINUTE,30);
                Date recordTime = dischargeCalendar.getTime();
                List<BattRealTimeDataHistory> dischargeListOne = battRTDataHisService.getRecordList(battGroupId,recordTime);
                List<BattRealTimeDataHistory> dischargeListOne  = new ArrayList<>();
                List<BattRealTimeDataHistory> dischargeListOneOriginal = battRTDataHisService.getRecordList(battGroupId,recordTime);
                //按单体编号排序,按编号升序
                dischargeListOne.sort(Comparator.comparingInt(BattRealTimeDataHistory::getMonNum));
                addStatistics(dischargeListOne,"vol");
                dischargeListOneOriginal.sort(Comparator.comparingInt(BattRealTimeDataHistory::getMonNum));
                addStatistics(dischargeListOneOriginal,"vol");
                //总电流总电压列入
                //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());
@@ -804,8 +906,13 @@
            }
            //填充放电0.5h后开路电压值
            rowTemp.createCell(++columnIndexTemp).setCellValue(dischargeSetVolListOne.get(j).getMonVol());
            if(j == 0){
                rowTemp.createCell(++columnIndexTemp).setCellValue(dischargeSetVolListOne.get(j).getGroupVol());
            }else if(j == 1){
                rowTemp.createCell(++columnIndexTemp).setCellValue(dischargeSetVolListOne.get(j).getGroupCurr());
            }else {
                rowTemp.createCell(++columnIndexTemp).setCellValue(dischargeSetVolListOne.get(j).getMonVol());
            }
            if(chargeColumnCount > 0){
                chargeCalendar = Calendar.getInstance();
@@ -838,7 +945,13 @@
            //填充充满后蓄电池电压
            //rowTemp.createCell(++columnIndexTemp).setCellValue("充满后蓄电池电压值(V)(电流为0)");
            if (fcVolListAfter.size() > 0){
                rowTemp.createCell(++columnIndexTemp).setCellValue(fcVolListAfter.get(j).getMonVol());
                if(j ==  0){
                    rowTemp.createCell(++columnIndexTemp).setCellValue(fcVolListAfter.get(j).getGroupVol());
                }else if(j == 1){
                    rowTemp.createCell(++columnIndexTemp).setCellValue(fcVolListAfter.get(j).getGroupCurr());
                }else {
                    rowTemp.createCell(++columnIndexTemp).setCellValue(fcVolListAfter.get(j).getMonVol());
                }
            }else {
                rowTemp.createCell(++columnIndexTemp).setCellValue("-");
            }