From bec8c43a3d07b80912050565384f3cf9e59e85f1 Mon Sep 17 00:00:00 2001
From: zrg <z1873@LAPTOP-EAVL132E>
Date: 星期一, 19 一月 2026 18:31:15 +0800
Subject: [PATCH] 1

---
 WebAPI/Service/WebSocketServer.cs |   68 ++++++++++++++++++++++++++++++++-
 1 files changed, 65 insertions(+), 3 deletions(-)

diff --git a/WebAPI/WebSocketServer.cs b/WebAPI/Service/WebSocketServer.cs
similarity index 73%
rename from WebAPI/WebSocketServer.cs
rename to WebAPI/Service/WebSocketServer.cs
index 2460a95..89581d6 100644
--- a/WebAPI/WebSocketServer.cs
+++ b/WebAPI/Service/WebSocketServer.cs
@@ -125,12 +125,11 @@
                 JArray dataTableJArray = JArray.Parse(JsonConvert.SerializeObject(ds.Tables[0]));
                 foreach (JToken row in dataTableJArray)
                 {
-                    // 鎻愬墠鑾峰彇骞跺鐞嗚鏁版嵁锛堥伩鍏嶉噸澶嶈闂� row["鍒楀悕"]锛屼笖澶勭悊 null锛�
                     string receiver = row["鎺ユ敹浜�"]?.ToString() ?? string.Empty; // 涓� null 鏃惰繑鍥炵┖瀛楃涓�
                     string ccUsers = row["鎵�鏈夋妱閫佷汉"]?.ToString() ?? string.Empty;
                     string sendType = row["鍙戦�佺被鍨�"]?.ToString() ?? string.Empty;
 
-                    // 璺宠繃鏃犳晥鏁版嵁琛岋紙涓夊垪鍧囦负绌烘椂锛屾棤闇�澶勭悊锛�
+                    // 璺宠繃鏃犳晥鏁版嵁琛�
                     if (string.IsNullOrEmpty(receiver) && string.IsNullOrEmpty(ccUsers) && string.IsNullOrEmpty(sendType))
                         continue;
 
@@ -161,7 +160,7 @@
                     {
                         // 灏佽 websocket 淇℃伅
                         dictOne.Key.Send(new JObject{ 
-                            ["Type"]="Message",
+                            ["Type"]="MessageNoRead",
                             ["Content"]= NameMsgKVP[dictOne.Value.ToString()].ToString()
                         }.ToString());
                     }
@@ -208,5 +207,68 @@
                 }
             }
         }
+
+        // 鍗曟潯鏁版嵁鎺ㄩ�佸叕寮�璇彞
+        public static void PushOne(int HInterID)
+        {
+            SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
+            DataSet ds = new DataSet();
+            try
+            {
+                JObject NameMsgKVP = new JObject();
+                ds = oCN.RunProcReturn($"select * from h_v_OA_WorkLinkBillAllList where hmainid = {HInterID}", "h_v_OA_WorkLinkBillAllList");
+                // 鍒ゆ柇骞挎挱杩樻槸绉佸彂 锛岀粺璁℃暟鎹�
+                JArray dataTableJArray = JArray.Parse(JsonConvert.SerializeObject(ds.Tables[0]));
+                foreach (JToken row in dataTableJArray)
+                {
+                    string receiver = row["鎺ユ敹浜�"]?.ToString() ?? string.Empty; // 涓� null 鏃惰繑鍥炵┖瀛楃涓�
+                    string ccUsers = row["鎶勯�佹帴鏀朵汉"]?.ToString() ?? string.Empty;
+                    string sendType = row["鍙戦�佺被鍨�"]?.ToString() ?? string.Empty;
+
+                    // 璺宠繃鏃犳晥鏁版嵁琛�
+                    if (string.IsNullOrEmpty(receiver) && string.IsNullOrEmpty(ccUsers) && string.IsNullOrEmpty(sendType))
+                        continue;
+
+                    foreach (var dictOne in _NameConnectionDict)
+                    {
+                        string UName = dictOne.Value.Split('_')[1];
+                        // 灏嗘帴鏀朵汉 鎶勯�佷汉 鑾峰彇 骞挎挱鐨勬秷鎭坊鍔犲埌娑堟伅缂撳瓨
+                        if (string.Equals(row["鎺ユ敹浜�"].ToString(), UName)
+                            || row["鎶勯�佹帴鏀朵汉"].ToString().Contains(UName)
+                            || string.Equals(row["鍙戦�佺被鍨�"].ToString(), "鍏叡"))
+                        {
+                            string dictOneVal = dictOne.Value.ToString();
+                            if (NameMsgKVP[dictOneVal] == null)
+                            {
+                                NameMsgKVP[dictOneVal] = new JArray();
+                            }
+
+                            var jArray = NameMsgKVP[dictOneVal] as JArray;
+
+                            jArray.Add(row);
+                        }
+                    }
+                }
+                // 鏍规嵁鐢ㄦ埛ID鍒嗗彂鍒颁笉鍚岀殑瀹㈡埛绔�
+                foreach (var dictOne in _NameConnectionDict)
+                {
+                    if (NameMsgKVP[dictOne.Value.ToString()] != null)
+                    {
+                        // 灏佽 websocket 淇℃伅
+                        dictOne.Key.Send(new JObject
+                        {
+                            ["Type"] = "Message",
+                            ["Content"] = NameMsgKVP[dictOne.Value.ToString()].ToString()
+                        }.ToString());
+                    }
+                }
+                LogService.Write("娑堟伅鎺ㄩ�佸畬鎴�...");
+            }
+            catch (Exception ex)
+            {
+                LogService.Write(ex.ToString());
+                return;
+            }
+        }
     }
 }
\ No newline at end of file

--
Gitblit v1.9.1