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 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 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 list=rimpl.serchDisOrChargr(); for (Rtstate_rt r : list) { System.out.println(r); }*/ List list=rimpl.serchBattStateRate(); for (Rtstate_rt r : list) { System.out.println(r); } } }