From ecad98aa74a1284a036572fa364bcc352480149c Mon Sep 17 00:00:00 2001
From: yl <ykxkd@outlook.com>
Date: 星期一, 11 五月 2026 08:01:35 +0800
Subject: [PATCH] 1.车间综合看板接口调整 2.报工记录子表和不良记录表写入报工人员,班组编码 3.修改调整定时任务写入到数据库,并实现消息推送

---
 VueWebCoreApi/SignalR/ChatHub.cs |   39 ++++++++++++++++++++++-----------------
 1 files changed, 22 insertions(+), 17 deletions(-)

diff --git a/VueWebCoreApi/SignalR/ChatHub.cs b/VueWebCoreApi/SignalR/ChatHub.cs
index 643cdf2..7eefa98 100644
--- a/VueWebCoreApi/SignalR/ChatHub.cs
+++ b/VueWebCoreApi/SignalR/ChatHub.cs
@@ -19,11 +19,13 @@
         private readonly IHttpContextAccessor _httpContextAccessor;
         private ILog log = LogManager.GetLogger(Startup.repository.Name, typeof(ChatHub));
         ILogger<ChatHub> _logger;
+
         public ChatHub(ILogger<ChatHub> logger, IHttpContextAccessor httpContextAccessor)
         {
             _logger = logger;
             _httpContextAccessor = httpContextAccessor;
         }
+
         /// <summary>
         /// 瀹㈡埛绔繛鎺ユ湇鍔$
         /// </summary>
@@ -35,6 +37,7 @@
             _logger.LogInformation($"Client ConnectionId=> [[{id}]] Already Connection Server锛�");
             return base.OnConnectedAsync();
         }
+
         /// <summary>
         /// 瀹㈡埛绔柇寮�杩炴帴
         /// </summary>
@@ -43,14 +46,12 @@
         public override Task OnDisconnectedAsync(Exception exception)
         {
             var id = Context.ConnectionId;
-            // 鍒犻櫎鐢ㄦ埛ID
-            UserIdsStore.Ids.Remove(id);
+            // 浣跨敤绾跨▼瀹夊叏鏂规硶绉婚櫎杩炴帴
+            UserIdsStore.RemoveUser(id);
             _logger.LogInformation($"Client ConnectionId=> [[{id}]] Already Close Connection Server!");
             return base.OnDisconnectedAsync(exception);
         }
-        /**
-         * 娴嬭瘯 
-         * */
+
         /// <summary>
         /// 缁欐墍鏈夊鎴风鍙戦�佹秷鎭�
         /// </summary>
@@ -61,27 +62,31 @@
         }
 
         /// <summary>
-        /// 娣诲姞鍒板湪绾跨敤鎴峰垪琛�
+        /// 娣诲姞鍒板湪绾跨敤鎴峰垪琛紙绾跨▼瀹夊叏鐗堬級
         /// </summary>
-        /// <param name="usercode"></param>
+        /// <param name="usercode">鐢ㄦ埛缂栫爜</param>
         /// <returns></returns>
         public async Task AddUser(string usercode)
         {
+            if (string.IsNullOrEmpty(usercode))
+            {
+                _logger.LogWarning("AddUser鏂规硶鎺ユ敹鐨剈sercode涓虹┖锛屽拷鐣ユ搷浣�");
+                return;
+            }
+
             string cid = Context.ConnectionId;
-            if (!UserIdsStore.Ids.ContainsValue(usercode))
+            try
             {
-                await Task.Run(() => UserIdsStore.Ids.Add(cid, usercode));
+                // 璋冪敤绾跨▼瀹夊叏鐨勬坊鍔�/鏇存柊鏂规硶
+                UserIdsStore.AddOrUpdateUser(cid, usercode);
+                _logger.LogInformation($"鐢ㄦ埛[{usercode}]鐨勮繛鎺{cid}]宸叉敞鍐屽埌鍦ㄧ嚎鍒楄〃");
             }
-            else
+            catch (Exception ex)
             {
-                //lambada琛ㄨ揪寮�:鏍规嵁鍊煎幓閿悕Key
-                string key = UserIdsStore.Ids.FirstOrDefault(d => d.Value == usercode).Key.ToString();
-                // 鍒涘缓涓�涓柊鐨勯敭鍊煎
-                UserIdsStore.Ids.Add(cid, usercode);
-                // 绉婚櫎鏃х殑閿�煎
-                UserIdsStore.Ids.Remove(key);
+                _logger.LogError(ex, $"娣诲姞鐢ㄦ埛[{usercode}]杩炴帴[{cid}]澶辫触");
+                throw; // 鎶涘嚭寮傚父璁╁鎴风鎰熺煡閿欒
             }
-            
+            await Task.CompletedTask; // 鏃犲紓姝ユ搷浣滄椂杩斿洖宸插畬鎴愪换鍔�
         }
     }
 }

--
Gitblit v1.9.3