|
@@ -42,6 +42,7 @@ namespace Hotline.Application.StatisticalReport
|
|
|
private readonly IRepository<OrderScreen> _orderScreenRepository;
|
|
|
private readonly IOrderSecondaryHandlingApplication _orderSecondaryHandlingApplication;
|
|
|
private readonly ITimeLimitDomainService _timeLimitDomainService;
|
|
|
+
|
|
|
|
|
|
public OrderReportApplication(
|
|
|
IOrderRepository orderRepository,
|
|
@@ -86,6 +87,7 @@ namespace Hotline.Application.StatisticalReport
|
|
|
_orderScreenRepository = orderScreenRepository;
|
|
|
_orderSecondaryHandlingApplication = orderSecondaryHandlingApplication;
|
|
|
_timeLimitDomainService = timeLimitDomainService;
|
|
|
+
|
|
|
}
|
|
|
/// <summary>
|
|
|
/// 部门办件统计表---新
|
|
@@ -504,10 +506,11 @@ order by ""su"".""OrgCode""";
|
|
|
query = _workflowTraceRepository.Queryable()
|
|
|
.LeftJoin<Order>((t, o) => t.ExternalId == o.Id)
|
|
|
.Where((t, o) => t.ModuleCode == WorkflowModuleConsts.OrderHandle && o.CreationTime >= dto.StartTime && o.CreationTime <= dto.EndTime
|
|
|
- && t.Status >= EWorkflowStepStatus.Handled &&t.TraceState!= EWorkflowTraceState.StepRemoveByPrevious)
|
|
|
+ && t.Status >= EWorkflowStepStatus.Handled)
|
|
|
.WhereIF(dto.IsProvince.HasValue && dto.IsProvince == true, (t, o) => o.Source == ESource.ProvinceStraight)
|
|
|
.WhereIF(dto.OrgCode == "001", (t, o) => t.HandlerOrgId == dto.OrgCode)
|
|
|
- .WhereIF(dto.OrgCode != "001", (t, o) => t.HandlerOrgId.StartsWith(dto.OrgCode))
|
|
|
+ .WhereIF(dto.OrgCode != "001" && dto.OrgCode != dto.ParentOrgCode, (t, o) => t.HandlerOrgId.StartsWith(dto.OrgCode))
|
|
|
+ .WhereIF(dto.OrgCode != "001" && dto.OrgCode == dto.ParentOrgCode, (t, o) => t.HandlerOrgId == dto.OrgCode)
|
|
|
.GroupBy((t, o) => o.Id)
|
|
|
.Select((t, o) => new SelectOrderId { Id = o.Id })
|
|
|
.MergeTable();
|
|
@@ -519,30 +522,33 @@ order by ""su"".""OrgCode""";
|
|
|
&& t.Status < EWorkflowStepStatus.Handled)
|
|
|
.WhereIF(dto.IsProvince.HasValue && dto.IsProvince == true, (t, o) => o.Source == ESource.ProvinceStraight)
|
|
|
.WhereIF(dto.OrgCode == "001", (t, o) => t.HandlerOrgId == dto.OrgCode)
|
|
|
- .WhereIF(dto.OrgCode != "001", (t, o) => t.HandlerOrgId.StartsWith(dto.OrgCode))
|
|
|
+ .WhereIF(dto.OrgCode != "001" && dto.OrgCode != dto.ParentOrgCode, (t, o) => t.HandlerOrgId.StartsWith(dto.OrgCode))
|
|
|
+ .WhereIF(dto.OrgCode != "001" && dto.OrgCode == dto.ParentOrgCode, (t, o) => t.HandlerOrgId == dto.OrgCode)
|
|
|
.GroupBy((t, o) => o.Id)
|
|
|
.Select((t, o) => new SelectOrderId { Id = o.Id })
|
|
|
.MergeTable();
|
|
|
break;
|
|
|
case EStatisticsType.OrderDelayCount://延期次数
|
|
|
query = _orderDelayRepository.Queryable()
|
|
|
- .Includes(x => x.Order)
|
|
|
- .Where(x => x.Order.CreationTime >= dto.StartTime && x.Order.CreationTime <= dto.EndTime && x.DelayState == EDelayState.Pass)
|
|
|
- .WhereIF(dto.IsProvince.HasValue && dto.IsProvince == true, x => x.Order.Source == ESource.ProvinceStraight)
|
|
|
- .WhereIF(dto.OrgCode == "001", x => x.ApplyOrgCode == dto.OrgCode)
|
|
|
- .WhereIF(dto.OrgCode != "001", x => x.ApplyOrgCode.StartsWith(dto.OrgCode))
|
|
|
- .OrderByDescending(x => x.Order.CreationTime)
|
|
|
- .Select(x => new SelectOrderId { Id = x.OrderId })
|
|
|
+ .LeftJoin<Order>((d, o) => d.OrderId == o.Id)
|
|
|
+ .Where((d, o) => o.CreationTime >= dto.StartTime && o.CreationTime <= dto.EndTime && d.DelayState == EDelayState.Pass)
|
|
|
+ .WhereIF(dto.IsProvince.HasValue && dto.IsProvince == true, (d, o) => o.Source == ESource.ProvinceStraight)
|
|
|
+ .WhereIF(dto.OrgCode == "001", (d, o) => d.ApplyOrgCode == dto.OrgCode)
|
|
|
+ .WhereIF(dto.OrgCode != "001" && dto.OrgCode != dto.ParentOrgCode, (d, o) => d.ApplyOrgCode.StartsWith(dto.OrgCode))
|
|
|
+ .WhereIF(dto.OrgCode == "001" && dto.OrgCode == dto.ParentOrgCode, (d, o) => d.ApplyOrgCode == dto.OrgCode)
|
|
|
+ .OrderByDescending((d, o) => o.CreationTime)
|
|
|
+ .Select((d, o) => new SelectOrderId { Id = o.Id })
|
|
|
.MergeTable();
|
|
|
break;
|
|
|
case EStatisticsType.YBOverdue://已办超期
|
|
|
query = _workflowTraceRepository.Queryable()
|
|
|
.LeftJoin<Order>((t, o) => t.ExternalId == o.Id)
|
|
|
.Where((t, o) => t.ModuleCode == WorkflowModuleConsts.OrderHandle && o.CreationTime >= dto.StartTime && o.CreationTime <= dto.EndTime
|
|
|
- && t.Status >= EWorkflowStepStatus.Handled && t.HandleTime > t.StepExpiredTime && t.CountersignPosition == ECountersignPosition.None && t.TraceState != EWorkflowTraceState.StepRemoveByPrevious)
|
|
|
+ && t.Status >= EWorkflowStepStatus.Handled && t.HandleTime > t.StepExpiredTime && t.CountersignPosition == ECountersignPosition.None)
|
|
|
.WhereIF(dto.IsProvince.HasValue && dto.IsProvince == true, (t, o) => o.Source == ESource.ProvinceStraight)
|
|
|
.WhereIF(dto.OrgCode == "001", (t, o) => t.HandlerOrgId == dto.OrgCode)
|
|
|
- .WhereIF(dto.OrgCode != "001", (t, o) => t.HandlerOrgId.StartsWith(dto.OrgCode))
|
|
|
+ .WhereIF(dto.OrgCode != "001" && dto.OrgCode != dto.ParentOrgCode, (t, o) => t.HandlerOrgId.StartsWith(dto.OrgCode))
|
|
|
+ .WhereIF(dto.OrgCode != "001" && dto.OrgCode == dto.ParentOrgCode, (t, o) => t.HandlerOrgId == dto.OrgCode)
|
|
|
.GroupBy((t, o) => o.Id)
|
|
|
.Select((t, o) => new SelectOrderId { Id = o.Id })
|
|
|
.MergeTable();
|
|
@@ -554,7 +560,8 @@ order by ""su"".""OrgCode""";
|
|
|
&& t.Status < EWorkflowStepStatus.Handled && DateTime.Now > t.StepExpiredTime && t.CountersignPosition == ECountersignPosition.None)
|
|
|
.WhereIF(dto.IsProvince.HasValue && dto.IsProvince == true, (t, o) => o.Source == ESource.ProvinceStraight)
|
|
|
.WhereIF(dto.OrgCode == "001", (t, o) => t.HandlerOrgId == dto.OrgCode)
|
|
|
- .WhereIF(dto.OrgCode != "001", (t, o) => t.HandlerOrgId.StartsWith(dto.OrgCode))
|
|
|
+ .WhereIF(dto.OrgCode != "001" && dto.OrgCode != dto.ParentOrgCode, (t, o) => t.HandlerOrgId.StartsWith(dto.OrgCode))
|
|
|
+ .WhereIF(dto.OrgCode != "001" && dto.OrgCode == dto.ParentOrgCode, (t, o) => t.HandlerOrgId == dto.OrgCode)
|
|
|
.GroupBy((t, o) => o.Id)
|
|
|
.Select((t, o) => new SelectOrderId { Id = o.Id })
|
|
|
.MergeTable();
|
|
@@ -563,10 +570,11 @@ order by ""su"".""OrgCode""";
|
|
|
query = _workflowTraceRepository.Queryable()
|
|
|
.LeftJoin<Order>((t, o) => t.ExternalId == o.Id)
|
|
|
.Where((t, o) => t.ModuleCode == WorkflowModuleConsts.OrderHandle && o.CreationTime >= dto.StartTime && o.CreationTime <= dto.EndTime
|
|
|
- && t.Status >= EWorkflowStepStatus.Handled && t.HandleTime > t.StepExpiredTime && t.CountersignPosition > ECountersignPosition.None && t.TraceState != EWorkflowTraceState.StepRemoveByPrevious)
|
|
|
+ && t.Status >= EWorkflowStepStatus.Handled && t.HandleTime > t.StepExpiredTime && t.CountersignPosition > ECountersignPosition.None)
|
|
|
.WhereIF(dto.IsProvince.HasValue && dto.IsProvince == true, (t, o) => o.Source == ESource.ProvinceStraight)
|
|
|
.WhereIF(dto.OrgCode == "001", (t, o) => t.HandlerOrgId == dto.OrgCode)
|
|
|
- .WhereIF(dto.OrgCode != "001", (t, o) => t.HandlerOrgId.StartsWith(dto.OrgCode))
|
|
|
+ .WhereIF(dto.OrgCode != "001" && dto.OrgCode != dto.ParentOrgCode, (t, o) => t.HandlerOrgId.StartsWith(dto.OrgCode))
|
|
|
+ .WhereIF(dto.OrgCode != "001" && dto.OrgCode == dto.ParentOrgCode, (t, o) => t.HandlerOrgId == dto.OrgCode)
|
|
|
.GroupBy((t, o) => o.Id)
|
|
|
.Select((t, o) => new SelectOrderId { Id = o.Id })
|
|
|
.MergeTable();
|
|
@@ -578,7 +586,8 @@ order by ""su"".""OrgCode""";
|
|
|
&& t.Status < EWorkflowStepStatus.Handled && DateTime.Now > t.StepExpiredTime && t.CountersignPosition > ECountersignPosition.None)
|
|
|
.WhereIF(dto.IsProvince.HasValue && dto.IsProvince == true, (t, o) => o.Source == ESource.ProvinceStraight)
|
|
|
.WhereIF(dto.OrgCode == "001", (t, o) => t.HandlerOrgId == dto.OrgCode)
|
|
|
- .WhereIF(dto.OrgCode != "001", (t, o) => t.HandlerOrgId.StartsWith(dto.OrgCode))
|
|
|
+ .WhereIF(dto.OrgCode != "001" && dto.OrgCode != dto.ParentOrgCode, (t, o) => t.HandlerOrgId.StartsWith(dto.OrgCode))
|
|
|
+ .WhereIF(dto.OrgCode != "001" && dto.OrgCode == dto.ParentOrgCode, (t, o) => t.HandlerOrgId == dto.OrgCode)
|
|
|
.GroupBy((t, o) => o.Id)
|
|
|
.Select((t, o) => new SelectOrderId { Id = o.Id })
|
|
|
.MergeTable();
|
|
@@ -587,10 +596,11 @@ order by ""su"".""OrgCode""";
|
|
|
var cqybquery = _workflowTraceRepository.Queryable()
|
|
|
.LeftJoin<Order>((t, o) => t.ExternalId == o.Id)
|
|
|
.Where((t, o) => t.ModuleCode == WorkflowModuleConsts.OrderHandle && o.CreationTime >= dto.StartTime && o.CreationTime <= dto.EndTime
|
|
|
- && t.Status >= EWorkflowStepStatus.Handled && t.HandleTime > t.StepExpiredTime && t.CountersignPosition >= ECountersignPosition.None && t.TraceState != EWorkflowTraceState.StepRemoveByPrevious)
|
|
|
+ && t.Status >= EWorkflowStepStatus.Handled && t.HandleTime > t.StepExpiredTime && t.CountersignPosition >= ECountersignPosition.None)
|
|
|
.WhereIF(dto.IsProvince.HasValue && dto.IsProvince == true, (t, o) => o.Source == ESource.ProvinceStraight)
|
|
|
.WhereIF(dto.OrgCode == "001", (t, o) => t.HandlerOrgId == dto.OrgCode)
|
|
|
- .WhereIF(dto.OrgCode != "001", (t, o) => t.HandlerOrgId.StartsWith(dto.OrgCode))
|
|
|
+ .WhereIF(dto.OrgCode != "001" && dto.OrgCode != dto.ParentOrgCode, (t, o) => t.HandlerOrgId.StartsWith(dto.OrgCode))
|
|
|
+ .WhereIF(dto.OrgCode != "001" && dto.OrgCode == dto.ParentOrgCode, (t, o) => t.HandlerOrgId == dto.OrgCode)
|
|
|
.GroupBy((t, o) => o.Id)
|
|
|
.Select((t, o) => new SelectOrderId { Id = o.Id })
|
|
|
.MergeTable();
|
|
@@ -600,7 +610,8 @@ order by ""su"".""OrgCode""";
|
|
|
&& t.Status < EWorkflowStepStatus.Handled && DateTime.Now > t.StepExpiredTime && t.CountersignPosition >= ECountersignPosition.None)
|
|
|
.WhereIF(dto.IsProvince.HasValue && dto.IsProvince == true, (t, o) => o.Source == ESource.ProvinceStraight)
|
|
|
.WhereIF(dto.OrgCode == "001", (t, o) => t.HandlerOrgId == dto.OrgCode)
|
|
|
- .WhereIF(dto.OrgCode != "001", (t, o) => t.HandlerOrgId.StartsWith(dto.OrgCode))
|
|
|
+ .WhereIF(dto.OrgCode != "001" && dto.OrgCode != dto.ParentOrgCode, (t, o) => t.HandlerOrgId.StartsWith(dto.OrgCode))
|
|
|
+ .WhereIF(dto.OrgCode != "001" && dto.OrgCode == dto.ParentOrgCode, (t, o) => t.HandlerOrgId == dto.OrgCode)
|
|
|
.GroupBy((t, o) => o.Id)
|
|
|
.Select((t, o) => new SelectOrderId { Id = o.Id })
|
|
|
.MergeTable();
|
|
@@ -610,10 +621,11 @@ order by ""su"".""OrgCode""";
|
|
|
query = _workflowTraceRepository.Queryable()
|
|
|
.LeftJoin<Order>((t, o) => t.ExternalId == o.Id)
|
|
|
.Where((t, o) => t.ModuleCode == WorkflowModuleConsts.OrderHandle && o.CreationTime >= dto.StartTime && o.CreationTime <= dto.EndTime
|
|
|
- && t.Status >= EWorkflowStepStatus.Handled && t.CountersignPosition > ECountersignPosition.None && t.TraceState != EWorkflowTraceState.StepRemoveByPrevious)
|
|
|
+ && t.Status >= EWorkflowStepStatus.Handled && t.CountersignPosition > ECountersignPosition.None)
|
|
|
.WhereIF(dto.IsProvince.HasValue && dto.IsProvince == true, (t, o) => o.Source == ESource.ProvinceStraight)
|
|
|
.WhereIF(dto.OrgCode == "001", (t, o) => t.HandlerOrgId == dto.OrgCode)
|
|
|
- .WhereIF(dto.OrgCode != "001", (t, o) => t.HandlerOrgId.StartsWith(dto.OrgCode))
|
|
|
+ .WhereIF(dto.OrgCode != "001" && dto.OrgCode != dto.ParentOrgCode, (t, o) => t.HandlerOrgId.StartsWith(dto.OrgCode))
|
|
|
+ .WhereIF(dto.OrgCode != "001" && dto.OrgCode == dto.ParentOrgCode, (t, o) => t.HandlerOrgId == dto.OrgCode)
|
|
|
.GroupBy((t, o) => o.Id)
|
|
|
.Select((t, o) => new SelectOrderId { Id = o.Id })
|
|
|
.MergeTable();
|
|
@@ -625,7 +637,8 @@ order by ""su"".""OrgCode""";
|
|
|
&& t.Status < EWorkflowStepStatus.Handled && t.CountersignPosition > ECountersignPosition.None)
|
|
|
.WhereIF(dto.IsProvince.HasValue && dto.IsProvince == true, (t, o) => o.Source == ESource.ProvinceStraight)
|
|
|
.WhereIF(dto.OrgCode == "001", (t, o) => t.HandlerOrgId == dto.OrgCode)
|
|
|
- .WhereIF(dto.OrgCode != "001", (t, o) => t.HandlerOrgId.StartsWith(dto.OrgCode))
|
|
|
+ .WhereIF(dto.OrgCode != "001" && dto.OrgCode != dto.ParentOrgCode, (t, o) => t.HandlerOrgId.StartsWith(dto.OrgCode))
|
|
|
+ .WhereIF(dto.OrgCode != "001" && dto.OrgCode == dto.ParentOrgCode, (t, o) => t.HandlerOrgId == dto.OrgCode)
|
|
|
.GroupBy((t, o) => o.Id)
|
|
|
.Select((t, o) => new SelectOrderId { Id = o.Id })
|
|
|
.MergeTable();
|
|
@@ -635,7 +648,8 @@ order by ""su"".""OrgCode""";
|
|
|
.Where(o => o.CreationTime >= dto.StartTime && o.CreationTime <= dto.EndTime && o.Status < EOrderStatus.WaitForAccept)
|
|
|
.WhereIF(dto.IsProvince.HasValue && dto.IsProvince == true, o => o.Source == ESource.ProvinceStraight)
|
|
|
.WhereIF(dto.OrgCode == "001", o => o.ActualHandleOrgCode == dto.OrgCode)
|
|
|
- .WhereIF(dto.OrgCode != "001", o => o.ActualHandleOrgCode.StartsWith(dto.OrgCode))
|
|
|
+ .WhereIF(dto.OrgCode != "001" && dto.OrgCode != dto.ParentOrgCode, o => o.ActualHandleOrgCode.StartsWith(dto.OrgCode))
|
|
|
+ .WhereIF(dto.OrgCode != "001" && dto.OrgCode == dto.ParentOrgCode, o => o.ActualHandleOrgCode == dto.OrgCode)
|
|
|
.Select(o => new SelectOrderId { Id = o.Id })
|
|
|
.MergeTable();
|
|
|
break;
|
|
@@ -644,7 +658,8 @@ order by ""su"".""OrgCode""";
|
|
|
.Where(o => o.CreationTime >= dto.StartTime && o.CreationTime <= dto.EndTime && o.Status >= EOrderStatus.Filed)
|
|
|
.WhereIF(dto.IsProvince.HasValue && dto.IsProvince == true, o => o.Source == ESource.ProvinceStraight)
|
|
|
.WhereIF(dto.OrgCode == "001", o => o.ActualHandleOrgCode == dto.OrgCode)
|
|
|
- .WhereIF(dto.OrgCode != "001", o => o.ActualHandleOrgCode.StartsWith(dto.OrgCode))
|
|
|
+ .WhereIF(dto.OrgCode != "001" && dto.OrgCode != dto.ParentOrgCode, o => o.ActualHandleOrgCode.StartsWith(dto.OrgCode))
|
|
|
+ .WhereIF(dto.OrgCode != "001" && dto.OrgCode == dto.ParentOrgCode, o => o.ActualHandleOrgCode == dto.OrgCode)
|
|
|
.Select(o => new SelectOrderId { Id = o.Id })
|
|
|
.MergeTable();
|
|
|
break;
|
|
@@ -653,7 +668,8 @@ order by ""su"".""OrgCode""";
|
|
|
.Where(o => o.CreationTime >= dto.StartTime && o.CreationTime <= dto.EndTime && o.Status == EOrderStatus.Filed)
|
|
|
.WhereIF(dto.IsProvince.HasValue && dto.IsProvince == true, o => o.Source == ESource.ProvinceStraight)
|
|
|
.WhereIF(dto.OrgCode == "001", o => o.ActualHandleOrgCode == dto.OrgCode)
|
|
|
- .WhereIF(dto.OrgCode != "001", o => o.ActualHandleOrgCode.StartsWith(dto.OrgCode))
|
|
|
+ .WhereIF(dto.OrgCode != "001" && dto.OrgCode != dto.ParentOrgCode, o => o.ActualHandleOrgCode.StartsWith(dto.OrgCode))
|
|
|
+ .WhereIF(dto.OrgCode != "001" && dto.OrgCode == dto.ParentOrgCode, o => o.ActualHandleOrgCode == dto.OrgCode)
|
|
|
.Select(o => new SelectOrderId { Id = o.Id })
|
|
|
.MergeTable();
|
|
|
break;
|
|
@@ -662,7 +678,8 @@ order by ""su"".""OrgCode""";
|
|
|
.Where(o => o.CreationTime >= dto.StartTime && o.CreationTime <= dto.EndTime && o.Status >= EOrderStatus.Published && o.IsPublicity == true)
|
|
|
.WhereIF(dto.IsProvince.HasValue && dto.IsProvince == true, o => o.Source == ESource.ProvinceStraight)
|
|
|
.WhereIF(dto.OrgCode == "001", o => o.ActualHandleOrgCode == dto.OrgCode)
|
|
|
- .WhereIF(dto.OrgCode != "001", o => o.ActualHandleOrgCode.StartsWith(dto.OrgCode))
|
|
|
+ .WhereIF(dto.OrgCode != "001" && dto.OrgCode != dto.ParentOrgCode, o => o.ActualHandleOrgCode.StartsWith(dto.OrgCode))
|
|
|
+ .WhereIF(dto.OrgCode != "001" && dto.OrgCode == dto.ParentOrgCode, o => o.ActualHandleOrgCode == dto.OrgCode)
|
|
|
.Select(o => new SelectOrderId { Id = o.Id })
|
|
|
.MergeTable();
|
|
|
break;
|
|
@@ -671,50 +688,55 @@ order by ""su"".""OrgCode""";
|
|
|
.Where(o => o.CreationTime >= dto.StartTime && o.CreationTime <= dto.EndTime && o.Status >= EOrderStatus.Published && o.IsPublicity == false)
|
|
|
.WhereIF(dto.IsProvince.HasValue && dto.IsProvince == true, o => o.Source == ESource.ProvinceStraight)
|
|
|
.WhereIF(dto.OrgCode == "001", o => o.ActualHandleOrgCode == dto.OrgCode)
|
|
|
- .WhereIF(dto.OrgCode != "001", o => o.ActualHandleOrgCode.StartsWith(dto.OrgCode))
|
|
|
+ .WhereIF(dto.OrgCode != "001" && dto.OrgCode != dto.ParentOrgCode, o => o.ActualHandleOrgCode.StartsWith(dto.OrgCode))
|
|
|
+ .WhereIF(dto.OrgCode != "001" && dto.OrgCode == dto.ParentOrgCode, o => o.ActualHandleOrgCode == dto.OrgCode)
|
|
|
.Select(o => new SelectOrderId { Id = o.Id })
|
|
|
.MergeTable();
|
|
|
break;
|
|
|
case EStatisticsType.ScreenCount://甄别总量
|
|
|
query = _orderScreenRepository.Queryable()
|
|
|
- .Includes(x => x.Order)
|
|
|
- .Where(x => x.Order.CreationTime >= dto.StartTime && x.Order.CreationTime <= dto.EndTime && x.Order.Id != null)
|
|
|
- .WhereIF(dto.IsProvince.HasValue && dto.IsProvince == true, x => x.Order.Source == ESource.ProvinceStraight)
|
|
|
- .WhereIF(dto.OrgCode == "001", x => x.CreatorOrgId == dto.OrgCode)
|
|
|
- .WhereIF(dto.OrgCode != "001", x => x.CreatorOrgId.StartsWith(dto.OrgCode))
|
|
|
- .Select(x => new SelectOrderId { Id = x.OrderId})
|
|
|
+ .LeftJoin<Order>((d, o) => d.OrderId == o.Id)
|
|
|
+ .Where((d, o) => o.CreationTime >= dto.StartTime && o.CreationTime <= dto.EndTime && o.Id != null)
|
|
|
+ .WhereIF(dto.IsProvince.HasValue && dto.IsProvince == true, (d, o) => o.Source == ESource.ProvinceStraight)
|
|
|
+ .WhereIF(dto.OrgCode == "001", (d, o) => d.CreatorOrgId == dto.OrgCode)
|
|
|
+ .WhereIF(dto.OrgCode != "001" && dto.OrgCode != dto.ParentOrgCode, (d, o) => d.CreatorOrgId.StartsWith(dto.OrgCode))
|
|
|
+ .WhereIF(dto.OrgCode != "001" && dto.OrgCode == dto.ParentOrgCode, (d, o) => d.CreatorOrgId == dto.OrgCode)
|
|
|
+ .Select((d, o) => new SelectOrderId { Id = o.Id })
|
|
|
.MergeTable();
|
|
|
break;
|
|
|
case EStatisticsType.ScreenApproval://带甄别
|
|
|
query = _orderScreenRepository.Queryable()
|
|
|
- .Includes(x => x.Order)
|
|
|
- .Where(x => x.Order.CreationTime >= dto.StartTime && x.Order.CreationTime <= dto.EndTime && x.Order.Id != null
|
|
|
- && (x.Status == EScreenStatus.Approval || x.Status == EScreenStatus.Apply))
|
|
|
- .WhereIF(dto.IsProvince.HasValue && dto.IsProvince == true, x => x.Order.Source == ESource.ProvinceStraight)
|
|
|
- .WhereIF(dto.OrgCode == "001", x => x.CreatorOrgId == dto.OrgCode)
|
|
|
- .WhereIF(dto.OrgCode != "001", x => x.CreatorOrgId.StartsWith(dto.OrgCode))
|
|
|
- .Select(x => new SelectOrderId { Id = x.OrderId})
|
|
|
+ .LeftJoin<Order>((d, o) => d.OrderId == o.Id)
|
|
|
+ .Where((d, o) => o.CreationTime >= dto.StartTime && o.CreationTime <= dto.EndTime && o.Id != null
|
|
|
+ && (d.Status == EScreenStatus.Approval || d.Status == EScreenStatus.Apply))
|
|
|
+ .WhereIF(dto.IsProvince.HasValue && dto.IsProvince == true, (d, o) => o.Source == ESource.ProvinceStraight)
|
|
|
+ .WhereIF(dto.OrgCode == "001", (d, o) => d.CreatorOrgId == dto.OrgCode)
|
|
|
+ .WhereIF(dto.OrgCode != "001" && dto.OrgCode != dto.ParentOrgCode, (d, o) => d.CreatorOrgId.StartsWith(dto.OrgCode))
|
|
|
+ .WhereIF(dto.OrgCode != "001" && dto.OrgCode == dto.ParentOrgCode, (d, o) => d.CreatorOrgId == dto.OrgCode)
|
|
|
+ .Select((d, o) => new SelectOrderId { Id = o.Id })
|
|
|
.MergeTable();
|
|
|
break;
|
|
|
case EStatisticsType.ScreenPass://甄别通过
|
|
|
query = _orderScreenRepository.Queryable()
|
|
|
- .Includes(x => x.Order)
|
|
|
- .Where(x => x.Order.CreationTime >= dto.StartTime && x.Order.CreationTime <= dto.EndTime && x.Order.Id != null && x.Status == EScreenStatus.End)
|
|
|
- .WhereIF(dto.IsProvince.HasValue && dto.IsProvince == true, x => x.Order.Source == ESource.ProvinceStraight)
|
|
|
- .WhereIF(dto.OrgCode == "001", x => x.CreatorOrgId == dto.OrgCode)
|
|
|
- .WhereIF(dto.OrgCode != "001", x => x.CreatorOrgId.StartsWith(dto.OrgCode))
|
|
|
- .Select(x => new SelectOrderId { Id = x.OrderId })
|
|
|
+ .LeftJoin<Order>((d, o) => d.OrderId == o.Id)
|
|
|
+ .Where((d, o) => o.CreationTime >= dto.StartTime && o.CreationTime <= dto.EndTime && o.Id != null && d.Status == EScreenStatus.End)
|
|
|
+ .WhereIF(dto.IsProvince.HasValue && dto.IsProvince == true, (d, o) => o.Source == ESource.ProvinceStraight)
|
|
|
+ .WhereIF(dto.OrgCode == "001", (d, o) => d.CreatorOrgId == dto.OrgCode)
|
|
|
+ .WhereIF(dto.OrgCode != "001" && dto.OrgCode != dto.ParentOrgCode, (d, o) => d.CreatorOrgId.StartsWith(dto.OrgCode))
|
|
|
+ .WhereIF(dto.OrgCode != "001" && dto.OrgCode == dto.ParentOrgCode, (d, o) => d.CreatorOrgId == dto.OrgCode)
|
|
|
+ .Select((d, o) => new SelectOrderId { Id = o.Id })
|
|
|
.MergeTable();
|
|
|
break;
|
|
|
case EStatisticsType.ScreenNotPass://甄别不通过
|
|
|
query = _orderScreenRepository.Queryable()
|
|
|
- .Includes(x => x.Order)
|
|
|
- .Where(x => x.Order.CreationTime >= dto.StartTime && x.Order.CreationTime <= dto.EndTime && x.Order.Id != null && x.Status == EScreenStatus.Refuse)
|
|
|
- .WhereIF(dto.IsProvince.HasValue && dto.IsProvince == true, x => x.Order.Source == ESource.ProvinceStraight)
|
|
|
- .WhereIF(dto.OrgCode == "001", x => x.CreatorOrgId == dto.OrgCode)
|
|
|
- .WhereIF(dto.OrgCode != "001", x => x.CreatorOrgId.StartsWith(dto.OrgCode))
|
|
|
- .Select(x => new SelectOrderId { Id = x.OrderId})
|
|
|
- .MergeTable();
|
|
|
+ .LeftJoin<Order>((d, o) => d.OrderId == o.Id)
|
|
|
+ .Where((d, o) => o.CreationTime >= dto.StartTime && o.CreationTime <= dto.EndTime && o.Id != null && d.Status == EScreenStatus.Refuse)
|
|
|
+ .WhereIF(dto.IsProvince.HasValue && dto.IsProvince == true, (d, o) => o.Source == ESource.ProvinceStraight)
|
|
|
+ .WhereIF(dto.OrgCode == "001", (d, o) => d.CreatorOrgId == dto.OrgCode)
|
|
|
+ .WhereIF(dto.OrgCode != "001" && dto.OrgCode != dto.ParentOrgCode, (d, o) => d.CreatorOrgId.StartsWith(dto.OrgCode))
|
|
|
+ .WhereIF(dto.OrgCode != "001" && dto.OrgCode == dto.ParentOrgCode, (d, o) => d.CreatorOrgId == dto.OrgCode)
|
|
|
+ .Select((d, o) => new SelectOrderId { Id = o.Id })
|
|
|
+ .MergeTable();
|
|
|
break;
|
|
|
default:
|
|
|
break;
|
|
@@ -1782,5 +1804,36 @@ order by ""su"".""OrgCode""";
|
|
|
.OrderByDescending(d => d.CreationTime)
|
|
|
.MergeTable();
|
|
|
}
|
|
|
+
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 满意度明细
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="dto"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ public ISugarQueryable<OrderVisitDetail> OrgVisitDetailList(OrgVisitDetailListReq dto)
|
|
|
+ {
|
|
|
+ var IsCenter = _sessionContext.OrgIsCenter;
|
|
|
+
|
|
|
+ return _orderVisitDetailRepository.Queryable()
|
|
|
+ .Includes(x => x.OrderVisit, x => x.Order, x => x.OrderScreens)
|
|
|
+ .Includes(x => x.OrderVisit, x => x.Employee)
|
|
|
+ .Where(x => x.OrderVisit.VisitState == EVisitState.Visited && x.VisitTarget == EVisitTarget.Org)
|
|
|
+ .WhereIF(IsCenter == false, x => x.VisitOrgCode.StartsWith(_sessionContext.RequiredOrgId))
|
|
|
+ .WhereIF(dto.OrgVisitStatisticsType.HasValue, x => x.OrderVisit.Order.ProcessType == (EProcessType)((int)dto.OrgVisitStatisticsType))
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(dto.OrgProcessingResults), x => SqlFunc.JsonField(x.OrgProcessingResults, "Key") == dto.OrgProcessingResults)
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(dto.VisitUser), x => x.OrderVisit.Employee.Name.Contains(dto.VisitUser))
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(dto.No), x => x.OrderVisit.Order.No == dto.No)
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(dto.Title), x => x.OrderVisit.Order.Title.Contains(dto.Title))
|
|
|
+ .WhereIF(dto.OrgCodes.Any(), x => dto.OrgCodes.Contains(x.VisitOrgCode))
|
|
|
+ .WhereIF(dto.HotspotIds.Any(), x => dto.HotspotIds.Contains(x.OrderVisit.Order.HotspotId))
|
|
|
+ .WhereIF(dto.Channels.Any(), x => dto.Channels.Contains(x.OrderVisit.Order.SourceChannelCode))
|
|
|
+ .WhereIF(dto.CreationTimeStart.HasValue, x => x.OrderVisit.Order.CreationTime >= dto.CreationTimeStart) //受理时间开始
|
|
|
+ .WhereIF(dto.CreationTimeEnd.HasValue, x => x.OrderVisit.Order.CreationTime <= dto.CreationTimeEnd) //受理时间结束
|
|
|
+ .WhereIF(dto.ActualHandleTimeStart.HasValue, x => x.OrderVisit.Order.ActualHandleTime >= dto.ActualHandleTimeStart) //办结时间开始
|
|
|
+ .WhereIF(dto.ActualHandleTimeEnd.HasValue, x => x.OrderVisit.Order.ActualHandleTime <= dto.ActualHandleTimeEnd)
|
|
|
+ .OrderBy(x => x.OrderVisit.VisitTime); //办结时间结束
|
|
|
+
|
|
|
+ }
|
|
|
}
|
|
|
}
|