Não pode escolher mais do que 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.
 
 
 
 
 
 

386 linhas
12 KiB

  1. using Learun.Application.OA;
  2. using Learun.Application.OA.File.FileInfo;
  3. using Learun.Application.TwoDevelopment.AssetManagementSystem;
  4. using Learun.Application.TwoDevelopment.EducationalAdministration;
  5. using Learun.Application.WorkFlow;
  6. using Learun.Util;
  7. using Nancy;
  8. using System;
  9. using System.Collections.Generic;
  10. using System.Linq;
  11. namespace Learun.Application.WebApi.Modules.Echarts
  12. {
  13. public class EchartsApi : BaseNoAuthentication
  14. {
  15. private NewsIBLL newsIBLL = new NewsBLL();
  16. private SYS_SendMessageIBLL sYS_SendMessageIBLL = new SYS_SendMessageBLL();
  17. private Sys_ReceiveFileIBLL sys_ReceiveFileIBLL = new Sys_ReceiveFileBLL();
  18. private FileInfoIBLL fileInfoBLL = new FileInfoBLL();
  19. private NWFSchemeIBLL nWFSchemeIBLL = new NWFSchemeBLL();
  20. private NWFProcessIBLL nWFProcessIBLL = new NWFProcessBLL();
  21. private EmpInfoIBLL empInfoIBLL = new EmpInfoBLL();
  22. private FundsApplyIBLL fundsApplyIBLL = new FundsApplyBLL();
  23. private StuInfoBasicIBLL stuInfoBasicIBLL = new StuInfoBasicBLL();
  24. public EchartsApi() : base("/api/echarts/")
  25. {
  26. Get["/notice/sum"] = NoticeSum;
  27. Get["/notice/monthsum"] = NoticeMonthSum;
  28. Get["/message/sum"] = MessageSum;
  29. Get["/message/monthsum"] = MessageMonthSum;
  30. Get["/receivefile/sum"] = ReceiveFileSum;
  31. Get["/receivefile/monthsum"] = ReceiveFileMonthSum;
  32. Get["/resourcefile/sum"] = ResourceFileSum;
  33. Get["/resourcefile/monthsum"] = ResourceFileMonthSum;
  34. Get["/SchemeInfoCount"] = SchemeInfoCount;
  35. Get["/ProcessNotFinishCount"] = ProcessNotFinishCount;
  36. Get["/ProcessCount"] = ProcessCount;
  37. Get["/teacher/sum"] = TeacherSum;
  38. Get["/teacher/gendersum"] = TeacherGenderSum;
  39. Get["/teacher/jsgwsum"] = TeacherTitSum;
  40. Get["/foundapply/monthsum"] = FundsApplyMonthSum;
  41. Get["/wf/sumuse"] = WfUseSumCount;
  42. Get["/wf/use1"] = WfUseFive;
  43. Get["/wf/use2"] = WfUseSix;
  44. Get["/stu/sum"] = StuSum;
  45. Get["/stu/gendersum"] = StuGenderSum;
  46. Get["/stu/deptsum"] = StuDeptSum;
  47. }
  48. /// <summary>
  49. /// 新闻数量
  50. /// </summary>
  51. /// <param name="_"></param>
  52. /// <returns></returns>
  53. public Response NoticeSum(dynamic _)
  54. {
  55. var sum = newsIBLL.GetNewCount();
  56. var res = new { value = sum };
  57. return Res(res);
  58. }
  59. public Response NoticeMonthSum(dynamic _)
  60. {
  61. var dic = newsIBLL.GetMonthCount();
  62. var m = 0;
  63. while (m < 13)
  64. {
  65. m++;
  66. if (!dic.ContainsKey(m))
  67. {
  68. dic.Add(m, 0);
  69. }
  70. }
  71. var cate = new List<string>();
  72. var data = new List<int>();
  73. for (int i = 1; i < 13; i++)
  74. {
  75. cate.Add($"{i}月");
  76. data.Add(dic[i]);
  77. }
  78. var res = new { categories = cate, series = new List<object> { new { name = "公告", data = data } } };
  79. return Res(res);
  80. }
  81. /// <summary>
  82. /// 邮件
  83. /// </summary>
  84. /// <param name="_"></param>
  85. /// <returns></returns>
  86. public Response MessageSum(dynamic _)
  87. {
  88. var sum = sYS_SendMessageIBLL.GetCount();
  89. var res = new { value = sum };
  90. return Res(res);
  91. }
  92. public Response MessageMonthSum(dynamic _)
  93. {
  94. var dic = sYS_SendMessageIBLL.GetMonthCount();
  95. var m = 0;
  96. while (m < 13)
  97. {
  98. m++;
  99. if (!dic.ContainsKey(m))
  100. {
  101. dic.Add(m, 0);
  102. }
  103. }
  104. var cate = new List<string>();
  105. var data = new List<int>();
  106. for (int i = 1; i < 13; i++)
  107. {
  108. cate.Add($"{i}月");
  109. data.Add(dic[i]);
  110. }
  111. var res = new { categories = cate, series = new List<object> { new { name = "邮件", data = data } } };
  112. return Res(res);
  113. }
  114. /// <summary>
  115. /// 公文
  116. /// </summary>
  117. /// <param name="_"></param>
  118. /// <returns></returns>
  119. public Response ReceiveFileSum(dynamic _)
  120. {
  121. var sum = sys_ReceiveFileIBLL.GetCount();
  122. var res = new { value = sum };
  123. return Res(res);
  124. }
  125. public Response ReceiveFileMonthSum(dynamic _)
  126. {
  127. var dic = sys_ReceiveFileIBLL.GetMonthCount();
  128. var m = 0;
  129. while (m < 13)
  130. {
  131. m++;
  132. if (!dic.ContainsKey(m))
  133. {
  134. dic.Add(m, 0);
  135. }
  136. }
  137. var cate = new List<string>();
  138. var data = new List<int>();
  139. for (int i = 1; i < 13; i++)
  140. {
  141. cate.Add($"{i}月");
  142. data.Add(dic[i]);
  143. }
  144. var res = new { categories = cate, series = new List<object> { new { name = "公文", data = data } } };
  145. return Res(res);
  146. }
  147. /// <summary>
  148. /// 系统流程统计
  149. /// </summary>
  150. /// <param name="_"></param>
  151. /// <returns></returns>
  152. public Response SchemeInfoCount(dynamic _)
  153. {
  154. var sum = nWFSchemeIBLL.GetInfoList().Count();
  155. var res = new { value = sum };
  156. return Res(res);
  157. }
  158. /// <summary>
  159. /// 运转中的流程
  160. /// </summary>
  161. /// <param name="_"></param>
  162. /// <returns></returns>
  163. public Response ProcessNotFinishCount(dynamic _)
  164. {
  165. var sum = nWFProcessIBLL.GetAllList().Where(x => x.F_EnabledMark == 1 && x.F_IsFinished == 0).Count();
  166. var res = new { value = sum };
  167. return Res(res);
  168. }
  169. /// <summary>
  170. /// 流程使用次数
  171. /// </summary>
  172. /// <param name="_"></param>
  173. /// <returns></returns>
  174. public Response ProcessCount(dynamic _)
  175. {
  176. var sum = nWFProcessIBLL.GetAllList().Count();
  177. var res = new { value = sum };
  178. return Res(res);
  179. }
  180. /// <summary>
  181. /// 流程使用和数量雷达图
  182. /// </summary>
  183. /// <param name="_"></param>
  184. /// <returns></returns>
  185. public Response WfUseSumCount(dynamic _)
  186. {
  187. var data = nWFSchemeIBLL.GetWfUseSum();
  188. var nm = data.Select(x => new { name = x.Item1, max = (x.Item2 + x.Item3) == 0 ? 50 : (x.Item2 + x.Item3) * 2 }).ToList();
  189. var sumValue = data.Select(x => x.Item2).ToList();
  190. var useValue = data.Select(x => x.Item3).ToList();
  191. var values = new List<object>();
  192. values.Add(new { name = "流程数量", value = sumValue });
  193. values.Add(new { name = "流程使用次数", value = useValue });
  194. var rs = new { indicator = nm, series = new List<object> { new { data = values } } };
  195. return Res(rs);
  196. }
  197. /// <summary>
  198. /// 使用1-5
  199. /// </summary>
  200. /// <param name="_"></param>
  201. /// <returns></returns>
  202. public Response WfUseFive(dynamic _)
  203. {
  204. var data = nWFSchemeIBLL.GetUseCount().OrderByDescending(x => x.Value).Take(5);
  205. //var value = data.Select(x => x.Value).ToList();
  206. //var nm = new List<string> { "No.1", "No.2", "No.3", "No.4", "No.5" };
  207. //var res = new { categories = nm, series = new List<object> { new { name = "", data = value } } };
  208. var res = data.Select(x => new { name = x.Key, value = x.Value }).ToList();
  209. return Res(res);
  210. }
  211. /// <summary>
  212. /// 使用6-
  213. /// </summary>
  214. /// <param name="_"></param>
  215. /// <returns></returns>
  216. public Response WfUseSix(dynamic _)
  217. {
  218. var data = nWFSchemeIBLL.GetUseCount().OrderByDescending(x => x.Value).Skip(5).Take(5);
  219. //var value = data.Select(x => x.Value).ToList();
  220. //if(value.Count!=5)
  221. //{
  222. // for (int i = 0; i < 5-value.Count; i++)
  223. // {
  224. // value.Add(0);
  225. // }
  226. //}
  227. //var nm = new List<string> { "No.5", "No.7", "No.8", "No.9", "No.10" };
  228. //var res = new { categories = nm, series = new List<object> { new { name = "", data = value } } };
  229. var res = data.Select(x => new { name = x.Key, value = x.Value }).ToList();
  230. return Res(res);
  231. }
  232. /// <summary>
  233. /// 云盘
  234. /// </summary>
  235. /// <param name="_"></param>
  236. /// <returns></returns>
  237. public Response ResourceFileSum(dynamic _)
  238. {
  239. var sum = fileInfoBLL.GetCount();
  240. var res = new { value = sum };
  241. return Res(res);
  242. }
  243. public Response ResourceFileMonthSum(dynamic _)
  244. {
  245. var dic = fileInfoBLL.GetMonthCount();
  246. var m = 0;
  247. while (m < 13)
  248. {
  249. m++;
  250. if (!dic.ContainsKey(m))
  251. {
  252. dic.Add(m, 0);
  253. }
  254. }
  255. var cate = new List<string>();
  256. var data = new List<int>();
  257. for (int i = 1; i < 13; i++)
  258. {
  259. cate.Add($"{i}月");
  260. data.Add(dic[i]);
  261. }
  262. var res = new { categories = cate, series = new List<object> { new { name = "云盘", data = data } } };
  263. return Res(res);
  264. }
  265. /// <summary>
  266. /// 教师总数量
  267. /// </summary>
  268. /// <param name="_"></param>
  269. /// <returns></returns>
  270. public Response TeacherSum(dynamic _)
  271. {
  272. var sum = empInfoIBLL.GetCount();
  273. var res = new { value = sum };
  274. return Res(res);
  275. }
  276. public Response TeacherGenderSum(dynamic _)
  277. {
  278. var dic = empInfoIBLL.GetGenderCount();
  279. var res = dic.Select(x => new { name = x.Key, value = x.Value, url = string.Empty });
  280. return Res(res);
  281. }
  282. public Response TeacherTitSum(dynamic _)
  283. {
  284. var dic = empInfoIBLL.GetTitCount();
  285. var res = dic.Select(x => new { name = x.Key, value = x.Value, url = string.Empty });
  286. return Res(res);
  287. }
  288. /// <summary>
  289. /// 申报经费按月
  290. /// </summary>
  291. /// <param name="_"></param>
  292. /// <returns></returns>
  293. public Response FundsApplyMonthSum(dynamic _)
  294. {
  295. var dic = fundsApplyIBLL.GetMonthCount();
  296. var m = 0;
  297. while (m < 13)
  298. {
  299. m++;
  300. if (!dic.ContainsKey(m))
  301. {
  302. dic.Add(m, 0);
  303. }
  304. }
  305. var cate = new List<string>();
  306. var data = new List<decimal>();
  307. for (int i = 1; i < 13; i++)
  308. {
  309. cate.Add($"{i}月");
  310. data.Add(dic[i]);
  311. }
  312. var res = new { categories = cate, series = new List<object> { new { name = "申报经费", data = data } } };
  313. return Res(res);
  314. }
  315. /// <summary>
  316. /// 学生总数量
  317. /// </summary>
  318. /// <param name="_"></param>
  319. /// <returns></returns>
  320. public Response StuSum(dynamic _)
  321. {
  322. var sum = stuInfoBasicIBLL.GetCount();
  323. var res = new { value = sum };
  324. return Res(res);
  325. }
  326. public Response StuGenderSum(dynamic _)
  327. {
  328. var dic = stuInfoBasicIBLL.GetGenderCount();
  329. var res = dic.Select(x => new { name = x.Key, value = x.Value, url = string.Empty });
  330. return Res(res);
  331. }
  332. public Response StuDeptSum(dynamic _)
  333. {
  334. var dic = stuInfoBasicIBLL.GetDeptCount();
  335. //var res = dic.Select(x => new { name = x.Key, value = x.Value, url = string.Empty });
  336. var res = new { categories = dic.Keys.ToList(), series = new List<object> { new { name = "学生系部统计", data = dic.Values.ToList() } } };
  337. return Res(res);
  338. }
  339. }
  340. }