| | |
| | | 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; |
| | |
| | | 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(); |
| | |
| | | { |
| | | 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; |
| | |
| | | } |
| | | 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) |
| | | { |
| | |
| | | } |
| | | 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; |
| | | } |
| | | } |
| | | } |