|
@@ -7,13 +7,15 @@ using Hotline.Share.Enums.KnowledgeBase;
|
|
|
using Hotline.Share.Enums.Order;
|
|
|
using Microsoft.AspNetCore.Mvc;
|
|
|
using SqlSugar;
|
|
|
+using Hotline.Share.Requests;
|
|
|
+using Hotline.Users;
|
|
|
|
|
|
namespace Hotline.Api.Controllers.Bi
|
|
|
{
|
|
|
public class BiOrderController : BaseController
|
|
|
{
|
|
|
private readonly IOrderRepository _orderRepository;
|
|
|
- public BiOrderController(IOrderRepository orderRepository)
|
|
|
+ public BiOrderController(IOrderRepository orderRepository)
|
|
|
{
|
|
|
_orderRepository = orderRepository;
|
|
|
}
|
|
@@ -24,7 +26,7 @@ namespace Hotline.Api.Controllers.Bi
|
|
|
/// <param name="dto"></param>
|
|
|
/// <returns></returns>
|
|
|
[HttpGet("org_data_list")]
|
|
|
- public async Task<PagedDto<OrderBiOrgDataListVo>> DataList([FromQuery] OrderBiOrgDataListDto dto)
|
|
|
+ public async Task<PagedDto<OrderBiOrgDataListVo>> OrgDataList([FromQuery] ReportPagedRequest dto)
|
|
|
{
|
|
|
//TODO 会签统计待处理 目前缺少关联关系
|
|
|
var total = 0;
|
|
@@ -38,7 +40,7 @@ namespace Hotline.Api.Controllers.Bi
|
|
|
{
|
|
|
OrgName = o.Name,
|
|
|
OrgId = x.ActualHandleOrgCode,
|
|
|
- HandlerExtendedNum = SqlFunc.AggregateSum(SqlFunc.IIF((int)x.Status > 300 && x.ExpiredTime > x.FiledTime, 1, 0)),
|
|
|
+ HandlerExtendedNum = SqlFunc.AggregateSum(SqlFunc.IIF((int)x.Status >= 300 && x.ExpiredTime > x.FiledTime, 1, 0)),
|
|
|
//CounterHandlerExtendedNum = SqlFunc.AggregateSum(SqlFunc.IIF(x.IsDeleted, 1, 0)),
|
|
|
NoHandlerExtendedNum = SqlFunc.AggregateSum(SqlFunc.IIF((int)x.Status < 300 && x.ExpiredTime > x.FiledTime, 1, 0)),
|
|
|
//CounterNoHandlerExtendedNum = SqlFunc.AggregateSum(SqlFunc.IIF(x.Status == EKnowledgeStatus.OnShelf, 1, 0))
|
|
@@ -61,5 +63,51 @@ namespace Hotline.Api.Controllers.Bi
|
|
|
var items = query.ToPageList(dto.PageIndex, dto.PageSize, ref total);
|
|
|
return new PagedDto<OrderBiOrgDataListVo>(total, items);
|
|
|
}
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 中心统计
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="dto"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ [HttpGet("centre_data_list")]
|
|
|
+ public async Task<PagedDto<OrderBiCentreDataListVo>> CentreDataList([FromQuery] ReportPagedRequest dto)
|
|
|
+ {
|
|
|
+ var total = 0;
|
|
|
+ var query = _orderRepository.Queryable(false, false, false)
|
|
|
+ .WhereIF(dto.CreationTimeStart.HasValue, x=> x.CreationTime >= dto.CreationTimeStart)
|
|
|
+ .WhereIF(dto.CreationTimeEnd.HasValue, x => x.CreationTime <= dto.CreationTimeEnd)
|
|
|
+ //.WhereIF(!string.IsNullOrEmpty(dto.Keyword), x => o.Name.Contains(dto.Keyword!))
|
|
|
+ .GroupBy(x => new { x.AcceptorId,x.AcceptorName })
|
|
|
+ .Select(x => new OrderBiCentreDataListVo
|
|
|
+ {
|
|
|
+ UserName = x.AcceptorName,
|
|
|
+ UserId = x.AcceptorId,
|
|
|
+ CentreArchive = SqlFunc.AggregateSum(SqlFunc.IIF((int)x.Status >= 300 && x.ProcessType == EProcessType.Zhiban, 1, 0)),
|
|
|
+ CentreCareOf = SqlFunc.AggregateSum(SqlFunc.IIF((int)x.Status >= 300 && x.ProcessType == EProcessType.Jiaoban, 1, 0)),
|
|
|
+ //NoCentreCareOf = SqlFunc.AggregateSum(SqlFunc.IIF((int)x.Status < 300 && x.ExpiredTime > x.FiledTime, 1, 0)),
|
|
|
+ Invalid = SqlFunc.AggregateSum(SqlFunc.IIF(x.AcceptType == "无效", 1, 0)),
|
|
|
+ Repeat = SqlFunc.AggregateSum(SqlFunc.IIF(x.DuplicateIds != null && x.DuplicateIds.Any(), 1, 0))
|
|
|
+ }).MergeTable();
|
|
|
+ switch (dto.SortField)
|
|
|
+ {
|
|
|
+ case "centreArchive":
|
|
|
+ query = dto.SortRule == 0 ? query.OrderBy(x => x.CentreArchive) : query.OrderByDescending(x => x.CentreArchive);
|
|
|
+ break;
|
|
|
+ case "centreCareOf":
|
|
|
+ query = dto.SortRule == 0 ? query.OrderBy(x => x.CentreCareOf) : query.OrderByDescending(x => x.CentreCareOf);
|
|
|
+ break;
|
|
|
+ case "noCentreCareOf":
|
|
|
+ query = dto.SortRule == 0 ? query.OrderBy(x => x.NoCentreCareOf) : query.OrderByDescending(x => x.NoCentreCareOf);
|
|
|
+ break;
|
|
|
+ case "invalid":
|
|
|
+ query = dto.SortRule == 0 ? query.OrderBy(x => x.Invalid) : query.OrderByDescending(x => x.Invalid);
|
|
|
+ break;
|
|
|
+ case "repeat":
|
|
|
+ query = dto.SortRule == 0 ? query.OrderBy(x => x.Repeat) : query.OrderByDescending(x => x.Repeat);
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ var items = query.ToPageList(dto.PageIndex, dto.PageSize, ref total);
|
|
|
+ return new PagedDto<OrderBiCentreDataListVo>(total, items);
|
|
|
+ }
|
|
|
}
|
|
|
}
|