Browse Source

fixed: 错误创建会签汇总节点

xf 5 tháng trước cách đây
mục cha
commit
12e9a4cba2
1 tập tin đã thay đổi với 7 bổ sung5 xóa
  1. 7 5
      src/Hotline/FlowEngine/Workflows/WorkflowDomainService.cs

+ 7 - 5
src/Hotline/FlowEngine/Workflows/WorkflowDomainService.cs

@@ -2323,15 +2323,17 @@ namespace Hotline.FlowEngine.Workflows
         private async Task<List<WorkflowStep>> CreateCsEndStepsByTargetPrevAsync(Workflow workflow, WorkflowStep step,
             BasicWorkflowDto dto, DateTime? expiredTime, bool isAutoFillSummaryOpinion = false, CancellationToken cancellationToken = default)
         {
-            var countersignStartStep = workflow.Steps.FirstOrDefault(d => d.Id == step.PrevStepId);
+            //var countersignStartStep = workflow.Steps.FirstOrDefault(d => d.Id == step.PrevStepId);
+            var countersignStartStep = workflow.Steps.FirstOrDefault(d => d.StartCountersignId == step.CountersignId);
             if (countersignStartStep is null)
-                throw new UserFriendlyException("未查询到当前节点上级节点");
+                throw new UserFriendlyException("未查询到当前节点上级会签开启节点");
             var nextSteps = new List<WorkflowStep>();
             //会签未全部办理则不创建汇总节点
 
-            var csInnerSteps = workflow.Steps.Where(d => d.PrevStepId == countersignStartStep.Id).ToList();
-            if (csInnerSteps.Any(d =>
-                    d.Status != EWorkflowStepStatus.Handled || (d.IsStartCountersign && !d.IsStartedCountersignEnd)))
+            //var csInnerSteps = workflow.Steps.Where(d => d.PrevStepId == countersignStartStep.Id).ToList();
+            //if (csInnerSteps.Any(d =>
+            //        d.Status != EWorkflowStepStatus.Handled || (d.IsStartCountersign && !d.IsStartedCountersignEnd)))
+            if(countersignStartStep.IsStartCountersign && !countersignStartStep.IsStartedCountersignEnd)
                 return nextSteps;
 
             string? opinion = null;