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) { final BattInf binf=(BattInf) obj; //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 tb_bts_station_event.station_id 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 ? and stationid like ? " ; /*//事件筛选 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 station_id,record_datetime,station_event_type asc "; sql+=orderSql; //System.err.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.getStationId()+"%"}, 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(binf.getBattGroupNum()==1){//月统计 perid_Times = ActionUtil.getFirstDayOfMonth(year, month - 1); perid_Times += "~"; perid_Times += ActionUtil.getLastDayOfMonth(year, month - 1); }else if (binf.getBattGroupNum()==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 tb_bts_station_event.station_id 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 station_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 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(1002); binf.setStationName(""); binf.setStationName1(""); binf.setStationName2(""); binf.setStationName3(""); binf.setStationName5(""); binf.setStationId("42000524"); binf.setBattGroupNum(1); 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 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()); } }