Explorar o código

是否紧急置顶

libin hai 1 mes
pai
achega
041173ba80

+ 1 - 2
src/Hotline.Api/Controllers/Bi/BiOrderController.cs

@@ -204,8 +204,7 @@ namespace Hotline.Api.Controllers.Bi
                     WaitCount = list.Sum(m => m.WaitCount)
                 });
             }
-
-            dynamic? dynamicClass = DynamicClassHelper.CreateDynamicClass(dto.ColumnInfos);
+            dynamic? dynamicClass = DynamicClassHelper.CreateDynamicClass<PublishedOrderStatisticsDto>(dto.ColumnInfos);
 
             var dtos = list
                 .Select(stu => _mapper.Map(stu, typeof(PublishedOrderStatisticsDto), dynamicClass))

+ 14 - 3
src/Hotline.Application/Orders/OrderApplication.cs

@@ -840,7 +840,8 @@ public class OrderApplication : IOrderApplication, IScopeDependency
             .WhereIF(!string.IsNullOrEmpty(dto.ProvinceChannel) && dto.ProvinceChannel == "3", d => d.Source == ESource.ProvinceStraight &&
                 d.SourceChannelCode == "S12345" && d.IsProvince == true) //省12345
             .OrderBy(d => new { IsUrgent = d.IsUrgent }, OrderByType.Desc)
-            .OrderByDescending(d => d.FiledTime);
+            .OrderByIF(string.IsNullOrEmpty(dto.SortField), d => d.IsUrgent, OrderByType.Desc)
+            .OrderByIF(string.IsNullOrEmpty(dto.SortField), d => d.FiledTime, OrderByType.Desc);
     }
 
     public ISugarQueryable<OrderPublish> GetPublishedOrder(PublishedPagedRequest dto)
@@ -3319,7 +3320,9 @@ public class OrderApplication : IOrderApplication, IScopeDependency
             .WhereIF(!string.IsNullOrEmpty(dto.CurrentStepName),
                 d => !SqlFunc.IsNullOrEmpty(d.WorkflowId) && d.Workflow.ActualHandleStepName == dto.CurrentStepName) //当前节点
             .OrderByIF(dto is { SortRule: 0, SortField: "creationTime" }, d => d.CreationTime, OrderByType.Asc)
-            .OrderByIF(dto is { SortRule: 1, SortField: "creationTime" } || dto.SortRule is null, d => d.CreationTime, OrderByType.Desc);
+            .OrderByIF(dto is { SortRule: 1, SortField: "creationTime" } || dto.SortRule is null, d => d.CreationTime, OrderByType.Desc)
+            .OrderByIF(string.IsNullOrEmpty(dto.SortField), d => d.Order.IsUrgent, OrderByType.Desc)
+            .OrderByIF(string.IsNullOrEmpty(dto.SortField), d => d.Order.StartTime, OrderByType.Desc);
     }
 
     public ISugarQueryable<OrderVisitDetail> MayScreenList(MayScreenListDto dto)
@@ -3414,7 +3417,9 @@ public class OrderApplication : IOrderApplication, IScopeDependency
             .OrderByIF(dto is { SortRule: 1, SortField: "orderVisit.visitTime" }, x => x.OrderVisit.VisitTime, OrderByType.Desc)
             .OrderByIF(dto is { SortRule: 0, SortField: "screenByEndTime" }, x => x.ScreenByEndTime, OrderByType.Asc)//截止申请日期排序
             .OrderByIF(dto is { SortRule: 1, SortField: "screenByEndTime" }, x => x.ScreenByEndTime, OrderByType.Desc)
-            .OrderByIF(dto.SortRule is null, x => x.CreationTime, OrderByType.Desc);
+            .OrderByIF(dto.SortRule is null, x => x.CreationTime, OrderByType.Desc)
+            .OrderByIF(string.IsNullOrEmpty(dto.SortField), x => x.OrderVisit.Order.IsUrgent, OrderByType.Desc)
+            .OrderByIF(string.IsNullOrEmpty(dto.SortField), x => x.OrderVisit.Order.StartTime, OrderByType.Desc);
     }
 
     #endregion
@@ -3635,6 +3640,8 @@ public class OrderApplication : IOrderApplication, IScopeDependency
             .OrderByIF(dto is { SortField: "order.filedTime", SortRule: 0 }, x => x.Order.FiledTime, OrderByType.Asc) // 办结时间升序
             .OrderByIF(dto is { SortField: "order.filedTime", SortRule: 1 }, x => x.Order.FiledTime, OrderByType.Desc) // 办结时间升序
             .OrderByIF(_appOptions.Value.IsZiGong && string.IsNullOrEmpty(dto.SortField), d => d.PublishTime, OrderByType.Desc)
+            .OrderByIF(string.IsNullOrEmpty(dto.SortField), x => x.Order.IsUrgent, OrderByType.Desc)
+            .OrderByIF(string.IsNullOrEmpty(dto.SortField), x => x.PublishTime, OrderByType.Desc)
             ;
         return query;
     }
@@ -4852,10 +4859,14 @@ public class OrderApplication : IOrderApplication, IScopeDependency
                 //.WhereIF(dto.TypeCode.HasValue == false, m => m.Status < EOrderStatus.Filed)
                 .WhereIF(!string.IsNullOrEmpty(dto.AcceptorName), d => d.AcceptorName == dto.AcceptorName)
                 //.OrderBy(d => d.Status)
+
                 .OrderByIF(dto.TypeCode != 0, d => d.StartTime, OrderByType.Desc)
                 .OrderByIF(dto.IsHandled == false && !string.IsNullOrEmpty(dto.SortField), d => new { IsUrgent = d.IsUrgent }, OrderByType.Desc)
                 //.OrderByIF(dto.IsHandled == false, d => new { d.Status })
                 .OrderByIF(dto.TypeCode == 0 && string.IsNullOrEmpty(dto.SortField), d => d.CreationTime, OrderByType.Desc)
+
+                .OrderByIF(string.IsNullOrEmpty(dto.SortField), d => d.IsUrgent, OrderByType.Desc)
+                .OrderByIF(string.IsNullOrEmpty(dto.SortField), d => d.StartTime, OrderByType.Desc)
                 .OrderByIF(dto is { SortField: "creationTime", SortRule: 0 }, d => d.CreationTime, OrderByType.Asc) //创建时间升序
                 .OrderByIF(dto is { SortField: "creationTime", SortRule: 1 }, d => d.CreationTime, OrderByType.Desc) //创建时间降序
                 .OrderByIF(dto is { SortField: "startTime", SortRule: 0 }, d => d.StartTime, OrderByType.Asc) //受理时间升序

+ 7 - 0
src/Hotline.Share/Dtos/Order/OrderDto.cs

@@ -1828,5 +1828,12 @@ namespace Hotline.Share.Dtos.Order
         public bool CanEdit => !string.IsNullOrEmpty(SignerId) &&
                                (Status is EOrderStatus.WaitForAccept or EOrderStatus.BackToUnAccept or EOrderStatus.SpecialToUnAccept
                                    or EOrderStatus.HandOverToUnAccept);
+
+        /// <summary>
+        /// 敏感标签
+        /// </summary>
+        public List<string>? Sensitive { get; set; }
+
+        public string? SensitiveText => (Sensitive != null && Sensitive.Any()) ? string.Join(',', Sensitive) : "";
     }
 }