Skip to content

类库提供库位分配、入库、出库、移库等WMS的库位管理功能

License

Notifications You must be signed in to change notification settings

june-it/LStorage

Repository files navigation

LStorage

类库提供库位分配、入库、出库、移库等WMS的库位管理功能

术语说明

货架俯视图中,垂直于运输通道连续库位为排,沿同一方向递增即可 排

货架俯视图中,平行于运输通道库位为列,沿同一方向递增即可。 列

垂直于地面的库位层,由下到上层序号递增。

货架俯视图中,同一个排垂直方向上一列位深方向,由远到近深序号递增。 列

库位编号说明

A1-S1-001-001-001-01 => A1(区域编号) + S1(货架编号) + 001(排序号) + 001(列序号) + 001(层序号) + 01(深序号)

空库位分配

AllocateAsync

AllocateLocationInput参数说明

参数名 描述 是否必填
FromCode 获取或设置来源库位编码
ToAreaCode 获取或设置分配区域编码
ToShelfCode 获取或设置分配货架编码
Row 获取或设置分配排序号
Column 获取或设置分配列序号
Layer 获取或设置分配层序号
Depth 获取或设置分配深序号
SortingItems 获取或设置库位排序方式AllocateLocationSorting数组,默认按层升序/排升序/层升序/深降序,可通过排序数组的顺序进行排序优先级,

AllocateLocationSorting分别包含两个属性AllocateLocationSortingDimensionAllocateLocationSortingDirection

AllocateLocationSortingDimension参数说明

参数名 描述 是否必填
Row 根据所在库位的排序号进行排序
Column 根据所在库位的列序号进行排序
Layer 根据所在库位的层序号进行排序
Depth 根据所在库位的深序号进行排序

AllocateLocationSortingDirection参数说明

参数名 描述 是否必填
Ascending 升序
Descending 降序

使用示例

穿梭式货架

服务注册
service.AddLStorage(x =>
{
    // 添加区域、货架、货位
    x.AddQuery<InMemorySingleLayerStackAreaQuerier, Area>();
    x.AddQuery<InMemorySingleLayerStackShelfQuerier, Shelf>();
    x.AddQuery<InMemorySingleLayerStackLocationQuerier, Location>();
    // 注册货架分配服务
    x.AddLocationAllocator<SingleLayerLocationAllocator>();
    // 穿梭式货架(立库)
    x.AddLocationAllocator<PalletShuttleLocationAllocator>();
});

  1. 立库内部移库库位分配
var locationAllocatorService = ServiceProvider.GetRequiredService<ILocationAllocationService>();
var location = await locationAllocatorService.AllocateAsync(new AllocateLocationInput()
{
    FromCode = "A1-S1-001-001-001-01",
    ToShelfCode = "S1"
});

测试中库位A1-S1-001-001-001-03设置了托盘,分配结果为A1-S1-002-001-001-06

如图

立库内部移库库位分配

  1. 外部库位进入立库库位分配
var locationAllocatorService = ServiceProvider.GetRequiredService<ILocationAllocationService>();
var location = await locationAllocatorService.AllocateAsync(new AllocateLocationInput()
{
    FromCode = "A1-S2-001-001-001-01",
    ToShelfCode = "S1"
});

测试中库位A1-S1-001-001-001-03设置了托盘,分配结果为A1-S1-001-001-001-02

如图 立库内部移库库位分配

单层货架/单层地堆式货架

服务注册
service.AddLStorage(x =>
{
    // 添加区域、货架、货位
    x.AddQuery<InMemorySingleLayerStackAreaQuerier, Area>();
    x.AddQuery<InMemorySingleLayerStackShelfQuerier, Shelf>();
    x.AddQuery<InMemorySingleLayerStackLocationQuerier, Location>();
    // 注册货架分配服务
    // 单层货架
    x.AddLocationAllocator<SingleLayerLocationAllocator>();
});

  1. 区域内部移库分配
var locationAllocatorService = ServiceProvider.GetRequiredService<ILocationAllocationService>();
var location = await locationAllocatorService.AllocateAsync(new AllocateLocationInput()
{
    FromCode = "A2-S2-001-001-001-01",
    ToAreaCode = "A2"
});

分配结果如图 区域内部移库分配

  1. 单层货架间移库分配
var locationAllocatorService = ServiceProvider.GetRequiredService<ILocationAllocationService>();
var location = await locationAllocatorService.AllocateAsync(new AllocateLocationInput()
{
    FromCode = "A2-S2-001-001-001-01",
    ToShelfCode = "S3"
});

分配结果如图 单层货架间移库分配

  1. 其他区域分配进单层货架分配库位
var locationAllocatorService = ServiceProvider.GetRequiredService<ILocationAllocationService>();
var location = await locationAllocatorService.AllocateAsync(new AllocateLocationInput()
{
    FromCode = "A3-S4-001-001-001-01",
    ToAreaCode = "A2"
});

分配结果如图 其他区域分配进单层货架分配库位

About

类库提供库位分配、入库、出库、移库等WMS的库位管理功能

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages