whyclxw
2025-05-29 6c13a67934178804ba4845ed821a07145e679a0e
电压上一季度历史实时
1 文件已重命名
4个文件已修改
1个文件已添加
96 ■■■■ 已修改文件
src/main/java/com/whyc/dto/Real/CompareDto.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/dto/Real/QuarterDto.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/service/BattRealdataIdService.java 33 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/service/BatttestdataInfService.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/service/SubTablePageInfoService.java 36 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/webSocket/RealTimeSocket.java 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/dto/Real/CompareDto.java
New file
@@ -0,0 +1,10 @@
package com.whyc.dto.Real;
import lombok.Data;
@Data
public class CompareDto {
    private Float maxValue;
    private Float minValue;
    private Float avgValue;
}
src/main/java/com/whyc/dto/Real/QuarterDto.java
File was renamed from src/main/java/com/whyc/dto/Real/QuarterData.java
@@ -7,7 +7,7 @@
import java.util.Date;
@Data
public class QuarterData {
public class QuarterDto {
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    private Date recordTime;
    private Integer monNum;
src/main/java/com/whyc/service/BattRealdataIdService.java
@@ -1,11 +1,10 @@
package com.whyc.service;
import com.whyc.dto.Real.QuarterData;
import com.whyc.dto.Real.CompareDto;
import com.whyc.dto.Real.QuarterDto;
import com.whyc.dto.Response;
import com.whyc.mapper.CommonMapper;
import com.whyc.pojo.db_data_history.BattRealdataId;
import com.whyc.util.ActionUtil;
import com.whyc.util.SubTablePageInfoUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -23,16 +22,38 @@
    //获取电池组最近一季度的单体数据
    public Response getBattQuarter(Integer battgroupId) {
        HashMap<String,Object> map = new HashMap<>();
        Float maxVol=0f;
        Float minVol=0f;
        Float avgVol=0f;
        int num=0;
        List<String> datelist = ActionUtil.getLastQuarterYearMonths();
        for (String date:datelist) {
        for (int i=0;i<datelist.size();i++) {
            String date=datelist.get(i);
            String tableName ="db_data_history.tb_batt_realdata_"+battgroupId+"_"+date;
            String existTableName = commonMapper.existTable("db_data_history", "tb_batt_realdata_"+battgroupId+"_"+date);
            if(existTableName == null){
                continue;
            }
            //判断表是否存在
            List<QuarterData> list=subTablePageInfoService.getBattRealHis(tableName,"mon_vol");
            map.put(date,list);
            List<QuarterDto> datalist=subTablePageInfoService.getBattRealHis(tableName,"mon_vol");
            map.put(date,datalist);
            //获取表中最大,最小,平均数据值
            CompareDto compareData=subTablePageInfoService.getBattCompareHis(tableName,"mon_vol");
            if(num==0){
                maxVol=compareData.getMaxValue();
                minVol=compareData.getMinValue();
            }
            if (compareData.getMaxValue() >= maxVol) {
                maxVol =compareData.getMaxValue();
            }
            if (compareData.getMinValue() <= minVol) {
                minVol = compareData.getMinValue();
            }
            avgVol += compareData.getAvgValue();
            map.put("maxVol",maxVol);
            map.put("minVol",minVol);
            map.put("avgVol",avgVol/datelist.size());
            num++;
        }
        return new Response().setII(1,map.size()>0,map,"获取电池组最近一季度的数据");
    }
src/main/java/com/whyc/service/BatttestdataInfService.java
@@ -64,8 +64,8 @@
                    Float restTime= BattCapFactory.getTheoryTime(battRtstate.getGroupCurr(), restCap, binf.getMoncapstd());
                    tinf.setRestTime(restTime);
                }
                //保留2位小数
                String precentCap = String.format("%.2f",(restCap/binf.getMoncapstd()*100));
                //保留5位小数
                String precentCap = String.format("%.5f",(restCap/binf.getMoncapstd()*100));
                tinf.setPrecentCap(precentCap);
            }
        }
