using System;
using System.Collections.Generic;
namespace RoadFlow.Data.Interface
{
public interface IWorkFlowTask
{
///
/// 新增
///
int Add(RoadFlow.Data.Model.WorkFlowTask model);
///
/// 更新
///
int Update(RoadFlow.Data.Model.WorkFlowTask model);
///
/// 查询所有记录
///
List GetAll();
///
/// 查询单条记录
///
Model.WorkFlowTask Get(Guid id);
///
/// 删除
///
int Delete(Guid id);
///
/// 删除一个实例
///
int Delete(Guid flowID, Guid groupID);
///
/// 查询记录条数
///
long GetCount();
///
/// 查询待办任务
///
///
///
///
///
///
///
///
/// 0待办 1已完成
///
List GetTasks(string userID, out string pager, string query = "", string title = "", string flowid = "", string sender = "", string date1 = "", string date2 = "", int type = 0);
///
/// 查询待办任务(APP接口)
///
///
///
///
///
///
///
///
/// 0待办 1已完成
///
List AppGetTasks(string userID, int PageIndex, int PageSize, string title = "", string flowid = "", string sender = "", string date1 = "", string date2 = "", int type = 0);
///
/// 得到流程实例列表
///
///
///
///
///
///
///
///
///
///
/// 是否完成 0:全部 1:未完成 2:已完成
///
List GetInstances(Guid[] flowID, Guid[] senderID, Guid[] receiveID, out string pager, string query = "", string title = "", string flowid = "", string date1 = "", string date2 = "", int status = 0);
///
/// 更新打开时间
///
///
///
/// 是否将状态更新为1
void UpdateOpenTime(Guid id, DateTime openTime, bool isStatus = false);
///
/// 得到一个流程实例的发起者
///
///
///
///
string GetFirstSnderID(Guid flowID, string groupID);
///
/// 得到一个流程实例一个步骤的处理者
///
///
///
///
List GetStepSnderID(Guid flowID, Guid stepID, Guid groupID);
///
/// 得到一个流程实例前一步骤的处理者
///
///
///
///
List GetPrevSnderID(Guid flowID, Guid stepID, Guid groupID);
///
/// 完成一个任务
///
///
///
///
///
int Completed(Guid taskID, string comment = "", bool isSign = false, int status = 2, string note = "");
///
/// 得到一个流程实例一个步骤的任务
///
///
///
///
List GetTaskList(Guid flowID, Guid stepID, Guid groupID);
///
/// 得到一个实例的任务
///
///
///
///
List GetTaskList(Guid flowID, Guid groupID);
///
/// 得到和一个任务同级的任务
///
/// 任务ID
/// 是否区分步骤ID,多步骤会签区分的是上一步骤ID
///
List GetTaskList(Guid taskID, bool isStepID = true);
///
/// 得到一个任务的前一任务
///
///
///
///
List GetPrevTaskList(Guid taskID);
///
/// 得到一个任务的后续任务
///
///
///
///
List GetNextTaskList(Guid taskID);
///
/// 得到一个流程实例一个步骤一个人员的任务
///
///
///
///
///
///
List GetUserTaskList(Guid flowID, Guid stepID, Guid groupID, Guid userID);
///
/// 更新一个任务后后续任务状态
///
///
///
///
///
int UpdateNextTaskStatus(Guid taskID, int status);
///
/// 查询一个流程是否有任务数据
///
///
///
bool HasTasks(Guid flowID);
///
/// 查询一个用户在一个步骤是否有未完成任务
///
///
///
bool HasNoCompletedTasks(Guid flowID, Guid stepID, Guid groupID, string userID);
///
/// 激活临时任务
///
///
///
///
/// 要求完成时间
///
int UpdateTempTasks(Guid flowID, Guid stepID, Guid groupID, DateTime? completedTime, DateTime receiveTime);
///
/// 删除临时任务
///
///
///
///
///
///
int DeleteTempTasks(Guid flowID, Guid stepID, Guid groupID, Guid prevStepID);
///
/// 得到一个任务的状态
///
///
///
int GetTaskStatus(Guid taskID);
///
/// 根据SubFlowID得到一个任务
///
///
///
List GetBySubFlowGroupID(Guid subflowGroupID);
}
}