123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using WCS.Entity;
- namespace WCS.Service.Extensions
- {
- /// <summary>
- /// 任务扩展
- /// </summary>
- public static class TaskExtension
- {
- public static T Create<T>(WCS_TASK source)
- {
- return (T)Activator.CreateInstance(typeof(T), source);
- }
- /// <summary>
- /// 获取可用的出库任务
- /// </summary>
- /// <param name="tasks"></param>
- /// <returns></returns>
- public static List<WCS_TASK> GetOutTask(this List<WCS_TASK> tasks)
- {
- var taskids = tasks.Select(v => Create<Task>(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
- {
- /// <summary>
- /// 行
- /// </summary>
- public short Line { get; set; }
- /// <summary>
- /// 列
- /// </summary>
- public short Col { get; set; }
- /// <summary>
- /// 层
- /// </summary>
- 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();
- }
- }
- }
|