DELL
2024-12-19 6ab9c7858c234f51719acc3e514a1af769da578b
更新实时数据同时更新锁具inf表
10个文件已修改
77 ■■■■ 已修改文件
ElectLock_Monitor/bin/com/dev/lock/comm/Lock_SocketClient_Thread.class 补丁 | 查看 | 原始文档 | blame | 历史
ElectLock_Monitor/bin/com/dev/lock/comm/Lock_Task_SQL.class 补丁 | 查看 | 原始文档 | blame | 历史
ElectLock_Monitor/bin/com/dev/lock/data/ElectLock_Array.class 补丁 | 查看 | 原始文档 | blame | 历史
ElectLock_Monitor/bin/com/dev/lock/data/ElectLock_Inf.class 补丁 | 查看 | 原始文档 | blame | 历史
ElectLock_Monitor/bin/com/dev/lock/data/ElectLock_State.class 补丁 | 查看 | 原始文档 | blame | 历史
ElectLock_Monitor/src/com/dev/lock/comm/Lock_SocketClient_Thread.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ElectLock_Monitor/src/com/dev/lock/comm/Lock_Task_SQL.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ElectLock_Monitor/src/com/dev/lock/data/ElectLock_Array.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ElectLock_Monitor/src/com/dev/lock/data/ElectLock_Inf.java 24 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ElectLock_Monitor/src/com/dev/lock/data/ElectLock_State.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ElectLock_Monitor/bin/com/dev/lock/comm/Lock_SocketClient_Thread.class
Binary files differ
ElectLock_Monitor/bin/com/dev/lock/comm/Lock_Task_SQL.class
Binary files differ
ElectLock_Monitor/bin/com/dev/lock/data/ElectLock_Array.class
Binary files differ
ElectLock_Monitor/bin/com/dev/lock/data/ElectLock_Inf.class
Binary files differ
ElectLock_Monitor/bin/com/dev/lock/data/ElectLock_State.class
Binary files differ
ElectLock_Monitor/src/com/dev/lock/comm/Lock_SocketClient_Thread.java
@@ -159,6 +159,8 @@
                    mRtu_Tx.mkBusRtu(MyModBusRtu.CMD_TYPE_READ_INPUT, ElectLock_ComBase.LOCK_REAL_ADDR, ElectLock_State.Reg_Count_Real);
                    if(SocketComm(mRtu_Tx, ByteBuffer.allocate(0))) {
                        Lock_Task_SQL.updateLock_Rt_Table(pool,client_id,mLock_State);
                        Lock_Task_SQL.updateLock_Inf_Table(pool,client_id,mLock_State);
                    }
                }
                
