From 3d3598eea1b93ed7f977d077355ebbcc1270ba38 Mon Sep 17 00:00:00 2001
From: yanjinhui <3306209981@qq.com>
Date: 星期日, 02 十一月 2025 12:17:33 +0800
Subject: [PATCH] 优化

---
 新建文件夹/WIDESEA_WMSServer/ClassLibrary2/MessageInfoService.cs |   33 ++++++++++++++++++++++++++++-----
 1 files changed, 28 insertions(+), 5 deletions(-)

diff --git "a/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WIDESEA_WMSServer/ClassLibrary2/MessageInfoService.cs" "b/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WIDESEA_WMSServer/ClassLibrary2/MessageInfoService.cs"
index ea8b9de..7ab47d9 100644
--- "a/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WIDESEA_WMSServer/ClassLibrary2/MessageInfoService.cs"
+++ "b/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WIDESEA_WMSServer/ClassLibrary2/MessageInfoService.cs"
@@ -51,6 +51,8 @@
                     dt_MessageInfo = BaseDal.QueryFirst(x => x.MessageName == messageName && x.MessageRemark == messageRemark);
                 else
                     dt_MessageInfo = BaseDal.QueryFirst(x => x.MessageName == messageName && x.MessageInfo == messageInfo);
+                if (groupByEnum != MessageGroupByEnum.InventoryExceedAlarm && dt_MessageInfo != null) return content;
+
                 if (dt_MessageInfo == null)
                 {
                     dt_MessageInfo = new Dt_MessageInfo();
@@ -65,6 +67,7 @@
                 {
                     if (dt_MessageInfo.MessageGroupBy == MessageGroupByEnum.InventoryExceedAlarm.ObjToInt())
                     {
+                        if (dt_MessageInfo.MessageInfo == messageInfo) return content;
                         dt_MessageInfo.MessageStatus = statusEnum.ObjToInt();
                         dt_MessageInfo.MessageName = messageName;
                         dt_MessageInfo.MessageInfo = messageInfo;
@@ -79,18 +82,36 @@
             }
             return content;
         }
-        public WebResponseContent DeleteAndIntoHty(int[] keys)
+        public override WebResponseContent DeleteData(object[] keys)
+        {
+            return DeleteAndIntoHty(keys);
+            //return base.DeleteData(keys);
+        }
+        public WebResponseContent DeleteAndIntoHty(object[] keys)
         {
             WebResponseContent content = new WebResponseContent();
             try
             {
                 List<Dt_MessageInfo> messageInfos = BaseDal.QueryData(x => keys.Contains(x.Id));
+                List<int> ints = new List<int>();
                 foreach (var item in messageInfos)
                 {
                     item.MessageStatus = MessageStatusEnum.Processed.ObjToInt();
                     item.Modifier = App.User.UserName;
+                    ints.Add(item.Id);
                 }
                 BaseDal.DeleteAndMoveIntoHty(messageInfos, OperateTypeEnum.浜哄伐瀹屾垚);
+                string MessageInfo = _cacheService.Get("MessageInfo");
+                if (!string.IsNullOrEmpty(MessageInfo))
+                {
+                    List<Message>? messages = JsonConvert.DeserializeObject<List<Message>>(MessageInfo);
+                    if (messages != null)
+                    {
+                        messages = messages.Where(x => !ints.Contains(x.Id)).ToList();
+                        _cacheService.AddOrUpdate("MessageInfo", JsonConvert.SerializeObject(messages));
+                    }
+                }
+                content.OK("澶勭悊鎴愬姛");
             }
             catch (Exception ex)
             {
@@ -103,7 +124,6 @@
         {
             try
             {
-                List<int> keys = new List<int>();
                 List<Message> messagesinfo = new List<Message>();
                 string MessageInfo = _cacheService.Get("MessageInfo");
                 if (!string.IsNullOrEmpty(MessageInfo))
@@ -112,10 +132,10 @@
                     if (messages != null)
                     {
                         messagesinfo = messages;
-                        keys = messages.Select(x => x.Id).ToList();
                     }
                 }
-                var messinfo = BaseDal.QueryData(x => !keys.Contains(x.Id));
+                var messinfo = BaseDal.QueryData(x => x.MessageStatus < MessageStatusEnum.Wait.ObjToInt());
+                messagesinfo = messagesinfo.Where(x => !messinfo.Select(x => x.Id).Contains(x.Id)).ToList();
                 foreach (var item in messinfo)
                 {
                     Message message = new Message()
@@ -136,8 +156,11 @@
                     };
                     if (_webSocketServer.OnlineCount > 0)
                         _webSocketServer.PublishAllClientPayload(JsonConvert.SerializeObject(obj));
+                    item.MessageStatus = MessageStatusEnum.Wait.ObjToInt();
                 }
-                _cacheService.AddOrUpdate("MessageInfo", JsonConvert.SerializeObject(messagesinfo));
+                if (messagesinfo.Count > 0)
+                    _cacheService.AddOrUpdate("MessageInfo", JsonConvert.SerializeObject(messagesinfo));
+                BaseDal.UpdateData(messinfo);
             }
             catch (Exception ex)
             {

--
Gitblit v1.9.3