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<Fbs9100_state> 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;
|
}
|
|
}
|