瀏覽代碼

fix: 会签再会签创建多个汇总节点

xf 10 月之前
父節點
當前提交
167c79264e

+ 2 - 1
src/Hotline.Api/Controllers/OrderController.cs

@@ -3028,7 +3028,8 @@ public class OrderController : BaseController
             .Queryable(hasHandled: !isHandled)
             .Includes(d => d.OrderSpecials)
             .WhereIF(dto.IsProvince.HasValue, d => d.IsProvince == dto.IsProvince)
-            .WhereIF(!string.IsNullOrEmpty(dto.Keyword), d => d.No.Contains(dto.Keyword) || d.Title.Contains(dto.Keyword))
+            .WhereIF(!string.IsNullOrEmpty(dto.Keyword), d => d.Title.StartsWith(dto.Keyword))
+            .WhereIF(!string.IsNullOrEmpty(dto.No), d => d.No == dto.No)
             .WhereIF(dto.IsCounterSign.HasValue && dto.IsCounterSign == true, d => d.CounterSignType.HasValue)
             .WhereIF(dto.IsCounterSign.HasValue && dto.IsCounterSign == false, d => !d.CounterSignType.HasValue)
             .WhereIF(dto.ExpiredOrAlmostOverdue.HasValue && dto.ExpiredOrAlmostOverdue == true, d => (d.ExpiredTime < DateTime.Now && d.Status < EOrderStatus.Filed) || (d.ExpiredTime < d.ActualHandleTime && d.Status >= EOrderStatus.Filed)) //超期 未办

+ 14 - 12
src/Hotline/FlowEngine/Workflows/WorkflowDomainService.cs

@@ -654,7 +654,7 @@ namespace Hotline.FlowEngine.Workflows
         {
             return await _workflowStepRepository.Queryable()
                 .Where(d => d.HandlerId == userId)
-                .OrderBy(d=>d.CreationTime)
+                .OrderBy(d => d.CreationTime)
                 .ToListAsync(cancellationToken);
         }
 
@@ -728,7 +728,7 @@ namespace Hotline.FlowEngine.Workflows
                 foreach (var step in handler.steps)
                 {
                     step.FlowAssignType = EFlowAssignType.User;
-                    step.Assign(handler.userId, handler.username, 
+                    step.Assign(handler.userId, handler.username,
                         handler.orgId, handler.orgName);
                 }
             }
@@ -1599,18 +1599,20 @@ namespace Hotline.FlowEngine.Workflows
             //会签未全部办理则不创建汇总节点
 
             var csInnerSteps = workflow.Steps.Where(d => d.PrevStepId == countersignStartStep.Id).ToList();
-            if (csInnerSteps.All(d => d.Status == EWorkflowStepStatus.Handled))
-            {
-                // 创建会签汇总节点
-                var countersignEndStep =
-                    await CreateCountersignEndStepAsync(countersignStartStep, dto, expiredTime, cancellationToken);
-                nextSteps = new List<WorkflowStep> { countersignEndStep };
+            if (csInnerSteps.Any(d => d.Status != EWorkflowStepStatus.Handled || (d.IsStartCountersign && !d.IsStartedCountersignEnd)))
+                return nextSteps;
+            //if (csInnerSteps.All(d => d.Status == EWorkflowStepStatus.Handled))
+            //{
+            // 创建会签汇总节点
+            var countersignEndStep =
+                await CreateCountersignEndStepAsync(countersignStartStep, dto, expiredTime, cancellationToken);
+            nextSteps = new List<WorkflowStep> { countersignEndStep };
 
-                //create trace
-                await CreateTraceAsync(workflow, countersignEndStep, EWorkflowTraceType.Normal, cancellationToken);
+            //create trace
+            await CreateTraceAsync(workflow, countersignEndStep, EWorkflowTraceType.Normal, cancellationToken);
 
-                await _mediator.Publish(new CountersignEndAssigned(workflow), cancellationToken);
-            }
+            await _mediator.Publish(new CountersignEndAssigned(workflow), cancellationToken);
+            //}
 
             return nextSteps;
         }