|
@@ -262,7 +262,7 @@ namespace Hotline.FlowEngine.Workflows
|
|
|
|
|
|
var unCompletedCountersign = workflow.Countersigns
|
|
|
.FirstOrDefault(d => !d.IsCompleted() && d.StarterId == userId);
|
|
|
- if (unCompletedCountersign is null)
|
|
|
+ if (unCompletedCountersign is null)
|
|
|
return (workflow, null, canHandle, canPrevious, previousOpinion);
|
|
|
|
|
|
//var existCountersignEndStep = workflow.Steps.Exists(d =>
|
|
@@ -788,7 +788,7 @@ namespace Hotline.FlowEngine.Workflows
|
|
|
/// 批量修改工单办理对象
|
|
|
/// </summary>
|
|
|
public async Task ChangeHandlerBatchAsync(
|
|
|
- IReadOnlyList<(string userId, string username, string orgId, string orgName,string? roleId,string? roleName, ICollection<WorkflowStep> steps
|
|
|
+ IReadOnlyList<(string userId, string username, string orgId, string orgName, string? roleId, string? roleName, ICollection<WorkflowStep> steps
|
|
|
)> handlers,
|
|
|
CancellationToken cancellationToken)
|
|
|
{
|
|
@@ -798,7 +798,7 @@ namespace Hotline.FlowEngine.Workflows
|
|
|
{
|
|
|
step.FlowAssignType = EFlowAssignType.User;
|
|
|
step.Assign(handler.userId, handler.username,
|
|
|
- handler.orgId, handler.orgName,handler.roleId,handler.roleName);
|
|
|
+ handler.orgId, handler.orgName, handler.roleId, handler.roleName);
|
|
|
if (step.WorkflowTrace is null)
|
|
|
throw new UserFriendlyException("未查询节点对应快照信息");
|
|
|
step.WorkflowTrace.Assign(handler.userId, handler.username,
|
|
@@ -1015,7 +1015,7 @@ namespace Hotline.FlowEngine.Workflows
|
|
|
/// 撤回(返回到之前任意节点)
|
|
|
/// </summary>
|
|
|
public async Task RecallAsync(Workflow workflow, RecallDto dto, StepDefine targetStepDefine,
|
|
|
- FlowAssignInfo flowAssignInfo, DateTime? expiredTime,
|
|
|
+ FlowAssignInfo flowAssignInfo, DateTime? expiredTime, bool isOrderFiled,
|
|
|
CancellationToken cancellationToken)
|
|
|
{
|
|
|
var targetStep = workflow.Steps.FirstOrDefault(d => d.Code == dto.NextStepCode && d.IsOrigin);
|
|
@@ -1026,7 +1026,7 @@ namespace Hotline.FlowEngine.Workflows
|
|
|
//await RecallTraceAsync(workflow.Traces, dto.Opinion, _sessionContext, cancellationToken);
|
|
|
|
|
|
var isOrgToCenter = await RecallAsync(workflow, dto, flowAssignInfo, targetStepDefine, targetStep,
|
|
|
- EWorkflowTraceType.Recall, expiredTime, cancellationToken);
|
|
|
+ EWorkflowTraceType.Recall, expiredTime, isOrderFiled, cancellationToken);
|
|
|
|
|
|
await _workflowRepository.UpdateAsync(workflow, cancellationToken);
|
|
|
|
|
@@ -1882,15 +1882,15 @@ namespace Hotline.FlowEngine.Workflows
|
|
|
newStep.CountersignId = step.CountersignId;
|
|
|
newStep.IsStartedCountersignEnd = step.IsStartedCountersignEnd;
|
|
|
|
|
|
- //退回场景:指派给原办理人,其余场景:按照原节点原始指派方式复制
|
|
|
- if (traceType is EWorkflowTraceType.Previous)
|
|
|
+ //退回场景:指派给原办理人,其余场景:按照原节点原始指派方式复制
|
|
|
+ if (traceType is EWorkflowTraceType.Previous)
|
|
|
{
|
|
|
- //newStep.FlowAssignType = EFlowAssignType.User;
|
|
|
+ //newStep.FlowAssignType = EFlowAssignType.User;
|
|
|
// 是否中心 临时紧急修改 后续在流程模版定义是否原办理人退回类型 来实现流程 禅道200
|
|
|
newStep.FlowAssignType = !step.HandlerOrgIsCenter!.Value ? EFlowAssignType.Org : EFlowAssignType.Role;
|
|
|
if (newStep is { FlowAssignType: EFlowAssignType.Role, BusinessType: EBusinessType.Send })
|
|
|
newStep.FlowAssignType = EFlowAssignType.User;
|
|
|
- newStep.Assign(step.HandlerId, step.HandlerName, step.HandlerOrgId, step.HandlerOrgName, step.RoleId, step.RoleName);
|
|
|
+ newStep.Assign(step.HandlerId, step.HandlerName, step.HandlerOrgId, step.HandlerOrgName, step.RoleId, step.RoleName);
|
|
|
}
|
|
|
|
|
|
await _workflowStepRepository.AddAsync(newStep, cancellationToken);
|
|
@@ -2089,7 +2089,7 @@ namespace Hotline.FlowEngine.Workflows
|
|
|
|
|
|
private async Task<bool> RecallAsync(Workflow workflow, BasicWorkflowDto dto, FlowAssignInfo flowAssignInfo,
|
|
|
StepDefine targetStepDefine, WorkflowStep targetStep, EWorkflowTraceType traceType,
|
|
|
- DateTime? expiredTime, CancellationToken cancellationToken)
|
|
|
+ DateTime? expiredTime, bool isOrderFiled, CancellationToken cancellationToken)
|
|
|
{
|
|
|
var targetIsStartStep = targetStepDefine.StepType is EStepType.Start;
|
|
|
var updateTraces = new List<WorkflowTrace>();
|
|
@@ -2136,7 +2136,9 @@ namespace Hotline.FlowEngine.Workflows
|
|
|
//await UpdateTracesStateAsync(updateTraces, EWorkflowTraceState.StepRemoveByRecall, cancellationToken);
|
|
|
foreach (var trace in traces)
|
|
|
{
|
|
|
- trace.TraceState = EWorkflowTraceState.StepRemoveByRecall;
|
|
|
+ trace.TraceState = isOrderFiled
|
|
|
+ ? EWorkflowTraceState.StepRemoveByRecallWhenFiled
|
|
|
+ : EWorkflowTraceState.StepRemoveByRecall;
|
|
|
}
|
|
|
|
|
|
updateTraces.AddRange(traces);
|