소스 검색

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

Dun.Jason 1 년 전
부모
커밋
ff436bf11e

+ 130 - 68
src/Hotline.Api/Controllers/Bi/BiOrderController.cs

@@ -415,6 +415,68 @@ namespace Hotline.Api.Controllers.Bi
 			return new PagedDto<OrderSpecialDto>(total, _mapper.Map<IReadOnlyList<OrderSpecialDto>>(items));
 		}
 
+		/// <summary>
+		/// 受理类型前十
+		/// </summary>
+		/// <param name="dto"></param>
+		/// <returns></returns>
+		//[HttpGet("accept_type_top10_list")]
+		//public async Task<object> AcceptTypeTop10List([FromQuery] ReportPagedRequest dto)
+  //      {
+	 //       if (!dto.StartTime.HasValue || !dto.EndTime.HasValue) throw UserFriendlyException.SameMessage("请选择时间!");
+  //          dto.PageIndex = 1;
+  //          dto.PageSize = 10;
+  //          var acceptType = _sysDicDataCacheManager.GetSysDicDataCache(SysDicTypeConsts.AcceptType);
+  //          List<dynamic> listReturn =  new List<dynamic>();
+  //          var validQuery = await _orderRepository.Queryable(false, false, false)
+	 //           .WhereIF(dto.StartTime.HasValue, x => x.CreationTime >= dto.StartTime)
+	 //           .WhereIF(dto.EndTime.HasValue, x => x.CreationTime <= dto.EndTime)
+	 //           .Select(x => new
+	 //           {
+		//            AcceptType = x.AcceptType,
+		//            OneHotspot = SqlFunc.Substring(x.HotspotSpliceName, 0, SqlFunc.CharIndex("-", x.HotspotSpliceName + "-")),
+		//            Id = x.Id
+	 //           }).MergeTable()
+	 //           .GroupBy(x => new { x.OneHotspot })
+	 //           .Select(x => new 
+	 //           {
+		//            Name = x.OneHotspot,
+		//            Id = "0",
+		//            AcceptName = "有效受理量",
+		//            Num = SqlFunc.AggregateSum(SqlFunc.IIF(true, 1, 0)),
+	 //           }).ToListAsync();
+  //          listReturn.AddRange(validQuery);
+		//	foreach (var item in acceptType)
+  //          {
+		//		var query = await _orderRepository.Queryable(false, false, false)
+		//			.WhereIF(dto.StartTime.HasValue, x => x.CreationTime >= dto.StartTime)
+		//			.WhereIF(dto.EndTime.HasValue, x => x.CreationTime <= dto.EndTime)
+		//			.Select(x => new
+		//			{
+		//				AcceptType = x.AcceptType,
+		//				OneHotspot = SqlFunc.Substring(x.HotspotSpliceName, 0, SqlFunc.CharIndex("-", x.HotspotSpliceName + "-")),
+		//				Id = x.Id
+		//			}).MergeTable()
+		//			.GroupBy(x => new { x.OneHotspot })
+		//			.Select(x => new 
+		//			{
+		//				Name = x.OneHotspot,
+  //                      Id = item.Id,
+  //                      AcceptName = item.DicDataName,
+		//				Num = SqlFunc.AggregateSum(SqlFunc.IIF(item.DicDataName.Equals(x.AcceptType), 1, 0)),
+		//			}).ToListAsync();
+		//		listReturn.AddRange(query);
+		//	}
+  // //         if (!string.IsNullOrEmpty(dto.SortField))
+  // //         {
+  // //             listReturn = dto.SortRule == 0 ? (from items in listReturn orderby items.Num  select items).ToList() : (from items in listReturn orderby items.Num descending select items).ToList();
+		//	//}
+  // //         else {
+	 // //          listReturn = (from items in listReturn orderby items.Num  descending select items).ToList() ;
+		//	//}
+	 //       return new { Header= acceptType,Data = listReturn };
+		//}
+
 		/// <summary>
 		/// 受理类型前十
 		/// </summary>
@@ -422,80 +484,80 @@ namespace Hotline.Api.Controllers.Bi
 		/// <returns></returns>
 		[HttpGet("accept_type_top10_list")]
 		public async Task<PagedDto<AcceptTypeTop10Vo>> AcceptTypeTop10List([FromQuery] ReportPagedRequest dto)
