gkj 2 years ago
parent
commit
9feed93cec

+ 30 - 22
ServiceCenter/Attributes/LogAttribute .cs

@@ -30,35 +30,43 @@ namespace ServiceCenter.Attributes
 
         public override void OnActionExecuted(ActionExecutedContext context)
         {
-            base.OnActionExecuted(context);
-            Stopwatch.Stop();
-            string url = context.HttpContext.Request.Host + context.HttpContext.Request.Path + context.HttpContext.Request.QueryString;
-            string method = context.HttpContext.Request.Method;
-            string qs = ActionArguments;
-            string res = "在返回结果前发生了异常";
-            if (context.Result == null)
+            string msg = "";
+            try
             {
-                res = "无返回结果";
-            }
-            else
-            {
-                dynamic result = context.Result.GetType().Name == "EmptyResult" ? new { Value = "无返回结果" } : context.Result as dynamic;
-                try
+                base.OnActionExecuted(context);
+                Stopwatch.Stop();
+                string url = context.HttpContext.Request.Host + context.HttpContext.Request.Path + context.HttpContext.Request.QueryString;
+                string method = context.HttpContext.Request.Method;
+                string qs = ActionArguments;
+                string res = "在返回结果前发生了异常";
+                if (context.Result == null)
                 {
-                    if (result != null)
-                    {
-                        res = Newtonsoft.Json.JsonConvert.SerializeObject(result.Value);
-                    }
+                    res = "无返回结果";
                 }
-                catch (Exception)
+                else
                 {
-                    res = "日志未获取到结果,返回的数据无法序列化";
+                    dynamic result = context.Result.GetType().Name == "EmptyResult" ? new { Value = "无返回结果" } : context.Result as dynamic;
+                    try
+                    {
+                        if (result != null)
+                        {
+                            res = Newtonsoft.Json.JsonConvert.SerializeObject(result.Value);
+                        }
+                    }
+                    catch (Exception)
+                    {
+                        res = "日志未获取到结果,返回的数据无法序列化";
+                    }
                 }
+                msg = $"方法:{LogFlag}-地址:{url}-方式:{method}-耗时:{Stopwatch.Elapsed.TotalMilliseconds}毫秒(指控制器内对应方法执行完毕的时间)\n" +
+                     $"参数:{qs}\n " +
+                     $"结果:{res}";
+            }
+            catch (Exception ex)
+            {
+                msg = ex.Message + ex.StackTrace;
             }
 
-            var msg = $"方法:{LogFlag}-地址:{url}-方式:{method}-耗时:{Stopwatch.Elapsed.TotalMilliseconds}毫秒(指控制器内对应方法执行完毕的时间)\n" +
-                      $"参数:{qs}\n " +
-                      $"结果:{res}";
             LogHub.InterfacePublish(LogFlag, msg);
         }
     }

+ 8 - 5
WCS.WorkEngineering/Systems/NoInteractionSystems.cs

@@ -50,12 +50,13 @@ namespace WCS.WorkEngineering.Systems
                     });
                     if (taskInfos.Any())
                     {
-                        foreach (var task in taskInfos)
+                        foreach (var item in taskInfos)
                         {
                             try
                             {
                                 SqlSugarHelper.Do(db =>
                                 {
+                                    var task = db.Default.Queryable<WCS_TaskInfo>().Where(t => t.ID == item.ID).First() ?? throw new Exception($"未找到对应的WCS任务[{item.ID}]");
                                     if (task.Type == TaskType.EnterDepot)
                                     {
                                         //创建AGV任务
@@ -165,14 +166,15 @@ namespace WCS.WorkEngineering.Systems
 
                 if (agvTaskInfos.Any())
                 {
-                    foreach (var agv in agvTaskInfos)
+                    foreach (var item in agvTaskInfos)
                     {
                         try
                         {
                             SqlSugarHelper.Do(db =>
                             {
+                                var agv = db.Default.Queryable<WCS_AgvTaskInfo>().Where(t => t.ID == item.ID).SplitTable(v => v.Take(2)).First() ?? throw new Exception($"未找到对应的AGV任务:{item.ID}");
                                 //获取对应wcs任务
-                                var wcs = db.Default.Queryable<WCS_TaskInfo>().Where(t => t.AgvTaskID == agv.ID && t.Status == Entity.TaskStatus.WaitingToExecute).First();
+                                var wcs = db.Default.Queryable<WCS_TaskInfo>().Where(t => t.AgvTaskID == agv.ID && t.Status == Entity.TaskStatus.WaitingToExecute).First() ?? throw new Exception($"AGV任务[{item.ID}]未找到对应的WCS任务");
 
                                 switch (wcs.Floor)
                                 {
@@ -222,15 +224,16 @@ namespace WCS.WorkEngineering.Systems
 
                 if (agvTaskInfos1.Any())
                 {
-                    foreach (var agv in agvTaskInfos1)
+                    foreach (var item in agvTaskInfos1)
                     {
                         try
                         {
                             GenAgvSchedulingTaskResponse res = new GenAgvSchedulingTaskResponse();
                             SqlSugarHelper.Do(db =>
                             {
+                                var agv = db.Default.Queryable<WCS_AgvTaskInfo>().Where(t => t.ID == item.ID).SplitTable(v => v.Take(2)).First() ?? throw new Exception($"未找到对应的AGV任务:{item.ID}");
                                 //获取对应wcs任务
-                                var wcs = db.Default.Queryable<WCS_TaskInfo>().Where(t => t.AgvTaskID == agv.ID && t.Status == Entity.TaskStatus.WaitingToExecute).First();
+                                var wcs = db.Default.Queryable<WCS_TaskInfo>().Where(t => t.AgvTaskID == agv.ID && t.Status == Entity.TaskStatus.WaitingToExecute).First() ?? throw new Exception($"AGV任务[{item.ID}]未找到对应的WCS任务");
                                 //下发AGV任务
                                 res = AgvApi.机台补空(agv.Station, Guid.NewGuid().ToString().Replace("-", ""), "1");
                                 agv.Status = AGVTaskStatus.Confirm;