1
81041
2019-06-20 ab3c4acf83f54f8449ca8664c4a2bb79bd30f297
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
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
package com.fgkj.dao.impl;
 
import java.sql.Blob;
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.CallBack;
import com.fgkj.dao.DAOHelper;
import com.fgkj.dao.LimitNumberFactory;
import com.fgkj.db.DBUtil;
import com.fgkj.dto.BattInf;
import com.fgkj.dto.Deverror_record;
import com.fgkj.dto.Page;
import com.fgkj.dto.User_Chart;
 
public class Deverror_recordImpl implements BaseDAO,CallBack{
 
    public List getResults(ResultSet rs) {
        // TODO Auto-generated method stub
        return null;
    }
   //用户手动添加问题
    public boolean add(Object obj) {
        Deverror_record dev_record=(Deverror_record) obj;
        String sql=" insert into db_battinf.tb_deverror_record(stationId,record_time,error_descript,error_dispose,uid,uname,picture_num,error_state ";
        String endsql=") values(?,?,?,?,?,?,?,?";
        List list=new ArrayList();
        list.add(dev_record.getStationId());
        list.add(dev_record.getRecord_time());
        list.add(dev_record.getError_descript());
        list.add(dev_record.getError_dispose());
        list.add(dev_record.getUid());
        list.add(dev_record.getUname());
        list.add(dev_record.getPicture_num());
        list.add(dev_record.getError_state());
        if(dev_record.getPicture_num()>=1){
            sql+=",picture_one";
            endsql+=",? ";
            list.add(dev_record.getPicture_one());
        }
        if(dev_record.getPicture_num()>=2){
            sql+=",picture_two";
            endsql+=",? ";
            list.add(dev_record.getPicture_two());
        }if(dev_record.getPicture_num()>=3){
            sql+=",picture_three";
            endsql+=",? ";
            list.add(dev_record.getPicture_three());
        }if(dev_record.getPicture_num()>=4){
            sql+=",picture_four";
            endsql+=",? ";
            list.add(dev_record.getPicture_four());
        }
        endsql+=")";
        sql+=endsql;
        //System.err.println(sql);
        boolean bl=DAOHelper.executeUpdatePicture(DBUtil.getConn(), sql, list);
        return bl;
    }
    //用户处理的结果
    public boolean update(Object obj) {
        Deverror_record dev_record=(Deverror_record) obj;
        List list=new ArrayList();
        //System.out.println(dev_record);
        String sql=" update db_battinf.tb_deverror_record set error_dispose=?,error_en=?,solve_uid=?,solve_uname=?,solve_picture_num=?,solve_record_time=? "; 
        String endSql=" where num=? ";
        list.add(dev_record.getError_dispose());
        list.add(dev_record.getError_en());
        list.add(dev_record.getSolve_uid());
        list.add(dev_record.getSolve_uname());
        list.add(dev_record.getSolve_picture_num());
        list.add(dev_record.getSolve_record_time());
        if (dev_record.getSolve_picture_num()>=1) {
            sql+=",solve_picture_one=? ";
            list.add(dev_record.getSolve_picture_one());
        }
        if (dev_record.getSolve_picture_num()>=2) {
            sql+=",solve_picture_two=? ";
            list.add(dev_record.getSolve_picture_two());
        }
        if (dev_record.getSolve_picture_num()>=3) {
            sql+=",solve_picture_three=? ";
            list.add(dev_record.getSolve_picture_three());
        }
        if (dev_record.getSolve_picture_num()>=4) {
            sql+=",solve_picture_four=? ";
            list.add(dev_record.getSolve_picture_four());
        }
        sql+=endSql;
        list.add(dev_record.getNum());
        boolean bl=DAOHelper.executeUpdatePicture(DBUtil.getConn(), sql,list);
        return bl;
    }
 
    public boolean del(Object obj) {
        // TODO Auto-generated method stub
        return false;
    }
 
