whyclxw
2025-03-25 a7fef2846505b08e0711345b17902e7381612d23
src/main/java/com/whyc/service/SubTableService.java
@@ -1,6 +1,7 @@
package com.whyc.service;
import com.whyc.mapper.CallBack;
import com.whyc.pojo.db_lock_alarm.LockAlarmHis;
import com.whyc.pojo.db_lock_his.LockHis;
import com.whyc.util.ActionUtil;
import com.whyc.util.ThreadLocalUtil;
@@ -19,7 +20,7 @@
    private MybatisSqlExecuteService sqlExecuteService;
    //锁的历史记录总数
    public int getLockHisCount(LockHis his) {
        String sql="SELECT  count(*) as number FROM db_lock_his"+ his.getRecordYear()+" history " +
        String sql="SELECT  count(*) as number FROM db_lock_his."+ his.getRecordYear()+" history " +
                " where history.lock_id="+ his.getLockId() ;
        if(his.getStartTime()!=null){
            sql+=" and record_time  >='"+ ThreadLocalUtil.format(his.getStartTime(),1)+"' ";
@@ -47,8 +48,8 @@
        return num;
    }
    //锁的历史记录
    public List<LockHis> getBattHisList(LockHis his) {
        String sql="SELECT * FROM db_lock_his"+ his.getRecordYear()+" history " +
    public List<LockHis> getLockHisList(LockHis his) {
        String sql="SELECT * FROM db_lock_his."+ his.getRecordYear()+" history " +
                " where history.lock_id="+  his.getLockId() ;
        if(his.getStartTime()!=null){
            sql+=" and record_time  >='"+ ThreadLocalUtil.format(his.getStartTime(),1)+"' ";
@@ -77,5 +78,141 @@
        return list;
    }
    //锁的历史记录
    public List<LockHis> getLockHisWithReal(LockHis his) {
        String sql="SELECT * FROM db_lock_his."+ his.getRecordYear()+" history " +
                " where history.lock_id="+  his.getLockId() ;
        if(his.getStartTime()!=null){
            sql+=" and record_time  >='"+ ThreadLocalUtil.format(his.getStartTime(),1)+"' ";
        }
        if(his.getEndTime()!=null){
            sql+=" and record_time  <='"+ThreadLocalUtil.format(his.getEndTime(),1)+"' ";
        }
        sql+="  ORDER BY record_time asc ";
        List<LockHis> list=sqlExecuteService.executeQuery_call(sql, new CallBack() {
            @Override
            public List getResults(ResultSet rs) throws SQLException {
                List list=new ArrayList();
                while (rs.next()){
                    LockHis data=new LockHis();
                    data.setNum(rs.getInt("num"));
                    data.setLockId(rs.getInt("lock_id"));
                    data.setRecordTime(rs.getTimestamp("record_time"));
                    data.setLockState(rs.getInt("lock_state"));
                    data.setUnlockType(rs.getInt("unlock_type"));
                    data.setUnlockId(rs.getString("unlock_id"));
                    list.add(data);
                }
                return list;
            }
        });
        return list;
    }
    //锁的告警历史记录总数
    public int getLockAlmHisCount(LockAlarmHis his) {
        String sql="SELECT  count(*) as number FROM db_lock_alarm."+ his.getRecordYear()+" history " +
                " where  1=1 ";
        if(his.getLids()!=null&&his.getLids().size()>0){
            List<Integer> lids=his.getLids();
            sql+=" and  history.lock_id in (";
            for (int i=0;i<lids.size();i++) {
                if(i==lids.size()-1){
                    sql=sql+lids.get(i)+") ";
                }else{
                    sql=sql+lids.get(i)+",";
                }
            }
        }
        if(his.getStartTime()!=null){
            sql+=" and alm_start_time  >='"+ ThreadLocalUtil.format(his.getStartTime(),1)+"' ";
        }
        if(his.getEndTime()!=null){
            sql+=" and alm_start_time  <='"+ThreadLocalUtil.format(his.getEndTime(),1)+"' ";
        }
        if(his.getAlmIds()!=null){
            String[] almId=his.getAlmIds().split(",");
            sql+=" and  history.alm_id in (";
            for (int i=0;i<almId.length;i++) {
                if(i==almId.length-1){
                    sql=sql+almId[i]+") ";
                }else{
                    sql=sql+almId[i]+",";
                }
            }
        }
        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;
    }
    //锁的告警历史记录
    public List<LockAlarmHis> getLockAlmHisList(LockAlarmHis his) {
        String sql="SELECT * FROM db_lock_alarm."+ his.getRecordYear()+" history " +
                " where 1=1 " ;
        if(his.getLids()!=null&&his.getLids().size()>0){
            List<Integer> lids=his.getLids();
            sql+=" and  history.lock_id in (";
            for (int i=0;i<lids.size();i++) {
                if(i==lids.size()-1){
                    sql=sql+lids.get(i)+") ";
                }else{
                    sql=sql+lids.get(i)+",";
                }
            }
        }
        if(his.getStartTime()!=null){
            sql+=" and alm_start_time  >='"+ ThreadLocalUtil.format(his.getStartTime(),1)+"' ";
        }
        if(his.getEndTime()!=null){
            sql+=" and alm_start_time  <='"+ThreadLocalUtil.format(his.getEndTime(),1)+"' ";
        }
        if(his.getAlmIds()!=null){
            String[] almId=his.getAlmIds().split(",");
            sql+=" and  history.alm_id in (";
            for (int i=0;i<almId.length;i++) {
                if(i==almId.length-1){
                    sql=sql+almId[i]+") ";
                }else{
                    sql=sql+almId[i]+",";
                }
            }
        }
        sql+="  ORDER BY alm_start_time asc  limit "+ his.getLimitStart()+","+ his.getLimitEnd()+" ";
        List<LockAlarmHis> list=sqlExecuteService.executeQuery_call(sql, new CallBack() {
            @Override
            public List getResults(ResultSet rs) throws SQLException {
                List list=new ArrayList();
                while (rs.next()){
                    LockAlarmHis data=new LockAlarmHis();
                    data.setNum(rs.getInt("num"));
                    data.setLockId(rs.getInt("lock_id"));
                    data.setAlmId(rs.getInt("alm_id"));
                    data.setAlmSource(rs.getInt("alm_source"));
                    data.setAlmStartTime(rs.getTimestamp("alm_start_time"));
                    data.setAlmConfirmedTime(rs.getTimestamp("alm_confirmed_time"));
                    data.setAlmEndTime(rs.getTimestamp("alm_end_time"));
                    data.setAlmIsConfirmed(rs.getInt("alm_is_confirmed"));
                    list.add(data);
                }
                return list;
            }
        });
        return list;
    }
}