whyclxw
2025-06-06 c34c224406217a2523d68fdcecaf2bb4fb732389
src/main/java/com/whyc/service/SubTablePageInfoService.java
@@ -1,14 +1,15 @@
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.*;
import com.whyc.mapper.CallBack;
import com.whyc.pojo.db_alarm.BattalarmDataHistory;
import com.whyc.pojo.db_alarm.DevalarmDataHistory;
import com.whyc.pojo.db_batt_testdata.BatttestdataId;
import com.whyc.pojo.db_data_history.BattRealdataId;
import com.whyc.pojo.db_data_history.PwrdevHistorydataId;
import com.whyc.pojo.db_pwrdev_alarm.PwrdevAlarmHistory;
import com.whyc.util.ThreadLocalUtil;
import org.springframework.beans.factory.annotation.Autowired;
@@ -198,7 +199,7 @@
                    data.setProvice(rs.getString("provice"));
                    data.setCity(rs.getString("city"));
                    data.setCountry(rs.getString("country"));
                    data.setBattGroupName(rs.getString("battgroup_name"));
                    data.setBattgroupName(rs.getString("battgroup_name"));
                    list.add(data);
                }
                return list;
@@ -316,6 +317,7 @@
                    ph.setNum(rs.getLong("num"));
                    ph.setDevId(rs.getInt("dev_id"));
                    ph.setDevIp(rs.getString("dev_ip"));
                    ph.setAlmId(rs.getInt("alm_id"));
                    ph.setAlmLevel(rs.getInt("alm_level"));
                    ph.setAlmStartTime(rs.getTimestamp("alm_start_time"));
                    ph.setAlmEndTime(rs.getTimestamp("alm_end_time"));