src/main/java/com/whyc/service/SubTablePageInfoService.java
@@ -1,14 +1,13 @@
package com.whyc.service;
import com.whyc.dto.AlmHis.BattAlarmRes;
import com.whyc.dto.AlmHis.BattAlmPar;
import com.whyc.dto.AlmHis.DevAlmPar;
import com.whyc.dto.AlmHis.PwrAlmPar;
import com.whyc.dto.Real.QuarterData;
import com.whyc.dto.Real.CompareDto;
import com.whyc.dto.Real.QuarterDto;
import com.whyc.mapper.CallBack;
import com.whyc.pojo.db_alarm.BattalarmDataHistory;
import com.whyc.pojo.db_alarm.DevalarmDataHistory;
import com.whyc.pojo.db_data_history.BattRealdataId;
import com.whyc.pojo.db_pwrdev_alarm.PwrdevAlarmHistory;
import com.whyc.util.ThreadLocalUtil;
import org.springframework.beans.factory.annotation.Autowired;
@@ -468,14 +467,14 @@
        return  list;
    }
    //获取电池组某一年月的数据
    public List<QuarterData> getBattRealHis(String tableName,String columnName) {
    public List<QuarterDto> getBattRealHis(String tableName, String columnName) {
        String sql="select  distinct mon_num,record_time,"+columnName+"  from "+tableName+" order by record_time asc";
        List<QuarterData> list = sqlExecuteService.executeQuery_call(sql, new CallBack() {
        List<QuarterDto> list = sqlExecuteService.executeQuery_call(sql, new CallBack() {
            @Override
            public List getResults(ResultSet rs) throws SQLException {
                List<QuarterData> list=new ArrayList<>();
                List<QuarterDto> list=new ArrayList<>();
                while (rs.next()){
                    QuarterData data=new QuarterData();
                    QuarterDto data=new QuarterDto();
                    data.setRecordTime(rs.getTimestamp("record_time"));
                    data.setNumValue(rs.getFloat(columnName));
                    data.setMonNum(rs.getInt("mon_num"));
@@ -486,4 +485,27 @@
        });
        return list;
    }
    //获取表中最大,最小,平均数据值
    public CompareDto getBattCompareHis(String tableName, String columnName) {
        String sql="select  max("+columnName+") as maxValue1,min("+columnName+") as minValue,avg("+columnName+") as avgValue"+"  from "+tableName;
        List<CompareDto> list = sqlExecuteService.executeQuery_call(sql, new CallBack() {
            @Override
            public List getResults(ResultSet rs) throws SQLException {
                List<CompareDto> list=new ArrayList<>();
                while (rs.next()){
                    CompareDto data=new CompareDto();
                    data.setMaxValue(rs.getFloat("maxValue1"));
                    data.setMinValue(rs.getFloat("minValue"));
                    data.setAvgValue(rs.getFloat("avgValue"));
                    list.add(data);
                }
                return list;
            }
        });
        if(list!=null&&list.size()>0){
            return list.get(0);
        }else {
            return null;
        }
    }
}
src/main/java/com/whyc/webSocket/RealTimeSocket.java
@@ -316,11 +316,16 @@
            //实时获取单体信息
            List<BattRtdata> rtdataList = rtdataService.getRtdataRealInfo(realDto.getBattgroupId());
            if(rtdataList!=null&&rtdataList.size()>0){
                for(BattRtdata battRtdata:rtdataList) {
                    if (battRtdata.getMonVol() > maxVol) {
                for(int i=0;i<rtdataList.size();i++) {
                    BattRtdata battRtdata=rtdataList.get(i);
                    if(i==0){
                        maxVol=battRtdata.getMonVol();
                        minVol=battRtdata.getMonVol();
                    }
                    if (battRtdata.getMonVol() >= maxVol) {
                        maxVol = battRtdata.getMonVol();
                    }
                    if (battRtdata.getMonVol() < minVol) {
                    if (battRtdata.getMonVol() <= minVol) {
                        minVol = battRtdata.getMonVol();
                    }
                    avgVol += battRtdata.getMonVol();