|
@@ -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>();
|
|
|
//成品库背面堆垛机取货点
|