|
@@ -284,7 +284,7 @@ namespace Hotline.FlowEngine.Workflows
|
|
|
/// workflow, currentStep, nextStepDefine, nextSteps
|
|
|
/// </summary>
|
|
|
public async Task<(Workflow, WorkflowStep, StepDefine, List<WorkflowStep>)> NextAsync(
|
|
|
- NextWorkflowDto dto,
|
|
|
+ NextWorkflowDto dto,
|
|
|
EHandleMode handleMode = EHandleMode.Normal,
|
|
|
DateTime? expiredTime = null, bool isAutoFillSummaryOpinion = false,
|
|
|
Action<Workflow, WorkflowStep, StepDefine>? currentStepConfig = null,
|
|
@@ -623,8 +623,8 @@ namespace Hotline.FlowEngine.Workflows
|
|
|
nextDto.WorkflowId = workflow.Id;
|
|
|
nextDto.StepId = startStep.Id;
|
|
|
var (_, _, _, nextSteps) =
|
|
|
- await NextAsync(nextDto,
|
|
|
- expiredTime: expiredTime,
|
|
|
+ await NextAsync(nextDto,
|
|
|
+ expiredTime: expiredTime,
|
|
|
isAutoFillSummaryOpinion: true,
|
|
|
newStepConfig: newStepConfig, cancellationToken: cancellationToken);
|
|
|
return nextSteps;
|
|
@@ -991,13 +991,13 @@ namespace Hotline.FlowEngine.Workflows
|
|
|
var newPrevStep = DuplicateStep(workflow, prevStepDefine, prevStep, EWorkflowTraceType.Previous, dto.ExpiredTime);
|
|
|
newPrevStep.Assign(prevStep, EFlowAssignType.User);
|
|
|
|
|
|
- ////甄别退回到最开始节点到部门 todo 重构放在调用处判断
|
|
|
- //if (workflow.FlowType == EFlowType.Review && workflow.ModuleCode == WorkflowModuleConsts.OrderScreen)
|
|
|
- //{
|
|
|
- // newPrevStep.FlowAssignType = newPrevStep.StepType == EStepType.Start ? EFlowAssignType.Org : prevStep.FlowAssignType;
|
|
|
- //}
|
|
|
+ ////甄别退回到最开始节点到部门 todo 重构放在调用处判断
|
|
|
+ //if (workflow.FlowType == EFlowType.Review && workflow.ModuleCode == WorkflowModuleConsts.OrderScreen)
|
|
|
+ //{
|
|
|
+ // newPrevStep.FlowAssignType = newPrevStep.StepType == EStepType.Start ? EFlowAssignType.Org : prevStep.FlowAssignType;
|
|
|
+ //}
|
|
|
|
|
|
- if (dto.Handler != null)
|
|
|
+ if (dto.Handler != null)
|
|
|
newPrevStep.Assign(dto.Handler);
|
|
|
|
|
|
//await Task.Run(() => newStepConfig?.Invoke(workflow, currentStep, prevStepDefine, prevStep, newPrevStep), cancellationToken);
|
|
@@ -1051,10 +1051,10 @@ namespace Hotline.FlowEngine.Workflows
|
|
|
/// <summary>
|
|
|
/// 退回
|
|
|
/// </summary>
|
|
|
- public async Task<(Workflow workflow, WorkflowStep currentStep, StepDefine prevDefine,
|
|
|
- WorkflowStep prevStep, WorkflowStep newStep, EFlowDirection flowDirection)>
|
|
|
- PreviousAsync(PreviousWorkflowDto dto,
|
|
|
- EHandleMode handleMode = EHandleMode.Previous,
|
|
|
+ public async Task<(Workflow workflow, WorkflowStep currentStep, StepDefine prevDefine,
|
|
|
+ WorkflowStep prevStep, WorkflowStep newStep, EFlowDirection flowDirection)>
|
|
|
+ PreviousAsync(PreviousWorkflowDto dto,
|
|
|
+ EHandleMode handleMode = EHandleMode.Previous,
|
|
|
Action<Workflow, WorkflowStep, StepDefine, WorkflowStep, WorkflowStep>? newStepConfig = null,
|
|
|
CancellationToken cancellationToken = default)
|
|
|
{
|
|
@@ -1402,11 +1402,12 @@ namespace Hotline.FlowEngine.Workflows
|
|
|
public StepAssignInfo GetSummaryTargetFlowStepHandler(Workflow workflow, string summaryTargetStepCode)
|
|
|
{
|
|
|
//根据汇总对象id找到被汇总节点
|
|
|
- var summaryTargetStep = workflow.Steps.FirstOrDefault(d =>
|
|
|
+ var summaryTargetStep = workflow.Steps.Where(d =>
|
|
|
d.StepType == EStepType.Normal &&
|
|
|
d.Code == summaryTargetStepCode &&
|
|
|
d.Status == EWorkflowStepStatus.Handled &&
|
|
|
- d.IsOrigin);
|
|
|
+ d.IsOrigin)
|
|
|
+ .MaxBy(d => d.CreationTime);
|
|
|
if (summaryTargetStep is null)
|
|
|
throw UserFriendlyException.SameMessage("未查询到汇总对象节点");
|
|
|
|