Ver Fonte

库尾入空托盘强制入五巷道

林豪 左 há 6 meses atrás
pai
commit
f8f4d059ae
1 ficheiros alterados com 19 adições e 3 exclusões
  1. 19 3
      成品库/WCS.WorkEngineering/Systems/库尾入库.cs

+ 19 - 3
成品库/WCS.WorkEngineering/Systems/库尾入库.cs

@@ -84,10 +84,26 @@ namespace WCS.WorkEngineering.Systems
                     //任务生成
                     if (taskInfo.Status == Entity.TaskStatus.WaitingToExecute)
                     {
-                        //开始获取堆垛机与可用站台信息
+                        // 开始获取堆垛机与可用站台信息
                         var res = WmsApi.GetTunnelPriorityList(taskInfo.ID);
-                        if (res == null) throw new Exception($"未返回巷道");
-                        var tunnelNo = res.ResData.Split(",").Select(v => "SRM" + v).ToList();
+                        if (res == null) throw new Exception("未返回巷道");
+
+                        var tunnelNo = res.ResData.Split(",")
+                            .Select(v => "SRM" + v)
+                            .ToList();
+
+                        if (task.Floor == 10 && tunnelNo.Contains("SRM5"))
+                        {
+                            // 优化:直接在查询中完成条件判断,避免实例化不必要的对象
+                            var srm5 = Device.All.FirstOrDefault(x => x.Code == "SRM5" && 
+                                                                      new Device<ISRM521>(x, World).Data.AutoStatus == SrmAutoStatus.Automatic);
+                            if (srm5 != null)
+                            {
+                                // 如果任务在10楼且SRM5处于自动模式,则只保留SRM5
+                                tunnelNo = new List<string> { "SRM5" };
+                            }
+                        }
+
                         SRM srm = null;
                         List<Station> stations = new List<Station>();
                         //成品库背面堆垛机取货点