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 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()); } }