From e5c661c9d5dd92eecd810e6ce11ff67ec38b08f0 Mon Sep 17 00:00:00 2001
From: yanjinhui <3306209981@qq.com>
Date: 星期三, 29 十月 2025 01:28:40 +0800
Subject: [PATCH] Merge branch 'master' of http://115.159.85.185:8098/r/ZhiHuiQiCe/FangCangZhiNeng
---
新建文件夹/WIDESEA_WMSServer/WIDESEA_Core/Extensions/WebSocketHostedService.cs | 99 +++++++++++
新建文件夹/WIDESEA_WMSServer/ClassLibrary1/IMessageInfoService.cs | 11
新建文件夹/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/WMSInfo/MessageInfoController.cs | 2
新建文件夹/WMS/src/views/index/Message.vue | 42 ++--
新建文件夹/WIDESEA_WMSServer/WIDESEA_Model/Models/WMSInfo/Dt_Inventory_Batch.cs | 2
新建文件夹/WIDESEA_WMSServer/WIDESEA_WMSServer/Program.cs | 1
新建文件夹/WMS/src/views/Index.vue | 8
新建文件夹/WMS/src/views/Alarm/MessageInfo.vue | 76 ++++----
新建文件夹/WIDESEA_WMSServer/ClassLibrary1/IInventoryInfoService.cs | 6
新建文件夹/WIDESEA_WMSServer/WIDESEA_Common/MessageEnum.cs | 9
新建文件夹/WMS/src/views/index/MessageConfig.js | 2
新建文件夹/WIDESEA_WMSServer/ClassLibrary2/MessageInfoService.cs | 111 ++++++++++++
新建文件夹/WIDESEA_WMSServer/WIDESEA_SquareCabinServices/CabinOrderServices.cs | 2
新建文件夹/WIDESEA_WMSServer/ClassLibrary2/Inventory_BatchServices.cs.cs | 28 +++
新建文件夹/WIDESEA_WMSServer/ClassLibrary1/IInventory_BatchServices.cs | 2
新建文件夹/WIDESEA_WMSServer/ClassLibrary2/InventoryInfoService.cs | 78 --------
新建文件夹/WIDESEA_WMSServer/WIDESEA_WMSServer/AlarmJob.cs | 11
17 files changed, 329 insertions(+), 161 deletions(-)
diff --git "a/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WIDESEA_WMSServer/ClassLibrary1/IInventoryInfoService.cs" "b/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WIDESEA_WMSServer/ClassLibrary1/IInventoryInfoService.cs"
index c242dec..7a82ced 100644
--- "a/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WIDESEA_WMSServer/ClassLibrary1/IInventoryInfoService.cs"
+++ "b/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WIDESEA_WMSServer/ClassLibrary1/IInventoryInfoService.cs"
@@ -20,11 +20,5 @@
/// </summary>
/// <returns></returns>
WebResponseContent GetInventory();
-
- /// <summary>
- /// 鑾峰彇涓存湡鐨勫拰绔嬪簱搴撳瓨浣庢姤璀�
- /// </summary>
- /// <returns></returns>
- WebResponseContent GetExpiredAndlow();
}
}
diff --git "a/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WIDESEA_WMSServer/ClassLibrary1/IInventory_BatchServices.cs" "b/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WIDESEA_WMSServer/ClassLibrary1/IInventory_BatchServices.cs"
index 58ff81d..edde60c 100644
--- "a/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WIDESEA_WMSServer/ClassLibrary1/IInventory_BatchServices.cs"
+++ "b/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WIDESEA_WMSServer/ClassLibrary1/IInventory_BatchServices.cs"
@@ -13,5 +13,7 @@
public interface IInventory_BatchServices : IService<Dt_Inventory_Batch>
{
IRepository<Dt_Inventory_Batch> Repository { get; }
+
+ WebResponseContent GetExpiredAndlow();
}
}
diff --git "a/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WIDESEA_WMSServer/ClassLibrary1/IMessageInfoService.cs" "b/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WIDESEA_WMSServer/ClassLibrary1/IMessageInfoService.cs"
index 9adfc9c..a7959bf 100644
--- "a/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WIDESEA_WMSServer/ClassLibrary1/IMessageInfoService.cs"
+++ "b/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WIDESEA_WMSServer/ClassLibrary1/IMessageInfoService.cs"
@@ -17,13 +17,14 @@
/// <summary>
/// 娣诲姞閫氱煡淇℃伅
/// </summary>
- /// <param name="groupByEnum">鎶ヨ鍒嗙粍</param>
- /// <param name="messageName">鍚嶅瓧</param>
- /// <param name="messageInfo">鎶ヨ淇℃伅</param>
- /// <param name="statusEnum">鐘舵��</param>
+ /// <param name="groupByEnum"></param>
+ /// <param name="messageName"></param>
+ /// <param name="messageInfo"></param>
+ /// <param name="statusEnum"></param>
/// <param name="messageRemark"></param>
/// <returns></returns>
WebResponseContent AddMessageInfo(MessageGroupByEnum groupByEnum, string messageName, string messageInfo, MessageStatusEnum statusEnum = MessageStatusEnum.Undisposed, string messageRemark = "");
- WebResponseContent DeleteAndIntoHty(int[] keys);
+ WebResponseContent DeleteAndIntoHty(object[] keys);
+ void GetMessageInfo();
}
}
diff --git "a/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WIDESEA_WMSServer/ClassLibrary2/InventoryInfoService.cs" "b/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WIDESEA_WMSServer/ClassLibrary2/InventoryInfoService.cs"
index 0859da2..4b06b24 100644
--- "a/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WIDESEA_WMSServer/ClassLibrary2/InventoryInfoService.cs"
+++ "b/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WIDESEA_WMSServer/ClassLibrary2/InventoryInfoService.cs"
@@ -25,82 +25,6 @@
}
public IRepository<Dt_InventoryInfo> Repository => BaseDal;
- public WebResponseContent GetExpiredAndlow()
- {
- try
- {
- // 鑾峰彇褰撳墠鏃堕棿锛堝彧鍙栨棩鏈熼儴鍒嗭紝蹇界暐鏃堕棿锛�
- DateTime currentDate = DateTime.Today;
- // 璁$畻30澶╁悗鐨勬棩鏈�
- DateTime thresholdDate = currentDate.AddDays(30);
-
- // 鏌ユ壘搴撳瓨涓墍鏈夊晢鍝�
- var inventoryList = BaseDal.QueryData();
- var expiredSoonList = new List<object>();
-
- foreach (var item in inventoryList)
- {
- // 妫�鏌alidityPeriod鏄惁涓虹┖
- if (string.IsNullOrEmpty(item.ValidityPeriod))
- continue;
-
- // 浣跨敤绮剧‘鏍煎紡瑙f瀽 "2037-10-02"
- if (DateTime.TryParseExact(item.ValidityPeriod.Trim(), "yyyy-MM-dd",
- System.Globalization.CultureInfo.InvariantCulture,
- System.Globalization.DateTimeStyles.None, out DateTime expiryDate))
- {
- // 璁$畻鍓╀綑澶╂暟锛堝彧姣旇緝鏃ユ湡閮ㄥ垎锛�
- double daysRemaining = (expiryDate - currentDate).TotalDays;
-
- // 妫�鏌ユ槸鍚﹀湪30澶╁唴锛堝寘鎷凡杩囨湡鐨勶級
- if (daysRemaining <= 30)
- {
- expiredSoonList.Add(new
- {
- MaterielCode = item.MaterielCode ?? "",
- BatchNo = item.BatchNo ?? "",
- ValidityPeriod = item.ValidityPeriod,
- ExpiryDate = expiryDate.ToString("yyyy-MM-dd"),
- });
- }
- }
- else
- {
- // 璁板綍瑙f瀽澶辫触鐨勮褰曪紙鐢ㄤ簬璋冭瘯锛�
- Console.WriteLine($"鏃犳硶瑙f瀽鏁堟湡: {item.ValidityPeriod}");
- }
- }
-
- // 鎸夊墿浣欏ぉ鏁板崌搴忔帓鍒楋紙鍗冲皢杩囨湡鐨勬帓鍓嶉潰锛�
- var sortedList = expiredSoonList.OrderBy(x =>
- {
- var days = (int)((dynamic)x).DaysRemaining;
- return days;
- }).ToList();
-
- return new WebResponseContent
- {
- Status = true,
- Message = $"鍙戠幇 {sortedList.Count} 涓晢鍝佸皢鍦�30澶╁唴杩囨湡",
- Data = new
- {
- TotalCount = sortedList.Count,
- ExpiredCount = sortedList.Count(x => ((dynamic)x).DaysRemaining < 0),
- WarningCount = sortedList.Count(x => ((dynamic)x).DaysRemaining >= 0),
- CheckDate = currentDate.ToString("yyyy-MM-dd"),
- Items = sortedList
- }
- };
- }
- catch (Exception ex)
- {
- return new WebResponseContent
- {
- Status = false,
- Message = $"鑾峰彇鏁堟湡鏁版嵁澶辫触: {ex.Message}"
- };
- }
- }
/// <summary>
/// 鑾峰彇搴撳瓨
@@ -152,6 +76,6 @@
}
-
+
}
}
diff --git "a/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WIDESEA_WMSServer/ClassLibrary2/Inventory_BatchServices.cs.cs" "b/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WIDESEA_WMSServer/ClassLibrary2/Inventory_BatchServices.cs.cs"
index 10dd800..536d322 100644
--- "a/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WIDESEA_WMSServer/ClassLibrary2/Inventory_BatchServices.cs.cs"
+++ "b/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WIDESEA_WMSServer/ClassLibrary2/Inventory_BatchServices.cs.cs"
@@ -3,6 +3,8 @@
using System.Linq;
using System.Text;
using System.Threading.Tasks;
+using WIDESEA_Common;
+using WIDESEA_Core;
using WIDESEA_Core.BaseRepository;
using WIDESEA_Core.BaseServices;
using WIDESEA_IWMsInfoServices;
@@ -13,10 +15,34 @@
{
public class Inventory_BatchServices : ServiceBase<Dt_Inventory_Batch, IRepository<Dt_Inventory_Batch>>, IInventory_BatchServices
{
- public Inventory_BatchServices(IRepository<Dt_Inventory_Batch> BaseDal) : base(BaseDal)
+ private IMessageInfoService _messageInfoService;
+ public Inventory_BatchServices(IRepository<Dt_Inventory_Batch> BaseDal, IMessageInfoService messageInfoService) : base(BaseDal)
{
+ _messageInfoService = messageInfoService;
}
public IRepository<Dt_Inventory_Batch> Repository => BaseDal;
+
+ public WebResponseContent GetExpiredAndlow()
+ {
+ WebResponseContent content = new WebResponseContent();
+ try
+ {
+ DateTime dateTime = DateTime.Now.AddDays(30).Date;
+ List<Dt_Inventory_Batch> inventory_Batches = BaseDal.QueryData(x => x.ValidityPeriod < dateTime);
+ foreach (var item in inventory_Batches)
+ {
+ var day = (item.ValidityPeriod - DateTime.Now).Days;
+ string d = $"杩樻湁{day}澶╄繃鏈�";
+ if (day < 0) d = $"宸茶繃鏈焮Math.Abs(day)}澶�";
+ _messageInfoService.AddMessageInfo(MessageGroupByEnum.InventoryExceedAlarm, "鐗╂枡鍚嶇О:" + item.MaterielName, $"鐗╂枡缂栧彿銆恵item.MaterielCode}銆戠墿鏂欐壒娆°�恵item.BatchNo}銆憑d}");
+ }
+ }
+ catch (Exception ex)
+ {
+ content.Error(ex.Message);
+ }
+ return content;
+ }
}
}
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 2af9277..55e2047 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,16 +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;
@@ -40,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();
@@ -54,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;
@@ -68,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)
{
@@ -87,5 +119,78 @@
}
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;
+ }
}
}
diff --git "a/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WIDESEA_WMSServer/WIDESEA_Common/MessageEnum.cs" "b/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WIDESEA_WMSServer/WIDESEA_Common/MessageEnum.cs"
index edfef0a..efb06df 100644
--- "a/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WIDESEA_WMSServer/WIDESEA_Common/MessageEnum.cs"
+++ "b/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WIDESEA_WMSServer/WIDESEA_Common/MessageEnum.cs"
@@ -47,9 +47,9 @@
public enum MessageStatusEnum
{
/// <summary>
- /// 寰呭鐞�
+ /// 鏈鐞�
/// </summary>
- [Description("寰呭鐞�")]
+ [Description("鏈鐞�")]
Undisposed,
/// <summary>
/// 鎬ュ鐞�
@@ -57,6 +57,11 @@
[Description("鎬ュ鐞�")]
Emergency,
/// <summary>
+ /// 寰呭鐞�
+ /// </summary>
+ [Description("寰呭鐞�")]
+ Wait,
+ /// <summary>
/// 宸插鐞�
/// </summary>
[Description("宸插鐞�")]
diff --git "a/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WIDESEA_WMSServer/WIDESEA_Core/Extensions/WebSocketHostedService.cs" "b/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WIDESEA_WMSServer/WIDESEA_Core/Extensions/WebSocketHostedService.cs"
new file mode 100644
index 0000000..686f7e5
--- /dev/null
+++ "b/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WIDESEA_WMSServer/WIDESEA_Core/Extensions/WebSocketHostedService.cs"
@@ -0,0 +1,99 @@
+锘縰sing HslCommunication.Core.IMessage;
+using HslCommunication.WebSocket;
+using Microsoft.Extensions.Hosting;
+using Microsoft.Extensions.Logging;
+using Newtonsoft.Json;
+using Org.BouncyCastle.Asn1.Ocsp;
+using SqlSugar.Extensions;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Text.Json;
+using System.Threading.Tasks;
+using WIDESEA_Core.Caches;
+using WIDESEA_Core.Helper;
+using WIDESEA_Core.Seed;
+
+namespace WIDESEA_Core
+{
+ public class WebSocketHostedService : IHostedService
+ {
+ private readonly DBContext _dbContext;
+ private readonly ICacheService _cacheService;
+ private readonly WebSocketServer _webSocketServer;
+
+ public WebSocketHostedService(DBContext dbContext, ICacheService cacheService, WebSocketServer webSocketServer)
+ {
+ _webSocketServer = webSocketServer;
+ _dbContext = dbContext;
+ _cacheService = cacheService;
+ _webSocketServer.OnClientConnected += webSocketServer_OnClientConnected;
+ }
+
+ private void webSocketServer_OnClientConnected(WebSocketSession session)
+ {
+ string MessageInfo = _cacheService.Get("MessageInfo");
+ if (!string.IsNullOrEmpty(MessageInfo))
+ {
+ List<Message>? messages = JsonConvert.DeserializeObject<List<Message>>(MessageInfo);
+ if (messages != null && messages.Count > 0)
+ {
+ foreach (var item in messages)
+ {
+ object obj = new
+ {
+ title = item.MessageGroupBy,
+ name = item.MessageName,
+ message = item.MessageInfo,
+ date = DateTime.Now.ToString(),
+ };
+ //_webSocketServer.PublishAllClientPayload(obj.Serialize());
+ _webSocketServer.SendClientPayload(session, obj.Serialize());
+ }
+ }
+ }
+ }
+
+ public async Task StartAsync(CancellationToken cancellationToken)
+ {
+ WebSocketSession? webSocketSession = _webSocketServer.OnlineSessions.FirstOrDefault(x => x.Url.Contains(App.User.UserName));
+ string MessageInfo = _cacheService.Get("MessageInfo");
+ if (!string.IsNullOrEmpty(MessageInfo))
+ {
+ List<Message>? messages = JsonConvert.DeserializeObject<List<Message>>(MessageInfo);
+ if (messages != null && messages.Count > 0)
+ {
+ foreach (var item in messages)
+ {
+ object obj = new
+ {
+ title = item.MessageGroupBy,
+ name = item.MessageName,
+ message = item.MessageInfo,
+ date = item.Date,
+ };
+ //_webSocketServer.PublishAllClientPayload(obj.Serialize());
+ if (webSocketSession != null)
+ _webSocketServer.SendClientPayload(webSocketSession, obj.Serialize());
+ }
+ }
+ }
+ await Task.CompletedTask;
+ }
+
+ public async Task StopAsync(CancellationToken cancellationToken)
+ {
+ await Task.CompletedTask;
+ }
+
+ public class Message
+ {
+ public int Id { get; set; }
+ public string MessageGroupBy { get; set; }
+ public string MessageName { get; set; }
+ public string MessageInfo { get; set; }
+ public DateTime Date { get; set; }
+ }
+ }
+}
diff --git "a/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WIDESEA_WMSServer/WIDESEA_Model/Models/WMSInfo/Dt_Inventory_Batch.cs" "b/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WIDESEA_WMSServer/WIDESEA_Model/Models/WMSInfo/Dt_Inventory_Batch.cs"
index 3899606..1074b14 100644
--- "a/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WIDESEA_WMSServer/WIDESEA_Model/Models/WMSInfo/Dt_Inventory_Batch.cs"
+++ "b/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WIDESEA_WMSServer/WIDESEA_Model/Models/WMSInfo/Dt_Inventory_Batch.cs"
@@ -115,7 +115,7 @@
[ImporterHeader(Name = "鏈夋晥鏈熻嚦")]
[ExporterHeader(DisplayName = "鏈夋晥鏈熻嚦")]
[SugarColumn(IsNullable = true, ColumnDescription = "鏈夋晥鏈熻嚦")]
- public string ValidityPeriod { get; set; }
+ public DateTime ValidityPeriod { get; set; }
/// <summary>
/// 澶囨敞
diff --git "a/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WIDESEA_WMSServer/WIDESEA_SquareCabinServices/CabinOrderServices.cs" "b/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WIDESEA_WMSServer/WIDESEA_SquareCabinServices/CabinOrderServices.cs"
index d25b3a6..e079d3f 100644
--- "a/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WIDESEA_WMSServer/WIDESEA_SquareCabinServices/CabinOrderServices.cs"
+++ "b/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WIDESEA_WMSServer/WIDESEA_SquareCabinServices/CabinOrderServices.cs"
@@ -270,7 +270,7 @@
Status = false,
StockQuantity = inventoryInfo.StockQuantity,
AvailableQuantity = inventoryInfo.StockQuantity,
- ValidityPeriod = inventoryInfo.ValidityPeriod,
+ ValidityPeriod = inventoryInfo.ValidityPeriod.ObjToDate(),
SupplyQuantity = inventoryInfo.SupplyQuantity,
};
_inventory_BatchServices.AddData(inventory_Batch);
diff --git "a/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WIDESEA_WMSServer/WIDESEA_WMSServer/AlarmJob.cs" "b/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WIDESEA_WMSServer/WIDESEA_WMSServer/AlarmJob.cs"
index f53b921..b20b3f5 100644
--- "a/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WIDESEA_WMSServer/WIDESEA_WMSServer/AlarmJob.cs"
+++ "b/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WIDESEA_WMSServer/WIDESEA_WMSServer/AlarmJob.cs"
@@ -9,19 +9,24 @@
{
private readonly IContainerService _containerService;
private readonly IEquipmentAlarmInforService _equipmentAlarmInforService;
- public AlarmJob(IContainerService containerService, IEquipmentAlarmInforService equipmentAlarmInforService)
+ private readonly IMessageInfoService _messageInfoService;
+ private readonly IInventory_BatchServices _inventoryInfoService;
+ public AlarmJob(IContainerService containerService, IEquipmentAlarmInforService equipmentAlarmInforService, IMessageInfoService messageInfoService, IInventory_BatchServices inventoryInfoService)
{
_containerService = containerService;
_equipmentAlarmInforService = equipmentAlarmInforService;
+ _messageInfoService = messageInfoService;
+ _inventoryInfoService = inventoryInfoService;
}
//姣忛殧1绉掓墽琛屼竴娆�
- [Invoke(Begin = "2025-09-01", Interval = 1000 * 60, IsEnabled = false, SkipWhileExecuting = true)]
+ [Invoke(Begin = "2025-09-01", Interval = 1000 * 5, IsEnabled = true, SkipWhileExecuting = true)]
public void Run()
{
//鍐峰簱
_containerService.Sensor();
_equipmentAlarmInforService.getDeviceStatus();
-
+ _inventoryInfoService.GetExpiredAndlow();
+ _messageInfoService.GetMessageInfo();
}
}
}
diff --git "a/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/WMSInfo/MessageInfoController.cs" "b/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/WMSInfo/MessageInfoController.cs"
index c32eaf0..93a6319 100644
--- "a/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/WMSInfo/MessageInfoController.cs"
+++ "b/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/WMSInfo/MessageInfoController.cs"
@@ -15,7 +15,7 @@
{
}
[HttpPost, HttpGet, Route("DeleteAndIntoHty")]
- public WebResponseContent DeleteAndIntoHty([FromBody] int[] keys)
+ public WebResponseContent DeleteAndIntoHty([FromBody] object[] keys)
{
return Service.DeleteAndIntoHty(keys);
}
diff --git "a/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WIDESEA_WMSServer/WIDESEA_WMSServer/Program.cs" "b/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WIDESEA_WMSServer/WIDESEA_WMSServer/Program.cs"
index e96a56f..c763a66 100644
--- "a/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WIDESEA_WMSServer/WIDESEA_WMSServer/Program.cs"
+++ "b/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WIDESEA_WMSServer/WIDESEA_WMSServer/Program.cs"
@@ -45,6 +45,7 @@
builder.Services.AddWebSocketSetup();
builder.Services.AddSqlsugarSetup();//SqlSugar 启动服务
builder.Services.AddDbSetup();//Db 启动服务
+builder.Services.AddHostedService<WebSocketHostedService>();//应用初始化服务注入
builder.Services.AddInitializationHostServiceSetup();//应用初始化服务注入
//builder.Services.AddHostedService<PermissionDataHostService>();//数据权限
diff --git "a/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WMS/src/views/Alarm/MessageInfo.vue" "b/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WMS/src/views/Alarm/MessageInfo.vue"
index 33707c2..a5620e6 100644
--- "a/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WMS/src/views/Alarm/MessageInfo.vue"
+++ "b/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WMS/src/views/Alarm/MessageInfo.vue"
@@ -149,22 +149,22 @@
bind: { key: "MessageGroupByEnum", data: [] },
require: true,
},
- {
- field: "messageStatus",
- title: "鐘舵��",
- type: "string",
- width: 100,
- align: "center",
- bind: { key: "MessageStatusEnum", data: [] },
- require: true,
- },
+ // {
+ // field: "messageStatus",
+ // title: "鐘舵��",
+ // type: "string",
+ // width: 100,
+ // align: "center",
+ // bind: { key: "MessageStatusEnum", data: [] },
+ // require: true,
+ // },
{
field: "messageName",
title: "寮傚父淇℃伅鍚嶇О",
type: "string",
width: 200,
align: "left",
- link: true,
+ // link: true,
require: true,
},
{
@@ -175,20 +175,20 @@
align: "left",
require: true,
},
- {
- field: "messageRemark",
- title: "澶囨敞",
- type: "string",
- width: 200,
- align: "left",
- },
- {
- field: "creater",
- title: "鍒涘缓浜�",
- type: "string",
- width: 100,
- align: "center",
- },
+ // {
+ // field: "messageRemark",
+ // title: "澶囨敞",
+ // type: "string",
+ // width: 200,
+ // align: "left",
+ // },
+ // {
+ // field: "creater",
+ // title: "鍒涘缓浜�",
+ // type: "string",
+ // width: 100,
+ // align: "center",
+ // },
{
field: "createDate",
title: "鍒涘缓鏃堕棿",
@@ -196,20 +196,20 @@
width: 160,
align: "center",
},
- {
- field: "modifier",
- title: "淇敼浜�",
- type: "string",
- width: 100,
- align: "center",
- },
- {
- field: "modifyDate",
- title: "淇敼鏃堕棿",
- type: "datetime",
- width: 160,
- align: "center",
- },
+ // {
+ // field: "modifier",
+ // title: "淇敼浜�",
+ // type: "string",
+ // width: 100,
+ // align: "center",
+ // },
+ // {
+ // field: "modifyDate",
+ // title: "淇敼鏃堕棿",
+ // type: "datetime",
+ // width: 160,
+ // align: "center",
+ // },
]);
const detail = ref({
diff --git "a/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WMS/src/views/Index.vue" "b/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WMS/src/views/Index.vue"
index a087196..7dc109d 100644
--- "a/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WMS/src/views/Index.vue"
+++ "b/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WMS/src/views/Index.vue"
@@ -315,6 +315,8 @@
};
const handleMessage = (e) => {
+ // console.log("WebSocket 杩炴帴鎴愬姛");
+ // console.log("WebSocket 鎴愬姛:"+e.data);
let data = JSON.parse(e.data);
messageList.push(data);
ElNotification({
@@ -325,6 +327,9 @@
};
const createSocket = (url) => {
+ if (client && client.readyState === WebSocket.OPEN) {
+ return; // 閬垮厤閲嶅鍒涘缓杩炴帴
+ }
// 鍒涘缓WebSocket杩炴帴
//"ws://127.0.0.1:9295/admin"
client = new WebSocket(url);
@@ -333,6 +338,7 @@
client.onmessage = handleMessage;
store.commit("setWebsocket", client);
console.log("WebSocket 杩炴帴鎴愬姛");
+ // client.send("鍙戦�佹暟鎹�");
};
client.onclose = function () {
@@ -340,7 +346,7 @@
setTimeout(createSocket, 10000);
};
- client.onerror = function () {};
+ client.onerror = function (error) {console.error("WebSocket閿欒:", error);};
};
const changeTheme = (name) => {
diff --git "a/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WMS/src/views/index/Message.vue" "b/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WMS/src/views/index/Message.vue"
index e051ab6..dbc0e11 100644
--- "a/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WMS/src/views/index/Message.vue"
+++ "b/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WMS/src/views/index/Message.vue"
@@ -5,31 +5,31 @@
<div class="content">
<el-row>
<el-col :span="8">
- <label>鏀惰揣鍗曞彿锛歿{ item.formData.receiveOrderNo }}</label>
+ <label>{{ item.name}}</label>
+ </el-col>
+ <!-- <el-col :span="16">
+ <label>淇℃伅锛歿{ item.message }}</label>
</el-col>
<el-col :span="8">
- <label>璐ㄦ鍗曞彿锛歿{ item.formData.checkOrderNo }}</label>
- </el-col>
- <el-col :span="8">
- <label>鏀惰揣鏄庣粏琛屽彿锛歿{ item.formData.receiveDetailRowNo }}</label>
- </el-col>
+ <label>鏀惰揣鏄庣粏琛屽彿锛歿{ item.message }}</label>
+ </el-col> -->
</el-row>
<el-row>
- <el-col :span="8">
- <label>鐗╂枡缂栧彿锛歿{ item.formData.materielCode }}</label>
+ <el-col :span="24">
+ <label>淇℃伅锛歿{ item.message }}</label>
</el-col>
- <el-col :span="8">
+ <!-- <el-col :span="8">
<label>鍚堟牸鏁伴噺锛歿{ item.formData.qualifiedQuantity }}</label>
</el-col>
<el-col :span="8">
<label>鐗归噰鏁伴噺锛歿{ item.formData.defectedQuantity }}</label>
- </el-col>
+ </el-col> -->
</el-row>
- <el-row>
+ <!-- <el-row>
<el-col :span="8">
- <label>閫�璐ф暟閲忥細{{ item.formData.returnQuantity }}</label>
+ <label>閫�璐ф暟閲忥細{{ item.message }}</label>
</el-col>
<el-col :span="8">
<label>鎶ュ簾鏁伴噺锛歿{ item.formData.scrappedQuantity }}</label>
@@ -37,21 +37,21 @@
<el-col :span="8">
<label>璐ㄦ鎬绘暟锛歿{ item.formData.receivedQuantity }}</label>
</el-col>
- </el-row>
+ </el-row> -->
- <el-row>
+ <!-- <el-row>
<el-col :span="16">
- <label>鐗归噰璇存槑锛歿{ item.formData.defectedNote }}</label>
+ <label>鐗归噰璇存槑锛歿{ item.title }}</label>
</el-col>
<el-col :span="8">
- <label>妫�楠屼汉锛歿{ item.formData.checkUserName }}</label>
+ <label>妫�楠屼汉锛歿{ item.message }}</label>
</el-col>
- </el-row>
+ </el-row> -->
</div>
- <div style="margin-top: 20px">
- <el-button type="primary">鍚屾剰</el-button
- ><el-button type="danger">椹冲洖</el-button>
- </div>
+ <!-- <div style="margin-top: 20px">
+ <el-button type="primary">宸插鐞�</el-button>
+ <el-button type="danger">椹冲洖</el-button>
+ </div> -->
</div>
</div>
</template>
diff --git "a/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WMS/src/views/index/MessageConfig.js" "b/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WMS/src/views/index/MessageConfig.js"
index 0f18350..8c77070 100644
--- "a/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WMS/src/views/index/MessageConfig.js"
+++ "b/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WMS/src/views/index/MessageConfig.js"
@@ -10,7 +10,7 @@
//.withUrl(`${http.ipAddress}message`)
.build();
- connection.start().catch((err) => console.log(ex.message));
+ connection.start().catch((err) => console.log(err.message));
//鑷姩閲嶈繛鎴愬姛鍚庣殑澶勭悊
connection.onreconnected((connectionId) => {
console.log(connectionId);
--
Gitblit v1.9.3