using System.Collections.Generic; using System.Threading; using System.Threading.Tasks; namespace Kean.Domain.Wcs.SharedServices.Proxies { /// /// 任务域代理 /// public sealed class TaskProxy { private readonly IDomain _domain; // 域 /// /// 依赖注入 /// public TaskProxy(IDomain domain) => _domain = domain; /// /// 任务执行 /// /// 标识 public Task Execute(int id) => _domain["Task"].SharedService["Execute"].Invoke(id); /// /// 任务阻塞 /// /// 标识 /// 异常信息 public Task Block(int id, string message) => _domain["Task"].SharedService["Block"].Invoke(id, message); /// /// 任务完成 /// /// 标识 public Task Complete(int id) => _domain["Task"].SharedService["Complete"].Invoke(id); /// /// 任务取消 /// /// 标识 public Task Cancel(int id) => _domain["Task"].SharedService["Cancel"].Invoke(id); /// /// 上架 /// /// 库房 /// 条码 /// 负载规格 /// 操作位置 /// 目标位置 /// 优先级 /// 操作者 /// 标签 /// 前序连接 public Task Infeed( int warehouse, string barcode, int? spec, object original, object destination, int? priority, int @operator, string tag, int? previous, string parameters) => _domain["Task"].SharedService["Infeed"].Invoke( warehouse, barcode, spec, original, destination, priority, @operator, tag, previous, parameters); /// /// 申请出库 /// public Task ApplyOut( string warehouseCode, string deviceCode, string barcode, string tag, CancellationToken cancellationToken) => _domain["Task"].SharedService["ApplyOut"].Invoke( warehouseCode, deviceCode, barcode, tag, cancellationToken); /// /// 任务中转 /// /// 标识 public Task TransferRelocate(int id) => _domain["Task"].SharedService["TransferRelocate"].Invoke(id); /// /// 任务错误 /// /// 标识 public Task ScanError(string barcode, string parameters) => _domain["Task"].SharedService["ScanError"].Invoke(barcode, parameters); /// /// 任务错误 /// /// 标识 public Task SetTaskState(int taskId, string barcode, string taskState, string message, string type) => _domain["Task"].SharedService["SetTaskState"].Invoke(taskId, barcode, taskState, message, type); /// /// 输送 /// public Task BypassHithum( string barcode, object original) => _domain["Task"].SharedService["BypassHithum"].Invoke( barcode, original); /// /// 直接输送 /// public Task BypassEmpty( string barcode, object original) => _domain["Task"].SharedService["BypassEmpty"].Invoke( barcode, original); public Task InfeedCheck( int warehouse, string barcode, int? spec, object original, object destination, int? priority, int @operator, string tag, int? previous, string parameters) => _domain["Task"].SharedService["InfeedCheck"].Invoke( warehouse, barcode, spec, original, destination, priority, @operator, tag, previous, parameters); } }