123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117 |
- using Microsoft.AspNetCore.Authorization;
- using Microsoft.AspNetCore.Http;
- using Microsoft.AspNetCore.Mvc;
- using System;
- using System.Collections.Generic;
- using System.Data;
- using System.Linq;
- using System.Threading.Tasks;
- using wispro.sp.share;
- namespace wispro.sp.api.Controllers
- {
- [Route("api/[controller]/[action]")]
- [ApiController]
- //[Authorize]
- public class ReportController : ControllerBase
- {
- spDbContext Context;
- public ReportController(spDbContext context)
- {
- Context = context;
- }
- public ChartDatas AppealReport(int type,DateTime? start,DateTime? end,int? userId)
- {
- ChartDatas retDatas = new ChartDatas();
- var results = Context.AppealRecords.Where(b=>(1==1));
- if (start.HasValue)
- {
- results = results.Where(b => b.CreateTime >= start);
- }
- if (end.HasValue)
- {
- results = results.Where(b => b.CreateTime <= end);
- }
- if (userId.HasValue)
- {
- results = results.Where(b => b.CreaterId == userId);
- }
- switch (type)
- {
- case 0:
- var retData = results.GroupBy(c => c.Creater.Name)
- .Select(g => new { key = g.Key, Count = g.Count() }).OrderByDescending(g=>g.Count)
- .ToDictionary(g => g.key, g => g.Count);
- retDatas.ATitle = "申诉人";
- retDatas.Title = "申诉人统计";
- retDatas.Datas = new List<ChartData>();
-
- foreach (var key in retData.Keys)
- {
- retDatas.Datas.Add(new ChartData() { ColumnA = key,value=retData[key]} );
- }
- return retDatas;
- break;
- case 1:
- var retData1 = results.GroupBy(c => c.Type.Name)
- .Select(g => new { key = g.Key, Count = g.Count() }).OrderByDescending(g => g.Count)
- .ToDictionary(g => g.key, g => g.Count);
- retDatas.ATitle = "申诉类型";
- retDatas.Title = "申诉类型统计";
- retDatas.Datas = new List<ChartData>();
-
- foreach (var key in retData1.Keys)
- {
- retDatas.Datas.Add(new ChartData() { ColumnA = key, value = retData1[key] });
- }
- return retDatas;
- break;
- case 2:
- var retData2 = results.GroupBy(c => c.Creater.Department)
- .Select(g => new { key = g.Key, Count = g.Count() }).OrderByDescending(g => g.Count)
- .ToDictionary(g => g.key, g => g.Count);
- retDatas.ATitle = "部门";
- retDatas.Title = "部门申诉统计";
- retDatas.Datas = new List<ChartData>();
- foreach (var key in retData2.Keys)
- {
- retDatas.Datas.Add(new ChartData() { ColumnA = key, value = retData2[key] });
- }
- return retDatas;
- break;
- case 3:
- var retData3 = results.GroupBy(c => new { c.Creater.Name,c.CreateTime.Year, c.CreateTime.Month })
- .Select(g => new { key = g.Key, Count = g.Count() }).OrderByDescending(g => g.Count)
- .ToDictionary(g => g.key, g => g.Count);
- retDatas.ATitle = "申诉人";
- retDatas.BTitle = "绩效月份";
- retDatas.Title = "申诉人每月申诉统计";
- retDatas.Datas = new List<ChartData>();
- foreach (var key in retData3.Keys)
- {
- retDatas.Datas.Add(new ChartData() { ColumnA = key.Name, ColumnB = $"{key.Year}-{key.Month}", value = retData3[key] });
- }
- return retDatas;
-
- break;
- default:
- return null;
- break;
- }
-
- }
- }
- }
|