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.
 
 
 
 
 
 

188 line
6.2 KiB

  1. using Learun.Application.Form;
  2. using Nancy;
  3. using System.Collections.Generic;
  4. namespace Learun.Application.WebApi.Modules
  5. {
  6. /// <summary>
  7. /// 版 本 Learun-ADMS V7.0.0 数字化智慧校园
  8. /// Copyright (c) 2013-2018 北京泉江科技有限公司
  9. /// 创建人:数字化智慧校园-框架开发组
  10. /// 日 期:2018.01.03
  11. /// 描 述:自定义表单处理接口
  12. /// </summary>
  13. public class FormApi: BaseApi
  14. {
  15. /// <summary>
  16. /// 注册接口
  17. /// </summary>
  18. public FormApi()
  19. : base("/learun/adms/form")
  20. {
  21. Get["/scheme"] = GetScheme;
  22. Get["/data"] = GetData;
  23. Get["/folderkey"] = GetFolderkey;
  24. Post["/save"] = Save;
  25. Post["/delete"] = DeleteForm;
  26. }
  27. private FormSchemeIBLL formSchemeIBLL = new FormSchemeBLL();
  28. /// <summary>
  29. /// 获取表单模板数据
  30. /// </summary>
  31. /// <param name="_"></param>
  32. /// <returns></returns>
  33. private Response GetScheme(dynamic _)
  34. {
  35. List<SchemeReq> req = this.GetReqData<List<SchemeReq>>();// 获取模板请求数据
  36. Dictionary<string,FormSchemeEntity> schemeList = new Dictionary<string,FormSchemeEntity>();
  37. foreach (var item in req) {
  38. FormSchemeInfoEntity schemeInfoEntity = formSchemeIBLL.GetSchemeInfoEntity(item.id);
  39. if (schemeInfoEntity != null) {
  40. FormSchemeEntity schemeEntity = formSchemeIBLL.GetSchemeEntity(schemeInfoEntity.F_SchemeId);
  41. if (schemeEntity != null) {
  42. if (schemeInfoEntity.F_SchemeId != item.ver)
  43. {
  44. schemeList.Add(item.id, schemeEntity);
  45. }
  46. }
  47. }
  48. }
  49. return Success(schemeList);
  50. }
  51. /// <summary>
  52. /// 获取自定义表单数据
  53. /// </summary>
  54. /// <param name="_"></param>
  55. /// <returns></returns>
  56. public Response GetData(dynamic _)
  57. {
  58. List<FormParam> req = this.GetReqData<List<FormParam>>();// 获取模板请求数据
  59. Dictionary<string, object> dic = new Dictionary<string, object>();
  60. foreach (var item in req)
  61. {
  62. if (string.IsNullOrEmpty(item.processIdName))
  63. {
  64. var data = formSchemeIBLL.GetInstanceForm(item.schemeInfoId, item.keyValue);
  65. dic.Add(item.schemeInfoId, data);
  66. }
  67. else
  68. {
  69. var data = formSchemeIBLL.GetInstanceForm(item.schemeInfoId, item.processIdName, item.keyValue);//
  70. dic.Add(item.schemeInfoId, data);
  71. }
  72. }
  73. return Success(dic);
  74. }
  75. private Response GetFolderkey(dynamic _)
  76. {
  77. List<FolderKeyReq> req = this.GetReqData<List<FolderKeyReq>>();// 获取模板请求数据
  78. Dictionary<string, string> dic = new Dictionary<string, string>();
  79. foreach (var item in req)
  80. {
  81. if (!string.IsNullOrEmpty(item.processIdName))
  82. {
  83. var data = formSchemeIBLL.GetFolderKey(item.schemeInfoId, item.processIdName, item.keyValue);//
  84. dic = data;
  85. }
  86. }
  87. return Success(dic);
  88. }
  89. /// <summary>
  90. /// 保存表单数据
  91. /// </summary>
  92. /// <param name="_"></param>
  93. /// <returns></returns>
  94. private Response Save(dynamic _)
  95. {
  96. List<FormParam> req = this.GetReqData<List<FormParam>>();// 获取模板请求数据
  97. foreach (var item in req)
  98. {
  99. formSchemeIBLL.SaveInstanceForm(item.schemeInfoId, item.processIdName, item.keyValue, item.formData);
  100. }
  101. return Success("保存成功");
  102. }
  103. /// <summary>
  104. /// 删除表单数据
  105. /// </summary>
  106. /// <param name="_"></param>
  107. /// <returns></returns>
  108. private Response DeleteForm(dynamic _)
  109. {
  110. FormParam req = this.GetReqData<FormParam>();// 获取模板请求数据
  111. formSchemeIBLL.DeleteInstanceForm(req.schemeInfoId, req.keyValue);
  112. return Success("删除成功");
  113. }
  114. #region 请求参数
  115. private class SchemeReq {
  116. /// <summary>
  117. /// 表单请求Id
  118. /// </summary>
  119. public string id { get; set; }
  120. /// <summary>
  121. /// 当前自定义表单版本号
  122. /// </summary>
  123. public string ver { get; set; }
  124. }
  125. /// <summary>
  126. /// 自定义表单提交参数
  127. /// </summary>
  128. private class FormParam
  129. {
  130. /// <summary>
  131. /// 流程模板id
  132. /// </summary>
  133. public string schemeInfoId { get; set; }
  134. /// <summary>
  135. /// 关联字段名称
  136. /// </summary>
  137. public string processIdName { get; set; }
  138. /// <summary>
  139. /// 数据主键值
  140. /// </summary>
  141. public string keyValue { get; set; }
  142. /// <summary>
  143. /// 表单数据
  144. /// </summary>
  145. public string formData { get; set; }
  146. }
  147. private class FolderKeyReq
  148. {
  149. /// <summary>
  150. /// 表单请求Id
  151. /// </summary>
  152. public string id { get; set; }
  153. /// <summary>
  154. /// 当前自定义表单版本号
  155. /// </summary>
  156. public string ver { get; set; }
  157. /// <summary>
  158. /// 流程模板id
  159. /// </summary>
  160. public string schemeInfoId { get; set; }
  161. /// <summary>
  162. /// 关联字段名称
  163. /// </summary>
  164. public string processIdName { get; set; }
  165. /// <summary>
  166. /// 数据主键值
  167. /// </summary>
  168. public string keyValue { get; set; }
  169. /// <summary>
  170. /// 表单数据
  171. /// </summary>
  172. public string formData { get; set; }
  173. }
  174. #endregion
  175. }
  176. }