1
81041
2019-06-20 ab3c4acf83f54f8449ca8664c4a2bb79bd30f297
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
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);
}
}