浏览代码

Merge branch 'dev' of http://git.12345lm.cn/Fengwo/hotline into dev

Dun.Jason 9 月之前
父节点
当前提交
155d0d9f26

+ 40 - 97
src/Hotline.Api/Controllers/Bigscreen/JudicialManagementScreenController.cs

@@ -63,7 +63,7 @@ namespace Hotline.Api.Controllers.Bigscreen
                 .Select(d => new OrderModuleDto
                 {
                     OrderCountNum = SqlFunc.AggregateSum(SqlFunc.IIF(d.Id != null, 1, 0)),
-                    EnforcementOrderNum = SqlFunc.AggregateSum(SqlFunc.IIF(d.IsEnforcementOrder.HasValue&& d.IsEnforcementOrder.Value, 1, 0)),
+                    EnforcementOrderNum = SqlFunc.AggregateSum(SqlFunc.IIF(d.IsEnforcementOrder.HasValue && d.IsEnforcementOrder.Value, 1, 0)),
                     TheClueIsTrueNum = SqlFunc.AggregateSum(SqlFunc.IIF(d.IsTheClueTrue.HasValue && d.IsTheClueTrue.Value == true, 1, 0)),
                     TheClueIsNotTrueNum = SqlFunc.AggregateSum(SqlFunc.IIF(d.IsTheClueTrue.HasValue && d.IsTheClueTrue.Value == false, 1, 0)),
                     PassTheBuckOrderNum = SqlFunc.AggregateSum(SqlFunc.IIF(d.IsPassTheBuckOrder, 1, 0))
@@ -89,43 +89,6 @@ namespace Hotline.Api.Controllers.Bigscreen
             return dto;
         }
 
-        /// <summary>
-        /// 左中受理类型
-        /// </summary>
-        /// <param name="StartTime"></param>
-        /// <param name="EndTime"></param>
-        /// <returns></returns>
-        [AllowAnonymous]
-        [HttpGet("order-accept-type-statistics")]
-        public async Task<List<OrderAcceptTypeStatisticsDto>> GetOrderAcceptTypeStatisticsAsync(DateTime StartTime, DateTime EndTime)
-        {
-            EndTime = EndTime.AddDays(1).AddSeconds(-1);
-
-            var list = await _enforcementOrdersRepository.Queryable()
-                .LeftJoin<Order>((x, o) => x.Id == o.Id)
-                .Where((x, o) => o.Id != null && o.Status > EOrderStatus.Handling && !string.IsNullOrEmpty(o.AcceptType))
-                .Where((x, o) => o.StartTime >= StartTime && o.StartTime <= EndTime)
-                .Select((x, o) => new
-                {
-                    x.Id,
-                    o.AcceptType,
-                    o.Status,
-                    o.ExpiredStatus
-                })
-                .MergeTable()
-                 .GroupBy(x => x.AcceptType)
-                .Select(x => new OrderAcceptTypeStatisticsDto
-                {
-                    AcceptType = x.AcceptType,
-                    SumCount = SqlFunc.AggregateCount(x.Id),
-                    HandlingCount = SqlFunc.AggregateSum(SqlFunc.IIF(x.Status >= EOrderStatus.Handling && x.Status < EOrderStatus.Filed, 1, 0)),
-                    FiledCount = SqlFunc.AggregateSum(SqlFunc.IIF(x.Status >= EOrderStatus.Filed, 1, 0)),
-                    OverTimeCount = SqlFunc.AggregateSum(SqlFunc.IIF(x.ExpiredStatus == EExpiredStatus.Expired, 1, 0))
-                }).ToListAsync();
-
-            return list;
-        }
-
         /// <summary>
         /// 左下高频事项统计
         /// </summary>
@@ -141,15 +104,14 @@ namespace Hotline.Api.Controllers.Bigscreen
             if (AreaCode.Length == 6 && AreaCode.IndexOf("00") == 4)
                 AreaCode = AreaCode.Remove(4);
 
-            var list = await _enforcementOrdersRepository.Queryable()
-               .LeftJoin<Order>((x, o) => x.Id == o.Id)
-               .LeftJoin<JudicialComplaintsEventType>((x, o, j) => x.EventTypeOneLevelId == j.Id)
-               .Where((x, o, j) => o.Id != null && x.EventTypeOneLevelId != null && j.Id != null)
-               .Where((x, o, j) => o.StartTime >= StartTime && o.StartTime <= EndTime && o.AreaCode.StartsWith(AreaCode))
-               .Select((x, o, j) => new
+            var list = await _judicialManagementOrdersRepository.Queryable()
+               .LeftJoin<JudicialComplaintsEventType>((o, j) => o.EventTypeOneLevelId == j.Id)
+               .Where((o, j) => o.EventTypeOneLevelId != null && j.Id != null)
+               .Where((o, j) => o.CreationTime >= StartTime && o.CreationTime <= EndTime && o.AreaCode.StartsWith(AreaCode))
+               .Select((o, j) => new
                {
-                   x.Id,
-                   EventTypeId = x.EventTypeOneLevelId,
+                   o.Id,
+                   EventTypeId = o.EventTypeOneLevelId,
                    j.EventTypeName
                })
                .MergeTable()
@@ -161,7 +123,7 @@ namespace Hotline.Api.Controllers.Bigscreen
                     SumCount = SqlFunc.AggregateCount(p.Id)
                 })
                 .OrderByDescending(p => p.SumCount)
