using System;
using System.Collections.Generic;
using System.Linq;
using WCS.Entity;
namespace WCS.Service.Extensions
{
///
/// 任务扩展
///
public static class TaskExtension
{
public static T Create(WCS_TASK source)
{
return (T)Activator.CreateInstance(typeof(T), source);
}
///
/// 获取可用的出库任务
///
///
///
public static List GetOutTask(this List tasks)
{
var taskids = tasks.Select(v => Create(v))
.OrderBy(v => v.Line)
.ThenBy(v => v.Layer)
.ThenBy(v => v.Col)
.Take(2)
.DistinctBy(v => v.Col)
.Select(v => v.ID);
return tasks.Where(v => taskids.Contains(v.ID)).DistinctBy(v => v.SRMSTATION).ToList();
}
}
public class Task : WCS_TASK
{
///
/// 行
///
public short Line { get; set; }
///
/// 列
///
public short Col { get; set; }
///
/// 层
///
public short Layer { get; set; }
public Task(WCS_TASK task)
{
var addrFrom = task.ADDRFROM.Split("-");
SRMSTATION = task.ADDRFROM;
ID = task.ID;
Line = addrFrom[0].ToShort();
Col = addrFrom[1].ToShort();
Layer = addrFrom[2].ToShort();
}
}
}