林豪 左 2 年之前
父节点
当前提交
69d26ece45

+ 9 - 14
ServiceCenter/Logs/LogHub.cs

@@ -7,11 +7,6 @@ namespace ServiceCenter.Logs
 {
     public class LogHub
     {
-        /// <summary>
-        ///  日志队列
-        /// </summary>
-        public static ConcurrentQueue<KeyLog> Logs = new ConcurrentQueue<KeyLog>();
-
         /// <summary>
         ///  发布一条世界交互日志
         /// </summary>
@@ -20,7 +15,8 @@ namespace ServiceCenter.Logs
         {
             if (logs.Count > 0)
             {
-                foreach (var log in Logs)
+                //每一条数据存入redis
+                foreach (var log in logs)
                 {
                     var dir = $"D:\\WCSLogs\\{DateTime.Now.yyyyMMdd()}\\{log.Channel.World}\\{log.Channel.System}\\{log.Channel.Item}\\";
                     var msg = $"{log.Time.yyyyMMddhhmmssf()}--[{Thread.CurrentThread.ManagedThreadId}]--{log}\n";
@@ -31,7 +27,8 @@ namespace ServiceCenter.Logs
                         Con = msg
                     }));
                 }
-                List<BusinessAlarm> businesses = logs.Select(v => new BusinessAlarm()
+                //存入业务报警内容
+                List<BusinessAlarm> businesses = logs.Where(v => v.Log.Level != LogLevelEnum.Low).Select(v => new BusinessAlarm()
                 {
                     BusinessName = v.Channel.System,
                     DevNo = v.Channel.Item,
@@ -45,20 +42,18 @@ namespace ServiceCenter.Logs
         /// <summary>
         ///  发布一条日志记录
         /// </summary>
-        /// <param name="path">路径</param>
-        /// <param name="title">文件名</param>
+        /// <param name="title">接口名</param>
         /// <param name="con">内容</param>
-        public static void Publish(string path, string title, string con)
+        public static void InterfacePublish(string title, string con)
         {
             RedisHub.Default.RPush("LogHub", JsonConvert.SerializeObject(new LogModel
             {
-                path = path,
-                Title = title,
-                Con = con
+                path = $"D:\\WCSLogs\\{DateTime.Now.yyyyMMdd()}\\接口日志\\",
+                Title = $"{title}.txt",
+                Con = $"{DateTime.Now.yyyyMMddhhmmssf()}--[{Thread.CurrentThread.ManagedThreadId}]--{con}\n"
             }));
         }
 
-
         /// <summary>
         ///   增加一条处理日志
         /// </summary>

+ 3 - 2
ServiceCenter/WebApi/APICaller.cs

@@ -81,7 +81,8 @@ namespace ServiceCenter.WebApi
 
         private static string HttpApi(string url, string jsonstr, string type)
         {
-            LogHub.Publish($"D:\\WCSLogs\\{DateTime.Now.yyyyMMdd()}\\接口调用日志", $"调用日志.txt", $"{DateTime.Now.yyyyMMddhhmmssf()}--[{Thread.CurrentThread.ManagedThreadId}]--接口{url}传参---------{JsonConvert.SerializeObject(jsonstr)}\n");
+            var name = url.Split("/").Last();
+            LogHub.InterfacePublish(name, $"{DateTime.Now.yyyyMMddhhmmssf()}--[{Thread.CurrentThread.ManagedThreadId}]--接口{name}传参---------{JsonConvert.SerializeObject(jsonstr)}\n");
             var sw = new Stopwatch();
             sw.Start();
             Encoding encoding = Encoding.UTF8;
@@ -99,7 +100,7 @@ namespace ServiceCenter.WebApi
             {
                 var res = reader.ReadToEnd();
                 sw.Stop();
-                LogHub.Publish($"D:\\WCSLogs\\{DateTime.Now.yyyyMMdd()}\\接口调用日志", $"调用日志.txt", $"{DateTime.Now.yyyyMMddhhmmssf()}--[{Thread.CurrentThread.ManagedThreadId}]--接口{url}调用耗时:{sw.ElapsedMilliseconds}---------{JsonConvert.SerializeObject(res)}\n");
+                LogHub.InterfacePublish(name, $"{DateTime.Now.yyyyMMddhhmmssf()}--[{Thread.CurrentThread.ManagedThreadId}]--接口{name}调用耗时:{sw.ElapsedMilliseconds}---------{JsonConvert.SerializeObject(res)}\n");
                 return res;
             }
         }

+ 2 - 2
WCS.WorkEngineering/Systems/二楼出库工位处理系统.cs

@@ -26,8 +26,8 @@ namespace WCS.WorkEngineering.Systems
             if (!obj.Data3.Status.HasFlag(Entity.Protocol.Station.StatusEunm.PH_Status)) throw new KnownException("无光电", LogLevelEnum.Low);
             SqlSugarHelper.Do(db =>
             {
-                var task = db.Default.Queryable<WCS_TaskInfo>().First(v => v.ID == obj.Data.TaskNumber && v.Status == Entity.TaskStatus.ConveyorExecution) ?? throw new KnownException("无可执行任务", LogLevelEnum.Low);
-                var agv = db.Default.Queryable<WCS_AgvTaskInfo>().SplitTable(v => v.Take(2)).First(v => v.ID == task.AgvTaskID && v.Status == AGVTaskStatus.NewBuild) ?? throw new KnownException("未找到对应的AGV任务", LogLevelEnum.Low);
+                var task = db.Default.Queryable<WCS_TaskInfo>().First(v => v.ID == obj.Data.TaskNumber && v.Status == Entity.TaskStatus.ConveyorExecution) ?? throw new KnownException("无可执行任务", LogLevelEnum.Mid);
+                var agv = db.Default.Queryable<WCS_AgvTaskInfo>().SplitTable(v => v.Take(2)).First(v => v.ID == task.AgvTaskID && v.Status == AGVTaskStatus.NewBuild) ?? throw new KnownException("未找到对应的AGV任务", LogLevelEnum.Mid);
                 var res = IwmsApi.满轮出库(task.MatCode, task.AddrTo, task.ID.ToString(), task.BarCode, task.InvBarCode, task.IsSurplus, task.IsRework, task.IsFast, task.Grade);
                 agv.Status = AGVTaskStatus.Confirm;
                 agv.AgvID = res.data;

+ 5 - 5
WCS.WorkEngineering/WebApi/Controllers/AgvController.cs

@@ -70,7 +70,7 @@ namespace WCS.WorkEngineering.WebApi.Controllers
         {
             lock (LockHub.ApplyEmptySpoolLock)
             {
-                LogHub.InterfaceProcessLog("ApplyEmptySpool", $"传入参数--{JsonConvert.SerializeObject(reqDto)}");
+                LogHub.InterfacePublish(nameof(ApplyEmptySpool), $"传入参数--{JsonConvert.SerializeObject(reqDto)}");
                 ApplyEmptySpoolResponse agvFill = new ApplyEmptySpoolResponse();
 
                 try
@@ -143,7 +143,7 @@ namespace WCS.WorkEngineering.WebApi.Controllers
                     agvFill.ResCode = Models.WMS.Response.ResponseStatusCodeEnum.DataSaveErr;
                     agvFill.ResMsg = ex.Message;
                 }
-                LogHub.InterfaceProcessLog("ApplyEmptySpool", $"返回参数{JsonConvert.SerializeObject(agvFill)}");
+                LogHub.InterfacePublish(nameof(ApplyEmptySpool), $"返回参数{JsonConvert.SerializeObject(agvFill)}");
                 return agvFill;
             }
         }
@@ -158,7 +158,7 @@ namespace WCS.WorkEngineering.WebApi.Controllers
         {
             lock (LockHub.AgvCallbackLock)
             {
-                LogHub.InterfaceProcessLog("AgvCallback", $"传入参数--{JsonConvert.SerializeObject(reqDto)}");
+                LogHub.InterfacePublish(nameof(AgvCallback), $"传入参数--{JsonConvert.SerializeObject(reqDto)}");
                 var res = new AgvCallbackResponse() { code = AgvResponseCode.Fail, message = "失败" };
                 WCS_TaskInfo taskInfo = null;
 
@@ -243,14 +243,14 @@ namespace WCS.WorkEngineering.WebApi.Controllers
                         res.code = AgvResponseCode.Success;
                         res.message = "成功";
                     });
-                  
+
                 }
                 catch (Exception ex)
                 {
                     res.code = AgvResponseCode.Error;
                     res.message = ex.Message;
                 }
-                LogHub.InterfaceProcessLog("AgvCallback", $"返回结果--{JsonConvert.SerializeObject(res)}");
+                LogHub.InterfacePublish(nameof(AgvCallback), $"返回结果--{JsonConvert.SerializeObject(res)}");
 
                 return res;
             }

+ 4 - 1
WCS.WorkEngineering/worlds/MainWorld.cs

@@ -96,7 +96,10 @@ namespace WCS.WorkEngineering.Worlds
         protected override void OnInternalLog(Channel channel, string msg)
         {
             var log = new LogInfo { Level = LogLevelEnum.Low, Message = msg };
-            Logs.Enqueue(new KeyLog { Channel = channel, Log = log, Time = DateTime.Now });
+            if (msg != "开始" && msg != "结束")
+            {
+                Logs.Enqueue(new KeyLog { Channel = channel, Log = log, Time = DateTime.Now });
+            }
         }
 
         /// <summary>