package com.fgkj.dao.impl.ram; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.ArrayList; import java.util.List; import com.fgkj.dao.BaseDAO; import com.fgkj.dao.CallBack; import com.fgkj.dao.DAOHelper; import com.fgkj.dao.FBS9100_ComBase; import com.fgkj.dao.UinfDaoFactory; import com.fgkj.db.DBUtil; import com.fgkj.dto.User_log; import com.fgkj.dto.ram.Fbs9100_setparam; import com.fgkj.dto.ram.Fbs9100_sysparam; import com.fgkj.services.User_logService; public class Fbs9100_sysparamImpl 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) { Fbs9100_sysparam sys=(Fbs9100_sysparam) obj; String sql=" update db_ram_db.tb_fbs9100_sysparam set IPADDR=?,SubIPADDR=?,NetGateADDR=?,GroupVolRange=?,GroupVolSorce=?,CurrentRange=?,CurrentTyte=?,MonomerOrder=?,BackLightTime=?" + ",MACADDR=?,LoaderCount=?,DtCardCount=?,PowerBreakChargeCurr=?,MajorBattGroupNum=?,POF_BG_Boost_Cnt=?,POF_BG_Boost_VolStop=?,POF_BG_Boost_VolStart=? " + "where dev_id=? "; boolean bl=DAOHelper.executeUpdate(DBUtil.getConn(), sql, new Object[]{sys.getIPADDR(),sys.getSubIPADDR(),sys.getNetGateADDR(),sys.getGroupVolRange(),sys.getGroupVolSorce(),sys.getCurrentRange(),sys.getCurrentTyte(),sys.getMonomerOrder(),sys.getBackLightTime() ,sys.getMACADDR(),sys.getLoaderCount(),sys.getDtCardCount(),sys.getPowerBreakChargeCurr(),sys.getMajorBattGroupNum(),sys.getPOF_BG_Boost_Cnt(),sys.getPOF_BG_Boost_VolStop(),sys.getPOF_BG_Boost_VolStart(),sys.getDev_id()}); return bl; } //批量设置系统参数 public boolean updatePro(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.size(); i++) { Fbs9100_sysparam fs=list.get(i); String sql="REPLACE into db_ram_db.tb_fbs9100_sysparam(dev_id,IPADDR,SubIPADDR,NetGateADDR,GroupVolRange,GroupVolSorce,CurrentRange,CurrentTyte,MonomerOrder,BackLightTime" + ",MACADDR,LoaderCount,DtCardCount,PowerBreakChargeCurr,MajorBattGroupNum,POF_BG_Boost_Cnt,POF_BG_Boost_VolStop,POF_BG_Boost_VolStart) " + " values()"; sql_str.add(sql); { String msg="修改"+fs.getDev_id()+"机房系统参数"; User_log ulog=UinfDaoFactory.CreateULog(UinfDaoFactory.Alter, msg); listU.add(ulog); } } } Boolean bl=DAOHelper.makeManualCommit(DBUtil.getConn(), sql_str); (new User_logService()).addPro(listU);//将用户的操作记录下来 return bl; } //查询系统参数前(如果没有默认数据要用REPLACE 添加一笔数据) public boolean replace (Object obj){ Fbs9100_sysparam sys=(Fbs9100_sysparam) obj; String sql=" REPLACE into db_ram_db.tb_fbs9100_sysparam(dev_id) values(?)"; boolean bl=DAOHelper.executeUpdate(DBUtil.getConn(), sql, new Object[]{sys.getDev_id()}); return bl; } public boolean del(Object obj) { // TODO Auto-generated method stub return false; } public List searchAll() { // TODO Auto-generated method stub return null; } //根据设备id查询系统参数(一定是被管理的) public List serchByCondition(Object obj) { Fbs9100_sysparam sys=(Fbs9100_sysparam) obj; String sql=" select distinct dev_ip,dev_id,op_cmd,IPADDR,SubIPADDR,NetGateADDR,GroupVolRange,GroupVolSorce,CurrentRange,CurrentTyte,MonomerOrder,BackLightTime" + " ,MACADDR,LoaderCount,DtCardCount,PowerBreakChargeCurr,MajorBattGroupNum,POF_BG_Boost_Cnt,POF_BG_Boost_VolStop,POF_BG_Boost_VolStart" + " ,db_battinf.tb_battinf.FBSDeviceName,db_battinf.tb_battinf.StationName " + " from db_ram_db.tb_fbs9100_sysparam,db_battinf.tb_battinf " + " where db_ram_db.tb_fbs9100_sysparam.dev_id=db_battinf.tb_battinf.FBSDeviceId " + " and db_ram_db.tb_fbs9100_sysparam.dev_id=? " ; List list=DAOHelper.executeQuery(sql, DBUtil.getConn(), new Object[]{sys.getDev_id()}, new CallBack() { public List getResults(ResultSet rs) { List list=new ArrayList(); try { while(rs.next()){ Fbs9100_sysparam fbs_sys=new Fbs9100_sysparam(); fbs_sys.setDev_ip(rs.getString("dev_ip")); fbs_sys.setDev_id(rs.getInt("dev_id")); fbs_sys.setOp_cmd(rs.getInt("op_cmd")); fbs_sys.setIPADDR(rs.getString("iPADDR")); fbs_sys.setSubIPADDR(rs.getString("subIPADDR")); fbs_sys.setNetGateADDR(rs.getString("netGateADDR")); fbs_sys.setGroupVolRange(rs.getInt("groupVolRange")); fbs_sys.setGroupVolSorce(rs.getInt("groupVolSorce")); fbs_sys.setCurrentRange(rs.getInt("currentRange")); fbs_sys.setCurrentTyte(rs.getInt("currentTyte")); fbs_sys.setMonomerOrder(rs.getInt("monomerOrder")); fbs_sys.setBackLightTime(rs.getInt("backLightTime")); fbs_sys.setMACADDR(rs.getString("mACADDR")); fbs_sys.setLoaderCount(rs.getInt("loaderCount")); fbs_sys.setDtCardCount(rs.getInt("dtCardCount")); fbs_sys.setPowerBreakChargeCurr(rs.getFloat("powerBreakChargeCurr")); fbs_sys.setMajorBattGroupNum(rs.getInt("majorBattGroupNum")); fbs_sys.setPOF_BG_Boost_Cnt(rs.getInt("pOF_BG_Boost_Cnt")); fbs_sys.setPOF_BG_Boost_VolStop(rs.getFloat("pOF_BG_Boost_VolStop")); fbs_sys.setPOF_BG_Boost_VolStart(rs.getFloat("pOF_BG_Boost_VolStart")); fbs_sys.setFBSDeviceName(rs.getString("FBSDeviceName")); fbs_sys.setStationName(rs.getString("stationName")); list.add(fbs_sys); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } return list; } }); return list; } //系统参数命令操作设备时的cmd和ack校验 public boolean sendCmdToFBS9100Dev(int cmd,int dev_id) { int m_cmd = cmd; int m_cmd_ack = cmd; switch(m_cmd) { case FBS9100_ComBase.CMD_GetSYSSetParam: m_cmd_ack = FBS9100_ComBase.CMD_GetSYSSetParamAck; break; case FBS9100_ComBase.CMD_SetSYSSetParam: m_cmd_ack = FBS9100_ComBase.CMD_SetSYSSetParamAck; break; default: return false; } boolean res_exe = false; String sql = "UPDATE db_ram_db.tb_fbs9100_sysparam SET " + " op_cmd=? " + " WHERE dev_id=? "; Boolean bl=DAOHelper.executeUpdate(DBUtil.getConn(), sql, new Object[]{m_cmd,dev_id}); if(true == bl) { sql = "SELECT op_cmd FROM db_ram_db.tb_fbs9100_sysparam "+ " WHERE dev_id="+dev_id; Connection conn=DBUtil.getConn(); PreparedStatement ps = null; ResultSet rs = null; for(int n=0; n<20; n++) { try { ps = conn.prepareStatement(sql); rs=ps.executeQuery(); if(rs.next()) { if(rs.getInt("op_cmd") == m_cmd_ack) { res_exe = true; break; } } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } try { Thread.sleep(250); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } DBUtil.close(rs, ps, conn); } return res_exe; } //批量设置系统参数成功后读取命令的ACK public boolean getCmdAck(int cmd,int dev_id) { int m_cmd = cmd; int m_cmd_ack = cmd; switch(m_cmd) { case FBS9100_ComBase.CMD_GetSYSSetParam: m_cmd_ack = FBS9100_ComBase.CMD_GetSYSSetParamAck; break; case FBS9100_ComBase.CMD_SetSYSSetParam: m_cmd_ack = FBS9100_ComBase.CMD_SetSYSSetParamAck; break; default: return false; } String sql = "SELECT op_cmd FROM db_ram_db.tb_fbs9100_sysparam "+ " WHERE dev_id="+dev_id; Connection conn=DBUtil.getConn(); PreparedStatement ps = null; ResultSet rs = null; boolean res_exe=false; try { ps = conn.prepareStatement(sql); rs=ps.executeQuery(); if(rs.next()) { if(rs.getInt("op_cmd") == m_cmd_ack) { res_exe = true; } } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } DBUtil.close(rs, ps, conn); return res_exe; } public List serchByInfo(Object obj) { // TODO Auto-generated method stub return null; } public static void main(String[] args) { Fbs9100_sysparamImpl fimpl=new Fbs9100_sysparamImpl(); Fbs9100_sysparam sys=new Fbs9100_sysparam(); sys.setDev_id(910000011); List list=fimpl.serchByCondition(sys); System.out.println(list.size()); } }