DELL
2025-01-08 2b4592b9be195945169718aac36cf51f6ce9f894
ElectLock_Monitor/src/com/dev/lock/comm/Lock_Task_SQL.java
@@ -2,8 +2,12 @@
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import com.base.Com;
import com.dev.lock.data.ElectLock_AuthIdcard;
import com.dev.lock.data.ElectLock_ComBase;
import com.dev.lock.data.ElectLock_Ctl_Log;
import com.dev.lock.data.ElectLock_State;
@@ -76,6 +80,8 @@
   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() +
                  " ,lock_online =  " + state.getLock_online() +
                  " ,last_update_time = NOW() " +
                  " WHERE lock_id = " + lock_id;
      Sql_Mysql sql = new Sql_Mysql(pool.getConn());
      try {
@@ -168,4 +174,68 @@
         sql.close_con();
      }
   }
   public static List<ElectLock_AuthIdcard> queryAuth_Idcard_Table(MysqlConnPool pool, int client_id) {
      List<ElectLock_AuthIdcard> batch_auth = new ArrayList<>();
      String sql_str = "SELECT DISTINCT(tb_key_inf.key_id),lock_id,state,tb_auth_idcard.create_time,key_number " +
                  " FROM " + Sql_Mysql.Key_Inf_Table + "," + Sql_Mysql.Auth_Idcard_Table +
                  " WHERE tb_key_inf.key_id = tb_auth_idcard.key_id AND lock_id = " + client_id + " AND key_type = 1 ";
      Sql_Mysql sql = new Sql_Mysql(pool.getConn());
      ResultSet res = null;
      try {
         res = sql.sqlMysqlQuery(sql_str);
         while(res.next()) {
            ElectLock_AuthIdcard auth = new ElectLock_AuthIdcard();
            auth.key_id = res.getInt("key_id");               //'钥匙id',
            auth.lock_id = res.getInt("lock_id");            //'锁具id',
            auth.state = res.getInt("state");               //'1:移除id卡,2添加id卡,3已处理',
            auth.create_time = res.getTimestamp("create_time");   //'创建时间'
            auth.key_number = res.getString("key_number");      //ID卡号
            batch_auth.add(auth);
         }
      } catch (SQLException e) {
         sql.logger.error(e.toString(),e);
      } finally {
         if(null != res) {
            try {
               res.close();
            } catch (SQLException e) {
               sql.logger.error(e.toString(),e);
            }
         }
         sql.close_con();
      }
      return batch_auth;
   }
   /**
    *    将当前批量操作记录移动到历史表
    * @param pool
    * @param tmp_auth
    */
   public static void moveAuth_Idcard_Table(MysqlConnPool pool, ElectLock_AuthIdcard tmp_auth) {
      ArrayList<String> sql_strs = new ArrayList<>();
      String sql_str_ins = "INSERT INTO " + Sql_Mysql.Auth_Idcard_His_Table + "(key_id,lock_id,state,create_time,end_time,auth_result)" +
            "(" +
            "   SELECT key_id,lock_id,state,create_time,NOW()," + tmp_auth.auth_result +
            "   FROM " + Sql_Mysql.Auth_Idcard_Table +
            "   WHERE lock_id = " + tmp_auth.lock_id + " AND key_id = " + tmp_auth.key_id +
            "   AND create_time = '" + Com.getDateTimeFormat(tmp_auth.create_time, Com.DTF_YMDhms) + "' " +
            ");";
      String sql_str_del = "DELETE FROM " + Sql_Mysql.Auth_Idcard_Table + " WHERE lock_id = " + tmp_auth.lock_id + " AND key_id = " + tmp_auth.key_id + " AND create_time = '" + Com.getDateTimeFormat(tmp_auth.create_time, Com.DTF_YMDhms) + "'";
      System.out.println(sql_str_ins);
      sql_strs.add(sql_str_ins);
      sql_strs.add(sql_str_del);
      Sql_Mysql sql = new Sql_Mysql(pool.getConn());
      try {
         sql.makeManualCommit(sql_strs);
      } catch (Exception e) {
         sql.logger.error(e.toString(),e);
      } finally {
         sql.close_con();
      }
   }
}