first commit
This commit is contained in:
+42
@@ -0,0 +1,42 @@
|
||||
using JSMachine.WMS.App.Dto;
|
||||
using JSMachine.WMS.App.Dto.Enum;
|
||||
using JSMachine.WMS.Business.RcsCallBack.IService.StaePattern;
|
||||
using JSMachine.WMS.Business.RcsCallBack.ServiceImpl.StatePattern.PutdownCompleted;
|
||||
using JSMachine.WMS.Infrastructure;
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace JSMachine.WMS.Business.RcsCallBack.ServiceImpl.StatePattern
|
||||
{
|
||||
/// <summary>
|
||||
/// rcs回调处理器工厂类
|
||||
/// </summary>
|
||||
public class RcsCallbackHandlerFactory
|
||||
{
|
||||
/// <summary>
|
||||
/// 根据 RCS 返回状态和目标库位运输区域选择状态处理器。
|
||||
/// </summary>
|
||||
/// <param name="status">RCS 任务状态码。</param>
|
||||
/// <param name="destWarehouse">任务目标库位。</param>
|
||||
/// <returns>负责当前状态后续处理的处理器。</returns>
|
||||
public IAgvTaskStateHandler CreateHandler(int status, StorageRackDto destWarehouse)
|
||||
{
|
||||
return status switch
|
||||
{
|
||||
21 => GlobalServericeProvidor.GetService<PickupCompletedStateHandler>(),
|
||||
23 => destWarehouse.Transport switch
|
||||
{
|
||||
TransportEnum.NorthArea or TransportEnum.SouthArea or TransportEnum.MiddleOutArea or TransportEnum.ReturnStockArea
|
||||
=> GlobalServericeProvidor.GetService<StockOutWharfHandler>(),
|
||||
TransportEnum.NormalArea => GlobalServericeProvidor.GetService<StockAreaHandler>(),
|
||||
TransportEnum.TransitArea => GlobalServericeProvidor.GetService<TransitAreaHandler>(),
|
||||
TransportEnum.Elevator => GlobalServericeProvidor.GetService<ElevatorDeliveryHandler>(),
|
||||
}
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user