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.jca.GetInstance; import com.fgkj.actions.ActionUtil; import com.fgkj.dao.BaseDAO; import com.fgkj.dao.BattTestData; import com.fgkj.dao.CallBack; import com.fgkj.dao.DAOHelper; import com.fgkj.dao.LimitNumberFactory; import com.fgkj.dao.UinfDaoFactory; import com.fgkj.db.DBUtil; import com.fgkj.db.IDatabaseName; import com.fgkj.dto.BattDischarge_plan; 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; import com.fgkj.dto.User_log; import com.fgkj.services.User_logService; public class BattDischarge_planImpl implements BaseDAO,CallBack{ public List getResults(ResultSet rs) { List list=new ArrayList(); try { while(rs.next()){ BattDischarge_plan bplan=new BattDischarge_plan(); bplan.setNum(rs.getInt("num")); bplan.setBattgroupid(rs.getInt("battgroupid")); bplan.setBattIndexInFbs(rs.getInt("battIndexInFbs")); bplan.setDischarge_starttime(rs.getDate("discharge_starttime")); bplan.setDischarge_stoptime(rs.getDate("discharge_stoptime")); bplan.setDischarge_state(rs.getInt("discharge_state")); bplan.setDischarge_reason(rs.getInt("discharge_reason")); bplan.setDischarge_cleartype(rs.getInt("discharge_cleartype"));//启用还是结束计划 bplan.setPreset_time(rs.getInt("preset_time")); bplan.setPreset_cap(rs.getFloat("preset_cap")); bplan.setPreset_monvol(rs.getFloat("preset_monvol")); bplan.setPreset_groupvol(rs.getFloat("preset_groupvol")); bplan.setPreset_curr(rs.getFloat("preset_curr")); bplan.setPreset_mon(rs.getInt("preset_mon")); bplan.setDcvolhighlimit(rs.getFloat("dcvolhighlimit")); bplan.setChargecurrset(rs.getFloat("chargecurrset")); bplan.setNote(rs.getString("note")); list.add(bplan); } } catch (SQLException e) { e.printStackTrace(); } return list; } //添加 public boolean add(Object obj) { BattDischarge_plan bplan=(BattDischarge_plan) obj; String sql="insert into web_site.tb_battdischarge_plan(battgroupid,battIndexInFbs,discharge_starttime,discharge_stoptime,discharge_state,discharge_reason,discharge_cleartype,preset_time,preset_cap,preset_monvol,preset_groupvol,preset_curr,preset_mon,dcvolhighlimit,chargecurrset,note) values(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)"; Boolean bl=DAOHelper.executeUpdate(DBUtil.getConn(), sql, new Object[]{bplan.getBattgroupid(),bplan.getBattIndexInFbs(),bplan.getDischarge_starttime(), bplan.getDischarge_stoptime(),bplan.getDischarge_state(),bplan.getDischarge_reason(),bplan.getDischarge_cleartype(), bplan.getPreset_time(),bplan.getPreset_cap(),bplan.getPreset_monvol(),bplan.getPreset_groupvol(),bplan.getPreset_curr(),bplan.getPreset_mon(), bplan.getDcvolhighlimit(),bplan.getChargecurrset(),bplan.getNote()}); return bl; } //8.1批量添加电池计划 public boolean addPro(Object obj) { List list=(List) obj; ArrayList sql_str=new ArrayList(); List listU=new ArrayList();//存放user_log if(list!=null&&list.size()>0){ for(int i=0;i list=(List) obj; ArrayList sql_str=new ArrayList(); List listU=new ArrayList();//存放user_log if(list != null && list.size()>0){ for(int i=0;i=? and discharge_starttime<=? " + " AND discharge_cleartype=1 and discharge_state in(0,1) " + " AND battgroupid in (select battgroupid FROM db_battinf.tb_battinf where stationname=? ) "; //System.out.println(sql); List list=DAOHelper.executeQuery(sql, DBUtil.getConn(),new Object[]{bplan.getDischarge_starttime1(),bplan.getDischarge_stoptime1(),bplan.getNote()}, new CallBack() { public List getResults(ResultSet rs) { List list=new ArrayList(); try { while(rs.next()){ int battgroupid=rs.getInt("battgroupid"); list.add(battgroupid); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } return list; } }); //System.out.println(list.size()); if(list.size()>0){ return 0; }else{ return 1; } } public List searchAll() { String sql="select num,battgroupid,discharge_starttime,discharge_stoptime,discharge_state,discharge_reason,discharge_cleartype,preset_time,preset_cap,preset_monvol,preset_groupvol,preset_curr,preset_mon,dcvolhighlimit,chargecurrset,note from web_site.tb_battdischarge_plan "; List list=DAOHelper.executeQuery(sql, DBUtil.getConn(), null, new BattDischarge_planImpl()); return list; } //8.1放电计划查询 /*public List serchByCondition(Object obj) { Batt_Maint_Dealarm bmd=(Batt_Maint_Dealarm) obj; BattInf binf=bmd.getBinf(); BattDischarge_plan bplan=bmd.getBplan(); String numberSql=" SELECT FOUND_ROWS() number"; Connection conn=DBUtil.getConn(); String sql=""; String baseSql="select SQL_CALC_FOUND_ROWS distinct(tb_battdischarge_plan.battgroupid),tb_battdischarge_plan.num,tb_battdischarge_plan.battIndexInFbs,tb_battdischarge_plan.discharge_starttime,tb_battdischarge_plan.discharge_stoptime, " + "tb_battdischarge_plan.discharge_state,tb_battdischarge_plan.discharge_reason,tb_battdischarge_plan.discharge_cleartype,tb_battdischarge_plan.note," + "tb_battdischarge_plan.preset_time,tb_battdischarge_plan.preset_cap,tb_battdischarge_plan.preset_monvol,tb_battdischarge_plan.preset_groupvol,tb_battdischarge_plan.preset_curr,tb_battdischarge_plan.preset_mon," + "tb_battdischarge_plan.dcvolhighlimit,tb_battdischarge_plan.chargecurrset, " + "db_battinf.tb_battinf.stationname1,db_battinf.tb_battinf.stationname,db_battinf.tb_battinf.battGroupName "+ "from web_site.tb_battdischarge_plan " + "left outer join db_battinf.tb_battinf on tb_battdischarge_plan.battgroupid=db_battinf.tb_battinf.battgroupid "+ "where db_battinf.tb_battinf.stationname1 like ? and db_battinf.tb_battinf.stationname like ? " + "and tb_battdischarge_plan.discharge_starttime>=? and tb_battdischarge_plan.discharge_starttime<=? " + "and tb_battdischarge_plan.discharge_state=? "; //电池组选择条件 String idSqlF=" and db_battinf.tb_battinf.battgroupid=? "; String idSqlT=" and db_battinf.tb_battinf.battgroupid!=? "; if(binf.getBattGroupId()!=0){ baseSql+=idSqlF; }else{ baseSql+=idSqlT; } String endSql="order by tb_battdischarge_plan.discharge_starttime desc "; String limitSql=" limit ?,? "; sql=baseSql+endSql+limitSql; //System.out.println(sql); List list=DAOHelper.executeQueryLimit(sql, conn, new Object[]{ "%"+binf.getStationName1()+"%", "%"+binf.getStationName()+"%", bplan.getDischarge_starttime(), bplan.getDischarge_starttime1(), bplan.getDischarge_state(), binf.getBattGroupId(), (bmd.getPage().getPageCurr() - 1)* bmd.getPage().getPageSize(), bmd.getPage().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(); BattDischarge_plan bplan=new BattDischarge_plan(); binf.setStationName(rs.getString("stationName")); binf.setStationName1(rs.getString("stationName1")); binf.setBattGroupName(rs.getString("battGroupName")); bplan.setNum(rs.getInt("num")); bplan.setBattgroupid(rs.getInt("battgroupid")); bplan.setBattIndexInFbs(rs.getInt("battIndexInFbs"));//第几组电池组 bplan.setDischarge_starttime(rs.getTimestamp("discharge_starttime")); bplan.setDischarge_stoptime(rs.getTimestamp("discharge_stoptime")); bplan.setDischarge_state(rs.getInt("discharge_state")); bplan.setDischarge_reason(rs.getInt("discharge_reason")); bplan.setDischarge_cleartype(rs.getInt("discharge_cleartype"));//计划的启用还是取消 bplan.setNote(rs.getString("battGroupName"));//电池组名称 bplan.setPreset_time(rs.getInt("preset_time")); bplan.setPreset_cap(rs.getFloat("preset_cap")); bplan.setPreset_monvol(rs.getFloat("preset_monvol")); bplan.setPreset_groupvol(rs.getFloat("preset_groupvol")); bplan.setPreset_curr(rs.getFloat("preset_curr")); bplan.setPreset_mon(rs.getInt("preset_mon")); bplan.setDcvolhighlimit(rs.getFloat("dcvolhighlimit")); bplan.setChargecurrset(rs.getFloat("chargecurrset")); Page page=new Page(); bmd.setBinf(binf); bmd.setBplan(bplan); 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); //System.out.println("number: "+number); if(list!=null&&list.size()>0){ list.get(list.size()-1).getPage().setPageAll(number); } return list; }*/ public List serchByCondition(Object obj) { Batt_Maint_Dealarm bmd=(Batt_Maint_Dealarm) obj; User_inf uinf=bmd.getUinf(); BattInf binf=bmd.getBinf(); BattDischarge_plan bplan=bmd.getBplan(); String numberSql=" SELECT FOUND_ROWS() number"; Connection conn=DBUtil.getConn(); String sql=""; String baseSql="select SQL_CALC_FOUND_ROWS distinct(tb_battdischarge_plan.battgroupid),tb_battdischarge_plan.num,tb_battdischarge_plan.battIndexInFbs,tb_battdischarge_plan.discharge_starttime,tb_battdischarge_plan.discharge_stoptime, " + "tb_battdischarge_plan.discharge_state,tb_battdischarge_plan.discharge_reason,tb_battdischarge_plan.discharge_cleartype,tb_battdischarge_plan.note," + "tb_battdischarge_plan.preset_time,tb_battdischarge_plan.preset_cap,tb_battdischarge_plan.preset_monvol,tb_battdischarge_plan.preset_groupvol,tb_battdischarge_plan.preset_curr,tb_battdischarge_plan.preset_mon," + "tb_battdischarge_plan.dcvolhighlimit,tb_battdischarge_plan.chargecurrset, " + "db_battinf.tb_battinf.stationname1,db_battinf.tb_battinf.stationname,db_battinf.tb_battinf.stationname5,db_battinf.tb_battinf.battGroupName "+ "from web_site.tb_battdischarge_plan " + "left outer join db_battinf.tb_battinf on tb_battdischarge_plan.battgroupid=db_battinf.tb_battinf.battgroupid "+ "where tb_battdischarge_plan.discharge_starttime>=? and tb_battdischarge_plan.discharge_starttime<=? " + "and tb_battdischarge_plan.discharge_state=? "; //电池组选择条件 String idSqlF=" and db_battinf.tb_battinf.battgroupid=? "; String idSqlT=" and db_battinf.tb_battinf.battgroupid!=? "; if(binf.getBattGroupId()!=0){ baseSql+=idSqlF; }else{ baseSql+=idSqlT; } //用于用户管理的电池组的筛选 String userSql=" and tb_battdischarge_plan.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 ? and db_battinf.tb_battinf.stationname5 like ? )"; baseSql+=userSql; String endSql="order by tb_battdischarge_plan.discharge_starttime desc "; String limitSql=" limit ?,? "; sql=baseSql+endSql+limitSql; //System.out.println(sql); List list=DAOHelper.executeQueryLimit(sql, conn, new Object[]{ bplan.getDischarge_starttime(), bplan.getDischarge_starttime1(), bplan.getDischarge_state(), binf.getBattGroupId(), uinf.getUId(), "%"+binf.getStationName1()+"%", "%"+binf.getStationName()+"%", "%"+binf.getStationName2()+"%", "%"+binf.getStationName5()+"%", (bmd.getPage().getPageCurr() - 1)* bmd.getPage().getPageSize(), bmd.getPage().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(); BattDischarge_plan bplan=new BattDischarge_plan(); binf.setStationName(rs.getString("stationName")); binf.setStationName1(rs.getString("stationName1")); binf.setStationName5(rs.getString("stationName5")); binf.setBattGroupName(rs.getString("battGroupName")); bplan.setNum(rs.getInt("num")); bplan.setBattgroupid(rs.getInt("battgroupid")); bplan.setBattIndexInFbs(rs.getInt("battIndexInFbs"));//第几组电池组 bplan.setDischarge_starttime(rs.getTimestamp("discharge_starttime")); bplan.setDischarge_stoptime(rs.getTimestamp("discharge_stoptime")); bplan.setDischarge_state(rs.getInt("discharge_state")); bplan.setDischarge_reason(rs.getInt("discharge_reason")); bplan.setDischarge_cleartype(rs.getInt("discharge_cleartype"));//计划的启用还是取消 bplan.setNote(rs.getString("battGroupName"));//电池组名称 bplan.setPreset_time(rs.getInt("preset_time")); bplan.setPreset_cap(rs.getFloat("preset_cap")); bplan.setPreset_monvol(rs.getFloat("preset_monvol")); bplan.setPreset_groupvol(rs.getFloat("preset_groupvol")); bplan.setPreset_curr(rs.getFloat("preset_curr")); bplan.setPreset_mon(rs.getInt("preset_mon")); bplan.setDcvolhighlimit(rs.getFloat("dcvolhighlimit")); bplan.setChargecurrset(rs.getFloat("chargecurrset")); Page page=new Page(); bmd.setBinf(binf); bmd.setBplan(bplan); 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); //System.out.println("number: "+number); if(list!=null&&list.size()>0){ list.get(list.size()-1).getPage().setPageAll(number); } return list; } public List serchByInfo(Object obj) { // TODO Auto-generated method stub return null; } //9.1查询机房放电计划中存在放电延时的总数 //地图上所有的放电延时机房 public int serchByStationId(Object obj){ BattMap_information binformation=(BattMap_information) obj; String sql="select count(num) as nums from web_site.tb_battdischarge_plan " + "where " + "battgroupid in (select distinct battgroupid from db_battinf.tb_battinf where stationid=? ) " + "and discharge_state="+BattTestData.test_plan1+" 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) { // 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; } //8.1查询未开始放电的放电计划总数 /*public int searchNums() { String sql="select count(num) as nums " + " from web_site.tb_battdischarge_plan " + " where discharge_state="+BattTestData.test_plan0+" " + " and battgroupid in (select distinct battgroupid from db_battinf.tb_battinf) "+ " limit 1 "; //System.out.println(sql); List list=DAOHelper.executeQuery(sql, DBUtil.getConn(), null, 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 int searchNums(Object obj) { User_inf uinf=(User_inf) obj; String sql="select count(num) as nums " + " from web_site.tb_battdischarge_plan " + " where discharge_state="+BattTestData.test_plan0+" " + " and 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; } //8.1放电计划管理中饼状图(放电计划统计查询) /*public List searchState(){ String sql="SELECT COUNT(num) number,discharge_state from web_site.tb_battdischarge_plan " + " GROUP BY discharge_state "; List list=DAOHelper.executeQuery(sql, DBUtil.getConn(), null, new CallBack() { public List getResults(ResultSet rs) { List list=new ArrayList(); try { while(rs.next()){ BattDischarge_plan bplan=new BattDischarge_plan(); bplan.setNum(rs.getInt("number")); bplan.setDischarge_state(rs.getInt("discharge_state")); list.add(bplan); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } return list; } }); return list; }*/ public List searchState(Object obj){ User_inf uinf=(User_inf) obj; String sql="SELECT COUNT(num) number,discharge_state,battgroupid from web_site.tb_battdischarge_plan " + " GROUP BY battgroupid,discharge_state "; //用于用户管理的电池组的筛选 String userSql=" having web_site.tb_battdischarge_plan.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=? )"; sql+=userSql; 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()){ BattDischarge_plan bplan=new BattDischarge_plan(); bplan.setNum(rs.getInt("number")); bplan.setDischarge_state(rs.getInt("discharge_state")); list.add(bplan); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } return list; } }); return list; } public static void main(String[] args) throws ParseException { 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.setBattGroupId(0); BattDischarge_plan bplan=new BattDischarge_plan(); bplan.setDischarge_starttime(ActionUtil.getSimpDate(date1)); bplan.setDischarge_starttime1(ActionUtil.getSimpDate(date2)); bplan.setDischarge_stoptime(ActionUtil.getSimpDate(date1)); bplan.setDischarge_stoptime1(ActionUtil.getSimpDate(date2)); bplan.setDischarge_state(2); Page p=new Page(); p.setPageCurr(1); p.setPageSize(10); User_inf uinf=new User_inf(); uinf.setUId(1038); Batt_Maint_Dealarm bmd = new Batt_Maint_Dealarm(); bmd.setBinf(binf); bmd.setBplan(bplan); bmd.setPage(p); bmd.setUinf(uinf); BattDischarge_planImpl bimpl=new BattDischarge_planImpl(); /*List list=bimpl.serchByCondition(bmd); for (Batt_Maint_Dealarm b : list) { System.out.println(b.getBplan()); } System.out.println(list.size());*/ /*BattMap_information binformation=new BattMap_information(); binformation.setStationId("42070451"); int nums=bimpl.serchByStationId(binformation); System.out.println(nums);*/ /*List list=bimpl.searchState(uinf); for (BattDischarge_plan b : list) { System.out.println(b); }*/ } }