package com.fgkj.dao.impl.bts61850; import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; import java.util.ArrayList; import java.util.List; import sun.security.jca.GetInstance; 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.dto.BTS_61850_state; import com.fgkj.dto.LD9_state; import com.fgkj.dto.Page; import com.fgkj.dto.ram.Fbs9100_state; public class BTS_61850_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; } //查询所有bts61850设备的实时数据 public List searchAll() { String sql=" select num,FBSDeviceId,stc_datatime,stc_groupvol_low,stc_cap_high," + " stc_timespan_high,stc_discurr,stc_monvol_low,stc_montmp_high," + " stc_workstate,alam_tmp,alam_comm,alam_relay,dev_captest_online,dev_captest_groupvol," + " dev_errcommcount,dev_commcount " + " from db_ram_db.tb_bts_61850_state " + " order by FBSDeviceId"; List list=DAOHelper.executeQuery(sql, DBUtil.getConn(), null, new CallBack() { public List getResults(ResultSet rs) { List list=new ArrayList(); try { while(rs.next()){ BTS_61850_state bts=new BTS_61850_state(); bts.setNum(rs.getInt("num")); bts.setFBSDeviceId(rs.getInt("fBSDeviceId")); bts.setStc_datatime(rs.getTimestamp("stc_datatime")); bts.setStc_groupvol_low(rs.getFloat("stc_groupvol_low")); bts.setStc_cap_high(rs.getInt("stc_cap_high")); bts.setStc_timespan_high(rs.getInt("stc_timespan_high")); bts.setStc_discurr(rs.getInt("stc_discurr")); bts.setStc_monvol_low(rs.getFloat("stc_monvol_low")); bts.setStc_montmp_high(rs.getFloat("stc_montmp_high")); bts.setStc_workstate(rs.getInt("stc_workstate")); bts.setAlam_tmp(rs.getInt("alam_tmp")); bts.setAlam_comm(rs.getInt("alam_comm")); bts.setAlam_relay(rs.getInt("alam_relay")); bts.setDev_captest_online(rs.getFloat("dev_captest_online")); bts.setDev_captest_groupvol(rs.getFloat("dev_captest_groupvol")); bts.setDev_errcommcount(rs.getInt("dev_errcommcount")); bts.setDev_commcount(rs.getInt("dev_commcount")); list.add(bts); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } return list; } }); return list; } //61850设备通信状态查询 /* * 61850:op_cmd:0:全部;1:fbs9100,2:fbs9600,3:ld9,4:61850 * dev_errcommcount;0:通讯正常,1:通讯中断,100:全部 * */ public List serchByCondition(Object obj) { BTS_61850_state bts=(BTS_61850_state) obj; Page page=bts.getPage(); Connection conn=DBUtil.getConn(); String numberSql=" SELECT FOUND_ROWS() number"; String sql=""; String baseSql="select SQL_CALC_FOUND_ROWS distinct db_ram_db.tb_bts_61850_state.num,db_ram_db.tb_bts_61850_state.dev_ip,db_ram_db.tb_bts_61850_state.fBSDeviceId," + "db_ram_db.tb_bts_61850_state.alam_tmp,db_ram_db.tb_bts_61850_state.alam_relay,db_ram_db.tb_bts_61850_state.alam_comm," + "db_ram_db.tb_bts_61850_state.stc_workstate,db_ram_db.tb_bts_61850_state.dev_commcount,db_ram_db.tb_bts_61850_state.dev_errcommcount,db_ram_db.tb_bts_61850_state.dev_ip,db_ram_db.tb_bts_61850_state.timelong, " + "db_battinf.tb_battinf.StationName,db_battinf.tb_battinf.FbsDeviceName," + "COUNT(DISTINCT db_battinf.tb_battinf.BattGroupId) as cnt," + "group_CONCAT(db_ram_db.tb_batt_rtstate.online_vol ORDER BY db_ram_db.tb_batt_rtstate.BattGroupId separator '/') as online_vols,group_CONCAT(db_ram_db.tb_batt_rtstate.group_vol ORDER BY db_ram_db.tb_batt_rtstate.BattGroupId separator '/') as group_vols,group_CONCAT(db_ram_db.tb_batt_rtstate.group_curr ORDER BY db_ram_db.tb_batt_rtstate.BattGroupId separator '/') as group_currs " + "from db_ram_db.tb_bts_61850_state " + "left outer join db_battinf.tb_battinf ON db_ram_db.tb_bts_61850_state.fBSDeviceId=db_battinf.tb_battinf.FBSDeviceId " + "LEFT OUTER JOIN db_ram_db.tb_batt_rtstate ON db_battinf.tb_battinf.battgroupid=db_ram_db.tb_batt_rtstate.battgroupid "; //通讯中断 String comSqlT=" where dev_errcommcount=0 "; String comSqlF=" where dev_errcommcount>0 "; String comSqlA=" where dev_errcommcount>-1 "; if(bts.getDev_errcommcount()==0){ baseSql+=comSqlT; }else if(bts.getDev_errcommcount()==1){ baseSql+=comSqlF; }else{ baseSql+=comSqlA; } //判断是否为管理的机房 String stationSql=" and db_battinf.tb_battinf.StationId in(select distinct db_battinf.tb_battinf.StationId " + " 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=? ) "; baseSql+=stationSql; //分组 String groupSql=" GROUP BY db_ram_db.tb_bts_61850_state.fBSDeviceId "; //分页 String limitSql=" limit ?,? "; //最后结果 sql=baseSql+groupSql+limitSql; //System.out.println(sql); List list=DAOHelper.executeQueryLimit(sql, conn, new Object[]{bts.getNum(),(page.getPageCurr()-1)*page.getPageSize(),page.getPageSize()}, new CallBack() { List list=new ArrayList(); String alarmstr="";//bts61850告警类型 public List getResults(ResultSet rs) { try { while(rs.next()){ Fbs9100_state fstate=new Fbs9100_state(); fstate.setNum(rs.getInt("cnt"));//关联电池组个数 fstate.setDev_ip(rs.getString("dev_ip")); fstate.setDev_id(rs.getInt("fBSDeviceId")); fstate.setDev_testtype(rs.getInt("stc_workstate")); fstate.setDev_commcount(rs.getInt("dev_commcount")); fstate.setDev_errcommcount(rs.getInt("dev_errcommcount")); if(rs.getInt("alam_tmp")==1){ if(alarmstr.length()>0){ alarmstr+="/"; } alarmstr+="设备过温告警"; }; if(rs.getInt("alam_relay")==1){ if(alarmstr.length()>0){ alarmstr+="/"; } alarmstr+="继电器K1告警"; }; if(rs.getInt("alam_comm")==1){ if(alarmstr.length()>0){ alarmstr+="/"; } alarmstr+="通讯告警"; }; fstate.setNote(alarmstr); fstate.setStationName(rs.getString("stationName")); fstate.setDeviceName(rs.getString("FbsDeviceName")); fstate.setOnline_vols(rs.getString("online_vols")); fstate.setGroup_vols(rs.getString("group_vols")); fstate.setGroup_currs(rs.getString("group_currs")); fstate.setDev_captest_timelong(rs.getInt("timelong")); alarmstr=""; //System.out.println(fstate); list.add(fstate); } } 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){ page.setPageAll(number); list.get(list.size()-1).setPage(page); } return list; } public List serchByInfo(Object obj) { // TODO Auto-generated method stub return null; } }