@@ -468,14 +470,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 +488,204 @@
        });
        return list;
    }
    //获取表中最大,最小,平均数据值
    public CompareDto getBattCompareHis(String tableName, String columnName) {
        String sql="select  max("+columnName+") as maxData,min("+columnName+") as minData,avg("+columnName+") as avgData"+"  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.setMaxData(rs.getFloat("maxData"));
                    data.setMinData(rs.getFloat("minData"));
                    data.setAvgData(rs.getFloat("avgData"));
                    list.add(data);
                }
                return list;
            }
        });
        if(list!=null&&list.size()>0){
            return list.get(0);
        }else {
            return null;
        }
    }
    //获取内阻数据
    public  List<QuarterDto> getBattResInfData(Integer battgroupId,Integer testRecordCount) {
        String sql="select   distinct mon_num,test_starttime,mon_res, from db_batt_testdata.tb_battresdata_"+battgroupId
                +" where test_record_count="+testRecordCount+" order by mon_num asc";
        List<QuarterDto> list = sqlExecuteService.executeQuery_call(sql, new CallBack() {
            @Override
            public List getResults(ResultSet rs) throws SQLException {
                List<QuarterDto> list=new ArrayList<>();
                while (rs.next()){
                    QuarterDto data=new QuarterDto();
                    data.setMonNum(rs.getInt("mon_num"));
                    data.setNumValue(rs.getFloat("mon_res"));
                    data.setRecordTime(rs.getTimestamp("test_starttime"));
                    list.add(data);
                }
                return list;
            }
        });
       return list;
    }
    //找这次放电的指定一笔数据
    public List<BatttestdataId> getLastDataByBattgroupId(Integer battgroupId, Integer testRecordCount, Integer recordNum) {
        String sql="select   distinct * from db_batt_testdata.tb_batttestdata_"+battgroupId
                +" where test_record_count="+testRecordCount+" and record_num="+recordNum+ " order by mon_num asc";
        List<BatttestdataId> list = sqlExecuteService.executeQuery_call(sql, new CallBack() {
            @Override
            public List getResults(ResultSet rs) throws SQLException {
                List<BatttestdataId> list=new ArrayList<>();
                while (rs.next()){
                    BatttestdataId data=new BatttestdataId();
                    data.setBattgroupId(rs.getInt("battgroup_id"));
                    data.setTestRecordCount(rs.getInt("test_record_count"));
                    data.setTestStarttime(rs.getTimestamp("test_starttime"));
                    data.setOnlineVol(rs.getFloat("online_vol"));
                    data.setGroupVol(rs.getFloat("group_vol"));
                    data.setTestCurr(rs.getFloat("test_curr"));
                    data.setTestCap(rs.getFloat("test_cap"));
                    data.setMonNum(rs.getInt("mon_num"));
                    data.setMonVol(rs.getFloat("mon_vol"));
                    data.setMonRes(rs.getFloat("mon_res"));
                    data.setMonTmp(rs.getFloat("mon_tmp"));
                    list.add(data);
                }
                return list;
            }
        });
        return list;
    }
    //系统概览获取半小时核容设备信息(组端信息取一个单体信息即可)
    public List<BattHisRealDto> getHalfHourBattDevData(String tableName,Integer granularity) {
        String sql="select  distinct mon_num,record_time,group_vol,online_vol,group_curr,group_tmp " +
                "from (select a.*, (@i:= @i+1) as number " +
                "     from (select * from "+tableName+" "+
                "                    where record_time>date_sub(now(),interval 0.5 hour) and mon_num=1) a, " +
                "                   (select @i:=0) b) c "+
                " where c.number%"+granularity+"=0 or c.number=1 ";
        sql+=" order by record_time asc";
        List<BattHisRealDto> list = sqlExecuteService.executeQuery_call(sql, new CallBack() {
            @Override
            public List getResults(ResultSet rs) throws SQLException {
                List<BattHisRealDto> list=new ArrayList<>();
                while (rs.next()){
                    BattHisRealDto data=new BattHisRealDto();
                    data.setRecordTime(rs.getTimestamp("record_time"));
                    data.setGroupVol(rs.getFloat("group_vol"));
                    data.setOnlineVol(rs.getFloat("online_vol"));
                    data.setGroupCurr(rs.getFloat("group_curr"));
                    data.setGroupTmp(rs.getFloat("group_tmp"));
                    list.add(data);
                }
                return list;
            }
        });
        return list;
    }
    //系统概览获取半小时交流输入统计
    public List<PwrHisRealAcInDto> getHalfHourPwrHisAcinData(String tableName,Integer granularity) {
        String sql="select  distinct record_datetime,acin1_vola,acin1_volb,acin1_volc,acin2_vola,acin2_volb,acin2_volc " +
                ",acin1_curra,acin1_currb,acin1_currc,acin2_curra,acin2_currb,acin2_currc  " +
                "from (select a.*, (@i:= @i+1) as number " +
                "     from (select * from "+tableName+" "+
                "                    where record_datetime>date_sub(now(),interval 0.5 hour)) a, " +
                "                   (select @i:=0) b) c "+
                " where c.number%"+granularity+"=0 or c.number=1 ";
        sql+=" order by record_datetime asc";
        List<PwrHisRealAcInDto> list = sqlExecuteService.executeQuery_call(sql, new CallBack() {
            @Override
            public List getResults(ResultSet rs) throws SQLException {
                List<PwrHisRealAcInDto> list=new ArrayList<>();
                while (rs.next()){
                    PwrHisRealAcInDto data=new PwrHisRealAcInDto();
                    data.setRecordDatetime(rs.getTimestamp("record_datetime"));
                    data.setAcin1Vola(rs.getFloat("acin1_vola"));
                    data.setAcin1Volb(rs.getFloat("acin1_volb"));
                    data.setAcin1Volc(rs.getFloat("acin1_volc"));
                    data.setAcin2Vola(rs.getFloat("acin2_vola"));
                    data.setAcin2Volb(rs.getFloat("acin2_volb"));
                    data.setAcin2Volc(rs.getFloat("acin2_volc"));
                    data.setAcin1Curra(rs.getFloat("acin1_curra"));
                    data.setAcin1Currb(rs.getFloat("acin1_currb"));
                    data.setAcin1Currc(rs.getFloat("acin1_currc"));
                    data.setAcin2Curra(rs.getFloat("acin2_curra"));
                    data.setAcin2Currb(rs.getFloat("acin2_currb"));
                    data.setAcin2Currc(rs.getFloat("acin2_currc"));
                    list.add(data);
                }
                return list;
            }
        });
        return list;
    }
    public List<PwrHisRealDcoutInDto> getHalfHourPwrHisDcoutData(String tableName,Integer granularity) {
        String sql="select  distinct record_datetime,dcout_vol,dcout_curr,battgroup1_vol,battgroup1_curr,battgroup2_vol,battgroup2_curr " +
                "from (select a.*, (@i:= @i+1) as number " +
                "     from (select * from "+tableName+" "+
                "                    where record_datetime>date_sub(now(),interval 0.5 hour)) a, " +
                "                   (select @i:=0) b) c "+
                " where c.number%"+granularity+"=0 or c.number=1 ";
        sql+=" order by record_datetime asc";
        List<PwrHisRealDcoutInDto> list = sqlExecuteService.executeQuery_call(sql, new CallBack() {
            @Override
            public List getResults(ResultSet rs) throws SQLException {
                List<PwrHisRealDcoutInDto> list=new ArrayList<>();
                while (rs.next()){
                    PwrHisRealDcoutInDto data=new PwrHisRealDcoutInDto();
                    data.setRecordDatetime(rs.getTimestamp("record_datetime"));
                    data.setDcoutVol(rs.getFloat("dcout_vol"));
                    data.setDcoutCurr(rs.getFloat("dcout_curr"));
                    data.setBattgroup1Vol(rs.getFloat("battgroup1_vol"));
                    data.setBattgroup1Curr(rs.getFloat("battgroup1_curr"));
                    data.setBattgroup2Vol(rs.getFloat("battgroup2_vol"));
                    data.setBattgroup2Curr(rs.getFloat("battgroup2_curr"));
                    list.add(data);
                }
                return list;
            }
        });
        return list;
    }
    //历史测试记录具体某一次放电数据详情
    public List<BatttestdataId> getTinfDataWithTestRecordCount(String tableName, Integer testRecordCount, Integer recordNum, Integer granularity) {
        String sql="select distinct * from "+tableName+" "+
                " where test_record_count="+testRecordCount+" " +
                " and  record_num%"+granularity+"=0 or record_num=1 or record_num="+recordNum;
        sql+=" order by record_time asc";
        List<BatttestdataId> list = sqlExecuteService.executeQuery_call(sql, new CallBack() {
            @Override
            public List getResults(ResultSet rs) throws SQLException {
                List<BatttestdataId> list=new ArrayList<>();
                while (rs.next()){
                    BatttestdataId data=new BatttestdataId();
                    data.setNum(rs.getInt("num"));
                    data.setBattgroupId(rs.getInt("battgroup_id"));
                    data.setTestRecordCount(rs.getInt("test_record_count"));
                    data.setTestType(rs.getInt("test_type"));
                    data.setRecordNum(rs.getInt("record_num"));
                    data.setDataNew(rs.getInt("data_new"));
                    data.setDataAvailable(rs.getInt("data_available"));
                    data.setTestTimelong(rs.getInt("test_timelong"));
                    data.setTestCurr(rs.getFloat("test_curr"));
                    data.setTestCap(rs.getFloat("test_cap"));
                    data.setMonNum(rs.getInt("mon_num"));
                    data.setMonVol(rs.getFloat("mon_vol"));
                    data.setMonTmp(rs.getFloat("mon_tmp"));
                    data.setMonRes(rs.getFloat("mon_res"));
                    data.setTestStarttime(rs.getTimestamp("test_starttime"));
                    data.setRecordTime(rs.getTimestamp("record_time"));
                    data.setGroupVol(rs.getFloat("group_vol"));
                    data.setOnlineVol(rs.getFloat("online_vol"));
                    list.add(data);
                }
                return list;
            }
        });
        return list;
    }
}