Эх сурвалжийг харах

修改综合查询加查询条件

tangjiang 5 сар өмнө
parent
commit
825eae7dbb

+ 386 - 384
src/Hotline.Application/Orders/OrderApplication.cs

@@ -430,8 +430,8 @@ public class OrderApplication : IOrderApplication, IScopeDependency
                                  _sessionContextProvider.SessionContext.Roles.Contains(step.RoleId))))
                 .Any())
             // .WhereIF(orgLevel == 2 || orgLevel == 1, d =>  d.ActualHandleOrgCode.StartsWith(orgCode))
-            .WhereIF(orgLevel == 2 || orgLevel == 1,  d => SqlFunc.Subqueryable<WorkflowStep>()
-                .Where(step => step.ExternalId == d.Id && 
+            .WhereIF(orgLevel == 2 || orgLevel == 1, d => SqlFunc.Subqueryable<WorkflowStep>()
+                .Where(step => step.ExternalId == d.Id &&
                                step.Status != EWorkflowStepStatus.Handled &&
                                (!string.IsNullOrEmpty(step.HandlerOrgId) && step.HandlerOrgId.StartsWith(orgCode)))
                 .Any())
@@ -486,7 +486,7 @@ public class OrderApplication : IOrderApplication, IScopeDependency
         var seg = new Segment();
         ICollection<WordInfo> splitWords = seg.DoSegment(inputStr);
         var words = new List<string>();
-        for (int i = 0;i < splitWords.Count;i++)
+        for (int i = 0; i < splitWords.Count; i++)
         {
             var word = splitWords.ElementAt(i);
             if (word is { WordType: WordType.SimplifiedChinese, Word.Length: > 1 })
@@ -713,7 +713,7 @@ public class OrderApplication : IOrderApplication, IScopeDependency
             visit.VisitTime = dto.VisitTime;
             visit.VisitType = dto.VisitType;
 
-            for (int i = 0;i < visit.OrderVisitDetails.Count;i++)
+            for (int i = 0; i < visit.OrderVisitDetails.Count; i++)
             {
                 var detail = visit.OrderVisitDetails[i];
                 var detaildto = dto.OrderVisitDetailDto.FirstOrDefault(x => x.Id == detail.Id);
@@ -759,7 +759,7 @@ public class OrderApplication : IOrderApplication, IScopeDependency
     /// <returns></returns>
     public async Task<Order> SaveOrderWorkflowInfo(NextWorkflowDto<OrderHandleFlowDto> dto, CancellationToken cancellationToken)
     {
-        var order = await _orderRepository.Queryable().Includes(d=>d.OrderExtension)
+        var order = await _orderRepository.Queryable().Includes(d => d.OrderExtension)
                         .FirstAsync(d => d.Id == dto.Data.OrderId, cancellationToken)
                     ?? throw UserFriendlyException.SameMessage("无效工单编号");
         if (await _orderSendBackAuditRepository.AnyAsync(x => x.OrderId == order.Id && x.State == ESendBackAuditState.Apply,
@@ -771,12 +771,12 @@ public class OrderApplication : IOrderApplication, IScopeDependency
         ExpiredTimeWithConfig? expiredTimeConfig = null;
         var settingBase = _systemSettingCacheManager.GetSetting(SettingConstants.CityBaseConfiguration)?.SettingValue[0];
         CityBaseConfiguration cityBase = System.Text.Json.JsonSerializer.Deserialize<CityBaseConfiguration>(settingBase);
-		if (dto.Workflow.NextHandlers.Any(d => d.Key == cityBase.CityProvince.OrgId || d.Key == cityBase.CityProvinceAssign.OrgId))
+        if (dto.Workflow.NextHandlers.Any(d => d.Key == cityBase.CityProvince.OrgId || d.Key == cityBase.CityProvinceAssign.OrgId))
         {
-	        if (dto.Workflow.NextHandlers.Any(d => d.Key == cityBase.CityProvince.OrgId) && order.OrderExtension is null)
-	        {
-				throw UserFriendlyException.SameMessage("该工单不存在拓展信息,不能推送至全国12315平台!");
-			}
+            if (dto.Workflow.NextHandlers.Any(d => d.Key == cityBase.CityProvince.OrgId) && order.OrderExtension is null)
+            {
+                throw UserFriendlyException.SameMessage("该工单不存在拓展信息,不能推送至全国12315平台!");
+            }
             var timeResult = await _expireTime.CalcEndTime(DateTime.Now, ETimeType.WorkDay, 45, 80, 50);
             expiredTimeConfig = new ExpiredTimeWithConfig
             {
@@ -906,7 +906,7 @@ public class OrderApplication : IOrderApplication, IScopeDependency
             visit.JudgeState = EJudgeState.Judging;
         }
 
-        for (int i = 0;i < visit.OrderVisitDetails.Count;i++)
+        for (int i = 0; i < visit.OrderVisitDetails.Count; i++)
         {
             var detail = visit.OrderVisitDetails[i];
             var detaildto = dto.VisitDetails.FirstOrDefault(x => x.Id == detail.Id);
@@ -1057,121 +1057,122 @@ public class OrderApplication : IOrderApplication, IScopeDependency
                                step.HandlerOrgId.StartsWith(_sessionContextProvider.SessionContext.RequiredOrgId)).Any());
         }
 
-            query = query.Includes(x => x.OrderScreens);
-            if (!_appOptions.Value.IsYiBin)
-            {
-                query = query.Includes(x => x.OrderVisits.Where(m => m.VisitState == EVisitState.Visited).ToList())
-             .Includes(x => x.OrderVisits.Where(m => m.VisitState == EVisitState.Visited).ToList(), ovd => ovd.OrderVisitDetails);
-            }
-            query = query
-             .WhereIF(!string.IsNullOrEmpty(dto.Keyword), d => d.Title.Contains(dto.Keyword!)) //标题
-             .WhereIF(!string.IsNullOrEmpty(dto.ProvinceNo), d => d.ProvinceNo == dto.ProvinceNo) //省本地编号
-             .WhereIF(!string.IsNullOrEmpty(dto.ReceiveProvinceNo), d => d.ReceiveProvinceNo == dto.ReceiveProvinceNo) //省编号
-             .WhereIF(!string.IsNullOrEmpty(dto.No), d => d.No == dto.No) //工单编码
-             .WhereIF(!string.IsNullOrEmpty(dto.AcceptType), d => d.AcceptTypeCode == dto.AcceptType) //受理类型
-                                                                                                      //.WhereIF(dto.AcceptTypes.Any(), d => dto.AcceptTypes.Contains(d.AcceptTypeCode)) //受理类型
-             .WhereIF(!string.IsNullOrEmpty(dto.Channel), d => d.SourceChannelCode == dto.Channel)
-             //.WhereIF(dto.Channels.Any(), d => dto.Channels.Contains(d.SourceChannelCode)) //来源渠道
-             //.WhereIF(dto.HotspotIds.Any(), d => dto.HotspotIds.Contains(d.HotspotId)) //热点类型
-             .WhereIF(!string.IsNullOrEmpty(dto.Hotspot), d => d.HotspotSpliceName != null && d.HotspotSpliceName.Contains(dto.Hotspot))
-             .WhereIF(!string.IsNullOrEmpty(dto.TransferPhone), d => d.TransferPhone == dto.TransferPhone!) //转接号码
-                                                                                                            //.WhereIF(dto.OrgCodes.Any(), d => d.Workflow.Assigns.Any(s => dto.OrgCodes.Contains(s.OrgCode)))
-                                                                                                            //.WhereIF(dto.OrgCodes.Any(), d => dto.OrgCodes.Contains(d.ActualHandleOrgCode)) //接办部门
-                                                                                                            //.WhereIF(!string.IsNullOrEmpty(dto.OrgId), d => d.CurrentHandleOrgId == dto.OrgId)//接办部门
-             .WhereIF(!string.IsNullOrEmpty(dto.OrgLevelOneName), d => d.OrgLevelOneName.Contains(dto.OrgLevelOneName)) //一级部门
-             .WhereIF(!string.IsNullOrEmpty(dto.ActualHandleOrgName), d => d.ActualHandleOrgName.Contains(dto.ActualHandleOrgName)) //接办部门(综合查询模糊)
-             
-             .WhereIF(dto.CreationTimeStart.HasValue, d => d.CreationTime >= dto.CreationTimeStart) //受理时间开始
-             .WhereIF(dto.CreationTimeEnd.HasValue, d => d.CreationTime <= dto.CreationTimeEnd) //受理时间结束
-                                                                                                //.WhereIF(dto.EmergencyLevels.Any(), d => dto.EmergencyLevels.Contains(d.EmergencyLevel))  //紧急程度
-             .WhereIF(!string.IsNullOrEmpty(dto.FromPhone), d => d.FromPhone == dto.FromPhone) //来电号码
-             .WhereIF(!string.IsNullOrEmpty(dto.PhoneNo), d => d.Contact == dto.PhoneNo!) //联系电话
-                                                                                          //.WhereIF(!string.IsNullOrEmpty(dto.PushTypeCode), d => d.PushTypeCode == dto.PushTypeCode) //推送分类
-             .WhereIF(!string.IsNullOrEmpty(dto.PushTypeCode), x => x.OrderPushTypes.Any(opt => opt.PushTypeCode == dto.PushTypeCode)) //推送分类
-             .WhereIF(dto.ExpiredTimeStart.HasValue, d => d.ExpiredTime >= dto.ExpiredTimeStart) //超期时间开始
-             .WhereIF(dto.ExpiredTimeEnd.HasValue, d => d.ExpiredTime <= dto.ExpiredTimeEnd) //超期时间结束
-                                                                                             //.WhereIF(dto.Statuses.Any(), d => dto.Statuses.Contains(d.Status))  //工单状态
-             .WhereIF(dto.Status.HasValue, d => d.Status == dto.Status) //工单状态
-                                                                        //.WhereIF(dto.Statuses.Any(d => d == EOrderStatus.SpecialToUnAccept), d => d.Status <= EOrderStatus.SpecialToUnAccept)
-             .WhereIF(!string.IsNullOrEmpty(dto.ActualHandlerName), d => d.ActualHandlerName == dto.ActualHandlerName) //接办人
-             .WhereIF(dto.IsScreen == true, d => d.OrderScreens.Any(x => x.Status != EScreenStatus.Refuse)) //有甄别
-             .WhereIF(dto.IsScreen == false, d => !d.OrderScreens.Any(x => x.Status != EScreenStatus.Refuse)) //无甄别
-             .WhereIF(!string.IsNullOrEmpty(dto.CurrentStepCode), d => d.CurrentStepCode == dto.CurrentStepCode) //当前办理节点
-             .WhereIF(dto.ActualHandleTimeStart.HasValue, d => d.ActualHandleTime >= dto.ActualHandleTimeStart) //办结时间开始
-             .WhereIF(dto.ActualHandleTimeEnd.HasValue, d => d.ActualHandleTime <= dto.ActualHandleTimeEnd) //办结时间结束
-             .WhereIF(dto.IsOverTime == true,
-                 d => (d.ExpiredTime < DateTime.Now && d.Status < EOrderStatus.Filed) ||
-                      (d.ExpiredTime < d.ActualHandleTime && d.Status >= EOrderStatus.Filed)) //是 超期
-             .WhereIF(dto.IsOverTime == false,
-                 d => (d.ExpiredTime > DateTime.Now && d.Status < EOrderStatus.Filed) ||
-                      (d.ExpiredTime > d.ActualHandleTime && d.Status >= EOrderStatus.Filed)) //否 超期
-             .WhereIF(dto.IdentityType != null, d => d.IdentityType == dto.IdentityType) //来电主体
-             .WhereIF(!string.IsNullOrEmpty(dto.FromName), d => d.FromName == dto.FromName) //来电人姓名
-                                                                                            //.WhereIF(dto.AreaCodes.Any(), d => dto.AreaCodes.Contains(d.AreaCode)) //区域
-                                                                                            //.WhereIF(!string.IsNullOrEmpty(dto.AreaCode), d => d.AreaCode == dto.AreaCode)//区域
-             .WhereIF(!string.IsNullOrEmpty(dto.AreaCode) && dto.AreaCode.LastIndexOf("00") > 0,
-                 d => d.AreaCode.StartsWith(SqlFunc.Substring(dto.AreaCode, 0, 4)))
-             .WhereIF(!string.IsNullOrEmpty(dto.AreaCode) && dto.AreaCode.LastIndexOf("00") <= 0, d => d.AreaCode.StartsWith(dto.AreaCode))
-             .WhereIF(dto.IsProvinceOrder.HasValue && dto.IsProvinceOrder == true, d => d.Source == ESource.ProvinceStraight)
-             .WhereIF(dto.IsProvinceOrder.HasValue && dto.IsProvinceOrder == false, d => d.Source != ESource.ProvinceStraight)
-             .WhereIF(!string.IsNullOrEmpty(dto.SensitiveWord), d => SqlFunc.JsonArrayAny(d.Sensitive, dto.SensitiveWord))
-             .WhereIF(dto.IsSensitiveWord.HasValue && dto.IsSensitiveWord == true,
-                 d => d.Sensitive != null && SqlFunc.JsonArrayLength(d.Sensitive) > 0)
-             .WhereIF(dto.IsUrgent.HasValue, d => d.IsUrgent == dto.IsUrgent.Value)
-             .WhereIF(!string.IsNullOrEmpty(dto.ProvinceChannel) && dto.ProvinceChannel == "1", d => d.Source == ESource.ProvinceStraight &&
-                 d.SourceChannelCode == "SZMHD" && d.IsProvince == false) //政民互动直派
-             .WhereIF(!string.IsNullOrEmpty(dto.ProvinceChannel) && dto.ProvinceChannel == "2", d => d.Source == ESource.ProvinceStraight &&
-                 d.SourceChannelCode == "SZMHD" && d.IsProvince == true) //政民互动
-             .WhereIF(!string.IsNullOrEmpty(dto.ProvinceChannel) && dto.ProvinceChannel == "3", d => d.Source == ESource.ProvinceStraight &&
-                 d.SourceChannelCode == "S12345" && d.IsProvince == true) //省12345
-             .WhereIF(!string.IsNullOrEmpty(dto.ContentRetrieval),
-                 d => d.Title.Contains(dto.ContentRetrieval) || d.Content.Contains(dto.ContentRetrieval) || d.FileOpinion.Contains(dto.ContentRetrieval) || d.ActualOpinion.Contains(dto.ContentRetrieval))
-             .WhereIF(dto.IsSgin.HasValue && dto.IsSgin == true, d => d.CurrentStepAcceptTime != null)
-             .WhereIF(dto.IsSgin.HasValue && dto.IsSgin == false, d => d.CurrentStepAcceptTime == null)
-             .WhereIF(dto.FiledType is FiledType.CenterFiled, d => d.ProcessType == EProcessType.Zhiban)
-             .WhereIF(dto.FiledType is FiledType.OrgFiled, d => d.ProcessType == EProcessType.Jiaoban)
-             .WhereIF(!string.IsNullOrEmpty(dto.OrderTagCode), d => d.OrderTagCode == dto.OrderTagCode)
-             .WhereIF(!string.IsNullOrEmpty(dto.FocusOnEvents),d=>SqlFunc.SplitIn(d.FocusOnEvents, dto.FocusOnEvents))
-             .OrderByIF(string.IsNullOrEmpty(dto.SortField), d => d.CreationTime, OrderByType.Desc)//默认排序时间为创建时间
-             .OrderByIF(dto is { SortField: "no", SortRule: 0 }, d => d.No, OrderByType.Asc) //工单编号升序
-             .OrderByIF(dto is { SortField: "no", SortRule: 1 }, d => d.No, OrderByType.Desc) //工单编号降序
-             .OrderByIF(dto is { SortField: "isProvinceText", SortRule: 0 }, d => d.IsProvince, OrderByType.Asc)//是否省工单升序
-             .OrderByIF(dto is { SortField: "isProvinceText", SortRule: 1 }, d => d.IsProvince, OrderByType.Desc)//是否省工单降序
-             .OrderByIF(dto is { SortField: "reTransactNum", SortRule: 0 }, d => d.ReTransactNum, OrderByType.Asc) //重办次数升序
-             .OrderByIF(dto is { SortField: "reTransactNum", SortRule: 1 }, d => d.ReTransactNum, OrderByType.Desc) //重办次数降序
-             .OrderByIF(dto is { SortField: "isUrgentText",SortRule:0 }, d=>d.IsUrgent,OrderByType.Asc) //是否紧急升序
-             .OrderByIF(dto is { SortField: "isUrgentText",SortRule:1 },d=>d.IsUrgent,OrderByType.Desc) //是否紧急降序
-             .OrderByIF(dto is { SortField: "isSecret",SortRule:0 },d=>d.IsSecret,OrderByType.Asc) //是否紧急升序
-             .OrderByIF(dto is { SortField: "isSecret", SortRule: 1 }, d => d.IsSecret, OrderByType.Desc) //是否紧急降序
-             .OrderByIF(dto is { SortField: "currentStepName", SortRule: 0 }, d => d.CurrentStepName, OrderByType.Asc)//当前节点升序
-             .OrderByIF(dto is { SortField: "currentStepName", SortRule: 1 }, d => d.CurrentStepName, OrderByType.Desc)//当前节点降序
-             .OrderByIF(dto is { SortField: "actualStepAcceptText",SortRule:0 },d=>d.ActualHandleStepAcceptTime.HasValue,OrderByType.Asc) //受理情况升序
-             .OrderByIF(dto is { SortField: "actualStepAcceptText", SortRule: 1 }, d => d.ActualHandleStepAcceptTime.HasValue, OrderByType.Desc) //受理情况降序
-             .OrderByIF(dto is { SortField: "statusText",SortRule:0 },d=>d.Status,OrderByType.Asc) //工单状态升序
-             .OrderByIF(dto is { SortField: "statusText",SortRule:1 },d=>d.Status,OrderByType.Desc) //工单状态降序
-             .OrderByIF(dto is { SortField: "startTime",SortRule:0 },d=>d.StartTime,OrderByType.Asc) //受理时间升序
-             .OrderByIF(dto is { SortField: "startTime",SortRule:1 },d=>d.StartTime,OrderByType.Desc) //受理时间降序
-             .OrderByIF(dto is { SortField: "expiredTime",SortRule:0 },d=>d.ExpiredTime,OrderByType.Asc) //超期时间升序
-             .OrderByIF(dto is { SortField: "expiredTime",SortRule:1 },d=>d.ExpiredTime,OrderByType.Desc) //超期时间降序
-             .OrderByIF(dto is { SortField: "filedTime", SortRule:0 },d=>d.FiledTime,OrderByType.Asc) //办结时间升序
-             .OrderByIF(dto is { SortField: "filedTime", SortRule:1 },d=>d.FiledTime,OrderByType.Desc) //办结时间降序
-             .OrderByIF(dto is { SortField: "orgLevelOneName",SortRule:0 },d=>d.OrgLevelOneName,OrderByType.Asc ) //一级部门升序
-             .OrderByIF(dto is { SortField: "orgLevelOneName",SortRule:1 },d=>d.OrgLevelOneName,OrderByType.Desc ) //一级部门降序
-             .OrderByIF(dto is { SortField: "orgLevelTwoName",SortRule:0 },d=>d.OrgLevelTwoName,OrderByType.Asc) //二级部门升序
-             .OrderByIF(dto is { SortField: "orgLevelTwoName",SortRule:1 },d=>d.OrgLevelTwoName,OrderByType.Desc) //二级部门降序
-             .OrderByIF(dto is { SortField: "actualHandleOrgName",SortRule:0 },d=>d.ActualHandleOrgName,OrderByType.Asc) //接办部门升序
-             .OrderByIF(dto is { SortField: "actualHandleOrgName",SortRule:1 },d=>d.ActualHandleOrgName,OrderByType.Desc) //接办部门降序
-             .OrderByIF(dto is { SortField: "acceptType",SortRule:0 },d=>d.AcceptTypeCode,OrderByType.Asc) //受理类型升序
-             .OrderByIF(dto is { SortField: "acceptType",SortRule:1 },d=>d.AcceptTypeCode,OrderByType.Desc) //受理类型降序
-             .OrderByIF(dto is { SortField: "counterSignTypeText",SortRule:0 },d=>d.CounterSignType,OrderByType.Asc) //是否会签升序
-             .OrderByIF(dto is { SortField: "counterSignTypeText",SortRule:1 },d=>d.CounterSignType,OrderByType.Desc) //是否会签降序
-             .OrderByIF(dto is { SortField: "hotspotSpliceName",SortRule:0 },d=>d.HotspotSpliceName,OrderByType.Asc)//热点分类全称升序
-             .OrderByIF(dto is { SortField: "hotspotSpliceName",SortRule:1 },d=>d.HotspotSpliceName,OrderByType.Desc) //热点分类全称降序
-             .OrderByIF(dto is { SortField: "hotspotName",SortRule:0 },d=>d.HotspotName,OrderByType.Asc) //热点分类升序
-             .OrderByIF(dto is { SortField: "hotspotName",SortRule:1 },d=>d.HotspotName,OrderByType.Desc) //热点分类降序
-             .OrderByIF(dto is { SortField: "acceptorName",SortRule:0 },d=>d.AcceptorName,OrderByType.Asc) //受理人升序
-             .OrderByIF(dto is { SortField: "acceptorName",SortRule:1 },d=>d.AcceptorName,OrderByType.Desc) //受理人降序
-             ;
+        query = query.Includes(x => x.OrderScreens);
+        if (!_appOptions.Value.IsYiBin)
+        {
+            query = query.Includes(x => x.OrderVisits.Where(m => m.VisitState == EVisitState.Visited).ToList())
+         .Includes(x => x.OrderVisits.Where(m => m.VisitState == EVisitState.Visited).ToList(), ovd => ovd.OrderVisitDetails);
+        }
+        query = query
+         .WhereIF(!string.IsNullOrEmpty(dto.Keyword), d => d.Title.Contains(dto.Keyword!)) //标题
+         .WhereIF(!string.IsNullOrEmpty(dto.ProvinceNo), d => d.ProvinceNo.Contains(dto.ProvinceNo)) //省本地编号
+         .WhereIF(!string.IsNullOrEmpty(dto.ReceiveProvinceNo), d => d.ReceiveProvinceNo.Contains(dto.ReceiveProvinceNo)) //省编号
+         .WhereIF(dto.IsSecret.HasValue, d => d.IsSecret == dto.IsSecret.Value)
+         .WhereIF(!string.IsNullOrEmpty(dto.No), d => d.No.Contains(dto.No))//工单编码
+         .WhereIF(!string.IsNullOrEmpty(dto.AcceptType), d => d.AcceptTypeCode == dto.AcceptType) //受理类型
+                                                                                                  //.WhereIF(dto.AcceptTypes.Any(), d => dto.AcceptTypes.Contains(d.AcceptTypeCode)) //受理类型
+         .WhereIF(!string.IsNullOrEmpty(dto.Channel), d => d.SourceChannelCode == dto.Channel)
+         //.WhereIF(dto.Channels.Any(), d => dto.Channels.Contains(d.SourceChannelCode)) //来源渠道
+         //.WhereIF(dto.HotspotIds.Any(), d => dto.HotspotIds.Contains(d.HotspotId)) //热点类型
+         .WhereIF(!string.IsNullOrEmpty(dto.Hotspot), d => d.HotspotSpliceName != null && d.HotspotSpliceName.Contains(dto.Hotspot))
+         .WhereIF(!string.IsNullOrEmpty(dto.TransferPhone), d => d.TransferPhone == dto.TransferPhone!) //转接号码
+                                                                                                        //.WhereIF(dto.OrgCodes.Any(), d => d.Workflow.Assigns.Any(s => dto.OrgCodes.Contains(s.OrgCode)))
+                                                                                                        //.WhereIF(dto.OrgCodes.Any(), d => dto.OrgCodes.Contains(d.ActualHandleOrgCode)) //接办部门
+                                                                                                        //.WhereIF(!string.IsNullOrEmpty(dto.OrgId), d => d.CurrentHandleOrgId == dto.OrgId)//接办部门
+         .WhereIF(!string.IsNullOrEmpty(dto.OrgLevelOneName), d => d.OrgLevelOneName.Contains(dto.OrgLevelOneName)) //一级部门
+         .WhereIF(!string.IsNullOrEmpty(dto.ActualHandleOrgName), d => d.ActualHandleOrgName.Contains(dto.ActualHandleOrgName)) //接办部门(综合查询模糊)
+
+         .WhereIF(dto.CreationTimeStart.HasValue, d => d.CreationTime >= dto.CreationTimeStart) //受理时间开始
+         .WhereIF(dto.CreationTimeEnd.HasValue, d => d.CreationTime <= dto.CreationTimeEnd) //受理时间结束
+                                                                                            //.WhereIF(dto.EmergencyLevels.Any(), d => dto.EmergencyLevels.Contains(d.EmergencyLevel))  //紧急程度
+         .WhereIF(!string.IsNullOrEmpty(dto.FromPhone), d => d.FromPhone.Contains(dto.FromPhone)) //来电号码
+         .WhereIF(!string.IsNullOrEmpty(dto.PhoneNo), d => d.Contact.Contains(dto.PhoneNo)) //联系电话
+                                                                                            //.WhereIF(!string.IsNullOrEmpty(dto.PushTypeCode), d => d.PushTypeCode == dto.PushTypeCode) //推送分类
+         .WhereIF(!string.IsNullOrEmpty(dto.PushTypeCode), x => x.OrderPushTypes.Any(opt => opt.PushTypeCode == dto.PushTypeCode)) //推送分类
+         .WhereIF(dto.ExpiredTimeStart.HasValue, d => d.ExpiredTime >= dto.ExpiredTimeStart) //超期时间开始
+         .WhereIF(dto.ExpiredTimeEnd.HasValue, d => d.ExpiredTime <= dto.ExpiredTimeEnd) //超期时间结束
+                                                                                         //.WhereIF(dto.Statuses.Any(), d => dto.Statuses.Contains(d.Status))  //工单状态
+         .WhereIF(dto.Status.HasValue, d => d.Status == dto.Status) //工单状态
+                                                                    //.WhereIF(dto.Statuses.Any(d => d == EOrderStatus.SpecialToUnAccept), d => d.Status <= EOrderStatus.SpecialToUnAccept)
+         .WhereIF(!string.IsNullOrEmpty(dto.ActualHandlerName), d => d.ActualHandlerName == dto.ActualHandlerName) //接办人
+         .WhereIF(dto.IsScreen == true, d => d.OrderScreens.Any(x => x.Status != EScreenStatus.Refuse)) //有甄别
+         .WhereIF(dto.IsScreen == false, d => !d.OrderScreens.Any(x => x.Status != EScreenStatus.Refuse)) //无甄别
+         .WhereIF(!string.IsNullOrEmpty(dto.CurrentStepCode), d => d.CurrentStepCode == dto.CurrentStepCode) //当前办理节点
+         .WhereIF(dto.ActualHandleTimeStart.HasValue, d => d.ActualHandleTime >= dto.ActualHandleTimeStart) //办结时间开始
+         .WhereIF(dto.ActualHandleTimeEnd.HasValue, d => d.ActualHandleTime <= dto.ActualHandleTimeEnd) //办结时间结束
+         .WhereIF(dto.IsOverTime == true,
+             d => (d.ExpiredTime < DateTime.Now && d.Status < EOrderStatus.Filed) ||
+                  (d.ExpiredTime < d.ActualHandleTime && d.Status >= EOrderStatus.Filed)) //是 超期
+         .WhereIF(dto.IsOverTime == false,
+             d => (d.ExpiredTime > DateTime.Now && d.Status < EOrderStatus.Filed) ||
+                  (d.ExpiredTime > d.ActualHandleTime && d.Status >= EOrderStatus.Filed)) //否 超期
+         .WhereIF(dto.IdentityType != null, d => d.IdentityType == dto.IdentityType) //来电主体
+         .WhereIF(!string.IsNullOrEmpty(dto.FromName), d => d.FromName == dto.FromName) //来电人姓名
+                                                                                        //.WhereIF(dto.AreaCodes.Any(), d => dto.AreaCodes.Contains(d.AreaCode)) //区域
+                                                                                        //.WhereIF(!string.IsNullOrEmpty(dto.AreaCode), d => d.AreaCode == dto.AreaCode)//区域
+         .WhereIF(!string.IsNullOrEmpty(dto.AreaCode) && dto.AreaCode.LastIndexOf("00") > 0,
+             d => d.AreaCode.StartsWith(SqlFunc.Substring(dto.AreaCode, 0, 4)))
+         .WhereIF(!string.IsNullOrEmpty(dto.AreaCode) && dto.AreaCode.LastIndexOf("00") <= 0, d => d.AreaCode.StartsWith(dto.AreaCode))
+         .WhereIF(dto.IsProvinceOrder.HasValue && dto.IsProvinceOrder == true, d => d.Source == ESource.ProvinceStraight)
+         .WhereIF(dto.IsProvinceOrder.HasValue && dto.IsProvinceOrder == false, d => d.Source != ESource.ProvinceStraight)
+         .WhereIF(!string.IsNullOrEmpty(dto.SensitiveWord), d => SqlFunc.JsonArrayAny(d.Sensitive, dto.SensitiveWord))
+         .WhereIF(dto.IsSensitiveWord.HasValue && dto.IsSensitiveWord == true,
+             d => d.Sensitive != null && SqlFunc.JsonArrayLength(d.Sensitive) > 0)
+         .WhereIF(dto.IsUrgent.HasValue, d => d.IsUrgent == dto.IsUrgent.Value)
+         .WhereIF(!string.IsNullOrEmpty(dto.ProvinceChannel) && dto.ProvinceChannel == "1", d => d.Source == ESource.ProvinceStraight &&
+             d.SourceChannelCode == "SZMHD" && d.IsProvince == false) //政民互动直派
+         .WhereIF(!string.IsNullOrEmpty(dto.ProvinceChannel) && dto.ProvinceChannel == "2", d => d.Source == ESource.ProvinceStraight &&
+             d.SourceChannelCode == "SZMHD" && d.IsProvince == true) //政民互动
+         .WhereIF(!string.IsNullOrEmpty(dto.ProvinceChannel) && dto.ProvinceChannel == "3", d => d.Source == ESource.ProvinceStraight &&
+             d.SourceChannelCode == "S12345" && d.IsProvince == true) //省12345
+         .WhereIF(!string.IsNullOrEmpty(dto.ContentRetrieval),
+             d => d.Title.Contains(dto.ContentRetrieval) || d.Content.Contains(dto.ContentRetrieval) || d.FileOpinion.Contains(dto.ContentRetrieval) || d.ActualOpinion.Contains(dto.ContentRetrieval))
+         .WhereIF(dto.IsSgin.HasValue && dto.IsSgin == true, d => d.CurrentStepAcceptTime != null)
+         .WhereIF(dto.IsSgin.HasValue && dto.IsSgin == false, d => d.CurrentStepAcceptTime == null)
+         .WhereIF(dto.FiledType is FiledType.CenterFiled, d => d.ProcessType == EProcessType.Zhiban)
+         .WhereIF(dto.FiledType is FiledType.OrgFiled, d => d.ProcessType == EProcessType.Jiaoban)
+         .WhereIF(!string.IsNullOrEmpty(dto.OrderTagCode), d => d.OrderTagCode == dto.OrderTagCode)
+         .WhereIF(!string.IsNullOrEmpty(dto.FocusOnEvents), d => SqlFunc.SplitIn(d.FocusOnEvents, dto.FocusOnEvents))
+         .OrderByIF(string.IsNullOrEmpty(dto.SortField), d => d.CreationTime, OrderByType.Desc)//默认排序时间为创建时间
+         .OrderByIF(dto is { SortField: "no", SortRule: 0 }, d => d.No, OrderByType.Asc) //工单编号升序
+         .OrderByIF(dto is { SortField: "no", SortRule: 1 }, d => d.No, OrderByType.Desc) //工单编号降序
+         .OrderByIF(dto is { SortField: "isProvinceText", SortRule: 0 }, d => d.IsProvince, OrderByType.Asc)//是否省工单升序
+         .OrderByIF(dto is { SortField: "isProvinceText", SortRule: 1 }, d => d.IsProvince, OrderByType.Desc)//是否省工单降序
+         .OrderByIF(dto is { SortField: "reTransactNum", SortRule: 0 }, d => d.ReTransactNum, OrderByType.Asc) //重办次数升序
+         .OrderByIF(dto is { SortField: "reTransactNum", SortRule: 1 }, d => d.ReTransactNum, OrderByType.Desc) //重办次数降序
+         .OrderByIF(dto is { SortField: "isUrgentText", SortRule: 0 }, d => d.IsUrgent, OrderByType.Asc) //是否紧急升序
+         .OrderByIF(dto is { SortField: "isUrgentText", SortRule: 1 }, d => d.IsUrgent, OrderByType.Desc) //是否紧急降序
+         .OrderByIF(dto is { SortField: "isSecret", SortRule: 0 }, d => d.IsSecret, OrderByType.Asc) //是否紧急升序
+         .OrderByIF(dto is { SortField: "isSecret", SortRule: 1 }, d => d.IsSecret, OrderByType.Desc) //是否紧急降序
+         .OrderByIF(dto is { SortField: "currentStepName", SortRule: 0 }, d => d.CurrentStepName, OrderByType.Asc)//当前节点升序
+         .OrderByIF(dto is { SortField: "currentStepName", SortRule: 1 }, d => d.CurrentStepName, OrderByType.Desc)//当前节点降序
+         .OrderByIF(dto is { SortField: "actualStepAcceptText", SortRule: 0 }, d => d.ActualHandleStepAcceptTime.HasValue, OrderByType.Asc) //受理情况升序
+         .OrderByIF(dto is { SortField: "actualStepAcceptText", SortRule: 1 }, d => d.ActualHandleStepAcceptTime.HasValue, OrderByType.Desc) //受理情况降序
+         .OrderByIF(dto is { SortField: "statusText", SortRule: 0 }, d => d.Status, OrderByType.Asc) //工单状态升序
+         .OrderByIF(dto is { SortField: "statusText", SortRule: 1 }, d => d.Status, OrderByType.Desc) //工单状态降序
+         .OrderByIF(dto is { SortField: "startTime", SortRule: 0 }, d => d.StartTime, OrderByType.Asc) //受理时间升序
+         .OrderByIF(dto is { SortField: "startTime", SortRule: 1 }, d => d.StartTime, OrderByType.Desc) //受理时间降序
+         .OrderByIF(dto is { SortField: "expiredTime", SortRule: 0 }, d => d.ExpiredTime, OrderByType.Asc) //超期时间升序
+         .OrderByIF(dto is { SortField: "expiredTime", SortRule: 1 }, d => d.ExpiredTime, OrderByType.Desc) //超期时间降序
+         .OrderByIF(dto is { SortField: "filedTime", SortRule: 0 }, d => d.FiledTime, OrderByType.Asc) //办结时间升序
+         .OrderByIF(dto is { SortField: "filedTime", SortRule: 1 }, d => d.FiledTime, OrderByType.Desc) //办结时间降序
+         .OrderByIF(dto is { SortField: "orgLevelOneName", SortRule: 0 }, d => d.OrgLevelOneName, OrderByType.Asc) //一级部门升序
+         .OrderByIF(dto is { SortField: "orgLevelOneName", SortRule: 1 }, d => d.OrgLevelOneName, OrderByType.Desc) //一级部门降序
+         .OrderByIF(dto is { SortField: "orgLevelTwoName", SortRule: 0 }, d => d.OrgLevelTwoName, OrderByType.Asc) //二级部门升序
+         .OrderByIF(dto is { SortField: "orgLevelTwoName", SortRule: 1 }, d => d.OrgLevelTwoName, OrderByType.Desc) //二级部门降序
+         .OrderByIF(dto is { SortField: "actualHandleOrgName", SortRule: 0 }, d => d.ActualHandleOrgName, OrderByType.Asc) //接办部门升序
+         .OrderByIF(dto is { SortField: "actualHandleOrgName", SortRule: 1 }, d => d.ActualHandleOrgName, OrderByType.Desc) //接办部门降序
+         .OrderByIF(dto is { SortField: "acceptType", SortRule: 0 }, d => d.AcceptTypeCode, OrderByType.Asc) //受理类型升序
+         .OrderByIF(dto is { SortField: "acceptType", SortRule: 1 }, d => d.AcceptTypeCode, OrderByType.Desc) //受理类型降序
+         .OrderByIF(dto is { SortField: "counterSignTypeText", SortRule: 0 }, d => d.CounterSignType, OrderByType.Asc) //是否会签升序
+         .OrderByIF(dto is { SortField: "counterSignTypeText", SortRule: 1 }, d => d.CounterSignType, OrderByType.Desc) //是否会签降序
+         .OrderByIF(dto is { SortField: "hotspotSpliceName", SortRule: 0 }, d => d.HotspotSpliceName, OrderByType.Asc)//热点分类全称升序
+         .OrderByIF(dto is { SortField: "hotspotSpliceName", SortRule: 1 }, d => d.HotspotSpliceName, OrderByType.Desc) //热点分类全称降序
+         .OrderByIF(dto is { SortField: "hotspotName", SortRule: 0 }, d => d.HotspotName, OrderByType.Asc) //热点分类升序
+         .OrderByIF(dto is { SortField: "hotspotName", SortRule: 1 }, d => d.HotspotName, OrderByType.Desc) //热点分类降序
+         .OrderByIF(dto is { SortField: "acceptorName", SortRule: 0 }, d => d.AcceptorName, OrderByType.Asc) //受理人升序
+         .OrderByIF(dto is { SortField: "acceptorName", SortRule: 1 }, d => d.AcceptorName, OrderByType.Desc) //受理人降序
+         ;
 
         return query;
     }
@@ -1326,8 +1327,8 @@ public class OrderApplication : IOrderApplication, IScopeDependency
         var quer = _orderRepository.Queryable()
             .InnerJoin<SystemOrganize>((x, so) => x.ActualHandleOrgCode == so.Id && so.Level == 1)
             .Where((x, so) => x.CreationTime >= dto.StartTime && x.CreationTime <= dto.EndTime)
-			//.WhereIF(dto.Statuses.Any(), x => dto.Statuses.Contains(x.Status))  //工单状态
-			.WhereIF(dto.QueryType == 1, (x, so) => x.Status >= EOrderStatus.Filed && x.ExpiredTime < x.FiledTime) //业务已办超期
+            //.WhereIF(dto.Statuses.Any(), x => dto.Statuses.Contains(x.Status))  //工单状态
+            .WhereIF(dto.QueryType == 1, (x, so) => x.Status >= EOrderStatus.Filed && x.ExpiredTime < x.FiledTime) //业务已办超期
             .WhereIF(dto.QueryType == 3, (x, so) => x.Status < EOrderStatus.Filed && x.ExpiredTime < SqlFunc.GetDate()) //业务待办超期
             .WhereIF(dto.TypeId != null && dto.TypeId == 1, (x, so) => x.IdentityType == EIdentityType.Citizen)
             .WhereIF(dto.TypeId != null && dto.TypeId == 2, (x, so) => x.IdentityType == EIdentityType.Enterprise)
@@ -1353,7 +1354,7 @@ public class OrderApplication : IOrderApplication, IScopeDependency
 
             quer = _orderRepository.Queryable().InnerJoin(queryCountersign, (o, w) => o.Id == w.Id)
                 .Select((o, w) => new Order { DaysOverdueOrgName = w.HandlerOrgName, Id = o.Id.SelectAll() })
-				.WhereIF(!string.IsNullOrEmpty(dto.No), o => o.No == dto.No);
+                .WhereIF(!string.IsNullOrEmpty(dto.No), o => o.No == dto.No);
             //quer = _orderRepository.UnionAll(quer, queryCountersignOrder);
         }
 
@@ -1372,7 +1373,7 @@ public class OrderApplication : IOrderApplication, IScopeDependency
         var quer = _orderRepository.Queryable()
             .InnerJoin<SystemOrganize>((x, so) => x.ActualHandleOrgCode == so.Id && so.Level == 1)
             .Where((x, so) => x.CreationTime >= dto.StartTime && x.CreationTime <= dto.EndTime)
-			.WhereIF(dto.Statuses.Any(), (x, so) => dto.Statuses.Contains(x.Status)) //工单状态
+            .WhereIF(dto.Statuses.Any(), (x, so) => dto.Statuses.Contains(x.Status)) //工单状态
             .WhereIF(dto.ExpiredType is 2, (x, so) => x.OrderDelays.Any(x => x.DelayState == EDelayState.Pass))
             .Where((x, so) =>
                 (x.Status >= EOrderStatus.Filed && x.ExpiredTime < x.FiledTime) ||
@@ -1398,7 +1399,7 @@ public class OrderApplication : IOrderApplication, IScopeDependency
             .Select((o, w) => new Order { DaysOverdueOrgName = w.HandlerOrgName, Id = o.Id.SelectAll() });
         quer = _orderRepository.UnionAll(quer, queryCountersignOrder).MergeTable()
             .InnerJoin<SystemOrganize>((x, so) => x.ActualHandleOrgCode == so.Id)
-			.WhereIF(!string.IsNullOrEmpty(dto.No), (x, so) => x.No == dto.No);
+            .WhereIF(!string.IsNullOrEmpty(dto.No), (x, so) => x.No == dto.No);
         return quer;
     }
 
@@ -1412,7 +1413,7 @@ public class OrderApplication : IOrderApplication, IScopeDependency
         return _orderSpecialDetailRepository.Queryable()
             .Includes(x => x.OrderSpecial)
             .WhereIF(!string.IsNullOrEmpty(dto.OrgName), x => x.OrgName.Contains(dto.OrgName!))
-            .Where(x => x.OrderSpecial.SpecialType == ESpecialType.ReTransact || x.OrderSpecial.SpecialType == ESpecialType.SendBack )
+            .Where(x => x.OrderSpecial.SpecialType == ESpecialType.ReTransact || x.OrderSpecial.SpecialType == ESpecialType.SendBack)
             .Where(x => x.OrderSpecial.CreationTime >= dto.StartTime)
             .Where(x => x.OrderSpecial.CreationTime <= dto.EndTime)
             .GroupBy(x => new { Time = x.OrderSpecial.CreationTime.ToString("yyyy-MM-dd"), x.OrgId, x.OrgName })
@@ -1786,10 +1787,10 @@ public class OrderApplication : IOrderApplication, IScopeDependency
             dt.Columns.Remove("Column1");
 
         //计算小计
-        for (int i = 0;i < dt.Rows.Count;i++)
+        for (int i = 0; i < dt.Rows.Count; i++)
         {
             int sumcount = 0;
-            for (int j = 1;j < dt.Columns.Count - 1;j++)
+            for (int j = 1; j < dt.Columns.Count - 1; j++)
             {
                 sumcount += Convert.ToInt32(dt.Rows[i][j].ToString());
             }
@@ -1801,10 +1802,10 @@ public class OrderApplication : IOrderApplication, IScopeDependency
         DataRow totalRow = dt.NewRow();
         if (dt.Columns[0].ColumnName == "HotspotName") totalRow["HotspotName"] = "合计";
         else totalRow["一级热点"] = "合计";
-        for (int i = 1;i < dt.Columns.Count;i++)
+        for (int i = 1; i < dt.Columns.Count; i++)
         {
             int sumcount = 0;
-            for (int j = 0;j < dt.Rows.Count;j++)
+            for (int j = 0; j < dt.Rows.Count; j++)
             {
                 sumcount += Convert.ToInt32(dt.Rows[j][i].ToString());
             }
@@ -2318,7 +2319,7 @@ public class OrderApplication : IOrderApplication, IScopeDependency
     public ISugarQueryable<OrderScreenAuditVo> OrderScreenAudit(OrderScreenAuditPagedRequest dto)
     {
         var query = _workflowTraceRepository.Queryable()
-            .Where(x=>x.ModuleCode == "OrderScreen")
+            .Where(x => x.ModuleCode == "OrderScreen")
             .WhereIF(dto.StartTime.HasValue && dto.EndTime.HasValue, x => x.HandleTime >= dto.StartTime && x.HandleTime <= dto.EndTime)
             .WhereIF(!string.IsNullOrEmpty(dto.AuditUserName), x => x.HandlerName == dto.AuditUserName)
             .Where(x => x.HandlerName != null && x.HandlerName != "")
@@ -2414,21 +2415,21 @@ public class OrderApplication : IOrderApplication, IScopeDependency
         }
 
         return query
-	        .Includes(d => d.Order)
-	        .Includes(d => d.VisitDetail)
-	        .Includes(d => d.Visit, v => v.Order)
-	        .Includes(d => d.Workflow)
-	        .Includes(d => d.ScreenDetails.Where(sd => sd.AuditUserId == _sessionContext.UserId).OrderByDescending(sd => sd.AuditTime).Take(1)
-		        .ToList())
-	        .WhereIF(!string.IsNullOrEmpty(dto.Title), d => d.Visit.Order.Title.Contains(dto.Title!))
-	        .WhereIF(!string.IsNullOrEmpty(dto.No), d => d.Visit.Order.No.Contains(dto.No!))
-	        .WhereIF(dto.TabStatus is EScreenStatus.Apply, d => (d.Status == EScreenStatus.Apply || d.Status == EScreenStatus.Approval || (d.Status == EScreenStatus.SendBack && d.SendBackApply == false)))
-	        .WhereIF(dto.TabStatus.HasValue && dto.Status == EScreenStatus.MyHandle, d => (d.Status != EScreenStatus.Apply))
-			.WhereIF(dto.DataScope is 1, d => d.CreatorId == _sessionContext.RequiredUserId)
+            .Includes(d => d.Order)
+            .Includes(d => d.VisitDetail)
+            .Includes(d => d.Visit, v => v.Order)
+            .Includes(d => d.Workflow)
+            .Includes(d => d.ScreenDetails.Where(sd => sd.AuditUserId == _sessionContext.UserId).OrderByDescending(sd => sd.AuditTime).Take(1)
+                .ToList())
+            .WhereIF(!string.IsNullOrEmpty(dto.Title), d => d.Visit.Order.Title.Contains(dto.Title!))
+            .WhereIF(!string.IsNullOrEmpty(dto.No), d => d.Visit.Order.No.Contains(dto.No!))
+            .WhereIF(dto.TabStatus is EScreenStatus.Apply, d => (d.Status == EScreenStatus.Apply || d.Status == EScreenStatus.Approval || (d.Status == EScreenStatus.SendBack && d.SendBackApply == false)))
+            .WhereIF(dto.TabStatus.HasValue && dto.Status == EScreenStatus.MyHandle, d => (d.Status != EScreenStatus.Apply))
+            .WhereIF(dto.DataScope is 1, d => d.CreatorId == _sessionContext.RequiredUserId)
             .WhereIF(dto.Status.HasValue, d => d.Status == dto.Status)
-            .WhereIF(dto.QueryScreenType is EQueryOrderScreenType.Org , d=>d.ScreenType == EOrderScreenType.Org)
+            .WhereIF(dto.QueryScreenType is EQueryOrderScreenType.Org, d => d.ScreenType == EOrderScreenType.Org)
             .WhereIF(dto.QueryScreenType is EQueryOrderScreenType.Seat, d => d.ScreenType == EOrderScreenType.Seat)
-			.WhereIF(!string.IsNullOrEmpty(dto.AcceptType), d => d.Order!.AcceptTypeCode! == dto.AcceptType!)
+            .WhereIF(!string.IsNullOrEmpty(dto.AcceptType), d => d.Order!.AcceptTypeCode! == dto.AcceptType!)
             .WhereIF(!string.IsNullOrEmpty(dto.HotspotSpliceName), d => d.Order!.Hotspot.HotSpotFullName!.StartsWith(dto.HotspotSpliceName!))
             .WhereIF(!string.IsNullOrEmpty(dto.SourceChannel), d => d.Order!.SourceChannelCode! == dto.SourceChannel!)
             .WhereIF(!string.IsNullOrEmpty(dto.VisitOrgName), d => d.VisitDetail.VisitOrgName!.Contains(dto.VisitOrgName!))
@@ -2457,7 +2458,8 @@ public class OrderApplication : IOrderApplication, IScopeDependency
             .OrderByIF(dto is { SortRule: 1, SortField: "creationTime" } || dto.SortRule is null, d => d.CreationTime, OrderByType.Desc);
     }
 
-    public ISugarQueryable<OrderVisitDetail> MayScreenList(MayScreenListDto dto) {
+    public ISugarQueryable<OrderVisitDetail> MayScreenList(MayScreenListDto dto)
+    {
         var query = _orderVisitedDetailRepository.Queryable(false, true)
             .Includes(x => x.OrderVisit)
             .Includes(x => x.OrderVisit, y => y.Order)
@@ -2476,7 +2478,7 @@ public class OrderApplication : IOrderApplication, IScopeDependency
                      false)
             .WhereIF(!string.IsNullOrEmpty(dto.No), x => x.OrderVisit.Order!.No!.Contains(dto.No!))
             .WhereIF(!string.IsNullOrEmpty(dto.NameOrNo), x => x.OrderVisit.Order!.AcceptorName == dto.NameOrNo! || x.OrderVisit.Order!.AcceptorStaffNo == dto.NameOrNo!) //受理人/坐席
-			.WhereIF(!string.IsNullOrEmpty(dto.Title), x => x.OrderVisit.Order!.Title!.Contains(dto.Title!))
+            .WhereIF(!string.IsNullOrEmpty(dto.Title), x => x.OrderVisit.Order!.Title!.Contains(dto.Title!))
             .WhereIF(dto.IsProvince.HasValue, x => x.OrderVisit.Order!.IsProvince == dto.IsProvince)
             .WhereIF(!string.IsNullOrEmpty(dto.AcceptType), x => x.OrderVisit.Order!.AcceptTypeCode! == dto.AcceptType!)
             .WhereIF(!string.IsNullOrEmpty(dto.HotspotSpliceName),
@@ -2505,111 +2507,111 @@ public class OrderApplication : IOrderApplication, IScopeDependency
             //.WhereIF(!string.IsNullOrEmpty(dto.OrgNoSatisfiedReason),
             //    x => SqlFunc.JsonField(x.OrgNoSatisfiedReason, "Key") == dto.OrgNoSatisfiedReason)
             .Where(x => x.OrderVisit.VisitState == EVisitState.Visited && x.OrderVisit.IsCanHandle);
-		if (_sessionContext.OrgId != null && !_sessionContext.OrgIsCenter)
-		{
-			query.WhereIF(!string.IsNullOrEmpty(dto.Keyword),
-					x => x.OrderVisit.Order.Title.Contains(dto.Keyword!) ||
-						 x.OrderVisit.Order.No.Contains(dto.Keyword!))
-				.Where(x => x.VisitTarget == EVisitTarget.Org && x.VisitOrgCode == _sessionContext.OrgId && (
-					SqlFunc.JsonField(x.OrgProcessingResults, "Key") == "1" ||
-					SqlFunc.JsonField(x.OrgProcessingResults, "Key") == "2" ||
-					SqlFunc.JsonField(x.OrgHandledAttitude, "Key") == "1" ||
-					SqlFunc.JsonField(x.OrgHandledAttitude, "Key") == "2"
-				));
-		}
-		else
-		{
-			query.WhereIF(!string.IsNullOrEmpty(dto.Keyword),
-					x => x.OrderVisit.Order.Title.Contains(dto.Keyword!) ||
-						 x.OrderVisit.Order.No.Contains(dto.Keyword!))
-				.WhereIF(dto.ScreenType == EOrderScreenType.Org, x => x.VisitTarget == EVisitTarget.Org && (
-					SqlFunc.JsonField(x.OrgProcessingResults, "Key") == "1" ||
-					SqlFunc.JsonField(x.OrgProcessingResults, "Key") == "2" ||
-					SqlFunc.JsonField(x.OrgHandledAttitude, "Key") == "1" ||
-					SqlFunc.JsonField(x.OrgHandledAttitude, "Key") == "2"
-				))
-				.WhereIF(dto.ScreenType == EOrderScreenType.Seat,
-					x => x.VisitTarget == EVisitTarget.Seat &&
-						 (x.SeatEvaluate == ESeatEvaluate.VeryNoSatisfied || x.SeatEvaluate == ESeatEvaluate.NoSatisfied))
-				;
-		}
-
-		 return query.OrderByIF(dto is { SortRule: 0, SortField: "order.startTime" }, x => x.OrderVisit.Order.StartTime, OrderByType.Asc)
-			.OrderByIF(dto is { SortRule: 1, SortField: "order.startTime" }, x => x.OrderVisit.Order.StartTime, OrderByType.Desc)
-			.OrderByIF(dto is { SortRule: 0, SortField: "order.actualHandleTime" }, x => x.OrderVisit.Order.ActualHandleTime, OrderByType.Asc)
-			.OrderByIF(dto is { SortRule: 1, SortField: "order.actualHandleTime" }, x => x.OrderVisit.Order.ActualHandleTime, OrderByType.Desc)
-			.OrderByIF(dto is { SortRule: 0, SortField: "order.filedTime" }, x => x.OrderVisit.Order.FiledTime, OrderByType.Asc)
-			.OrderByIF(dto is { SortRule: 1, SortField: "order.filedTime" }, x => x.OrderVisit.Order.FiledTime, OrderByType.Desc)
-			.OrderByIF(dto is { SortRule: 0, SortField: "orderVisit.visitTime" }, x => x.OrderVisit.VisitTime, OrderByType.Asc)
-			.OrderByIF(dto is { SortRule: 1, SortField: "orderVisit.visitTime" }, x => x.OrderVisit.VisitTime, OrderByType.Desc)
-			.OrderByIF(dto.SortRule is null, x => x.CreationTime, OrderByType.Desc);
-	}
-	#endregion
-
-	#region 特提
-
-	/// <summary>
-	/// 特提验证
-	/// </summary>
-	/// <param name="dto"></param>
-	public async Task SpecialVerify(OrderSpecialAddDto dto, Order order, CancellationToken cancellationToken)
-	{
-		var screen = await _orderScreenRepository.Queryable().Where(x => x.OrderId == dto.OrderId && (int)x.Status < 2).ToListAsync(cancellationToken);
-		//var order = await _orderRepository.Queryable().Includes(d => d.Workflow).FirstAsync(d => d.Id == dto.OrderId);
-		var sendBackAudit = await _orderSendBackAuditRepository.Queryable().Where(x => x.OrderId == dto.OrderId && x.State == ESendBackAuditState.Apply).ToListAsync(cancellationToken);
-		//if (_appOptions.Value.IsYiBin)
-		//{
-		//	if (screen.Any())
-		//	{
-		//		_orderScreenRepository.RemoveRangeAsync(screen, true, cancellationToken);
-		//	}
-
-		//	if (sendBackAudit.Any())
-		//	{
-		//		_orderSendBackAuditRepository.RemoveRangeAsync(sendBackAudit, true, cancellationToken);
-		//	}
-
-		//	if (order.Workflow.IsInCountersign)
-		//	{
-		//		var workflowStep = await _workflowStepRepository.Queryable().Where(x => x.Id == order.Workflow.TopCountersignStepId).FirstAsync(cancellationToken);
-		//		if (workflowStep != null)
-		//		{
-		//			var dtoEnd = new EndCountersignDto() { CountersignId = workflowStep.StartCountersignId };
-		//			await EndCountersign(dtoEnd,cancellationToken);
-		//		}
-		//	}
-		//}
-		//else
-		//{
-			if (screen.Any()) throw UserFriendlyException.SameMessage("工单存在甄别中的信息!");
-
-			if (sendBackAudit.Any())
-				throw UserFriendlyException.SameMessage("该工单存在正在审核中的退回,不能办理");
-
-			if (order.Workflow.IsInCountersign) throw UserFriendlyException.SameMessage("工单会签中,无法进行特提!");
-		//}
-	}
-
-	public async Task EndCountersign( EndCountersignDto dto, CancellationToken cancellationToken)
-	{
-		var workflow = await _workflowDomainService.TerminalCountersignAsync(dto.CountersignId, cancellationToken);
-		var order = await _orderRepository.GetAsync(d => d.WorkflowId == workflow.Id, cancellationToken);
-		if (order is null)
-			throw new UserFriendlyException($"工单未开启流程, workflowId: {workflow.Id}");
-		order.UpdateHandlingStatus(workflow.IsInCountersign);
-		_mapper.Map(workflow, order);
-		await _orderRepository.UpdateAsync(order, cancellationToken);
-	}
-	#endregion
-
-	#region private
-	/// <summary>
-	/// 接受外部工单(除省平台)
-	/// </summary>
-	/// <param name="dto"></param>
-	/// <param name="cancellationToken"></param>
-	/// <returns></returns>
-	private async Task<AddOrderResponse> ReceiveOrderFromOtherPlatformAsync(AddOrderDto dto, List<FileDto> files, CancellationToken cancellationToken)
+        if (_sessionContext.OrgId != null && !_sessionContext.OrgIsCenter)
+        {
+            query.WhereIF(!string.IsNullOrEmpty(dto.Keyword),
+                    x => x.OrderVisit.Order.Title.Contains(dto.Keyword!) ||
+                         x.OrderVisit.Order.No.Contains(dto.Keyword!))
+                .Where(x => x.VisitTarget == EVisitTarget.Org && x.VisitOrgCode == _sessionContext.OrgId && (
+                    SqlFunc.JsonField(x.OrgProcessingResults, "Key") == "1" ||
+                    SqlFunc.JsonField(x.OrgProcessingResults, "Key") == "2" ||
+                    SqlFunc.JsonField(x.OrgHandledAttitude, "Key") == "1" ||
+                    SqlFunc.JsonField(x.OrgHandledAttitude, "Key") == "2"
+                ));
+        }
+        else
+        {
+            query.WhereIF(!string.IsNullOrEmpty(dto.Keyword),
+                    x => x.OrderVisit.Order.Title.Contains(dto.Keyword!) ||
+                         x.OrderVisit.Order.No.Contains(dto.Keyword!))
+                .WhereIF(dto.ScreenType == EOrderScreenType.Org, x => x.VisitTarget == EVisitTarget.Org && (
+                    SqlFunc.JsonField(x.OrgProcessingResults, "Key") == "1" ||
+                    SqlFunc.JsonField(x.OrgProcessingResults, "Key") == "2" ||
+                    SqlFunc.JsonField(x.OrgHandledAttitude, "Key") == "1" ||
+                    SqlFunc.JsonField(x.OrgHandledAttitude, "Key") == "2"
+                ))
+                .WhereIF(dto.ScreenType == EOrderScreenType.Seat,
+                    x => x.VisitTarget == EVisitTarget.Seat &&
+                         (x.SeatEvaluate == ESeatEvaluate.VeryNoSatisfied || x.SeatEvaluate == ESeatEvaluate.NoSatisfied))
+                ;
+        }
+
+        return query.OrderByIF(dto is { SortRule: 0, SortField: "order.startTime" }, x => x.OrderVisit.Order.StartTime, OrderByType.Asc)
+           .OrderByIF(dto is { SortRule: 1, SortField: "order.startTime" }, x => x.OrderVisit.Order.StartTime, OrderByType.Desc)
+           .OrderByIF(dto is { SortRule: 0, SortField: "order.actualHandleTime" }, x => x.OrderVisit.Order.ActualHandleTime, OrderByType.Asc)
+           .OrderByIF(dto is { SortRule: 1, SortField: "order.actualHandleTime" }, x => x.OrderVisit.Order.ActualHandleTime, OrderByType.Desc)
+           .OrderByIF(dto is { SortRule: 0, SortField: "order.filedTime" }, x => x.OrderVisit.Order.FiledTime, OrderByType.Asc)
+           .OrderByIF(dto is { SortRule: 1, SortField: "order.filedTime" }, x => x.OrderVisit.Order.FiledTime, OrderByType.Desc)
+           .OrderByIF(dto is { SortRule: 0, SortField: "orderVisit.visitTime" }, x => x.OrderVisit.VisitTime, OrderByType.Asc)
+           .OrderByIF(dto is { SortRule: 1, SortField: "orderVisit.visitTime" }, x => x.OrderVisit.VisitTime, OrderByType.Desc)
+           .OrderByIF(dto.SortRule is null, x => x.CreationTime, OrderByType.Desc);
+    }
+    #endregion
+
+    #region 特提
+
+    /// <summary>
+    /// 特提验证
+    /// </summary>
+    /// <param name="dto"></param>
+    public async Task SpecialVerify(OrderSpecialAddDto dto, Order order, CancellationToken cancellationToken)
+    {
+        var screen = await _orderScreenRepository.Queryable().Where(x => x.OrderId == dto.OrderId && (int)x.Status < 2).ToListAsync(cancellationToken);
+        //var order = await _orderRepository.Queryable().Includes(d => d.Workflow).FirstAsync(d => d.Id == dto.OrderId);
+        var sendBackAudit = await _orderSendBackAuditRepository.Queryable().Where(x => x.OrderId == dto.OrderId && x.State == ESendBackAuditState.Apply).ToListAsync(cancellationToken);
+        //if (_appOptions.Value.IsYiBin)
+        //{
+        //	if (screen.Any())
+        //	{
+        //		_orderScreenRepository.RemoveRangeAsync(screen, true, cancellationToken);
+        //	}
+
+        //	if (sendBackAudit.Any())
+        //	{
+        //		_orderSendBackAuditRepository.RemoveRangeAsync(sendBackAudit, true, cancellationToken);
+        //	}
+
+        //	if (order.Workflow.IsInCountersign)
+        //	{
+        //		var workflowStep = await _workflowStepRepository.Queryable().Where(x => x.Id == order.Workflow.TopCountersignStepId).FirstAsync(cancellationToken);
+        //		if (workflowStep != null)
+        //		{
+        //			var dtoEnd = new EndCountersignDto() { CountersignId = workflowStep.StartCountersignId };
+        //			await EndCountersign(dtoEnd,cancellationToken);
+        //		}
+        //	}
+        //}
+        //else
+        //{
+        if (screen.Any()) throw UserFriendlyException.SameMessage("工单存在甄别中的信息!");
+
+        if (sendBackAudit.Any())
+            throw UserFriendlyException.SameMessage("该工单存在正在审核中的退回,不能办理");
+
+        if (order.Workflow.IsInCountersign) throw UserFriendlyException.SameMessage("工单会签中,无法进行特提!");
+        //}
+    }
+
+    public async Task EndCountersign(EndCountersignDto dto, CancellationToken cancellationToken)
+    {
+        var workflow = await _workflowDomainService.TerminalCountersignAsync(dto.CountersignId, cancellationToken);
+        var order = await _orderRepository.GetAsync(d => d.WorkflowId == workflow.Id, cancellationToken);
+        if (order is null)
+            throw new UserFriendlyException($"工单未开启流程, workflowId: {workflow.Id}");
+        order.UpdateHandlingStatus(workflow.IsInCountersign);
+        _mapper.Map(workflow, order);
+        await _orderRepository.UpdateAsync(order, cancellationToken);
+    }
+    #endregion
+
+    #region private
+    /// <summary>
+    /// 接受外部工单(除省平台)
+    /// </summary>
+    /// <param name="dto"></param>
+    /// <param name="cancellationToken"></param>
+    /// <returns></returns>
+    private async Task<AddOrderResponse> ReceiveOrderFromOtherPlatformAsync(AddOrderDto dto, List<FileDto> files, CancellationToken cancellationToken)
     {
         if (string.IsNullOrEmpty(dto.ExternalId))
             throw new UserFriendlyException("工单外部编号不能为空");
@@ -2697,36 +2699,36 @@ public class OrderApplication : IOrderApplication, IScopeDependency
 
             _mapper.Map(expiredTimeConfig, order);
             await _orderRepository.UpdateAsync(order, cancellationToken);
-			//特提(撤回至发起)
-			if (!string.IsNullOrEmpty(order.WorkflowId))
+            //特提(撤回至发起)
+            if (!string.IsNullOrEmpty(order.WorkflowId))
             {
                 var nextHandler = new List<FlowStepHandler>();
-				if (_appOptions.Value.IsZiGong)
-	            {
-					// 平均派单
-					var averageSendOrder = bool.Parse(_systemSettingCacheManager.GetSetting(SettingConstants.AverageSendOrder).SettingValue[0]);
-					if (averageSendOrder)
-					{
+                if (_appOptions.Value.IsZiGong)
+                {
+                    // 平均派单
+                    var averageSendOrder = bool.Parse(_systemSettingCacheManager.GetSetting(SettingConstants.AverageSendOrder).SettingValue[0]);
+                    if (averageSendOrder)
+                    {
                         var handler = await _orderDomainService.AverageOrder(cancellationToken);
                         nextHandler = new List<FlowStepHandler> { handler };
                     }
-				}
-	           
-				//await _workflowDomainService.RecallToStartStepAsync(order.WorkflowId, "省工单重派", current, order.Status >= EOrderStatus.Filed, cancellationToken);
-				var isPaiDan = await _workflowDomainService.RecallToCenterFirstToSendAsync(order.WorkflowId, "省工单重派", order.Status >= EOrderStatus.Filed,
+                }
+
+                //await _workflowDomainService.RecallToStartStepAsync(order.WorkflowId, "省工单重派", current, order.Status >= EOrderStatus.Filed, cancellationToken);
+                var isPaiDan = await _workflowDomainService.RecallToCenterFirstToSendAsync(order.WorkflowId, "省工单重派", order.Status >= EOrderStatus.Filed,
                     order.ExpiredTime, nextHandler, cancellationToken);
                 order.FileEmpty();
 
                 var status = EOrderStatus.WaitForAccept;
-				if (isPaiDan)
+                if (isPaiDan)
                 {
                     order.Status = EOrderStatus.Handling;
                 }
-                await _orderRepository.Updateable().SetColumns(o => new Order{ Status = status }).Where(o => o.Id == order.Id).ExecuteCommandAsync(cancellationToken);
-				//await _orderRepository.UpdateAsync(order, cancellationToken);
-				//处理回访和发布信息
+                await _orderRepository.Updateable().SetColumns(o => new Order { Status = status }).Where(o => o.Id == order.Id).ExecuteCommandAsync(cancellationToken);
+                //await _orderRepository.UpdateAsync(order, cancellationToken);
+                //处理回访和发布信息
 
-				var publish = await _orderPublishRepository.GetAsync(x => x.OrderId == order.Id);
+                var publish = await _orderPublishRepository.GetAsync(x => x.OrderId == order.Id);
                 if (publish != null)
                 {
                     var publishHistory = _mapper.Map<OrderPublishHistory>(publish);
@@ -2749,8 +2751,8 @@ public class OrderApplication : IOrderApplication, IScopeDependency
                 }
 
             }
-			//await _workflowDomainService.RecallToStartStepAsync(order.WorkflowId, "省工单重派", current, cancellationToken);
-		}
+            //await _workflowDomainService.RecallToStartStepAsync(order.WorkflowId, "省工单重派", current, cancellationToken);
+        }
         return _mapper.Map<AddOrderResponse>(order);
     }
 
@@ -3012,113 +3014,113 @@ public class OrderApplication : IOrderApplication, IScopeDependency
     /// <param name="isExport"></param>
     /// <returns></returns>
 	public async Task<(List<SystemDicData> acceptTypes, object items, DataTable data)> AcceptTypeTop10List(ReportPagedRequest dto, bool isExport)
-	{
-
-		var dicList = _systemDicDataRepository.Queryable().Where(x => x.DicTypeCode == "AcceptType").OrderBy(x => x.Sort).MergeTable();
-		var IsCenter = _sessionContext.OrgIsCenter;
-
-		var hotspotList = _hotspotRepository.Queryable().Where(x => SqlFunc.Length(x.Id) == 2)
-			.Select(x => new
-			{
-				HotspotId = x.Id,
-				HotspotName = x.HotSpotFullName,
-			}).MergeTable();
-
-		var orderList = _orderRepository.Queryable()
-			.WhereIF(dto.StartTime.HasValue, x => x.CreationTime >= dto.StartTime)
-			.WhereIF(dto.EndTime.HasValue, x => x.CreationTime <= dto.EndTime)
-			.WhereIF(IsCenter == false, x => x.ActualHandleOrgCode.StartsWith(_sessionContext.RequiredOrgId))
-			.Select(x => new
-			{
-				HotspotId = x.HotspotId.Substring(0, 2),
-				AcceptTypeCode = x.AcceptTypeCode,
-			}).MergeTable();
-
-		var hotListAndOrder = hotspotList.LeftJoin(orderList, (it, o) => it.HotspotId == o.HotspotId)
-			.GroupBy((it, o) => new
-			{
-				it.HotspotId,
-				it.HotspotName,
-				AcceptTypeCode = o.AcceptTypeCode,
-			})
-			.OrderBy((it, o) => it.HotspotId)
-			.Select((it, o) => new
-			{
-				HotspotId = it.HotspotId,
-				HotspotName = it.HotspotName,
-				AcceptTypeCode = o.AcceptTypeCode,
-				Count = SqlFunc.AggregateCount(it.HotspotId)
-			}).MergeTable();
-
-		var returnList = await dicList.LeftJoin(hotListAndOrder, (pp, dd) => pp.DicDataValue == dd.AcceptTypeCode)
-			.GroupBy((pp, dd) => new
-			{
-				HotspotId = dd.HotspotId,
-				HotspotName = dd.HotspotName,
-				AcceptTypeCode = pp.DicDataValue,
-				AcceptType = pp.DicDataName,
-			})
-			.OrderBy((pp, dd) => dd.HotspotId)
-			.Select((pp, dd) => new
-			{
-				HotspotId = dd.HotspotId,
-				HotspotName = dd.HotspotName,
-				AcceptTypeCode = pp.DicDataValue,
-				AcceptType = pp.DicDataName,
-				Count = SqlFunc.AggregateSum(dd.Count)
-			}).ToPivotTableAsync(q => q.AcceptType, q => new { q.HotspotName }, q => q.Sum(x => x.Count));
-		DataColumn totalColumn = new DataColumn("有效受理量", typeof(int));
-		returnList.Columns.Add(totalColumn);
-
-		returnList.Columns["HotspotName"].ColumnName = "省一级热点名称";
+    {
+
+        var dicList = _systemDicDataRepository.Queryable().Where(x => x.DicTypeCode == "AcceptType").OrderBy(x => x.Sort).MergeTable();
+        var IsCenter = _sessionContext.OrgIsCenter;
+
+        var hotspotList = _hotspotRepository.Queryable().Where(x => SqlFunc.Length(x.Id) == 2)
+            .Select(x => new
+            {
+                HotspotId = x.Id,
+                HotspotName = x.HotSpotFullName,
+            }).MergeTable();
+
+        var orderList = _orderRepository.Queryable()
+            .WhereIF(dto.StartTime.HasValue, x => x.CreationTime >= dto.StartTime)
+            .WhereIF(dto.EndTime.HasValue, x => x.CreationTime <= dto.EndTime)
+            .WhereIF(IsCenter == false, x => x.ActualHandleOrgCode.StartsWith(_sessionContext.RequiredOrgId))
+            .Select(x => new
+            {
+                HotspotId = x.HotspotId.Substring(0, 2),
+                AcceptTypeCode = x.AcceptTypeCode,
+            }).MergeTable();
+
+        var hotListAndOrder = hotspotList.LeftJoin(orderList, (it, o) => it.HotspotId == o.HotspotId)
+            .GroupBy((it, o) => new
+            {
+                it.HotspotId,
+                it.HotspotName,
+                AcceptTypeCode = o.AcceptTypeCode,
+            })
+            .OrderBy((it, o) => it.HotspotId)
+            .Select((it, o) => new
+            {
+                HotspotId = it.HotspotId,
+                HotspotName = it.HotspotName,
+                AcceptTypeCode = o.AcceptTypeCode,
+                Count = SqlFunc.AggregateCount(it.HotspotId)
+            }).MergeTable();
+
+        var returnList = await dicList.LeftJoin(hotListAndOrder, (pp, dd) => pp.DicDataValue == dd.AcceptTypeCode)
+            .GroupBy((pp, dd) => new
+            {
+                HotspotId = dd.HotspotId,
+                HotspotName = dd.HotspotName,
+                AcceptTypeCode = pp.DicDataValue,
+                AcceptType = pp.DicDataName,
+            })
+            .OrderBy((pp, dd) => dd.HotspotId)
+            .Select((pp, dd) => new
+            {
+                HotspotId = dd.HotspotId,
+                HotspotName = dd.HotspotName,
+                AcceptTypeCode = pp.DicDataValue,
+                AcceptType = pp.DicDataName,
+                Count = SqlFunc.AggregateSum(dd.Count)
+            }).ToPivotTableAsync(q => q.AcceptType, q => new { q.HotspotName }, q => q.Sum(x => x.Count));
+        DataColumn totalColumn = new DataColumn("有效受理量", typeof(int));
+        returnList.Columns.Add(totalColumn);
+
+        returnList.Columns["HotspotName"].ColumnName = "省一级热点名称";
         var titleList = await _systemDicDataRepository.Queryable().Where(x => x.DicTypeCode == "AcceptType").OrderBy(x => x.Sort).ToListAsync();
-		for (int z = 0; z < returnList.Rows.Count; z++)
-		{
-			if (string.IsNullOrEmpty(returnList.Rows[z]["省一级热点名称"].ToString()))
-			{
-				returnList.Rows.Remove(returnList.Rows[z]);
-			}
-			else
-			{
-				int num = 0;
-				var colTotal = returnList.Columns.Count - 1;
-				for (int i = 1; i < colTotal; i++)
-				{
-					num += int.Parse(returnList.Rows[z][i].ToString());
-				}
-				returnList.Rows[z]["有效受理量"] = num;
-			}
-		}
-		returnList.Columns["有效受理量"].SetOrdinal(1);
-		DataTable list = new DataTable();
-		if (returnList.Rows.Count > 0)
-			list = returnList.Select("", "有效受理量 DESC").Take(10).CopyToDataTable();
-		if (isExport)
-		{
-			return (new List<SystemDicData>(), null, list);
-		}
-		var listDy = ToDynamicList(list);
-		return (titleList, listDy, list);
-	}
-
-	public static List<dynamic> ToDynamicList(DataTable dataTable)
-	{
-		var list = new List<dynamic>();
-
-		foreach (DataRow row in dataTable.Rows)
-		{
-			dynamic expando = new ExpandoObject();
-			var expandoDic = (IDictionary<string, object>)expando;
-
-			foreach (DataColumn column in dataTable.Columns)
-			{
-				expandoDic.Add(column.ColumnName, row[column]);
-			}
-
-			list.Add(expando);
-		}
-
-		return list;
-	}
-	#endregion
+        for (int z = 0; z < returnList.Rows.Count; z++)
+        {
+            if (string.IsNullOrEmpty(returnList.Rows[z]["省一级热点名称"].ToString()))
+            {
+                returnList.Rows.Remove(returnList.Rows[z]);
+            }
+            else
+            {
+                int num = 0;
+                var colTotal = returnList.Columns.Count - 1;
+                for (int i = 1; i < colTotal; i++)
+                {
+                    num += int.Parse(returnList.Rows[z][i].ToString());
+                }
+                returnList.Rows[z]["有效受理量"] = num;
+            }
+        }
+        returnList.Columns["有效受理量"].SetOrdinal(1);
+        DataTable list = new DataTable();
+        if (returnList.Rows.Count > 0)
+            list = returnList.Select("", "有效受理量 DESC").Take(10).CopyToDataTable();
+        if (isExport)
+        {
+            return (new List<SystemDicData>(), null, list);
+        }
+        var listDy = ToDynamicList(list);
+        return (titleList, listDy, list);
+    }
+
+    public static List<dynamic> ToDynamicList(DataTable dataTable)
+    {
+        var list = new List<dynamic>();
+
+        foreach (DataRow row in dataTable.Rows)
+        {
+            dynamic expando = new ExpandoObject();
+            var expandoDic = (IDictionary<string, object>)expando;
+
+            foreach (DataColumn column in dataTable.Columns)
+            {
+                expandoDic.Add(column.ColumnName, row[column]);
+            }
+
+            list.Add(expando);
+        }
+
+        return list;
+    }
+    #endregion
 }

+ 5 - 0
src/Hotline.Share/Dtos/Order/QueryOrderDto.cs

@@ -210,6 +210,11 @@ namespace Hotline.Share.Dtos.Order
         /// </summary>
         public string? FocusOnEvents { get; set; }
 
+        /// <summary>
+        /// 是否保密
+        /// </summary>
+        public bool? IsSecret { get; set; }
+
     }