You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

96 lines
3.4 KiB

3 years ago
using learun.iapplication;
using Microsoft.AspNetCore.Mvc;
using System.Threading.Tasks;
namespace learun.webapi.Controllers
{
/// <summary>
/// 版 本 Learun-ADMS-Core 力软管理后台
/// Copyright (c) 2019-present 力软信息技术(苏州)有限公司
/// 创建人:tobin
/// 日 期:2020.04.22
/// 描 述:自定义表单接口
/// </summary>
public class FormController : MvcControllerBase
{
private readonly FormSchemeIBLL _formSchemeIBLL;
/// <summary>
/// 初始化
/// </summary>
/// <param name="formSchemeIBLL">表单接口</param>
public FormController(FormSchemeIBLL formSchemeIBLL)
{
_formSchemeIBLL = formSchemeIBLL;
}
/// <summary>
/// 获取表单模板数据
/// </summary>
/// <param name="id">模板主键</param>
/// <returns></returns>
[HttpGet]
public async Task<IActionResult> Scheme(string id)
{
FormSchemeInfoEntity schemeInfoEntity = await _formSchemeIBLL.GetSchemeInfoEntity(id);
if (schemeInfoEntity != null)
{
FormSchemeEntity schemeEntity = await _formSchemeIBLL.GetSchemeEntity(schemeInfoEntity.F_SchemeId);
return Success(schemeEntity);
}
else
{
return NotFound();
}
}
/// <summary>
/// 获取自定义表单数据
/// </summary>
/// <param name="schemeInfoId">模板信息主键</param>
/// <param name="keyValue">主键值</param>
/// <param name="processIdName">流程绑定字段名</param>
/// <returns></returns>
[HttpGet]
public async Task<IActionResult> Data(string schemeInfoId, string keyValue, string processIdName)
{
if (string.IsNullOrEmpty(processIdName))
{
var data = await _formSchemeIBLL.GetInstanceForm(schemeInfoId, keyValue);
return Success(data);
}
else
{
var data = await _formSchemeIBLL.GetInstanceForm(schemeInfoId, processIdName, keyValue);
return Success(data);
}
}
/// <summary>
/// 保存表单数据
/// </summary>
/// <param name="schemeInfoId">模板信息主键</param>
/// <param name="keyValue">主键值</param>
/// <param name="processIdName">流程绑定字段名</param>
/// <param name="formData">表单数据</param>
/// <returns></returns>
[HttpPost]
private async Task<IActionResult> Save([FromForm]string schemeInfoId, [FromForm]string keyValue, [FromForm]string processIdName, [FromForm]string formData)
{
await _formSchemeIBLL.SaveInstanceForm(schemeInfoId, processIdName, keyValue, formData);
return SuccessInfo("保存成功");
}
/// <summary>
/// 删除表单数据
/// </summary>
/// <param name="schemeInfoId">模板信息主键</param>
/// <param name="keyValue">主键值</param>
/// <returns></returns>
[HttpPost]
private async Task<IActionResult> DeleteForm([FromForm]string schemeInfoId, [FromForm]string keyValue)
{
await _formSchemeIBLL.DeleteInstanceForm(schemeInfoId, keyValue);
return SuccessInfo("删除成功");
}
}
}