|
@@ -345,7 +345,7 @@ public class WorkflowApplication : IWorkflowApplication, IScopeDependency
|
|
|
/// 退回(返回前一节点)
|
|
|
/// </summary>
|
|
|
public async Task<(Workflow workflow, WorkflowStep currentStep, StepDefine prevDefine,
|
|
|
- WorkflowStep prevStep, WorkflowStep newStep, EFlowDirection flowDirection)>
|
|
|
+ WorkflowStep prevStep, WorkflowStep newStep, EFlowDirection flowDirection)>
|
|
|
PreviousAsync(PreviousWorkflowDto dto,
|
|
|
Action<Workflow, StepDefine, WorkflowStep, WorkflowStep>? stepConfig = null,
|
|
|
CancellationToken cancellationToken = default)
|
|
@@ -365,7 +365,7 @@ public class WorkflowApplication : IWorkflowApplication, IScopeDependency
|
|
|
/// 工单退回(返回前一节点)
|
|
|
/// </summary>
|
|
|
public async Task<(Workflow workflow, WorkflowStep currentStep, StepDefine prevDefine,
|
|
|
- WorkflowStep prevStep, WorkflowStep newStep, EFlowDirection flowDirection)>
|
|
|
+ WorkflowStep prevStep, WorkflowStep newStep, EFlowDirection flowDirection)>
|
|
|
PreviousAsync(PreviousWorkflowDto dto, string applicantId, string applicantOrgId, string[] applicantRoleIds,
|
|
|
Action<Workflow, StepDefine, WorkflowStep, WorkflowStep>? stepConfig = null,
|
|
|
CancellationToken cancellationToken = default)
|
|
@@ -593,13 +593,13 @@ public class WorkflowApplication : IWorkflowApplication, IScopeDependency
|
|
|
dto.OrgIds.Contains(d.ParentId))
|
|
|
.ToListAsync(cancellationToken);
|
|
|
nextStepOption.Items = orgs.Select(d => new StepAssignInfo
|
|
|
- {
|
|
|
- Key = d.Id,
|
|
|
- Value = d.Name,
|
|
|
- OrgId = d.Id,
|
|
|
- OrgName = d.Name,
|
|
|
- FlowAssignType = EFlowAssignType.Org
|
|
|
- })
|
|
|
+ {
|
|
|
+ Key = d.Id,
|
|
|
+ Value = d.Name,
|
|
|
+ OrgId = d.Id,
|
|
|
+ OrgName = d.Name,
|
|
|
+ FlowAssignType = EFlowAssignType.Org
|
|
|
+ })
|
|
|
.ToList();
|
|
|
nextStepOption.FlowDirection = _workflowDomainService.GetFlowDirection(dto.BusinessType, stepDefine.BusinessType);
|
|
|
stepOptions.Add(nextStepOption);
|
|
@@ -734,7 +734,7 @@ public class WorkflowApplication : IWorkflowApplication, IScopeDependency
|
|
|
var isEnd = workflow.Steps.Any(x => x.StepType == EStepType.End);
|
|
|
var currentStep = workflow.Steps.FirstOrDefault(d => d.Id == workflow.ActualHandleStepId) ?? (isEnd
|
|
|
? workflow.Steps.Where(d => d.StepType == EStepType.End).MaxBy(d => d.CreationTime)
|
|
|
- : workflow.Steps.Where(d=>d.Status!= EWorkflowStepStatus.Handled).MaxBy(d => d.CreationTime));
|
|
|
+ : workflow.Steps.Where(d => d.Status != EWorkflowStepStatus.Handled).MaxBy(d => d.CreationTime));
|
|
|
if (currentStep is null)
|
|
|
throw new UserFriendlyException("无效当前节点编号");
|
|
|
var query = workflow.Steps.Where(d =>
|
|
@@ -876,9 +876,27 @@ public class WorkflowApplication : IWorkflowApplication, IScopeDependency
|
|
|
//汇总节点只能选择对应节点办理对象
|
|
|
if (workflow.FlowType is EFlowType.Handle
|
|
|
&& stepDefine.StepType is EStepType.Summary
|
|
|
- && stepDefine.BusinessType is EBusinessType.Seat or EBusinessType.Send)
|
|
|
+ /*&& stepDefine.BusinessType is EBusinessType.Seat or EBusinessType.Send*/)
|
|
|
{
|
|
|
- var handler = _workflowDomainService.GetSummaryTargetFlowStepHandler(workflow, stepDefine.SummaryTargetCode);
|
|
|
+ StepAssignInfo handler;
|
|
|
+ if (stepDefine.BusinessType is EBusinessType.Department)
|
|
|
+ {
|
|
|
+ //todo 临时方案:解决跨级派单部门节点由中心办理造成的问题
|
|
|
+ var upperOrgId = currentStep.HandlerOrgId.Substring(0, currentStep.HandlerOrgId.CalcOrgLevel() * 3);
|
|
|
+ var org = await _organizeRepository.GetAsync(upperOrgId, cancellationToken);
|
|
|
+ handler = new StepAssignInfo
|
|
|
+ {
|
|
|
+ OrgId = org.Id,
|
|
|
+ OrgName = org.Name,
|
|
|
+ Key = org.Id,
|
|
|
+ Value = org.Name,
|
|
|
+ FlowAssignType = EFlowAssignType.Org
|
|
|
+ };
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ handler = _workflowDomainService.GetSummaryTargetFlowStepHandler(workflow, stepDefine.SummaryTargetCode);
|
|
|
+ }
|
|
|
|
|
|
nextStepOption = new NextStepOption
|
|
|
{
|
|
@@ -1031,13 +1049,13 @@ public class WorkflowApplication : IWorkflowApplication, IScopeDependency
|
|
|
}
|
|
|
|
|
|
handlers = orgs1.Select(d => new StepAssignInfo
|
|
|
- {
|
|
|
- Key = d.Id,
|
|
|
- Value = d.Name,
|
|
|
- OrgId = d.Id,
|
|
|
- OrgName = d.Name,
|
|
|
- FlowAssignType = EFlowAssignType.Org
|
|
|
- })
|
|
|
+ {
|
|
|
+ Key = d.Id,
|
|
|
+ Value = d.Name,
|
|
|
+ OrgId = d.Id,
|
|
|
+ OrgName = d.Name,
|
|
|
+ FlowAssignType = EFlowAssignType.Org
|
|
|
+ })
|
|
|
.ToList();
|
|
|
break;
|
|
|
case EHandlerType.OrgType:
|
|
@@ -1049,13 +1067,13 @@ public class WorkflowApplication : IWorkflowApplication, IScopeDependency
|
|
|
.ToListAsync(cancellationToken);
|
|
|
|
|
|
handlers = orgs2.Select(d => new StepAssignInfo
|
|
|
- {
|
|
|
- Key = d.Id,
|
|
|
- Value = d.Name,
|
|
|
- OrgId = d.Id,
|
|
|
- OrgName = d.Name,
|
|
|
- FlowAssignType = EFlowAssignType.Org
|
|
|
- })
|
|
|
+ {
|
|
|
+ Key = d.Id,
|
|
|
+ Value = d.Name,
|
|
|
+ OrgId = d.Id,
|
|
|
+ OrgName = d.Name,
|
|
|
+ FlowAssignType = EFlowAssignType.Org
|
|
|
+ })
|
|
|
.ToList();
|
|
|
break;
|
|
|
default:
|
|
@@ -1114,7 +1132,7 @@ public class WorkflowApplication : IWorkflowApplication, IScopeDependency
|
|
|
Items = new List<StepAssignInfo> { handler } //handlers //new List<Kv> { new(prevStep.HandlerId, prevStep.HandlerName) },
|
|
|
};
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
/// <summary>
|
|
|
/// 动态策略
|
|
|
/// </summary>
|