Răsfoiți Sursa

agv取消任务优化

Administrator 2 ani în urmă
părinte
comite
ede46a2384

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

@@ -94,6 +94,13 @@ namespace WCS.Service.Works.Station
                         }
                         else if (tasking.Status < tasking.AGVStatus)
                         {
+                            if (Ltc.Do(tasking, v => v.AGVStatus == AGVTaskStatus.取消))
+                            {
+                                tasking.Status = tasking.AGVStatus;
+                                tasking.UpdateTime = DateTime.Now;
+                                db.Default.SaveChanges();
+                                tasking.AGVStatusChange(tasking.AGVStatus, "取消任务");
+                            }
                             if (tasking.Station != stationDeviceGroup.Entity.CODE)
                             {
                                 InfoLog.INFO_INFO($"{stationDeviceGroup.Entity.CODE}不是当前站台的AGV任务");
@@ -424,7 +431,7 @@ namespace WCS.Service.Works.Station
                         }
                         //筛选出优先级最高的可用巷道
                         var tunnelInfo = tunnelInfos.Where(v => { try { return v.SRM.Data3.SCAlarm == 0 && v.SRM.Data2.SRMMode == SCMode.远程; } catch { return false; } })
-                            .Where(v => !db.Default.Set<WCS_TASK>().Any(p => p.Priority > 0 && p.DEVICE == v.SRM.Entity.CODE && p.STATUS < TaskStatus.堆垛机完成)).MinBy(v => tunnelNo.IndexOf(v.Tunnel.CODE));
+                            .Where(v => !db.Default.Set<WCS_TASK>().Any(p => p.Priority > 0 && p.DEVICE == v.SRM.Entity.CODE && (p.STATUS == TaskStatus.堆垛机执行))).MinBy(v => tunnelNo.IndexOf(v.Tunnel.CODE));
                         if (tunnelInfo == null) throw new WarnException("无可用巷道");
 
                         //开始变更任务信息