using Learun.Application.OA; using Learun.Application.OA.File.FileInfo; using Learun.Application.TwoDevelopment.AssetManagementSystem; using Learun.Application.TwoDevelopment.EducationalAdministration; using Learun.Application.WorkFlow; using Learun.Util; using Nancy; using System; using System.Collections.Generic; using System.Linq; namespace Learun.Application.WebApi.Modules.Echarts { public class EchartsApi : BaseNoAuthentication { private NewsIBLL newsIBLL = new NewsBLL(); private SYS_SendMessageIBLL sYS_SendMessageIBLL = new SYS_SendMessageBLL(); private Sys_ReceiveFileIBLL sys_ReceiveFileIBLL = new Sys_ReceiveFileBLL(); private FileInfoIBLL fileInfoBLL = new FileInfoBLL(); private NWFSchemeIBLL nWFSchemeIBLL = new NWFSchemeBLL(); private NWFProcessIBLL nWFProcessIBLL = new NWFProcessBLL(); private EmpInfoIBLL empInfoIBLL = new EmpInfoBLL(); private FundsApplyIBLL fundsApplyIBLL = new FundsApplyBLL(); private StuInfoBasicIBLL stuInfoBasicIBLL = new StuInfoBasicBLL(); public EchartsApi() : base("/api/echarts/") { Get["/notice/sum"] = NoticeSum; Get["/notice/monthsum"] = NoticeMonthSum; Get["/message/sum"] = MessageSum; Get["/message/monthsum"] = MessageMonthSum; Get["/receivefile/sum"] = ReceiveFileSum; Get["/receivefile/monthsum"] = ReceiveFileMonthSum; Get["/resourcefile/sum"] = ResourceFileSum; Get["/resourcefile/monthsum"] = ResourceFileMonthSum; Get["/SchemeInfoCount"] = SchemeInfoCount; Get["/ProcessNotFinishCount"] = ProcessNotFinishCount; Get["/ProcessCount"] = ProcessCount; Get["/teacher/sum"] = TeacherSum; Get["/teacher/gendersum"] = TeacherGenderSum; Get["/teacher/jsgwsum"] = TeacherTitSum; Get["/foundapply/monthsum"] = FundsApplyMonthSum; Get["/wf/sumuse"] = WfUseSumCount; Get["/wf/use1"] = WfUseFive; Get["/wf/use2"] = WfUseSix; Get["/stu/sum"] = StuSum; Get["/stu/gendersum"] = StuGenderSum; Get["/stu/deptsum"] = StuDeptSum; } /// /// 新闻数量 /// /// /// public Response NoticeSum(dynamic _) { var sum = newsIBLL.GetNewCount(); var res = new { value = sum }; return Res(res); } public Response NoticeMonthSum(dynamic _) { var dic = newsIBLL.GetMonthCount(); var m = 0; while (m < 13) { m++; if (!dic.ContainsKey(m)) { dic.Add(m, 0); } } var cate = new List(); var data = new List(); for (int i = 1; i < 13; i++) { cate.Add($"{i}月"); data.Add(dic[i]); } var res = new { categories = cate, series = new List { new { name = "公告", data = data } } }; return Res(res); } /// /// 邮件 /// /// /// public Response MessageSum(dynamic _) { var sum = sYS_SendMessageIBLL.GetCount(); var res = new { value = sum }; return Res(res); } public Response MessageMonthSum(dynamic _) { var dic = sYS_SendMessageIBLL.GetMonthCount(); var m = 0; while (m < 13) { m++; if (!dic.ContainsKey(m)) { dic.Add(m, 0); } } var cate = new List(); var data = new List(); for (int i = 1; i < 13; i++) { cate.Add($"{i}月"); data.Add(dic[i]); } var res = new { categories = cate, series = new List { new { name = "邮件", data = data } } }; return Res(res); } /// /// 公文 /// /// /// public Response ReceiveFileSum(dynamic _) { var sum = sys_ReceiveFileIBLL.GetCount(); var res = new { value = sum }; return Res(res); } public Response ReceiveFileMonthSum(dynamic _) { var dic = sys_ReceiveFileIBLL.GetMonthCount(); var m = 0; while (m < 13) { m++; if (!dic.ContainsKey(m)) { dic.Add(m, 0); } } var cate = new List(); var data = new List(); for (int i = 1; i < 13; i++) { cate.Add($"{i}月"); data.Add(dic[i]); } var res = new { categories = cate, series = new List { new { name = "公文", data = data } } }; return Res(res); } /// /// 系统流程统计 /// /// /// public Response SchemeInfoCount(dynamic _) { var sum = nWFSchemeIBLL.GetInfoList().Count(); var res = new { value = sum }; return Res(res); } /// /// 运转中的流程 /// /// /// public Response ProcessNotFinishCount(dynamic _) { var sum = nWFProcessIBLL.GetAllList().Where(x => x.F_EnabledMark == 1 && x.F_IsFinished == 0).Count(); var res = new { value = sum }; return Res(res); } /// /// 流程使用次数 /// /// /// public Response ProcessCount(dynamic _) { var sum = nWFProcessIBLL.GetAllList().Count(); var res = new { value = sum }; return Res(res); } /// /// 流程使用和数量雷达图 /// /// /// public Response WfUseSumCount(dynamic _) { var data = nWFSchemeIBLL.GetWfUseSum(); var nm = data.Select(x => new { name = x.Item1, max = (x.Item2 + x.Item3) == 0 ? 50 : (x.Item2 + x.Item3) * 2 }).ToList(); var sumValue = data.Select(x => x.Item2).ToList(); var useValue = data.Select(x => x.Item3).ToList(); var values = new List(); values.Add(new { name = "流程数量", value = sumValue }); values.Add(new { name = "流程使用次数", value = useValue }); var rs = new { indicator = nm, series = new List { new { data = values } } }; return Res(rs); } /// /// 使用1-5 /// /// /// public Response WfUseFive(dynamic _) { var data = nWFSchemeIBLL.GetUseCount().OrderByDescending(x => x.Value).Take(5); //var value = data.Select(x => x.Value).ToList(); //var nm = new List { "No.1", "No.2", "No.3", "No.4", "No.5" }; //var res = new { categories = nm, series = new List { new { name = "", data = value } } }; var res = data.Select(x => new { name = x.Key, value = x.Value }).ToList(); return Res(res); } /// /// 使用6- /// /// /// public Response WfUseSix(dynamic _) { var data = nWFSchemeIBLL.GetUseCount().OrderByDescending(x => x.Value).Skip(5).Take(5); //var value = data.Select(x => x.Value).ToList(); //if(value.Count!=5) //{ // for (int i = 0; i < 5-value.Count; i++) // { // value.Add(0); // } //} //var nm = new List { "No.5", "No.7", "No.8", "No.9", "No.10" }; //var res = new { categories = nm, series = new List { new { name = "", data = value } } }; var res = data.Select(x => new { name = x.Key, value = x.Value }).ToList(); return Res(res); } /// /// 云盘 /// /// /// public Response ResourceFileSum(dynamic _) { var sum = fileInfoBLL.GetCount(); var res = new { value = sum }; return Res(res); } public Response ResourceFileMonthSum(dynamic _) { var dic = fileInfoBLL.GetMonthCount(); var m = 0; while (m < 13) { m++; if (!dic.ContainsKey(m)) { dic.Add(m, 0); } } var cate = new List(); var data = new List(); for (int i = 1; i < 13; i++) { cate.Add($"{i}月"); data.Add(dic[i]); } var res = new { categories = cate, series = new List { new { name = "云盘", data = data } } }; return Res(res); } /// /// 教师总数量 /// /// /// public Response TeacherSum(dynamic _) { var sum = empInfoIBLL.GetCount(); var res = new { value = sum }; return Res(res); } public Response TeacherGenderSum(dynamic _) { var dic = empInfoIBLL.GetGenderCount(); var res = dic.Select(x => new { name = x.Key, value = x.Value, url = string.Empty }); return Res(res); } public Response TeacherTitSum(dynamic _) { var dic = empInfoIBLL.GetTitCount(); var res = dic.Select(x => new { name = x.Key, value = x.Value, url = string.Empty }); return Res(res); } /// /// 申报经费按月 /// /// /// public Response FundsApplyMonthSum(dynamic _) { var dic = fundsApplyIBLL.GetMonthCount(); var m = 0; while (m < 13) { m++; if (!dic.ContainsKey(m)) { dic.Add(m, 0); } } var cate = new List(); var data = new List(); for (int i = 1; i < 13; i++) { cate.Add($"{i}月"); data.Add(dic[i]); } var res = new { categories = cate, series = new List { new { name = "申报经费", data = data } } }; return Res(res); } /// /// 学生总数量 /// /// /// public Response StuSum(dynamic _) { var sum = stuInfoBasicIBLL.GetCount(); var res = new { value = sum }; return Res(res); } public Response StuGenderSum(dynamic _) { var dic = stuInfoBasicIBLL.GetGenderCount(); var res = dic.Select(x => new { name = x.Key, value = x.Value, url = string.Empty }); return Res(res); } public Response StuDeptSum(dynamic _) { var dic = stuInfoBasicIBLL.GetDeptCount(); //var res = dic.Select(x => new { name = x.Key, value = x.Value, url = string.Empty }); var res = new { categories = dic.Keys.ToList(), series = new List { new { name = "学生系部统计", data = dic.Values.ToList() } } }; return Res(res); } } }