package com.fgkj.dao.impl; import java.sql.Connection; 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.CallBack; import com.fgkj.dao.DAOHelper; import com.fgkj.dao.LimitNumberFactory; 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_maint_inf; import com.fgkj.dto.Batt_maintenance_inf; import com.fgkj.dto.Battalarm_data; import com.fgkj.dto.Battresdata_inf; import com.fgkj.dto.Batttestdata_inf; import com.fgkj.dto.Page; import com.fgkj.dto.User_inf; public class BattTest_ResImpl 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; } //6.1电池充放电数据管理 /*public List serchByCondition(Object obj) { Batt_Maint_Dealarm bmd = (Batt_Maint_Dealarm) obj; BattInf binf=bmd.getBinf(); Batttestdata_inf tdata=bmd.getTdata(); Batt_maint_inf mainf=bmd.getMainf(); User_inf uinf=bmd.getUinf(); List list = new ArrayList(); List listT = new ArrayList();//存放放电结果 List listR = new ArrayList();//存放电导/内阻结果 //String sql=""; String sqlT="";//放电的最后sql String sqlR="";//电导/内阻的最后sql String baseSql=""; String baseSqlT="";//放电的最后basesql String baseSqlR="";//电导/内阻的最后basesql String baseTestSql = "select distinct(db_batt_testdata.tb_batttestdata_inf.BattgroupId),StationName,BattGroupName,moncapstd,monvolstd" + ",db_batt_testdata.tb_batttestdata_inf.num,db_batt_testdata.tb_batttestdata_inf.test_starttime,db_batt_testdata.tb_batttestdata_inf.test_record_count,db_batt_testdata.tb_batttestdata_inf.test_type,db_batt_testdata.tb_batttestdata_inf.test_starttype,db_batt_testdata.tb_batttestdata_inf.test_curr,db_batt_testdata.tb_batttestdata_inf.test_cap,db_batt_testdata.tb_batttestdata_inf.max_monvol,db_batt_testdata.tb_batttestdata_inf.min_monvol,db_batt_testdata.tb_batttestdata_inf.min_monnum" + ",db_batt_testdata.tb_batttestdata_inf.data_new " + "from db_batt_testdata.tb_batttestdata_inf " + "left outer join db_battinf.tb_battinf on db_battinf.tb_battinf.BattgroupId=db_batt_testdata.tb_batttestdata_inf.BattGroupId "+ "where (battProductDate)>=(?) and (battProductDate)<=(?) and (battinusedate)>=(?) and (battinusedate)<=(?) " + "and db_batt_testdata.tb_batttestdata_inf.data_available=1 " ; String baseResSql = "select distinct(db_batt_testdata.tb_battresdata_inf.BattgroupId),StationName,BattGroupName,moncapstd,monvolstd" + ",db_batt_testdata.tb_battresdata_inf.num,db_batt_testdata.tb_battresdata_inf.test_starttime,db_batt_testdata.tb_battresdata_inf.test_record_count,db_batt_testdata.tb_battresdata_inf.test_type,db_batt_testdata.tb_battresdata_inf.Test_devtype,db_batt_testdata.tb_battresdata_inf.test_curr,db_batt_testdata.tb_battresdata_inf.data_new " + "from db_batt_testdata.tb_battresdata_inf " + "left outer join db_battinf.tb_battinf on db_battinf.tb_battinf.BattgroupId=db_batt_testdata.tb_battresdata_inf.BattGroupId " + "where (battProductDate)>=(?) and (battProductDate)<=(?) and (battinusedate)>=(?) and (battinusedate)<=(?) " + "and db_batt_testdata.tb_battresdata_inf.data_available=1 "; //用于机房站点 String stationSqlT=" and stationname!=? ";//全部 String stationSqlF=" and stationname=? "; if(binf.getStationName().equals("")){ baseTestSql+=stationSqlT; baseResSql+=stationSqlT; }else{ baseTestSql+=stationSqlF; baseResSql+=stationSqlF; } //用于维护区 String station1SqlT=" and stationname1!=? ";//全部 String station1SqlF=" and stationname1=? "; if(binf.getStationName1().equals("")){ baseTestSql+=station1SqlT; baseResSql+=station1SqlT; }else{ baseTestSql+=station1SqlF; baseResSql+=station1SqlF; } //用于电池类型 String producerSqlT=" and battproducer!=? ";//全部 String producerSqlF=" and battproducer=? "; if(binf.getBattProducer().equals("")){ baseTestSql+=producerSqlT; baseResSql+=producerSqlT; }else{ baseTestSql+=producerSqlF; baseResSql+=producerSqlF; } //用于电池测试记录条件: //放电/充电单个/在线监测 String testSqlH="and db_batt_testdata.tb_batttestdata_inf.test_type=? and to_days(record_time)>=to_days(?) and to_days(record_time)<=to_days(?) and to_days(test_starttime)<=to_days(record_time) "; //内阻/电导 String testSqlF="and db_batt_testdata.tb_battresdata_inf.test_type!=? and to_days(record_time)>=to_days(?) and to_days(record_time)<=to_days(?) and to_days(test_starttime)<=to_days(record_time) "; //充电或者放电都行 String testSqlT="and db_batt_testdata.tb_batttestdata_inf.test_type in(?,2,3) and to_days(record_time)>=to_days(?) and to_days(record_time)<=to_days(?) and to_days(test_starttime)<=to_days(record_time) "; //全部 String testSqlAT="and db_batt_testdata.tb_batttestdata_inf.test_type in(?,2,3) and to_days(record_time)>=to_days(?) and to_days(record_time)<=to_days(?) and to_days(test_starttime)<=to_days(record_time) " ; String testSqlAR="and db_batt_testdata.tb_battresdata_inf.test_type!=? and to_days(record_time)>=to_days(?) and to_days(record_time)<=to_days(?) and to_days(test_starttime)<=to_days(record_time) " ; if(tdata.getTest_type()==2){ baseSqlT=baseTestSql+testSqlH; baseSql+=baseSqlT; }else if(tdata.getTest_type()==3){ baseSqlT=baseTestSql+testSqlH; baseSql+=baseSqlT; }else if(tdata.getTest_type()==9){ baseSqlT=baseTestSql+testSqlH; baseSql+=baseSqlT; //System.out.println(baseSql); }else if(tdata.getTest_type()==5000){ baseSqlR=baseResSql+testSqlF; baseSql+=baseSqlR; }else if(tdata.getTest_type()==3000){//充电或放电 baseSqlT=baseTestSql+testSqlT; baseSql+=baseSqlT; }else if(tdata.getTest_type()==0){ baseSqlT=baseTestSql+testSqlAT; baseSqlR=baseResSql+testSqlAR; } //用于电池组条件 String idSqlT="and db_battinf.tb_battinf.BattGroupId!=? ";//全部 String idSqlF="and db_battinf.tb_battinf.BattGroupId=? "; if(binf.getBattGroupId()==0){ baseSql+=idSqlT; baseSqlT+=idSqlT; baseSqlR+=idSqlT; }else{ baseSql+=idSqlF; baseSqlT+=idSqlF; baseSqlR+=idSqlF; } //用于单体电压 String volSqlT="and monVolStd!=? ";//全部 String volSqlF="and monVolStd=?" ; if(binf.getMonVolStd()==0){ baseSql+=volSqlT; baseSqlT+=volSqlT; baseSqlR+=volSqlT; }else{ baseSql+=volSqlF; baseSqlT+=volSqlF; baseSqlR+=volSqlF; } //用于电池容量 String capSqlT="and monCapStd!=? ";//全部 String capSqlF="and monCapStd=?" ; if(binf.getMonCapStd()==0){ baseSql+=capSqlT; baseSqlT+=capSqlT; baseSqlR+=capSqlT; }else{ baseSql+=capSqlF; baseSqlT+=capSqlF; baseSqlR+=capSqlF; } //系统类型 String nameSqlT="and BattGroupName1 like ? "; String nameSqlF="and BattGroupName1 not like '%开关电源系统%' and BattGroupName1 not like '%UPS系统%' and BattGroupName1 not like ? "; if(binf.getBattGroupName1().equals("其他")){ baseSql+=nameSqlF; baseSqlT+=nameSqlF; baseSqlR+=nameSqlF; }else{ baseSql+=nameSqlT; baseSqlT+=nameSqlT; baseSqlR+=nameSqlT; } //用于包机人条件 String userR=" and db_batt_testdata.tb_battresdata_inf.BattgroupId in(select distinct(battgroupid) from db_user.tb_user_battgroup_baojigroup_battgroup " + "left outer join db_user.tb_user_battgroup_baojigroup_usr on db_user.tb_user_battgroup_baojigroup_battgroup.baoji_group_id= db_user.tb_user_battgroup_baojigroup_usr.baoji_group_id " + "left outer join db_user.tb_user_inf on db_user.tb_user_inf.uId=db_user.tb_user_battgroup_baojigroup_usr.uid " + "where db_user.tb_user_inf.uId=? and db_user.tb_user_inf.ubaojiusr=1)"; String userT=" and db_batt_testdata.tb_batttestdata_inf.BattgroupId in(select distinct(battgroupid) from db_user.tb_user_battgroup_baojigroup_battgroup " + "left outer join db_user.tb_user_battgroup_baojigroup_usr on db_user.tb_user_battgroup_baojigroup_battgroup.baoji_group_id= db_user.tb_user_battgroup_baojigroup_usr.baoji_group_id " + "left outer join db_user.tb_user_inf on db_user.tb_user_inf.uId=db_user.tb_user_battgroup_baojigroup_usr.uid " + "where db_user.tb_user_inf.uId=? and db_user.tb_user_inf.ubaojiusr=1)"; if(uinf.getUId()!=0){ if(tdata.getTest_type()==5000){ baseSql+=userR; baseSqlR+=userR; baseSqlT+=userT; }else{ baseSql+=userT; baseSqlR+=userR; baseSqlT+=userT; } } if(tdata.getTest_type()!=5000){ //用于测试类型 //全部 String start_typeA=" "; //停电放电 String start_typeF=" and (test_starttype<5 and test_type not in(2,9) and test_starttype!=2 AND test_starttype!=3) "; //假负载放电2 String start_typeT=" and (test_starttype=2 and test_type not in(2) ) "; //节能放电3 String start_typeH=" and (test_starttype=3 and test_type not in(2) ) "; //System.out.println(tdata); if(tdata.getTest_starttype()==0){ baseSql+=start_typeA; baseSqlT+=start_typeA; }else if(tdata.getTest_starttype()==1){ baseSql+=start_typeF; baseSqlT+=start_typeF; }else if(tdata.getTest_starttype()==2){ baseSql+=start_typeT; baseSqlT+=start_typeT; }else if(tdata.getTest_starttype()==3){ baseSql+=start_typeH; baseSqlT+=start_typeH; } } //用于电池维护记录条件 //有维护记录 String maintSqlT="and db_battinf.tb_battinf.BattGroupId in(select db_battinf.tb_batt_maint_inf.battgroupid from db_battinf.tb_batt_maint_inf where to_days(maint_done_time)>=to_days(?) and to_days(maint_done_time)<=to_days(?)) " ; //无维护记录 String maintSqlF="and db_battinf.tb_battinf.BattGroupId not in(select db_battinf.tb_batt_maint_inf.battgroupid from db_battinf.tb_batt_maint_inf where to_days(maint_done_time)>=to_days(?) and to_days(maint_done_time)<=to_days(?)) " ; //全部 String maintSqlA="and db_battinf.tb_battinf.BattGroupId!=(select count(distinct(db_battinf.tb_batt_maint_inf.battgroupid )) from db_battinf.tb_batt_maint_inf where to_days(maint_done_time)>=to_days(?) and to_days(maint_done_time)<=to_days(?)) " ; if(mainf.getRemark().equals("0")){ baseSql+=maintSqlF; baseSqlT+=maintSqlF; baseSqlR+=maintSqlF; }else if(mainf.getRemark().equals("1")){ baseSql+=maintSqlT; baseSqlT+=maintSqlT; baseSqlR+=maintSqlT; }else if(mainf.getRemark().equals("100")){ baseSql+=maintSqlA; baseSqlT+=maintSqlA; baseSqlR+=maintSqlA; } String endSql="order by db_battinf.tb_battinf.BattgroupId "; if(tdata.getTest_type()==2||tdata.getTest_type()==3||tdata.getTest_type()==3000||tdata.getTest_type()==9){ sqlT=baseSql+endSql; }else if(tdata.getTest_type()==5000){ sqlR=baseSql+endSql; }else if(tdata.getTest_type()==0){ sqlT=baseSqlT+endSql; sqlR=baseSqlR+endSql; } if(uinf.getUId()==0){ if(tdata.getTest_type()!=5000||tdata.getTest_type()==0){ //System.out.println("sqlT:"+sqlT); listT= DAOHelper.executeQuery(sqlT,DBUtil.getConn(), new Object[] { binf.getBattProductDate(),binf.getBattProductDate1(),binf.getBattInUseDate(),binf.getBattInUseDate1() ,binf.getStationName(),binf.getStationName1(),binf.getBattProducer() ,tdata.getTest_type(),tdata.getRecord_time(),tdata.getRecord_time1() ,binf.getBattGroupId(),binf.getMonVolStd(),binf.getMonCapStd(),"%"+binf.getBattGroupName1()+"%" ,mainf.getMaint_done_time(),mainf.getMaint_done_time1()}, new CallBack() { public List getResults(ResultSet rs) { List list = new ArrayList(); try { while (rs.next()) { Batt_Maint_Dealarm bmd = new Batt_Maint_Dealarm(); BattInf binf=new BattInf(); binf.setBattGroupId(rs.getInt("battGroupId")); binf.setStationName(rs.getString("stationName")); binf.setBattGroupName(rs.getString("battGroupName")); binf.setMonCapStd(rs.getFloat("monCapStd")); binf.setMonVolStd(rs.getFloat("monVolStd")); Batttestdata_inf tdata=new Batttestdata_inf(); tdata.setNum(rs.getInt("num")); tdata.setTest_starttime(rs.getTimestamp("test_starttime")); tdata.setTest_record_count(rs.getInt("test_record_count")); tdata.setTest_type(rs.getInt("test_type")); tdata.setTest_starttype(rs.getInt("test_starttype")); tdata.setTest_curr(rs.getFloat("test_curr")); tdata.setTest_cap(rs.getFloat("test_cap")); tdata.setMax_monvol(rs.getFloat("max_monvol")); tdata.setMin_monvol(rs.getFloat("min_monvol")); tdata.setMin_monnum(rs.getInt("min_monnum")); tdata.setData_new(rs.getInt("data_new")); Page page=new Page(); bmd.setBinf(binf); bmd.setTdata(tdata); bmd.setPage(page); list.add(bmd); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } return list; } }); } if(tdata.getTest_type()==5000||tdata.getTest_type()==0){ //System.out.println("sqlR:"+sqlR); listR = DAOHelper.executeQuery(sqlR,DBUtil.getConn(), new Object[] { binf.getBattProductDate(),binf.getBattProductDate1(),binf.getBattInUseDate(),binf.getBattInUseDate1() ,binf.getStationName(),binf.getStationName1(),binf.getBattProducer() ,tdata.getTest_type(),tdata.getRecord_time(),tdata.getRecord_time1() ,binf.getBattGroupId(),binf.getMonVolStd(),binf.getMonCapStd(),"%"+binf.getBattGroupName1()+"%" ,mainf.getMaint_done_time(),mainf.getMaint_done_time1()}, new CallBack() { public List getResults(ResultSet rs) { List list = new ArrayList(); try { while (rs.next()) { Batt_Maint_Dealarm bmd = new Batt_Maint_Dealarm(); BattInf binf=new BattInf(); binf.setBattGroupId(rs.getInt("battGroupId")); binf.setStationName(rs.getString("stationName")); binf.setBattGroupName(rs.getString("battGroupName")); binf.setMonCapStd(rs.getFloat("monCapStd")); binf.setMonVolStd(rs.getFloat("monVolStd")); Battresdata_inf rinf=new Battresdata_inf(); rinf.setNum(rs.getInt("num")); rinf.setTest_starttime(rs.getTimestamp("test_starttime")); rinf.setTest_record_count(rs.getInt("test_record_count")); rinf.setTest_curr(rs.getFloat("test_curr")); rinf.setTest_devtype(rs.getInt("test_devtype")); rinf.setData_new(rs.getFloat("data_new")); Page page=new Page(); bmd.setBinf(binf); bmd.setRinf(rinf); bmd.setPage(page); list.add(bmd); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } return list; } }); } }else{ if(tdata.getTest_type()!=5000||tdata.getTest_type()==0){ System.out.println("sqlT:"+sqlT); listT= DAOHelper.executeQuery(sqlT,DBUtil.getConn(), new Object[] { binf.getBattProductDate(),binf.getBattProductDate1(),binf.getBattInUseDate(),binf.getBattInUseDate1() ,binf.getStationName(),binf.getStationName1(),binf.getBattProducer() ,tdata.getTest_type(),tdata.getRecord_time(),tdata.getRecord_time1() ,binf.getBattGroupId(),binf.getMonVolStd(),binf.getMonCapStd(),"%"+binf.getBattGroupName1()+"%" ,uinf.getUId(),mainf.getMaint_done_time(),mainf.getMaint_done_time1()}, new CallBack() { public List getResults(ResultSet rs) { List list = new ArrayList(); try { while (rs.next()) { Batt_Maint_Dealarm bmd = new Batt_Maint_Dealarm(); BattInf binf=new BattInf(); binf.setBattGroupId(rs.getInt("battGroupId")); binf.setStationName(rs.getString("stationName")); binf.setBattGroupName(rs.getString("battGroupName")); binf.setMonCapStd(rs.getFloat("monCapStd")); binf.setMonVolStd(rs.getFloat("monVolStd")); Batttestdata_inf tdata=new Batttestdata_inf(); tdata.setNum(rs.getInt("num")); tdata.setTest_starttime(rs.getTimestamp("test_starttime")); tdata.setTest_record_count(rs.getInt("test_record_count")); tdata.setTest_type(rs.getInt("test_type")); tdata.setTest_starttype(rs.getInt("test_starttype")); tdata.setTest_curr(rs.getFloat("test_curr")); tdata.setTest_cap(rs.getFloat("test_cap")); tdata.setMax_monvol(rs.getFloat("max_monvol")); tdata.setMin_monvol(rs.getFloat("min_monvol")); tdata.setMin_monnum(rs.getInt("min_monnum")); tdata.setData_new(rs.getInt("data_new")); Page page=new Page(); bmd.setBinf(binf); bmd.setTdata(tdata); bmd.setPage(page); list.add(bmd); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } return list; } }); } if(tdata.getTest_type()==5000||tdata.getTest_type()==0){ System.out.println("sqlR:"+sqlR); listR = DAOHelper.executeQuery(sqlR,DBUtil.getConn(), new Object[] { binf.getBattProductDate(),binf.getBattProductDate1(),binf.getBattInUseDate(),binf.getBattInUseDate1() ,binf.getStationName(),binf.getStationName1(),binf.getBattProducer() ,tdata.getTest_type(),tdata.getRecord_time(),tdata.getRecord_time1() ,binf.getBattGroupId(),binf.getMonVolStd(),binf.getMonCapStd(),"%"+binf.getBattGroupName1()+"%" ,uinf.getUId(),mainf.getMaint_done_time(),mainf.getMaint_done_time1()}, new CallBack() { public List getResults(ResultSet rs) { List list = new ArrayList(); try { while (rs.next()) { Batt_Maint_Dealarm bmd = new Batt_Maint_Dealarm(); BattInf binf=new BattInf(); binf.setBattGroupId(rs.getInt("battGroupId")); binf.setStationName(rs.getString("stationName")); binf.setBattGroupName(rs.getString("battGroupName")); binf.setMonCapStd(rs.getFloat("monCapStd")); binf.setMonVolStd(rs.getFloat("monVolStd")); Battresdata_inf rinf=new Battresdata_inf(); rinf.setNum(rs.getInt("num")); rinf.setTest_starttime(rs.getTimestamp("test_starttime")); rinf.setTest_record_count(rs.getInt("test_record_count")); rinf.setTest_curr(rs.getFloat("test_curr")); rinf.setTest_devtype(rs.getInt("test_devtype")); rinf.setData_new(rs.getFloat("data_new")); Page page=new Page(); bmd.setBinf(binf); bmd.setRinf(rinf); bmd.setPage(page); list.add(bmd); } } catch (SQLException e) { e.printStackTrace(); } return list; } }); } } if(tdata.getTest_type()==2||tdata.getTest_type()==3||tdata.getTest_type()==3000||tdata.getTest_type()==9){ list=listT; }else if(tdata.getTest_type()==5000){ list=listR; }else if(tdata.getTest_type()==0){ for (Object bT : listT) { list.add(bT); } for (Object bR : listR) { list.add(bR); } } List listd = new ArrayList(); int index = 0; //System.out.println(list.size()); for (int i = (bmd.getPage().getPageCurr() - 1)* bmd.getPage().getPageSize(); i < bmd.getPage().getPageSize()* bmd.getPage().getPageCurr()&& i < list.size(); i++) { listd.add((Batt_Maint_Dealarm) list.get(i)); //System.out.println(list.get(i)); // System.out.println(listd.get(index)); ((Batt_Maint_Dealarm) listd.get(index++)).getPage().setPageAll(list.size()); } //System.out.println(listd.size()); return listd; }*/ //6.1电池充放电数据管理 public List serchByCondition(Object obj) { Batt_Maint_Dealarm bmd = (Batt_Maint_Dealarm) obj; BattInf binf=bmd.getBinf(); Batttestdata_inf tdata=bmd.getTdata(); User_inf uinf=bmd.getUinf(); Page page=bmd.getPage(); List list = new ArrayList(); Connection conn=DBUtil.getConn(); String numberSql=" SELECT FOUND_ROWS() number"; String baseSql=""; String baseTestSql = "select SQL_CALC_FOUND_ROWS distinct(db_batt_testdata.tb_batttestdata_inf.BattgroupId),StationId,StationName,StationName1,StationName2,StationName5,BattGroupName,moncapstd,monvolstd" + ",db_batt_testdata.tb_batttestdata_inf.num,db_batt_testdata.tb_batttestdata_inf.test_starttime,db_batt_testdata.tb_batttestdata_inf.test_record_count,db_batt_testdata.tb_batttestdata_inf.test_type,db_batt_testdata.tb_batttestdata_inf.test_starttype,db_batt_testdata.tb_batttestdata_inf.test_curr,db_batt_testdata.tb_batttestdata_inf.test_cap,db_batt_testdata.tb_batttestdata_inf.max_monvol,db_batt_testdata.tb_batttestdata_inf.min_monvol,db_batt_testdata.tb_batttestdata_inf.min_monnum" + ",db_batt_testdata.tb_batttestdata_inf.data_new " + "from db_batt_testdata.tb_batttestdata_inf " + "left outer join db_battinf.tb_battinf on db_battinf.tb_battinf.BattgroupId=db_batt_testdata.tb_batttestdata_inf.BattGroupId "+ "where db_batt_testdata.tb_batttestdata_inf.data_available=1 " ; String baseResSql = "select SQL_CALC_FOUND_ROWS distinct(db_batt_testdata.tb_battresdata_inf.BattgroupId),StationId,StationName,StationName1,StationName2,StationName5,BattGroupName,moncapstd,monvolstd" + ",db_batt_testdata.tb_battresdata_inf.num,db_batt_testdata.tb_battresdata_inf.test_starttime,db_batt_testdata.tb_battresdata_inf.test_record_count,db_batt_testdata.tb_battresdata_inf.test_type,db_batt_testdata.tb_battresdata_inf.Test_devtype,db_batt_testdata.tb_battresdata_inf.test_curr,db_batt_testdata.tb_battresdata_inf.data_new " + "from db_batt_testdata.tb_battresdata_inf " + "left outer join db_battinf.tb_battinf on db_battinf.tb_battinf.BattgroupId=db_batt_testdata.tb_battresdata_inf.BattGroupId " + "where db_batt_testdata.tb_battresdata_inf.data_available=1 "; //用于电池测试记录条件: //放电/充电单个/在线监测 String testSqlH="and db_batt_testdata.tb_batttestdata_inf.test_type=? and to_days(record_time)>=to_days(?) and to_days(record_time)<=to_days(?) and to_days(test_starttime)<=to_days(record_time) "; //内阻/电导 String testSqlF="and db_batt_testdata.tb_battresdata_inf.test_type!=? and to_days(record_time)>=to_days(?) and to_days(record_time)<=to_days(?) and to_days(test_starttime)<=to_days(record_time) "; //充电或者放电都行 String testSqlT="and db_batt_testdata.tb_batttestdata_inf.test_type in(?,2,3) and to_days(record_time)>=to_days(?) and to_days(record_time)<=to_days(?) and to_days(test_starttime)<=to_days(record_time) "; if(tdata.getTest_type()==2){ baseSql=baseTestSql+testSqlH; }else if(tdata.getTest_type()==3){ baseSql=baseTestSql+testSqlH; }else if(tdata.getTest_type()==9){ baseSql=baseTestSql+testSqlH; }else if(tdata.getTest_type()==5000){ baseSql=baseResSql+testSqlF; }else if(tdata.getTest_type()==3000){//充电或放电 baseSql=baseTestSql+testSqlT; } //用于电池组条件 String idSqlT="and db_battinf.tb_battinf.BattGroupId!=? ";//全部 String idSqlF="and db_battinf.tb_battinf.BattGroupId=? "; if(binf.getBattGroupId()==0){ baseSql+=idSqlT; }else{ baseSql+=idSqlF; } //用于用户管理的电池组的筛选 String userR=" and db_batt_testdata.tb_battresdata_inf.BattgroupId in(select distinct db_battinf.tb_battinf.battgroupid " + " from db_battinf.tb_battinf,db_user.tb_user_battgroup_baojigroup_battgroup,db_user.tb_user_battgroup_baojigroup_usr,db_user.tb_user_inf " + " where db_user.tb_user_battgroup_baojigroup_battgroup.BattGroupId=db_battinf.tb_battinf.BattGroupId " + " and db_user.tb_user_battgroup_baojigroup_usr.baoji_group_id=db_user.tb_user_battgroup_baojigroup_battgroup.baoji_group_id " + " and db_user.tb_user_inf.uid=db_user.tb_user_battgroup_baojigroup_usr.uid " + " and db_user.tb_user_inf.uid=? " + " and db_battinf.tb_battinf.stationname1 like ? and db_battinf.tb_battinf.stationname like ? and db_battinf.tb_battinf.stationname2 like ? and db_battinf.tb_battinf.stationname5 like ?)"; String userT=" and db_batt_testdata.tb_batttestdata_inf.BattgroupId in(select distinct db_battinf.tb_battinf.battgroupid " + " from db_battinf.tb_battinf,db_user.tb_user_battgroup_baojigroup_battgroup,db_user.tb_user_battgroup_baojigroup_usr,db_user.tb_user_inf " + " where db_user.tb_user_battgroup_baojigroup_battgroup.BattGroupId=db_battinf.tb_battinf.BattGroupId " + " and db_user.tb_user_battgroup_baojigroup_usr.baoji_group_id=db_user.tb_user_battgroup_baojigroup_battgroup.baoji_group_id " + " and db_user.tb_user_inf.uid=db_user.tb_user_battgroup_baojigroup_usr.uid " + " and db_user.tb_user_inf.uid=? " + " and db_battinf.tb_battinf.stationname1 like ? and db_battinf.tb_battinf.stationname like ? and db_battinf.tb_battinf.stationname2 like ? and db_battinf.tb_battinf.stationname5 like ?)"; if(tdata.getTest_type()==5000){ baseSql+=userR; }else{ baseSql+=userT; } if(tdata.getTest_type()!=5000){ //用于测试类型 //全部 String start_typeA=" "; //停电放电 String start_typeF=" and (test_starttype<5 and test_type not in(2,9) and test_starttype!=2 AND test_starttype!=3) "; //假负载放电2 String start_typeT=" and (test_starttype=2 and test_type not in(2) ) "; //节能放电3 String start_typeH=" and (test_starttype=3 and test_type not in(2) ) "; if(tdata.getTest_starttype()==0){ baseSql+=start_typeA; }else if(tdata.getTest_starttype()==1){ baseSql+=start_typeF; }else if(tdata.getTest_starttype()==2){ baseSql+=start_typeT; }else if(tdata.getTest_starttype()==3){ baseSql+=start_typeH; } } //排序 String endSql=" order by db_battinf.tb_battinf.BattgroupId,test_starttime desc "; baseSql+=endSql; //分页 String limitSql=" limit ?,? "; baseSql+=limitSql; //System.out.println(baseSql); if(tdata.getTest_type()==5000){ list = DAOHelper.executeQueryLimit(baseSql,conn, new Object[] { tdata.getTest_type(),tdata.getRecord_time(),tdata.getRecord_time1(), binf.getBattGroupId(), uinf.getUId(),"%"+binf.getStationName1()+"%","%"+binf.getStationName()+"%","%"+binf.getStationName2()+"%","%"+binf.getStationName5()+"%", (page.getPageCurr()-1)*page.getPageSize(),page.getPageSize() }, new CallBack() { public List getResults(ResultSet rs) { List list = new ArrayList(); try { while (rs.next()) { Batt_Maint_Dealarm bmd = new Batt_Maint_Dealarm(); BattInf binf=new BattInf(); binf.setBattGroupId(rs.getInt("battGroupId")); binf.setStationId(rs.getString("stationId")); binf.setStationName(rs.getString("stationName")); binf.setStationName1(rs.getString("stationName1")); binf.setStationName2(rs.getString("stationName2")); binf.setStationName5(rs.getString("stationName5")); binf.setBattGroupName(rs.getString("battGroupName")); binf.setMonCapStd(rs.getFloat("monCapStd")); binf.setMonVolStd(rs.getFloat("monVolStd")); Battresdata_inf rinf=new Battresdata_inf(); rinf.setNum(rs.getInt("num")); rinf.setTest_starttime(rs.getTimestamp("test_starttime")); rinf.setTest_record_count(rs.getInt("test_record_count")); rinf.setTest_curr(rs.getFloat("test_curr")); rinf.setTest_devtype(rs.getInt("test_devtype")); rinf.setData_new(rs.getFloat("data_new")); Page page=new Page(); bmd.setBinf(binf); bmd.setRinf(rinf); bmd.setPage(page); list.add(bmd); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } return list; } }); }else{ list= DAOHelper.executeQueryLimit(baseSql,conn, new Object[] { tdata.getTest_type(),tdata.getRecord_time(),tdata.getRecord_time1(), binf.getBattGroupId(), uinf.getUId(),"%"+binf.getStationName1()+"%","%"+binf.getStationName()+"%","%"+binf.getStationName2()+"%","%"+binf.getStationName5()+"%", (page.getPageCurr()-1)*page.getPageSize(),page.getPageSize() }, new CallBack() { public List getResults(ResultSet rs) { List list = new ArrayList(); try { while (rs.next()) { Batt_Maint_Dealarm bmd = new Batt_Maint_Dealarm(); BattInf binf=new BattInf(); binf.setBattGroupId(rs.getInt("battGroupId")); binf.setStationId(rs.getString("stationId")); binf.setStationName(rs.getString("stationName")); binf.setStationName1(rs.getString("stationName1")); binf.setStationName2(rs.getString("stationName2")); binf.setStationName5(rs.getString("stationName5")); binf.setBattGroupName(rs.getString("battGroupName")); binf.setMonCapStd(rs.getFloat("monCapStd")); binf.setMonVolStd(rs.getFloat("monVolStd")); Batttestdata_inf tdata=new Batttestdata_inf(); tdata.setNum(rs.getInt("num")); tdata.setTest_starttime(rs.getTimestamp("test_starttime")); tdata.setTest_record_count(rs.getInt("test_record_count")); tdata.setTest_type(rs.getInt("test_type")); tdata.setTest_starttype(rs.getInt("test_starttype")); tdata.setTest_curr(rs.getFloat("test_curr")); tdata.setTest_cap(rs.getFloat("test_cap")); tdata.setMax_monvol(rs.getFloat("max_monvol")); tdata.setMin_monvol(rs.getFloat("min_monvol")); tdata.setMin_monnum(rs.getInt("min_monnum")); tdata.setData_new(rs.getInt("data_new")); Page page=new Page(); bmd.setBinf(binf); bmd.setTdata(tdata); bmd.setPage(page); list.add(bmd); } } 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; } public static void main(String[] args) throws ParseException { BattTest_ResImpl bimpl=new BattTest_ResImpl(); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); Date date1 = sdf.parse("2000-01-01"); Date date2 = sdf.parse("2020-01-01"); BattInf binf=new BattInf(); binf.setStationName("内蒙古"); binf.setStationName1("内蒙古"); binf.setBattGroupId(0); /*binf.setBattGroupName1(""); binf.setBattProducer(""); binf.setMonCapStd(0f); binf.setMonVolStd(0f); binf.setBattProductDate(ActionUtil.getSimpDate(date1)); binf.setBattProductDate1(ActionUtil.getSimpDate(date2)); binf.setBattInUseDate(ActionUtil.getSimpDate(date1)); binf.setBattInUseDate1(ActionUtil.getSimpDate(date2));*/ /*Batt_maint_inf mainf=new Batt_maint_inf(); mainf.setRemark("100"); mainf.setMaint_done_time(ActionUtil.getSimpDate(date1)); mainf.setMaint_done_time1(ActionUtil.getSimpDate(date2)); */ Batttestdata_inf tdata=new Batttestdata_inf(); tdata.setTest_type(3000); tdata.setTest_starttype(0); tdata.setRecord_time(ActionUtil.getSimpDate(date1)); tdata.setRecord_time1(ActionUtil.getSimpDate(date2)); User_inf uinf=new User_inf(); uinf.setUId(1002); Page p = new Page(); p.setPageCurr(1); p.setPageSize(50); Batt_Maint_Dealarm bmd = new Batt_Maint_Dealarm(); bmd.setPage(p); bmd.setBinf(binf); bmd.setTdata(tdata); //bmd.setMainf(mainf); bmd.setUinf(uinf); List list=bimpl.serchByCondition(bmd); for (Batt_Maint_Dealarm b : list) { System.out.println(b.getBinf()); } System.out.println(list.size()); } public List serchByInfo(Object obj) { // TODO Auto-generated method stub return null; } }