using System; using System.Collections.Generic; using System.Linq; using System.Text; using EMIS.ViewModel.SystemView; using Bowin.Common.Linq.Entity; using System.Linq.Expressions; using EMIS.Entities; using EMIS.ViewModel.WorkflowManage; namespace EMIS.CommonLogic.SystemServices { public interface IWorkflowServices { /// /// 查询对应的接入流程表开始流程环节的Pid(对应的流程环节Pid) /// /// /// int? GetStartStatus(string tableName); /// /// 查询对应的接入流程表已退回流程环节Pid(注:不包含开始环节、结束环节且为[BP]标识) /// /// /// int? GetSendBackStatus(string tableName); /// /// 查询对应的接入流程表已通过流程环节Pid(注:不包含开始环节、结束环节且为[PASS]标识) /// /// /// int? GetPassNoEndStatus(string tableName); /// /// 查询对应的结束流程环节Pid /// /// /// List GetEndStatus(string tableName); /// /// 查询对应的接入流程表结束流程环节且正常结束的流程环节Pid(注:结束环节且不为[BP]标识的) /// /// /// int? GetCorrectEndStatus(string tableName); /// /// 查询对应的接入流程表非正常结束的流程环节Pid(注:通常为结束环节且为[BP]标识的) /// /// /// List GetBackpointStatus(string tableName); /// /// 查询对应的接入流程表中开始环节、审核流程环节Pid(注:不包含结束、非正常[BP]结束环节) /// /// /// List GetStartApproveStatusList(string tableName); /// /// 查询对应的接入流程表中全部流程环节信息(WorkflowStatusView) /// /// 主表表名 /// List GetStatusViewList(string tableName); /// /// 查询对应的接入流程表中审核流程环节信息(WorkflowStatusView,不包含开始、结束、非正常[BP]结束环节) /// /// 主表表名 /// List GetApproveStatusViewList(string tableName); /// /// 查询重录待审,重新录入环节Pid(用于期末设定学生名单背景颜色) /// /// /// List GetRebutStatus(string tableName); /// /// 查询对应的接入流程表中全部非开始流程环节信息(WorkflowStatusView,不包含开始环节) /// /// 主表表名 /// List GetNoStartStatusViewList(string tableName); /// /// 查询对应的接入流程表中全部结束流程环节信息 /// /// /// List GetEndStatusViewList(string tableName); /// /// 查询工作流程中是否有对应的操作权限——动作(根据对应的信息-处理人、处理人标识) /// /// 主表表名 /// 用户ID /// 审核动作ID(路由ID) /// 表单ID列表 /// 获取数据范围用户的方法 /// bool IsCanApprove(string tableName, Guid userID, Guid actionID, List formIDs, Func, Guid, bool> dataRangeUserFunc = null); /// /// 查询工作流程中是否有对应的操作权限——动作(根据对应的信息-处理人、处理人标识) /// /// 主表表名 /// 用户ID /// 审核动作ID(路由ID) /// 表单ID列表 /// 获取数据范围用户的方法 /// List IsCanApprove(string tableName, Guid userID, List formIDs); /// /// 重载方法,启动对应的流程并执行指定的动作至下一环节(提交),适用于开始节点有两个以上动作时 /// /// 主表表名 /// 需要提交的记录主键ID /// 提交人ID /// 动作ID /// 提交意见 /// 获取数据范围用户的方法 void StartUp(string tableName, Guid formID, Guid userID, Guid actionID, string comment = "", Func, Guid, bool> dataRangeUserFunc = null); /// /// 启动对应的流程并执行指定的动作至下一环节(提交) /// /// 主表表名 /// 需要提交的记录主键ID /// 提交人ID /// 提交意见 /// 获取数据范围用户的方法 void StartUp(string tableName, Guid formID, Guid userID, string comment = "", Func, Guid, bool> dataRangeUserFunc = null); /// /// /// /// /// /// /// /// void BatchStartUp(string tableName, List formIDList, Guid userID, string comment, Func, Guid, bool> dataRangeUserFunc = null); /// /// 审核流程(不包括提交——不包含流程启动) /// /// 主表表名 /// 需要审核的记录主键ID /// 审核人ID /// 审核动作ID /// 提交意见 /// 获取数据范围用户的方法 void Approve(string tableName, Guid formID, Guid userID, Guid actionID, string comment = "", Func, Guid, bool> dataRangeUserFunc = null); /// /// /// /// /// /// /// /// /// void BatchApprove(string tableName, List formIDList, Guid userID, Guid actionID, string comment = "", Func, Guid, bool> dataRangeUserFunc = null); /// /// 工作流流程状态修改(通常用于取消申请、撤销等环节) /// /// 主表表名 /// 表单ID /// 状态:A为活动,D为结束、其他的自己定义 /// 描述改变内容 void ModifyProcessState(string tableName, Guid formID, string status, string description); /// /// 根据当前流程环节ID获取下一步审批动作 /// /// 主表表名 /// 表单ID /// 当前用户ID /// List GetActionView(string tableName, Guid formID, Guid userID); /// /// 重载方法,根据当前流程环节ID获取全部审批动作 /// /// 主表表名 /// List GetActionView(string tableName); /// /// 查询开始流程环节的动作列表List /// /// 主表表名 /// List GetStartActionView(string tableName); /// /// 查询对应的审核历史信息列表List(WorkflowApproveHistoryView) /// /// 主表表名 /// 需要获取的记录主键ID /// IList GetApproveHistoryViewList(string tableName, Guid formID); /// /// 获取待办列表 /// /// /// 主表表名 /// 查询视图,指定一个IQueryable决定如何获取表单记录 /// 待办用户ID /// 指定主键列 /// 页码 /// 每页行数 /// IGridResultSet QueryByPendingJob(string tableName, IQueryable query, Guid userID, Expression> pkSelector, Expression> orderby, bool isDescending = false, int? pageIndex = null, int? pageSize = null); } }