package com.fgkj.dao.impl.rt;
|
|
import java.sql.Connection;
|
import java.sql.ResultSet;
|
import java.sql.SQLException;
|
import java.text.SimpleDateFormat;
|
import java.util.ArrayList;
|
import java.util.List;
|
|
import com.fgkj.dao.BaseDAO;
|
import com.fgkj.dao.BattTestData;
|
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.Batt_Maint_Dealarm;
|
import com.fgkj.dto.Batt_State;
|
import com.fgkj.dto.Batt_rtdata;
|
import com.fgkj.dto.Batt_rtstate;
|
import com.fgkj.dto.Page;
|
import com.fgkj.dto.rt.Batt_State_rt;
|
import com.fgkj.dto.rt.Rtdata_rt;
|
import com.fgkj.dto.rt.Rtstate_rt;
|
|
public class Rtstate_rtImpl implements CallBack,BaseDAO{
|
private SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
|
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;
|
}
|
|
public List serchByCondition(Object obj) {
|
// TODO Auto-generated method stub
|
return null;
|
}
|
|
public List serchByInfo(Object obj) {
|
// TODO Auto-generated method stub
|
return null;
|
}
|
//测试数据——实时查询中左下角的充放电统计
|
public List serchDisOrChargr(){
|
String sql="SELECT battgroupid,batt_test_type from db_ram_batt_rt.tb_rtstate_rt WHERE batt_test_type IN(2,3) ORDER BY battgroupid";
|
List list=DAOHelper.executeQuery(sql, DBUtil.getConn(), null, new CallBack() {
|
|
public List getResults(ResultSet rs) {
|
List<Rtstate_rt> list=new ArrayList();
|
int charge=0;
|
int dischar=0;
|
try {
|
while(rs.next()){
|
Rtstate_rt rts=new Rtstate_rt();
|
rts.setBattGroupId(rs.getInt("battGroupId"));
|
rts.setBatt_test_type(rs.getInt("batt_test_type"));
|
if(rs.getInt("batt_test_type")==3){
|
dischar++;
|
}else if(rs.getInt("batt_test_type")==2){
|
charge++;
|
}
|
list.add(rts);
|
}
|
} catch (SQLException e) {
|
// TODO Auto-generated catch block
|
e.printStackTrace();
|
}
|
if(list!=null&&list.size()>0){
|
list.get(list.size()-1).setNum(charge);
|
list.get(list.size()-1).setBatt_count(dischar);
|
}
|
return list;
|
}
|
});
|
return list;
|
}
|
|
//电池组实时情况+实时电池续航能力查询
|
public List serchBattLife(Object obj) {
|
Batt_Maint_Dealarm bmd=(Batt_Maint_Dealarm) obj;
|
BattInf binf=bmd.getBinf();
|
Page page=bmd.getPage();
|
String numberSql=" SELECT FOUND_ROWS() number";
|
Connection conn=DBUtil.getConn();
|
String sql="";
|
String baseSql="select SQL_CALC_FOUND_ROWS tb_rtstate_rt.BattGroupId,batt_count,tb_rtstate_rt.rec_datetime,online_vol,group_vol,group_curr,batt_state," +
|
"batt_test_type,batt_test_starttime,batt_test_recordtime,batt_test_tlong," +
|
"batt_test_cap,batt_real_cap,batt_rest_cap,batt_rest_power1_time,batt_rest_power2_time" +
|
",db_ram_batt_rt.tb_rtdata_rt.BattGroupId,db_ram_batt_rt.tb_rtdata_rt.rec_datetime,mon_num,mon_vol,mon_tmp," +
|
"mon_res,mon_ser,mon_conn_res,mon_cap" +
|
",db_battinf.tb_battinf.moncapstd,db_battinf.tb_battinf.monvolstd " +
|
",db_battinf.tb_battinf.stationname,db_battinf.tb_battinf.stationname1,db_battinf.tb_battinf.BattGroupName,db_battinf.tb_battinf.deviceName " +
|
",max(binary db_ram_batt_rt.tb_rtdata_rt.mon_vol) as maxmonvol,min(binary db_ram_batt_rt.tb_rtdata_rt.mon_vol) as minmonvol " +
|
"FROM db_ram_batt_rt.tb_rtstate_rt " +
|
"LEFT OUTER JOIN db_ram_batt_rt.tb_rtdata_rt ON db_ram_batt_rt.tb_rtstate_rt.BattGroupId = db_ram_batt_rt.tb_rtdata_rt.BattGroupId " +
|
"LEFT OUTER JOIN db_battinf.tb_battinf ON db_ram_batt_rt.tb_rtstate_rt.BattGroupId = db_battinf.tb_battinf.BattGroupId " +
|
"WHERE ";
|
//电池组的选择
|
String idSqlT=" db_ram_batt_rt.tb_rtstate_rt.BattGroupId=? ";
|
String idSqlF=" db_ram_batt_rt.tb_rtstate_rt.BattGroupId!=? ";
|
if(binf.getBattGroupId()==0){
|
baseSql+=idSqlF;
|
}else{
|
baseSql+=idSqlT;
|
}
|
//机房维护区选择
|
String stationSql=" AND db_battinf.tb_battinf.stationname like ? AND db_battinf.tb_battinf.stationname1 like ? ";
|
baseSql+=stationSql;
|
//电池状态
|
String stateSqlT=" AND batt_state=? ";
|
String stateSqlF=" AND batt_state!=? ";
|
if(binf.getNum()==100){
|
baseSql+=stateSqlF;
|
}else{
|
baseSql+=stateSqlT;
|
}
|
//排序
|
String endSql=" GROUP BY db_ram_batt_rt.tb_rtstate_rt.BattGroupId ";
|
//分页
|
String limitSql=" limit ?,?";
|
sql=baseSql+endSql+limitSql;
|
//System.out.println(sql);
|
List<Batt_State_rt> list=DAOHelper.executeQueryLimit(sql, conn, new Object[]{binf.getBattGroupId(),"%"+binf.getStationName()+"%","%"+binf.getStationName1()+"%"
|
,binf.getNum(),(page.getPageCurr() - 1)*page.getPageSize(),
|
page.getPageSize()}, new CallBack() {
|
|
public List getResults(ResultSet rs) {
|
List list=new ArrayList();
|
try {
|
while(rs.next()){
|
Batt_State_rt state_rt=new Batt_State_rt();
|
|
Rtstate_rt rts=new Rtstate_rt();
|
rts.setBattGroupId(rs.getInt("tb_rtstate_rt.BattGroupId"));
|
rts.setBatt_count(rs.getInt("batt_count"));
|
rts.setRec_datetime(rs.getTimestamp("tb_rtstate_rt.rec_datetime"));
|
rts.setOnline_vol(rs.getFloat("online_vol"));
|
rts.setGroup_vol(rs.getFloat("group_vol"));
|
|
rts.setGroup_curr(rs.getFloat("group_curr"));//
|
rts.setBatt_state(rs.getInt("batt_state"));
|
rts.setBatt_test_type(rs.getInt("batt_test_type"));
|
rts.setBatt_test_starttime(rs.getTimestamp("batt_test_starttime"));
|
rts.setBatt_test_recordtime(rs.getTimestamp("batt_test_recordtime"));
|
rts.setBatt_test_tlong(rs.getInt("batt_test_tlong"));
|
rts.setBatt_test_cap(rs.getFloat("batt_test_cap"));
|
rts.setBatt_real_cap(rs.getFloat("batt_real_cap"));
|
rts.setBatt_rest_cap(rs.getFloat("batt_rest_cap"));
|
rts.setBatt_rest_power1_time(rs.getInt("batt_rest_power1_time"));
|
rts.setBatt_rest_power2_time(rs.getInt("batt_rest_power2_time"));
|
|
Rtdata_rt rtd=new Rtdata_rt();
|
rtd.setMon_vol(rs.getFloat("maxmonvol"));
|
rtd.setMon_tmp(rs.getFloat("minmonvol"));
|
|
|
BattInf binf=new BattInf();
|
binf.setBattGroupId(rs.getInt("battGroupId"));
|
binf.setMonCapStd(rs.getFloat("monCapStd"));
|
binf.setMonVolStd(rs.getFloat("MonVolStd"));
|
binf.setBattGroupName(rs.getString("battGroupName"));
|
binf.setDeviceName(rs.getString("deviceName"));
|
binf.setStationName(rs.getString("stationName"));
|
binf.setStationName1(rs.getString("stationName1"));
|
|
binf.setStationName9(BattTestData.battState(rs.getInt("batt_state")));
|
|
state_rt.setRts(rts);
|
state_rt.setRtd(rtd);
|
state_rt.setBinf(binf);
|
list.add(state_rt);
|
}
|
} catch (SQLException e) {
|
// TODO Auto-generated catch block
|
e.printStackTrace();
|
}
|
return list;
|
}
|
});
|
//去掉limit条件后的总数
|
int number=LimitNumberFactory.GetLimtitNumber(conn, numberSql);
|
//System.out.println("number: "+number);
|
if(list!=null&&list.size()>0){
|
list.get(list.size()-1).getBinf().setMonNum(number);
|
}
|
return list;
|
}
|
|
//首页上饼状图电池状态比例
|
public List serchBattStateRate(){
|
String sql=" SELECT DISTINCT db_ram_batt_rt.tb_rtstate_rt.BattGroupId,batt_state, " +
|
" COUNT(db_ram_batt_rt.tb_rtstate_rt.BattGroupId) as stateNum " +
|
" FROM db_ram_batt_rt.tb_rtstate_rt " +
|
" GROUP BY batt_state ORDER BY batt_state";
|
List list=DAOHelper.executeQuery(sql, DBUtil.getConn(), null, new CallBack() {
|
|
public List getResults(ResultSet rs) {
|
|
List list=new ArrayList();
|
try {
|
while(rs.next()){
|
Rtstate_rt rts=new Rtstate_rt();
|
rts.setBatt_state(rs.getInt("batt_state"));
|
rts.setNum(rs.getInt("stateNum"));
|
list.add(rts);
|
}
|
} catch (SQLException e) {
|
e.printStackTrace();
|
}
|
return list;
|
}
|
});
|
return list;
|
|
}
|
|
public List getResults(ResultSet rs) {
|
// TODO Auto-generated method stub
|
return null;
|
}
|
public static void main(String[] args) {
|
Rtstate_rtImpl rimpl=new Rtstate_rtImpl();
|
/*List<Rtstate_rt> list=rimpl.serchDisOrChargr();
|
for (Rtstate_rt r : list) {
|
System.out.println(r);
|
}*/
|
List<Rtstate_rt> list=rimpl.serchBattStateRate();
|
for (Rtstate_rt r : list) {
|
System.out.println(r);
|
}
|
}
|
}
|