Переглянути джерело

fixed:会签汇总继续办理时未发起会签,流程明细还是显示发起了会签

xfe 5 місяців тому
батько
коміт
a057346636

+ 10 - 4
src/Hotline/FlowEngine/Workflows/WorkflowDomainService.cs

@@ -2681,12 +2681,15 @@ namespace Hotline.FlowEngine.Workflows
             trace.TraceType = traceType;
             trace.SendHandleTimes = sendHandleTimes;
 
-            if (step.IsInCountersign())
+            if (workflow.IsInCountersign /*step.IsInCountersign()*/)
             {
                 if (step.IsCountersignEndStep)
                 {
-                    var startTrace =
-                        await GetWorkflowTraceAsync(workflow.Id, step.CountersignStartStepId, cancellationToken);
+                    //var startTrace = await GetWorkflowTraceAsync(workflow.Id, step.CountersignStartStepId, cancellationToken);
+                    var startTrace = workflow.Traces.FirstOrDefault(d => d.Id == step.CountersignStartStepId);
+                    if (startTrace == null)
+                        throw new UserFriendlyException(
+                            $"未找到startTrace, workflowId: {workflow.Id}, step.CountersignStartStepId: {step.CountersignStartStepId}");
                     trace.ParentId = startTrace.ParentId;
                 }
                 else
@@ -2701,7 +2704,10 @@ namespace Hotline.FlowEngine.Workflows
                     //    var prevTrace = await GetWorkflowTraceAsync(workflow.Id, step.PrevStepId, cancellationToken);
                     //    trace.ParentId = prevTrace.ParentId;
                     //}
-                    var prevTrace = await GetWorkflowTraceAsync(workflow.Id, step.PrevStepId, cancellationToken);
+                    //var prevTrace = await GetWorkflowTraceAsync(workflow.Id, step.PrevStepId, cancellationToken);
+                    var prevTrace = workflow.Traces.FirstOrDefault(d => d.Id == step.PrevStepId);
+                    if (prevTrace == null)
+                        throw new UserFriendlyException($"未找到prevTrace, workflowId: {workflow.Id}, step.PrevStepId: {step.PrevStepId}");
                     trace.ParentId = prevTrace.Id;
                 }
             }