whyclxw
2024-07-01 0ce771b4a4ff5897dc91bb1b84a4561781b00ca5
src/main/java/com/whyc/service/SubTablePageInfoService.java
@@ -1,8 +1,10 @@
package com.whyc.service;
import com.whyc.dto.BreakAlarmDto;
import com.whyc.dto.DevAlarmHisDto;
import com.whyc.mapper.CallBack;
import com.whyc.pojo.db_ckpwrdev_alarm.CKPowerDevAlarmHistory;
import com.whyc.pojo.db_ckpwrdev_break_alarm.CKPowerDevBreakAlarmHistory;
import com.whyc.util.DateUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -53,7 +55,7 @@
        return num;
    }
    //查询devalm历史告警
    public List getList2(DevAlarmHisDto alm){
    public List getListDevAlm(DevAlarmHisDto alm){
        String sql="select  * from db_ckpwrdev_alarm." +alm.getRecordYear()
                +" where 1=1 ";
        if(alm.getAlmStartTime()!=null){
@@ -126,4 +128,125 @@
        });
        return list;
    }
    //查询break历史告警数量
    public int getCountForBreakAlm(BreakAlarmDto alm) {
        String sql="select  count(distinct  breakAlarm.num) as number from db_ckpwrdev_break_alarm." +alm.getRecordYear()+" breakAlarm ,db_ckpwrdev_break_alarm.tb_ckpowerdev_break_alarm_config,db_ckpwrdev_inf.tb_breaker_inf"
                +" where   breakAlarm.alm_id=tb_ckpowerdev_break_alarm_config.alm_id " +
                "            and tb_ckpowerdev_break_alarm_config.breaker_id=tb_breaker_inf.breaker_id ";
        if(alm.getAlmStarttime()!=null){
            sql+=" and alm_starttime  >='"+ DateUtil.format_YYYY_MM_DD_HH_MM_SS(alm.getAlmStarttime())+"' ";
        }
        if(alm.getAlmEndTime()!=null){
            sql+=" and alm_endtime  <='"+DateUtil.format_YYYY_MM_DD_HH_MM_SS(alm.getAlmEndTime())+"' ";
        }
        if(alm.getAlmName()!=null){
            sql+=" and breakAlarm.alm_name='"+alm.getAlmName()+"'";
        }
        if(alm.getBreakerType()!=null){
            sql+=" and tb_breaker_inf.breaker_type='"+alm.getBreakerType()+"'";
        }
        if(alm.getBreakerName()!=null){
            sql+=" and tb_breaker_inf.breaker_name='"+alm.getBreakerName()+"'";
        }
        List list = sqlExecuteService.executeQuery_call(sql, new CallBack() {
            @Override
            public List getResults(ResultSet rs) throws SQLException {
                LinkedList<Object> temp = new LinkedList<>();
                try {
                    while (rs.next())
                        temp.add(rs.getInt("number"));
                } catch (SQLException e) {
                    e.printStackTrace();
                }
                return temp;
            }
        });
        int num =0;
        if(list!=null){
            num= (int) list.get(0);
        }
        return num;
    }
    //查询break历史告警数量
    public List getListBreakAlm(BreakAlarmDto alm){
        String sql="select  breakAlarm.*,breaker_type,breaker_name,breaker_addr from db_ckpwrdev_break_alarm." +alm.getRecordYear()+" breakAlarm,db_ckpwrdev_break_alarm.tb_ckpowerdev_break_alarm_config,db_ckpwrdev_inf.tb_breaker_inf"
                +" where   breakAlarm.alm_id=tb_ckpowerdev_break_alarm_config.alm_id " +
                "            and tb_ckpowerdev_break_alarm_config.breaker_id=tb_breaker_inf.breaker_id ";
        if(alm.getAlmStarttime()!=null){
            sql+=" and alm_starttime  >='"+ DateUtil.format_YYYY_MM_DD_HH_MM_SS(alm.getAlmStarttime())+"' ";
        }
        if(alm.getAlmEndTime()!=null){
            sql+=" and alm_endtime  <='"+DateUtil.format_YYYY_MM_DD_HH_MM_SS(alm.getAlmEndTime())+"' ";
        }
        if(alm.getAlmName()!=null){
            sql+=" and breakAlarm.alm_name='"+alm.getAlmName()+"'";
        }
        if(alm.getBreakerType()!=null){
            sql+=" and tb_breaker_inf.breaker_type='"+alm.getBreakerType()+"'";
        }
        if(alm.getBreakerName()!=null){
            sql+=" and tb_breaker_inf.breaker_name='"+alm.getBreakerName()+"'";
        }
        sql+="  ORDER BY alm_starttime desc limit "+alm.getLimitStart()+","+alm.getLimitEnd()+" ";
        List list = sqlExecuteService.executeQuery_call(sql, new CallBack() {
            @Override
            public List getResults(ResultSet rs) throws SQLException {
                List<CKPowerDevBreakAlarmHistory> list=new ArrayList<>();
                while (rs.next()){
                    CKPowerDevBreakAlarmHistory ph=new CKPowerDevBreakAlarmHistory();
                    ph.setNum(rs.getLong("num"));
                    ph.setPowerDeviceId(rs.getInt("power_device_id"));
                    ph.setAlmId(rs.getInt("alm_id"));
                    ph.setAlmName(rs.getString("alm_name"));
                    ph.setAlmLevel(rs.getInt("alm_level"));
                    ph.setAlmStarttime(rs.getTimestamp("alm_starttime"));
                    ph.setAlmEndtime(rs.getTimestamp("alm_endtime"));
                    ph.setAlmIsConfirmed(rs.getInt("alm_is_confirmed"));
                    ph.setAlmConfirmedTime(rs.getTimestamp("alm_confirmed_time"));
                    ph.setAlmClearedType(rs.getInt("alm_cleared_type"));
                    ph.setBreakerType(rs.getString("breaker_type"));
                    ph.setBreakerName(rs.getString("breaker_name"));
                    ph.setBreakerAddr(rs.getString("breaker_addr"));
                    list.add(ph);
                }
                return list;
            }
        });
        return list;
    }
    //查询所有的历史时间表
    public List getBreakAlmHisList() {
        String sql="SELECT table_name FROM information_schema.tables WHERE table_name LIKE 'tb_ckpowerdev_break_alarm_history%'";
        List list = sqlExecuteService.executeQuery_call(sql, new CallBack() {
            @Override
            public List getResults(ResultSet rs) throws SQLException {
                List<String> list=new ArrayList<>();
                while (rs.next()){
                    list.add(rs.getString("table_name"));
                }
                return list;
            }
        });
        return list;
    }
    //统计按照等级的告警信息
    public List<CKPowerDevBreakAlarmHistory> selectBreakLevelCountList(String tableYear) {
        String sql="select  alm_level from db_ckpwrdev_break_alarm." +tableYear;
        List list = sqlExecuteService.executeQuery_call(sql, new CallBack() {
            @Override
            public List getResults(ResultSet rs) throws SQLException {
                List<CKPowerDevBreakAlarmHistory> list=new ArrayList<>();
                while (rs.next()){
                    CKPowerDevBreakAlarmHistory ph=new CKPowerDevBreakAlarmHistory();
                    ph.setAlmLevel(rs.getInt("alm_level"));
                    list.add(ph);
                }
                return list;
            }
        });
        return list;
    }
}