Browse Source

update:同一时间同一个目标地址只能有一个AGV执行中的任务

林豪 左 3 years ago
parent
commit
9d2047c73e

+ 5 - 4
Projects/永冠OPP/WCS.Service/Extensions/DeviceExtension.cs

@@ -870,11 +870,12 @@ namespace WCS.Service.Extensions
         public static void WarnExceptionEX(this WarnException ex, WCS_DEVICE Entity)
         {
             InfoLog.INFO_WARN($"[{Entity.CODE}]--{ex.Message}");
+            if (ex.Message.Contains("The database operation was expected")) return;
+
             LogHelper.AddWCS_EXCEPTION(ex.Message, Entity.CODE, WCS_EXCEPTIONTYPE.无.ToString());
-            if (!ex.Message.Contains("触发并发管控")) //排除部分频繁触发的异常上报
-            {
-                Ltc.Log(ex.GetBaseException().Message);
-            };
+            //排除部分频繁触发的异常上报
+            if (ex.Message.Contains("触发并发管控")) return;
+            Ltc.Log(ex.GetBaseException().Message);
             throw new Exception($"[{Entity.CODE}]--{ex.Message}");
         }
 

+ 1 - 0
Projects/永冠OPP/WCS.Service/Works/Station/涂布入库.cs

@@ -81,6 +81,7 @@ namespace WCS.Service.Works.Station
                                 if (obj.Items.Any(v => v.Data2.Status.HasFlag(IstationStatus.光电状态))) continue;
                                 if (obj.Items.Any(v => v.Data3.Status.HasFlag(StationStatus.运行状态位))) continue;
                                 if (obj.Items.Any(v => v.Data2.Tasknum > 10000)) continue;
+                                if (db.Default.Set<WCS_AGVTask>().Any(v => v.Station == agvtask.Station && v.Status == agvtask.Status)) continue;
 
                                 agvtask.Status = agvtask.AGVStatus;
                                 agvtask.UpdateTime = DateTime.Now;