Nie możesz wybrać więcej, niż 25 tematów Tematy muszą się zaczynać od litery lub cyfry, mogą zawierać myślniki ('-') i mogą mieć do 35 znaków.

FormApi.cs 6.2 KiB

4 lat temu
2 lat temu
4 lat temu
2 lat temu
2 lat temu
2 lat temu
2 lat temu
2 lat temu
4 lat temu
2 lat temu
4 lat temu
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193
  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. private Response GetFolderkey(dynamic _)
  29. {
  30. List<FolderKeyReq> req = this.GetReqData<List<FolderKeyReq>>();// 获取模板请求数据
  31. Dictionary<string, string> dic = new Dictionary<string, string>();
  32. foreach (var item in req)
  33. {
  34. if (!string.IsNullOrEmpty(item.processIdName))
  35. {
  36. var data = formSchemeIBLL.GetFolderKey(item.schemeInfoId, item.processIdName, item.keyValue);//
  37. dic = data;
  38. }
  39. }
  40. return Success(dic);
  41. }
  42. /// <summary>
  43. /// 获取表单模板数据
  44. /// </summary>
  45. /// <param name="_"></param>
  46. /// <returns></returns>
  47. private Response GetScheme(dynamic _)
  48. {
  49. List<SchemeReq> req = this.GetReqData<List<SchemeReq>>();// 获取模板请求数据
  50. Dictionary<string,FormSchemeEntity> schemeList = new Dictionary<string,FormSchemeEntity>();
  51. foreach (var item in req) {
  52. FormSchemeInfoEntity schemeInfoEntity = formSchemeIBLL.GetSchemeInfoEntity(item.id);
  53. if (schemeInfoEntity != null) {
  54. FormSchemeEntity schemeEntity = formSchemeIBLL.GetSchemeEntity(schemeInfoEntity.F_SchemeId);
  55. if (schemeEntity != null) {
  56. if (schemeInfoEntity.F_SchemeId != item.ver)
  57. {
  58. schemeList.Add(item.id, schemeEntity);
  59. }
  60. }
  61. }
  62. }
  63. return Success(schemeList);
  64. }
  65. /// <summary>
  66. /// 获取自定义表单数据
  67. /// </summary>
  68. /// <param name="_"></param>
  69. /// <returns></returns>
  70. public Response GetData(dynamic _)
  71. {
  72. List<FormParam> req = this.GetReqData<List<FormParam>>();// 获取模板请求数据
  73. Dictionary<string, object> dic = new Dictionary<string, object>();
  74. foreach (var item in req)
  75. {
  76. if (string.IsNullOrEmpty(item.processIdName))
  77. {
  78. var data = formSchemeIBLL.GetInstanceForm(item.schemeInfoId, item.keyValue);
  79. dic.Add(item.schemeInfoId, data);
  80. }
  81. else
  82. {
  83. var data = formSchemeIBLL.GetInstanceForm(item.schemeInfoId, item.processIdName, item.keyValue);//
  84. dic.Add(item.schemeInfoId, 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 FolderKeyReq
  116. {
  117. /// <summary>
  118. /// 表单请求Id
  119. /// </summary>
  120. public string id { get; set; }
  121. /// <summary>
  122. /// 当前自定义表单版本号
  123. /// </summary>
  124. public string ver { get; set; }
  125. /// <summary>
  126. /// 流程模板id
  127. /// </summary>
  128. public string schemeInfoId { get; set; }
  129. /// <summary>
  130. /// 关联字段名称
  131. /// </summary>
  132. public string processIdName { get; set; }
  133. /// <summary>
  134. /// 数据主键值
  135. /// </summary>
  136. public string keyValue { get; set; }
  137. /// <summary>
  138. /// 表单数据
  139. /// </summary>
  140. public string formData { get; set; }
  141. }
  142. private class SchemeReq {
  143. /// <summary>
  144. /// 表单请求Id
  145. /// </summary>
  146. public string id { get; set; }
  147. /// <summary>
  148. /// 当前自定义表单版本号
  149. /// </summary>
  150. public string ver { get; set; }
  151. }
  152. /// <summary>
  153. /// 自定义表单提交参数
  154. /// </summary>
  155. private class FormParam
  156. {
  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. }