Просмотр исходного кода

中心统计报表统计错误

田爽 2 месяцев назад
Родитель
Сommit
da2325caa5
1 измененных файлов с 32 добавлено и 11 удалено
  1. 32 11
      src/Hotline.Api/Controllers/Bi/BiOrderController.cs

+ 32 - 11
src/Hotline.Api/Controllers/Bi/BiOrderController.cs

@@ -2071,10 +2071,10 @@ namespace Hotline.Api.Controllers.Bi
                 .Select((x, so) => new OrderCompletedDto
                 {
                     CompletedCount = SqlFunc.AggregateSum(SqlFunc.IIF(x.Status >= EOrderStatus.Filed, 1, 0)),
-                    ExpiredTimeCompletedCount = SqlFunc.AggregateSum(SqlFunc.IIF(x.Status >= EOrderStatus.Filed && x.ExpiredTime > x.ActualHandleTime, 1, 0)),//超期已办
-                    CityExpiredTimeCompletedCount = SqlFunc.AggregateSum(SqlFunc.IIF(x.Status >= EOrderStatus.Filed && x.ExpiredTime > x.ActualHandleTime && so.OrgType == EOrgType.City, 1, 0)),//市级超期已办
-                    CountyExpiredTimeCompletedCount = SqlFunc.AggregateSum(SqlFunc.IIF(x.Status >= EOrderStatus.Filed && x.ExpiredTime > x.ActualHandleTime && so.OrgType == EOrgType.County, 1, 0)),//区县超期已办
-                    CenterExpiredTimeCompletedCount = SqlFunc.AggregateSum(SqlFunc.IIF(x.Status >= EOrderStatus.Filed && x.ExpiredTime > x.ActualHandleTime && so.IsCenter, 1, 0)),//中心超期已办
+                    ExpiredTimeCompletedCount = SqlFunc.AggregateSum(SqlFunc.IIF(x.Status >= EOrderStatus.Filed && x.ExpiredTime < x.ActualHandleTime, 1, 0)),//超期已办
+                    CityExpiredTimeCompletedCount = SqlFunc.AggregateSum(SqlFunc.IIF(x.Status >= EOrderStatus.Filed && x.ExpiredTime < x.ActualHandleTime && so.OrgType == EOrgType.City, 1, 0)),//市级超期已办
+                    CountyExpiredTimeCompletedCount = SqlFunc.AggregateSum(SqlFunc.IIF(x.Status >= EOrderStatus.Filed && x.ExpiredTime < x.ActualHandleTime && so.OrgType == EOrgType.County, 1, 0)),//区县超期已办
+                    CenterExpiredTimeCompletedCount = SqlFunc.AggregateSum(SqlFunc.IIF(x.Status >= EOrderStatus.Filed && x.ExpiredTime < x.ActualHandleTime && so.IsCenter, 1, 0)),//中心超期已办
                     CityCompletedCount = SqlFunc.AggregateSum(SqlFunc.IIF(x.Status >= EOrderStatus.Filed && so.OrgType == EOrgType.City, 1, 0)),
                     CountyCompletedCount = SqlFunc.AggregateSum(SqlFunc.IIF(x.Status >= EOrderStatus.Filed && so.OrgType == EOrgType.County, 1, 0)),
                     CenterCompletedCount = SqlFunc.AggregateSum(SqlFunc.IIF(x.Status >= EOrderStatus.Filed && so.IsCenter, 1, 0)),
@@ -2154,7 +2154,8 @@ namespace Hotline.Api.Controllers.Bi
             {
                 new CenterReportOrderSourceChannelDto
                 {
-                    Name = "来源总量",
+					AllCountNum = sourceChannelCount,
+					Name = "来源总量",
                     Code = "All",
                     CountNum = sourceChannelCount
                 }
@@ -2526,10 +2527,25 @@ namespace Hotline.Api.Controllers.Bi
             {
                 OrgStatistics = listOrgStatisticsAreaAll
             };
-            #endregion
-
-            #region 企业服务办件情况
-            var enterpriseOrderDto = await _orderRepository.Queryable()
+			#endregion
+
+			#region 企业服务办件情况
+
+			//工单 信件情况
+			var enterpriseOrderData = await _orderRepository.Queryable()
+				.LeftJoin<SystemOrganize>((x, so) => x.ActualHandleOrgCode == so.Id)
+				.Where((x, so) => x.CreationTime >= StartTime && x.CreationTime <= EndTime && x.IdentityType == EIdentityType.Enterprise)
+				.Select((x, so) => new EnterpriseOrderDto
+				{
+					InProgressCount = SqlFunc.AggregateSum(SqlFunc.IIF(x.Status < EOrderStatus.Filed, 1, 0)),
+					CompletedCount = SqlFunc.AggregateSum(SqlFunc.IIF(x.Status >= EOrderStatus.Filed, 1, 0)),
+					CenterCount = SqlFunc.AggregateSum(SqlFunc.IIF(so.IsCenter, 1, 0)),
+					CityCount = SqlFunc.AggregateSum(SqlFunc.IIF(so.OrgType == EOrgType.City, 1, 0)),
+					CountyCount = SqlFunc.AggregateSum(SqlFunc.IIF(so.OrgType == EOrgType.County, 1, 0)),
+				})
+				.FirstAsync();
+
+			var enterpriseOrderDto = await _orderRepository.Queryable()
                 .LeftJoin<SystemOrganize>((x, so) => x.ActualHandleOrgCode == so.Id)
                 .Where((x, so) => x.CreationTime >= StartTime && x.CreationTime <= EndTime && x.IdentityType == EIdentityType.Enterprise)
                 .Select((x, so) => new
@@ -2553,8 +2569,13 @@ namespace Hotline.Api.Controllers.Bi
                 })
                 .FirstAsync();
 
-            centerReportStatisticsDto.EnterpriseOrderDto = enterpriseOrderDto;
-            var enterpriseOrderDto2 = await _orderVisitDetailRepository.Queryable()
+			enterpriseOrderDto.InProgressCount = enterpriseOrderData.InProgressCount;
+			enterpriseOrderDto.CompletedCount = enterpriseOrderData.CompletedCount;
+			enterpriseOrderDto.CenterCount = enterpriseOrderData.CenterCount;
+			enterpriseOrderDto.CityCount = enterpriseOrderData.CityCount;
+			enterpriseOrderDto.CountyCount = enterpriseOrderData.CountyCount;
+			centerReportStatisticsDto.EnterpriseOrderDto = enterpriseOrderDto;
+			var enterpriseOrderDto2 = await _orderVisitDetailRepository.Queryable()
                 .Includes(it => it.OrderVisit, ov => ov.Order)
                 .LeftJoin<SystemOrganize>((it, so) => it.VisitOrgCode == so.Id)
                 .Where((it, so) => it.VisitTarget == EVisitTarget.Org && it.OrderVisit.VisitTime >= StartTime && it.OrderVisit.VisitTime <= EndTime && it.OrderVisit.VisitState == EVisitState.Visited)