package com.fgkj.dao.impl; import java.sql.ResultSet; import java.sql.SQLException; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.List; import com.fgkj.actions.ActionUtil; import com.fgkj.dao.BaseDAO; import com.fgkj.dao.BattTestData; import com.fgkj.dao.CallBack; import com.fgkj.dao.DAOHelper; import com.fgkj.db.DBUtil; import com.fgkj.db.IDatabaseName; import com.fgkj.dto.BattInf; import com.fgkj.dto.Batt_Maint_Dealarm; import com.fgkj.dto.Batt_maintenance_inf; import com.fgkj.dto.Battresdata; import com.fgkj.dto.Battresdata_inf; import com.fgkj.dto.Batttestdata_inf; import com.fgkj.dto.Batttestdatastop; import com.fgkj.dto.Page; public class BattinfThirdImpl implements BaseDAO, CallBack { public List getResults(ResultSet rs) { List list = new ArrayList(); try { while (rs.next()) { BattInf binf = new BattInf(); binf.setBattGroupId(rs.getInt("BattGroupId")); binf.setMonCount(rs.getInt("monCount")); binf.setMonVolStd(rs.getFloat("monVolStd")); binf.setMonCapStd(rs.getFloat("monCapStd")); binf.setMonResStd(rs.getFloat("monResStd")); binf.setMonSerStd(rs.getFloat("monserstd")); Batttestdata_inf tdata = new Batttestdata_inf(); tdata.setBattGroupId(rs.getInt("battGroupId")); tdata.setMax_monvol(rs.getFloat("max_monvol")); tdata.setMin_monvol(rs.getFloat("min_monvol")); tdata.setTest_type(rs.getInt("test_type")); tdata.setTest_record_count(rs.getInt("test_record_count")); Batttestdatastop sdata=new Batttestdatastop(); sdata.setTest_starttime(rs.getTimestamp("test_starttime")); sdata.setRecord_time(rs.getTimestamp("record_time")); sdata.setTest_timelong(rs.getInt("test_timelong")); sdata.setGroup_vol(rs.getFloat("group_vol")); sdata.setTest_curr(rs.getFloat("test_curr")); sdata.setTest_cap(rs.getFloat("test_cap")); sdata.setMon_num(rs.getInt("mon_num")); sdata.setMon_vol(rs.getFloat("mon_vol")); Batt_Maint_Dealarm bmd = new Batt_Maint_Dealarm(); bmd.setBinf(binf); bmd.setTdata(tdata); bmd.setSdata(sdata); list.add(bmd); } } catch (SQLException e) { e.printStackTrace(); } return list; } public boolean add(Object obj) { return false; } public boolean update(Object obj) { return false; } public boolean del(Object obj) { return false; } public List searchAll() { return null; } public List serchByInfo(Object obj) { return null; } //1.3电池单体统计分析查询(旧) public List serchByCondition1(Object obj){ Batt_Maint_Dealarm bmd = (Batt_Maint_Dealarm) obj; Batttestdata_inf tdata=bmd.getTdata(); List list = null; String sql=""; BattInf binf = bmd.getBinf(); String sqlT="select distinct(db_battinf.tb_battinf.BattgroupId),moncapstd,monvolstd,monresstd,monserstd" + ",db_batt_testdata.tb_batttestdata_inf.battgroupid,max_monvol,min_monvol,db_batt_testdata.tb_batttestdata_inf.test_record_count,test_type,test_record_count " + "from db_battinf.tb_battinf,db_batt_testdata.tb_batttestdata_inf " + "where " + "db_battinf.tb_battinf.BattgroupId=db_batt_testdata.tb_batttestdata_inf.BattGroupId " + "and db_battinf.tb_battinf.battgroupid=? and db_batt_testdata.tb_batttestdata_inf.data_available=1 " + "and db_batt_testdata.tb_batttestdata_inf.test_type=? and db_batt_testdata.tb_batttestdata_inf.test_starttype=3 "; String sqlE="select distinct(db_battinf.tb_battinf.BattgroupId),moncapstd,monvolstd,monresstd,monserstd" + ",db_batt_testdata.tb_battresdata_inf.battgroupid,db_batt_testdata.tb_battresdata_inf.test_record_count,test_type,test_record_count " + "from db_battinf.tb_battinf,db_batt_testdata.tb_battresdata_inf " + "where " + "db_battinf.tb_battinf.BattgroupId=db_batt_testdata.tb_battresdata_inf.BattGroupId " + "and db_battinf.tb_battinf.battgroupid=? and db_batt_testdata.tb_battresdata_inf.data_available=1 and db_batt_testdata.tb_battresdata_inf.test_type=? "; //用于维护区 String station1SqlT=" and stationname1!=? ";//全部 String station1SqlF=" and stationname1=? "; if(binf.getStationName1().equals("")){ sqlT+=station1SqlT; sqlE+=station1SqlT; }else{ sqlT+=station1SqlF; sqlE+=station1SqlF; } //用于机房站点 String stationSqlT=" and stationname!=? ";//全部 String stationSqlF=" and stationname=? "; if(binf.getStationName().equals("")){ sqlT+=stationSqlT; sqlE+=stationSqlT; }else{ sqlT+=stationSqlF; sqlE+=stationSqlF; } //按照battgroupid排序 String endSql=" order by db_battinf.tb_battinf.battgroupid "; sqlT+=endSql; sqlE+=endSql; if(tdata.getTest_type()==BattTestData.BATT_DISCHARGE){ sql=sqlT; //System.out.println(sql); list=DAOHelper.executeQuery(sql, DBUtil.getConn(), new Object[]{binf.getBattGroupId(),tdata.getTest_type(),binf.getStationName1(),binf.getStationName()},new BattinfThirdImpl()); }else if(tdata.getTest_type()==BattTestData.BATT_RES){ sql=sqlE; //System.out.println(sql); list=DAOHelper.executeQuery(sql, DBUtil.getConn(), new Object[]{binf.getBattGroupId(),tdata.getTest_type(),binf.getStationName1(),binf.getStationName()},new CallBack() { public List getResults(ResultSet rs) { List list=new ArrayList(); try { while(rs.next()){ BattInf binf=new BattInf(); binf.setBattGroupId(rs.getInt("BattGroupId")); binf.setMonVolStd(rs.getFloat("monVolStd")); binf.setMonCapStd(rs.getFloat("monCapStd")); binf.setMonResStd(rs.getFloat("monResStd")); binf.setMonSerStd(rs.getFloat("monSerStd")); Battresdata_inf rinf=new Battresdata_inf(); rinf.setBattGroupId(rs.getInt("battGroupId")); rinf.setTest_record_count(rs.getInt("test_record_count")); rinf.setTest_type(rs.getInt("test_type")); rinf.setTest_record_count(rs.getInt("test_record_count")); Batt_Maint_Dealarm bmd=new Batt_Maint_Dealarm(); bmd.setBinf(binf); bmd.setRinf(rinf); list.add(bmd); } } catch (SQLException e) { e.printStackTrace(); } return list; } }); } return list; } //1.3电池单体统计分析查询 public List serchByCondition(Object obj){ Batt_Maint_Dealarm bmd = (Batt_Maint_Dealarm) obj; Batttestdata_inf tdata=bmd.getTdata(); List list = null; String sql=""; BattInf binf = bmd.getBinf(); String sqlT="select distinct(db_battinf.tb_battinf.BattgroupId),moncount,moncapstd,monvolstd,monresstd,monserstd" + ",db_batt_testdata.tb_batttestdata_inf.battgroupid,max_monvol,min_monvol,db_batt_testdata.tb_batttestdata_inf.test_record_count,db_batt_testdata.tb_batttestdata_inf.test_type,db_batt_testdata.tb_batttestdata_inf.test_record_count" + ",db_batt_testdata.tb_batttestdatastop_"+binf.getBattGroupId()+".test_starttime,db_batt_testdata.tb_batttestdatastop_"+binf.getBattGroupId()+".record_time,db_batt_testdata.tb_batttestdatastop_"+binf.getBattGroupId()+".test_timelong,db_batt_testdata.tb_batttestdatastop_"+binf.getBattGroupId()+".group_vol,db_batt_testdata.tb_batttestdatastop_"+binf.getBattGroupId()+".test_curr,db_batt_testdata.tb_batttestdatastop_"+binf.getBattGroupId()+".test_cap,db_batt_testdata.tb_batttestdatastop_"+binf.getBattGroupId()+".mon_num,db_batt_testdata.tb_batttestdatastop_"+binf.getBattGroupId()+".mon_vol " + " from db_battinf.tb_battinf,db_batt_testdata.tb_batttestdata_inf,db_batt_testdata.tb_batttestdatastop_"+binf.getBattGroupId()+" "+ " where " + " db_battinf.tb_battinf.BattgroupId=db_batt_testdata.tb_batttestdata_inf.BattGroupId " + " and db_batt_testdata.tb_batttestdata_inf.BattGroupId=db_batt_testdata.tb_batttestdatastop_"+binf.getBattGroupId()+".battgroupid" + " and db_batt_testdata.tb_batttestdata_inf.test_record_count=db_batt_testdata.tb_batttestdatastop_"+binf.getBattGroupId()+".test_record_count" + " and db_batt_testdata.tb_batttestdata_inf.record_num=db_batt_testdata.tb_batttestdatastop_"+binf.getBattGroupId()+".record_num" + " and db_battinf.tb_battinf.battgroupid=? and db_batt_testdata.tb_batttestdata_inf.data_available=1 " + " and db_batt_testdata.tb_batttestdata_inf.test_type=? and db_batt_testdata.tb_batttestdata_inf.test_starttype=3 "; String sqlE="select distinct(db_battinf.tb_battinf.BattgroupId),moncount,moncapstd,monvolstd,monresstd,monserstd" + " ,db_batt_testdata.tb_battresdata_inf.battgroupid,db_batt_testdata.tb_battresdata_inf.test_record_count " + " ,db_batt_testdata.tb_battresdata_" +binf.getBattGroupId()+".group_vol,db_batt_testdata.tb_battresdata_" +binf.getBattGroupId()+".test_curr,db_batt_testdata.tb_battresdata_" +binf.getBattGroupId()+".test_starttime,mon_num,mon_vol,mon_tmp,mon_res,mon_ser,conn_res " + " from db_battinf.tb_battinf,db_batt_testdata.tb_battresdata_inf,db_batt_testdata.tb_battresdata_"+binf.getBattGroupId()+" "+ " where " + " db_battinf.tb_battinf.BattgroupId=db_batt_testdata.tb_battresdata_inf.BattGroupId" + " and db_batt_testdata.tb_battresdata_inf.BattGroupId=db_batt_testdata.tb_battresdata_"+binf.getBattGroupId()+".battgroupid" + " and db_batt_testdata.tb_battresdata_inf.test_record_count=db_batt_testdata.tb_battresdata_"+binf.getBattGroupId()+".test_record_count" + " and db_battinf.tb_battinf.battgroupid=? and db_batt_testdata.tb_battresdata_inf.data_available=1 and db_batt_testdata.tb_battresdata_inf.test_type=? "; //用于单体选择 String tmonNumSqlT=" and db_batt_testdata.tb_batttestdatastop_" +binf.getBattGroupId()+".mon_num!=? "; String tmonNumSqlF=" and db_batt_testdata.tb_batttestdatastop_" +binf.getBattGroupId()+".mon_num=? "; String emonNumSqlT=" and db_batt_testdata.tb_battresdata_" +binf.getBattGroupId()+".mon_num!=? "; String emonNumSqlF=" and db_batt_testdata.tb_battresdata_" +binf.getBattGroupId()+".mon_num=? "; if(binf.getMonNum()==0){ sqlT+=tmonNumSqlT; sqlE+=emonNumSqlT; }else{ sqlT+=tmonNumSqlF; sqlE+=emonNumSqlF; } //用于维护区 String station1SqlT=" and stationname1!=? ";//全部 String station1SqlF=" and stationname1=? "; if(binf.getStationName1().equals("")){ sqlT+=station1SqlT; sqlE+=station1SqlT; }else{ sqlT+=station1SqlF; sqlE+=station1SqlF; } //用于市级 String station2SqlT=" and stationname2!=? ";//全部 String station2SqlF=" and stationname2=? "; if(binf.getStationName2().equals("")){ sqlT+=station2SqlT; sqlE+=station2SqlT; }else{ sqlT+=station2SqlF; sqlE+=station2SqlF; } //用于区县 String station5SqlT=" and stationname5!=? ";//全部 String station5SqlF=" and stationname5=? "; if(binf.getStationName5().equals("")){ sqlT+=station5SqlT; sqlE+=station5SqlT; }else{ sqlT+=station5SqlF; sqlE+=station5SqlF; } //按照battgroupid排序 String tendSql=" order by db_batt_testdata.tb_batttestdatastop_"+binf.getBattGroupId()+".test_record_count asc,db_batt_testdata.tb_batttestdatastop_" +binf.getBattGroupId()+".mon_num asc "; String eendSql=" order by db_batt_testdata.tb_battresdata_"+binf.getBattGroupId()+".test_record_count asc,db_batt_testdata.tb_battresdata_" +binf.getBattGroupId()+".mon_num asc "; //用于机房站点 String stationSqlT=" and stationname!=? ";//全部 String stationSqlF=" and stationname=? "; if(binf.getStationName().equals("")){ sqlT+=stationSqlT+tendSql; sqlE+=stationSqlT+eendSql; }else{ sqlT+=stationSqlF+tendSql; sqlE+=stationSqlF+eendSql; } if(tdata.getTest_type()==BattTestData.BATT_DISCHARGE){ sql=sqlT; //System.out.println(sql); list=DAOHelper.executeQuery(sql, DBUtil.getConn(), new Object[]{binf.getBattGroupId(),tdata.getTest_type(),binf.getMonNum(),binf.getStationName1(),binf.getStationName2(),binf.getStationName5(),binf.getStationName()},new BattinfThirdImpl()); }else if(tdata.getTest_type()==BattTestData.BATT_RES){ sql=sqlE; //System.out.println(sql); list=DAOHelper.executeQuery(sql, DBUtil.getConn(), new Object[]{binf.getBattGroupId(),tdata.getTest_type(),binf.getMonNum()*10+1,binf.getStationName1(),binf.getStationName2(),binf.getStationName5(),binf.getStationName()},new CallBack() { public List getResults(ResultSet rs) { List list=new ArrayList(); try { while(rs.next()){ BattInf binf=new BattInf(); binf.setBattGroupId(rs.getInt("BattGroupId")); binf.setMonCount(rs.getInt("monCount")); binf.setMonVolStd(rs.getFloat("monVolStd")); binf.setMonCapStd(rs.getFloat("monCapStd")); binf.setMonResStd(rs.getFloat("monResStd")); binf.setMonSerStd(rs.getFloat("monSerStd")); Battresdata_inf rinf=new Battresdata_inf(); rinf.setBattGroupId(rs.getInt("battGroupId")); rinf.setTest_record_count(rs.getInt("test_record_count")); Battresdata rdata = new Battresdata(); rdata.setBattGroupId(rs.getInt("BattGroupId")); rdata.setTest_record_count(rs.getInt("test_record_count")); rdata.setTest_starttime(rs.getTimestamp("test_starttime")); rdata.setGroup_vol(rs.getFloat("group_vol")); rdata.setTest_curr(rs.getFloat("test_curr")); rdata.setMon_num(rs.getInt("mon_num")); rdata.setMon_vol(rs.getFloat("mon_vol")); rdata.setMon_tmp(rs.getFloat("mon_tmp")); rdata.setMon_res(rs.getFloat("mon_res")); rdata.setMon_ser(rs.getFloat("mon_ser")); rdata.setConn_res(rs.getFloat("conn_res")); Batt_Maint_Dealarm bmd=new Batt_Maint_Dealarm(); bmd.setBinf(binf); bmd.setRinf(rinf); bmd.setRdata(rdata); list.add(bmd); } } catch (SQLException e) { e.printStackTrace(); } return list; } }); } return list; } public static void main(String[] args) { BattInfImpl biml = new BattInfImpl(); BattInf binf = new BattInf(); binf.setStationName(""); binf.setStationName1(""); binf.setBattGroupId(1000007); //binf.setBattGroupName1(""); Batttestdata_inf tdata=new Batttestdata_inf(); tdata.setTest_type(3); Batt_Maint_Dealarm bmd = new Batt_Maint_Dealarm(); bmd.setBinf(binf); bmd.setTdata(tdata); BattinfThirdImpl bi=new BattinfThirdImpl(); List list = bi.serchByCondition(bmd); for (Batt_Maint_Dealarm b : list) { System.out.println(b.getTdata()); } System.out.println(list.size()); } }