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.
 
 
 
 
 
 

199 lines
6.4 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. {
  39. FormSchemeInfoEntity schemeInfoEntity = formSchemeIBLL.GetSchemeInfoEntity(item.id);
  40. if (schemeInfoEntity != null)
  41. {
  42. FormSchemeEntity schemeEntity = formSchemeIBLL.GetSchemeEntity(schemeInfoEntity.F_SchemeId);
  43. if (schemeEntity != null)
  44. {
  45. if (schemeInfoEntity.F_SchemeId != item.ver)
  46. {
  47. schemeList.Add(item.id, schemeEntity);
  48. }
  49. }
  50. }
  51. }
  52. return Success(schemeList);
  53. }
  54. /// <summary>
  55. /// 获取自定义表单数据
  56. /// </summary>
  57. /// <param name="_"></param>
  58. /// <returns></returns>
  59. public Response GetData(dynamic _)
  60. {
  61. List<FormParam> req = this.GetReqData<List<FormParam>>();// 获取模板请求数据
  62. Dictionary<string, object> dic = new Dictionary<string, object>();
  63. foreach (var item in req)
  64. {
  65. if (string.IsNullOrEmpty(item.processIdName))
  66. {
  67. var data = formSchemeIBLL.GetInstanceForm(item.schemeInfoId, item.keyValue);
  68. dic.Add(item.schemeInfoId, data);
  69. }
  70. else
  71. {
  72. var data = formSchemeIBLL.GetInstanceForm(item.schemeInfoId, item.processIdName, item.keyValue);//
  73. dic.Add(item.schemeInfoId, data);
  74. }
  75. }
  76. return Success(dic);
  77. }
  78. /// <summary>
  79. /// 上传文件夹ID
  80. /// </summary>
  81. /// <param name="_"></param>
  82. /// <returns></returns>
  83. private Response GetFolderkey(dynamic _)
  84. {
  85. List<FolderKeyReq> req = this.GetReqData<List<FolderKeyReq>>();// 获取模板请求数据
  86. Dictionary<string, string> dic = new Dictionary<string, string>();
  87. foreach (var item in req)
  88. {
  89. if (!string.IsNullOrEmpty(item.processIdName))
  90. {
  91. var data = formSchemeIBLL.GetFolderKey(item.schemeInfoId, item.processIdName, item.keyValue);//
  92. dic = data;
  93. }
  94. }
  95. return Success(dic);
  96. }
  97. /// <summary>
  98. /// 保存表单数据
  99. /// </summary>
  100. /// <param name="_"></param>
  101. /// <returns></returns>
  102. private Response Save(dynamic _)
  103. {
  104. List<FormParam> req = this.GetReqData<List<FormParam>>();// 获取模板请求数据
  105. foreach (var item in req)
  106. {
  107. formSchemeIBLL.SaveInstanceForm(item.schemeInfoId, item.processIdName, item.keyValue, item.formData);
  108. }
  109. return Success("保存成功");
  110. }
  111. /// <summary>
  112. /// 删除表单数据
  113. /// </summary>
  114. /// <param name="_"></param>
  115. /// <returns></returns>
  116. private Response DeleteForm(dynamic _)
  117. {
  118. FormParam req = this.GetReqData<FormParam>();// 获取模板请求数据
  119. formSchemeIBLL.DeleteInstanceForm(req.schemeInfoId, req.keyValue);
  120. return Success("删除成功");
  121. }
  122. #region 请求参数
  123. private class FolderKeyReq
  124. {
  125. /// <summary>
  126. /// 表单请求Id
  127. /// </summary>
  128. public string id { get; set; }
  129. /// <summary>
  130. /// 当前自定义表单版本号
  131. /// </summary>
  132. public string ver { get; set; }
  133. /// <summary>
  134. /// 流程模板id
  135. /// </summary>
  136. public string schemeInfoId { get; set; }
  137. /// <summary>
  138. /// 关联字段名称
  139. /// </summary>
  140. public string processIdName { get; set; }
  141. /// <summary>
  142. /// 数据主键值
  143. /// </summary>
  144. public string keyValue { get; set; }
  145. /// <summary>
  146. /// 表单数据
  147. /// </summary>
  148. public string formData { get; set; }
  149. }
  150. private class SchemeReq
  151. {
  152. /// <summary>
  153. /// 表单请求Id
  154. /// </summary>
  155. public string id { get; set; }
  156. /// <summary>
  157. /// 当前自定义表单版本号
  158. /// </summary>
  159. public string ver { get; set; }
  160. }
  161. /// <summary>
  162. /// 自定义表单提交参数
  163. /// </summary>
  164. private class FormParam
  165. {
  166. /// <summary>
  167. /// 流程模板id
  168. /// </summary>
  169. public string schemeInfoId { get; set; }
  170. /// <summary>
  171. /// 关联字段名称
  172. /// </summary>
  173. public string processIdName { get; set; }
  174. /// <summary>
  175. /// 数据主键值
  176. /// </summary>
  177. public string keyValue { get; set; }
  178. /// <summary>
  179. /// 表单数据
  180. /// </summary>
  181. public string formData { get; set; }
  182. }
  183. #endregion
  184. }
  185. }