package com.fgkj.dao.impl.ram; import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; import java.util.ArrayList; import java.util.List; import com.fgkj.dao.BaseDAO; import com.fgkj.dao.CallBack; import com.fgkj.dao.DAOHelper; import com.fgkj.dao.LimitNumberFactory; import com.fgkj.dao.UinfDaoFactory; import com.fgkj.db.DBUtil; import com.fgkj.dto.BattInf; import com.fgkj.dto.BattMap_information; import com.fgkj.dto.Page; import com.fgkj.dto.User_inf; import com.fgkj.dto.ram.Bts_station_state; public class Bts_station_stateImpl 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; } //查询机房实时状态 public List serchByCondition(Object obj) { BattInf binf=(BattInf) obj; Page p=binf.getPage(); Connection conn=DBUtil.getConn(); String numberSql="SELECT FOUND_ROWS() number";//存放总数 String sql="select SQL_CALC_FOUND_ROWS distinct station_id,dev_id,record_datetime,station_stat,station_poff_start_time,station_fadian_start_time" + " ,station_diaozhan_start_time,station_temp,station_damp,station_dooropen_start_time,station_xuhang_start_time,station_xuhang_end_time" + " ,tb_battinf.stationname,tb_battinf.stationname1,tb_battinf.stationname2,tb_battinf.stationname3,tb_battinf.stationname5 " + " from db_ram_db.tb_bts_station_state,db_battinf.tb_battinf " + " where tb_bts_station_state.dev_id=db_battinf.tb_battinf.FBSDeviceId " + " and tb_battinf.stationname1 like ? and tb_battinf.stationname2 like ? and tb_battinf.stationname3 like ? and tb_battinf.stationname5 like ? " + " and stationid like ? and Station_install=1 " ; /*" and tb_bts_station_state.station_id in (" + " select distinct db_battinf.tb_battinf.stationid " + " from db_battinf.tb_battinf " + " left outer join db_user.tb_user_battgroup_baojigroup_battgroup on db_user.tb_user_battgroup_baojigroup_battgroup.stationid=db_battinf.tb_battinf.stationid " + " left outer join db_user.tb_user_battgroup_baojigroup_usr on db_user.tb_user_battgroup_baojigroup_usr.baoji_group_id=db_user.tb_user_battgroup_baojigroup_battgroup.baoji_group_id " + " left outer join db_user.tb_user_inf on tb_user_inf.uid=db_user.tb_user_battgroup_baojigroup_usr.uid " + " where db_user.tb_user_inf.uid=? and tb_battinf.stationname1 like ? and tb_battinf.stationname2 like ? and tb_battinf.stationname3 like ? ) " + " and stationid like ? " ;*/ //用户管理 String userSql=" and StationId in(" + " select distinct db_user.tb_user_battgroup_baojigroup_battgroup.StationId from db_user.tb_user_battgroup_baojigroup_battgroup,db_user.tb_user_battgroup_baojigroup_usr where db_user.tb_user_battgroup_baojigroup_battgroup.baoji_group_id=db_user.tb_user_battgroup_baojigroup_usr.baoji_group_id and db_user.tb_user_battgroup_baojigroup_usr.uId=?" + " ) "; sql+=userSql; if(binf.getBattGroupNum()>1){ sql+=" and ( "; } //掉站 String diaozhanSql=" ((station_stat&32)>1) "; if((binf.getBattGroupNum()&32)>1){ sql+=diaozhanSql; } if((binf.getBattGroupNum()&16)>1&&(binf.getBattGroupNum()>32)){ sql+=" or "; } //开门 String dooropenSql=" ((station_stat&16)>1) "; if((binf.getBattGroupNum()&16)>1){ sql+=dooropenSql; } if((binf.getBattGroupNum()&8)>1&&(binf.getBattGroupNum()>16)){ sql+=" or "; } //发电 String fadianSql=" ((station_stat&8)>1) "; if((binf.getBattGroupNum()&8)>1){ sql+=fadianSql; } if((binf.getBattGroupNum()&4)>1&&(binf.getBattGroupNum()>8)){ sql+=" or "; } //续航 String xuhangSql=" ((station_stat&4)>1) "; if((binf.getBattGroupNum()&4)>1){ sql+=xuhangSql; } if((binf.getBattGroupNum()&2)>1&&(binf.getBattGroupNum()>4)){ sql+=" or "; } //停电 String poffSql=" ((station_stat&2)>1) "; if((binf.getBattGroupNum()&2)>1){ sql+=poffSql; } if(binf.getBattGroupNum()>1){ sql+=" ) "; } if(binf.getBattGroupNum()==0){ sql+=" and station_stat<0 "; //当没有选择想要查看的机房异常状态是筛选 } //分页 String orderSql=" limit ? ,? "; sql+=orderSql; //System.out.println(sql); List list=DAOHelper.executeQueryLimit(sql, conn, new Object[]{"%"+binf.getStationName1()+"%","%"+binf.getStationName2()+"%","%"+binf.getStationName3()+"%","%"+binf.getStationName5()+"%","%"+binf.getStationId()+"%",binf.getNum(),(p.getPageCurr()-1)*p.getPageSize(),p.getPageSize()},new CallBack() { public List getResults(ResultSet rs) { List list=new ArrayList(); try { while(rs.next()){ Bts_station_state b=new Bts_station_state(); b.setStation_id(rs.getString("station_id")); b.setDev_id(rs.getInt("dev_id")); b.setRecord_datetime(rs.getTimestamp("record_datetime")); b.setStation_stat(rs.getInt("station_stat")); if(((b.getStation_stat()>>5)&1)==1){ b.setStation_stat_diaozhan(1);//掉站 } if(((b.getStation_stat()>>4)&1)==1){ b.setStation_stat_dooropen(1);//开门 } if(((b.getStation_stat()>>3)&1)==1){ b.setStation_stat_fadian(1); //发电 } if(((b.getStation_stat()>>2)&1)==1){ b.setStation_stat_xuhang(1);//续航 } if(((b.getStation_stat()>>1)&1)==1){ b.setStation_stat_poff(1); //停电 } b.setStation_poff_start_time(rs.getTimestamp("station_poff_start_time")); b.setStation_fadian_start_time(rs.getTimestamp("station_fadian_start_time")); b.setStation_diaozhan_start_time(rs.getTimestamp("station_diaozhan_start_time")); b.setStation_temp(rs.getFloat("station_temp")); b.setStation_damp(rs.getFloat("station_damp")); b.setStation_dooropen_start_time(rs.getTimestamp("station_dooropen_start_time")); b.setStation_xuhang_start_time(rs.getTimestamp("station_xuhang_start_time")); b.setStation_xuhang_end_time(rs.getTimestamp("station_xuhang_end_time")); b.setStationName(rs.getString("stationName")); b.setStationName1(rs.getString("stationName1")); b.setStationName2(rs.getString("stationName2")); b.setStationName3(rs.getString("stationName3")); b.setStationName5(rs.getString("stationName5")); Page page=new Page(); b.setPage(page); list.add(b); } } 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).getPage().setPageAll(number); } return list; } //查询当前机房停电数 public int serchByState(Object obj) { User_inf uinf=(User_inf) obj; String sql=" select count(*) as nums from db_ram_db.tb_bts_station_state where station_stat&2>1 " + " and tb_bts_station_state.station_id in (" + " select distinct db_battinf.tb_battinf.stationid " + " from db_battinf.tb_battinf " + " left outer join db_user.tb_user_battgroup_baojigroup_battgroup on db_user.tb_user_battgroup_baojigroup_battgroup.stationid=db_battinf.tb_battinf.stationid " + " left outer join db_user.tb_user_battgroup_baojigroup_usr on db_user.tb_user_battgroup_baojigroup_usr.baoji_group_id=db_user.tb_user_battgroup_baojigroup_battgroup.baoji_group_id " + " left outer join db_user.tb_user_inf on tb_user_inf.uid=db_user.tb_user_battgroup_baojigroup_usr.uid " + " where db_user.tb_user_inf.uid=? and Station_install=1 ) "; List list=DAOHelper.executeQuery(sql, DBUtil.getConn(), new Object[]{uinf.getUId()}, new CallBack() { public List getResults(ResultSet rs) { List list=new ArrayList(); try { while(rs.next()){ list.add(rs.getInt("nums")); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } return list; } }); int nums=0;//总数 if(list!=null&&list.size()>0){ nums=(Integer) list.get(list.size()-1); } return nums; } //查询当前机房掉战数 public int serchByState_diaozhan(Object obj) { User_inf uinf=(User_inf) obj; String sql=" select count(*) as nums from db_ram_db.tb_bts_station_state where station_stat&32>1 " + " and tb_bts_station_state.station_id in (" + " select distinct db_battinf.tb_battinf.stationid " + " from db_battinf.tb_battinf " + " left outer join db_user.tb_user_battgroup_baojigroup_battgroup on db_user.tb_user_battgroup_baojigroup_battgroup.stationid=db_battinf.tb_battinf.stationid " + " left outer join db_user.tb_user_battgroup_baojigroup_usr on db_user.tb_user_battgroup_baojigroup_usr.baoji_group_id=db_user.tb_user_battgroup_baojigroup_battgroup.baoji_group_id " + " left outer join db_user.tb_user_inf on tb_user_inf.uid=db_user.tb_user_battgroup_baojigroup_usr.uid " + " where db_user.tb_user_inf.uid=? and Station_install=1 ) "; List list=DAOHelper.executeQuery(sql, DBUtil.getConn(), new Object[]{uinf.getUId()}, new CallBack() { public List getResults(ResultSet rs) { List list=new ArrayList(); try { while(rs.next()){ list.add(rs.getInt("nums")); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } return list; } }); int nums=0;//总数 if(list!=null&&list.size()>0){ nums=(Integer) list.get(list.size()-1); } return nums; } //查询具体某机房停电数(根据station_id ) public int serchByStationId(Object obj) { BattMap_information binformation=(BattMap_information) obj; String sql="select count(num) as nums from db_ram_db.tb_bts_station_state " + " where station_stat&2>1 " + " and station_id=? " + " limit 1 "; //System.out.println(sql); List list=DAOHelper.executeQuery(sql, DBUtil.getConn(), new Object[]{binformation.getStationId()}, new CallBack() { public List getResults(ResultSet rs) { List list=new ArrayList(); try { while(rs.next()){ int nums=rs.getInt("nums"); list.add(nums); } } catch (SQLException e) { e.printStackTrace(); } return list; } }); int nums=0;//最后的结果 if(list!=null&&list.size()>0){ nums=(Integer) list.get(list.size()-1); } return nums; } //查询具体某机房掉站数(根据station_id ) public int serchByStationId_diaozhan(Object obj) { BattMap_information binformation=(BattMap_information) obj; String sql="select count(num) as nums from db_ram_db.tb_bts_station_state " + " where station_stat&32>1 " + " and station_id=? " + " limit 1 "; //System.out.println(sql); List list=DAOHelper.executeQuery(sql, DBUtil.getConn(), new Object[]{binformation.getStationId()}, new CallBack() { public List getResults(ResultSet rs) { List list=new ArrayList(); try { while(rs.next()){ int nums=rs.getInt("nums"); list.add(nums); } } catch (SQLException e) { e.printStackTrace(); } return list; } }); int nums=0;//最后的结果 if(list!=null&&list.size()>0){ nums=(Integer) list.get(list.size()-1); } return nums; } //查询设备SD卡的实时状态 public int serchSDCard(Object obj) { BattInf binf=(BattInf) obj; String sql=" select distinct station_stat from db_ram_db.tb_bts_station_state where station_id=? "; List list=DAOHelper.executeQuery(sql, DBUtil.getConn(),new Object[] {binf.getStationId()} , new CallBack() { @Override public List getResults(ResultSet rs) { List list=new ArrayList(); try { while(rs.next()) { int station_stat=rs.getInt("station_stat"); if((station_stat&2048)>1) { list.add(1); }else { list.add(0); } } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } return list; } }); int station_stat=1; if(list!=null&&list.size()>0) { station_stat=(int) list.get(list.size()-1); } return station_stat; } public List serchByInfo(Object obj) { // TODO Auto-generated method stub return null; } public static void main(String[] args) { Bts_station_stateImpl bimpl=new Bts_station_stateImpl(); BattInf binf=new BattInf(); binf.setNum(1002); binf.setStationName1(""); binf.setStationName2(""); binf.setStationName3(""); binf.setStationName5(""); binf.setStationId("42000408"); binf.setBattGroupNum(62); User_inf uinf=new User_inf(); uinf.setUId(1002); Page p=new Page(); p.setPageCurr(1); p.setPageSize(10); binf.setPage(p); /*List list=bimpl.serchByCondition(binf); for (Bts_station_state bs : list) { //System.out.println(bs.getStation_stat_diaozhan()+" "+bs.getStation_stat_dooropen()+" "+bs.getStation_stat_fadian()+" "+bs.getStation_stat_xuhang()+" "+bs.getStation_stat_poff()); System.out.println(bs); }*/ //System.out.println(list.size()); //int nums=bimpl.serchByState(uinf); /*BattMap_information bm=new BattMap_information(); bm.setStationId("42000570"); int nums=bimpl.serchByStationId(bm);*/ //int nums=bimpl.serchByState_diaozhan(uinf); /*BattMap_information bm=new BattMap_information(); bm.setStationId("42000366"); int nums=bimpl.serchByStationId_diaozhan(bm);*/ int station_state=bimpl.serchSDCard(binf); System.out.println(station_state); } }