Browse Source

增加排序 及导出处理

田爽 3 tháng trước cách đây
mục cha
commit
5ecbb9a817

+ 1 - 1
src/Hotline.Api/Controllers/Bi/BiQualityController.cs

@@ -128,7 +128,7 @@ namespace Hotline.Api.Controllers.Bi
 			dynamic? dynamicClass = DynamicClassHelper.CreateDynamicClass(dto.ColumnInfos);
 
 			var dtos = listDtos
-				.Select(stu => _mapper.Map(stu, typeof(SeatsQualityAnalyseDto), dynamicClass))
+				.Select(stu => _mapper.Map(stu, typeof(QualityOrderOverviewDto), dynamicClass))
 				.Cast<object>()
 				.ToList();
 

+ 13 - 6
src/Hotline.Application/Quality/QualityApplication.cs

@@ -479,8 +479,11 @@ namespace Hotline.Application.Quality
             var query = _qualityRepository.Queryable()
                 .Includes(x => x.Order)
                 .Includes(x => x.QualityDetails)
-                .Where(x => x.Source == EQualitySource.Accepted && x.QualityTime >= dto.StartTime && x.QualityTime <= dto.EndTime && x.State == EQualityState.End);
-            return query;
+                .Where(x => x.Source == EQualitySource.Accepted && x.QualityTime >= dto.StartTime && x.QualityTime <= dto.EndTime && x.State == EQualityState.End)
+                .OrderByIF(dto is { SortField: "grade", SortRule: 0 }, x => x.Grade, OrderByType.Asc)
+                .OrderByIF(dto is { SortField: "grade", SortRule: 1 }, x => x.Grade, OrderByType.Desc); 
+
+			return query;
         }
 
         /// <summary>
@@ -491,15 +494,19 @@ namespace Hotline.Application.Quality
 
             var query = _qualiteyDetail.Queryable()
                 .Includes(x => x.Quality)
-				.Where(x => x.Quality.Source == EQualitySource.Accepted && x.Quality.QualityTime >= dto.StartTime && x.Quality.QualityTime <= dto.EndTime && x.Quality.State == EQualityState.End)
-				.GroupBy(x => x.Name)
+                .Where(x => x.Quality.Source == EQualitySource.Accepted && x.Quality.QualityTime >= dto.StartTime && x.Quality.QualityTime <= dto.EndTime && x.Quality.State == EQualityState.End)
+                .GroupBy(x => x.Name)
                 .Select(x => new QualityOrderOverviewDto
                 {
                     QualityItem = x.Name,
                     AllOrderNum = allOrderNum,
                     OrderNum = SqlFunc.AggregateDistinctCount(x.Quality.OrderId)
-                });
-            return query;
+                })
+                .MergeTable()
+                .OrderByIF(dto is { SortField: "orderNum", SortRule: 0 }, x => x.OrderNum, OrderByType.Asc)
+                .OrderByIF(dto is { SortField: "orderNum", SortRule: 1 }, x => x.OrderNum, OrderByType.Desc);
+
+			return query;
         }
 
 		public ISugarQueryable<SeatsQualityGradeAnalyseDto> SeatsQualityGradeAnalyse(QualityWorkAnalysisRequest dto,CancellationToken cancellationToken)