|
@@ -60,34 +60,38 @@ namespace WCS.Service.Extensions
|
|
|
/// <param name="srmFork">货叉</param>
|
|
|
public static void GetSrmStationAndaddNext(this WCS_TASK task, SrmFork srmFork)
|
|
|
{
|
|
|
- //TODO:确定在倒库任务重是否能生效
|
|
|
+ List<Device<IStation520, IStation521, IStation523>> stations = new List<Device<IStation520, IStation521, IStation523>>();
|
|
|
//取任务巷道到达目标地址的下一个地址,即任务堆垛机的站台对应的设备组
|
|
|
- var stations = Device.Where(v => v.DEVICEGROUP.Any(p => p.MEMBER == Device.Find(task.TUNNEL).GetPath(task.ADDRTO.Replace("G", ""))))
|
|
|
- .Select(v => v.Create<StationDeviceGroup>())
|
|
|
- .FirstOrDefault()?.Items
|
|
|
- .OrderByDescending(v => v.Entity.CODE)
|
|
|
- .ToArray();
|
|
|
if (task.TYPE == TaskType.倒库)
|
|
|
{
|
|
|
stations = Device.Where(v => v.DEVICEGROUP.Any(p => p.MEMBER == Device.Find(task.TUNNEL).GetPath(task.DEVICEDL)))
|
|
|
- .Select(v => v.Create<StationDeviceGroup>())
|
|
|
- .FirstOrDefault()?.Items
|
|
|
- .OrderByDescending(v => v.Entity.CODE)
|
|
|
- .ToArray();
|
|
|
+ .Select(v => v.Create<StationDeviceGroup>())
|
|
|
+ .FirstOrDefault()?.Items
|
|
|
+ .OrderByDescending(v => v.Entity.CODE)
|
|
|
+ .ToList();
|
|
|
}
|
|
|
+ else
|
|
|
+ {
|
|
|
+ stations = Device.Where(v => v.DEVICEGROUP.Any(p => p.MEMBER == Device.Find(task.TUNNEL).GetPath(task.ADDRTO.Replace("G", ""))))
|
|
|
+ .Select(v => v.Create<StationDeviceGroup>())
|
|
|
+ .FirstOrDefault()?.Items
|
|
|
+ .OrderByDescending(v => v.Entity.CODE)
|
|
|
+ .ToList();
|
|
|
+ }
|
|
|
+ var ts = stations.ToArray();
|
|
|
|
|
|
var addNext = task.TYPE == TaskType.倒库 ? task.DEVICEDL : task.ADDRTO;
|
|
|
//一工位放较大的站台号
|
|
|
switch (srmFork)
|
|
|
{
|
|
|
case SrmFork.货叉1:
|
|
|
- task.SRMSTATION = stations?[0].Entity.CODE;
|
|
|
- task.ADDRNEXT = stations?[0].Entity.GetPath(addNext).CODE;
|
|
|
+ task.SRMSTATION = ts?[0].Entity.CODE;
|
|
|
+ task.ADDRNEXT = ts?[0].Entity.GetPath(addNext).CODE;
|
|
|
break;
|
|
|
|
|
|
case SrmFork.货叉2:
|
|
|
- task.SRMSTATION = stations?[1].Entity.CODE;
|
|
|
- task.ADDRNEXT = stations?[1].Entity.GetPath(addNext).CODE;
|
|
|
+ task.SRMSTATION = ts?[1].Entity.CODE;
|
|
|
+ task.ADDRNEXT = ts?[1].Entity.GetPath(addNext).CODE;
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
@@ -180,4 +184,4 @@ namespace WCS.Service.Extensions
|
|
|
Layer = addrFrom[2].ToShort();
|
|
|
}
|
|
|
}
|
|
|
-}
|
|
|
+}
|