|
@@ -1,10 +1,12 @@
|
|
|
using Hotline.JudicialManagement;
|
|
|
using Hotline.Orders;
|
|
|
using Hotline.Settings;
|
|
|
+using Hotline.Share.Dtos;
|
|
|
using Hotline.Share.Dtos.JudicialManagement;
|
|
|
using Hotline.Share.Dtos.Order;
|
|
|
using Hotline.Share.Enums.JudicialManagement;
|
|
|
using Hotline.Share.Enums.Order;
|
|
|
+using Hotline.Snapshot;
|
|
|
using MapsterMapper;
|
|
|
using SqlSugar;
|
|
|
using XF.Domain.Authentications;
|
|
@@ -365,5 +367,30 @@ namespace Hotline.Application.JudicialManagement
|
|
|
|
|
|
}
|
|
|
|
|
|
+ public async Task<PagedDto<IndustryOrderStaticsDto>> QueryIndustryOrderStatics(QueryIndustryOrderStatisticsRequest queryIndustryOrderStatisticsRequest)
|
|
|
+ {
|
|
|
+ var judicialManagementOrderTable = _judicialManagementOrdersRepository.Queryable()
|
|
|
+ .Where(x => x.CreationTime >= queryIndustryOrderStatisticsRequest.StartTime && x.CreationTime <= queryIndustryOrderStatisticsRequest.EndTime);
|
|
|
+ var queryable = judicialManagementOrderTable.InnerJoin<OrderSnapshot>((j, o) => j.Id == o.Id)
|
|
|
+ .GroupBy((j, o) => o.IndustryName)
|
|
|
+ .Select((j, o) => new IndustryOrderStaticsDto
|
|
|
+ {
|
|
|
+ IndustryName = o.IndustryName,
|
|
|
+ TotalOrderCount = SqlFunc.AggregateCount(o.Id),
|
|
|
+ EnforcementOrderCount = SqlFunc.AggregateCount(SqlFunc.IIF(j.IsEnforcementOrder.HasValue && j.IsEnforcementOrder==true, 1,0)),
|
|
|
+ NotEnforcementOrderCount = SqlFunc.AggregateCount(SqlFunc.IIF(j.IsEnforcementOrder.HasValue && j.IsEnforcementOrder != true, 1, 0)),
|
|
|
+ ToBeVerifiedOrderCount = SqlFunc.AggregateCount(SqlFunc.IIF(!j.IsEnforcementOrder.HasValue, 1, 0))
|
|
|
+ });
|
|
|
+
|
|
|
+ var count = await queryable.CountAsync();
|
|
|
+
|
|
|
+ var result = await queryable.ToPageListAsync(queryIndustryOrderStatisticsRequest.PageIndex, queryIndustryOrderStatisticsRequest.PageSize);
|
|
|
+
|
|
|
+ return new PagedDto<IndustryOrderStaticsDto>
|
|
|
+ {
|
|
|
+ Total = count,
|
|
|
+ Items = result
|
|
|
+ };
|
|
|
+ }
|
|
|
}
|
|
|
}
|