using Kean.Domain.Wcs.Events;
using Kean.Domain.Wcs.Models;
using Kean.Domain.Wcs.Repositories;
using Kean.Domain.Wcs.SharedServices.Proxies;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
namespace Kean.Domain.Wcs.EventHandlers
{
///
/// 接受输入成功时,处理类型 4:车身出口29101,AGV申请出库托盘时,未找到出库任务,增加等待input指令
///
public sealed class AcceptInputSuccessEventHandler_4 : EventHandler
{
private readonly TaskProxy _taskProxy; // 任务代理
private readonly INotification _notification; //
private readonly IWcsRepository _wcsRepository; // 控制仓库
///
/// 依赖注入
///
public AcceptInputSuccessEventHandler_4(
TaskProxy taskProxy,
IWcsRepository wcsRepository,
INotification notification)
{
_taskProxy = taskProxy;
_notification = notification;
_wcsRepository = wcsRepository;
}
///
/// 处理程序
///
public override async Task Handle(AcceptInputSuccessEvent @event, CancellationToken cancellationToken)
{
if (@event.Function == "4")
{
Input input = new Input();
input.Function = "3";
input.Device = @event.Device;
input.State = 3;
await _wcsRepository.CreateInputForShenAgvOut(input);
}
}
}
}