|
@@ -24,6 +24,19 @@ namespace WCS.Service.Extensions
|
|
|
/// <returns></returns>
|
|
|
public static Task[] GetOutTask(this List<WCS_TASK> tasks)
|
|
|
{
|
|
|
+ var tasklist = tasks.Select(v => v.Create<Task>());
|
|
|
+ var task = tasklist.FirstOrDefault() ?? throw new WarnException("无可用出库任务--GetOutTask");
|
|
|
+ //AGV任务ID不为零表示为车间叫料任务
|
|
|
+ if (task.AgvTask != 0)
|
|
|
+ {
|
|
|
+ //按照AGV任务ID分一次组
|
|
|
+ tasklist = tasklist.OrderByDescending(v => v.Priority)
|
|
|
+ .ThenBy(v => v.CREATETIME)
|
|
|
+ .GroupBy(v => v.AgvTask)
|
|
|
+ .FirstOrDefault() ?? throw new WarnException("无可用叫料任务--GetOutTask");
|
|
|
+ //无论这个AGV任务绑定的货物相隔多远都必须要一起出出去
|
|
|
+ return tasklist.OrderBy(v => v.Col).ToArray();
|
|
|
+ }
|
|
|
return tasks.Select(v => v.Create<Task>())
|
|
|
.OrderByDescending(v => v.Priority)
|
|
|
.ThenBy(v => v.Line)
|
|
@@ -108,6 +121,8 @@ namespace WCS.Service.Extensions
|
|
|
TUNNEL = task.TUNNEL;
|
|
|
DEVICE = task.DEVICE;
|
|
|
Priority = task.Priority;
|
|
|
+ AgvTask = task.AgvTask;
|
|
|
+ CREATETIME = task.CREATETIME; ;
|
|
|
|
|
|
ID = task.ID;
|
|
|
Line = addrFrom[0].ToShort();
|