tangjiang 9 сар өмнө
parent
commit
b55722a9cc

+ 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;
             }
         }
-
     }
 }

+ 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; }