|
@@ -438,7 +438,7 @@ public class WorkflowApplication : IWorkflowApplication, IScopeDependency
|
|
|
// .ToList();
|
|
|
return new NextStepsDto
|
|
|
{
|
|
|
- Steps = await GetConfigStepsAsync(startStepDefine.StepType, startStepDefine.BusinessType, firstStepDefines, cancellationToken)
|
|
|
+ Steps = await GetConfigStepsAsync(definition.FlowType, startStepDefine.StepType, startStepDefine.BusinessType, firstStepDefines, cancellationToken)
|
|
|
};
|
|
|
//dto.Steps = steps;
|
|
|
//return dto;
|
|
@@ -508,7 +508,7 @@ public class WorkflowApplication : IWorkflowApplication, IScopeDependency
|
|
|
if (!nextDefines.Any())
|
|
|
throw new UserFriendlyException("未正确配置下一节点");
|
|
|
|
|
|
- dto.Steps = await GetConfigStepsAsync(currentStep.StepType, currentStep.BusinessType, nextDefines, cancellationToken);
|
|
|
+ dto.Steps = await GetConfigStepsAsync(workflow.FlowType, currentStep.StepType, currentStep.BusinessType, nextDefines, cancellationToken);
|
|
|
|
|
|
if (currentStep.IsInCountersign() && currentStep.IsTopCountersignEndStep(workflow.TopCountersignStepId))
|
|
|
{
|
|
@@ -542,16 +542,22 @@ public class WorkflowApplication : IWorkflowApplication, IScopeDependency
|
|
|
throw new UserFriendlyException("无效当前节点编号");
|
|
|
return new NextStepsDto
|
|
|
{
|
|
|
- Steps = await GetRecallConfigStepsAsync(workflow.Status is EWorkflowStatus.Completed, currentStep.BusinessType, stepDefines, cancellationToken)
|
|
|
+ Steps = await GetRecallConfigStepsAsync(workflow.Status is EWorkflowStatus.Completed,
|
|
|
+ workflow.FlowType, currentStep.BusinessType, stepDefines, cancellationToken)
|
|
|
};
|
|
|
}
|
|
|
|
|
|
- private async Task<IReadOnlyList<NextStepOption>> GetRecallConfigStepsAsync(bool isWorkflowFiled, EBusinessType currentBusinessType, List<StepDefine> stepDefines, CancellationToken cancellationToken)
|
|
|
+ private async Task<IReadOnlyList<NextStepOption>> GetRecallConfigStepsAsync(
|
|
|
+ bool isWorkflowFiled,
|
|
|
+ EFlowType flowType,
|
|
|
+ EBusinessType currentBusinessType,
|
|
|
+ List<StepDefine> stepDefines,
|
|
|
+ CancellationToken cancellationToken)
|
|
|
{
|
|
|
var stepOptions = new List<NextStepOption>();
|
|
|
foreach (var stepDefine in stepDefines)
|
|
|
{
|
|
|
- var nextStepOption = await GetConfigStepAsync(stepDefine, cancellationToken);
|
|
|
+ var nextStepOption = await GetConfigStepAsync(flowType, stepDefine, cancellationToken);
|
|
|
if (stepDefine.StepType is EStepType.End)
|
|
|
{
|
|
|
stepOptions.Add(nextStepOption);
|
|
@@ -614,13 +620,17 @@ public class WorkflowApplication : IWorkflowApplication, IScopeDependency
|
|
|
await _workflowDomainService.RejectAsync(workflow, basicDto, cancellationToken);
|
|
|
}
|
|
|
|
|
|
- private async Task<List<NextStepOption>> GetConfigStepsAsync(EStepType currentStepType,
|
|
|
- EBusinessType currentBusinessType, List<StepDefine> stepDefines, CancellationToken cancellationToken)
|
|
|
+ private async Task<List<NextStepOption>> GetConfigStepsAsync(
|
|
|
+ EFlowType flowType,
|
|
|
+ EStepType currentStepType,
|
|
|
+ EBusinessType currentBusinessType,
|
|
|
+ List<StepDefine> stepDefines,
|
|
|
+ CancellationToken cancellationToken)
|
|
|
{
|
|
|
var stepOptions = new List<NextStepOption>();
|
|
|
foreach (var stepDefine in stepDefines)
|
|
|
{
|
|
|
- var nextStepOption = await GetConfigStepAsync(stepDefine, cancellationToken);
|
|
|
+ var nextStepOption = await GetConfigStepAsync(flowType, stepDefine, cancellationToken);
|
|
|
if (stepDefine.StepType is EStepType.End)
|
|
|
{
|
|
|
stepOptions.Add(nextStepOption);
|
|
@@ -635,7 +645,7 @@ public class WorkflowApplication : IWorkflowApplication, IScopeDependency
|
|
|
return stepOptions;
|
|
|
}
|
|
|
|
|
|
- public async Task<NextStepOption> GetConfigStepAsync(StepDefine stepDefine, CancellationToken cancellationToken)
|
|
|
+ public async Task<NextStepOption> GetConfigStepAsync(EFlowType flowType, StepDefine stepDefine, CancellationToken cancellationToken)
|
|
|
{
|
|
|
var handlers = new List<Kv>();
|
|
|
if (stepDefine.StepType is EStepType.End)
|
|
@@ -668,8 +678,9 @@ public class WorkflowApplication : IWorkflowApplication, IScopeDependency
|
|
|
.ToListAsync(cancellationToken);
|
|
|
var users1 = roles.SelectMany(d => d.Accounts).Select(d => d.User);
|
|
|
|
|
|
- //解决当前为一级部门选择中心汇总
|
|
|
- if (stepDefine.StepType != EStepType.Summary || stepDefine.BusinessType != EBusinessType.Center)
|
|
|
+ //工单办理:除当前为一级部门选择中心汇总,其余只能选下级部门
|
|
|
+ if (flowType is EFlowType.Handle
|
|
|
+ && (stepDefine.StepType != EStepType.Summary || stepDefine.BusinessType != EBusinessType.Center))
|
|
|
users1 = users1.Where(d => d.OrgId.StartsWith(levelOneOrgCode));
|
|
|
|
|
|
handlers = users1.Select(d => new Kv(d.Id, d.Name)).ToList();
|