| | |
| | | using SqlSugar.Extensions; |
| | | using 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; |
| | |
| | | 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; |
| | |
| | | } |
| | | return content; |
| | | } |
| | | |
| | | public void GetMessageInfo() |
| | | { |
| | | try |
| | | { |
| | | List<int> keys = new List<int>(); |
| | | 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; |
| | | keys = messages.Select(x => x.Id).ToList(); |
| | | } |
| | | } |
| | | var messinfo = BaseDal.QueryData(x => !keys.Contains(x.Id)); |
| | | 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)); |
| | | } |
| | | _cacheService.AddOrUpdate("MessageInfo", JsonConvert.SerializeObject(messagesinfo)); |
| | | } |
| | | 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; |
| | | } |
| | | } |
| | | } |