-                .Take(5)
+                .Take(10)
                 .ToListAsync();
 
             return list;
@@ -210,22 +172,20 @@ namespace Hotline.Api.Controllers.Bigscreen
                     AreaName = item.Name
                 };
 
-                var data = await _enforcementOrdersRepository.Queryable()
-                .LeftJoin<Order>((x, o) => x.Id == o.Id)
-                .Where((x, o) => o.Id != null)
-                .Where((x, o) => o.StartTime >= StartTime && o.StartTime <= EndTime && o.AreaCode.StartsWith(item.Id))
-                .Select((x, o) => new
+                var data = await _judicialManagementOrdersRepository.Queryable()
+                .Where(o => o.CreationTime >= StartTime && o.CreationTime <= EndTime && o.AreaCode.StartsWith(item.Id))
+                .Select(o => new
                 {
-                    x.Id,
-                    x.IsEnforcementOrder,
-                    x.IsTheClueTrue,
-                    x.IsPassTheBuckOrder
+                    o.Id,
+                    o.IsEnforcementOrder,
+                    o.IsTheClueTrue,
+                    o.IsPassTheBuckOrder
                 })
                 .MergeTable()
                 .Select(d => new OrderModuleDto
                 {
                     OrderCountNum = SqlFunc.AggregateSum(SqlFunc.IIF(d.Id != null, 1, 0)),
-                    EnforcementOrderNum = SqlFunc.AggregateSum(SqlFunc.IIF(d.IsEnforcementOrder, 1, 0)),
+                    EnforcementOrderNum = SqlFunc.AggregateSum(SqlFunc.IIF(d.IsEnforcementOrder.HasValue && d.IsEnforcementOrder.Value == true, 1, 0)),
                     TheClueIsTrueNum = SqlFunc.AggregateSum(SqlFunc.IIF(d.IsTheClueTrue.HasValue && d.IsTheClueTrue.Value == true, 1, 0)),
                     TheClueIsNotTrueNum = SqlFunc.AggregateSum(SqlFunc.IIF(d.IsTheClueTrue.HasValue && d.IsTheClueTrue.Value == false, 1, 0)),
                     PassTheBuckOrderNum = SqlFunc.AggregateSum(SqlFunc.IIF(d.IsPassTheBuckOrder, 1, 0))
@@ -255,15 +215,12 @@ namespace Hotline.Api.Controllers.Bigscreen
         [HttpGet("order-overview")]
         public async Task<List<OrderOverviewDto>> GetOrderOverviewAsync()
         {
-            var list = await _enforcementOrdersRepository.Queryable()
-                  .LeftJoin<Order>((x, o) => x.Id == o.Id)
-                  .LeftJoin<SystemArea>((x, o, p) => o.AreaCode == p.Id)
-                  .Where((x, o, p) => o.Id != null)
-                  .Where((x, o) => o.Status > EOrderStatus.WaitForAccept && o.StartTime.Value.Date == DateTime.Now.Date)
-                  .Select((x, o, p) => new OrderOverviewDto
+            var list = await _judicialManagementOrdersRepository.Queryable()
+                  .LeftJoin<SystemArea>((o, s) => o.AreaCode == s.Id)
+                  .Where((o, s) => o.CreationTime.Date == DateTime.Now.Date)
+                  .Select((o, s) => new OrderOverviewDto
                   {
                       Id = o.Id,
-                      WorkflowId = o.WorkflowId,
                       SourceChannel = o.SourceChannel,
                       SourceChannelCode = o.SourceChannelCode,
                       Title = o.Title,
@@ -271,17 +228,12 @@ namespace Hotline.Api.Controllers.Bigscreen
                       AcceptTypeCode = o.AcceptTypeCode,
                       HotspotId = o.HotspotId,
                       HotspotName = o.HotspotName,
-                      ActualHandleOrgName = o.ActualHandleOrgName,
-                      ActualHandleOrgCode = o.ActualHandleOrgCode,
-                      Status = o.Status,
-                      ActualHandleTime = o.ActualHandleTime,
-                      ExpiredTime = o.ExpiredTime,
-                      NearlyExpiredTime = o.NearlyExpiredTime,
-                      StartTime = o.StartTime,
-                      AreaName = p.AreaName
+                      EnforcementOrdersHandler = o.EnforcementOrdersHandler,
+                      AreaName = s.AreaName,
+                      CreationTime = o.CreationTime
                   })
                   .MergeTable()
-                  .OrderByDescending(d => d.StartTime)
+                  .OrderByDescending(d => d.CreationTime)
                   .Take(50)
                   .ToListAsync();
 
@@ -300,7 +252,7 @@ namespace Hotline.Api.Controllers.Bigscreen
         {
             EndTime = EndTime.AddDays(1).AddSeconds(-1);
 
-            var list = await _enforcementOrdersRepository.Queryable()
+            var list = await _judicialManagementOrdersRepository.Queryable()
                  .LeftJoin<OrderVisit>((x, o) => x.Id == o.OrderId)
                  .LeftJoin<OrderVisitDetail>((x, o, p) => o.Id == p.VisitId)
                 .Where((x, o, p) => o.VisitTime >= StartTime && o.VisitTime <= EndTime && p.VisitTarget == EVisitTarget.Org &&
@@ -348,14 +300,12 @@ namespace Hotline.Api.Controllers.Bigscreen
                 EndDate = DateTime.Now;
             }
 
-            var queryData = await _enforcementOrdersRepository.Queryable()
-                       .LeftJoin<Order>((x, o) => x.Id == o.Id)
-                       .Where((x, o) => o.Id != null)
-                       .Where((x, o) => o.Status > EOrderStatus.WaitForAccept && o.StartTime >= StartDate && o.StartTime <= EndDate)
-                       .Select((x, o) => new
+            var queryData = await _judicialManagementOrdersRepository.Queryable()
+                       .Where(o => o.CreationTime >= StartDate && o.CreationTime <= EndDate)
+                       .Select(o => new
                        {
                            o.Id,
-                           Month = o.StartTime.Value.Month
+                           Month = o.CreationTime.Month
                        })
                        .MergeTable()
                        .GroupBy(x => x.Month)
@@ -392,20 +342,16 @@ namespace Hotline.Api.Controllers.Bigscreen
         {
             EndTime = EndTime.AddDays(1).AddSeconds(-1);
 
-            var SumCount = await _enforcementOrdersRepository.Queryable()
-               .LeftJoin<Order>((x, o) => x.Id == o.Id)
-                .Where((x, o) => o.Id != null)
-               .Where((x, o) => o.StartTime >= StartTime && o.StartTime <= EndTime && o.Status > EOrderStatus.WaitForAccept)
+            var SumCount = await _judicialManagementOrdersRepository.Queryable()
+               .Where(o => o.CreationTime >= StartTime && o.CreationTime <= EndTime)
                .CountAsync();
 
             if (IsSource)
             {
-                var list = await _enforcementOrdersRepository.Queryable()
-                .LeftJoin<Order>((x, o) => x.Id == o.Id)
-                .Where((x, o) => o.Id != null)
-                .Where((x, o) => o.StartTime >= StartTime && o.StartTime <= EndTime && o.Status > EOrderStatus.WaitForAccept)
-                .GroupBy((x, o) => new { o.SourceChannelCode, o.SourceChannel })
-                .Select((x, o) => new OrderProportionStatisticsDto()
+                var list = await _judicialManagementOrdersRepository.Queryable()
+                .Where(o => o.CreationTime >= StartTime && o.CreationTime <= EndTime)
+                .GroupBy(o => new { o.SourceChannelCode, o.SourceChannel })
+                .Select(o => new OrderProportionStatisticsDto()
                 {
                     Name = o.SourceChannel,
                     SumCount = SumCount,
@@ -416,12 +362,10 @@ namespace Hotline.Api.Controllers.Bigscreen
             }
             else
             {
-                var list = await _enforcementOrdersRepository.Queryable()
-                .LeftJoin<Order>((x, o) => x.Id == o.Id)
-                .Where((x, o) => o.Id != null)
-                .Where((x, o) => o.StartTime >= StartTime && o.StartTime <= EndTime && o.Status > EOrderStatus.WaitForAccept)
-                .GroupBy((x, o) => new { o.AcceptTypeCode, o.AcceptType })
-                .Select((x, o) => new OrderProportionStatisticsDto()
+                var list = await _judicialManagementOrdersRepository.Queryable()
+               .Where(o => o.CreationTime >= StartTime && o.CreationTime <= EndTime)
+                .GroupBy(o => new { o.AcceptTypeCode, o.AcceptType })
+                .Select(o => new OrderProportionStatisticsDto()
                 {
                     Name = o.AcceptType,
                     SumCount = SumCount,
@@ -431,6 +375,5 @@ namespace Hotline.Api.Controllers.Bigscreen
                 return list;
             }
         }
-
     }
 }

+ 2 - 2
src/Hotline.Application/CallCenter/XingTangCallApplication.cs

@@ -197,7 +197,7 @@ namespace Hotline.Application.CallCenter
         /// </summary>
         public async Task<IReadOnlyList<CallNativeDto>> QueryCallsFixedAsync(QueryCallsFixedDto dto, CancellationToken cancellationToken)
         {
-            return await _callNativeRepository.Queryable()
+            return await _callNativeRepository.Queryable(includeDeleted: true)
                 .LeftJoin<Order>((d, o) => d.CallNo == o.CallId)
                 .WhereIF(!string.IsNullOrEmpty(dto.OrderNo), (d, o) => o.No == dto.OrderNo)
                 .WhereIF(!string.IsNullOrEmpty(dto.FromNo), d => d.FromNo == dto.FromNo)
@@ -217,7 +217,7 @@ namespace Hotline.Application.CallCenter
                 }, true)
                 .ToFixedListAsync(dto, cancellationToken);
         }
-        
+
         /// <summary>
         /// 查询分机操作记录(定量)
         /// </summary>

+ 2 - 2
src/Hotline.Application/Jobs/XingTangCallsSyncJob.cs

@@ -37,12 +37,12 @@ namespace Hotline.Application.Jobs
 
         public async Task Execute(IJobExecutionContext context)
         {
-            var xingtangCalls = await _db.Queryable<CallXingtang>()
+            var xingtangCalls = await _db.Queryable<XingtangCall>()
                 .Where(d => (d.IsSync == null || !d.IsSync) && (d.Tries == null || d.Tries <= 50))
                 .Take(10)
                 .ToListAsync(context.CancellationToken);
 
-            var occupyCalls = new List<CallXingtang>();
+            var occupyCalls = new List<XingtangCall>();
             foreach (var call in xingtangCalls)
             {
                 call.IsSync = true;

+ 10 - 14
src/Hotline.Application/Jobs/XingTangTelOperationSyncJob.cs

@@ -4,24 +4,20 @@ using System.Collections.Generic;
 using System.Linq;
 using System.Text;
 using System.Threading.Tasks;
+using Microsoft.Extensions.Logging;
 
 namespace Hotline.Application.Jobs
 {
     public class XingTangTelOperationSyncJob : IJob, IDisposable
     {
-        /// <summary>
-        /// Called by the <see cref="T:Quartz.IScheduler" /> when a <see cref="T:Quartz.ITrigger" />
-        /// fires that is associated with the <see cref="T:Quartz.IJob" />.
-        /// </summary>
-        /// <remarks>
-        /// The implementation may wish to set a  result object on the
-        /// JobExecutionContext before this method exits.  The result itself
-        /// is meaningless to Quartz, but may be informative to
-        /// <see cref="T:Quartz.IJobListener" />s or
-        /// <see cref="T:Quartz.ITriggerListener" />s that are watching the job's
-        /// execution.
-        /// </remarks>
-        /// <param name="context">The execution context.</param>
+        private readonly ILogger<XingTangTelOperationSyncJob> _logger;
+
+        public XingTangTelOperationSyncJob(
+            ILogger<XingTangTelOperationSyncJob> logger)
+        {
+            _logger = logger;
+        }
+
         public async Task Execute(IJobExecutionContext context)
         {
             throw new NotImplementedException();
@@ -30,7 +26,7 @@ namespace Hotline.Application.Jobs
         /// <summary>Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.</summary>
         public void Dispose()
         {
-            throw new NotImplementedException();
+            _logger.LogInformation($"{nameof(XingTangTelOperationSyncJob)} disposed");
         }
     }
 }

+ 1 - 1
src/Hotline.Application/Mappers/CallMapperConfigs.cs

@@ -61,7 +61,7 @@ namespace Hotline.Application.Mappers
                 .Map(d => d.CallAccept, x => x.call_accept)
                 .Map(d => d.Type, x => x.type);
 
-            config.ForType<CallXingtang, CallNative>()
+            config.ForType<XingtangCall, CallNative>()
                 .Map(d => d.CallNo, s => s.CallGuid)
                 .Map(d => d.Direction, s => s.CallType)
                 .Map(d => d.FromNo, s => s.Caller)

+ 41 - 21
src/Hotline.Application/StatisticalReport/OrderReportApplication.cs

@@ -507,7 +507,8 @@ order by ""su"".""OrgCode""";
                          && t.Status >= EWorkflowStepStatus.Handled)
                          .WhereIF(dto.IsProvince.HasValue && dto.IsProvince == true, (t, o) => o.Source == ESource.ProvinceStraight)
                          .WhereIF(dto.OrgCode == "001", (t, o) => t.HandlerOrgId == dto.OrgCode)
-                         .WhereIF(dto.OrgCode != "001", (t, o) => t.HandlerOrgId.StartsWith(dto.OrgCode))
+                         .WhereIF(dto.OrgCode != "001" && dto.OrgCode != dto.ParentOrgCode, (t, o) => t.HandlerOrgId.StartsWith(dto.OrgCode))
+                         .WhereIF(dto.OrgCode != "001" && dto.OrgCode == dto.ParentOrgCode, (t, o) => t.HandlerOrgId == dto.OrgCode)
                          .GroupBy((t, o) => o.Id)
                          .Select((t, o) => new SelectOrderId { Id = o.Id })
                          .MergeTable();
@@ -519,7 +520,8 @@ order by ""su"".""OrgCode""";
                        && t.Status < EWorkflowStepStatus.Handled)
                        .WhereIF(dto.IsProvince.HasValue && dto.IsProvince == true, (t, o) => o.Source == ESource.ProvinceStraight)
                        .WhereIF(dto.OrgCode == "001", (t, o) => t.HandlerOrgId == dto.OrgCode)
-                       .WhereIF(dto.OrgCode != "001", (t, o) => t.HandlerOrgId.StartsWith(dto.OrgCode))
+                       .WhereIF(dto.OrgCode != "001" && dto.OrgCode != dto.ParentOrgCode, (t, o) => t.HandlerOrgId.StartsWith(dto.OrgCode))
+                       .WhereIF(dto.OrgCode != "001" && dto.OrgCode == dto.ParentOrgCode, (t, o) => t.HandlerOrgId == dto.OrgCode)
                        .GroupBy((t, o) => o.Id)
                        .Select((t, o) => new SelectOrderId { Id = o.Id })
                        .MergeTable();
@@ -530,7 +532,8 @@ order by ""su"".""OrgCode""";
                         .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", (d, o) => d.ApplyOrgCode.StartsWith(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();
@@ -542,7 +545,8 @@ order by ""su"".""OrgCode""";
                          && t.Status >= EWorkflowStepStatus.Handled && t.HandleTime > t.StepExpiredTime && t.CountersignPosition == ECountersignPosition.None)
                          .WhereIF(dto.IsProvince.HasValue && dto.IsProvince == true, (t, o) => o.Source == ESource.ProvinceStraight)
                          .WhereIF(dto.OrgCode == "001", (t, o) => t.HandlerOrgId == dto.OrgCode)
-                         .WhereIF(dto.OrgCode != "001", (t, o) => t.HandlerOrgId.StartsWith(dto.OrgCode))
+                         .WhereIF(dto.OrgCode != "001" && dto.OrgCode != dto.ParentOrgCode, (t, o) => t.HandlerOrgId.StartsWith(dto.OrgCode))
+                         .WhereIF(dto.OrgCode != "001" && dto.OrgCode == dto.ParentOrgCode, (t, o) => t.HandlerOrgId == dto.OrgCode)
                          .GroupBy((t, o) => o.Id)
                          .Select((t, o) => new SelectOrderId { Id = o.Id })
                          .MergeTable();
@@ -554,7 +558,8 @@ order by ""su"".""OrgCode""";
                          && t.Status < EWorkflowStepStatus.Handled && DateTime.Now > t.StepExpiredTime && t.CountersignPosition == ECountersignPosition.None)
                          .WhereIF(dto.IsProvince.HasValue && dto.IsProvince == true, (t, o) => o.Source == ESource.ProvinceStraight)
                          .WhereIF(dto.OrgCode == "001", (t, o) => t.HandlerOrgId == dto.OrgCode)
-                         .WhereIF(dto.OrgCode != "001", (t, o) => t.HandlerOrgId.StartsWith(dto.OrgCode))
+                         .WhereIF(dto.OrgCode != "001" && dto.OrgCode != dto.ParentOrgCode, (t, o) => t.HandlerOrgId.StartsWith(dto.OrgCode))
+                         .WhereIF(dto.OrgCode != "001" && dto.OrgCode == dto.ParentOrgCode, (t, o) => t.HandlerOrgId == dto.OrgCode)
                          .GroupBy((t, o) => o.Id)
                          .Select((t, o) => new SelectOrderId { Id = o.Id })
                          .MergeTable();
@@ -566,7 +571,8 @@ order by ""su"".""OrgCode""";
                          && t.Status >= EWorkflowStepStatus.Handled && t.HandleTime > t.StepExpiredTime && t.CountersignPosition > ECountersignPosition.None)
                          .WhereIF(dto.IsProvince.HasValue && dto.IsProvince == true, (t, o) => o.Source == ESource.ProvinceStraight)
                          .WhereIF(dto.OrgCode == "001", (t, o) => t.HandlerOrgId == dto.OrgCode)
-                         .WhereIF(dto.OrgCode != "001", (t, o) => t.HandlerOrgId.StartsWith(dto.OrgCode))
+                         .WhereIF(dto.OrgCode != "001" && dto.OrgCode != dto.ParentOrgCode, (t, o) => t.HandlerOrgId.StartsWith(dto.OrgCode))
+                         .WhereIF(dto.OrgCode != "001" && dto.OrgCode == dto.ParentOrgCode, (t, o) => t.HandlerOrgId == dto.OrgCode)
                          .GroupBy((t, o) => o.Id)
                          .Select((t, o) => new SelectOrderId { Id = o.Id })
                          .MergeTable();
@@ -578,7 +584,8 @@ order by ""su"".""OrgCode""";
                          && t.Status < EWorkflowStepStatus.Handled && DateTime.Now > t.StepExpiredTime && t.CountersignPosition > ECountersignPosition.None)
                          .WhereIF(dto.IsProvince.HasValue && dto.IsProvince == true, (t, o) => o.Source == ESource.ProvinceStraight)
                          .WhereIF(dto.OrgCode == "001", (t, o) => t.HandlerOrgId == dto.OrgCode)
-                         .WhereIF(dto.OrgCode != "001", (t, o) => t.HandlerOrgId.StartsWith(dto.OrgCode))
+                         .WhereIF(dto.OrgCode != "001" && dto.OrgCode != dto.ParentOrgCode, (t, o) => t.HandlerOrgId.StartsWith(dto.OrgCode))
+                         .WhereIF(dto.OrgCode != "001" && dto.OrgCode == dto.ParentOrgCode, (t, o) => t.HandlerOrgId == dto.OrgCode)
                          .GroupBy((t, o) => o.Id)
                          .Select((t, o) => new SelectOrderId { Id = o.Id })
                          .MergeTable();
@@ -590,7 +597,8 @@ order by ""su"".""OrgCode""";
                             && t.Status >= EWorkflowStepStatus.Handled && t.HandleTime > t.StepExpiredTime && t.CountersignPosition >= ECountersignPosition.None)
                             .WhereIF(dto.IsProvince.HasValue && dto.IsProvince == true, (t, o) => o.Source == ESource.ProvinceStraight)
                             .WhereIF(dto.OrgCode == "001", (t, o) => t.HandlerOrgId == dto.OrgCode)
-                            .WhereIF(dto.OrgCode != "001", (t, o) => t.HandlerOrgId.StartsWith(dto.OrgCode))
+                         .WhereIF(dto.OrgCode != "001" && dto.OrgCode != dto.ParentOrgCode, (t, o) => t.HandlerOrgId.StartsWith(dto.OrgCode))
+                         .WhereIF(dto.OrgCode != "001" && dto.OrgCode == dto.ParentOrgCode, (t, o) => t.HandlerOrgId == dto.OrgCode)
                             .GroupBy((t, o) => o.Id)
                             .Select((t, o) => new SelectOrderId { Id = o.Id })
                             .MergeTable();
@@ -600,7 +608,8 @@ order by ""su"".""OrgCode""";
                              && t.Status < EWorkflowStepStatus.Handled && DateTime.Now > t.StepExpiredTime && t.CountersignPosition >= ECountersignPosition.None)
                              .WhereIF(dto.IsProvince.HasValue && dto.IsProvince == true, (t, o) => o.Source == ESource.ProvinceStraight)
                              .WhereIF(dto.OrgCode == "001", (t, o) => t.HandlerOrgId == dto.OrgCode)
-                             .WhereIF(dto.OrgCode != "001", (t, o) => t.HandlerOrgId.StartsWith(dto.OrgCode))
+                         .WhereIF(dto.OrgCode != "001" && dto.OrgCode != dto.ParentOrgCode, (t, o) => t.HandlerOrgId.StartsWith(dto.OrgCode))
+                         .WhereIF(dto.OrgCode != "001" && dto.OrgCode == dto.ParentOrgCode, (t, o) => t.HandlerOrgId == dto.OrgCode)
                              .GroupBy((t, o) => o.Id)
                              .Select((t, o) => new SelectOrderId { Id = o.Id })
                              .MergeTable();
@@ -613,7 +622,8 @@ order by ""su"".""OrgCode""";
                             && t.Status >= EWorkflowStepStatus.Handled && t.CountersignPosition > ECountersignPosition.None)
                             .WhereIF(dto.IsProvince.HasValue && dto.IsProvince == true, (t, o) => o.Source == ESource.ProvinceStraight)
                             .WhereIF(dto.OrgCode == "001", (t, o) => t.HandlerOrgId == dto.OrgCode)
-                            .WhereIF(dto.OrgCode != "001", (t, o) => t.HandlerOrgId.StartsWith(dto.OrgCode))
+                         .WhereIF(dto.OrgCode != "001" && dto.OrgCode != dto.ParentOrgCode, (t, o) => t.HandlerOrgId.StartsWith(dto.OrgCode))
+                         .WhereIF(dto.OrgCode != "001" && dto.OrgCode == dto.ParentOrgCode, (t, o) => t.HandlerOrgId == dto.OrgCode)
                             .GroupBy((t, o) => o.Id)
                             .Select((t, o) => new SelectOrderId { Id = o.Id })
                             .MergeTable();
@@ -625,7 +635,8 @@ order by ""su"".""OrgCode""";
                              && t.Status < EWorkflowStepStatus.Handled && t.CountersignPosition > ECountersignPosition.None)
                              .WhereIF(dto.IsProvince.HasValue && dto.IsProvince == true, (t, o) => o.Source == ESource.ProvinceStraight)
                              .WhereIF(dto.OrgCode == "001", (t, o) => t.HandlerOrgId == dto.OrgCode)
-                             .WhereIF(dto.OrgCode != "001", (t, o) => t.HandlerOrgId.StartsWith(dto.OrgCode))
+                         .WhereIF(dto.OrgCode != "001" && dto.OrgCode != dto.ParentOrgCode, (t, o) => t.HandlerOrgId.StartsWith(dto.OrgCode))
+                         .WhereIF(dto.OrgCode != "001" && dto.OrgCode == dto.ParentOrgCode, (t, o) => t.HandlerOrgId == dto.OrgCode)
                              .GroupBy((t, o) => o.Id)
                              .Select((t, o) => new SelectOrderId { Id = o.Id })
                              .MergeTable();
@@ -635,7 +646,8 @@ order by ""su"".""OrgCode""";
                             .Where(o => o.CreationTime >= dto.StartTime && o.CreationTime <= dto.EndTime && o.Status < EOrderStatus.WaitForAccept)
                            .WhereIF(dto.IsProvince.HasValue && dto.IsProvince == true, o => o.Source == ESource.ProvinceStraight)
                             .WhereIF(dto.OrgCode == "001", o => o.ActualHandleOrgCode == dto.OrgCode)
-                            .WhereIF(dto.OrgCode != "001", o => o.ActualHandleOrgCode.StartsWith(dto.OrgCode))
+                            .WhereIF(dto.OrgCode != "001" && dto.OrgCode != dto.ParentOrgCode, o => o.ActualHandleOrgCode.StartsWith(dto.OrgCode))
+                            .WhereIF(dto.OrgCode != "001" && dto.OrgCode == dto.ParentOrgCode, o => o.ActualHandleOrgCode == dto.OrgCode)
                              .Select(o => new SelectOrderId { Id = o.Id })
                           .MergeTable();
                     break;
@@ -644,7 +656,8 @@ order by ""su"".""OrgCode""";
                           .Where(o => o.CreationTime >= dto.StartTime && o.CreationTime <= dto.EndTime && o.Status >= EOrderStatus.Filed)
                          .WhereIF(dto.IsProvince.HasValue && dto.IsProvince == true, o => o.Source == ESource.ProvinceStraight)
                           .WhereIF(dto.OrgCode == "001", o => o.ActualHandleOrgCode == dto.OrgCode)
-                          .WhereIF(dto.OrgCode != "001", o => o.ActualHandleOrgCode.StartsWith(dto.OrgCode))
+                            .WhereIF(dto.OrgCode != "001" && dto.OrgCode != dto.ParentOrgCode, o => o.ActualHandleOrgCode.StartsWith(dto.OrgCode))
+                            .WhereIF(dto.OrgCode != "001" && dto.OrgCode == dto.ParentOrgCode, o => o.ActualHandleOrgCode == dto.OrgCode)
                            .Select(o => new SelectOrderId { Id = o.Id })
                         .MergeTable();
                     break;
@@ -653,7 +666,8 @@ order by ""su"".""OrgCode""";
                          .Where(o => o.CreationTime >= dto.StartTime && o.CreationTime <= dto.EndTime && o.Status == EOrderStatus.Filed)
                         .WhereIF(dto.IsProvince.HasValue && dto.IsProvince == true, o => o.Source == ESource.ProvinceStraight)
                          .WhereIF(dto.OrgCode == "001", o => o.ActualHandleOrgCode == dto.OrgCode)
-                         .WhereIF(dto.OrgCode != "001", o => o.ActualHandleOrgCode.StartsWith(dto.OrgCode))
+                            .WhereIF(dto.OrgCode != "001" && dto.OrgCode != dto.ParentOrgCode, o => o.ActualHandleOrgCode.StartsWith(dto.OrgCode))
+                            .WhereIF(dto.OrgCode != "001" && dto.OrgCode == dto.ParentOrgCode, o => o.ActualHandleOrgCode == dto.OrgCode)
                           .Select(o => new SelectOrderId { Id = o.Id })
                        .MergeTable();
                     break;
@@ -662,7 +676,8 @@ order by ""su"".""OrgCode""";
                          .Where(o => o.CreationTime >= dto.StartTime && o.CreationTime <= dto.EndTime && o.Status >= EOrderStatus.Published && o.IsPublicity == true)
                         .WhereIF(dto.IsProvince.HasValue && dto.IsProvince == true, o => o.Source == ESource.ProvinceStraight)
                          .WhereIF(dto.OrgCode == "001", o => o.ActualHandleOrgCode == dto.OrgCode)
-                         .WhereIF(dto.OrgCode != "001", o => o.ActualHandleOrgCode.StartsWith(dto.OrgCode))
+                            .WhereIF(dto.OrgCode != "001" && dto.OrgCode != dto.ParentOrgCode, o => o.ActualHandleOrgCode.StartsWith(dto.OrgCode))
+                            .WhereIF(dto.OrgCode != "001" && dto.OrgCode == dto.ParentOrgCode, o => o.ActualHandleOrgCode == dto.OrgCode)
                           .Select(o => new SelectOrderId { Id = o.Id })
                        .MergeTable();
                     break;
@@ -671,7 +686,8 @@ order by ""su"".""OrgCode""";
                         .Where(o => o.CreationTime >= dto.StartTime && o.CreationTime <= dto.EndTime && o.Status >= EOrderStatus.Published && o.IsPublicity == false)
                        .WhereIF(dto.IsProvince.HasValue && dto.IsProvince == true, o => o.Source == ESource.ProvinceStraight)
                         .WhereIF(dto.OrgCode == "001", o => o.ActualHandleOrgCode == dto.OrgCode)
-                        .WhereIF(dto.OrgCode != "001", o => o.ActualHandleOrgCode.StartsWith(dto.OrgCode))
+                            .WhereIF(dto.OrgCode != "001" && dto.OrgCode != dto.ParentOrgCode, o => o.ActualHandleOrgCode.StartsWith(dto.OrgCode))
+                            .WhereIF(dto.OrgCode != "001" && dto.OrgCode == dto.ParentOrgCode, o => o.ActualHandleOrgCode == dto.OrgCode)
                          .Select(o => new SelectOrderId { Id = o.Id })
                       .MergeTable();
                     break;
@@ -681,7 +697,8 @@ order by ""su"".""OrgCode""";
                        .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", (d, o) => d.CreatorOrgId.StartsWith(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;
@@ -692,7 +709,8 @@ order by ""su"".""OrgCode""";
                        && (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", (d, o) => d.CreatorOrgId.StartsWith(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;
@@ -700,9 +718,10 @@ order by ""su"".""OrgCode""";
                     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.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", (d, o) => d.CreatorOrgId.StartsWith(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;
@@ -712,7 +731,8 @@ order by ""su"".""OrgCode""";
                       .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", (d, o) => d.CreatorOrgId.StartsWith(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;

+ 5 - 0
src/Hotline.Share/Dtos/JudicialManagement/EnforcementBigscreenDto.cs

@@ -139,6 +139,11 @@ namespace Hotline.Share.Dtos.JudicialManagement
     /// </summary>
     public class OrderOverviewDto
     {
+        public DateTime CreationTime {  get; set; }
+        /// <summary>
+        /// 执法部门
+        /// </summary>
+        public List<Kv> EnforcementOrdersHandler { get; set; }
         public string Id { get; set; }
         public string WorkflowId { get; set; }
 

+ 5 - 0
src/Hotline.Share/Requests/DepartmentalProcessingStatisticsDto.cs

@@ -231,6 +231,11 @@ namespace Hotline.Share.Requests
         /// </summary>
         public string OrgCode { get; set; }
 
+        /// <summary>
+        /// 父级ID
+        /// </summary>
+        public string ParentOrgCode {  get; set; }
+
         /// <summary>
         /// 部门名称
         /// </summary>

+ 1 - 1
src/XingTang.Sdk/CallXingtang.cs → src/XingTang.Sdk/XingtangCall.cs

@@ -3,7 +3,7 @@
 namespace XingTang.Sdk;
 
 [SugarTable("call_cti_trafficlist")]
-public class CallXingtang
+public class XingtangCall
 {
     [SugarColumn(ColumnName = "ID", IsPrimaryKey = true)]
     public int Id { get; set; }

+ 1 - 1
src/XingTang.Sdk/SeatOperation.cs → src/XingTang.Sdk/XingtangSeatOperation.cs

@@ -11,7 +11,7 @@ namespace XingTang.Sdk
     /// 坐席操作记录
     /// </summary>
     [SugarTable("call_cti_seatingoperation")]
-    public class SeatOperation
+    public class XingtangSeatOperation
     {
         [SugarColumn(ColumnName = "ID", IsPrimaryKey = true)]
         public int Id { get; set; }