tangjiang 8 mesi fa
parent
commit
00ab7efbd7
1 ha cambiato i file con 175 aggiunte e 54 eliminazioni
  1. 175 54
      src/Hotline.Api/Controllers/Bi/BiOrderController.cs

+ 175 - 54
src/Hotline.Api/Controllers/Bi/BiOrderController.cs

@@ -55,7 +55,7 @@ namespace Hotline.Api.Controllers.Bi
         private readonly IRepository<OrderSpecialDetail> _orderSpecialDetailRepository;
         private readonly IRepository<WorkflowTrace> _workflowTraceRepository;
         private readonly IRepository<WorkflowStep> _workflowStepRepository;
-		private readonly IRepository<OrderScreen> _orderScreenRepository;
+        private readonly IRepository<OrderScreen> _orderScreenRepository;
         private readonly IOrderSecondaryHandlingApplication _orderSecondaryHandlingApplication;
         private readonly IOrderApplication _orderApplication;
         private readonly ITimeLimitDomainService _timeLimitDomainService;
@@ -123,7 +123,7 @@ namespace Hotline.Api.Controllers.Bi
             _systemDicDataCacheManager = systemDicDataCacheManager;
             _workflowStepRepository = workflowStepRepository;
 
-		}
+        }
 
         /// <summary>
         /// 部门超期统计明细
@@ -2312,7 +2312,7 @@ namespace Hotline.Api.Controllers.Bi
                 .Where((x, su) => x.CreationTime >= dto.StartTime.Value && x.CreationTime <= dto.EndTime.Value && su.UserId == dto.UserId)
                 .WhereIF(dto.TitleCode.ToUpper() == "NOSENDORDERNUM", (x, su) => x.Status != EWorkflowStepStatus.Handled)
                 .WhereIF(dto.TitleCode.ToUpper() == "SENDORDERNUM", (x, su) => x.Status == EWorkflowStepStatus.Handled)
-				.GroupBy((x, su) => x.ExternalId)
+                .GroupBy((x, su) => x.ExternalId)
                 .Select((x, su) => new { Id = x.ExternalId })
                 .MergeTable()
                 .LeftJoin<Order>((a, b) => a.Id == b.Id)
@@ -3382,65 +3382,65 @@ namespace Hotline.Api.Controllers.Bi
         public async Task<object> HotspotAndAcceptTypeStatistics([FromQuery] HotspotAndAcceptTypeStatisticsReq dto)
         {
 
-	        var (areaList, returnList) = await _orderApplication.HotspotAndAcceptTypeStatistics(dto);
+            var (areaList, returnList) = await _orderApplication.HotspotAndAcceptTypeStatistics(dto);
 
-	        return new { AreaList = areaList, Data = returnList };
+            return new { AreaList = areaList, Data = returnList };
         }
 
-		/// <summary>
-		/// 热点受理类型统计导出
-		/// </summary>
-		/// <param name="dto"></param>
-		/// <returns></returns>
-		[HttpPost("hotspot-accepttype-statistics-export")]
+        /// <summary>
+        /// 热点受理类型统计导出
+        /// </summary>
+        /// <param name="dto"></param>
+        /// <returns></returns>
+        [HttpPost("hotspot-accepttype-statistics-export")]
         public async Task<FileStreamResult> HotspotAndAcceptTypeStatisticsExport([FromBody] HotspotAndAcceptTypeStatisticsReq dto)
         {
-	        var returnList = await _orderApplication.HotspotAndAcceptTypeStatisticsExport(dto);
-	        var table = _orderApplication.InitHotspotTable(returnList, dto.AddColumnName, dto.HotspotLevel);
-	        var stream = ExcelHelper.CreateStream(table);
-	        return ExcelStreamResult(stream, "热点受理类型统计");
+            var returnList = await _orderApplication.HotspotAndAcceptTypeStatisticsExport(dto);
+            var table = _orderApplication.InitHotspotTable(returnList, dto.AddColumnName, dto.HotspotLevel);
+            var stream = ExcelHelper.CreateStream(table);
+            return ExcelStreamResult(stream, "热点受理类型统计");
         }
 
