using Learun.Util;
using Newtonsoft.Json.Linq;
using System.Collections.Generic;
using System.Data;
namespace Learun.Application.Form
{
///
/// 版 本 PIT-ADMS V7.0.3 敏捷开发框架
/// Copyright (c) 2013-2018 Hexagon PPM
/// 创建人:研发部
/// 日 期:2017.04.01
/// 描 述:表单模板
///
public interface FormSchemeIBLL
{
#region 获取数据
///
/// 获取自定义表单列表
///
///
IEnumerable GetCustmerSchemeInfoList();
///
/// 获取表单分页列表
///
/// 分页参数
/// 关键字
/// 分类
/// 表单类型0自定义表单,1自定义表单(OA),2系统表单
///
IEnumerable GetSchemeInfoPageList(Pagination pagination, string keyword, string category, int type);
///
/// 获取表单分页列表(用于系统表单)
///
/// 分页参数
/// 关键字
/// 分类
///
IEnumerable GetSchemeInfoPageList(Pagination pagination, string keyword, string category);
///
/// 获取模板列表
///
/// 分页参数
/// 模板信息主键
///
IEnumerable GetSchemePageList(Pagination pagination, string schemeInfoId);
///
/// 获取模板基础信息的实体
///
/// 主键
///
FormSchemeInfoEntity GetSchemeInfoEntity(string keyValue);
///
/// 获取模板的实体
///
/// 主键
///
FormSchemeEntity GetSchemeEntity(string keyValue);
#endregion
#region 提交数据
///
/// 虚拟删除模板信息
///
/// 主键
void VirtualDelete(string keyValue);
///
/// 保存模板信息
///
/// 主键
/// 模板基础信息
/// 模板信息
void SaveEntity(string keyValue, FormSchemeInfoEntity schemeInfoEntity, FormSchemeEntity schemeEntity);
///
/// 保存模板基础信息
///
/// 主键
/// 模板基础信息
void SaveSchemeInfoEntity(string keyValue, FormSchemeInfoEntity schemeInfoEntity);
///
/// 更新模板
///
/// 模板信息主键
/// 模板主键
void UpdateScheme(string schemeInfoId, string schemeId);
///
/// 更新自定义表单模板状态
///
/// 模板信息主键
/// 状态1启用0禁用
void UpdateState(string schemeInfoId, int state);
#endregion
#region 扩展方法
///
/// 获取分页数据
///
/// 模板信息主键
/// 分页参数
/// 查询条件
///
DataTable GetFormPageList(string schemeInfoId, Pagination pagination, string queryJson);
///
/// 获取分页数据
///
/// 模板信息主键
/// 查询条件
///
DataTable GetFormList(string schemeInfoId, string queryJson);
///
/// 获取自定义表单数据
///
/// 模板信息主键
/// 主键
///
Dictionary GetInstanceForm(string schemeInfoId, string keyValue);
///
/// 获取自定义表单数据
///
/// 模板信息主键
/// 主键
///
Dictionary GetInstanceForm(string schemeInfoId, string processIdName, string keyValue);
///
/// 保存自定义表单数据
///
/// 表单模板主键
/// 流程关联字段名
/// 数据主键值
/// 自定义表单数据
void SaveInstanceForm(string schemeInfoId, string processIdName, string keyValue, string formData);
///
/// 删除自定义表单数据
///
/// 表单模板主键
/// 数据主键值
void DeleteInstanceForm(string schemeInfoId, string keyValue);
#endregion
}
}