xfe 6 mesi fa
parent
commit
629137fe9c

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

@@ -3549,6 +3549,8 @@ public class OrderController : BaseController
             startDto.Title = order.Title;
             var startStep = await _workflowDomainService.StartAsync(startDto, order.Id, order.ExpiredTime, HttpContext.RequestAborted);
 
+            
+            
             await HandleOrderAsync(order, startStep, dto.Data, dto.Workflow, HttpContext.RequestAborted);
         }
         catch (Exception e)
@@ -3660,6 +3662,17 @@ public class OrderController : BaseController
                 if (!orderHandleFlowDto.CrossSteps.Any())
                     throw new UserFriendlyException("跨级指派参数异常");
 
+                //todo 1. 办理startStep 得到nextSteps 2. 利用crossSteps参数逐级办理unhandlSteps
+                
+                orderHandleFlowDto.CrossSteps = orderHandleFlowDto.CrossSteps.OrderBy(d => d.Sort).ToList();
+                for (int i = 0; i < orderHandleFlowDto.CrossSteps.Count; i++)
+                {
+                    var unhandleStep = orderHandleFlowDto.CrossSteps[i];
+                    
+                    await _workflowDomainService.NextAsync(nextflowDto, expiredTime, cancellationToken);
+                }
+                
+                //
                 var orgIds = orderHandleFlowDto.CrossOrgIds;
                 orgIds.Add(workflowDto.NextHandlers.First().OrgId);
                 var orgs = await _organizeRepository.Queryable()

+ 10 - 2
src/Hotline.Share/Dtos/Order/OrderStartFlowDto.cs

@@ -17,9 +17,9 @@ namespace Hotline.Share.Dtos.Order
         public EOrderAssignMode OrderAssignMode { get; set; }
 
         /// <summary>
-        /// 跨级转派得跳过的节点
+        /// 跨级派单选择的节点
         /// </summary>
-        public List<BasicWorkflowDto> CrossSteps { get; set; }
+        public List<CrossStep> CrossSteps { get; set; }
 
         /// <summary>
         /// 抄送对象
@@ -126,6 +126,14 @@ namespace Hotline.Share.Dtos.Order
         #endregion
     }
 
+    public class CrossStep : BasicWorkflowDto
+    {
+        /// <summary>
+        /// 办理顺序
+        /// </summary>
+        public int Sort { get; set; }
+    }
+
     public enum EOrderAssignMode
     {
         /// <summary>