package com.fgkj.dao.impl.Ld9; import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; import java.util.ArrayList; import java.util.List; 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.BadBatt_mon; import com.fgkj.dto.BattInf; import com.fgkj.dto.BattMap_information; import com.fgkj.dto.Batt_Maint_Dealarm; import com.fgkj.dto.Page; import com.fgkj.dto.User_inf; public class BadLd9_monImpl 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; } //9.1根据stationid查询机房的落后单体总数 public int serchByStationId(Object obj) { BattMap_information binformation=(BattMap_information) obj; String sql="select count(num) as nums from web_site.tb_badld9_mon " + "where " + "battgroupid in (select distinct battgroupid from db_battinf.tb_battinf where stationid=? ) " + "limit 1 "; //System.out.println(sql); List list=DAOHelper.executeQuery(sql, DBUtil.getConn(), new Object[]{binformation.getStationId()}, new CallBack() { public List getResults(ResultSet rs) { List list=new ArrayList(); try { while(rs.next()){ int nums=rs.getInt("nums"); list.add(nums); } } catch (SQLException e) { e.printStackTrace(); } return list; } }); int nums=0;//最后的结果 if(list!=null&&list.size()>0){ nums=(Integer) list.get(list.size()-1); } return nums; } //9.1根据机房stationid查询机房下电池组单体落后情况 public String serchMonBad(Object obj){ BattInf binf=(BattInf) obj; String sql="select battgroupid,group_concat(distinct mon_num) as mon_nums from web_site.tb_badld9_mon " + " where " + " battgroupid =? " + " group by battgroupid limit 1"; //System.out.println(sql); List list=DAOHelper.executeQuery(sql, DBUtil.getConn(), new Object[]{binf.getBattGroupId()}, new CallBack() { public List getResults(ResultSet rs) { List list=new ArrayList(); try { while(rs.next()){ BadBatt_mon bdmon=new BadBatt_mon(); bdmon.setBattGroupid(rs.getInt("battGroupid")); bdmon.setNote(rs.getString("mon_nums")); list.add(bdmon); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } return list; } }); String monBads="";//存放指定电池组落后单体信息 if(list!=null&&list.size()>0){ monBads=list.get(list.size()-1).getNote(); } return monBads; } //查询落后单体总数 public int searchNums(Object obj) { User_inf uinf=(User_inf) obj; String sql="select count(num) as nums " + " from web_site.tb_badld9_mon " + " where web_site.tb_badld9_mon.battgroupid in(select distinct db_battinf.tb_battinf.battgroupid " + " 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=? )" + " limit 1 "; //System.out.println(sql); List list=DAOHelper.executeQuery(sql, DBUtil.getConn(), new Object[]{uinf.getUId()}, new CallBack() { public List getResults(ResultSet rs) { List list=new ArrayList(); try { while(rs.next()){ int nums=rs.getInt("nums"); list.add(nums); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } return list; } }); int nums=0;//最后的结果 if(list!=null&&list.size()>0){ nums=(Integer) list.get(list.size()-1); } return nums; } public List serchByCondition(Object obj) { // TODO Auto-generated method stub return null; } //落后单体查询:根据条件查询落后单体(用户管理的电池组) public List serchByInfo(Object obj) { Batt_Maint_Dealarm bmd = (Batt_Maint_Dealarm) obj; BattInf binf = bmd.getBinf(); User_inf uinf=bmd.getUinf(); Page page=bmd.getPage(); Connection conn=DBUtil.getConn(); String numberSql=" SELECT FOUND_ROWS() number"; String sql=""; String baseSql=" SELECT SQL_CALC_FOUND_ROWS distinct web_site.tb_badld9_mon.battgroupid,web_site.tb_badld9_mon.mon_num,web_site.tb_badld9_mon.real_cap,web_site.tb_badld9_mon.stdcap,web_site.tb_badld9_mon.note " + ",db_battinf.tb_battinf.stationname1,db_battinf.tb_battinf.stationname,db_battinf.tb_battinf.battproducer,db_battinf.tb_battinf.battinusedate" + ",db_battinf.tb_battinf.monvolstd,db_battinf.tb_battinf.battgroupname " + "FROM web_site.tb_badld9_mon " + "LEFT OUTER JOIN db_battinf.tb_battinf ON web_site.tb_badld9_mon.battgroupid=db_battinf.tb_battinf.BattGroupId " + "where test_starttime>=? and test_starttime<=? "; //选取蓄电池组条件 String idSqlT=" and db_battinf.tb_battinf.battgroupid!=? "; String idSqlF=" and db_battinf.tb_battinf.battgroupid=? "; if(binf.getBattGroupId()==0){ baseSql+=idSqlT; }else{ baseSql+=idSqlF; } //用于用户管理的电池组的筛选 String userSql=" and web_site.tb_badld9_mon.battgroupid in(select distinct db_battinf.tb_battinf.battgroupid " + " 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=? " + " and db_battinf.tb_battinf.stationname1 like ? and db_battinf.tb_battinf.stationname like ? and db_battinf.tb_battinf.stationname2 like ?)"; baseSql+=userSql; String endSql=" ORDER BY web_site.tb_badld9_mon.battgroupid asc "; String limitSql=" limit ?,? "; sql=baseSql+endSql+limitSql; //System.out.println(sql); List list=DAOHelper.executeQueryLimit(sql, conn, new Object[]{ binf.getBattProductDate(),binf.getBattProductDate1(), binf.getBattGroupId(),uinf.getUId(),"%"+binf.getStationName1()+"%","%"+binf.getStationName()+"%","%"+binf.getStationName2()+"%", (page.getPageCurr()-1)*page.getPageSize(),page.getPageSize()}, new CallBack() { public List getResults(ResultSet rs) { List list=new ArrayList(); try { while(rs.next()){ Batt_Maint_Dealarm bmd = new Batt_Maint_Dealarm(); BattInf binf=new BattInf(); binf.setStationName1(rs.getString("stationName1")); binf.setStationName(rs.getString("stationName")); binf.setBattProducer(rs.getString("battProducer")); if(rs.getString("battInUseDate")!=null) binf.setBattInUseDate(rs.getDate("battInUseDate")); binf.setMonVolStd(rs.getFloat("monVolStd")); binf.setBattGroupName(rs.getString("battGroupName")); bmd.setBinf(binf); BadBatt_mon bdmon=new BadBatt_mon(); bdmon.setBattGroupid(rs.getInt("battGroupid")); bdmon.setMon_num(rs.getInt("mon_num")); bdmon.setReal_cap(rs.getFloat("real_cap")); bdmon.setStdcap(rs.getFloat("stdcap")); if(Integer.parseInt(rs.getString("note"))==AlarmDaoFactory.Alarm_CapAlarm){ bdmon.setNote("告警"); }else if(Integer.parseInt(rs.getString("note"))==AlarmDaoFactory.Alarm_CapChange){ bdmon.setNote("更换"); }else{ bdmon.setNote("--"); } bmd.setBdmon(bdmon); Page page=new Page(); bmd.setPage(page); list.add(bmd); } } 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){ list.get(list.size()-1).getPage().setPageAll(number); } return list; } }