|
@@ -440,20 +440,34 @@ namespace Hotline.FlowEngine.Workflows
|
|
|
|
|
|
//重置上级节点办理数据
|
|
|
//prevStep.Status = EWorkflowStepStatus.Assigned;
|
|
|
+ if (prevStepBox.Status is EWorkflowStepStatus.Completed)
|
|
|
+ {
|
|
|
+ prevStepBox.Status = EWorkflowStepStatus.Assigned;
|
|
|
+ await _workflowStepRepository.UpdateAsync(prevStepBox, cancellationToken);
|
|
|
+ }
|
|
|
+
|
|
|
prevStep.Reset();
|
|
|
- await _workflowStepRepository.UpdateAsync(prevStep, cancellationToken);
|
|
|
+ var newPrevStep = _mapper.Map<WorkflowStep>(prevStep);
|
|
|
+ newPrevStep.PreviousId = prevStep.PreviousId;
|
|
|
+ newPrevStep.IsMain = prevStep.IsMain;
|
|
|
+ newPrevStep.ParentId = prevStep.ParentId;
|
|
|
+ newPrevStep.Handlers = prevStep.Handlers;
|
|
|
+ newPrevStep.StartCountersignId = prevStep.StartCountersignId;
|
|
|
+ newPrevStep.CountersignId = prevStep.CountersignId;
|
|
|
+ newPrevStep.IsStartedCountersignComplete = prevStep.IsStartedCountersignComplete;
|
|
|
+ await _workflowStepRepository.AddAsync(newPrevStep, cancellationToken);
|
|
|
+
|
|
|
+ //remove workflow.steps
|
|
|
+ await _workflowStepRepository.RemoveRangeAsync(new List<WorkflowStep> { prevStep, currentStep },
|
|
|
+ cancellationToken);
|
|
|
|
|
|
//更新流程可办理对象
|
|
|
- workflow.UpdatePreviousHandlers(_sessionContext.RequiredUserId, _sessionContext.RequiredOrgCode, prevStep);
|
|
|
+ workflow.UpdatePreviousHandlers(_sessionContext.RequiredUserId, _sessionContext.RequiredOrgCode, newPrevStep);
|
|
|
await _workflowRepository.UpdateAsync(workflow, cancellationToken);
|
|
|
|
|
|
//update trace
|
|
|
await PreviousTraceAsync(workflow.Id, dto, currentStep, cancellationToken);
|
|
|
|
|
|
- //remove workflow.steps
|
|
|
- await _workflowStepRepository.RemoveRangeAsync(new List<WorkflowStep> { currentStepBox, currentStep },
|
|
|
- cancellationToken);
|
|
|
-
|
|
|
//todo publish
|
|
|
}
|
|
|
|