|
@@ -1,4 +1,5 @@
|
|
|
-using Hotline.JudicialManagement;
|
|
|
+using Hotline.IndustryClassification;
|
|
|
+using Hotline.JudicialManagement;
|
|
|
using Hotline.Orders;
|
|
|
using Hotline.Settings;
|
|
|
using Hotline.Share.Dtos;
|
|
@@ -370,18 +371,17 @@ namespace Hotline.Application.JudicialManagement
|
|
|
|
|
|
public async Task<List<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 == null, 1, 0))
|
|
|
- });
|
|
|
+ var queryIndustryOrderStatisticsRateRequest = _mapper.Map<QueryIndustryOrderStatisticsRateRequest>(queryIndustryOrderStatisticsRequest);
|
|
|
+ ISugarQueryable<JudicialManagementOrders, Order, IndustryAssociations, IndustrialManagement> groupByQueryable = IndustryGroupBy(queryIndustryOrderStatisticsRateRequest);
|
|
|
+
|
|
|
+ var queryable = groupByQueryable.Select((x, o, a, i) => new IndustryOrderStaticsDto
|
|
|
+ {
|
|
|
+ IndustryName = i.IndustrialName,
|
|
|
+ TotalOrderCount = SqlFunc.AggregateCount(x.Id),
|
|
|
+ EnforcementOrderCount = SqlFunc.AggregateSum(SqlFunc.IIF(x.IsEnforcementOrder.HasValue && x.IsEnforcementOrder == true, 1, 0)),
|
|
|
+ NotEnforcementOrderCount = SqlFunc.AggregateSum(SqlFunc.IIF(x.IsEnforcementOrder.HasValue && x.IsEnforcementOrder != true, 1, 0)),
|
|
|
+ ToBeVerifiedOrderCount = SqlFunc.AggregateSum(SqlFunc.IIF(x.IsEnforcementOrder == null, 1, 0))
|
|
|
+ });
|
|
|
|
|
|
|
|
|
var result = await queryable.ToListAsync();
|
|
@@ -391,25 +391,35 @@ namespace Hotline.Application.JudicialManagement
|
|
|
|
|
|
public async Task<List<IndustryOrderStaticsRateDto>> QueryIndustryOrderStaticsRate(QueryIndustryOrderStatisticsRateRequest queryIndustryOrderStatisticsRateRequest)
|
|
|
{
|
|
|
- var judicialManagementOrderTable = _judicialManagementOrdersRepository.Queryable()
|
|
|
- .LeftJoin<Order>((x, o) => x.Id == o.Id)
|
|
|
- .Where((x, o) => x.CreationTime >= queryIndustryOrderStatisticsRateRequest.StartTime && x.CreationTime <= queryIndustryOrderStatisticsRateRequest.EndTime)
|
|
|
- .WhereIF(string.IsNullOrEmpty(queryIndustryOrderStatisticsRateRequest.AreaCode), (x, o) => o.AreaCode != null && o.AreaCode.StartsWith(queryIndustryOrderStatisticsRateRequest.AreaCode));
|
|
|
+ ISugarQueryable<JudicialManagementOrders, Order, IndustryAssociations, IndustrialManagement> groupByQueryable = IndustryGroupBy(queryIndustryOrderStatisticsRateRequest);
|
|
|
|
|
|
- var queryable = judicialManagementOrderTable.InnerJoin<OrderSnapshot>((x, o, s) => x.Id == s.Id)
|
|
|
- .GroupBy((x, o, s) => s.IndustryName)
|
|
|
- .Select((x, o, s) => new IndustryOrderStaticsRateDto
|
|
|
- {
|
|
|
- IndustryName = s.IndustryName,
|
|
|
- Rate = SqlFunc.AggregateCount(SqlFunc.IIF(o.IsEnforcementOrder.HasValue && o.IsEnforcementOrder == true, 1, 0)) / SqlFunc.AggregateCount(o.Id),
|
|
|
- Count = SqlFunc.AggregateCount(SqlFunc.IIF(o.IsEnforcementOrder.HasValue && o.IsEnforcementOrder == true, 1, 0))
|
|
|
- });
|
|
|
+ var queryable = groupByQueryable.Select((x, o, a, i) => new IndustryOrderStaticsRateDto
|
|
|
+ {
|
|
|
+ IndustryName = i.IndustrialName,
|
|
|
+ Rate = SqlFunc.AggregateSum(SqlFunc.IIF(x.IsEnforcementOrder.HasValue && x.IsEnforcementOrder == true, 1, 0)) / SqlFunc.AggregateCount(x.Id),
|
|
|
+ Count = SqlFunc.AggregateSum(SqlFunc.IIF(x.IsEnforcementOrder.HasValue && x.IsEnforcementOrder == true, 1, 0))
|
|
|
+ });
|
|
|
|
|
|
var result = await queryable.ToListAsync();
|
|
|
|
|
|
return result;
|
|
|
}
|
|
|
|
|
|
+ private ISugarQueryable<JudicialManagementOrders, Order, IndustryAssociations, IndustrialManagement> IndustryGroupBy(QueryIndustryOrderStatisticsRateRequest queryIndustryOrderStatisticsRateRequest)
|
|
|
+ {
|
|
|
+ var judicialManagementOrderTable = _judicialManagementOrdersRepository.Queryable()
|
|
|
+ .LeftJoin<Order>((x, o) => x.Id == o.Id)
|
|
|
+ .Where((x, o) => x.CreationTime >= queryIndustryOrderStatisticsRateRequest.StartTime && x.CreationTime <= queryIndustryOrderStatisticsRateRequest.EndTime)
|
|
|
+ .WhereIF(string.IsNullOrEmpty(queryIndustryOrderStatisticsRateRequest.AreaCode), (x, o) => o.AreaCode != null && o.AreaCode.StartsWith(queryIndustryOrderStatisticsRateRequest.AreaCode));
|
|
|
+
|
|
|
+ var queryable = judicialManagementOrderTable
|
|
|
+ .LeftJoin<IndustryAssociations>((x, o, a) => a.OrganizeId == o.ActualHandleOrgCode.Substring(SqlFunc.MappingColumn<int>("0"), SqlFunc.MappingColumn<int>("9")))
|
|
|
+ .LeftJoin<IndustrialManagement>((x, o, a, i) => a.IndustrialManagementId == i.Id);
|
|
|
+
|
|
|
+ var groupby = queryable.GroupBy((x, o, a, i) => i.IndustrialName);
|
|
|
+ return groupby;
|
|
|
+ }
|
|
|
+
|
|
|
public async Task<List<EventTypeOrderStaticsDto>> QueryEventTypeOrderStatics(QueryEventTypeOrderStaticsRequest queryEventTypeOrderStaticsRequest)
|
|
|
{
|
|
|
var judicialManagementOrderTable = _judicialManagementOrdersRepository.Queryable()
|