package com.fgkj.dao.impl; import java.sql.ResultSet; import java.sql.SQLException; import java.text.ParseException; import java.util.ArrayList; import java.util.Date; import java.util.List; import com.fgkj.dao.BaseDAO; import com.fgkj.dao.CallBack; import com.fgkj.dao.DAOHelper; import com.fgkj.db.DBUtil; import com.fgkj.db.IDatabaseName; import com.fgkj.dto.Battresdata_inf; import com.fgkj.dto.Batttestdata_inf; import com.fgkj.dto.Batttestdatastop; import com.sun.org.apache.commons.logging.impl.NoOpLog; public class Battresdata_infDAOImpl implements BaseDAO,CallBack{ public List getResults(ResultSet rs) { List list=new ArrayList(); try { while(rs.next()){ Battresdata_inf b=new Battresdata_inf(); b.setNum(rs.getInt("num")); b.setBattGroupId(rs.getInt("BattGroupId")); b.setTest_record_count(rs.getInt("test_record_count")); b.setTest_record_count_ex(rs.getInt("test_record_count_ex")); b.setTest_type(rs.getInt("test_type")); b.setData_new(rs.getFloat("data_new")); b.setData_available(rs.getInt("data_available")); b.setTest_starttime(rs.getTimestamp("test_starttime")); b.setTest_starttime_ex(rs.getTimestamp("test_starttime_ex")); b.setTest_devtype(rs.getInt("test_devtype")); b.setRecord_time(rs.getTimestamp("record_time")); b.setGroup_vol(rs.getFloat("group_vol")); b.setTest_curr(rs.getFloat("test_curr")); b.setUpload_usr_id(rs.getInt("upload_usr_id")); list.add(b); //System.out.println(b); } } catch (SQLException e) { e.printStackTrace(); } return list; } public boolean add(Object obj) { Battresdata_inf binf=(Battresdata_inf) obj; String sql="insert into db_batt_testdata.tb_battresdata_inf(BattGroupId,test_record_count,test_record_count_ex,test_type,data_new,data_available,test_starttime,test_starttime_ex,test_devtype,record_time,group_vol," + "test_curr,upload_usr_id) values(?,?,?,?,?,?,?,?,?,?,?,?,?)"; Boolean bl=DAOHelper.executeUpdate(DBUtil.getConn(), sql, new Object[]{binf.getBattGroupId(),binf.getTest_record_count(),binf.getTest_record_count_ex(), binf.getTest_type(),binf.getData_new(),binf.getData_available(),binf.getTest_starttime(),binf.getTest_starttime_ex(),binf.getTest_devtype(),binf.getRecord_time(),binf.getGroup_vol(), binf.getTest_curr(),binf.getUpload_usr_id()}); return bl; } public boolean update(Object obj) { Battresdata_inf binf=(Battresdata_inf) obj; String sql="update db_batt_testdata.tb_battresdata_inf set BattGroupId=?,test_record_count=?,test_record_count_ex=?,test_type=?,data_new=?,data_available=?,test_starttime=?,test_starttime_ex=?,test_devtype=?,record_time=?,group_vol=?," + "test_curr=?,upload_usr_id=? where num=?"; Boolean bl=DAOHelper.executeUpdate(DBUtil.getConn(), sql, new Object[]{binf.getBattGroupId(),binf.getTest_record_count(),binf.getTest_record_count_ex(), binf.getTest_type(),binf.getData_new(),binf.getData_available(),binf.getTest_starttime(),binf.getTest_starttime_ex(),binf.getTest_devtype(),binf.getRecord_time(),binf.getGroup_vol(), binf.getTest_curr(),binf.getUpload_usr_id(),binf.getNum()}); return bl; } //6.1电池充放电删除操作 public boolean del(Object obj) { Battresdata_inf rinf=(Battresdata_inf) obj; String sql="delete from db_batt_testdata.tb_battresdata_inf where num=?"; Boolean bl=DAOHelper.executeUpdate(DBUtil.getConn(), sql, new Object[]{rinf.getNum()}); return bl; } //电池充/放电数据管理删除 public String delPro(Object obj) { Battresdata_inf rinf=(Battresdata_inf) obj; String sql="delete from db_batt_testdata.tb_battresdata_inf where num="+rinf.getNum(); return sql; } public List searchAll() { String sql="select * from db_batt_testdata.tb_battresdata_inf"; // System.out.println(sql); List list=DAOHelper.executeQuery(sql, DBUtil.getConn(), null, new Battresdata_infDAOImpl()); return list; } //1.1测试battgroupid在battresdata_inf中是否存在 public List judge(Object obj){ Battresdata_inf bti=(Battresdata_inf)obj; String sql="select table_name from `INFORMATION_SCHEMA`.`TABLES` " + "where table_name ='tb_battresdata_"+bti.getBattGroupId()+"'and TABLE_SCHEMA='db_batt_testdata'"; return DAOHelper.executeQuery(sql, DBUtil.getConn(), null, new CallBack() { public List getResults(ResultSet rs) { List list=new ArrayList(); try { while(rs.next()){ String name=rs.getString("table_name"); list.add(name); //System.out.println(binf); } } catch (SQLException e) { e.printStackTrace(); } return list; } }); } //battgroupid是不是存在battresdata_inf中 public List serchByCondition(Object obj) { Battresdata_inf btd=(Battresdata_inf)obj; String sql="select num,BattGroupId,test_record_count,test_record_count_ex,test_type,data_new,data_available,test_starttime,test_starttime_ex,test_devtype,record_time,group_vol,test_curr,upload_usr_id from db_batt_testdata.tb_battresdata_inf" + " where battgroupid=?"; // System.out.println(sql); return DAOHelper.executeQuery(sql, DBUtil.getConn(), new Object[]{btd.getBattGroupId()}, new Battresdata_infDAOImpl()); } //6.2根据battgroupi和test_starttime查test_record_count public List serchTest_record_count(Object obj) { Battresdata_inf rinf=(Battresdata_inf)obj; String sql="select test_record_count " + "from db_batt_testdata.tb_battresdata_inf where BattGroupId=? and (test_starttime)=(?) "; return DAOHelper.executeQuery(sql, DBUtil.getConn(), new Object[]{rinf.getBattGroupId(),rinf.getTest_starttime()}, new CallBack() { public List getResults(ResultSet rs) { List list=new ArrayList(); try { while(rs.next()){ Battresdata_inf rinf=new Battresdata_inf(); rinf.setTest_record_count(rs.getInt("test_record_count")); list.add(rinf); //System.out.println(rinf); } } catch (SQLException e) { e.printStackTrace(); } return list; } }); } //6.4.1根据条件查询符合条件的测试完成的电池组(蓄电池电导测试完成率) /* * data_available 中存放层次 */ public List serchComplete(Object obj){ Battresdata_inf rinf=(Battresdata_inf) obj; String sql=""; String baseSql="select distinct(tb_battresdata_inf.battgroupid) from db_batt_testdata.tb_battresdata_inf,db_battinf.tb_battinf " + "where tb_battresdata_inf.BattGroupId=db_battinf.tb_battinf.BattGroupId " + "and (test_starttime)>=(?) and (test_starttime)<=(?) "; //上传方式 String usrSqlT="and upload_usr_id!=? " ; String usrSqlU="and upload_usr_id!=0 and upload_usr_id!=? " ; String usrSqlF="and upload_usr_id=? " ; if(rinf.getUpload_usr_id()==100){//全部 baseSql+=usrSqlT; }else{ if(rinf.getUpload_usr_id()==0){ baseSql+=usrSqlF; }else{ baseSql+=usrSqlU; } } String levelSql=" and db_battinf.tb_battinf.stationname4 like ? and db_battinf.tb_battinf.stationname3 like ? and db_battinf.tb_battinf.stationname2 like ? and db_battinf.tb_battinf.stationname1 like ? ";//分组层次 sql=baseSql+levelSql; //System.out.println(sql); List list=DAOHelper.executeQuery(sql, DBUtil.getConn(), new Object[]{rinf.getTest_starttime(),rinf.getTest_starttime_ex(),rinf.getUpload_usr_id(),"%"+rinf.getStationname4()+"%","%"+rinf.getStationname3()+"%","%"+rinf.getStationname2()+"%","%"+rinf.getStationname1()+"%"}, new CallBack() { public List getResults(ResultSet rs) { List list=new ArrayList(); try { while(rs.next()){ Battresdata_inf rinf=new Battresdata_inf(); rinf.setBattGroupId(rs.getInt("battGroupId")); list.add(rinf); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } return list; } }); return list; } //6.4.3根据条件查询符合条件的测试完成的电池组(蓄电池电导合格率) /* * data_available 中存放层次 */ public List serchSer(Object obj){ Battresdata_inf rinf=(Battresdata_inf) obj; String sql=""; String baseSql="select distinct(tb_battresdata_inf.battgroupid),test_starttime,test_record_count from db_batt_testdata.tb_battresdata_inf,db_battinf.tb_battinf " + "where tb_battresdata_inf.BattGroupId=db_battinf.tb_battinf.BattGroupId " + //"and upload_usr_id=? "+ "and (test_starttime)>=(?) and (test_starttime)<=(?) "; //上传方式 String usrSqlT=" and upload_usr_id!=? " ; String usrSqlU=" and upload_usr_id!=0 and upload_usr_id!=? " ; String usrSqlF=" and upload_usr_id=? " ; if(rinf.getUpload_usr_id()==100){//全部 baseSql+=usrSqlT; }else{ if(rinf.getUpload_usr_id()==0){ baseSql+=usrSqlF; }else{ baseSql+=usrSqlU; } } String levelSql=" and db_battinf.tb_battinf.stationname4 like ? and db_battinf.tb_battinf.stationname3 like ? and db_battinf.tb_battinf.stationname2 like ? and db_battinf.tb_battinf.stationname1 like ? ";//分组层次 sql=baseSql+levelSql; String endSql=" order by tb_battresdata_inf.battgroupid asc,test_starttime desc "; sql=sql+=endSql; //System.out.println(sql); List list=DAOHelper.executeQuery(sql, DBUtil.getConn(), new Object[]{rinf.getTest_starttime(),rinf.getTest_starttime_ex(),rinf.getUpload_usr_id(),"%"+rinf.getStationname4()+"%","%"+rinf.getStationname3()+"%","%"+rinf.getStationname2()+"%","%"+rinf.getStationname1()+"%"}, new CallBack() { public List getResults(ResultSet rs) { List list=new ArrayList(); int id=0; try { while(rs.next()){ Battresdata_inf rinf=new Battresdata_inf(); if(id==rs.getInt("battGroupId")){ //时间倒序取最近的一次 continue; }else{ rinf.setBattGroupId(rs.getInt("battGroupId")); id=rs.getInt("battGroupId"); } rinf.setTest_record_count(rs.getInt("test_record_count")); rinf.setTest_starttime(rs.getTimestamp("test_starttime")); list.add(rinf); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } return list; } }); return list; } public List serchByInfo(Object obj) { // TODO Auto-generated method stub return null; } public static void main(String[] args) { Battresdata_infDAOImpl bstd=new Battresdata_infDAOImpl(); Battresdata_inf bst=new Battresdata_inf(); bst.setTest_record_count(1); List list=bstd.serchByCondition(bst); System.out.println(list.size()); for(Battresdata_inf b:list){ System.out.println(b); } // List list=bstd.searchAll(); // for(Battresdata_inf b:list){ // System.out.println(b); // } } }