-        {
-	        if (!dto.StartTime.HasValue || !dto.EndTime.HasValue) throw UserFriendlyException.SameMessage("请选择时间!");
-            dto.PageIndex = 1;
-            dto.PageSize = 10;
-            var query = _orderRepository.Queryable(false, false, false)
-                .WhereIF(dto.StartTime.HasValue, x => x.CreationTime >= dto.StartTime)
-                .WhereIF(dto.EndTime.HasValue, x => x.CreationTime <= dto.EndTime)
-                .Select(x => new
-                {
-                    AcceptType = x.AcceptType,
-                    OneHotspot = SqlFunc.Substring(x.HotspotSpliceName, 0, SqlFunc.CharIndex("-", x.HotspotSpliceName + "-")),
-                    Id = x.Id
-                }).MergeTable()
-		        .GroupBy(x => new { x.OneHotspot })
-		        .Select(x => new AcceptTypeTop10Vo
+		{
+			if (!dto.StartTime.HasValue || !dto.EndTime.HasValue) throw UserFriendlyException.SameMessage("请选择时间!");
+			dto.PageIndex = 1;
+			dto.PageSize = 10;
+			var query = _orderRepository.Queryable(false, false, false)
+				.WhereIF(dto.StartTime.HasValue, x => x.CreationTime >= dto.StartTime)
+				.WhereIF(dto.EndTime.HasValue, x => x.CreationTime <= dto.EndTime)
+				.Select(x => new
+				{
+					AcceptType = x.AcceptType,
+					OneHotspot = SqlFunc.Substring(x.HotspotSpliceName, 0, SqlFunc.CharIndex("-", x.HotspotSpliceName + "-")),
+					Id = x.Id
+				}).MergeTable()
+				.GroupBy(x => new { x.OneHotspot })
+				.Select(x => new AcceptTypeTop10Vo
 				{
-                    Name = x.OneHotspot,
-                    ValidAccept = SqlFunc.AggregateSum(SqlFunc.IIF(true, 1, 0)),
-			        Consult = SqlFunc.AggregateSum(SqlFunc.IIF("咨询".Equals(x.AcceptType), 1, 0)),
-			        Report = SqlFunc.AggregateSum(SqlFunc.IIF("举报".Equals(x.AcceptType), 1, 0)),
-			        Complaint = SqlFunc.AggregateSum(SqlFunc.IIF("投诉".Equals(x.AcceptType), 1, 0)),
-			        SeekHelp = SqlFunc.AggregateSum(SqlFunc.IIF("求助".Equals(x.AcceptType), 1, 0)),
-			        Suggest = SqlFunc.AggregateSum(SqlFunc.IIF("建议".Equals(x.AcceptType), 1, 0)),
-			        Opinion = SqlFunc.AggregateSum(SqlFunc.IIF("意见".Equals(x.AcceptType), 1, 0)),
-			        Rests = SqlFunc.AggregateSum(SqlFunc.IIF("其他".Equals(x.AcceptType), 1, 0)),
-			        BenefitThePeople = SqlFunc.AggregateSum(SqlFunc.IIF("惠民帮助".Equals(x.AcceptType), 1, 0)),
-			        Praise = SqlFunc.AggregateSum(SqlFunc.IIF("表扬".Equals(x.AcceptType), 1, 0)),
+					Name = x.OneHotspot,
+					ValidAccept = SqlFunc.AggregateSum(SqlFunc.IIF(true, 1, 0)),
+					Consult = SqlFunc.AggregateSum(SqlFunc.IIF("咨询".Equals(x.AcceptType), 1, 0)),
+					Report = SqlFunc.AggregateSum(SqlFunc.IIF("举报".Equals(x.AcceptType), 1, 0)),
+					Complaint = SqlFunc.AggregateSum(SqlFunc.IIF("投诉".Equals(x.AcceptType), 1, 0)),
+					SeekHelp = SqlFunc.AggregateSum(SqlFunc.IIF("求助".Equals(x.AcceptType), 1, 0)),
+					Suggest = SqlFunc.AggregateSum(SqlFunc.IIF("建议".Equals(x.AcceptType), 1, 0)),
+					Opinion = SqlFunc.AggregateSum(SqlFunc.IIF("意见".Equals(x.AcceptType), 1, 0)),
+					Rests = SqlFunc.AggregateSum(SqlFunc.IIF("其他".Equals(x.AcceptType), 1, 0)),
+					BenefitThePeople = SqlFunc.AggregateSum(SqlFunc.IIF("惠民帮助".Equals(x.AcceptType), 1, 0)),
+					Praise = SqlFunc.AggregateSum(SqlFunc.IIF("表扬".Equals(x.AcceptType), 1, 0)),
 				}).MergeTable();
-	        switch (dto.SortField)
-	        {
-		        case "validAccept":
-			        query = dto.SortRule == 0 ? query.OrderBy(x => x.ValidAccept) : query.OrderByDescending(x => x.ValidAccept);
-			        break;
-		        case "consult":
-			        query = dto.SortRule == 0 ? query.OrderBy(x => x.Consult) : query.OrderByDescending(x => x.Consult);
-			        break;
-		        case "report":
-			        query = dto.SortRule == 0 ? query.OrderBy(x => x.Report) : query.OrderByDescending(x => x.Report);
-			        break;
-		        case "complaint":
-			        query = dto.SortRule == 0 ? query.OrderBy(x => x.Complaint) : query.OrderByDescending(x => x.Complaint);
-			        break;
-		        case "seekHelp":
-			        query = dto.SortRule == 0 ? query.OrderBy(x => x.SeekHelp) : query.OrderByDescending(x => x.SeekHelp);
-			        break;
-		        case "suggest":
-			        query = dto.SortRule == 0 ? query.OrderBy(x => x.Suggest) : query.OrderByDescending(x => x.Suggest);
-			        break;
-		        case "opinion":
-			        query = dto.SortRule == 0 ? query.OrderBy(x => x.Opinion) : query.OrderByDescending(x => x.Opinion);
-			        break;
-		        case "rests":
-			        query = dto.SortRule == 0 ? query.OrderBy(x => x.Rests) : query.OrderByDescending(x => x.Rests);
-			        break;
-		        case "benefitThePeople":
-			        query = dto.SortRule == 0 ? query.OrderBy(x => x.BenefitThePeople) : query.OrderByDescending(x => x.BenefitThePeople);
-			        break;
-		        case "praise":
-			        query = dto.SortRule == 0 ? query.OrderBy(x => x.Praise) : query.OrderByDescending(x => x.Praise);
-			        break;
+			switch (dto.SortField)
+			{
+				case "validAccept":
+					query = dto.SortRule == 0 ? query.OrderBy(x => x.ValidAccept) : query.OrderByDescending(x => x.ValidAccept);
+					break;
+				case "consult":
+					query = dto.SortRule == 0 ? query.OrderBy(x => x.Consult) : query.OrderByDescending(x => x.Consult);
+					break;
+				case "report":
+					query = dto.SortRule == 0 ? query.OrderBy(x => x.Report) : query.OrderByDescending(x => x.Report);
+					break;
+				case "complaint":
+					query = dto.SortRule == 0 ? query.OrderBy(x => x.Complaint) : query.OrderByDescending(x => x.Complaint);
+					break;
+				case "seekHelp":
+					query = dto.SortRule == 0 ? query.OrderBy(x => x.SeekHelp) : query.OrderByDescending(x => x.SeekHelp);
+					break;
+				case "suggest":
+					query = dto.SortRule == 0 ? query.OrderBy(x => x.Suggest) : query.OrderByDescending(x => x.Suggest);
+					break;
+				case "opinion":
+					query = dto.SortRule == 0 ? query.OrderBy(x => x.Opinion) : query.OrderByDescending(x => x.Opinion);
+					break;
+				case "rests":
+					query = dto.SortRule == 0 ? query.OrderBy(x => x.Rests) : query.OrderByDescending(x => x.Rests);
+					break;
+				case "benefitThePeople":
+					query = dto.SortRule == 0 ? query.OrderBy(x => x.BenefitThePeople) : query.OrderByDescending(x => x.BenefitThePeople);
+					break;
+				case "praise":
+					query = dto.SortRule == 0 ? query.OrderBy(x => x.Praise) : query.OrderByDescending(x => x.Praise);
+					break;
 				default:
-                    query = query.OrderByDescending(x => x.ValidAccept);
+					query = query.OrderByDescending(x => x.ValidAccept);
 					break;
-	        }
-	        var (total, items) = await query.ToPagedListAsync(dto, HttpContext.RequestAborted);
-	        return new PagedDto<AcceptTypeTop10Vo>(total, items);
+			}
+			var (total, items) = await query.ToPagedListAsync(dto, HttpContext.RequestAborted);
+			return new PagedDto<AcceptTypeTop10Vo>(total, items);
 		}
 
-        /// <summary>
-        /// 热点类型部门统计
-        /// </summary>
-        /// <param name="dto"></param>
-        /// <returns></returns>
-        [HttpGet("hotport-org-statistics")]
+		/// <summary>
+		/// 热点类型部门统计
+		/// </summary>
+		/// <param name="dto"></param>
+		/// <returns></returns>
+		[HttpGet("hotport-org-statistics")]
         public async Task<object> HotPortJoinOrgStatistics([FromQuery]HotPortJoinOrgStatisticsRequest dto)
         {
             return await _orderRepository.HotPortJoinOrgStatistics(dto.StartTime, dto.EndTime);

+ 3 - 9
src/Hotline.Api/Controllers/OrderController.cs

@@ -72,7 +72,7 @@ public class OrderController : BaseController
     private readonly IRepository<OrderSupervise> _orderSuperviseRepository;
     private readonly IRepository<OrderUrge> _orderUrgeRepository;
     private readonly IFileRepository _fileRepository;
-    private readonly IRepository<OrderScreen> _orderScreenRepository;
+    private readonly IRepositoryWorkflow<OrderScreen> _orderScreenRepository;
     private readonly IRepository<OrderPublishHistory> _orderPublishHistoryRepository;
     private readonly IRepositoryTextSearch<OrderTs> _repositoryts;
     private readonly IQualityApplication _qualityApplication;
@@ -120,7 +120,7 @@ public class OrderController : BaseController
         IRepository<OrderSupervise> orderSuperviseRepository,
         IRepository<OrderUrge> orderUrgeRepository,
         IFileRepository fileRepository,
-        IRepository<OrderScreen> orderScreenRepository,
+        IRepositoryWorkflow<OrderScreen> orderScreenRepository,
         IRepository<OrderPublishHistory> orderPublishHistoryRepository,
         IRepositoryTextSearch<OrderTs> repositoryts,
         IQualityApplication qualityApplication,
@@ -2291,13 +2291,7 @@ public class OrderController : BaseController
 	[HttpGet("waited")]
     public async Task<PagedDto<OrderDto>> QueryWaited([FromQuery] QueryOrderWaitedDto dto)
     {
-        EWorkflowStepStatus[] handleStatuses = Array.Empty<EWorkflowStepStatus>();
-        if (dto.IsHandled.HasValue)
-            handleStatuses = dto.IsHandled.Value
-                ? new[] { EWorkflowStepStatus.Handled }
-                : new[] { EWorkflowStepStatus.WaitForAccept, EWorkflowStepStatus.WaitForHandle };
-
-        var (total, items) = await _orderRepository.Queryable(workflowFilter: false)
+       var (total, items) = await _orderRepository.Queryable(workflowFilter: false)
             .Includes(d => d.Workflow, x => x.Steps)
             .Where(d => SqlFunc.JsonListObjectAny(d.Workflow.HandlerUsers, "Key", _sessionContext.RequiredUserId) ||
                         SqlFunc.JsonListObjectAny(d.Workflow.HandlerOrgs, "Key", _sessionContext.RequiredOrgId))

+ 12 - 10
src/Hotline.Application/Handlers/FlowEngine/WorkflowNextHandler.cs

@@ -32,7 +32,7 @@ public class WorkflowNextHandler : INotificationHandler<NextStepNotify>
     private readonly ICapPublisher _capPublisher;
     private readonly IMapper _mapper;
     private readonly ILogger<WorkflowNextHandler> _logger;
-    private readonly IRepository<OrderScreen> _orderScreenRepository;
+    private readonly IRepositoryWorkflow<OrderScreen> _orderScreenRepository;
     private readonly IQualityApplication _qualityApplication;
     private readonly IRepository<OrderDelay> _orderDelayRepository;
 
@@ -45,7 +45,7 @@ public class WorkflowNextHandler : INotificationHandler<NextStepNotify>
         ICapPublisher capPublisher,
         IMapper mapper,
         ILogger<WorkflowNextHandler> logger,
-        IRepository<OrderScreen> orderScreenRepository,
+        IRepositoryWorkflow<OrderScreen> orderScreenRepository,
         IQualityApplication qualityApplication,
         IRepository<OrderDelay> orderDelayRepository)
     {
@@ -71,14 +71,15 @@ public class WorkflowNextHandler : INotificationHandler<NextStepNotify>
             $"收到{nameof(NextStepNotify)}, notification: {JsonConvert.SerializeObject(notification)}");
         var workflow = notification.Workflow;
         var data = notification.Dto;
-        
+        var assignInfo = notification.FlowAssignInfo;
+
         var currentTag = string.IsNullOrEmpty(notification.Trace.Tag)
             ? null
             : System.Text.Json.JsonSerializer.Deserialize<DefinitionTag>(notification.Trace.Tag);
         var nextTag = string.IsNullOrEmpty(notification.NextStepDefine.Tag)
             ? null
             : System.Text.Json.JsonSerializer.Deserialize<DefinitionTag>(notification.NextStepDefine.Tag);
-        
+
         switch (workflow.ModuleCode)
         {
             case WorkflowModuleConsts.OrderHandle:
@@ -98,24 +99,24 @@ public class WorkflowNextHandler : INotificationHandler<NextStepNotify>
                     //     data.External.TimeLimit.Value, data.FlowDirection is EFlowDirection.OrgToCenter);
 
                     var expiredTimeConfig = _timeLimitDomainService.CalcEndTime(DateTime.Now,
-                        new TimeConfig(data.External.TimeLimit.Value, data.External.TimeLimitUnit.Value),order.AcceptTypeCode);
+                        new TimeConfig(data.External.TimeLimit.Value, data.External.TimeLimitUnit.Value), order.AcceptTypeCode);
 
                     if (data.FlowDirection is EFlowDirection.OrgToCenter)
                     {
                         order.OrgToCenter(expiredTimeConfig.TimeText, expiredTimeConfig.Count,
-                            expiredTimeConfig.TimeType, expiredTimeConfig.ExpiredTime,expiredTimeConfig.NearlyExpiredTime);
+                            expiredTimeConfig.TimeType, expiredTimeConfig.ExpiredTime, expiredTimeConfig.NearlyExpiredTime);
                     }
                     else if (data.FlowDirection is EFlowDirection.CenterToOrg)
                     {
                         order.CenterToOrg(expiredTimeConfig.TimeText, expiredTimeConfig.Count,
-                            expiredTimeConfig.TimeType, expiredTimeConfig.ExpiredTime,expiredTimeConfig.NearlyExpiredTime);
+                            expiredTimeConfig.TimeType, expiredTimeConfig.ExpiredTime, expiredTimeConfig.NearlyExpiredTime);
                         //写入质检
                         await _qualityApplication.AddQualityAsync(EQualitySource.Send, order.Id, cancellationToken);
                     }
 
                     await _workflowDomainService.UpdateExpiredTimeAsync(workflow,
                         expiredTimeConfig.ExpiredTime, expiredTimeConfig.TimeText,
-                        expiredTimeConfig.Count, expiredTimeConfig.TimeType, expiredTimeConfig.NearlyExpiredTime,cancellationToken);
+                        expiredTimeConfig.Count, expiredTimeConfig.TimeType, expiredTimeConfig.NearlyExpiredTime, cancellationToken);
 
                     expiredTimeChanged = true;
                 }
