From 58c605a8f48cebc888883ed70dc46b82ad8d3b96 Mon Sep 17 00:00:00 2001
From: DELL <1525436766@qq.com>
Date: 星期一, 06 一月 2025 16:11:27 +0800
Subject: [PATCH] V1.108 edit by lijun 2025-01-06 	1.新增批量授权逻辑,批量授权或取消时同时记录操作日志

---
 ElectLock_Monitor/src/com/dev/lock/comm/Lock_SocketClient_Thread.java |   45 +++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 45 insertions(+), 0 deletions(-)

diff --git a/ElectLock_Monitor/src/com/dev/lock/comm/Lock_SocketClient_Thread.java b/ElectLock_Monitor/src/com/dev/lock/comm/Lock_SocketClient_Thread.java
index 61b8504..fc44857 100644
--- a/ElectLock_Monitor/src/com/dev/lock/comm/Lock_SocketClient_Thread.java
+++ b/ElectLock_Monitor/src/com/dev/lock/comm/Lock_SocketClient_Thread.java
@@ -7,6 +7,7 @@
 import java.nio.ByteBuffer;
 import java.nio.ByteOrder;
 import java.util.Date;
+import java.util.List;
 
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
@@ -16,6 +17,7 @@
 import com.base.Crc16;
 import com.config.AppConfig;
 import com.dev.lock.data.ElectLock_Array;
+import com.dev.lock.data.ElectLock_AuthIdcard;
 import com.dev.lock.data.ElectLock_ComBase;
 import com.dev.lock.data.ElectLock_Inf;
 import com.dev.lock.data.ElectLock_State;
@@ -46,6 +48,7 @@
 	private ByteBuffer bytebuffer_for_socket_RX = ByteBuffer.allocate(15000);
 	
 	private boolean S_thread_run_flag = true;
+	
 	
 	public Lock_SocketClient_Thread(MysqlConnPool pool,ElectLock_Array GB_Lock_Array ,AppConfig config,Socket tmp_socket) {
 		this.pool = pool;
@@ -164,6 +167,48 @@
 					}
 				}
 				
+				List<ElectLock_AuthIdcard> batch_auth = Lock_Task_SQL.queryAuth_Idcard_Table(pool,client_id);
+				if(batch_auth.size() > 0) {
+					logger.info("寮�濮嬫壒閲忔巿鏉僆D鍗�,ID鏁伴噺锛�" + batch_auth.size());
+					for(int k = 0; k < batch_auth.size() ; k++) {
+						ElectLock_AuthIdcard tmp_auth = batch_auth.get(k);
+						ElectLock_Ctl_Log tmp_log = null;
+						try {
+							int keyNumber = Integer.parseInt(tmp_auth.key_number.trim());
+							if(tmp_auth.state == ElectLock_AuthIdcard.AuthType_ReMove) {
+								//鍙栨秷ID鍗℃巿鏉�
+								mRtu_Tx.mkBusRtu(MyModBusRtu.CMD_TYPE_WRITE_MULTY, ElectLock_ComBase.LOCK_Clear_ID_AUTH_ADDR, ElectLock_ComBase.RegCount_Double);
+								if(SocketComm(mRtu_Tx, ComBase.mkInt32Buffer(keyNumber))) {
+									tmp_auth.auth_result = ElectLock_ComBase.Auth_Success;
+									tmp_log = new ElectLock_Ctl_Log(client_id, ElectLock_ComBase.CtlType_RemoveIdCard, true,keyNumber);
+									Lock_Task_SQL.insertLock_Ctl_Log_Table(pool, tmp_log);
+								} else {
+									tmp_log = new ElectLock_Ctl_Log(client_id, ElectLock_ComBase.CtlType_RemoveIdCard, false,keyNumber);
+									Lock_Task_SQL.insertLock_Ctl_Log_Table(pool, tmp_log);
+								}
+							}else if(tmp_auth.state == ElectLock_AuthIdcard.AuthType_Add) {
+								//娣诲姞鎺堟潈
+								mRtu_Tx.mkBusRtu(MyModBusRtu.CMD_TYPE_WRITE_MULTY, ElectLock_ComBase.LOCK_Add_ID_AUTH_ADDR, ElectLock_ComBase.RegCount_Double);
+								if(SocketComm(mRtu_Tx, ComBase.mkInt32Buffer(keyNumber))) {
+									tmp_auth.auth_result = ElectLock_ComBase.Auth_Success;
+									tmp_log = new ElectLock_Ctl_Log(client_id, ElectLock_ComBase.CtlType_AddIdCard, true,keyNumber);
+									Lock_Task_SQL.insertLock_Ctl_Log_Table(pool, tmp_log);
+								} else {
+									tmp_log = new ElectLock_Ctl_Log(client_id, ElectLock_ComBase.CtlType_AddIdCard, false,keyNumber);
+									Lock_Task_SQL.insertLock_Ctl_Log_Table(pool, tmp_log);
+								}
+							}
+						} catch (Exception e) {
+							tmp_auth.auth_result = ElectLock_ComBase.Auth_Fail;
+						} finally {
+							tmp_log = null;
+						}
+						Lock_Task_SQL.moveAuth_Idcard_Table(pool, tmp_auth);
+					}
+					
+				}
+				batch_auth = null;
+				
 				runCount ++;
 				if(runCount > 99999900) {
 					runCount = 0;

--
Gitblit v1.9.1