using JNPF.Common.Models.WorkFlow;
using JNPF.WorkFlow.Entitys.Dto.FlowBefore;
using JNPF.WorkFlow.Entitys.Entity;
using JNPF.WorkFlow.Entitys.Model;
namespace JNPF.WorkFlow.Interfaces.Manager;
public interface IFlowTaskManager
{
///
/// 获取任务详情.
///
/// 任务id.
/// 流程id.
/// 节点id.
/// 经办id.
///
Task GetFlowBeforeInfo(string id, string flowId, string taskNodeId, string taskOperatorId = null);
///
/// 保存.
///
/// 提交参数.
///
Task Save(FlowTaskSubmitModel flowTaskSubmitModel);
///
/// 提交.
///
/// 提交参数.
///
Task Submit(FlowTaskSubmitModel flowTaskSubmitModel);
///
/// 审批(同意).
///
/// 任务参数.
/// 是否自动审批.
///
Task Audit(FlowTaskParamter flowTaskParamter, bool isAuto = false);
///
/// 审批(拒绝).
///
/// 任务参数.
///
Task Reject(FlowTaskParamter flowTaskParamter);
///
/// 审批(撤回).
///
/// 任务参数.
/// 经办记录.
Task Recall(FlowTaskParamter flowTaskParamter, FlowTaskOperatorRecordEntity flowTaskOperatorRecordEntity);
///
/// 流程撤回.
///
/// 任务参数.
///
Task Revoke(FlowTaskParamter flowTaskParamter);
///
/// 终止.
///
/// 任务参数.
Task Cancel(FlowTaskParamter flowTaskParamter);
///
/// 指派.
///
/// 任务参数.
///
Task Assigned(FlowTaskParamter flowTaskParamter);
///
/// 转办.
///
/// 任务参数.
///
Task Transfer(FlowTaskParamter flowTaskParamter);
///
/// 催办.
///
/// 任务参数.
///
Task Press(FlowTaskParamter flowTaskParamter);
///
/// 获取候选人.
///
/// 经办id.
/// 审批参数.
/// 0:候选节点编码,1:候选人.
///
Task GetCandidateModelList(string id, FlowHandleModel flowHandleModel, int type = 0);
///
/// 批量审批节点列表.
///
/// 流程id.
///
Task NodeSelector(string flowId);
///
/// 获取批量审批候选人.
///
/// 流程id.
/// 经办id.
///
Task GetBatchCandidate(string flowId, string flowTaskOperatorId);
///
/// 审批根据条件变更节点.
///
/// 流程实例.
/// 表单数据.
/// 经办实例.
///
Task AdjustNodeByCon(FlowJsonModel flowEngineEntity, object formData, FlowTaskOperatorEntity flowTaskOperatorEntity, bool isBranchFlow = false);
///
/// 判断驳回节点是否存在子流程.
///
/// 任务参数.
///
bool IsSubFlowUpNode(FlowTaskParamter flowTaskParamter);
///
/// 获取批量任务的表单数据.
///
/// 任务参数.
///
Task