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<Batt_Maint_Dealarm> 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<Batt_Maint_Dealarm> 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,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,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 ?)";
|
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 ?)";
|
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()+"%",
|
(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.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()+"%",
|
(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.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<Batt_Maint_Dealarm> 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;
|
}
|
}
|