using Learun.Util;
using System.Collections.Generic;
namespace Learun.Application.WorkFlow
{
///
/// 版 本 Learun-ADMS-Ultimate V7.0.0 数字化智慧校园
/// Copyright (c) 2013-2018 北京泉江科技有限公司
/// 创建人:陈彬彬
/// 日 期:2017.04.17
/// 描 述:工作流模板处理
///
public interface WfSchemeIBLL
{
#region 获取数据
///
/// 获取流程分页列表
///
/// 分页参数
/// 关键字
/// 分类
///
IEnumerable GetSchemeInfoPageList(Pagination pagination, string keyword, string category);
///
/// 获取流程模板分页列表
///
/// 分页参数
/// 登录者信息
/// 查询参数
///
IEnumerable GetAppSchemeInfoPageList(Pagination pagination, UserInfo userInfo, string queryJson);
///
/// 获取自定义流程列表
///
/// 用户信息
///
IEnumerable GetCustmerSchemeInfoList(UserInfo userInfo);
///
/// 获取自定义流程列表(app)
///
/// 用户信息
///
IEnumerable GetAppCustmerSchemeInfoList(UserInfo userInfo);
///
/// 获取模板列表
///
/// 模板信息主键
///
IEnumerable GetWfSchemeList(string schemeInfoId);
///
/// 获取模板列表
///
/// 分页参数
/// 模板信息主键
///
IEnumerable GetSchemePageList(Pagination pagination, string schemeInfoId);
///
/// 获取模板基础信息的实体
///
/// 流程编号
///
WfSchemeInfoEntity GetWfSchemeInfoEntityByCode(string code);
///
/// 获取模板的实体
///
/// 主键
///
WfSchemeEntity GetWfSchemeEntity(string keyValue);
///
/// 获取模板的实体通过流程编号
///
/// 流程编号
///
WfSchemeEntity GetWfSchemeEntityByCode(string code);
///
/// 获取流程模板权限列表
///
/// 模板信息主键
///
IEnumerable GetWfSchemeAuthorizeList(string schemeInfoId);
#endregion
#region 提交数据
///
/// 虚拟删除模板信息
///
/// 主键
void VirtualDelete(string keyValue);
///
/// 保存模板信息
///
/// 主键
/// 模板基础信息
/// 模板信息
void SaveEntity(string keyValue, WfSchemeInfoEntity wfSchemeInfoEntity, WfSchemeEntity wfSchemeEntity, List wfSchemeAuthorizeList);
///
/// 更新流程模板
///
/// 模板信息主键
/// 模板主键
void UpdateScheme(string schemeInfoId, string schemeId);
///
/// 保存模板基础信息
///
/// 主键
/// 模板基础信息
void SaveSchemeInfoEntity(string keyValue, WfSchemeInfoEntity schemeInfoEntity);
///
/// 更新自定义表单模板状态
///
/// 模板信息主键
/// 状态1启用0禁用
void UpdateState(string schemeInfoId, int state);
#endregion
#region 扩展方法
///
/// 初始化模板数据
///
/// 模板数据
void SchemeInit(WfSchemeEntity wfSchemeEntity);
///
/// 获取开始节点
///
///
WfNodeInfo GetStartNode();
///
/// 获取流程处理节点
///
/// 流程处理节点主键
///
WfNodeInfo GetNode(string nodeId);
///
/// 寻找到下一个节点
///
/// 当前Id
/// 流转类型1.同意2.不同意3.超时
///
List GetNextNodes(string nodeId, WfTransportType transportType);
///
/// 获取上一节点数据
///
/// 节点主键
///
int GetPreNodeNum(string nodeId);
///
/// 判断两节点是否连接
///
/// 开始节点
/// 结束节点
///
bool IsToNode(string formNodeId, string toNodeId);
#endregion
#region 扩展数据
///
/// 获取流程模板使用次数列表
///
/// 查询参数
///
IEnumerable GetWfSchemeUseList(string queryJson);
IEnumerable GetWfSchemeStart();
#endregion
}
}