whyclj
2020-07-22 a5729100cb1eaa3584b3a194e46e1b8b52b3ed1a
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
package com.fgkj.dao.impl;
 
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
 
import com.fgkj.dao.BaseDAO;
import com.fgkj.dao.BattTestData;
import com.fgkj.dao.CallBack;
import com.fgkj.dao.DAOHelper;
import com.fgkj.dao.LimitNumberFactory;
import com.fgkj.db.DBUtil;
import com.fgkj.dto.Fbsdev_Statechange_inf;
import com.fgkj.dto.Page;
 
public class Fbsdev_Statechange_infImpl implements BaseDAO,CallBack{
 
    public List getResults(ResultSet rs) {
        // TODO Auto-generated method stub
        return null;
    }
 
    public boolean add(Object obj) {
        // TODO Auto-generated method stub
        return false;
    }
 
    public boolean update(Object obj) {
        // TODO Auto-generated method stub
        return false;
    }
 
    public boolean del(Object obj) {
        // TODO Auto-generated method stub
        return false;
    }
     
    public List searchAll() {
        // TODO Auto-generated method stub
        return null;
    }
    //根据设备id,时间等条件筛选设备
    public List serchByCondition(Object obj) {
        Fbsdev_Statechange_inf state_inf=(Fbsdev_Statechange_inf) obj;
        Page page=state_inf.getPage();
        String sql="";
        String numberSql=" SELECT FOUND_ROWS() number";
        Connection conn=DBUtil.getConn();
        String baseSql="select SQL_CALC_FOUND_ROWS distinct dev_id,rec_time,last_stat,now_stat,eve_type,module_num,state_change_reason,dev_alarm,stationName " +
                       "  from db_app_sys.tb_fbsdev_statechange_inf,db_battinf.tb_battinf " +
                       "  where db_app_sys.tb_fbsdev_statechange_inf.dev_id=db_battinf.tb_battinf.fbsdeviceid  " +
                       "  and rec_time>? and rec_time<? ";
        //机房筛选
        String devSqlT=" and dev_id=? ";
        String devSqlF=" and dev_id!=? ";
        if(state_inf.getDev_id()!=0){
            baseSql+=devSqlT;
        }else{
            baseSql+=devSqlF;
        }
        //变更原因
        String reaSqlT=" and state_change_reason=?";
        String reaSqlF=" and state_change_reason!=?";
        if(state_inf.getState_change_reason()!=-1){
            baseSql+=reaSqlT;
        }else{
            baseSql+=reaSqlF;
        }
        //排序分页
        String endSql=" order by rec_time desc  limit ?,? ";
        sql=baseSql+endSql;
        //System.out.println(sql);
        List<Fbsdev_Statechange_inf> list=DAOHelper.executeQueryLimit(sql, conn, new Object[]{state_inf.getRec_time(),state_inf.getRec_time1(),state_inf.getDev_id(),state_inf.getState_change_reason(),(page.getPageCurr()-1)*page.getPageSize(),page.getPageSize()}, 
                new CallBack() {
                    
                    public List getResults(ResultSet rs) {
                        List list=new ArrayList();
                        try {
                            while(rs.next()){
                                Fbsdev_Statechange_inf state_inf=new Fbsdev_Statechange_inf();
                                state_inf.setDev_id(rs.getInt("dev_id"));
                                state_inf.setRec_time(rs.getTimestamp("rec_time"));
                                state_inf.setLast_stat(rs.getInt("last_stat"));
                                state_inf.setLast_stat_name(BattTestData.getFbsdev_Statechange(rs.getInt("eve_type"),rs.getInt("last_stat")));
                                state_inf.setNow_stat(rs.getInt("now_stat"));
                                state_inf.setNow_stat_name(BattTestData.getFbsdev_Statechange(rs.getInt("eve_type"),rs.getInt("now_stat")));
                                state_inf.setState_change_reason(rs.getInt("state_change_reason"));
                                state_inf.setState_change_reason_name(BattTestData.getStopType(BattTestData.TEST_LOADER_FBS9100S, rs.getInt("state_change_reason")));
                                state_inf.setDev_alarm(rs.getInt("dev_alarm"));
                                state_inf.setEve_type(rs.getInt("eve_type"));
                                state_inf.setEve_type_name(BattTestData.getEve_type_name(rs.getInt("eve_type")));
                                state_inf.setModule_num(rs.getInt("module_num"));
                                state_inf.setNote(rs.getString("stationName"));
                                list.add(state_inf);
                            }
                        } catch (SQLException e) {
                            // TODO Auto-generated catch block
                            e.printStackTrace();
                        }
                        return list;
                    }
                });
        //去掉limit条件后的总数
        int number=LimitNumberFactory.GetLimtitNumber(conn, numberSql);
        Page p=new Page();
        p.setPageAll(number);
        if(list!=null&&list.size()>0){
            list.get(list.size()-1).setPage(p);
        }
        return list;
    }
 
    public List serchByInfo(Object obj) {
        // TODO Auto-generated method stub
        return null;
    }
 
}