فهرست منبع

fix: 办理流程为映射steps -> traces

xf 8 ماه پیش
والد
کامیت
dcabde74f5
1فایلهای تغییر یافته به همراه16 افزوده شده و 2 حذف شده
  1. 16 2
      src/Hotline/FlowEngine/Workflows/WorkflowDomainService.cs

+ 16 - 2
src/Hotline/FlowEngine/Workflows/WorkflowDomainService.cs

@@ -450,7 +450,19 @@ namespace Hotline.FlowEngine.Workflows
             //    .Include(d => d.StepHandlers)
             //    .ExecuteCommandAsync();
 
-            var trace = await NextTraceAsync(workflow, dto, currentStep, cancellationToken);
+            //更新traces
+            var updateTraces = new List<WorkflowTrace>();
+            foreach (var updateStep in updateSteps)
+            {
+                var updateTrace = workflow.Traces.First(d => d.Id == updateStep.Id);
+                _mapper.Map(updateStep, updateTrace);
+                updateTraces.Add(updateTrace);
+            }
+
+            await _workflowTraceRepository.UpdateRangeAsync(updateTraces, cancellationToken);
+
+            //var trace = await NextTraceAsync(workflow, dto, currentStep, cancellationToken);
+            
 
             #endregion
 
@@ -537,8 +549,9 @@ namespace Hotline.FlowEngine.Workflows
 
             #endregion
 
+            var currentTrace = workflow.Traces.First(d => d.Id == currentStep.Id);
             await _publisher.PublishAsync(
-                new NextStepNotify(workflow, dto, flowAssignInfo, trace, nextStepDefine,
+                new NextStepNotify(workflow, dto, flowAssignInfo, currentTrace, nextStepDefine,
                     current.RequiredOrgId, expiredTime.HasValue), PublishStrategy.ParallelWhenAll,
                 cancellationToken);
         }
@@ -2174,6 +2187,7 @@ namespace Hotline.FlowEngine.Workflows
             }
 
             await _workflowTraceRepository.AddAsync(trace, cancellationToken);
+            workflow.Traces.Add(trace);
         }
 
         private async Task<WorkflowTrace> GetWorkflowTraceAsync(string workflowId, string stepId,