-		/// <summary>
-		/// 热点受理类型明细
-		/// </summary>
-		/// <param name="dto"></param>
-		/// <returns></returns>
-		[HttpGet("hotspot-accepttype-statistics-detail")]
+        /// <summary>
+        /// 热点受理类型明细
+        /// </summary>
+        /// <param name="dto"></param>
+        /// <returns></returns>
+        [HttpGet("hotspot-accepttype-statistics-detail")]
         public async Task<PagedDto<OrderDto>> HotspotAndAcceptTypeStatisticsDetail([FromQuery] HotspotAndAcceptTypeStatisticsDetailReq dto)
         {
-	        var (total, items) = await _orderApplication.HotspotAndAcceptTypeStatisticsDetail(dto).ToPagedListAsync(dto.PageIndex, dto.PageSize, HttpContext.RequestAborted);
-	        return  new PagedDto<OrderDto>(total, _mapper.Map<IReadOnlyList<OrderDto>>(items));
-		}
-		/// <summary>
-		/// 热点受理类型明细导出
-		/// </summary>
-		/// <param name="dto"></param>
-		/// <returns></returns>
-		[HttpPost("hotspot-accepttype-statistics-detail-export")]
+            var (total, items) = await _orderApplication.HotspotAndAcceptTypeStatisticsDetail(dto).ToPagedListAsync(dto.PageIndex, dto.PageSize, HttpContext.RequestAborted);
+            return new PagedDto<OrderDto>(total, _mapper.Map<IReadOnlyList<OrderDto>>(items));
+        }
+        /// <summary>
+        /// 热点受理类型明细导出
+        /// </summary>
+        /// <param name="dto"></param>
+        /// <returns></returns>
+        [HttpPost("hotspot-accepttype-statistics-detail-export")]
         public async Task<FileStreamResult> HotspotAndAcceptTypeStatisticsDetailExport([FromBody] ExportExcelDto<HotspotAndAcceptTypeStatisticsDetailReq> dto)
         {
-	        var query = _orderApplication.HotspotAndAcceptTypeStatisticsDetail(dto.QueryDto);
-
-	        List<Order> orders;
-	        if (dto.IsExportAll)
-	        {
-		        orders = await query.ToListAsync(HttpContext.RequestAborted);
-	        }
-	        else
-	        {
-		        var (_, items) = await query.ToPagedListAsync(dto.QueryDto, HttpContext.RequestAborted);
-		        orders = items;
-	        }
-	        var ordersDtos = _mapper.Map<ICollection<OrderDto>>(orders);
-	        dynamic? dynamicClass = DynamicClassHelper.CreateDynamicClass(dto.ColumnInfos);
-	        var dtos = ordersDtos
-		        .Select(stu => _mapper.Map(stu, typeof(OrderDto), dynamicClass))
-		        .Cast<object>()
-		        .ToList();
-
-	        var stream = ExcelHelper.CreateStream(dtos);
-	        return ExcelStreamResult(stream, "热点受理类型明细");
+            var query = _orderApplication.HotspotAndAcceptTypeStatisticsDetail(dto.QueryDto);
+
+            List<Order> orders;
+            if (dto.IsExportAll)
+            {
+                orders = await query.ToListAsync(HttpContext.RequestAborted);
+            }
+            else
+            {
+                var (_, items) = await query.ToPagedListAsync(dto.QueryDto, HttpContext.RequestAborted);
+                orders = items;
+            }
+            var ordersDtos = _mapper.Map<ICollection<OrderDto>>(orders);
+            dynamic? dynamicClass = DynamicClassHelper.CreateDynamicClass(dto.ColumnInfos);
+            var dtos = ordersDtos
+                .Select(stu => _mapper.Map(stu, typeof(OrderDto), dynamicClass))
+                .Cast<object>()
+                .ToList();
+
+            var stream = ExcelHelper.CreateStream(dtos);
+            return ExcelStreamResult(stream, "热点受理类型明细");
         }
 
 		/// <summary>
@@ -3454,7 +3454,8 @@ namespace Hotline.Api.Controllers.Bi
 			var (total, items) = await _orderApplication.OrderScreenApply(dto).ToPagedListAsync(dto.PageIndex, dto.PageSize, HttpContext.RequestAborted);
 			return new PagedDto<OrderScreenApplyVo>(total, items);
 		}
-		/// <summary>
+		
+        /// <summary>
 		/// 甄别申请统计导出
 		/// </summary>
 		/// <param name="dto"></param>
@@ -3495,7 +3496,8 @@ namespace Hotline.Api.Controllers.Bi
 			var (total, items) = await _orderApplication.OrderScreenAudit(dto).ToPagedListAsync(dto.PageIndex, dto.PageSize, HttpContext.RequestAborted);
 			return new PagedDto<OrderScreenAuditVo>(total, items);
 		}
-		/// <summary>
+		
+        /// <summary>
 		/// 甄别审批统计导出
 		/// </summary>
 		/// <param name="dto"></param>
@@ -3524,5 +3526,124 @@ namespace Hotline.Api.Controllers.Bi
 			var stream = ExcelHelper.CreateStream(dtos);
 			return ExcelStreamResult(stream, "甄别审批统计");
 		}
