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.db.DBUtil; import com.fgkj.dto.ram.Bts_gprs_state; public class Bts_gprs_stateImpl 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; } //给gprs发送指令 public boolean update(Object obj) { Bts_gprs_state gprs=(Bts_gprs_state) obj; String sql=" REPLACE into db_ram_db.tb_bts_gprs_state(AT_cmd,dev_id) values('"+FBS9100_ComBase.CSQ+gprs.getAT_cmd()+"',?)"; //System.out.println(sql); boolean bl=DAOHelper.executeUpdate(DBUtil.getConn(), sql, new Object[]{gprs.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读取的设备连接的gprs模块的信号值 public List serchByCondition(Object obj) { Bts_gprs_state gprs=(Bts_gprs_state) obj; String sql=" select distinct db_ram_db.tb_bts_gprs_state.num,dev_id,op_cmd,AT_cmd,ack_inf,bts_task_inf" + " ,stationName,FBSDeviceName " + " from db_ram_db.tb_bts_gprs_state,db_battinf.tb_battinf " + " where db_ram_db.tb_bts_gprs_state.dev_id=db_battinf.tb_battinf.FBSDeviceId " + " and dev_id=? " ; //System.err.println(sql); List list=DAOHelper.executeQuery(sql, DBUtil.getConn(), new Object[]{gprs.getDev_id()}, new CallBack() { public List getResults(ResultSet rs) { List list=new ArrayList(); try { while(rs.next()){ Bts_gprs_state g=new Bts_gprs_state(); g.setNum(rs.getInt("num")); g.setDev_id(rs.getInt("dev_id")); g.setOp_cmd(rs.getInt("op_cmd")); g.setAT_cmd(rs.getString("aT_cmd")); g.setAck_inf(rs.getString("ack_inf")); g.setBts_task_inf(rs.getString("bts_task_inf")); g.setStationName(rs.getString("stationName")); g.setFBSDeviceName(rs.getString("fBSDeviceName")); list.add(g); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } return list; } }); return list; } //系统参数命令操作设备时的cmd和ack校验 public Bts_gprs_state sendCmdToFBS9100Dev(int cmd,int dev_id) { int m_cmd = cmd; int m_cmd_ack = cmd; Bts_gprs_state gprs=new Bts_gprs_state(); gprs.setOp_cmd(0); switch(m_cmd) { case FBS9100_ComBase.CMD_ReadGPRSCSQ: m_cmd_ack = FBS9100_ComBase.CMD_ReadGPRSCSQAck; break; default: return gprs; } //boolean res_exe = false; String ack_inf=""; String sql = "UPDATE db_ram_db.tb_bts_gprs_state 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,ack_inf FROM db_ram_db.tb_bts_gprs_state "+ " 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) { gprs.setAck_inf(rs.getString("ack_inf")); gprs.setOp_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 gprs; } public List serchByInfo(Object obj) { // TODO Auto-generated method stub return null; } public static void main(String[] args) { Bts_gprs_stateImpl bimpl=new Bts_gprs_stateImpl(); Bts_gprs_state gprs=new Bts_gprs_state(); gprs.setDev_id(910000001); gprs.setAT_cmd("CSQ"); /* boolean bl=bimpl.update(gprs); System.out.println(bl);*/ List list=bimpl.serchByCondition(gprs); System.out.println(list); } }