From 528badf2f1efe5355975de7942fb7a26e71a8e18 Mon Sep 17 00:00:00 2001
From: dengjunjie <dengjunjie@hnkhzn.com>
Date: 星期六, 01 十一月 2025 18:34:37 +0800
Subject: [PATCH] 优化盘点流程、出入库退货流程
---
新建文件夹/WIDESEA_WMSServer/ClassLibrary2/MessageInfoService.cs | 132 +++++++++++++++++++++++++++++++++++++++++++
1 files changed, 130 insertions(+), 2 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 0eafba3..365a8ea 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"
@@ -1,4 +1,9 @@
-锘縰sing SqlSugar.Extensions;
+锘縰sing HslCommunication.WebSocket;
+using NetTaste;
+using Newtonsoft.Json;
+using OfficeOpenXml.FormulaParsing.Excel.Functions.Text;
+using Quartz.Util;
+using SqlSugar.Extensions;
using System;
using System.Collections.Generic;
using System.Linq;
@@ -8,15 +13,22 @@
using WIDESEA_Core;
using WIDESEA_Core.BaseRepository;
using WIDESEA_Core.BaseServices;
+using WIDESEA_Core.Caches;
+using WIDESEA_Core.Enums;
using WIDESEA_IWMsInfoServices;
using WIDESEA_Model.Models;
+using static WIDESEA_Core.WebSocketHostedService;
namespace WIDESEA_WMsInfoServices
{
public class MessageInfoService : ServiceBase<Dt_MessageInfo, IRepository<Dt_MessageInfo>>, IMessageInfoService
{
- public MessageInfoService(IRepository<Dt_MessageInfo> BaseDal) : base(BaseDal)
+ private readonly ICacheService _cacheService;
+ private readonly WebSocketServer _webSocketServer;
+ public MessageInfoService(IRepository<Dt_MessageInfo> BaseDal, ICacheService cacheService, WebSocketServer webSocketServer) : base(BaseDal)
{
+ _cacheService = cacheService;
+ _webSocketServer = webSocketServer;
}
public IRepository<Dt_MessageInfo> Repository => BaseDal;
@@ -36,9 +48,14 @@
{
Dt_MessageInfo dt_MessageInfo = null;
if (groupByEnum == MessageGroupByEnum.InventoryExceedAlarm)
+ {
dt_MessageInfo = BaseDal.QueryFirst(x => x.MessageName == messageName && x.MessageRemark == messageRemark);
+ if (dt_MessageInfo != null && dt_MessageInfo.MessageInfo == messageInfo) return content;
+ }
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();
@@ -53,6 +70,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;
@@ -67,5 +85,115 @@
}
return content;
}
+ 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)
+ {
+ content.Error(ex.Message);
+ }
+ return content;
+ }
+
+ public void GetMessageInfo()
+ {
+ try
+ {
+ List<Message> messagesinfo = new List<Message>();
+ string MessageInfo = _cacheService.Get("MessageInfo");
+ if (!string.IsNullOrEmpty(MessageInfo))
+ {
+ List<Message>? messages = JsonConvert.DeserializeObject<List<Message>>(MessageInfo);
+ if (messages != null)
+ {
+ messagesinfo = messages;
+ }
+ }
+ var messinfo = BaseDal.QueryData(x => x.MessageStatus < MessageStatusEnum.Wait.ObjToInt());
+ foreach (var item in messinfo)
+ {
+ Message message = new Message()
+ {
+ Id = item.Id,
+ MessageGroupBy = GetMessageGroupBy(item.MessageGroupBy),
+ MessageInfo = item.MessageInfo,
+ MessageName = item.MessageName,
+ Date = item.CreateDate,
+ };
+ messagesinfo.Add(message);
+ object obj = new
+ {
+ title = message.MessageGroupBy,
+ name = item.MessageName,
+ message = item.MessageInfo,
+ date = item.CreateDate,
+ };
+ if (_webSocketServer.OnlineCount > 0)
+ _webSocketServer.PublishAllClientPayload(JsonConvert.SerializeObject(obj));
+ item.MessageStatus = MessageStatusEnum.Wait.ObjToInt();
+ }
+ if (messagesinfo.Count > 0)
+ _cacheService.AddOrUpdate("MessageInfo", JsonConvert.SerializeObject(messagesinfo));
+ BaseDal.UpdateData(messinfo);
+ }
+ catch (Exception ex)
+ {
+
+ }
+ }
+ public string GetMessageGroupBy(int GroupBy)
+ {
+ string MessageGroupBy = GroupBy.ToString();
+ switch (GroupBy)
+ {
+ case (int)MessageGroupByEnum.EquipmentAlarm:
+ MessageGroupBy = "璁惧鎶ヨ";
+ break;
+ case (int)MessageGroupByEnum.InventoryExceedAlarm:
+ MessageGroupBy = "搴撳瓨杩囨湡棰勮";
+ break;
+ case (int)MessageGroupByEnum.InventoryLowAlarm:
+ MessageGroupBy = "浣庡簱瀛橀璀�";
+ break;
+ case (int)MessageGroupByEnum.MaterielAlarm:
+ MessageGroupBy = "鐗╂枡寰呯淮鎶ゆ姤璀�";
+ break;
+ case (int)MessageGroupByEnum.InOrderAlarm:
+ MessageGroupBy = "鍏ュ簱鍗曟姤璀�";
+ break;
+ case (int)MessageGroupByEnum.OutOrderAlarm:
+ MessageGroupBy = "鍑哄簱鍗曟姤璀�";
+ break;
+ }
+ return MessageGroupBy;
+ }
}
}
--
Gitblit v1.9.3