using Kean.Domain.Task.Events; using Kean.Domain.Task.SharedServices.Proxies; using System.Threading; namespace Kean.Domain.Task.EventHandlers { /// <summary> /// 创建下架命令成功时,下达控制任务 /// </summary> public sealed class ApplyOutSuccessEventHandler_Wcs : EventHandler<ApplyOutSuccessEvent> { private readonly WcsProxy _wcsProxy; // 控制域 /// <summary> /// 依赖注入 /// </summary> public ApplyOutSuccessEventHandler_Wcs( WcsProxy wcsProxy) { _wcsProxy = wcsProxy; } /// <summary> /// 处理程序 /// </summary> public override async System.Threading.Tasks.Task Handle(ApplyOutSuccessEvent @event, CancellationToken cancellationToken) { if (!@event.Manual && !@event.Previous.HasValue) { await _wcsProxy.SendOutput( @event.Id, @event.Original.Warehouse.ToString(), 2, @event.Priority ?? 0, @event.Barcode, @event.Original.Device, @event.Destination.Device, @event.Destination.Warehouse.ToString(), @event.Timestamp, @event.Operator); } } } }