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 com.fgkj.actions.ActionUtil; 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; import com.fgkj.dto.Batt_devalarm_data_history; import com.fgkj.dto.Batt_maint_inf; import com.fgkj.dto.Battalarm_data_history; import com.fgkj.dto.Page; import com.fgkj.dto.User_inf; public class Batt_devalarm_data_historyImpl 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; } //3.4设备历史告警(删除告警)<多数据删除> public String delPro(Object obj) { Batt_devalarm_data_history ddata=(Batt_devalarm_data_history) obj; String sql=" DELETE FROM db_alarm.tb_devalarm_data_history WHERE num="+ddata.getNum(); return sql; } public List searchAll() { // TODO Auto-generated method stub return null; } //3.4设备告警历史记录查询 /*时间段放在binf的getBattProductDate中*/ public List serchByCondition(Object obj) { Batt_Maint_Dealarm bmd=(Batt_Maint_Dealarm) obj; User_inf uinf=bmd.getUinf(); BattInf binf=bmd.getBinf(); Page page=bmd.getPage(); Connection conn=DBUtil.getConn(); String numberSql=" SELECT FOUND_ROWS() number"; String sql=""; String baseSql=" SELECT SQL_CALC_FOUND_ROWS tb_devalarm_data_history.num,record_id,dev_id,dev_ip,alm_type,alm_level,alm_start_time,alm_end_time," + " alm_is_confirmed,alm_confirmed_time,alm_cleared_type, " + " DISTINCTbinf.stationName,DISTINCTbinf.FbsDeviceName " + " FROM db_alarm.tb_devalarm_data_history,(SELECT DISTINCT db_battinf.tb_battinf.FbsDeviceId,db_battinf.tb_battinf.stationName,db_battinf.tb_battinf.FbsDeviceName from db_battinf.tb_battinf where db_battinf.tb_battinf.StationName LIKE ? AND db_battinf.tb_battinf.StationName1 LIKE ? AND db_battinf.tb_battinf.StationName2 LIKE ?) as DISTINCTbinf " + " WHERE tb_devalarm_data_history.dev_id=DISTINCTbinf.FbsDeviceId " + " AND alm_start_time>=? and alm_start_time<=? "; /*//历史告警 String alarmTypeSql=" AND alm_cleared_type!=0"; baseSql+=alarmTypeSql;*/ //判断是否为管理的机房 String stationSql=" and db_alarm.tb_devalarm_data_history.dev_id in(select distinct db_battinf.tb_battinf.FbsDeviceId " + " 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 endSql=" ORDER BY alm_start_time DESC "; //分页 String limitSql=" LIMIT ?,? "; sql=baseSql+endSql+limitSql; List list=DAOHelper.executeQueryLimit(sql, conn,new Object[]{"%"+binf.getStationName()+"%","%"+binf.getStationName1()+"%","%"+binf.getStationName2()+"%",binf.getBattProductDate(),binf.getBattProductDate1() ,uinf.getUId(),(page.getPageCurr() - 1)*page.getPageSize() ,page.getPageSize()}, new CallBack() { public List getResults(ResultSet rs) { List list=new ArrayList(); try { while(rs.next()){ Batt_devalarm_data_history ddata=new Batt_devalarm_data_history(); ddata.setNum(rs.getInt("num")); ddata.setDev_id(rs.getInt("dev_id")); ddata.setDev_ip(rs.getString("dev_ip")); ddata.setAlm_type(rs.getInt("alm_type")); ddata.setAlm_level(rs.getInt("alm_level")); ddata.setAlm_start_time(rs.getTimestamp("alm_start_time")); ddata.setAlm_end_time(rs.getTimestamp("alm_end_time")); ddata.setAlm_is_confirmed(rs.getInt("alm_is_confirmed")); ddata.setAlm_confirmed_time(rs.getTimestamp("alm_confirmed_time")); ddata.setAlm_cleared_type(rs.getInt("alm_cleared_type")); ddata.setDev_name(rs.getString("FbsDeviceName")); ddata.setStationName(rs.getString("stationName")); list.add(ddata); } } 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).setUsr_id(number); } return list; } public List serchByInfo(Object obj) { // TODO Auto-generated method stub return null; } public static void main(String[] args) throws ParseException { Batt_devalarm_data_historyImpl bimpl=new Batt_devalarm_data_historyImpl(); 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"); Date date1 = sdf.parse("2000-01-01"); Date date2 = sdf.parse("2020-01-01"); BattInf binf = new BattInf(); binf.setStationName(""); binf.setStationName1(""); binf.setBattProductDate(ActionUtil.getSimpDate(date1)); binf.setBattProductDate1(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(bmd); for (Batt_devalarm_data_history b : list) { System.out.println(b); } } }