    public List searchAll() {
        // TODO Auto-generated method stub
        return null;
    }
    //根据stationid查询设备的问题记录
    public List serchByCondition(Object obj) {
        BattInf binf=(BattInf) obj;
        Page p=binf.getPage();
        Connection conn=DBUtil.getConn();
        String numberSql=" SELECT FOUND_ROWS() number";
        String sql=" select SQL_CALC_FOUND_ROWS distinct tb_deverror_record.num,tb_deverror_record.stationid,record_time,error_descript,error_en,error_dispose,picture_num,error_state,solve_uid,solve_picture_num,uid,uname,solve_uname,solve_record_time  " +
                "  ,db_battinf.tb_battinf.stationname,stationname1,stationname2,stationname3,stationname5 " +
                "  from db_battinf.tb_deverror_record,db_battinf.tb_battinf " +
                " where tb_deverror_record.stationid=tb_battinf.stationid " +
                " and tb_deverror_record.stationid like ? and stationname1 like ? and stationname2 like ? and stationname5 like ?  " ;
        //问题类型
        String errSqlT=" and error_state!=?";
        String errSqlF=" and error_state=?";
        if(binf.getMonCount()==-1) {
            sql+=errSqlT;
        }else {
            sql+=errSqlF;
        }
        //用户管理
        String userSql=" and db_battinf.tb_battinf.StationId in(" +
                " select distinct db_user.tb_user_battgroup_baojigroup_battgroup.StationId from db_user.tb_user_battgroup_baojigroup_battgroup,db_user.tb_user_battgroup_baojigroup_usr where db_user.tb_user_battgroup_baojigroup_battgroup.baoji_group_id=db_user.tb_user_battgroup_baojigroup_usr.baoji_group_id  and db_user.tb_user_battgroup_baojigroup_usr.uId=? "+
                " ) ";
        sql+=userSql;
        
        String orderSql=" order by record_time desc ";
        sql+=orderSql;
        String limitSql=" limit ?,? ";
        sql+=limitSql;
        List<Deverror_record> list=DAOHelper.executeQueryLimit(sql, conn, new Object[]{"%"+binf.getStationId()+"%","%"+binf.getStationName1()+"%","%"+binf.getStationName2()+"%","%"+binf.getStationName5()+"%"
                ,binf.getMonCount(),binf.getNum(),(p.getPageCurr()-1)*p.getPageSize(),p.getPageSize()}, new CallBack() {
            
            public List getResults(ResultSet rs) {
                List list=new ArrayList();
                try {
                    while(rs.next()){
                        Deverror_record dev_record=new Deverror_record();
                        dev_record.setNum(rs.getInt("num"));
                        dev_record.setStationId(rs.getString("stationId"));
                        dev_record.setStationName(rs.getString("stationName"));
                        dev_record.setStationName1(rs.getString("stationName1"));
                        dev_record.setStationName2(rs.getString("stationName2"));
                        dev_record.setStationName3(rs.getString("stationName3"));
                        dev_record.setStationName5(rs.getString("stationName5"));
                        dev_record.setRecord_time(rs.getTimestamp("record_time"));
                        dev_record.setError_descript(rs.getString("error_descript"));
                        dev_record.setError_en(rs.getInt("error_en"));
                        dev_record.setError_dispose(rs.getString("error_dispose"));
                        dev_record.setPicture_num(rs.getInt("picture_num"));
                        dev_record.setError_state(rs.getInt("error_state"));
                        dev_record.setUid(rs.getInt("uid"));
                        dev_record.setUname(rs.getString("uname"));
                        dev_record.setSolve_uid(rs.getInt("solve_uid"));
                        dev_record.setSolve_uname(rs.getString("solve_uname"));
                        dev_record.setSolve_picture_num(rs.getInt("solve_picture_num"));
                        dev_record.setSolve_record_time(rs.getTimestamp("solve_record_time"));
                        Page page=new Page();
                        dev_record.setPage(page);
                        list.add(dev_record);
                    }
                } catch (SQLException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
                return list;
            }
        });
        //去掉limit条件后的总数
        int number=LimitNumberFactory.GetLimtitNumber(conn, numberSql);
        if(list!=null&&list.size()>0){
            list.get(list.size()-1).getPage().setPageAll(number);
        }
        return list;
    }
 
    //根据num和列名查询图片(note放列名字)
    public List serchByInfo(Object obj){
        final Deverror_record dev_record=(Deverror_record) obj;
        String sql="select "+dev_record.getNote()+" from db_battinf.tb_deverror_record where num=? ";
        List list=DAOHelper.executeQueryPicture(sql, DBUtil.getConn(), new Object[]{dev_record.getNum()}, new CallBack() {
            
            public List getResults(ResultSet rs) {
                List list=new ArrayList();
                try {
                    while(rs.next()){
                        Blob blob=rs.getBlob(dev_record.getNote());
                        list.add(blob);
                    }
                } catch (SQLException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
                return list;
            }
        });
        return list;
        
    }
    public static void main(String[] args) {
         Deverror_recordImpl dimpl=new Deverror_recordImpl();
         BattInf binf=new BattInf();
         binf.setNum(1002);
         binf.setStationName("");
         binf.setStationName1("湖北省");
         binf.setStationName2("");
         binf.setStationName3("");
         binf.setStationName5("");
         binf.setStationId("");
         binf.setMonCount(-1);
         Page p=new Page();
         p.setPageCurr(1);
         p.setPageSize(10);
         binf.setPage(p);
         List list=dimpl.serchByCondition(binf);
         for (Object object : list) {
            System.out.println(object);
        }
         System.out.println(list.size());
    }
 
}