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);
}
}