@@ -157,9 +158,10 @@ public class WorkflowNextHandler : INotificationHandler<NextStepNotify>
                 if (screen != null)
                 {
                     screen.Status = EScreenStatus.Approval;
+                    screen.Assign(assignInfo.FlowAssignType, assignInfo.GetHandlerIds());
                     await _orderScreenRepository.UpdateAsync(screen, cancellationToken);
                 }
-                
+
                 if (nextTag is not null && nextTag.Type == TagDefaults.TagType.Org)
                 {
                     switch (nextTag.Value)
@@ -215,7 +217,7 @@ public class WorkflowNextHandler : INotificationHandler<NextStepNotify>
                                 {
                                     //推送
                                     var publishOrderDelay = _mapper.Map<PublishOrderDelayDto>(orderDelay);
-                                   await _capPublisher.PublishAsync(EventNames.HotlineOrderApplyDelay, publishOrderDelay,cancellationToken: cancellationToken);
+                                    await _capPublisher.PublishAsync(EventNames.HotlineOrderApplyDelay, publishOrderDelay, cancellationToken: cancellationToken);
 
                                     //await _provinceService.DelayCaseInfoSend(publishOrderDelay, cancellationToken);
                                 }

+ 25 - 2
src/Hotline.Share/Dtos/Order/OrderBiDto.cs

@@ -62,7 +62,30 @@ namespace Hotline.Share.Dtos.Order
 	}
 
 