@@ -171,7 +173,7 @@
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            logger.info("设备断开连接:DevIp:" + client_ip + " DevId:" + client_id);
            logger.info("设备断开连接:DevIp:" + client_ip + " DevId:" + mLock_State.getLockDevId());
        }
        if(null != tmp_socket) {
@@ -219,7 +221,7 @@
                        if(tmp_lock.getLock_ip().equals(client_ip)) {
                            ele_lock = tmp_lock;
                            mLock_State = ele_lock.lockState;
                            client_id = ele_lock.getId();
                            client_id = ele_lock.getLock_id();
                            mLock_State.setClient_ip(client_ip);
                            isCheckOk = true;
                        }
@@ -228,16 +230,16 @@
                    //通过ID号识别锁具
                    mRtu_Tx.mkBusRtu(MyModBusRtu.CMD_TYPE_READ_INPUT, ElectLock_ComBase.LOCK_REAL_ADDR, ElectLock_State.Reg_Count_Real);
                    if(SocketComm(mRtu_Tx, ByteBuffer.allocate(0))){
                        System.out.println("mLock_State.getLock_addr():"+mLock_State.getLock_addr());
                        //System.err.println(mLock_State);
                        System.out.println("mLock_State.getLockDevId():"+mLock_State.getLockDevId());
                        
                        for(int m = 0; m < GB_Lock_Array.getIteamCount();m++) {
                            ElectLock_Inf tmp_lock = GB_Lock_Array.getIteam(m);
                            if(tmp_lock.getId() == mLock_State.getLock_addr()) {
                            if(tmp_lock.getLock_id() == mLock_State.getLockDevId()) {
                                
                                ele_lock = tmp_lock;
                                mLock_State = ele_lock.lockState;
                                client_id = ele_lock.getId();
                                client_id = ele_lock.getLock_id();
                                mLock_State.setClient_ip(client_ip);
                                isCheckOk = true;
                            }
@@ -306,7 +308,7 @@
                Date d1 = new Date();
                int rx_read_time_out = 0;
                //int rx_len = 0;
                System.out.println("数据长度" + plain_tx_t.length + "\t发送数据:" + ComFn.bytesToHexString(plain_tx_t, plain_tx_t.length));
                logger.debug("数据长度" + plain_tx_t.length + "\t发送数据:" + ComFn.bytesToHexString(plain_tx_t, plain_tx_t.length));
                out.write(plain_tx_t);
                out.flush();
               
@@ -353,7 +355,7 @@
                bytebuffer_for_socket_RX.get(cipher_buf);
                
                
                System.out.println("数据长度"+cipher_buf.length+"\t返回数据:"+ ComFn.bytesToHexString(cipher_buf, cipher_buf.length));
                logger.debug("数据长度"+cipher_buf.length+"\t返回数据:"+ ComFn.bytesToHexString(cipher_buf, cipher_buf.length));
                //Log.e(TAG, "SocketComm: "+ComFn.bytesToHexString(plain_buf, plain_buf.length));
                if(cipher_buf.length > MyModBusRtu.BYTE_LEN && true == getDataFromCommBuf(cipher_buf,rtu)) {
                    res_t = true; 
ElectLock_Monitor/src/com/dev/lock/comm/Lock_Task_SQL.java
@@ -14,7 +14,7 @@
    
    public static void insertLock_Rt_Table(MysqlConnPool pool,int lock_id,ElectLock_State state) {
        String sql_str_sel = "SELECT * FROM " + Sql_Mysql.Lock_Rt_Table + " WHERE lock_id = 1";
        String sql_str_sel = "SELECT * FROM " + Sql_Mysql.Lock_Rt_Table + " WHERE lock_id = " + lock_id;
        String sql_str_ins = "INSERT INTO "  + Sql_Mysql.Lock_Rt_Table +  "(lock_id,client_ip) VALUES("+lock_id+",'" + state.getClient_ip() + "');";
        Sql_Mysql sql = new Sql_Mysql(pool.getConn());
        ResultSet res = null;
@@ -68,6 +68,27 @@
    } 
    
    /**
     *     更新 tb_lock_inf 表中锁的状态
     * @param pool
     * @param lock_id
     * @param state
     */
    public static void updateLock_Inf_Table(MysqlConnPool pool,int lock_id,ElectLock_State state) {
        String sql_str = "UPDATE " + Sql_Mysql.Lock_Inf_Table +
                        " Set lock_state = " +  state.getLock_state() +
                        " WHERE lock_id = " + lock_id;
        Sql_Mysql sql = new Sql_Mysql(pool.getConn());
        try {
            sql.sqlMysqlExecute(sql_str);
        } catch (SQLException e) {
            sql.logger.error(e.toString(),e);
        } finally {
            sql.close_con();
        }
    }
    /**
     *     查询是否有需要控制的锁具
     * @param pool
     * @param lock_id
ElectLock_Monitor/src/com/dev/lock/data/ElectLock_Array.java
@@ -29,7 +29,7 @@
        try {
            res = sql.sqlMysqlQuery(sql_str);
            while(res.next()) {
                int lock_id = res.getInt("id");
                int lock_id = res.getInt("lock_id");
                int area_id = res.getInt("area_id");                    //区域ID
                String lock_name = res.getString("lock_name");            //锁名称
                String lock_type = res.getString("lock_type");            //锁类型(无源,蓝牙)
@@ -41,7 +41,7 @@
                boolean isexist = false;
                for(int k = 0 ;k<mInfs.size();k++) {
                    ElectLock_Inf tmp_lock = getIteam(k);
                    if(lock_id == tmp_lock.getId()) {
                    if(lock_id == tmp_lock.getLock_id()) {
                        if(!lock_ip.equals(tmp_lock.getLock_ip())) {
                            tmp_lock.setLock_ip(lock_ip);
                            isChange = true;
@@ -54,7 +54,7 @@
                    continue;
                } else {
                    ElectLock_Inf tmp_lock = new ElectLock_Inf();
                    tmp_lock.setId(lock_id);
                    tmp_lock.setLock_id(lock_id);
                    tmp_lock.setArea_id(area_id);                //'区域id',
                    tmp_lock.setLock_name(lock_name);            //'锁名称',
                    tmp_lock.setLock_type(lock_type);            //'锁类型(无源,蓝牙)',
ElectLock_Monitor/src/com/dev/lock/data/ElectLock_Inf.java
@@ -2,7 +2,6 @@
public class ElectLock_Inf {
    
    private int id;                    //电子锁ID
    private int area_id;            //'区域id',
    private String lock_name;        //'锁名称',
    private String lock_type;            //'锁类型(无源,蓝牙)',
@@ -10,6 +9,7 @@
    private String lock_address;    //'锁地址',
    private String lock_path;        //'图片路径',
    private String lock_ip;            //'电子锁IP地址[内网可通过IP地址识别设备]',
    private int lock_id;            //电子锁ID
    
    public ElectLock_State lockState;
    
@@ -17,9 +17,6 @@
        lockState = new ElectLock_State();
    }
    
    public int getId() {
        return id;
    }
    public int getArea_id() {
        return area_id;
    }
@@ -41,9 +38,6 @@
    public String getLock_ip() {
        return lock_ip;
    }
    public void setId(int id) {
        this.id = id;
    }
    public void setArea_id(int area_id) {
        this.area_id = area_id;
    }
@@ -65,6 +59,22 @@
    public void setLock_ip(String lock_ip) {
        this.lock_ip = lock_ip;
    }
    public int getLock_id() {
        return lock_id;
    }
    public ElectLock_State getLockState() {
        return lockState;
    }
    public void setLock_id(int lock_id) {
        this.lock_id = lock_id;
    }
    public void setLockState(ElectLock_State lockState) {
        this.lockState = lockState;
    }
    
    
}
ElectLock_Monitor/src/com/dev/lock/data/ElectLock_State.java
@@ -46,7 +46,7 @@
        int ver = ComBase.changeShortToInt(buffer.getShort());
        this.lock_version = " V"+ ver;                                                //'软件版本号',
        this.unlock_type = ComBase.changeShortToInt(buffer.getShort());                //'上一次开锁方式[0-485开锁 1-刷卡开锁 2-蓝牙开锁 3-DI开锁]',
        this.unlock_id = (buffer.getInt()&0xFFFFFFFF);                                            //'上一次刷开开锁卡号[仅刷开开锁时有效]',
        this.unlock_id = (buffer.getInt()&0xFFFFFFFF);                                //'上一次刷开开锁卡号[仅刷开开锁时有效]',
        this.lock_addr = ComBase.changeShortToInt(buffer.getShort());                //'设备地址',
        
        //System.out.println(this);
@@ -55,6 +55,10 @@
        return true;
    }
    
    public int getLockDevId() {
        return 10000000 + this.lock_addr;
    }
    public Date getRecord_time() {
        return record_time;
    }