田爽 9 月之前
父節點
當前提交
44a7512d3a

+ 13 - 16
src/Hotline.Api/Controllers/OrderController.cs

@@ -1648,9 +1648,9 @@ public class OrderController : BaseController
             .Includes(x => x.OrderVisit)
             .Includes(x => x.OrderVisit, y => y.Order)
             .Includes(x => x.OrderVisit, y => y.Employee)
-            .LeftJoin<OrderScreen>((x, s) => x.Id == s.VisitDetailId  && s.IsDeleted == false)
-                    //&& s.Status < EScreenStatus.End
-			.Where((x, s) => s.Id == null)
+            .LeftJoin<OrderScreen>((x, s) => x.Id == s.VisitDetailId && s.IsDeleted == false)
+            .WhereIF(dto.ScreenSendBack is 1, (x, s) => s.Status == EScreenStatus.SendBack && s.SendBackApply == true)
+            .WhereIF(dto.ScreenSendBack is 2, (x, s) => (s.Status != EScreenStatus.SendBack && s.SendBackApply != true) || s.Id == null )
             .WhereIF(dto.IsHomePage.HasValue && dto.IsHomePage == true,
                 x => x.OrderVisit.VisitTime < dto.CreationTimeEnd && x.OrderVisit.VisitTime > dto.CreationTimeStart)
             .WhereIF(!string.IsNullOrEmpty(dto.No), x => x.OrderVisit.Order!.No!.Contains(dto.No!))
@@ -1832,7 +1832,8 @@ public class OrderController : BaseController
         _mapper.Map(dto.Data, screen);
         if (dto.Data.Files.Any())
             screen.FileJson = await _fileRepository.AddFileAsync(dto.Data.Files, screen.Id, "", HttpContext.RequestAborted);
-        await _orderScreenRepository.UpdateAsync(screen, HttpContext.RequestAborted);
+        screen.SendBackApplyNum++;
+		await _orderScreenRepository.UpdateAsync(screen, HttpContext.RequestAborted);
         try
         {
             dto.NextWorkflow.WorkflowId = screen.WorkflowId;
@@ -1853,18 +1854,14 @@ public class OrderController : BaseController
     {
 	    var workflow = await _workflowDomainService.GetWorkflowAsync(dto.WorkflowId, withSteps: true,
 		    cancellationToken: HttpContext.RequestAborted);
-        if (workflow.Steps.Count > 2)
-        {
-            await _workflowApplication.PreviousAsync(dto, HttpContext.RequestAborted);
-        }
-        else {
-            TerminateDto terDto = new TerminateDto
-            {
-                WorkflowId = dto.WorkflowId,
-                Opinion = "退回申请人"
-            };
-			await _workflowDomainService.TerminateAsync(terDto, HttpContext.RequestAborted);
-		}
+        var screen = await _orderScreenRepository.Queryable().Where(x => x.WorkflowId == dto.WorkflowId).FirstAsync();
+        if (screen == null)
+	        throw UserFriendlyException.SameMessage("甄别信息错误!");
+        screen.SendBackApply = workflow.Steps.Count <= 2;
+		await _workflowApplication.PreviousAsync(dto, HttpContext.RequestAborted);
+        screen.Status = EScreenStatus.SendBack;
+        screen.SendBackNum++;
+        await _orderScreenRepository.UpdateAsync(screen, HttpContext.RequestAborted);
 	}
 	/// <summary>
 	/// 查询工单甄别流程开启参数

+ 24 - 0
src/Hotline.Share/Dtos/Order/OrderScreenDto.cs

@@ -212,6 +212,30 @@ namespace Hotline.Share.Dtos.Order
 		public decimal? TimeConsuming { get; set; }
 
 		public string TimeConsuminText => TimeConsuming.HasValue ? TimeConsuming.ToString() + "天" : "-";
+		/// <summary>
+		/// 甄别退回次数
+		/// </summary>
+		public int SendBackNum { get; set; }
+
+		/// <summary>
+		/// 甄别退回到申请人
+		/// </summary>
+		public bool SendBackApply { get; set; }
+
+		/// <summary>
+		/// 甄别退回
+		/// </summary>
+		public string ScreenSendBack => Status  == EScreenStatus.SendBack && SendBackApply ? "是" : "否";
+
+		/// <summary>
+		/// 甄别重提申请次数
+		/// </summary>
+		public int SendBackApplyNum { get; set; }
+
+		/// <summary>
+		/// 重提甄别
+		/// </summary>
+		public string ScreenSendBackApply => SendBackApplyNum > 0 ? "是" : "否";
 	}
 
 	public class PublishScreenDto {

+ 7 - 1
src/Hotline.Share/Dtos/Order/QueryOrderDto.cs

@@ -580,7 +580,13 @@ namespace Hotline.Share.Dtos.Order
         /// 不满意原因
         /// </summary>
         public string? OrgNoSatisfiedReason { get; set; }
-    }
+
+        /// <summary>
+        /// 甄别退回  0  全部  1 是  2 否
+        /// </summary>
+        public int? ScreenSendBack { get; set; }
+
+	}
 
     public record UrgeListDto : PagedKeywordRequest
     {

+ 16 - 1
src/Hotline/Orders/OrderScreen.cs

@@ -134,7 +134,22 @@ namespace Hotline.Orders
 		[SugarColumn(ColumnDescription = "甄别耗时")]
 		public decimal? TimeConsuming { get; set; }
 
+        /// <summary>
+        /// 甄别退回次数
+        /// </summary>
+		[SugarColumn(DefaultValue = "0")]
+		public int SendBackNum { get; set; }
 
-        public int? SendBackNum { get; set; }
+        /// <summary>
+        /// 甄别退回到申请人
+        /// </summary>
+		[SugarColumn(DefaultValue = "f")]
+		public bool SendBackApply { get; set; }
+
+        /// <summary>
+        /// 甄别重提申请次数
+        /// </summary>
+		[SugarColumn(DefaultValue = "0")]
+		public int SendBackApplyNum { get; set; }
 	}
 }