Browse Source

Merge branch 'test' of http://110.188.24.182:10023/Fengwo/hotline into test

xf 2 months ago
parent
commit
30dc62d979

+ 3 - 3
src/Hotline.Api/Controllers/Bi/BiOrderController.cs

@@ -270,7 +270,6 @@ namespace Hotline.Api.Controllers.Bi
         public async Task<PublishedOrderStatisticsDto> QueryPublishedOrderAsync([FromQuery] QueryOrderPublishStatisticsAllDto dto)
         public async Task<PublishedOrderStatisticsDto> QueryPublishedOrderAsync([FromQuery] QueryOrderPublishStatisticsAllDto dto)
         {
         {
             var waitCount = await _orderRepository.Queryable()
             var waitCount = await _orderRepository.Queryable()
-             .Where(order => order.CreationTime >= dto.StartTime && order.CreationTime <= dto.EndTime)
              .Where(order => order.Status == EOrderStatus.Filed)
              .Where(order => order.Status == EOrderStatus.Filed)
              .Select(order => SqlFunc.AggregateCount(order.Id))
              .Select(order => SqlFunc.AggregateCount(order.Id))
              .FirstAsync();
              .FirstAsync();
@@ -1145,10 +1144,11 @@ namespace Hotline.Api.Controllers.Bi
         /// <param name="dto"></param>
         /// <param name="dto"></param>
         /// <returns></returns>
         /// <returns></returns>
         [HttpGet("hotport-org-statistics")]
         [HttpGet("hotport-org-statistics")]
-        public async Task<(IReadOnlyList<Hotspot> hotSpot, List<dynamic>? data)> HotPortJoinOrgStatistics([FromQuery] HotPortJoinOrgStatisticsRequest dto)
+        public async Task<object> HotPortJoinOrgStatistics([FromQuery] HotPortJoinOrgStatisticsRequest dto)
         {
         {
             var IsCenter = _sessionContext.OrgIsCenter;
             var IsCenter = _sessionContext.OrgIsCenter;
-            return await _orderRepository.HotPortJoinOrgStatistics(dto.StartTime, dto.EndTime, IsCenter, _sessionContext.OrgId);
+            var (hotSpot, data) = await _orderRepository.HotPortJoinOrgStatistics(dto.StartTime, dto.EndTime, IsCenter, _sessionContext.OrgId);
+			return  new { hotSpot, data };
         }
         }
 
 
 
 

+ 46 - 10
src/Hotline.Api/Controllers/OrderController.cs

@@ -2831,12 +2831,47 @@ public class OrderController : BaseController
         return rspModel;
         return rspModel;
     }
     }
 
 