-	}
+
+        /// <summary>
+        /// 未签收统计
+        /// </summary>
+        /// <param name="dto"></param>
+        /// <returns></returns>
+        [HttpGet("get_order_nosigen")]
+        public async Task<object> GetOrderNoSigen([FromQuery] OrderNoSigenRequestDto dto)
+        {
+            var items = await _orderReportApplication.GetOrderNoSigen(dto);
+
+            var total = new OrderNoSigenDto
+            {
+                OrgName = "合计",
+                OrgCode = "",
+                OrderNoSigen = items.Sum(p => p.OrderNoSigen),
+                CounterNoSign = items.Sum(p => p.CounterNoSign)
+            };
+
+            return new { List = items, Total = total };
+        }
+
+        /// <summary>
+        /// 未签收统计--导出
+        /// </summary>
+        /// <param name="dto"></param>
+        /// <returns></returns>
+        [HttpPost("get_order_nosigen_export")]
+        public async Task<FileStreamResult> ExportGetOrderNoSigen([FromBody] ExportExcelDto<OrderNoSigenRequestDto> dto)
+        {
+            var list = await _orderReportApplication.GetOrderNoSigen(dto.QueryDto);
+
+            //增加合计
+            list.Add(new OrderNoSigenDto
+            {
+                OrgName = "合计",
+                OrgCode = "",
+                OrderNoSigen = list.Sum(p => p.OrderNoSigen),
+                CounterNoSign = list.Sum(p => p.CounterNoSign)
+            });
+
+            var orderDtos = _mapper.Map<ICollection<OrderNoSigenDto>>(list);
+
+            dynamic? dynamicClass = DynamicClassHelper.CreateDynamicClass(dto.ColumnInfos);
+
+            var dtos = orderDtos
+                .Select(stu => _mapper.Map(stu, typeof(OrderNoSigenDto), dynamicClass))
+                .Cast<object>()
+                .ToList();
+
+            var stream = ExcelHelper.CreateStream(dtos);
+
+            return ExcelStreamResult(stream, "未签收统计数据");
+        }
+
+        /// <summary>
+        /// 未签收统计--明细
+        /// </summary>
+        /// <param name="dto"></param>
+        /// <returns></returns>
+        [HttpGet("get_order_nosigen_detail")]
+        public async Task<PagedDto<OrderDto>> GetOrderNoSigenDetail([FromQuery] OrderNoSigenRequestDto dto)
+        {
+            RefAsync<int> total = 0;
+
+            var queryData = await _orderReportApplication.GetOrderNoSigenDetail(dto)
+                         .Select(o => new { o })
+                        .ToPageListAsync(dto.PageIndex, dto.PageSize, total, HttpContext.RequestAborted);
+
+            var dtos = queryData.Select(d =>
+            {
+                var dto = _mapper.Map<OrderDto>(d.o);
+                return dto;
+            }).ToList();
+            return new PagedDto<OrderDto>(total, dtos);
+        }
+
+        /// <summary>
+        /// 未签收统计--明细--导出
+        /// </summary>
+        /// <param name="dto"></param>
+        /// <returns></returns>
+        [HttpPost("get_order_nosigen_detail_export")]
+        public async Task<FileStreamResult> ExportGetOrderNoSigenDetail([FromBody] ExportExcelDto<OrderNoSigenRequestDto> dto)
+        {
+            var query = _orderReportApplication.GetOrderNoSigenDetail(dto.QueryDto).Select(o => new { o });
+
+            List<OrderDto> list = new();
+            if (dto.IsExportAll)
+            {
+                var listData = await query.ToListAsync(HttpContext.RequestAborted);
+                list = listData.Select(d =>
+                {
+                    var dto = _mapper.Map<OrderDto>(d.o);
+                    return dto;
+                }).ToList();
+            }
+            else
+            {
+                RefAsync<int> total = 0;
+                var listData = await query.ToPageListAsync(dto.QueryDto.PageIndex, dto.QueryDto.PageSize, total, HttpContext.RequestAborted);
+                list = listData.Select(d =>
+                {
+                    var dto = _mapper.Map<OrderDto>(d.o);
+                    return dto;
+                }).ToList();
+            }
+
+            dynamic? dynamicClass = DynamicClassHelper.CreateDynamicClass(dto.ColumnInfos);
+
+            var dtos = list
+                .Select(stu => _mapper.Map(stu, typeof(OrderDto), dynamicClass))
+                .Cast<object>()
+                .ToList();
+
+            var stream = ExcelHelper.CreateStream(dtos);
+
+            return ExcelStreamResult(stream, "未签收统计明细数据");
+        }
+    }
 }