Files
number_zj/20220330_Vote/Ewide.RoadFlow/Data/Form/IForm.cs
2022-03-30 17:54:33 +08:00

147 lines
6.0 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
using Ewide.Core;
using Microsoft.Extensions.Localization;
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace RoadFlow.Data
{
public interface IForm : IRoadFlowRepository<RoadFlow.Model.rf_form>
{
/// <summary>
/// 获取表单运行时HTML
/// </summary>
/// <param name="formId">表单ID</param>
/// <param name="attrJson">预览表单时传</param>
/// <param name="eventJson">预览表单时传</param>
/// <returns>表单相关属性json</returns>
public JObject GetRunJObject(string formId, string attrJson = "", string eventJson = "");
/// <summary>
/// 根据字符串表达式得到选项
/// </summary>
/// <param name="expression">选项文本1,选项值1;选项文本2,选项值2</param>
/// <returns></returns>
public string GetOptionsByStringExpression(string expression, string defaultValue = "");
/// <summary>
/// 查询表单数据
/// </summary>
/// <param name="connId"></param>
/// <param name="tableName"></param>
/// <param name="primaryKey"></param>
/// <param name="taskId"></param>
/// <param name="flowId"></param>
/// <param name="formatJSON"></param>
/// <param name="fieldStatusJSON"></param>
/// <param name="groupId">动态步骤模式时用于获取步骤字段状态</param>
/// <returns></returns>
public string GetFormData(string connId, string tableName, string primaryKey, string instanceId, string stepId, string flowId, string formatJSON, out string fieldStatusJSON, string groupId = "");
/// <summary>
/// 得到一个连接SQL的数据表JArray
/// </summary>
/// <param name="connId"></param>
/// <param name="sql"></param>
/// <returns>(rows, cols)</returns>
public (JArray, JArray) GetDataTablJArray(string connId, string sql);
/// <summary>
/// 得到子表行数据
/// </summary>
/// <param name="jObject"></param>
/// <param name="connId">连接id</param>
/// <param name="instanceId">实例id</param>
/// <returns></returns>
public JArray GetSubTableJarray(JObject jObject, string connId, string instanceId);
/// <summary>
/// 得到子表默认值json
/// </summary>
/// <param name="jObject"></param>
/// <returns></returns>
public JArray GetSubTableDefaultValueJArray(JArray jArray, SysUser userModel = null);
/// <summary>
/// 替换标题表达式
/// </summary>
/// <param name="titleExpression"></param>
/// <param name="tableName"></param>
/// <param name="instanceId"></param>
/// <returns></returns>
public string ReplaceTitleExpression(string titleExpression, string tableName, string instanceId, JObject formBody);
/// <summary>
/// 删除一个表单对应的数据
/// </summary>
/// <param name="formId">表单Id(RF_Form表Id)</param>
/// <param name="instanceId">实例Id</param>
/// <param name="programRunModel">设计的应用程序实体(用于判断数据删除后事件)</param>
/// <param name="localizer">语言包</param>
/// <param name="isVue">是否是VUE版本</param>
/// <returns>返回1表单成功其它为错误信息</returns>
public string DeleteFormData(string formId, string instanceId, Model.ProgramRun programRunModel = null, IStringLocalizer localizer = null, bool isVue = false);
/// <summary>
/// 保存表单数据(vue前后分离方式)
/// </summary>
/// <returns>业务表主键值, 错误信息</returns>
/// <param name="request">当前请求</param>
public (string, string) SaveDataVue(JObject args, IStringLocalizer localizer = null);
/// <summary>
/// 查询一页数据
/// </summary>
/// <param name="count"></param>
/// <param name="size"></param>
/// <param name="number"></param>
/// <param name="userId">当前人员ID</param>
/// <param name="name"></param>
/// <param name="type"></param>
/// <param name="order"></param>
/// <param name="status">状态,默认为查询没有删除的表单</param>
/// <returns></returns>
public List<Model.rf_form> GetPagerList(out int count, int size, int number, string userId, string name, string type, string order, int status = -1);
/// <summary>
/// 删除表单同时删除应用程序库中记录
/// </summary>
/// <param name="form">表单实体</param>
/// <param name="delete">是否彻底删除 0不 1彻底删除</param>
/// <returns></returns>
public int DeleteAndApplibrary(Model.rf_form form, int delete = 0);
/// <summary>
/// 清除表单运行时HTML缓存
/// </summary>
/// <param name="formId">表单ID</param>
public void ClearRunJObjectCache(string formId);
/// <summary>
/// 根据SQL得到下拉选项(vue项目用)
/// </summary>
/// <param name="connId"></param>
/// <param name="sql"></param>
/// <param name="value"></param>
/// <returns></returns>
public JArray GetJArrayOptionsBySQL(string connId, string sql, string value);
/// <summary>
/// 根据URL得到下拉选项
/// </summary>
/// <param name="url"></param>
/// <returns></returns>
public string GetOptionsByUrl(string url);
/// <summary>
/// 导入表单
/// </summary>
/// <param name="json"></param>
/// <param name="createFile">是否需要创建文件VUE不需要创建文件</param>
/// <returns>返回1表示成功其它为错误信息</returns>
public string ImportForm(string json, bool createFile = true);
}
}