田爽 1 year ago
parent
commit
438c2e3912
1 changed files with 58 additions and 53 deletions
  1. 58 53
      src/Hotline.Api/Controllers/Bi/BiOrderController.cs

+ 58 - 53
src/Hotline.Api/Controllers/Bi/BiOrderController.cs

@@ -25,19 +25,23 @@ namespace Hotline.Api.Controllers.Bi
         private readonly IRepository<Hotspot> _hotspotTypeRepository;
         private readonly IRepository<Hotspot> _hotspotTypeRepository;
         private readonly ISystemDicDataCacheManager _sysDicDataCacheManager;
         private readonly ISystemDicDataCacheManager _sysDicDataCacheManager;
         private readonly IRepository<OrderVisitDetail> _orderVisitDetailRepository;
         private readonly IRepository<OrderVisitDetail> _orderVisitDetailRepository;
+        private readonly IRepository<OrderDelay> _orderDelayRepository;
 
 
-        public BiOrderController(
+		public BiOrderController(
             IOrderRepository orderRepository,
             IOrderRepository orderRepository,
             IRepository<Hotspot> hotspotTypeRepository,
             IRepository<Hotspot> hotspotTypeRepository,
             ISystemDicDataCacheManager sysDicDataCacheManager,
             ISystemDicDataCacheManager sysDicDataCacheManager,
-            IRepository<OrderVisitDetail> orderVisitDetailRepository
-            )
+            IRepository<OrderVisitDetail> orderVisitDetailRepository,
+            IRepository<OrderDelay> orderDelayRepository
+
+			)
         {
         {
             _orderRepository = orderRepository;
             _orderRepository = orderRepository;
             _hotspotTypeRepository = hotspotTypeRepository;
             _hotspotTypeRepository = hotspotTypeRepository;
             _sysDicDataCacheManager = sysDicDataCacheManager;
             _sysDicDataCacheManager = sysDicDataCacheManager;
             _orderVisitDetailRepository = orderVisitDetailRepository;
             _orderVisitDetailRepository = orderVisitDetailRepository;
-        }
+            _orderDelayRepository = orderDelayRepository;
+		}
 
 
         /// <summary>
         /// <summary>
         /// 部门数据统计
         /// 部门数据统计
@@ -123,36 +127,36 @@ namespace Hotline.Api.Controllers.Bi
                 case "repeat":
                 case "repeat":
                     query = dto.SortRule == 0 ? query.OrderBy(x => x.Repeat) : query.OrderByDescending(x => x.Repeat);
                     query = dto.SortRule == 0 ? query.OrderBy(x => x.Repeat) : query.OrderByDescending(x => x.Repeat);
                     break;
                     break;
-			}
+            }
             var (total, items) = await query.ToPagedListAsync(dto, HttpContext.RequestAborted);
             var (total, items) = await query.ToPagedListAsync(dto, HttpContext.RequestAborted);
             return new PagedDto<OrderBiCentreDataListVo>(total, items);
             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,
                     Id = x.Id,
                     Name = x.HotSpotName,
                     Name = x.HotSpotName,
-                    Num = SqlFunc.AggregateSum(SqlFunc.IIF(o.Id != null,1,0)),
+                    Num = SqlFunc.AggregateSum(SqlFunc.IIF(o.Id != null, 1, 0)),
                 }).MergeTable();
                 }).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);
             return new PagedDto<HotspotDataLsitVo>(total, items);
-		}
+        }
 
 
 
 
         /// <summary>
         /// <summary>
@@ -199,33 +203,34 @@ namespace Hotline.Api.Controllers.Bi
         [HttpGet("candelay_data_list")]
         [HttpGet("candelay_data_list")]
         public async Task<PagedDto<OrderBiCanDelayListVo>> CanDelayDataList([FromQuery] ReportPagedRequest dto)
         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);
+        }
+    }
 }
 }