|
@@ -25,19 +25,23 @@ namespace Hotline.Api.Controllers.Bi
|
|
|
private readonly IRepository<Hotspot> _hotspotTypeRepository;
|
|
|
private readonly ISystemDicDataCacheManager _sysDicDataCacheManager;
|
|
|
private readonly IRepository<OrderVisitDetail> _orderVisitDetailRepository;
|
|
|
+ private readonly IRepository<OrderDelay> _orderDelayRepository;
|
|
|
|
|
|
- public BiOrderController(
|
|
|
+ public BiOrderController(
|
|
|
IOrderRepository orderRepository,
|
|
|
IRepository<Hotspot> hotspotTypeRepository,
|
|
|
ISystemDicDataCacheManager sysDicDataCacheManager,
|
|
|
- IRepository<OrderVisitDetail> orderVisitDetailRepository
|
|
|
- )
|
|
|
+ IRepository<OrderVisitDetail> orderVisitDetailRepository,
|
|
|
+ IRepository<OrderDelay> orderDelayRepository
|
|
|
+
|
|
|
+ )
|
|
|
{
|
|
|
_orderRepository = orderRepository;
|
|
|
_hotspotTypeRepository = hotspotTypeRepository;
|
|
|
_sysDicDataCacheManager = sysDicDataCacheManager;
|
|
|
_orderVisitDetailRepository = orderVisitDetailRepository;
|
|
|
- }
|
|
|
+ _orderDelayRepository = orderDelayRepository;
|
|
|
+ }
|
|
|
|
|
|
/// <summary>
|
|
|
/// 部门数据统计
|
|
@@ -123,36 +127,36 @@ namespace Hotline.Api.Controllers.Bi
|
|
|
case "repeat":
|
|
|
query = dto.SortRule == 0 ? query.OrderBy(x => x.Repeat) : query.OrderByDescending(x => x.Repeat);
|
|
|
break;
|
|
|
- }
|
|
|
+ }
|
|
|
var (total, items) = await query.ToPagedListAsync(dto, HttpContext.RequestAborted);
|
|
|
return new PagedDto<OrderBiCentreDataListVo>(total, items);
|
|
|
}
|
|
|
|
|
|
- /// <summary>
|
|
|
- /// 热点数据统计
|
|
|
- /// </summary>
|
|
|
- /// <param name="dto"></param>
|
|
|
- /// <returns></returns>
|
|
|
- [HttpGet("hotspot_data_list")]
|
|
|
- public async Task<PagedDto<HotspotDataLsitVo>> HotspotDataLsit([FromQuery] HotspotReportPagedRequest dto)
|
|
|
+ /// <summary>
|
|
|
+ /// 热点数据统计
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="dto"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ [HttpGet("hotspot_data_list")]
|
|
|
+ public async Task<PagedDto<HotspotDataLsitVo>> HotspotDataLsit([FromQuery] HotspotReportPagedRequest dto)
|
|
|
{
|
|
|
- var query = _hotspotTypeRepository.Queryable(false,true)
|
|
|
- .LeftJoin<Order>((x,o)=>o.HotspotSpliceName != null && (x.HotSpotFullName == o.HotspotSpliceName || o.HotspotSpliceName.Contains(x.HotSpotFullName)) && o.IsDeleted == false)
|
|
|
- .WhereIF(dto.StartTime.HasValue, (x,o) => o.CreationTime >= dto.StartTime)
|
|
|
- .WhereIF(dto.EndTime.HasValue, (x,o) => o.CreationTime <= dto.EndTime)
|
|
|
- .WhereIF(!string.IsNullOrEmpty(dto.Keyword), (x,o) => x.HotSpotName.Contains(dto.Keyword!))
|
|
|
- .Where((x,o)=>x.ParentId ==dto.Id)
|
|
|
- .Where((x,o)=>x.IsDeleted == false)
|
|
|
- .GroupBy((x,o)=> new {x.Id,x.HotSpotName })
|
|
|
- .Select((x,o)=> new HotspotDataLsitVo
|
|
|
+ var query = _hotspotTypeRepository.Queryable(false, true)
|
|
|
+ .LeftJoin<Order>((x, o) => o.HotspotSpliceName != null && (x.HotSpotFullName == o.HotspotSpliceName || o.HotspotSpliceName.Contains(x.HotSpotFullName)) && o.IsDeleted == false)
|
|
|
+ .WhereIF(dto.StartTime.HasValue, (x, o) => o.CreationTime >= dto.StartTime)
|
|
|
+ .WhereIF(dto.EndTime.HasValue, (x, o) => o.CreationTime <= dto.EndTime)
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(dto.Keyword), (x, o) => x.HotSpotName.Contains(dto.Keyword!))
|
|
|
+ .Where((x, o) => x.ParentId == dto.Id)
|
|
|
+ .Where((x, o) => x.IsDeleted == false)
|
|
|
+ .GroupBy((x, o) => new { x.Id, x.HotSpotName })
|
|
|
+ .Select((x, o) => new HotspotDataLsitVo
|
|
|
{
|
|
|
Id = x.Id,
|
|
|
Name = x.HotSpotName,
|
|
|
- Num = SqlFunc.AggregateSum(SqlFunc.IIF(o.Id != null,1,0)),
|
|
|
+ Num = SqlFunc.AggregateSum(SqlFunc.IIF(o.Id != null, 1, 0)),
|
|
|
}).MergeTable();
|
|
|
- var (total, items) = await query.ToPagedListAsync(dto, HttpContext.RequestAborted);
|
|
|
+ var (total, items) = await query.ToPagedListAsync(dto, HttpContext.RequestAborted);
|
|
|
return new PagedDto<HotspotDataLsitVo>(total, items);
|
|
|
- }
|
|
|
+ }
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
@@ -199,33 +203,34 @@ namespace Hotline.Api.Controllers.Bi
|
|
|
[HttpGet("candelay_data_list")]
|
|
|
public async Task<PagedDto<OrderBiCanDelayListVo>> CanDelayDataList([FromQuery] ReportPagedRequest dto)
|
|
|
{
|
|
|
- var query = _orderDelayRepository.Queryable(false, false)
|
|
|
- .LeftJoin<SystemOrganize>((x, o) => x.ApplyOrgCode == o.Id)
|
|
|
- .WhereIF(dto.StartTime.HasValue, (x, o) => x.CreationTime >= dto.StartTime)
|
|
|
- .WhereIF(dto.EndTime.HasValue, (x, o) => x.CreationTime <= dto.EndTime)
|
|
|
- .WhereIF(!string.IsNullOrEmpty(dto.Keyword), (x, o) => o.Name.Contains(dto.Keyword!))
|
|
|
- .GroupBy((x, o) => new { x.ApplyOrgCode, o.Name })
|
|
|
- .Select((x, o) => new OrderBiCanDelayListVo
|
|
|
- {
|
|
|
- OrgName = o.Name,
|
|
|
- OrgId = x.ApplyOrgCode,
|
|
|
- Agreed = SqlFunc.AggregateSum(SqlFunc.IIF(x.DelayState == EDelayState.Pass, 1, 0)),
|
|
|
- NotAgreed = SqlFunc.AggregateSum(SqlFunc.IIF(x.DelayState == EDelayState.NoPass, 1, 0)),
|
|
|
- Approval = SqlFunc.AggregateSum(SqlFunc.IIF(x.DelayState == EDelayState.Examining, 1, 0)),
|
|
|
- }).MergeTable();
|
|
|
- switch (dto.SortField)
|
|
|
- {
|
|
|
- case "agreed":
|
|
|
- query = dto.SortRule == 0 ? query.OrderBy(x => x.Agreed) : query.OrderByDescending(x => x.Agreed);
|
|
|
- break;
|
|
|
- case "notAgreed":
|
|
|
- query = dto.SortRule == 0 ? query.OrderBy(x => x.NotAgreed) : query.OrderByDescending(x => x.NotAgreed);
|
|
|
- break;
|
|
|
- case "approval":
|
|
|
- query = dto.SortRule == 0 ? query.OrderBy(x => x.Approval) : query.OrderByDescending(x => x.Approval);
|
|
|
- break; ;
|
|
|
- }
|
|
|
- var (total, items) = await query.ToPagedListAsync(dto, HttpContext.RequestAborted);
|
|
|
- return new PagedDto<OrderBiCanDelayListVo>(total, items);
|
|
|
- }
|
|
|
+ var query = _orderDelayRepository.Queryable(false, false)
|
|
|
+ .LeftJoin<SystemOrganize>((x, o) => x.ApplyOrgCode == o.Id)
|
|
|
+ .WhereIF(dto.StartTime.HasValue, (x, o) => x.CreationTime >= dto.StartTime)
|
|
|
+ .WhereIF(dto.EndTime.HasValue, (x, o) => x.CreationTime <= dto.EndTime)
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(dto.Keyword), (x, o) => o.Name.Contains(dto.Keyword!))
|
|
|
+ .GroupBy((x, o) => new { x.ApplyOrgCode, o.Name })
|
|
|
+ .Select((x, o) => new OrderBiCanDelayListVo
|
|
|
+ {
|
|
|
+ OrgName = o.Name,
|
|
|
+ OrgId = x.ApplyOrgCode,
|
|
|
+ Agreed = SqlFunc.AggregateSum(SqlFunc.IIF(x.DelayState == EDelayState.Pass, 1, 0)),
|
|
|
+ NotAgreed = SqlFunc.AggregateSum(SqlFunc.IIF(x.DelayState == EDelayState.NoPass, 1, 0)),
|
|
|
+ Approval = SqlFunc.AggregateSum(SqlFunc.IIF(x.DelayState == EDelayState.Examining, 1, 0)),
|
|
|
+ }).MergeTable();
|
|
|
+ switch (dto.SortField)
|
|
|
+ {
|
|
|
+ case "agreed":
|
|
|
+ query = dto.SortRule == 0 ? query.OrderBy(x => x.Agreed) : query.OrderByDescending(x => x.Agreed);
|
|
|
+ break;
|
|
|
+ case "notAgreed":
|
|
|
+ query = dto.SortRule == 0 ? query.OrderBy(x => x.NotAgreed) : query.OrderByDescending(x => x.NotAgreed);
|
|
|
+ break;
|
|
|
+ case "approval":
|
|
|
+ query = dto.SortRule == 0 ? query.OrderBy(x => x.Approval) : query.OrderByDescending(x => x.Approval);
|
|
|
+ break; ;
|
|
|
+ }
|
|
|
+ var (total, items) = await query.ToPagedListAsync(dto, HttpContext.RequestAborted);
|
|
|
+ return new PagedDto<OrderBiCanDelayListVo>(total, items);
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|