|
@@ -8,23 +8,15 @@ using Hotline.Settings;
|
|
|
using Hotline.Settings.Hotspots;
|
|
|
using Hotline.Settings.TimeLimits;
|
|
|
using Hotline.Share.Dtos.Order;
|
|
|
-using Hotline.Share.Dtos;
|
|
|
using Hotline.Share.Enums.FlowEngine;
|
|
|
using Hotline.Share.Enums.Order;
|
|
|
using Hotline.Share.Requests;
|
|
|
using MapsterMapper;
|
|
|
-using Microsoft.AspNetCore.Http;
|
|
|
using SqlSugar;
|
|
|
-using System;
|
|
|
-using System.Collections.Generic;
|
|
|
-using System.Linq;
|
|
|
-using System.Text;
|
|
|
-using System.Threading.Tasks;
|
|
|
using XF.Domain.Authentications;
|
|
|
using XF.Domain.Dependency;
|
|
|
-using XF.Domain.Repository;
|
|
|
-using Microsoft.AspNetCore.Mvc;
|
|
|
using XF.Domain.Exceptions;
|
|
|
+using XF.Domain.Repository;
|
|
|
|
|
|
namespace Hotline.Application.StatisticalReport
|
|
|
{
|
|
@@ -37,7 +29,6 @@ namespace Hotline.Application.StatisticalReport
|
|
|
private readonly IRepository<OrderDelay> _orderDelayRepository;
|
|
|
private readonly IMapper _mapper;
|
|
|
private readonly IRepository<WorkflowCountersign> _workflowCountersignRepository;
|
|
|
- //private readonly IRepository<WorkflowStepHandler> _workflowStepHandleRepository;
|
|
|
private readonly IRepository<OrderSpecial> _orderSpecialRepository;
|
|
|
private readonly IRepository<OrderVisit> _orderVisitRepository;
|
|
|
private readonly IRepository<TrCallRecord> _trCallRecordRepository;
|
|
@@ -51,6 +42,7 @@ namespace Hotline.Application.StatisticalReport
|
|
|
private readonly IRepository<OrderScreen> _orderScreenRepository;
|
|
|
private readonly IOrderSecondaryHandlingApplication _orderSecondaryHandlingApplication;
|
|
|
private readonly ITimeLimitDomainService _timeLimitDomainService;
|
|
|
+
|
|
|
|
|
|
public OrderReportApplication(
|
|
|
IOrderRepository orderRepository,
|
|
@@ -71,7 +63,6 @@ namespace Hotline.Application.StatisticalReport
|
|
|
IRepository<OrderSpecialDetail> orderSpecialDetailRepository,
|
|
|
IRepository<WorkflowTrace> workflowTraceRepository,
|
|
|
IRepository<OrderScreen> orderScreenRepository,
|
|
|
- //IRepository<WorkflowStepHandler> workflowStepHandleRepository,
|
|
|
IOrderSecondaryHandlingApplication orderSecondaryHandlingApplication,
|
|
|
ITimeLimitDomainService timeLimitDomainService
|
|
|
)
|
|
@@ -94,9 +85,683 @@ namespace Hotline.Application.StatisticalReport
|
|
|
_orderSpecialDetailRepository = orderSpecialDetailRepository;
|
|
|
_workflowTraceRepository = workflowTraceRepository;
|
|
|
_orderScreenRepository = orderScreenRepository;
|
|
|
- //_workflowStepHandleRepository = workflowStepHandleRepository;
|
|
|
_orderSecondaryHandlingApplication = orderSecondaryHandlingApplication;
|
|
|
_timeLimitDomainService = timeLimitDomainService;
|
|
|
+
|
|
|
+ }
|
|
|
+ /// <summary>
|
|
|
+ /// 部门办件统计表---新
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="dto"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ public async Task<List<DepartmentalProcessingStatisticsDataDto>> DepartmentalProcessingStatisticsNew(DepartmentalProcessingStatisticsRequest dto)
|
|
|
+ {
|
|
|
+ dto.EndTime = dto.EndTime.AddDays(1).AddSeconds(-1);
|
|
|
+ var IsCenter = _sessionContext.OrgIsCenter;
|
|
|
+
|
|
|
+ //信件总量:信件总量=已办件数+在办件数,工单需去重
|
|
|
+ //已办件数:该部门已办理完成的工单总数(含参与会签的工单),若工单被部门多次办理,只统计一次
|
|
|
+ //在办件数:该部门还未办理的工单数(若是一级部门,需包含中心向该部门发起回签的工单)。(特殊说明:部门或者中心发起了会签,会签中还未汇总,应算发起会签部门的在办里面)
|
|
|
+
|
|
|
+ string strSql = @"select
|
|
|
+""OrgCode""
|
|
|
+,""Name"" ""OrgName""
|
|
|
+,""OrgType""
|
|
|
+, ""YbOrderCountNum""
|
|
|
+, ""ZbOrderCountNum""
|
|
|
+,""Archived""
|
|
|
+, ""ToBeArchived""
|
|
|
+, ""WaitPublished""
|
|
|
+,""PublishedOpen""
|
|
|
+, ""PublishedNoOpen""
|
|
|
+,""YbOverdue""
|
|
|
+, ""ZbOverdue""
|
|
|
+, ""HqzbOverdue""
|
|
|
+, ""HqybOverdue""
|
|
|
+, ""DelayEnd""
|
|
|
+, ""DelayWait""
|
|
|
+, ""OrderDelayCount""
|
|
|
+, ""ScreenCount""
|
|
|
+, ""ScreenApproval""
|
|
|
+, ""ScreenPass""
|
|
|
+,""ScreenNotPass""
|
|
|
+,""SatisfactionCount""
|
|
|
+,""NotSatisfactionCount""
|
|
|
+, (""YbOrderCountNum""-""YbOverdue"" -""HqybOverdue"" ) ""CompleteOnTime""
|
|
|
+
|
|
|
+from (
|
|
|
+
|
|
|
+SELECT ""HandlerOrgId"" ""OrgCode""
|
|
|
+,SUM(""YbOrderCountNum"") ""YbOrderCountNum""
|
|
|
+,SUM(""ZbOrderCountNum"") ""ZbOrderCountNum""
|
|
|
+,SUM(""Archived"") ""Archived""
|
|
|
+,SUM(""ToBeArchived"") ""ToBeArchived""
|
|
|
+,SUM(""WaitPublished"") ""WaitPublished""
|
|
|
+,SUM(""PublishedOpen"") ""PublishedOpen""
|
|
|
+,SUM(""PublishedNoOpen"") ""PublishedNoOpen""
|
|
|
+,SUM(""YbOverdue"") ""YbOverdue""
|
|
|
+,SUM(""ZbOverdue"") ""ZbOverdue""
|
|
|
+,SUM(""HqzbOverdue"") ""HqzbOverdue""
|
|
|
+,SUM(""HqybOverdue"") ""HqybOverdue""
|
|
|
+,SUM(""DelayEnd"") ""DelayEnd""
|
|
|
+,SUM(""DelayWait"") ""DelayWait""
|
|
|
+,SUM(""OrderDelayCount"") ""OrderDelayCount""
|
|
|
+,SUM(""ScreenCount"") ""ScreenCount""
|
|
|
+,SUM(""ScreenApproval"") ""ScreenApproval""
|
|
|
+,SUM(""ScreenPass"") ""ScreenPass""
|
|
|
+,SUM(""ScreenNotPass"") ""ScreenNotPass""
|
|
|
+,SUM(""SatisfactionCount"") ""SatisfactionCount""
|
|
|
+,SUM(""NotSatisfactionCount"") ""NotSatisfactionCount""
|
|
|
+FROM (
|
|
|
+
|
|
|
+ /*查询已办*/
|
|
|
+ select ""HandlerOrgId"",SUM(( CASE WHEN ( ""HandlerOrgId"" IS NOT NULL ) THEN 1 ELSE 0 END )) AS ""YbOrderCountNum"",0 ""ZbOrderCountNum"",0 ""YbOverdue"",0 ""ZbOverdue"",0 ""HqybOverdue"",0 ""HqzbOverdue"",0 ""DelayEnd"",0 ""DelayWait"",0""Archived"" ,0 ""ToBeArchived"",0 ""WaitPublished"",0 ""PublishedOpen"",0 ""PublishedNoOpen"" ,0 ""OrderDelayCount"",0 ""ScreenCount"",0 ""ScreenApproval"", 0 ""ScreenPass"" , 0 ""ScreenNotPass"",0 ""SatisfactionCount"", 0 ""NotSatisfactionCount"" from(
|
|
|
+ select ""o"".""Id"",SUBSTRING(""t"".""HandlerOrgId"",1,{3}) ""HandlerOrgId"" from ""workflow_trace"" ""t""
|
|
|
+ left join ""order"" ""o"" on ""o"".""Id""=""t"".""ExternalId""
|
|
|
+ where ""o"".""CreationTime"">='{0}' and ""o"".""CreationTime""<='{1}' and ""t"".""ModuleCode""='OrderHandle' and ""t"".""TraceState"" !=10 and ""t"".""Status"">=2 {2} --and ""t"".""CountersignPosition""<=1
|
|
|
+ GROUP BY SUBSTRING(""t"".""HandlerOrgId"",1,{3}),""o"".""Id""
|
|
|
+ )""s"" where ""HandlerOrgId"" IS not NULL {4}
|
|
|
+ GROUP BY ""HandlerOrgId""
|
|
|
+ union ALL
|
|
|
+ /*查询待办*/
|
|
|
+ select ""HandlerOrgId"",0 ""YbOrderCountNum"",SUM(( CASE WHEN ( ""HandlerOrgId"" IS NOT NULL ) THEN 1 ELSE 0 END )) AS ""ZbOrderCountNum"",0 ""YbOverdue"",0 ""ZbOverdue"",0 ""HqybOverdue"",0 ""HqzbOverdue"",0 ""DelayEnd"",0 ""DelayWait"",0""Archived"",0 ""ToBeArchived"",0 ""WaitPublished"",0 ""PublishedOpen"",0 ""PublishedNoOpen"",0 ""OrderDelayCount"",0 ""ScreenCount"",0 ""ScreenApproval"", 0 ""ScreenPass"" , 0 ""ScreenNotPass"" ,0 ""SatisfactionCount"", 0 ""NotSatisfactionCount"" from(
|
|
|
+ select ""o"".""Id"",SUBSTRING(""t"".""HandlerOrgId"",1,{3}) ""HandlerOrgId"" from ""workflow_trace"" ""t""
|
|
|
+ left join ""order"" ""o"" on ""o"".""Id""=""t"".""ExternalId""
|
|
|
+ where ""o"".""CreationTime"">='{0}' and ""o"".""CreationTime""<='{1}' and ""t"".""ModuleCode""='OrderHandle' and ""t"".""Status""<2 {2} --and ""t"".""CountersignPosition""<=1
|
|
|
+ GROUP BY SUBSTRING(""t"".""HandlerOrgId"",1,{3}),""o"".""Id""
|
|
|
+ )""s"" where ""HandlerOrgId"" IS not NULL {4}
|
|
|
+ GROUP BY ""HandlerOrgId""
|
|
|
+ union ALL
|
|
|
+ /*查询已办超期*/
|
|
|
+ select ""HandlerOrgId"",0 ""YbOrderCountNum"",0 ""ZbOrderCountNum"",SUM(( CASE WHEN ( ""HandlerOrgId"" IS NOT NULL ) THEN 1 ELSE 0 END )) AS ""YbOverdue"" ,0 ""ZbOverdue"",0 ""HqybOverdue"",0 ""HqzbOverdue"",0 ""DelayEnd"",0 ""DelayWait"",0""Archived"",0 ""ToBeArchived"",0 ""WaitPublished"",0 ""PublishedOpen"",0 ""PublishedNoOpen"",0 ""OrderDelayCount"",0 ""ScreenCount"",0 ""ScreenApproval"", 0 ""ScreenPass"" , 0 ""ScreenNotPass"" ,0 ""SatisfactionCount"", 0 ""NotSatisfactionCount"" from(
|
|
|
+ select ""o"".""Id"",SUBSTRING(""t"".""HandlerOrgId"",1,{3}) ""HandlerOrgId"" from ""workflow_trace"" ""t""
|
|
|
+ left join ""order"" ""o"" on ""o"".""Id""=""t"".""ExternalId""
|
|
|
+ where ""o"".""CreationTime"">='{0}' and ""o"".""CreationTime""<='{1}' and ""t"".""ModuleCode""='OrderHandle' and ""t"".""TraceState"" !=10 and ""t"".""Status"">=2 and ""HandleTime"">""StepExpiredTime"" and ""t"".""CountersignPosition""=0 {2}
|
|
|
+ GROUP BY SUBSTRING(""t"".""HandlerOrgId"",1,{3}),""o"".""Id""
|
|
|
+ )""s"" where ""HandlerOrgId"" IS not NULL {4}
|
|
|
+ GROUP BY ""HandlerOrgId""
|
|
|
+ union ALL
|
|
|
+ /*查询待办超期*/
|
|
|
+ select ""HandlerOrgId"",0 ""YbOrderCountNum"",0 ""ZbOrderCountNum"",0 ""YbOverdue"",SUM(( CASE WHEN ( ""HandlerOrgId"" IS NOT NULL ) THEN 1 ELSE 0 END )) AS ""ZbOverdue"",0 ""HqybOverdue"",0 ""HqzbOverdue"",0 ""DelayEnd"",0 ""DelayWait"" ,0""Archived"",0 ""ToBeArchived"",0 ""WaitPublished"",0 ""PublishedOpen"",0 ""PublishedNoOpen"",0 ""OrderDelayCount"",0 ""ScreenCount"",0 ""ScreenApproval"", 0 ""ScreenPass"" , 0 ""ScreenNotPass"",0 ""SatisfactionCount"", 0 ""NotSatisfactionCount"" from(
|
|
|
+ select ""o"".""Id"",SUBSTRING(""t"".""HandlerOrgId"",1,{3}) ""HandlerOrgId"" from ""workflow_trace"" ""t""
|
|
|
+ left join ""order"" ""o"" on ""o"".""Id""=""t"".""ExternalId""
|
|
|
+ where ""o"".""CreationTime"">='{0}' and ""o"".""CreationTime""<='{1}' and ""t"".""ModuleCode""='OrderHandle' and ""t"".""Status""<2 and (SELECT NOW())>""StepExpiredTime"" and ""t"".""CountersignPosition""=0 {2}
|
|
|
+ GROUP BY SUBSTRING(""t"".""HandlerOrgId"",1,{3}),""o"".""Id""
|
|
|
+ )""s"" where ""HandlerOrgId"" IS not NULL {4}
|
|
|
+ GROUP BY ""HandlerOrgId""
|
|
|
+ union ALL
|
|
|
+ /*查询会签已办超期*/
|
|
|
+ select ""HandlerOrgId"",0 ""YbOrderCountNum"",0 ""ZbOrderCountNum"",0 ""YbOverdue"" ,0 ""ZbOverdue"",SUM(( CASE WHEN ( ""HandlerOrgId"" IS NOT NULL ) THEN 1 ELSE 0 END )) AS ""HqybOverdue"",0 ""HqzbOverdue"",0 ""DelayEnd"",0 ""DelayWait"",0""Archived"",0 ""ToBeArchived"",0 ""WaitPublished"",0 ""PublishedOpen"",0 ""PublishedNoOpen"",0 ""OrderDelayCount"",0 ""ScreenCount"",0 ""ScreenApproval"", 0 ""ScreenPass"" , 0 ""ScreenNotPass"" ,0 ""SatisfactionCount"", 0 ""NotSatisfactionCount"" from(
|
|
|
+ select ""o"".""Id"",SUBSTRING(""t"".""HandlerOrgId"",1,{3}) ""HandlerOrgId"" from ""workflow_trace"" ""t""
|
|
|
+ left join ""order"" ""o"" on ""o"".""Id""=""t"".""ExternalId""
|
|
|
+ where ""o"".""CreationTime"">='{0}' and ""o"".""CreationTime""<='{1}' and ""t"".""ModuleCode""='OrderHandle' and ""t"".""TraceState"" !=10 and ""t"".""Status"">=2 and ""HandleTime"">""StepExpiredTime"" and ""CountersignPosition"">0 {2}
|
|
|
+ GROUP BY SUBSTRING(""t"".""HandlerOrgId"",1,{3}),""o"".""Id""
|
|
|
+ )""s"" where ""HandlerOrgId"" IS not NULL {4}
|
|
|
+ GROUP BY ""HandlerOrgId""
|
|
|
+ union ALL
|
|
|
+ /*查询会签待办超期*/
|
|
|
+ select ""HandlerOrgId"",0 ""YbOrderCountNum"",0 ""ZbOrderCountNum"",0 ""YbOverdue"" ,0 ""ZbOverdue"",0 ""HqybOverdue"",SUM(( CASE WHEN ( ""HandlerOrgId"" IS NOT NULL ) THEN 1 ELSE 0 END )) AS ""HqzbOverdue"" ,0 ""DelayEnd"",0 ""DelayWait"" ,0""Archived"",0 ""ToBeArchived"",0 ""WaitPublished"",0 ""PublishedOpen"",0 ""PublishedNoOpen"",0 ""OrderDelayCount"",0 ""ScreenCount"",0 ""ScreenApproval"", 0 ""ScreenPass"" , 0 ""ScreenNotPass"",0 ""SatisfactionCount"", 0 ""NotSatisfactionCount"" from(
|
|
|
+ select ""o"".""Id"",SUBSTRING(""t"".""HandlerOrgId"",1,{3}) ""HandlerOrgId"" from ""workflow_trace"" ""t""
|
|
|
+ left join ""order"" ""o"" on ""o"".""Id""=""t"".""ExternalId""
|
|
|
+ where ""o"".""CreationTime"">='{0}' and ""o"".""CreationTime""<='{1}' and ""t"".""ModuleCode""='OrderHandle' and ""t"".""Status""<2 and (SELECT NOW())>""StepExpiredTime""
|
|
|
+ and ""CountersignPosition"">0 {2}
|
|
|
+ GROUP BY SUBSTRING(""t"".""HandlerOrgId"",1,{3}),""o"".""Id""
|
|
|
+ )""s"" where ""HandlerOrgId"" IS not NULL {4}
|
|
|
+ GROUP BY ""HandlerOrgId""
|
|
|
+ union ALL
|
|
|
+ /*查询会签已办*/
|
|
|
+ select ""HandlerOrgId"",0 ""YbOrderCountNum"",0 ""ZbOrderCountNum"",0 ""YbOverdue"" ,0 ""ZbOverdue"",0 ""HqybOverdue"",0 ""HqzbOverdue"",SUM(( CASE WHEN ( ""HandlerOrgId"" IS NOT NULL ) THEN 1 ELSE 0 END )) AS ""DelayEnd"",0 ""DelayWait"" ,0""Archived"",0 ""ToBeArchived"",0 ""WaitPublished"",0 ""PublishedOpen"",0 ""PublishedNoOpen"",0 ""OrderDelayCount"",0 ""ScreenCount"",0 ""ScreenApproval"", 0 ""ScreenPass"" , 0 ""ScreenNotPass"" ,0 ""SatisfactionCount"", 0 ""NotSatisfactionCount"" from(
|
|
|
+ select ""o"".""Id"",SUBSTRING(""t"".""HandlerOrgId"",1,{3}) ""HandlerOrgId"" from ""workflow_trace"" ""t""
|
|
|
+ left join ""order"" ""o"" on ""o"".""Id""=""t"".""ExternalId""
|
|
|
+ where ""o"".""CreationTime"">='{0}' and ""o"".""CreationTime""<='{1}' and ""t"".""ModuleCode""='OrderHandle' and ""t"".""TraceState"" !=10 and ""t"".""Status"">=2 and ""CountersignPosition"">0 {2}
|
|
|
+ GROUP BY SUBSTRING(""t"".""HandlerOrgId"",1,{3}),""o"".""Id""
|
|
|
+ )""s"" where ""HandlerOrgId"" IS not NULL {4}
|
|
|
+ GROUP BY ""HandlerOrgId""
|
|
|
+ union ALL
|
|
|
+ /*查询会签待办*/
|
|
|
+ select ""HandlerOrgId"",0 ""YbOrderCountNum"",0 ""ZbOrderCountNum"",0 ""YbOverdue"" ,0 ""ZbOverdue"",0 ""HqybOverdue"",0 ""HqzbOverdue"",0 ""DelayEnd"",SUM(( CASE WHEN ( ""HandlerOrgId"" IS NOT NULL ) THEN 1 ELSE 0 END )) AS ""DelayWait"" ,0""Archived"",0 ""ToBeArchived"",0 ""WaitPublished"",0 ""PublishedOpen"",0 ""PublishedNoOpen"",0 ""OrderDelayCount"",0 ""ScreenCount"",0 ""ScreenApproval"", 0 ""ScreenPass"" , 0 ""ScreenNotPass"",0 ""SatisfactionCount"", 0 ""NotSatisfactionCount"" from(
|
|
|
+ select ""o"".""Id"",SUBSTRING(""t"".""HandlerOrgId"",1,{3}) ""HandlerOrgId"" from ""workflow_trace"" ""t""
|
|
|
+ left join ""order"" ""o"" on ""o"".""Id""=""t"".""ExternalId""
|
|
|
+ where ""o"".""CreationTime"">='{0}' and ""o"".""CreationTime""<='{1}' and ""t"".""ModuleCode""='OrderHandle' and ""t"".""Status""<2 and ""CountersignPosition"">0 {2}
|
|
|
+ GROUP BY SUBSTRING(""t"".""HandlerOrgId"",1,{3}),""o"".""Id""
|
|
|
+ )""s"" where ""HandlerOrgId"" IS not NULL {4}
|
|
|
+ GROUP BY ""HandlerOrgId""
|
|
|
+ UNION ALL
|
|
|
+ /*已归档、 待发布、已发布公开、已发布不公开*/
|
|
|
+ select ""HandlerOrgId"",0 ""YbOrderCountNum"",0 ""ZbOrderCountNum"",0 ""YbOverdue"" ,0 ""ZbOverdue"",0 ""HqybOverdue"",0 ""HqzbOverdue"",0 ""DelayEnd"",0 ""DelayWait""
|
|
|
+ ,SUM(( CASE WHEN ( ""Status"">=300 ) THEN 1 ELSE 0 END )) AS ""Archived""
|
|
|
+ ,0 ""ToBeArchived""
|
|
|
+ ,SUM(( CASE WHEN ( ""Status""=300 ) THEN 1 ELSE 0 END )) AS ""WaitPublished""
|
|
|
+ ,SUM(( CASE WHEN ( ""Status"">=400 and ""IsPublicity""=TRUE ) THEN 1 ELSE 0 END )) AS ""PublishedOpen""
|
|
|
+ ,SUM(( CASE WHEN ( ""Status"">=400 and ""IsPublicity""=FALSE ) THEN 1 ELSE 0 END )) AS ""PublishedNoOpen""
|
|
|
+ ,0 ""OrderDelayCount"",0 ""ScreenCount"",0 ""ScreenApproval"", 0 ""ScreenPass"" , 0 ""ScreenNotPass"" ,0 ""SatisfactionCount"", 0 ""NotSatisfactionCount"" from(
|
|
|
+ select SUBSTRING(""o"".""ActualHandleOrgCode"",1,{3}) ""HandlerOrgId"", ""o"".""Status"", ""o"".""IsPublicity"" from ""order"" ""o""
|
|
|
+ where ""o"".""CreationTime"">='{0}' and ""o"".""CreationTime""<='{1}' and ""o"".""Status"">=300 {2}
|
|
|
+ )""s"" where ""HandlerOrgId"" IS not NULL {4}
|
|
|
+ GROUP BY ""HandlerOrgId""
|
|
|
+ union ALL
|
|
|
+ /*查询延期通过数量*/
|
|
|
+ select ""HandlerOrgId"",0 ""YbOrderCountNum"",0 ""ZbOrderCountNum"",0 ""YbOverdue"" ,0 ""ZbOverdue"",0 ""HqybOverdue"",0 ""HqzbOverdue"",0 ""DelayEnd"",0 ""DelayWait"" ,0""Archived"",0 ""ToBeArchived"",0 ""WaitPublished"",0 ""PublishedOpen"",0 ""PublishedNoOpen"",SUM(( CASE WHEN ( ""HandlerOrgId"" IS NOT NULL ) THEN 1 ELSE 0 END )) AS ""OrderDelayCount"",0 ""ScreenCount"",0 ""ScreenApproval"", 0 ""ScreenPass"" , 0 ""ScreenNotPass"" ,0 ""SatisfactionCount"", 0 ""NotSatisfactionCount"" from(
|
|
|
+ select SUBSTRING(""ApplyOrgCode"",1,{3}) ""HandlerOrgId"" from ""order_delay"" ""d""
|
|
|
+ left join ""order"" ""o"" on ""d"".""OrderId""=""o"".""Id""
|
|
|
+ where ""o"".""CreationTime"">='{0}' and ""o"".""CreationTime""<='{1}' and ""d"".""DelayState""=1 {2}
|
|
|
+ )""s"" where ""HandlerOrgId"" IS not NULL {4}
|
|
|
+ GROUP BY ""HandlerOrgId""
|
|
|
+ union all
|
|
|
+ /*查询甄别*/
|
|
|
+ select ""HandlerOrgId"",0 ""YbOrderCountNum"",0 ""ZbOrderCountNum"",0 ""YbOverdue"" ,0 ""ZbOverdue"",0 ""HqybOverdue"",0 ""HqzbOverdue"",0 ""DelayEnd"",0 ""DelayWait"" ,0""Archived"",0 ""ToBeArchived"",0 ""WaitPublished"",0 ""PublishedOpen"",0 ""PublishedNoOpen"",0 ""OrderDelayCount""
|
|
|
+ ,SUM(( CASE WHEN ( ""HandlerOrgId"" IS NOT NULL ) THEN 1 ELSE 0 END )) AS ""ScreenCount""
|
|
|
+ ,SUM(( CASE WHEN ( ""Status""<=1 ) THEN 1 ELSE 0 END )) AS ""ScreenApproval""
|
|
|
+ ,SUM(( CASE WHEN ( ""Status""=2 ) THEN 1 ELSE 0 END )) AS ""ScreenPass""
|
|
|
+ ,SUM(( CASE WHEN ( ""Status""=3 ) THEN 1 ELSE 0 END )) AS ""ScreenNotPass"",0 ""SatisfactionCount"", 0 ""NotSatisfactionCount""
|
|
|
+ from(
|
|
|
+ select SUBSTRING(""d"".""CreatorOrgId"",1,{3}) ""HandlerOrgId"",""d"".""Status"" from ""order_screen"" ""d""
|
|
|
+ left join ""order"" ""o"" on ""d"".""OrderId""=""o"".""Id""
|
|
|
+ where ""o"".""CreationTime"">='{0}' and ""o"".""CreationTime""<='{1}' {2}
|
|
|
+ )""s"" where ""HandlerOrgId"" IS not NULL {4}
|
|
|
+ GROUP BY ""HandlerOrgId""
|
|
|
+ union ALL
|
|
|
+ /*查询满意度*/
|
|
|
+ select ""HandlerOrgId"",0 ""YbOrderCountNum"",0 ""ZbOrderCountNum"",0 ""YbOverdue"" ,0 ""ZbOverdue"",0 ""HqybOverdue"",0 ""HqzbOverdue"",0 ""DelayEnd"",0 ""DelayWait"" ,0""Archived"",0 ""ToBeArchived"",0 ""WaitPublished"",0 ""PublishedOpen"",0 ""PublishedNoOpen"",0 ""OrderDelayCount"",0 ""ScreenCount"",0 ""ScreenApproval"", 0 ""ScreenPass"" , 0 ""ScreenNotPass""
|
|
|
+ ,SUM(( CASE WHEN ( (""OrgProcessingResults""->>'Key')::VARCHAR != '2' ) THEN 1 ELSE 0 END )) AS ""SatisfactionCount""
|
|
|
+ ,SUM(( CASE WHEN ( (""OrgProcessingResults""->>'Key')::VARCHAR = '2' ) THEN 1 ELSE 0 END )) AS ""NotSatisfactionCount""
|
|
|
+ FROM(
|
|
|
+ SELECT SUBSTRING(""VisitOrgCode"",1,{3}) ""HandlerOrgId"" ,""OrgProcessingResults"" from ""order_visit_detail"" ""d""
|
|
|
+ left join ""order_visit"" ""v"" on ""v"".""Id""=""d"".""VisitId""
|
|
|
+ left join ""order"" ""o"" on ""o"".""Id""=""v"".""OrderId""
|
|
|
+ where ""o"".""CreationTime"">='{0}' and ""o"".""CreationTime""<='{1}' and ""d"".""VisitTarget""=20 and ""v"".""VisitState""=30 and ""d"".""VisitOrgCode"" is not NULL {2}
|
|
|
+ )""s"" where ""HandlerOrgId"" IS not NULL {4}
|
|
|
+ GROUP BY ""HandlerOrgId""
|
|
|
+)""te""
|
|
|
+GROUP BY ""HandlerOrgId""
|
|
|
+) ""su""
|
|
|
+left join ""system_organize"" ""so"" on ""so"".""Id""=""su"".""OrgCode""
|
|
|
+where 1=1 {5}
|
|
|
+order by ""su"".""OrgCode""";
|
|
|
+ var orgLength = IsCenter == true ? 6 : _sessionContext.RequiredOrgId.Length + 3;
|
|
|
+ var isOrg = IsCenter == false ? " and \"HandlerOrgId\" like concat('" + _sessionContext.RequiredOrgId + "','%') " : " ";
|
|
|
+ var IsProvince = dto.IsProvince.HasValue && dto.IsProvince == true ? " and \"o\".\"Source\"=100 " : " ";
|
|
|
+ var orgName = string.IsNullOrEmpty(dto.OrgName) == false ? " and \"OrgName\" like concat('%'," + dto.OrgName + ",'%')" : "";
|
|
|
+
|
|
|
+ strSql = string.Format(strSql, dto.StartTime, dto.EndTime, IsProvince, orgLength, isOrg, orgName);
|
|
|
+
|
|
|
+ return _orderRepository.DepartmentalProcessingStatisticsNew(strSql);
|
|
|
+ }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 部门办件统计表--子级---新
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="dto"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ public async Task<List<DepartmentalProcessingStatisticsDataDto>> DepartmentalProcessingChildStatisticsNew(DepartmentalProcessingStatisticsRequest dto)
|
|
|
+ {
|
|
|
+ dto.EndTime = dto.EndTime.AddDays(1).AddSeconds(-1);
|
|
|
+
|
|
|
+ //信件总量:信件总量=已办件数+在办件数,工单需去重
|
|
|
+ //已办件数:该部门已办理完成的工单总数(含参与会签的工单),若工单被部门多次办理,只统计一次
|
|
|
+ //在办件数:该部门还未办理的工单数(若是一级部门,需包含中心向该部门发起回签的工单)。(特殊说明:部门或者中心发起了会签,会签中还未汇总,应算发起会签部门的在办里面)
|
|
|
+
|
|
|
+ string strSql = @"select
|
|
|
+""OrgCode""
|
|
|
+,""Name"" ""OrgName""
|
|
|
+,""OrgType""
|
|
|
+, ""YbOrderCountNum""
|
|
|
+, ""ZbOrderCountNum""
|
|
|
+,""Archived""
|
|
|
+, ""ToBeArchived""
|
|
|
+, ""WaitPublished""
|
|
|
+,""PublishedOpen""
|
|
|
+, ""PublishedNoOpen""
|
|
|
+,""YbOverdue""
|
|
|
+, ""ZbOverdue""
|
|
|
+, ""HqzbOverdue""
|
|
|
+, ""HqybOverdue""
|
|
|
+, ""DelayEnd""
|
|
|
+, ""DelayWait""
|
|
|
+, ""OrderDelayCount""
|
|
|
+, ""ScreenCount""
|
|
|
+, ""ScreenApproval""
|
|
|
+, ""ScreenPass""
|
|
|
+,""ScreenNotPass""
|
|
|
+,""SatisfactionCount""
|
|
|
+,""NotSatisfactionCount""
|
|
|
+, (""YbOrderCountNum""-""YbOverdue"" -""HqybOverdue"" ) ""CompleteOnTime""
|
|
|
+
|
|
|
+from (
|
|
|
+
|
|
|
+SELECT ""HandlerOrgId"" ""OrgCode""
|
|
|
+,SUM(""YbOrderCountNum"") ""YbOrderCountNum""
|
|
|
+,SUM(""ZbOrderCountNum"") ""ZbOrderCountNum""
|
|
|
+,SUM(""Archived"") ""Archived""
|
|
|
+,SUM(""ToBeArchived"") ""ToBeArchived""
|
|
|
+,SUM(""WaitPublished"") ""WaitPublished""
|
|
|
+,SUM(""PublishedOpen"") ""PublishedOpen""
|
|
|
+,SUM(""PublishedNoOpen"") ""PublishedNoOpen""
|
|
|
+,SUM(""YbOverdue"") ""YbOverdue""
|
|
|
+,SUM(""ZbOverdue"") ""ZbOverdue""
|
|
|
+,SUM(""HqzbOverdue"") ""HqzbOverdue""
|
|
|
+,SUM(""HqybOverdue"") ""HqybOverdue""
|
|
|
+,SUM(""DelayEnd"") ""DelayEnd""
|
|
|
+,SUM(""DelayWait"") ""DelayWait""
|
|
|
+,SUM(""OrderDelayCount"") ""OrderDelayCount""
|
|
|
+,SUM(""ScreenCount"") ""ScreenCount""
|
|
|
+,SUM(""ScreenApproval"") ""ScreenApproval""
|
|
|
+,SUM(""ScreenPass"") ""ScreenPass""
|
|
|
+,SUM(""ScreenNotPass"") ""ScreenNotPass""
|
|
|
+,SUM(""SatisfactionCount"") ""SatisfactionCount""
|
|
|
+,SUM(""NotSatisfactionCount"") ""NotSatisfactionCount""
|
|
|
+FROM (
|
|
|
+
|
|
|
+ /*查询已办*/
|
|
|
+ select ""HandlerOrgId"",SUM(( CASE WHEN ( ""HandlerOrgId"" IS NOT NULL ) THEN 1 ELSE 0 END )) AS ""YbOrderCountNum"",0 ""ZbOrderCountNum"",0 ""YbOverdue"",0 ""ZbOverdue"",0 ""HqybOverdue"",0 ""HqzbOverdue"",0 ""DelayEnd"",0 ""DelayWait"",0""Archived"" ,0 ""ToBeArchived"",0 ""WaitPublished"",0 ""PublishedOpen"",0 ""PublishedNoOpen"" ,0 ""OrderDelayCount"",0 ""ScreenCount"",0 ""ScreenApproval"", 0 ""ScreenPass"" , 0 ""ScreenNotPass"",0 ""SatisfactionCount"", 0 ""NotSatisfactionCount"" from(
|
|
|
+ select ""o"".""Id"",SUBSTRING(""t"".""HandlerOrgId"",1,{3}) ""HandlerOrgId"" from ""workflow_trace"" ""t""
|
|
|
+ left join ""order"" ""o"" on ""o"".""Id""=""t"".""ExternalId""
|
|
|
+ where ""o"".""CreationTime"">='{0}' and ""o"".""CreationTime""<='{1}' and ""t"".""ModuleCode""='OrderHandle' and ""t"".""TraceState"" !=10 and ""t"".""Status"">=2 {2} --and ""t"".""CountersignPosition""<=1
|
|
|
+ GROUP BY SUBSTRING(""t"".""HandlerOrgId"",1,{3}),""o"".""Id""
|
|
|
+ )""s"" where ""HandlerOrgId"" IS not NULL {4}
|
|
|
+ GROUP BY ""HandlerOrgId""
|
|
|
+ union ALL
|
|
|
+ /*查询待办*/
|
|
|
+ select ""HandlerOrgId"",0 ""YbOrderCountNum"",SUM(( CASE WHEN ( ""HandlerOrgId"" IS NOT NULL ) THEN 1 ELSE 0 END )) AS ""ZbOrderCountNum"",0 ""YbOverdue"",0 ""ZbOverdue"",0 ""HqybOverdue"",0 ""HqzbOverdue"",0 ""DelayEnd"",0 ""DelayWait"",0""Archived"",0 ""ToBeArchived"",0 ""WaitPublished"",0 ""PublishedOpen"",0 ""PublishedNoOpen"",0 ""OrderDelayCount"",0 ""ScreenCount"",0 ""ScreenApproval"", 0 ""ScreenPass"" , 0 ""ScreenNotPass"" ,0 ""SatisfactionCount"", 0 ""NotSatisfactionCount"" from(
|
|
|
+ select ""o"".""Id"",SUBSTRING(""t"".""HandlerOrgId"",1,{3}) ""HandlerOrgId"" from ""workflow_trace"" ""t""
|
|
|
+ left join ""order"" ""o"" on ""o"".""Id""=""t"".""ExternalId""
|
|
|
+ where ""o"".""CreationTime"">='{0}' and ""o"".""CreationTime""<='{1}' and ""t"".""ModuleCode""='OrderHandle' and ""t"".""Status""<2 {2} --and ""t"".""CountersignPosition""<=1
|
|
|
+ GROUP BY SUBSTRING(""t"".""HandlerOrgId"",1,{3}),""o"".""Id""
|
|
|
+ )""s"" where ""HandlerOrgId"" IS not NULL {4}
|
|
|
+ GROUP BY ""HandlerOrgId""
|
|
|
+ union ALL
|
|
|
+ /*查询已办超期*/
|
|
|
+ select ""HandlerOrgId"",0 ""YbOrderCountNum"",0 ""ZbOrderCountNum"",SUM(( CASE WHEN ( ""HandlerOrgId"" IS NOT NULL ) THEN 1 ELSE 0 END )) AS ""YbOverdue"" ,0 ""ZbOverdue"",0 ""HqybOverdue"",0 ""HqzbOverdue"",0 ""DelayEnd"",0 ""DelayWait"",0""Archived"",0 ""ToBeArchived"",0 ""WaitPublished"",0 ""PublishedOpen"",0 ""PublishedNoOpen"",0 ""OrderDelayCount"",0 ""ScreenCount"",0 ""ScreenApproval"", 0 ""ScreenPass"" , 0 ""ScreenNotPass"" ,0 ""SatisfactionCount"", 0 ""NotSatisfactionCount"" from(
|
|
|
+ select ""o"".""Id"",SUBSTRING(""t"".""HandlerOrgId"",1,{3}) ""HandlerOrgId"" from ""workflow_trace"" ""t""
|
|
|
+ left join ""order"" ""o"" on ""o"".""Id""=""t"".""ExternalId""
|
|
|
+ where ""o"".""CreationTime"">='{0}' and ""o"".""CreationTime""<='{1}' and ""t"".""ModuleCode""='OrderHandle' and ""t"".""TraceState"" !=10 and ""t"".""Status"">=2 and ""HandleTime"">""StepExpiredTime"" and ""t"".""CountersignPosition""=0 {2}
|
|
|
+ GROUP BY SUBSTRING(""t"".""HandlerOrgId"",1,{3}),""o"".""Id""
|
|
|
+ )""s"" where ""HandlerOrgId"" IS not NULL {4}
|
|
|
+ GROUP BY ""HandlerOrgId""
|
|
|
+ union ALL
|
|
|
+ /*查询待办超期*/
|
|
|
+ select ""HandlerOrgId"",0 ""YbOrderCountNum"",0 ""ZbOrderCountNum"",0 ""YbOverdue"",SUM(( CASE WHEN ( ""HandlerOrgId"" IS NOT NULL ) THEN 1 ELSE 0 END )) AS ""ZbOverdue"",0 ""HqybOverdue"",0 ""HqzbOverdue"",0 ""DelayEnd"",0 ""DelayWait"" ,0""Archived"",0 ""ToBeArchived"",0 ""WaitPublished"",0 ""PublishedOpen"",0 ""PublishedNoOpen"",0 ""OrderDelayCount"",0 ""ScreenCount"",0 ""ScreenApproval"", 0 ""ScreenPass"" , 0 ""ScreenNotPass"",0 ""SatisfactionCount"", 0 ""NotSatisfactionCount"" from(
|
|
|
+ select ""o"".""Id"",SUBSTRING(""t"".""HandlerOrgId"",1,{3}) ""HandlerOrgId"" from ""workflow_trace"" ""t""
|
|
|
+ left join ""order"" ""o"" on ""o"".""Id""=""t"".""ExternalId""
|
|
|
+ where ""o"".""CreationTime"">='{0}' and ""o"".""CreationTime""<='{1}' and ""t"".""ModuleCode""='OrderHandle' and ""t"".""Status""<2 and (SELECT NOW())>""StepExpiredTime"" and ""t"".""CountersignPosition""=0 {2}
|
|
|
+ GROUP BY SUBSTRING(""t"".""HandlerOrgId"",1,{3}),""o"".""Id""
|
|
|
+ )""s"" where ""HandlerOrgId"" IS not NULL {4}
|
|
|
+ GROUP BY ""HandlerOrgId""
|
|
|
+ union ALL
|
|
|
+ /*查询会签已办超期*/
|
|
|
+ select ""HandlerOrgId"",0 ""YbOrderCountNum"",0 ""ZbOrderCountNum"",0 ""YbOverdue"" ,0 ""ZbOverdue"",SUM(( CASE WHEN ( ""HandlerOrgId"" IS NOT NULL ) THEN 1 ELSE 0 END )) AS ""HqybOverdue"",0 ""HqzbOverdue"",0 ""DelayEnd"",0 ""DelayWait"",0""Archived"",0 ""ToBeArchived"",0 ""WaitPublished"",0 ""PublishedOpen"",0 ""PublishedNoOpen"",0 ""OrderDelayCount"",0 ""ScreenCount"",0 ""ScreenApproval"", 0 ""ScreenPass"" , 0 ""ScreenNotPass"" ,0 ""SatisfactionCount"", 0 ""NotSatisfactionCount"" from(
|
|
|
+ select ""o"".""Id"",SUBSTRING(""t"".""HandlerOrgId"",1,{3}) ""HandlerOrgId"" from ""workflow_trace"" ""t""
|
|
|
+ left join ""order"" ""o"" on ""o"".""Id""=""t"".""ExternalId""
|
|
|
+ where ""o"".""CreationTime"">='{0}' and ""o"".""CreationTime""<='{1}' and ""t"".""ModuleCode""='OrderHandle' and ""t"".""TraceState"" !=10 and ""t"".""Status"">=2 and ""HandleTime"">""StepExpiredTime"" and ""CountersignPosition"">0 {2}
|
|
|
+ GROUP BY SUBSTRING(""t"".""HandlerOrgId"",1,{3}),""o"".""Id""
|
|
|
+ )""s"" where ""HandlerOrgId"" IS not NULL {4}
|
|
|
+ GROUP BY ""HandlerOrgId""
|
|
|
+ union ALL
|
|
|
+ /*查询会签待办超期*/
|
|
|
+ select ""HandlerOrgId"",0 ""YbOrderCountNum"",0 ""ZbOrderCountNum"",0 ""YbOverdue"" ,0 ""ZbOverdue"",0 ""HqybOverdue"",SUM(( CASE WHEN ( ""HandlerOrgId"" IS NOT NULL ) THEN 1 ELSE 0 END )) AS ""HqzbOverdue"" ,0 ""DelayEnd"",0 ""DelayWait"" ,0""Archived"",0 ""ToBeArchived"",0 ""WaitPublished"",0 ""PublishedOpen"",0 ""PublishedNoOpen"",0 ""OrderDelayCount"",0 ""ScreenCount"",0 ""ScreenApproval"", 0 ""ScreenPass"" , 0 ""ScreenNotPass"",0 ""SatisfactionCount"", 0 ""NotSatisfactionCount"" from(
|
|
|
+ select ""o"".""Id"",SUBSTRING(""t"".""HandlerOrgId"",1,{3}) ""HandlerOrgId"" from ""workflow_trace"" ""t""
|
|
|
+ left join ""order"" ""o"" on ""o"".""Id""=""t"".""ExternalId""
|
|
|
+ where ""o"".""CreationTime"">='{0}' and ""o"".""CreationTime""<='{1}' and ""t"".""ModuleCode""='OrderHandle' and ""t"".""Status""<2 and (SELECT NOW())>""StepExpiredTime""
|
|
|
+ and ""CountersignPosition"">0 {2}
|
|
|
+ GROUP BY SUBSTRING(""t"".""HandlerOrgId"",1,{3}),""o"".""Id""
|
|
|
+ )""s"" where ""HandlerOrgId"" IS not NULL {4}
|
|
|
+ GROUP BY ""HandlerOrgId""
|
|
|
+ union ALL
|
|
|
+ /*查询会签已办*/
|
|
|
+ select ""HandlerOrgId"",0 ""YbOrderCountNum"",0 ""ZbOrderCountNum"",0 ""YbOverdue"" ,0 ""ZbOverdue"",0 ""HqybOverdue"",0 ""HqzbOverdue"",SUM(( CASE WHEN ( ""HandlerOrgId"" IS NOT NULL ) THEN 1 ELSE 0 END )) AS ""DelayEnd"",0 ""DelayWait"" ,0""Archived"",0 ""ToBeArchived"",0 ""WaitPublished"",0 ""PublishedOpen"",0 ""PublishedNoOpen"",0 ""OrderDelayCount"",0 ""ScreenCount"",0 ""ScreenApproval"", 0 ""ScreenPass"" , 0 ""ScreenNotPass"" ,0 ""SatisfactionCount"", 0 ""NotSatisfactionCount"" from(
|
|
|
+ select ""o"".""Id"",SUBSTRING(""t"".""HandlerOrgId"",1,{3}) ""HandlerOrgId"" from ""workflow_trace"" ""t""
|
|
|
+ left join ""order"" ""o"" on ""o"".""Id""=""t"".""ExternalId""
|
|
|
+ where ""o"".""CreationTime"">='{0}' and ""o"".""CreationTime""<='{1}' and ""t"".""ModuleCode""='OrderHandle' and ""t"".""TraceState"" !=10 and ""t"".""Status"">=2 and ""CountersignPosition"">0 {2}
|
|
|
+ GROUP BY SUBSTRING(""t"".""HandlerOrgId"",1,{3}),""o"".""Id""
|
|
|
+ )""s"" where ""HandlerOrgId"" IS not NULL {4}
|
|
|
+ GROUP BY ""HandlerOrgId""
|
|
|
+ union ALL
|
|
|
+ /*查询会签待办*/
|
|
|
+ select ""HandlerOrgId"",0 ""YbOrderCountNum"",0 ""ZbOrderCountNum"",0 ""YbOverdue"" ,0 ""ZbOverdue"",0 ""HqybOverdue"",0 ""HqzbOverdue"",0 ""DelayEnd"",SUM(( CASE WHEN ( ""HandlerOrgId"" IS NOT NULL ) THEN 1 ELSE 0 END )) AS ""DelayWait"" ,0""Archived"",0 ""ToBeArchived"",0 ""WaitPublished"",0 ""PublishedOpen"",0 ""PublishedNoOpen"",0 ""OrderDelayCount"",0 ""ScreenCount"",0 ""ScreenApproval"", 0 ""ScreenPass"" , 0 ""ScreenNotPass"",0 ""SatisfactionCount"", 0 ""NotSatisfactionCount"" from(
|
|
|
+ select ""o"".""Id"",SUBSTRING(""t"".""HandlerOrgId"",1,{3}) ""HandlerOrgId"" from ""workflow_trace"" ""t""
|
|
|
+ left join ""order"" ""o"" on ""o"".""Id""=""t"".""ExternalId""
|
|
|
+ where ""o"".""CreationTime"">='{0}' and ""o"".""CreationTime""<='{1}' and ""t"".""ModuleCode""='OrderHandle' and ""t"".""Status""<2 and ""CountersignPosition"">0 {2}
|
|
|
+ GROUP BY SUBSTRING(""t"".""HandlerOrgId"",1,{3}),""o"".""Id""
|
|
|
+ )""s"" where ""HandlerOrgId"" IS not NULL {4}
|
|
|
+ GROUP BY ""HandlerOrgId""
|
|
|
+ UNION ALL
|
|
|
+ /*已归档、 待发布、已发布公开、已发布不公开*/
|
|
|
+ select ""HandlerOrgId"",0 ""YbOrderCountNum"",0 ""ZbOrderCountNum"",0 ""YbOverdue"" ,0 ""ZbOverdue"",0 ""HqybOverdue"",0 ""HqzbOverdue"",0 ""DelayEnd"",0 ""DelayWait""
|
|
|
+ ,SUM(( CASE WHEN ( ""Status"">=300 ) THEN 1 ELSE 0 END )) AS ""Archived""
|
|
|
+ ,0 ""ToBeArchived""
|
|
|
+ ,SUM(( CASE WHEN ( ""Status""=300 ) THEN 1 ELSE 0 END )) AS ""WaitPublished""
|
|
|
+ ,SUM(( CASE WHEN ( ""Status"">=400 and ""IsPublicity""=TRUE ) THEN 1 ELSE 0 END )) AS ""PublishedOpen""
|
|
|
+ ,SUM(( CASE WHEN ( ""Status"">=400 and ""IsPublicity""=FALSE ) THEN 1 ELSE 0 END )) AS ""PublishedNoOpen""
|
|
|
+ ,0 ""OrderDelayCount"",0 ""ScreenCount"",0 ""ScreenApproval"", 0 ""ScreenPass"" , 0 ""ScreenNotPass"" ,0 ""SatisfactionCount"", 0 ""NotSatisfactionCount"" from(
|
|
|
+ select SUBSTRING(""o"".""ActualHandleOrgCode"",1,{3}) ""HandlerOrgId"", ""o"".""Status"", ""o"".""IsPublicity"" from ""order"" ""o""
|
|
|
+ where ""o"".""CreationTime"">='{0}' and ""o"".""CreationTime""<='{1}' and ""o"".""Status"">=300 {2}
|
|
|
+ )""s"" where ""HandlerOrgId"" IS not NULL {4}
|
|
|
+ GROUP BY ""HandlerOrgId""
|
|
|
+ union ALL
|
|
|
+ /*查询延期通过数量*/
|
|
|
+ select ""HandlerOrgId"",0 ""YbOrderCountNum"",0 ""ZbOrderCountNum"",0 ""YbOverdue"" ,0 ""ZbOverdue"",0 ""HqybOverdue"",0 ""HqzbOverdue"",0 ""DelayEnd"",0 ""DelayWait"" ,0""Archived"",0 ""ToBeArchived"",0 ""WaitPublished"",0 ""PublishedOpen"",0 ""PublishedNoOpen"",SUM(( CASE WHEN ( ""HandlerOrgId"" IS NOT NULL ) THEN 1 ELSE 0 END )) AS ""OrderDelayCount"",0 ""ScreenCount"",0 ""ScreenApproval"", 0 ""ScreenPass"" , 0 ""ScreenNotPass"" ,0 ""SatisfactionCount"", 0 ""NotSatisfactionCount"" from(
|
|
|
+ select SUBSTRING(""ApplyOrgCode"",1,{3}) ""HandlerOrgId"" from ""order_delay"" ""d""
|
|
|
+ left join ""order"" ""o"" on ""d"".""OrderId""=""o"".""Id""
|
|
|
+ where ""o"".""CreationTime"">='{0}' and ""o"".""CreationTime""<='{1}' and ""d"".""DelayState""=1 {2}
|
|
|
+ )""s"" where ""HandlerOrgId"" IS not NULL {4}
|
|
|
+ GROUP BY ""HandlerOrgId""
|
|
|
+ union all
|
|
|
+ /*查询甄别*/
|
|
|
+ select ""HandlerOrgId"",0 ""YbOrderCountNum"",0 ""ZbOrderCountNum"",0 ""YbOverdue"" ,0 ""ZbOverdue"",0 ""HqybOverdue"",0 ""HqzbOverdue"",0 ""DelayEnd"",0 ""DelayWait"" ,0""Archived"",0 ""ToBeArchived"",0 ""WaitPublished"",0 ""PublishedOpen"",0 ""PublishedNoOpen"",0 ""OrderDelayCount""
|
|
|
+ ,SUM(( CASE WHEN ( ""HandlerOrgId"" IS NOT NULL ) THEN 1 ELSE 0 END )) AS ""ScreenCount""
|
|
|
+ ,SUM(( CASE WHEN ( ""Status""<=1 ) THEN 1 ELSE 0 END )) AS ""ScreenApproval""
|
|
|
+ ,SUM(( CASE WHEN ( ""Status""=2 ) THEN 1 ELSE 0 END )) AS ""ScreenPass""
|
|
|
+ ,SUM(( CASE WHEN ( ""Status""=3 ) THEN 1 ELSE 0 END )) AS ""ScreenNotPass"",0 ""SatisfactionCount"", 0 ""NotSatisfactionCount""
|
|
|
+ from(
|
|
|
+ select SUBSTRING(""d"".""CreatorOrgId"",1,{3}) ""HandlerOrgId"",""d"".""Status"" from ""order_screen"" ""d""
|
|
|
+ left join ""order"" ""o"" on ""d"".""OrderId""=""o"".""Id""
|
|
|
+ where ""o"".""CreationTime"">='{0}' and ""o"".""CreationTime""<='{1}' {2}
|
|
|
+ )""s"" where ""HandlerOrgId"" IS not NULL {4}
|
|
|
+ GROUP BY ""HandlerOrgId""
|
|
|
+ union ALL
|
|
|
+ /*查询满意度*/
|
|
|
+ select ""HandlerOrgId"",0 ""YbOrderCountNum"",0 ""ZbOrderCountNum"",0 ""YbOverdue"" ,0 ""ZbOverdue"",0 ""HqybOverdue"",0 ""HqzbOverdue"",0 ""DelayEnd"",0 ""DelayWait"" ,0""Archived"",0 ""ToBeArchived"",0 ""WaitPublished"",0 ""PublishedOpen"",0 ""PublishedNoOpen"",0 ""OrderDelayCount"",0 ""ScreenCount"",0 ""ScreenApproval"", 0 ""ScreenPass"" , 0 ""ScreenNotPass""
|
|
|
+ ,SUM(( CASE WHEN ( (""OrgProcessingResults""->>'Key')::VARCHAR != '2' ) THEN 1 ELSE 0 END )) AS ""SatisfactionCount""
|
|
|
+ ,SUM(( CASE WHEN ( (""OrgProcessingResults""->>'Key')::VARCHAR = '2' ) THEN 1 ELSE 0 END )) AS ""NotSatisfactionCount""
|
|
|
+ FROM(
|
|
|
+ SELECT SUBSTRING(""VisitOrgCode"",1,{3}) ""HandlerOrgId"" ,""OrgProcessingResults"" from ""order_visit_detail"" ""d""
|
|
|
+ left join ""order_visit"" ""v"" on ""v"".""Id""=""d"".""VisitId""
|
|
|
+ left join ""order"" ""o"" on ""o"".""Id""=""v"".""OrderId""
|
|
|
+ where ""o"".""CreationTime"">='{0}' and ""o"".""CreationTime""<='{1}' and ""d"".""VisitTarget""=20 and ""v"".""VisitState""=30 and ""d"".""VisitOrgCode"" is not NULL {2}
|
|
|
+ )""s"" where ""HandlerOrgId"" IS not NULL {4}
|
|
|
+ GROUP BY ""HandlerOrgId""
|
|
|
+)""te""
|
|
|
+GROUP BY ""HandlerOrgId""
|
|
|
+) ""su""
|
|
|
+left join ""system_organize"" ""so"" on ""so"".""Id""=""su"".""OrgCode""
|
|
|
+where 1=1 {5}
|
|
|
+order by ""su"".""OrgCode""";
|
|
|
+
|
|
|
+ var IsProvince = dto.IsProvince.HasValue && dto.IsProvince == true ? " and \"o\".\"Source\"=100 " : " ";
|
|
|
+ var orgLength = dto.OrgCode.Length + 3;
|
|
|
+
|
|
|
+ var isOrg = dto.OrgCode == "001" ? " and \"HandlerOrgId\" ='001'" : " and \"HandlerOrgId\" like concat('" + dto.OrgCode + "','%') ";
|
|
|
+
|
|
|
+ var orgName = string.IsNullOrEmpty(dto.OrgName) == false ? " and \"OrgName\" like concat('%'," + dto.OrgName + ",'%')" : "";
|
|
|
+
|
|
|
+ strSql = string.Format(strSql, dto.StartTime, dto.EndTime, IsProvince, orgLength, isOrg, orgName);
|
|
|
+
|
|
|
+ return _orderRepository.DepartmentalProcessingStatisticsNew(strSql);
|
|
|
+ }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 部门办件统计表--明细---新
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="dto"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ public ISugarQueryable<SelectOrderId> GetDepartmentalProcessingStatisticsListNew(DepartmentalProcessingStatisticsRequest dto, CancellationToken cancellationToken)
|
|
|
+ {
|
|
|
+ dto.EndTime = dto.EndTime.AddDays(1).AddSeconds(-1);
|
|
|
+
|
|
|
+ RefAsync<int> total = 0;
|
|
|
+ ISugarQueryable<SelectOrderId> query = null;
|
|
|
+ switch (dto.StatisticsType)
|
|
|
+ {
|
|
|
+ case EStatisticsType.YBOrderCountNum://工单已办
|
|
|
+ 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)
|
|
|
+ .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" && 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.ZBOrderCountNum://工单在办
|
|
|
+ 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)
|
|
|
+ .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" && 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()
|
|
|
+ .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)
|
|
|
+ .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" && 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.ZBOverdue://待办超期
|
|
|
+ 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 && 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" && 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.HQYBOverdue://会签已办超期
|
|
|
+ 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)
|
|
|
+ .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" && 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.HQZBOverdue://会签待办超期
|
|
|
+ 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 && 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" && 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.SubtotalOverdue://超期件数
|
|
|
+ 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)
|
|
|
+ .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" && 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();
|
|
|
+ var cqdbquery = _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 && 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" && 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();
|
|
|
+ query = _orderRepository.UnionAll(cqybquery, cqdbquery).GroupBy(p => p.Id).MergeTable();
|
|
|
+ break;
|
|
|
+ case EStatisticsType.DelayEnd://会签已办
|
|
|
+ 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)
|
|
|
+ .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" && 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.DelayWait://会签待办
|
|
|
+ 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)
|
|
|
+ .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" && 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.ToBeArchived://待归档没得数据
|
|
|
+ query = _orderRepository.Queryable()
|
|
|
+ .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" && 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.Archived://已归档
|
|
|
+ query = _orderRepository.Queryable()
|
|
|
+ .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" && 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.WaitPublished://待发布
|
|
|
+ query = _orderRepository.Queryable()
|
|
|
+ .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" && 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.PublishedOpen://发布公开
|
|
|
+ query = _orderRepository.Queryable()
|
|
|
+ .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" && 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.PublishedNoOpen://发布不公开
|
|
|
+ query = _orderRepository.Queryable()
|
|
|
+ .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" && 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()
|
|
|
+ .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()
|
|
|
+ .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()
|
|
|
+ .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()
|
|
|
+ .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;
|
|
|
+ }
|
|
|
+ return query;
|
|
|
+ }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 部门办件统计明细表
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="dto"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ public ISugarQueryable<SelectOrderId> DepartmentalProcessingStatisticsDetailsList(DepartmentalProcessingStatisticsRequest dto)
|
|
|
+ {
|
|
|
+ var 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)
|
|
|
+ .WhereIF(dto.IsProvince.HasValue && dto.IsProvince == true, (t, o) => o.Source == ESource.ProvinceStraight)
|
|
|
+ // .WhereIF(IsCenter, (t, o) => t.HandlerOrgId == dto.OrgCode)
|
|
|
+ .WhereIF(!_sessionContext.OrgIsCenter, (t, o) => t.HandlerOrgId.StartsWith(dto.OrgCode))
|
|
|
+ .GroupBy((t, o) => o.Id)
|
|
|
+ .Select((t, o) => new SelectOrderId { Id = o.Id })
|
|
|
+ .MergeTable();
|
|
|
+
|
|
|
+ return query;
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
@@ -1081,7 +1746,7 @@ namespace Hotline.Application.StatisticalReport
|
|
|
})
|
|
|
.Select((it, o) => new DepartmentAcceptanceTypeStatisticsDto
|
|
|
{
|
|
|
- OrgName = it.OrgCode == "001" ? "热线中心" : o.Name,
|
|
|
+ OrgName = it.OrgCode == "001" ? "市民热线服务中心" : o.Name,
|
|
|
OrgCode = it.OrgCode,
|
|
|
OrgType = o.OrgType == EOrgType.County ? "区县部门" : "市直部门",
|
|
|
ZxAllCount = SqlFunc.AggregateSum(SqlFunc.IIF(it.AcceptTypeCode == "10", 1, 0)),
|
|
@@ -1139,5 +1804,36 @@ namespace Hotline.Application.StatisticalReport
|
|
|
.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); //办结时间结束
|
|
|
+
|
|
|
+ }
|
|
|
}
|
|
|
}
|