using DS.Module.Core;
using DS.Module.Core.Condition;
using DS.Module.Core.Data;
using DS.WMS.Core.Op.Dtos.TaskInteraction;
using DS.WMS.Core.Op.Entity;
using DS.WMS.Core.Op.Entity.TaskInteraction;
namespace DS.WMS.Core.Op.Interface.TaskInteraction
{
///
/// 动作执行管理
///
public interface IActionManagerService
{
///
/// 根据指定条件返回是否匹配的结果
///
/// 任务请求
/// 匹配条件
///
Task IsMatchAsync(TaskRequest request, IEnumerable conditions);
///
/// 获取所需业务数据
///
/// 业务ID
/// 业务类型
/// 条件字段
///
Task GetBusinessDataAsync(long businessId, BusinessType businessType, IEnumerable conditions);
///
/// 获取所需业务数据
///
/// 业务ID
/// 业务类型
/// 返回字段列表
///
Task GetBusinessDataAsync(long businessId, BusinessType businessType, params string[] fields);
///
/// 执行特定动作
///
/// 数据上下文
///
Task ExecuteAsync(TaskFlowDataContext dataContext);
///
/// 触发任务执行动作
///
/// 任务信息
///
Task TriggerActionAsync(BusinessTask businessTask);
Task TriggerTestAsync(TaskBaseTypeEnum taskType, long? id);
}
}