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(); } } }