refactor: migrate project structure by reorganizing realization code snippets into documentation and analysis categories.
This commit is contained in:
67
03_Realisierung/ConveyorDispo/OrderList.cs
Normal file
67
03_Realisierung/ConveyorDispo/OrderList.cs
Normal file
@@ -0,0 +1,67 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using Gebhardt.StoreWare.Wcs.Common.DbAccess.Model;
|
||||
using Gebhardt.StoreWare.Wcs.Common.DbAccess.Model.Enums;
|
||||
|
||||
namespace Gebhardt.StoreWare.Wcs.ConveyorDispo
|
||||
{
|
||||
internal record OrderListItem(int OrdersHostId, TransportOrderStatus Status, Le Le, string Destination, int Priority, int? IdOrderWmsHead,
|
||||
DateTime Created, string HostDestination, bool? DepartureFlag, string? DepartureLocation);
|
||||
|
||||
internal class OrderList : List<OrderListItem>
|
||||
{
|
||||
public OrderList(List<OrderListItem> items) : base(items)
|
||||
{
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Removes all order list items with the same LeNo and a higher list index.
|
||||
/// </summary>
|
||||
/// <param name="item"></param>
|
||||
public void RemoveSubsequentWithEqualLeNo(OrderListItem item)
|
||||
{
|
||||
if (item is {Le: { }})
|
||||
{
|
||||
RemoveAll(i => IndexOf(i) > IndexOf(item) && i.Le.LeNo == item.Le.LeNo);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Removes all order list items with the same destination and a higher list index.
|
||||
/// </summary>
|
||||
/// <param name="item"></param>
|
||||
public void RemoveSubsequentWithEqualDestination(OrderListItem item)
|
||||
{
|
||||
if (item != null)
|
||||
{
|
||||
RemoveAll(i => IndexOf(i) > IndexOf(item) && i.Destination == item.Destination);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Removes all order list items with the same aisle name / storage area and a higher list index.
|
||||
/// </summary>
|
||||
/// <param name="item"></param>
|
||||
public void RemoveSubsequentWithEqualAisle(OrderListItem item)
|
||||
{
|
||||
if (item?.Le?.StorageArea != null && item?.Le?.AisleName != null)
|
||||
{
|
||||
RemoveAll(i => IndexOf(i) > IndexOf(item) && i.Le.StorageArea == item.Le.StorageArea && i.Le.AisleName == item.Le.AisleName);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Removes all order list items with a higher list index that have the same LeNo but lower priority.
|
||||
/// </summary>
|
||||
/// <param name="item"></param>
|
||||
public void RemoveSubsequentWithEqualLeNoButLowerPriority(OrderListItem item)
|
||||
{
|
||||
if (item is {Le: { }})
|
||||
{
|
||||
RemoveAll(i => IndexOf(i) > IndexOf(item) && i.Le.LeNo == item.Le.LeNo && i.Priority < item.Priority);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user