|
@@ -100,6 +100,7 @@ namespace Hotline.FlowEngine.Workflows
|
|
|
public async Task<Workflow> GetWorkflowAsync(string workflowId,
|
|
|
bool withDefine = false, bool withSteps = false,
|
|
|
bool withTraces = false, bool withSupplements = false,
|
|
|
+ bool withAssigns = false,
|
|
|
CancellationToken cancellationToken = default)
|
|
|
{
|
|
|
var query = _workflowRepository.Queryable();
|
|
@@ -107,6 +108,8 @@ namespace Hotline.FlowEngine.Workflows
|
|
|
query = query.Includes(d => d.Definition);
|
|
|
if (withSupplements)
|
|
|
query = query.Includes(d => d.Supplements);
|
|
|
+ if (withAssigns)
|
|
|
+ query = query.Includes(d => d.Assigns);
|
|
|
|
|
|
var workflow = await query.FirstAsync(d => d.Id == workflowId);
|
|
|
if (workflow is null)
|
|
@@ -129,11 +132,13 @@ namespace Hotline.FlowEngine.Workflows
|
|
|
workflow.Traces = traces;
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+
|
|
|
return workflow;
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
- /// 受理
|
|
|
+ /// 受理(接办)
|
|
|
/// </summary>
|
|
|
public async Task AcceptAsync(Workflow workflow, CancellationToken cancellationToken)
|
|
|
{
|
|
@@ -160,6 +165,19 @@ namespace Hotline.FlowEngine.Workflows
|
|
|
currentStepBox.Status = EWorkflowStepStatus.Accepted;
|
|
|
currentStep.Accept(_sessionContext.RequiredUserId, _sessionContext.UserName);
|
|
|
|
|
|
+ //接办时非会签并且有多个接办部门时需更新接办部门
|
|
|
+ if (!workflow.IsInCountersign())
|
|
|
+ {
|
|
|
+ var assigns = await _workflowAssignRepository.QueryAsync(d => d.WorkflowId == workflow.Id);
|
|
|
+ if (assigns.Count > 1)
|
|
|
+ {
|
|
|
+ await _workflowAssignRepository.RemoveRangeAsync(assigns, cancellationToken);
|
|
|
+
|
|
|
+ var assign = WorkflowAssign.Create(workflow.Id, _sessionContext.OrgCode, _sessionContext.OrgName);
|
|
|
+ await _workflowAssignRepository.AddAsync(assign, cancellationToken);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
await AcceptTraceAsync(workflow, currentStepBox, currentStep, cancellationToken);
|
|
|
|
|
|
await _mediator.Publish(new AcceptWorkflowNotify(workflow), cancellationToken);
|
|
@@ -242,6 +260,12 @@ namespace Hotline.FlowEngine.Workflows
|
|
|
workflow.AssignTime = DateTime.Now;
|
|
|
}
|
|
|
|
|
|
+ //最终办理意见
|
|
|
+ if (nextStepBoxDefine.StepType is not EStepType.Normal)
|
|
|
+ {
|
|
|
+ workflow.Opinion = dto.Opinion;
|
|
|
+ }
|
|
|
+
|
|
|
//创建下一节点
|
|
|
var nextStepBox = await CreateStepAsync(workflow, nextStepBoxDefine, dto, currentStepBox, currentStep, cancellationToken);
|
|
|
|