1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- 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 Task[] GetOutTask(this List<WCS_TASK> tasks)
- {
- return tasks.Select(v => Create<Task>(v))
- .OrderBy(v => v.Line)
- .ThenBy(v => v.Layer)
- .ThenBy(v => v.Col)
- .Take(2)
- .DistinctBy(v => v.Col).DistinctBy(v => v.SRMSTATION).ToArray();
- }
- }
- 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("-");
- ADDRTO = task.ADDRTO;
- SRMSTATION = task.SRMSTATION;
- ID = task.ID;
- Line = addrFrom[0].ToShort();
- Col = addrFrom[1].ToShort();
- Layer = addrFrom[2].ToShort();
- }
- }
- }
|