package com.fgkj.dao.impl;
|
|
import java.sql.Connection;
|
import java.sql.ResultSet;
|
import java.sql.SQLException;
|
import java.text.ParseException;
|
import java.text.SimpleDateFormat;
|
import java.util.ArrayList;
|
import java.util.Date;
|
import java.util.List;
|
|
import sun.security.krb5.internal.PAEncTSEnc;
|
|
import com.fgkj.actions.ActionUtil;
|
import com.fgkj.dao.AlarmDaoFactory;
|
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.BattInf;
|
import com.fgkj.dto.Batt_Maint_Dealarm;
|
import com.fgkj.dto.Batt_devalarm_data_history;
|
import com.fgkj.dto.Bts_station_event;
|
import com.fgkj.dto.Page;
|
import com.fgkj.dto.User_inf;
|
|
public class Bts_station_eventImpl 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;
|
final int type=binf.getBattGroupNum();
|
//System.out.println(binf);
|
String sql="select distinct station_id,dev_id,station_event_type,record_datetime,station_event_trig ,tb_battinf.StationName,tb_battinf.StationName1,tb_battinf.StationName2,tb_battinf.StationName3,tb_battinf.StationName5 " +
|
" from db_alarm.tb_bts_station_event,db_battinf.tb_battinf " +
|
" where tb_bts_station_event.dev_id=tb_battinf.FBSDeviceId " +
|
" and db_battinf.tb_battinf.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=?" +
|
" ) " +
|
" and record_datetime>=? and record_datetime<=? " +
|
" and StationName1 like ? and StationName2 like ? and StationName3 like ? and StationName5 like ? " ;//stationid like ?
|
//设备id
|
String dev_idT=" and tb_battinf.FBSDeviceId!=? ";
|
String dev_idF=" and tb_battinf.FBSDeviceId=? ";
|
if(binf.getFBSDeviceId()==0){
|
sql+=dev_idT;
|
}else{
|
sql+=dev_idF;
|
}
|
/*//事件筛选
|
String eventSqlT=" and station_event_type!=? ";
|
String eventSqlF=" and station_event_type=? ";
|
if(binf.getNum()==0){
|
sql+=eventSqlT;
|
}else{
|
sql+=eventSqlF;
|
}*/
|
//事件唯一
|
String onlySql=" and station_event_trig=1 ";
|
sql+=onlySql;
|
//排序
|
String orderSql=" order by dev_id,record_datetime,station_event_type asc ";
|
sql+=orderSql;
|
//System.out.println(sql);
|
List list=DAOHelper.executeQuery(sql, DBUtil.getConn(), new Object[]{binf.getNum(),binf.getBattInUseDate(),binf.getBattInUseDate1(),"%"+binf.getStationName1()+"%","%"+binf.getStationName2()+"%","%"+binf.getStationName3()+"%","%"+binf.getStationName5()+"%",binf.getFBSDeviceId()}, new CallBack() {
|
|
public List getResults(ResultSet rs) {
|
List list=new ArrayList();
|
int STATION_EVENT_TYPE_POFF=0; //基站停电
|
int STATION_EVENT_TYPE_XUHANG=0; //基站续航
|
int STATION_EVENT_TYPE_FADIAN=0; //基站发电
|
int STATION_EVENT_TYPE_DOOROPEN=0; //基站开门
|
int STATION_EVENT_TYPE_DIAOZHAN=0; //基站掉站
|
int STATION_EVENT_TYPE_TEMPUP=0; //基站温度上限
|
int STATION_EVENT_TYPE_TEMPLOW=0; //基站温度下限
|
int STATION_EVENT_TYPE_DAMPUP=0; //基站湿度上限
|
int STATION_EVENT_TYPE_DAMPLOW=0; //基站湿度下限
|
int dev_id=0;
|
int alm_type=0;
|
// 时间段
|
String perid_Time = "";
|
//机房名称
|
String stationName="";
|
try {
|
while(rs.next()){
|
int dev_ids=rs.getInt("dev_id");
|
int alm_types=rs.getInt("station_event_type");
|
String stationNames=rs.getString("stationName");
|
// 年份,季度,月份
|
Date dev_recordtime = rs.getTimestamp("record_datetime");
|
// 获取具体年份,月份和该月的总天数
|
int year = dev_recordtime.getYear() + 1900;
|
int month = dev_recordtime.getMonth() + 1;
|
String perid_Times="";
|
if(type==1){//月统计
|
perid_Times = ActionUtil.getFirstDayOfMonth(year, month - 1);
|
perid_Times += "~";
|
perid_Times += ActionUtil.getLastDayOfMonth(year, month - 1);
|
}else if (type==3) {// 按年份
|
perid_Times = ActionUtil.getFirstDayOfMonth(year, 0);
|
perid_Times += "~";
|
perid_Times += ActionUtil.getLastDayOfMonth(year, 11);
|
}
|
if(perid_Times.equals(perid_Time)){
|
if(dev_ids==dev_id){
|
if(alm_types==AlarmDaoFactory.STATION_EVENT_TYPE_POFF){
|
STATION_EVENT_TYPE_POFF+=1;
|
}else if(alm_types==AlarmDaoFactory.STATION_EVENT_TYPE_XUHANG){
|
STATION_EVENT_TYPE_XUHANG+=1;
|
}else if(alm_types==AlarmDaoFactory.STATION_EVENT_TYPE_FADIAN){
|
STATION_EVENT_TYPE_FADIAN+=1;
|
}else if(alm_types==AlarmDaoFactory.STATION_EVENT_TYPE_DIAOZHAN){
|
STATION_EVENT_TYPE_DIAOZHAN+=1;
|
}else if(alm_types==AlarmDaoFactory.STATION_EVENT_TYPE_DOOROPEN){
|
STATION_EVENT_TYPE_DOOROPEN+=1;
|
}else if(alm_types==AlarmDaoFactory.STATION_EVENT_TYPE_TEMPUP){
|
STATION_EVENT_TYPE_TEMPUP+=1;
|
}else if(alm_types==AlarmDaoFactory.STATION_EVENT_TYPE_TEMPLOW){
|
STATION_EVENT_TYPE_TEMPLOW+=1;
|
}else if(alm_types==AlarmDaoFactory.STATION_EVENT_TYPE_DAMPUP){
|
STATION_EVENT_TYPE_DAMPUP+=1;
|
}else if(alm_types==AlarmDaoFactory.STATION_EVENT_TYPE_DAMPLOW){
|
STATION_EVENT_TYPE_DAMPLOW+=1;
|
}
|
|
}else{
|
Bts_station_event bevent=new Bts_station_event();
|
bevent.setStationName(stationName);
|
bevent.setDev_id(dev_id);
|
bevent.setStation_event_type_xuhang(STATION_EVENT_TYPE_XUHANG);
|
bevent.setStation_event_type_poff(STATION_EVENT_TYPE_POFF);
|
bevent.setStation_event_type_fadian(STATION_EVENT_TYPE_FADIAN);
|
bevent.setStation_event_type_diaozhan(STATION_EVENT_TYPE_DIAOZHAN);
|
bevent.setStation_event_type_dooropen(STATION_EVENT_TYPE_DOOROPEN);
|
|
bevent.setStation_event_type_tempup(STATION_EVENT_TYPE_TEMPUP);
|
bevent.setStation_event_type_templow(STATION_EVENT_TYPE_TEMPLOW);
|
bevent.setStation_event_type_dampup(STATION_EVENT_TYPE_DAMPUP);
|
bevent.setNote(String.valueOf(STATION_EVENT_TYPE_DAMPLOW));
|
|
bevent.setNote(perid_Time);
|
list.add(bevent);
|
stationName=stationNames;
|
dev_id=dev_ids;
|
|
|
STATION_EVENT_TYPE_POFF=0;
|
STATION_EVENT_TYPE_XUHANG=0;
|
STATION_EVENT_TYPE_FADIAN=0;
|
STATION_EVENT_TYPE_DIAOZHAN=0;
|
STATION_EVENT_TYPE_DOOROPEN=0;
|
STATION_EVENT_TYPE_TEMPUP =0; //基站温度上限告警
|
STATION_EVENT_TYPE_TEMPLOW = 0; //基站温度下限告警
|
STATION_EVENT_TYPE_DAMPUP = 0; //基站湿度上限告警
|
STATION_EVENT_TYPE_DAMPLOW = 0; //基站湿度下限告警
|
if(alm_types==AlarmDaoFactory.STATION_EVENT_TYPE_POFF){
|
STATION_EVENT_TYPE_POFF+=1;
|
}else if(alm_types==AlarmDaoFactory.STATION_EVENT_TYPE_XUHANG){
|
STATION_EVENT_TYPE_XUHANG+=1;
|
}else if(alm_types==AlarmDaoFactory.STATION_EVENT_TYPE_FADIAN){
|
STATION_EVENT_TYPE_FADIAN+=1;
|
}else if(alm_types==AlarmDaoFactory.STATION_EVENT_TYPE_DIAOZHAN){
|
STATION_EVENT_TYPE_DIAOZHAN+=1;
|
}else if(alm_types==AlarmDaoFactory.STATION_EVENT_TYPE_DOOROPEN){
|
STATION_EVENT_TYPE_DOOROPEN+=1;
|
}else if(alm_types==AlarmDaoFactory.STATION_EVENT_TYPE_TEMPUP){
|
STATION_EVENT_TYPE_TEMPUP+=1;
|
}else if(alm_types==AlarmDaoFactory.STATION_EVENT_TYPE_TEMPLOW){
|
STATION_EVENT_TYPE_TEMPLOW+=1;
|
}else if(alm_types==AlarmDaoFactory.STATION_EVENT_TYPE_DAMPUP){
|
STATION_EVENT_TYPE_DAMPUP+=1;
|
}else if(alm_types==AlarmDaoFactory.STATION_EVENT_TYPE_DAMPLOW){
|
STATION_EVENT_TYPE_DAMPLOW+=1;
|
}
|
}
|
}else{
|
if(perid_Time.equals("")){
|
if(alm_types==AlarmDaoFactory.STATION_EVENT_TYPE_POFF){
|
STATION_EVENT_TYPE_POFF+=1;
|
}else if(alm_types==AlarmDaoFactory.STATION_EVENT_TYPE_XUHANG){
|
STATION_EVENT_TYPE_XUHANG+=1;
|
}else if(alm_types==AlarmDaoFactory.STATION_EVENT_TYPE_FADIAN){
|
STATION_EVENT_TYPE_FADIAN+=1;
|
}else if(alm_types==AlarmDaoFactory.STATION_EVENT_TYPE_DIAOZHAN){
|
STATION_EVENT_TYPE_DIAOZHAN+=1;
|
}else if(alm_types==AlarmDaoFactory.STATION_EVENT_TYPE_DOOROPEN){
|
STATION_EVENT_TYPE_DOOROPEN+=1;
|
}else if(alm_types==AlarmDaoFactory.STATION_EVENT_TYPE_TEMPUP){
|
STATION_EVENT_TYPE_TEMPUP+=1;
|
}else if(alm_types==AlarmDaoFactory.STATION_EVENT_TYPE_TEMPLOW){
|
STATION_EVENT_TYPE_TEMPLOW+=1;
|
}else if(alm_types==AlarmDaoFactory.STATION_EVENT_TYPE_DAMPUP){
|
STATION_EVENT_TYPE_DAMPUP+=1;
|
}else if(alm_types==AlarmDaoFactory.STATION_EVENT_TYPE_DAMPLOW){
|
STATION_EVENT_TYPE_DAMPLOW+=1;
|
}
|
perid_Time=perid_Times;
|
dev_id=dev_ids;
|
stationName=stationNames;
|
continue;
|
}
|
Bts_station_event bevent=new Bts_station_event();
|
bevent.setStationName(stationName);
|
bevent.setDev_id(dev_id);
|
bevent.setStation_event_type_xuhang(STATION_EVENT_TYPE_XUHANG);
|
bevent.setStation_event_type_poff(STATION_EVENT_TYPE_POFF);
|
bevent.setStation_event_type_fadian(STATION_EVENT_TYPE_FADIAN);
|
bevent.setStation_event_type_diaozhan(STATION_EVENT_TYPE_DIAOZHAN);
|
bevent.setStation_event_type_dooropen(STATION_EVENT_TYPE_DOOROPEN);
|
|
bevent.setStation_event_type_tempup(STATION_EVENT_TYPE_TEMPUP);
|
bevent.setStation_event_type_templow(STATION_EVENT_TYPE_TEMPLOW);
|
bevent.setStation_event_type_dampup(STATION_EVENT_TYPE_DAMPUP);
|
bevent.setNote(String.valueOf(STATION_EVENT_TYPE_DAMPLOW));
|
|
bevent.setNote(perid_Time);
|
//System.out.println(2+" "+dalarm.getDev_ip()+" "+dalarm.getDev_id()+" "+dalarm.getNum()+" "+dalarm.getRecord_id()+" "+dalarm.getAlm_type()+" "+dalarm.getAlm_level()+" "+dalarm.getStationName());
|
list.add(bevent);
|
STATION_EVENT_TYPE_POFF=0;
|
STATION_EVENT_TYPE_XUHANG=0;
|
STATION_EVENT_TYPE_FADIAN=0;
|
STATION_EVENT_TYPE_DIAOZHAN=0;
|
STATION_EVENT_TYPE_DOOROPEN=0;
|
STATION_EVENT_TYPE_TEMPUP =0; //基站温度上限告警
|
STATION_EVENT_TYPE_TEMPLOW = 0; //基站温度下限告警
|
STATION_EVENT_TYPE_DAMPUP = 0; //基站湿度上限告警
|
STATION_EVENT_TYPE_DAMPLOW = 0; //基站湿度下限告警
|
if(alm_types==AlarmDaoFactory.STATION_EVENT_TYPE_POFF){
|
STATION_EVENT_TYPE_POFF+=1;
|
}else if(alm_types==AlarmDaoFactory.STATION_EVENT_TYPE_XUHANG){
|
STATION_EVENT_TYPE_XUHANG+=1;
|
}else if(alm_types==AlarmDaoFactory.STATION_EVENT_TYPE_FADIAN){
|
STATION_EVENT_TYPE_FADIAN+=1;
|
}else if(alm_types==AlarmDaoFactory.STATION_EVENT_TYPE_DIAOZHAN){
|
STATION_EVENT_TYPE_DIAOZHAN+=1;
|
}else if(alm_types==AlarmDaoFactory.STATION_EVENT_TYPE_DOOROPEN){
|
STATION_EVENT_TYPE_DOOROPEN+=1;
|
}else if(alm_types==AlarmDaoFactory.STATION_EVENT_TYPE_TEMPUP){
|
STATION_EVENT_TYPE_TEMPUP+=1;
|
}else if(alm_types==AlarmDaoFactory.STATION_EVENT_TYPE_TEMPLOW){
|
STATION_EVENT_TYPE_TEMPLOW+=1;
|
}else if(alm_types==AlarmDaoFactory.STATION_EVENT_TYPE_DAMPUP){
|
STATION_EVENT_TYPE_DAMPUP+=1;
|
}else if(alm_types==AlarmDaoFactory.STATION_EVENT_TYPE_DAMPLOW){
|
STATION_EVENT_TYPE_DAMPLOW+=1;
|
}
|
dev_id=dev_ids;
|
stationName=stationNames;
|
perid_Time=perid_Times;
|
|
|
}
|
if(rs.isLast()){
|
Bts_station_event bevent=new Bts_station_event();
|
bevent.setStationName(stationName);
|
bevent.setDev_id(dev_id);
|
bevent.setStation_event_type_xuhang(STATION_EVENT_TYPE_XUHANG);
|
bevent.setStation_event_type_poff(STATION_EVENT_TYPE_POFF);
|
bevent.setStation_event_type_fadian(STATION_EVENT_TYPE_FADIAN);
|
bevent.setStation_event_type_diaozhan(STATION_EVENT_TYPE_DIAOZHAN);
|
bevent.setStation_event_type_dooropen(STATION_EVENT_TYPE_DOOROPEN);
|
|
bevent.setStation_event_type_tempup(STATION_EVENT_TYPE_TEMPUP);
|
bevent.setStation_event_type_templow(STATION_EVENT_TYPE_TEMPLOW);
|
bevent.setStation_event_type_dampup(STATION_EVENT_TYPE_DAMPUP);
|
bevent.setNote(String.valueOf(STATION_EVENT_TYPE_DAMPLOW));
|
|
bevent.setNote(perid_Time);
|
list.add(bevent);
|
}
|
}
|
} catch (SQLException e) {
|
// TODO Auto-generated catch block
|
e.printStackTrace();
|
}
|
return list;
|
}
|
});
|
return list;
|
}
|
//机房事件统计(详情)
|
public List serchByInfo(Object obj) {
|
Bts_station_event bevent=(Bts_station_event) obj;
|
Page p=bevent.getPage();
|
//Connection conn=DBUtil.getConn();
|
//String numberSql=" SELECT FOUND_ROWS() number";
|
//SQL_CALC_FOUND_ROWS
|
String sql="select distinct station_id,dev_id,station_event_type,record_datetime,station_event_trig ,tb_battinf.StationName,tb_battinf.StationName1,tb_battinf.StationName2,tb_battinf.StationName3 " +
|
" from db_alarm.tb_bts_station_event,db_battinf.tb_battinf " +
|
" where tb_bts_station_event.dev_id=tb_battinf.FBSDeviceId " +
|
" and db_battinf.tb_battinf.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=?" +
|
" ) " +
|
" and dev_id=? " +
|
" and record_datetime>=? and record_datetime<=? ";
|
//基站状态
|
String eventSqlT=" and station_event_type!=? ";
|
String eventSqlF=" and station_event_type=? ";
|
if(bevent.getStation_event_type()==0){
|
sql+=eventSqlT;
|
}else{
|
sql+=eventSqlF;
|
}
|
//排序
|
String orderSql=" order by dev_id,station_event_type,record_datetime,station_event_trig asc " ;
|
sql+=orderSql;
|
//分页
|
//String limitSql=" limit ?,? ";
|
//sql+=limitSql;
|
//,(p.getPageCurr()-1)*p.getPageSize(),p.getPageSize()
|
//executeQueryLimit
|
List<Bts_station_event> list=DAOHelper.executeQuery(sql, DBUtil.getConn(), new Object[]{bevent.getNum(),bevent.getDev_id(),bevent.getRecord_datetime(),bevent.getRecord_datetime_end(),bevent.getStation_event_type()}, new CallBack() {
|
|
public List getResults(ResultSet rs) {
|
List list=new ArrayList();
|
try {
|
while(rs.next()){
|
Bts_station_event b=new Bts_station_event();
|
b.setStation_id(rs.getInt("station_id"));
|
b.setDev_id(rs.getInt("dev_id"));
|
b.setRecord_datetime(rs.getTimestamp("record_datetime"));
|
b.setStation_event_type(rs.getInt("station_event_type"));
|
b.setStation_event_trig(rs.getInt("station_event_trig"));
|
b.setStationName(rs.getString("stationName"));
|
Page p=new Page();
|
b.setPage(p);
|
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 static void main(String[] args) throws ParseException {
|
Bts_station_eventImpl bimpl=new Bts_station_eventImpl();
|
Page p = new Page();
|
p.setPageCurr(1);
|
p.setPageSize(10);
|
/*条件所存放的位置前台:tb_batt_maint_inf
|
* 在线电压:usr_id
|
* 组端电压:fault_type_id
|
* 充电电流:fault_level
|
* 放电电流:record_uid
|
* 单体电压:maint_type_id
|
* 单体温度:maint_done
|
* 单体内阻:maint_close
|
* 连接条阻抗:master_id
|
* */
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
Date date1 = sdf.parse("2000-01-01 00:00:00");
|
Date date2 = sdf.parse("2020-01-01 00:00:00");
|
|
|
BattInf binf = new BattInf();
|
binf.setNum(1018);
|
binf.setStationName("");
|
binf.setStationName1("广西省");
|
binf.setStationName2("崇左");
|
binf.setStationName3("GX崇左濑湍全凤");
|
binf.setStationName5("江州区");
|
binf.setStationId("42000164");
|
binf.setFBSDeviceId(910000174);
|
binf.setBattGroupNum(3);
|
//System.out.println(ActionUtil.getSimpDate(date1));
|
binf.setBattInUseDate(ActionUtil.getSimpDate(date1));
|
binf.setBattInUseDate1(ActionUtil.getSimpDate(date2));
|
|
User_inf uinf=new User_inf();
|
uinf.setUId(1002);
|
Batt_Maint_Dealarm bmd = new Batt_Maint_Dealarm();
|
bmd.setPage(p);
|
bmd.setBinf(binf);
|
bmd.setUinf(uinf);
|
List<Bts_station_event> list=bimpl.serchByCondition(binf);
|
System.out.println(list.size());
|
for (Bts_station_event b : list) {
|
System.out.println(b.getNote()+" "+b.getDev_id()+" "+b.getStation_event_type_poff()+" "+b.getStation_event_type_xuhang()+" "+b.getStation_event_type_fadian()+" "+b.getStation_event_type_diaozhan()+" "+b.getStation_event_type_dooropen()+" "+b.getStation_event_type_tempup()+" "+b.getStation_event_type_templow()+" "+b.getStation_event_type_dampup()+" "+b.getStation_event_type_damplow()+" "+b.getStationName());
|
}
|
/*Bts_station_event b=new Bts_station_event();
|
b.setNum(1002);
|
b.setDev_id(910000534);
|
b.setRecord_datetime(ActionUtil.getSimpDate(date1));
|
b.setRecord_datetime_end(ActionUtil.getSimpDate(date2));
|
b.setStation_event_type(0);
|
Page page=new Page();
|
page.setPageCurr(1);
|
page.setPageSize(10);
|
b.setPage(page);
|
List list=bimpl.serchByInfo(b);
|
System.out.println(list.size());*/
|
}
|
|
}
|