田爽 1 éve
szülő
commit
c477c77559

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

@@ -2349,14 +2349,13 @@ public class OrderController : BaseController
         await _orderSpecialRepository.AddAsync(model, HttpContext.RequestAborted);
         if (model.State == 1)
         {
-            var step =await _workflowStepRepository.GetAsync(dto.StepId);
             var recall = new RecallDto
             {
-	            WorkflowId = step?.WorkflowId!,
-	            NextStepCode = step.Code,
-	            NextStepName = step.Name,
-	            NextHandlers = step.Handlers,
-	            Opinion = dto.Cause
+				WorkflowId = dto.WorkflowId!,
+				NextStepCode = dto.NextStepCode,
+				NextStepName = dto.NextStepName,
+				NextHandlers = dto.NextHandlers,
+				Opinion = dto.Cause
 			};
             if (dto.AlterTime)
             {
@@ -2387,13 +2386,12 @@ public class OrderController : BaseController
         await _orderSpecialRepository.UpdateAsync(special, HttpContext.RequestAborted);
         if (special.State == 1)
         {
-			var step = await _workflowStepRepository.GetAsync(dto.StepId);
 			var recall = new RecallDto
 			{
-				WorkflowId = step?.WorkflowId!,
-				NextStepCode = step.Code,
-				NextStepName = step.Name,
-				NextHandlers = step.Handlers,
+				WorkflowId = dto.WorkflowId!,
+				NextStepCode = dto.NextStepCode,
+				NextStepName = dto.NextStepName,
+				NextHandlers = dto.NextHandlers,
 				Opinion = dto.Opinion
 			};
 			if (dto.AlterTime)
@@ -2513,9 +2511,7 @@ public class OrderController : BaseController
     public async Task<int> SpecialHandleTime([FromQuery] OrderSpecialHandleTime dto)
     {
         var order = await _orderRepository.GetAsync(dto.OrderId);
-        var step = await _workflowStepRepository.GetAsync(dto.StepId);
-        var org = await _organizeRepository.GetAsync(step.HandlerOrgId);
-        if (org is { IsCenter: true }) return _timeLimitDomainService.GetOrderTimeLimitConfig(string.Empty);
+        if (dto.FlowDirection == EFlowDirection.OrgToCenter) return _timeLimitDomainService.GetOrderTimeLimitConfig(string.Empty);
         return _timeLimitDomainService.GetOrderTimeLimitConfig(order.AcceptTypeCode);
     }
 

+ 31 - 5
src/Hotline.Share/Dtos/Order/OrderSpecialDto.cs

@@ -9,6 +9,7 @@ using System.Text;
 using System.Threading.Tasks;
 using Hotline.Share.Dtos.FlowEngine.Workflow;
 using XF.Utility.EnumExtensions;
+using Hotline.Share.Enums.FlowEngine;
 
 namespace Hotline.Share.Dtos.Order
 {
@@ -16,10 +17,21 @@ namespace Hotline.Share.Dtos.Order
 	{
 		public string OrderId { get; set; }
 
+		public string WorkflowId { get; set; }
+
 		/// <summary>
-		/// 节点Id
+		/// 下一节点code(defineStep.code)
 		/// </summary>
-		public string StepId { get; set; }
+		public string NextStepCode { get; set; } = string.Empty;
+		public string NextStepName { get; set; } = string.Empty;
+
+		/// <summary>
+		/// 根据办理者类型不同,此字段为不同内容
+		/// <example>
+		/// 部门等级/分类为:depCodes, 角色为:userIds
+		/// </example>
+		/// </summary>
+		public List<Kv> NextHandlers { get; set; } = new();
 
 		/// <summary>
 		/// 特提原因
@@ -58,10 +70,21 @@ namespace Hotline.Share.Dtos.Order
 	{
 		public string Id { get; set; }
 
+		public string WorkflowId { get; set; }
+
 		/// <summary>
-		/// 节点Id
+		/// 下一节点code(defineStep.code)
 		/// </summary>
-		public string StepId { get; set; }
+		public string NextStepCode { get; set; } = string.Empty;
+		public string NextStepName { get; set; } = string.Empty;
+
+		/// <summary>
+		/// 根据办理者类型不同,此字段为不同内容
+		/// <example>
+		/// 部门等级/分类为:depCodes, 角色为:userIds
+		/// </example>
+		/// </summary>
+		public List<Kv> NextHandlers { get; set; } = new();
 
 		public string? OrgId { get; set; }
 
@@ -209,6 +232,9 @@ namespace Hotline.Share.Dtos.Order
 	{
 		public string OrderId { get; set; }
 
-		public string StepId { get; set; }
+		/// <summary>
+		/// 流转方向
+		/// </summary>
+		public EFlowDirection? FlowDirection { get; set; }
 	}
 }

+ 8 - 6
src/Hotline/Orders/OrderSpecial.cs

@@ -16,16 +16,18 @@ namespace Hotline.Orders
     public class OrderSpecial : FullStateEntity
 	{
         public string OrderId { get; set; }
+        public string WorkflowId { get; set; }
 
         /// <summary>
-        /// 节点Id
+        /// 下一节点code(defineStep.code)
         /// </summary>
-        public string StepId { get; set; }
+        public string NextStepCode { get; set; } = string.Empty;
+        public string NextStepName { get; set; } = string.Empty;
 
-        /// <summary>
-        /// 特提原因
-        /// </summary>
-        [SugarColumn(ColumnDescription = "特提原因")]
+		/// <summary>
+		/// 特提原因
+		/// </summary>
+		[SugarColumn(ColumnDescription = "特提原因")]
         public string? Cause { get; set; }
 
 		/// <summary>