-    /// <summary>
-    /// 更新甄别提起截至时限
-    /// </summary>
-    /// <param name="dto"></param>
-    /// <returns></returns>
-    [HttpPut("order_screen_endtime")]
+	/// <summary>
+	/// 甄别详情
+	/// </summary>
+	/// <param name="id"></param>
+	/// <returns></returns>
+	[HttpGet("screen/visitdetail/{id}")]
+	public async Task<OrderScreenListDto> VisitDetailScreenEntity(string id)
+	{
+		var model = await _orderScreenRepository.Queryable(canView: false)
+			.Includes(x => x.Order)
+			.Includes(x => x.Workflow, d => d.Steps)
+			.Includes(x => x.Visit, d => d.Order)
+			.FirstAsync(x => x.VisitDetailId  == id);
+		var rspModel = _mapper.Map<OrderScreenListDto>(model);
+		//rspModel.IsCanHandle = model.CanHandle(_sessionContext.RequiredUserId, _sessionContext.RequiredOrgId);
+		rspModel.IsCanHandle = model.Workflow?.IsCanHandle(
+			_sessionContext.RequiredUserId, _sessionContext.RequiredOrgId, _sessionContext.Roles) ?? false;
+		if (model.Status == EScreenStatus.SendBack && model.SendBackApply)
+			rspModel.IsCanHandle = false;
+		rspModel.Handle = false;
+		if (!string.IsNullOrEmpty(rspModel.WorkflowId))
+		{
+			rspModel.Handle = await _workflowDomainService.CheckCurrentIsStartStepAsync(rspModel.WorkflowId, _sessionContext.RequiredUserId,
+				_sessionContext.RequiredOrgId, HttpContext.RequestAborted);
+		}
+
+		if (rspModel.FileJson != null && rspModel.FileJson.Any())
+		{
+			var ids = rspModel.FileJson.Select(x => x.Id).ToList();
+			rspModel.Files = await _fileRepository.GetFilesAsync(ids, HttpContext.RequestAborted);
+		}
+
+		return rspModel;
+	}
+
+	/// <summary>
+	/// 更新甄别提起截至时限
+	/// </summary>
+	/// <param name="dto"></param>
+	/// <returns></returns>
+	[HttpPut("order_screen_endtime")]
     [LogFilter("更新甄别提起截至时限")]
     [LogFilter("更新甄别提起截至时限")]
     public async Task Update([FromBody] OrderScreenEndTimeDto dto)
     public async Task Update([FromBody] OrderScreenEndTimeDto dto)
     {
     {
@@ -5857,7 +5892,7 @@ public class OrderController : BaseController
                 NextStepCode = dto.NextStepCode,
                 NextStepCode = dto.NextStepCode,
                 NextStepName = dto.NextStepName,
                 NextStepName = dto.NextStepName,
                 NextHandlers = dto.NextHandlers,
                 NextHandlers = dto.NextHandlers,
-                Opinion = dto.Cause,
+                Opinion = "【特提理由】" + dto.Cause,
                 FlowDirection = dto.FlowDirection,
                 FlowDirection = dto.FlowDirection,
                 HandlerType = dto.HandlerType,
                 HandlerType = dto.HandlerType,
                 BusinessType = dto.BusinessType
                 BusinessType = dto.BusinessType
@@ -6089,7 +6124,7 @@ public class OrderController : BaseController
                 NextStepCode = dto.NextStepCode,
                 NextStepCode = dto.NextStepCode,
                 NextStepName = dto.NextStepName,
                 NextStepName = dto.NextStepName,
                 NextHandlers = dto.NextHandlers,
                 NextHandlers = dto.NextHandlers,
-                Opinion = dto.Reason,
+                Opinion = "【特提理由】" + dto.Reason,
                 FlowDirection = dto.FlowDirection,
                 FlowDirection = dto.FlowDirection,
                 HandlerType = dto.HandlerType,
                 HandlerType = dto.HandlerType,
                 BusinessType = dto.BusinessType,
                 BusinessType = dto.BusinessType,
@@ -6461,7 +6496,7 @@ public class OrderController : BaseController
                     NextStepCode = special.NextStepCode,
                     NextStepCode = special.NextStepCode,
                     NextStepName = special.NextStepName,
                     NextStepName = special.NextStepName,
                     NextHandlers = special.NextHandlers,
                     NextHandlers = special.NextHandlers,
-                    Opinion = dto.Opinion,
+                    Opinion = "【特提理由】" + dto.Opinion,
                     FlowDirection = special.FlowDirection,
                     FlowDirection = special.FlowDirection,
                     HandlerType = special.HandlerType.Value,
                     HandlerType = special.HandlerType.Value,
                     BusinessType = special.BusinessType.Value
                     BusinessType = special.BusinessType.Value
@@ -6873,7 +6908,8 @@ public class OrderController : BaseController
 
 
             if (!order.FileOrgIsCenter.Value)
             if (!order.FileOrgIsCenter.Value)
             {
             {
-                if (step.Steps.Where(x => x.BusinessType == EBusinessType.Department && x.OrgLevel == 1).Any())
+				 //&& x.StepType == EStepType.Normal
+				if (step.Steps.Where(x => x.BusinessType == EBusinessType.Department && x.OrgLevel == 1).Any())
                 {
                 {
                     var stepdDefault = step.Steps.Where(x => x.BusinessType == EBusinessType.Department && x.OrgLevel == 1)
                     var stepdDefault = step.Steps.Where(x => x.BusinessType == EBusinessType.Department && x.OrgLevel == 1)
                         .FirstOrDefault();
                         .FirstOrDefault();

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

@@ -56,6 +56,7 @@ using XF.Domain.Entities;
 using XF.Domain.Exceptions;
 using XF.Domain.Exceptions;
 using XF.Domain.Repository;
 using XF.Domain.Repository;
 using WordInfo = PanGu.WordInfo;
 using WordInfo = PanGu.WordInfo;
+using Hotline.Repository.SqlSugar.Orders;
 
 
 namespace Hotline.Application.Orders;
 namespace Hotline.Application.Orders;
 
 
@@ -848,7 +849,20 @@ public class OrderApplication : IOrderApplication, IScopeDependency
     /// <exception cref="UserFriendlyException"></exception>
     /// <exception cref="UserFriendlyException"></exception>
     public async Task<(int, IList<PublishedOrderStatisticsDto>)> QueryPublishedOrderAsync(QueryOrderPublishStatisticsDto dto, bool isFull)
     public async Task<(int, IList<PublishedOrderStatisticsDto>)> QueryPublishedOrderAsync(QueryOrderPublishStatisticsDto dto, bool isFull)
     {
     {
-        var query = _orderRepository.Queryable()
+        var orders = await _orderRepository.Queryable()
+		   .LeftJoin<User>((order, user) => order.WaitForPublisherId == user.Id)
+			.Where((order, user) => !string.IsNullOrEmpty(order.WaitForPublisherId))
+			.WhereIF(dto.ProcessType != null && dto.ProcessType == EProcessType.Zhiban, (order, user) => order.FileOrgIsCenter == true)
+			.WhereIF(dto.ProcessType != null && dto.ProcessType == EProcessType.Jiaoban, (order, user) => order.FileOrgIsCenter == false)
+			.GroupBy((order, user) => new { order.WaitForPublisherId, user.Name })
+			.Select((order, user) => new PublishedOrderStatisticsDto
+			{
+				Id = order.WaitForPublisherId,
+				Name = user.Name,
+				WaitCount = SqlFunc.AggregateSum(SqlFunc.IIF(order.Status == EOrderStatus.Filed, 1, 0)),
+			}).ToListAsync();
+
+		var query = _orderRepository.Queryable()
             .Includes(order => order.OrderPublish)
             .Includes(order => order.OrderPublish)
             .LeftJoin<User>((order, user) => order.WaitForPublisherId == user.Id)
             .LeftJoin<User>((order, user) => order.WaitForPublisherId == user.Id)
             .Where((order, user) => order.CreationTime >= dto.StartTime && order.CreationTime <= dto.EndTime &&
             .Where((order, user) => order.CreationTime >= dto.StartTime && order.CreationTime <= dto.EndTime &&
@@ -878,7 +892,19 @@ public class OrderApplication : IOrderApplication, IScopeDependency
             (total, items) = await query.ToPagedListAsync(dto.PageIndex, dto.PageSize);
             (total, items) = await query.ToPagedListAsync(dto.PageIndex, dto.PageSize);
         }
         }
 
 
-        return (total, items);
+		var res = (from t1 in items
+				   join t2 in orders on t1.Name equals t2.Name into t1_t2
+				   from item in t1_t2.DefaultIfEmpty()
+				   select new PublishedOrderStatisticsDto
+				   {
+					   Name = t1.Name,
+					   PublishTime = t1.PublishTime,
+					   WaitCount = t1_t2.Select(x => x.WaitCount).FirstOrDefault(),
+					   PublicCount = t1.PublicCount,
+					   PrivateCount = t1.PrivateCount
+				   }).ToList();
+
+		return (total, res);
     }
     }
 
 
     /// <summary>
     /// <summary>
@@ -893,9 +919,18 @@ public class OrderApplication : IOrderApplication, IScopeDependency
         var total = 0;
         var total = 0;
         var items = new List<PublishedOrderStatisticsDto>();
         var items = new List<PublishedOrderStatisticsDto>();
 
 
-        var query = _orderRepository.Queryable()
+        var orders = await _orderRepository.Queryable()
+			.Where(order =>  order.ActualHandleOrgName != null)
+			.GroupBy(order => new { Name = order.ActualHandleOrgName })
+			.Select(order => new PublishedOrderStatisticsDto
+			{
+				Name = order.ActualHandleOrgName,
+				WaitCount = SqlFunc.AggregateSum(SqlFunc.IIF(order.Status == EOrderStatus.Filed, 1, 0)),
+			}).ToListAsync();
+
+		var query = _orderRepository.Queryable()
             .Includes(order => order.OrderPublish)
             .Includes(order => order.OrderPublish)
-            .Where(order => order.CreationTime >= dto.StartTime && order.CreationTime <= dto.EndTime && order.ActualHandleOrgName != null)
+            .Where(order => order.OrderPublish.CreationTime >= dto.StartTime && order.OrderPublish.CreationTime <= dto.EndTime && order.ActualHandleOrgName != null)
             .GroupBy(order => new { Name = order.ActualHandleOrgName, PublishTime = order.CreationTime.ToString("YYYY-MM-DD") })
             .GroupBy(order => new { Name = order.ActualHandleOrgName, PublishTime = order.CreationTime.ToString("YYYY-MM-DD") })
             .Select(order => new PublishedOrderStatisticsDto
             .Select(order => new PublishedOrderStatisticsDto
             {
             {
@@ -906,16 +941,28 @@ public class OrderApplication : IOrderApplication, IScopeDependency
                 PublicCount = SqlFunc.AggregateSum(SqlFunc.IIF(order.OrderPublish.PublishState == true, 1, 0)),
                 PublicCount = SqlFunc.AggregateSum(SqlFunc.IIF(order.OrderPublish.PublishState == true, 1, 0)),
                 PrivateCount = SqlFunc.AggregateSum(SqlFunc.IIF(order.OrderPublish.PublishState == false, 1, 0))
                 PrivateCount = SqlFunc.AggregateSum(SqlFunc.IIF(order.OrderPublish.PublishState == false, 1, 0))
             });
             });
-        if (isFull)
-        {
-            items = await query.ToListAsync();
-        }
-        else
-        {
-            (total, items) = await query.ToPagedListAsync(dto.PageIndex, dto.PageSize);
-        }
-
-        return (total, items);
+		if (isFull)
+		{
+			items = await query.ToListAsync();
+		}
+		else
+		{
+			(total, items) = await query.ToPagedListAsync(dto.PageIndex, dto.PageSize);
+		}
+
+		var res = (from t1 in items
+				   join t2 in orders on t1.Name equals t2.Name into t1_t2
+				   from item in t1_t2.DefaultIfEmpty()
+				   select new PublishedOrderStatisticsDto
+				   {
+					   Name = t1.Name,
+					   PublishTime = t1.PublishTime,
+					   WaitCount = t1_t2.Select(x => x.WaitCount).FirstOrDefault(),
+					   PublicCount = t1.PublicCount,
+					   PrivateCount = t1.PrivateCount
+				   }).ToList();
+
+        return (total, res);
     }
     }
 
 
     /// <summary>
     /// <summary>

+ 15 - 2
src/Hotline.Application/StatisticalReport/OrderReportApplication.cs

@@ -2477,13 +2477,13 @@ namespace Hotline.Application.StatisticalReport
 				var total = 0;
 				var total = 0;
 				for (int l = 0; l < list.Count; l++)
 				for (int l = 0; l < list.Count; l++)
 				{
 				{
-					var columnIndex = i + 1;
+					var columnIndex = i + 2;
 					var value = string.Empty;
 					var value = string.Empty;
 					var orgName = string.Empty;
 					var orgName = string.Empty;
 					foreach (var property in (IDictionary<string, object>)list[l])
 					foreach (var property in (IDictionary<string, object>)list[l])
 					{
 					{
 						if (property.Key.ToLower().Equals("orgname")) orgName = property.Value.ToString();
 						if (property.Key.ToLower().Equals("orgname")) orgName = property.Value.ToString();
-						if (property.Key.ToLower().Equals(columnIndex.ToString()))
+						if (property.Key.ToLower().Equals(dissatisfiedReason[i].Id))
 						{
 						{
 							value = property.Value.ToString();
 							value = property.Value.ToString();
 							total += int.Parse(value!);
 							total += int.Parse(value!);
@@ -2497,8 +2497,21 @@ namespace Hotline.Application.StatisticalReport
 						dicRow["合计"][columnIndex] = total;
 						dicRow["合计"][columnIndex] = total;
 				}
 				}
 			}
 			}
+
 			foreach (var item in dicRow)
 			foreach (var item in dicRow)
 			{
 			{
+                //小计
+                var index = 0;
+                var subtotal = 0;
+				foreach (var item2 in item.Value.ItemArray)
+				{
+                    if (index >1)
+                    {
+                        subtotal += int.Parse(item2.ToString());
+					}
+                    index++;
+				}
+                item.Value[1] = subtotal.ToString();
 				dataTable.Rows.Add(item.Value);
 				dataTable.Rows.Add(item.Value);
 			}
 			}
 			return dataTable;
 			return dataTable;

+ 12 - 4
src/Hotline.Repository.SqlSugar/Orders/OrderRepository.cs

@@ -1843,7 +1843,9 @@ namespace Hotline.Repository.SqlSugar.Orders
                 .WhereIF(!string.IsNullOrEmpty(dto.ContentRetrieval), x => x.VisitContent.Contains(dto.ContentRetrieval!))
                 .WhereIF(!string.IsNullOrEmpty(dto.ContentRetrieval), x => x.VisitContent.Contains(dto.ContentRetrieval!))
                 .WhereIF(!string.IsNullOrEmpty(dto.LevelOneOrg), x => x.OrderVisit.Order.OrgLevelOneName.Contains(dto.LevelOneOrg))//一级部门名称
                 .WhereIF(!string.IsNullOrEmpty(dto.LevelOneOrg), x => x.OrderVisit.Order.OrgLevelOneName.Contains(dto.LevelOneOrg))//一级部门名称
                 .WhereIF(!string.IsNullOrEmpty(dto.ActualHandleOrgName), x => x.OrderVisit.Order.ActualHandleOrgName.Contains(dto.ActualHandleOrgName))// 接办部门
                 .WhereIF(!string.IsNullOrEmpty(dto.ActualHandleOrgName), x => x.OrderVisit.Order.ActualHandleOrgName.Contains(dto.ActualHandleOrgName))// 接办部门
-                .Select(x => new OrgVisitDetailListResp()
+                .WhereIF(dto.IsScreen.HasValue && dto.IsScreen.Value ,x=> SqlFunc.Subqueryable<OrderScreen>().Where(q => q.OrderId == x.OrderVisit.OrderId && q.VisitDetailId == x.Id).Any())
+				.WhereIF(dto.IsScreen.HasValue && dto.IsScreen.Value == false, x => SqlFunc.Subqueryable<OrderScreen>().Where(q => q.OrderId == x.OrderVisit.OrderId && q.VisitDetailId == x.Id).NotAny())
+				.Select(x => new OrgVisitDetailListResp()
                 {
                 {
                     Id = x.Id,
                     Id = x.Id,
                     OrderId = x.OrderVisit.Order.Id,
                     OrderId = x.OrderVisit.Order.Id,
@@ -1869,7 +1871,9 @@ namespace Hotline.Repository.SqlSugar.Orders
                     ActualHandleOrgName = x.OrderVisit.Order.ActualHandleOrgName,
                     ActualHandleOrgName = x.OrderVisit.Order.ActualHandleOrgName,
                     IsProvinceOrder = x.OrderVisit.Order.Source == ESource.ProvinceStraight ? true : false
                     IsProvinceOrder = x.OrderVisit.Order.Source == ESource.ProvinceStraight ? true : false
                 }).MergeTable().OrderByIF(string.IsNullOrEmpty(dto.SortField), x => x.VisitTime, OrderByType.Desc)
                 }).MergeTable().OrderByIF(string.IsNullOrEmpty(dto.SortField), x => x.VisitTime, OrderByType.Desc)
-                .OrderByIF(dto is { SortField: "creationTime", SortRule: 0 }, x => x.CreationTime, OrderByType.Asc) //受理时间升序
+				.OrderByIF(dto is { SortField: "orderScreenStatusText", SortRule: 0 }, x => x.OrderScreenStatus, OrderByType.Asc)
+				.OrderByIF(dto is { SortField: "orderScreenStatusText", SortRule: 1 }, x => x.OrderScreenStatus, OrderByType.Desc) 
+				.OrderByIF(dto is { SortField: "creationTime", SortRule: 0 }, x => x.CreationTime, OrderByType.Asc) //受理时间升序
                 .OrderByIF(dto is { SortField: "creationTime", SortRule: 1 }, x => x.CreationTime, OrderByType.Desc) //受理时间降序
                 .OrderByIF(dto is { SortField: "creationTime", SortRule: 1 }, x => x.CreationTime, OrderByType.Desc) //受理时间降序
                 .OrderByIF(dto is { SortField: "visitTime", SortRule: 0 }, x => x.VisitTime, OrderByType.Asc) //回访时间升序
                 .OrderByIF(dto is { SortField: "visitTime", SortRule: 0 }, x => x.VisitTime, OrderByType.Asc) //回访时间升序
                 .OrderByIF(dto is { SortField: "visitTime", SortRule: 1 }, x => x.VisitTime, OrderByType.Desc) //回访时间降序
                 .OrderByIF(dto is { SortField: "visitTime", SortRule: 1 }, x => x.VisitTime, OrderByType.Desc) //回访时间降序
@@ -1911,7 +1915,9 @@ namespace Hotline.Repository.SqlSugar.Orders
                 .WhereIF(dto.IsProvinceOrder.HasValue && dto.IsProvinceOrder == false, x => x.OrderVisit.Order.Source != ESource.ProvinceStraight)
                 .WhereIF(dto.IsProvinceOrder.HasValue && dto.IsProvinceOrder == false, x => x.OrderVisit.Order.Source != ESource.ProvinceStraight)
                 .WhereIF(!string.IsNullOrEmpty(dto.ContentRetrieval), x => x.VisitContent.Contains(dto.ContentRetrieval!))
                 .WhereIF(!string.IsNullOrEmpty(dto.ContentRetrieval), x => x.VisitContent.Contains(dto.ContentRetrieval!))
                 .WhereIF(!string.IsNullOrEmpty(dto.ActualHandleOrgName), x => x.OrderVisit.Order.ActualHandleOrgName.Contains(dto.ActualHandleOrgName!))
                 .WhereIF(!string.IsNullOrEmpty(dto.ActualHandleOrgName), x => x.OrderVisit.Order.ActualHandleOrgName.Contains(dto.ActualHandleOrgName!))
-                .Select(x => new OrgVisitDetailListResp
+				.WhereIF(dto.IsScreen.HasValue && dto.IsScreen.Value, x => SqlFunc.Subqueryable<OrderScreen>().Where(q => q.OrderId == x.OrderVisit.OrderId && q.VisitDetailId == x.Id).Any())
+				.WhereIF(dto.IsScreen.HasValue && dto.IsScreen.Value == false, x => SqlFunc.Subqueryable<OrderScreen>().Where(q => q.OrderId == x.OrderVisit.OrderId && q.VisitDetailId == x.Id).NotAny())
+				.Select(x => new OrgVisitDetailListResp
                 {
                 {
                     Id = x.Id,
                     Id = x.Id,
                     OrderId = x.OrderVisit.Order.Id,
                     OrderId = x.OrderVisit.Order.Id,
@@ -1937,7 +1943,9 @@ namespace Hotline.Repository.SqlSugar.Orders
                     ActualHandleOrgName = x.OrderVisit.Order.ActualHandleOrgName
                     ActualHandleOrgName = x.OrderVisit.Order.ActualHandleOrgName
                 }).MergeTable()
                 }).MergeTable()
                 .OrderByIF(string.IsNullOrEmpty(dto.SortField), x => x.VisitTime, OrderByType.Desc)
                 .OrderByIF(string.IsNullOrEmpty(dto.SortField), x => x.VisitTime, OrderByType.Desc)
-                .OrderByIF(dto is { SortField: "creationTime", SortRule: 0 }, x => x.CreationTime, OrderByType.Asc) //受理时间升序
+				.OrderByIF(dto is { SortField: "orderScreenStatusText", SortRule: 0 }, x => x.OrderScreenStatus, OrderByType.Asc)
+				.OrderByIF(dto is { SortField: "orderScreenStatusText", SortRule: 1 }, x => x.OrderScreenStatus, OrderByType.Desc)
+				.OrderByIF(dto is { SortField: "creationTime", SortRule: 0 }, x => x.CreationTime, OrderByType.Asc) //受理时间升序
                 .OrderByIF(dto is { SortField: "creationTime", SortRule: 1 }, x => x.CreationTime, OrderByType.Desc) //受理时间降序
                 .OrderByIF(dto is { SortField: "creationTime", SortRule: 1 }, x => x.CreationTime, OrderByType.Desc) //受理时间降序
                 .OrderByIF(dto is { SortField: "visitTime", SortRule: 0 }, x => x.VisitTime, OrderByType.Asc) //回访时间升序
                 .OrderByIF(dto is { SortField: "visitTime", SortRule: 0 }, x => x.VisitTime, OrderByType.Asc) //回访时间升序
                 .OrderByIF(dto is { SortField: "visitTime", SortRule: 1 }, x => x.VisitTime, OrderByType.Desc) //回访时间降序
                 .OrderByIF(dto is { SortField: "visitTime", SortRule: 1 }, x => x.VisitTime, OrderByType.Desc) //回访时间降序

+ 6 - 1
src/Hotline.Share/Dtos/Bi/BiOrderDto.cs

@@ -76,7 +76,12 @@ namespace Hotline.Share.Dtos.Bi
         /// 接办部门
         /// 接办部门
         /// </summary>
         /// </summary>
         public string? ActualHandleOrgName { get; set; }
         public string? ActualHandleOrgName { get; set; }
-    }
+
+		/// <summary>
+		/// 是否甄别
+		/// </summary>
+		public bool? IsScreen { get; set; }
+	}
 
 
     public record HighFrequencyCallStatisticsRequest : PagedRequest
     public record HighFrequencyCallStatisticsRequest : PagedRequest
     {
     {

+ 1 - 1
src/Hotline.Share/Dtos/Order/OrderBiDto.cs

@@ -451,7 +451,7 @@ namespace Hotline.Share.Dtos.Order
         /// 甄别状态
         /// 甄别状态
         /// </summary>
         /// </summary>
         public EScreenStatus? OrderScreenStatus { get; set; }
         public EScreenStatus? OrderScreenStatus { get; set; }
-        public string? OrderScreenStatusText => OrderScreenStatus?.GetDescription();
+        public string? OrderScreenStatusText => OrderScreenStatus.HasValue && OrderScreenStatus != null ? OrderScreenStatus?.GetDescription() : "未甄别";
 
 
         /// <summary>
         /// <summary>
         /// 回访内容
         /// 回访内容

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

@@ -678,6 +678,11 @@ public record OrgVisitDetailListReq : PagedKeywordRequest
     /// 内容检索(回访内容)
     /// 内容检索(回访内容)
     /// </summary>
     /// </summary>
     public string? ContentRetrieval { get; set; }
     public string? ContentRetrieval { get; set; }
+
+    /// <summary>
+    /// 是否甄别
+    /// </summary>
+    public bool? IsScreen { get; set; }
 }
 }