-	public class AcceptTypeTop10Vo {
+	public class AcceptTypeTop10Volod {
+		/// <summary>
+		/// 热点名称
+		/// </summary>
+		public string Name { get; set; }
+
+		/// <summary>
+		/// 受理类型ID
+		/// </summary>
+		public string Id { get; set; }
+
+		/// <summary>
+		/// 受理类型名称
+		/// </summary>
+		public string AcceptName { get; set; }
+
+		/// <summary>
+		/// 数量
+		/// </summary>
+		public int Num { get; set; }
+	}
+
+	public class AcceptTypeTop10Vo
+	{
 		/// <summary>
 		/// 热点名称
 		/// </summary>
@@ -71,7 +94,7 @@ namespace Hotline.Share.Dtos.Order
 		/// <summary>
 		/// 有效受理
 		/// </summary>
-		public int ValidAccept{ get; set; }
+		public int ValidAccept { get; set; }
 
 		/// <summary>
 		/// 咨询

+ 78 - 78
src/Hotline/Orders/OrderScreen.cs

@@ -8,100 +8,100 @@ using XF.Domain.Repository;
 
 namespace Hotline.Orders
 {
-	[Description("工单甄别")]
-	public class OrderScreen : FullStateEntity
-	{
-		/// <summary>
-		/// 工单编号
-		/// </summary>
-		[SugarColumn(ColumnDescription = "工单编号")]
-		public string No { get; set; }
-
-		/// <summary>
-		/// 回访id
-		/// </summary>
-		[SugarColumn(ColumnDescription = "回访id")]
-		public string VisitId { get; set; }
-
-		/// <summary>
-		/// 回访明细id
-		/// </summary>
-		[SugarColumn(ColumnDescription = "回访明细id")]
-		public string VisitDetailId { get; set; }
-		
-		/// <summary>
-		/// 工单id
-		/// </summary>
-		[SugarColumn(ColumnDescription = "工单id")]
-		public string OrderId { get; set; }
-
-		/// <summary>
-		/// 回访
-		/// </summary>
-		[Navigate(NavigateType.OneToOne, nameof(VisitDetailId))]
-		public OrderVisitDetail VisitDetail { get; set; }
-
-		/// <summary>
-		/// 回访
-		/// </summary>
-		[Navigate(NavigateType.OneToOne, nameof(VisitId))]
+    [Description("工单甄别")]
+    public class OrderScreen : WorkflowEntity
+    {
+        /// <summary>
+        /// 工单编号
+        /// </summary>
+        [SugarColumn(ColumnDescription = "工单编号")]
+        public string No { get; set; }
+
+        /// <summary>
+        /// 回访id
+        /// </summary>
+        [SugarColumn(ColumnDescription = "回访id")]
+        public string VisitId { get; set; }
+
+        /// <summary>
+        /// 回访明细id
+        /// </summary>
+        [SugarColumn(ColumnDescription = "回访明细id")]
+        public string VisitDetailId { get; set; }
+
+        /// <summary>
+        /// 工单id
+        /// </summary>
+        [SugarColumn(ColumnDescription = "工单id")]
+        public string OrderId { get; set; }
+
+        /// <summary>
+        /// 回访
+        /// </summary>
+        [Navigate(NavigateType.OneToOne, nameof(VisitDetailId))]
+        public OrderVisitDetail VisitDetail { get; set; }
+
+        /// <summary>
+        /// 回访
+        /// </summary>
+        [Navigate(NavigateType.OneToOne, nameof(VisitId))]
         public OrderVisit Visit { get; set; }
 
-		/// <summary>
-		/// 工单
-		/// </summary>
-		[Navigate(NavigateType.OneToOne, nameof(OrderId))]
-		public Order Order { get; set; }
+        /// <summary>
+        /// 工单
+        /// </summary>
+        [Navigate(NavigateType.OneToOne, nameof(OrderId))]
+        public Order Order { get; set; }
 
-		/// <summary>
-		/// 甄别申请类型id
-		/// </summary>
-		[SugarColumn(ColumnDescription = "甄别申请类型id")]
-		public string? TypeDicId { get; set; }
+        /// <summary>
+        /// 甄别申请类型id
+        /// </summary>
+        [SugarColumn(ColumnDescription = "甄别申请类型id")]
+        public string? TypeDicId { get; set; }
 
-		/// <summary>
-		/// 甄别申请类型名称
-		/// </summary>
-		[SugarColumn(ColumnDescription = "甄别申请类型名称")]
-		public string? TypeDicName { get; set; }
+        /// <summary>
+        /// 甄别申请类型名称
+        /// </summary>
+        [SugarColumn(ColumnDescription = "甄别申请类型名称")]
+        public string? TypeDicName { get; set; }
 
 
         /// <summary>
         /// 甄别申请原因
         /// </summary>
         [SugarColumn(ColumnDescription = "甄别申请原因", ColumnDataType = "varchar(2000)")]
-		public string? Content { get; set; }
+        public string? Content { get; set; }
 
-		/// <summary>
-		/// 甄别申请回复
-		/// </summary>
-		[SugarColumn(ColumnDescription = "甄别申请回复", ColumnDataType = "varchar(2000)")]
-	    public string? ReplyContent { get; set; }
+        /// <summary>
+        /// 甄别申请回复
+        /// </summary>
+        [SugarColumn(ColumnDescription = "甄别申请回复", ColumnDataType = "varchar(2000)")]
+        public string? ReplyContent { get; set; }
 
 
-		/// <summary>
-		/// 甄别截至申请时间
-		/// </summary>
-		[SugarColumn(ColumnDescription = "甄别截至申请时间")]
-		public DateTime? ApplyEndTime { get; set; }
+        /// <summary>
+        /// 甄别截至申请时间
+        /// </summary>
+        [SugarColumn(ColumnDescription = "甄别截至申请时间")]
+        public DateTime? ApplyEndTime { get; set; }
 
-		/// <summary>
-		/// 甄别申请状态
-		/// </summary>
-		[SugarColumn(ColumnDescription = "甄别申请状态")]
-		public EScreenStatus? Status { get; set; }
+        /// <summary>
+        /// 甄别申请状态
+        /// </summary>
+        [SugarColumn(ColumnDescription = "甄别申请状态")]
+        public EScreenStatus? Status { get; set; }
 
-		/// <summary>
-		/// 业务流程ID
-		/// </summary>
-		[SugarColumn(ColumnDescription = "业务流程ID")]
-		public string? WorkflowId {  get; set; }
+        /// <summary>
+        /// 业务流程ID
+        /// </summary>
+        [SugarColumn(ColumnDescription = "业务流程ID")]
+        public string? WorkflowId { get; set; }
 
-		[Navigate(NavigateType.OneToOne, nameof(WorkflowId))]
-		public Workflow? Workflow { get; set; }
+        [Navigate(NavigateType.OneToOne, nameof(WorkflowId))]
+        public Workflow? Workflow { get; set; }
 
-		[SugarColumn(ColumnDataType = "json", IsJson = true, IsNullable = true)]
-		public List<FileJson>? FileJson { get; set; }
+        [SugarColumn(ColumnDataType = "json", IsJson = true, IsNullable = true)]
+        public List<FileJson>? FileJson { get; set; }
 
-	}
+    }
 }