|
@@ -104,8 +104,19 @@ namespace Hotline.FlowEngine.Workflows
|
|
|
{
|
|
|
//1. 创建first节点 (和trace)2.办理开始节点
|
|
|
|
|
|
+
|
|
|
if (firstStepDefine.StepType is EStepType.End)
|
|
|
{
|
|
|
+ //firstStep是否为end,t: 实际办理节点为startStep, 并且handlerId赋值 f: 实际办理节点为firstStep, handlerId未赋值
|
|
|
+ workflow.UpdateActualStepWhenHandle(startStep,
|
|
|
+ _sessionContext.RequiredUserId, _sessionContext.UserName,
|
|
|
+ _sessionContext.RequiredOrgId, _sessionContext.OrgName,
|
|
|
+ _sessionContext.OrgAreaCode, _sessionContext.OrgAreaName,
|
|
|
+ _sessionContext.OrgLevel);
|
|
|
+ workflow.ActualHandlerKey = _sessionContext.RequiredUserId;
|
|
|
+ workflow.ActualHandlerValue = _sessionContext.UserName;
|
|
|
+ workflow.ActualHandlerType = EHandlerType.AssignedUser;
|
|
|
+
|
|
|
var endTrace = await EndAsync(workflow, dto, firstStepDefine, startStep, cancellationToken: cancellationToken);
|
|
|
return;
|
|
|
}
|
|
@@ -119,6 +130,7 @@ namespace Hotline.FlowEngine.Workflows
|
|
|
var counterSignType = GetCounterSignType(startStep.BusinessType);
|
|
|
await HandleStepAsync(startStep, workflow, dto, flowAssignInfo.FlowAssignType, counterSignType,
|
|
|
cancellationToken);
|
|
|
+
|
|
|
//赋值当前节点的下级办理节点
|
|
|
if (dto.IsStartCountersign)
|
|
|
startStep.CreateCountersignSteps(firstSteps);
|
|
@@ -130,23 +142,30 @@ namespace Hotline.FlowEngine.Workflows
|
|
|
|
|
|
//todo 计算办理工作时长
|
|
|
|
|
|
- //更新当前办理节点信息
|
|
|
- workflow.UpdateWorkflowCurrentStepInfo(dto.IsStartCountersign,
|
|
|
- _sessionContext.RequiredUserId, _sessionContext.UserName,
|
|
|
- _sessionContext.RequiredOrgId, _sessionContext.OrgName,
|
|
|
- _sessionContext.OrgAreaCode, _sessionContext.OrgAreaName,
|
|
|
- startStep, firstSteps.First());
|
|
|
+ ////更新当前办理节点信息
|
|
|
+ //workflow.UpdateWorkflowCurrentStepInfo(dto.IsStartCountersign,
|
|
|
+ // _sessionContext.RequiredUserId, _sessionContext.UserName,
|
|
|
+ // _sessionContext.RequiredOrgId, _sessionContext.OrgName,
|
|
|
+ // _sessionContext.OrgAreaCode, _sessionContext.OrgAreaName,
|
|
|
+ // startStep, firstSteps.First());
|
|
|
+
|
|
|
+ //指派实际办理节点
|
|
|
+ if (!workflow.IsInCountersign &&
|
|
|
+ firstStepDefine.StepType != EStepType.Summary &&
|
|
|
+ firstStepDefine.StepType != EStepType.End)
|
|
|
+ workflow.UpdateActualStepWhenAssign(firstSteps.First(), dto.NextHandlers.First(), dto.HandlerType);
|
|
|
+
|
|
|
|
|
|
//发起会签时记录顶层会签节点(必须在update currentStep之后)
|
|
|
if (dto.IsStartCountersign && !workflow.IsInCountersign)
|
|
|
workflow.StartCountersign(startStep.Id, counterSignType);
|
|
|
|
|
|
- //更新实际办理节点信息
|
|
|
- workflow.UpdateWorkflowActualHandleInfo(startStep,
|
|
|
- _sessionContext.RequiredUserId, _sessionContext.UserName,
|
|
|
- _sessionContext.RequiredOrgId, _sessionContext.OrgName,
|
|
|
- _sessionContext.OrgAreaCode, _sessionContext.OrgAreaName,
|
|
|
- _sessionContext.OrgLevel);
|
|
|
+ ////更新实际办理节点信息
|
|
|
+ //workflow.UpdateWorkflowActualHandleInfo(startStep,
|
|
|
+ // _sessionContext.RequiredUserId, _sessionContext.UserName,
|
|
|
+ // _sessionContext.RequiredOrgId, _sessionContext.OrgName,
|
|
|
+ // _sessionContext.OrgAreaCode, _sessionContext.OrgAreaName,
|
|
|
+ // _sessionContext.OrgLevel);
|
|
|
|
|
|
//更新受理人信息
|
|
|
workflow.UpdateAcceptor(
|
|
@@ -400,12 +419,21 @@ namespace Hotline.FlowEngine.Workflows
|
|
|
workflow.EndCountersign();
|
|
|
}
|
|
|
|
|
|
- //更新实际办理节点信息
|
|
|
- workflow.UpdateWorkflowActualHandleInfo(currentStep,
|
|
|
- _sessionContext.RequiredUserId, _sessionContext.UserName,
|
|
|
- _sessionContext.RequiredOrgId, _sessionContext.OrgName,
|
|
|
- _sessionContext.OrgAreaCode, _sessionContext.OrgAreaName,
|
|
|
- _sessionContext.OrgLevel);
|
|
|
+ if (workflow.ActualHandleStepId == currentStep.Id)
|
|
|
+ {
|
|
|
+ workflow.UpdateActualStepWhenHandle(currentStep,
|
|
|
+ _sessionContext.RequiredUserId, _sessionContext.UserName,
|
|
|
+ _sessionContext.RequiredOrgId, _sessionContext.OrgName,
|
|
|
+ _sessionContext.OrgAreaCode, _sessionContext.OrgAreaName,
|
|
|
+ _sessionContext.OrgLevel);
|
|
|
+ }
|
|
|
+
|
|
|
+ ////更新实际办理节点信息
|
|
|
+ //workflow.UpdateWorkflowActualHandleInfo(currentStep,
|
|
|
+ // _sessionContext.RequiredUserId, _sessionContext.UserName,
|
|
|
+ // _sessionContext.RequiredOrgId, _sessionContext.OrgName,
|
|
|
+ // _sessionContext.OrgAreaCode, _sessionContext.OrgAreaName,
|
|
|
+ // _sessionContext.OrgLevel);
|
|
|
|
|
|
//检查是否流转到流程终点
|
|
|
if (nextStepDefine.StepType is EStepType.End)
|
|
@@ -440,12 +468,22 @@ namespace Hotline.FlowEngine.Workflows
|
|
|
|
|
|
//todo 计算办理工作时长
|
|
|
|
|
|
- //更新当前办理节点信息
|
|
|
- workflow.UpdateWorkflowCurrentStepInfo(dto.IsStartCountersign,
|
|
|
- _sessionContext.RequiredUserId, _sessionContext.UserName,
|
|
|
- _sessionContext.RequiredOrgId, _sessionContext.OrgName,
|
|
|
- _sessionContext.OrgAreaCode, _sessionContext.OrgAreaName,
|
|
|
- currentStep, nextSteps?.FirstOrDefault());
|
|
|
+ ////更新当前办理节点信息
|
|
|
+ //if (!workflow.IsInCountersign)
|
|
|
+ // workflow.UpdateWorkflowCurrentStepInfo(nextSteps.First(), dto.NextHandlers.First(), dto.HandlerType);
|
|
|
+
|
|
|
+ ////更新当前办理节点信息
|
|
|
+ //workflow.UpdateWorkflowCurrentStepInfo(dto.IsStartCountersign,
|
|
|
+ // _sessionContext.RequiredUserId, _sessionContext.UserName,
|
|
|
+ // _sessionContext.RequiredOrgId, _sessionContext.OrgName,
|
|
|
+ // _sessionContext.OrgAreaCode, _sessionContext.OrgAreaName,
|
|
|
+ // currentStep, nextSteps?.FirstOrDefault());
|
|
|
+
|
|
|
+ //指派实际办理节点
|
|
|
+ if (!workflow.IsInCountersign &&
|
|
|
+ nextStepDefine.StepType != EStepType.Summary &&
|
|
|
+ nextStepDefine.StepType != EStepType.End)
|
|
|
+ workflow.UpdateActualStepWhenAssign(nextSteps.First(), dto.NextHandlers.First(), dto.HandlerType);
|
|
|
|
|
|
//发起会签时记录顶层会签节点
|
|
|
if (dto.IsStartCountersign && !workflow.IsInCountersign)
|
|
@@ -511,11 +549,12 @@ namespace Hotline.FlowEngine.Workflows
|
|
|
workflow.SetStatusRunnable();
|
|
|
|
|
|
//更新当前办理节点信息
|
|
|
- workflow.UpdateWorkflowCurrentStepInfo(false,
|
|
|
- operater.Id, operater.Name,
|
|
|
- operater.OrgId, operater.Organization.Name,
|
|
|
- operater.Organization.AreaCode, operater.Organization.AreaName,
|
|
|
- nextStep: newPrevStep);
|
|
|
+ //workflow.UpdateWorkflowCurrentStepInfo(false,
|
|
|
+ // operater.Id, operater.Name,
|
|
|
+ // operater.OrgId, operater.Organization.Name,
|
|
|
+ // operater.Organization.AreaCode, operater.Organization.AreaName,
|
|
|
+ // nextStep: newPrevStep);
|
|
|
+ workflow.UpdateActualStepWhenAssign(newPrevStep, prevStep.Handlers.First(), prevStep.HandlerType);
|
|
|
|
|
|
//更新流程可办理对象
|
|
|
workflow.UpdatePreviousHandlers(operater.Id, operater.OrgId, newPrevStep);
|
|
@@ -574,11 +613,12 @@ namespace Hotline.FlowEngine.Workflows
|
|
|
var newStartStep = await DuplicateStepWithTraceAsync(workflow, startStep, EWorkflowTraceStatus.Recall, cancellationToken);
|
|
|
|
|
|
//更新当前办理节点信息
|
|
|
- workflow.UpdateWorkflowCurrentStepInfo(false,
|
|
|
- _sessionContext.RequiredUserId, _sessionContext.UserName,
|
|
|
- _sessionContext.RequiredOrgId, _sessionContext.OrgName,
|
|
|
- _sessionContext.OrgAreaCode, _sessionContext.OrgAreaName,
|
|
|
- nextStep: newStartStep);
|
|
|
+ //workflow.UpdateWorkflowCurrentStepInfo(false,
|
|
|
+ // _sessionContext.RequiredUserId, _sessionContext.UserName,
|
|
|
+ // _sessionContext.RequiredOrgId, _sessionContext.OrgName,
|
|
|
+ // _sessionContext.OrgAreaCode, _sessionContext.OrgAreaName,
|
|
|
+ // nextStep: newStartStep);
|
|
|
+ workflow.UpdateActualStepWhenAssign(startStep, startStep.Handlers.First(), startStep.HandlerType);
|
|
|
|
|
|
var isOrgToCenter = CheckIfFlowFromOrgToCenter(workflow, startStep);
|
|
|
|
|
@@ -623,12 +663,12 @@ namespace Hotline.FlowEngine.Workflows
|
|
|
workflow.EndCountersign();
|
|
|
workflow.ResetOption();
|
|
|
|
|
|
- //更新当前办理节点信息
|
|
|
- workflow.UpdateWorkflowCurrentStepInfo(dto.IsStartCountersign,
|
|
|
- _sessionContext.RequiredUserId, _sessionContext.UserName,
|
|
|
- _sessionContext.RequiredOrgId, _sessionContext.OrgName,
|
|
|
- _sessionContext.OrgAreaCode, _sessionContext.OrgAreaName,
|
|
|
- nextStep: targetStep);
|
|
|
+ ////更新当前办理节点信息
|
|
|
+ //workflow.UpdateWorkflowCurrentStepInfo(dto.IsStartCountersign,
|
|
|
+ // _sessionContext.RequiredUserId, _sessionContext.UserName,
|
|
|
+ // _sessionContext.RequiredOrgId, _sessionContext.OrgName,
|
|
|
+ // _sessionContext.OrgAreaCode, _sessionContext.OrgAreaName,
|
|
|
+ // nextStep: targetStep);
|
|
|
|
|
|
//calc workflow expired time
|
|
|
isCenterToOrg = CheckIfFlowFromCenterToOrg(workflow, targetStep);
|
|
@@ -1508,11 +1548,12 @@ namespace Hotline.FlowEngine.Workflows
|
|
|
|
|
|
|
|
|
//更新当前办理节点信息
|
|
|
- workflow.UpdateWorkflowCurrentStepInfo(dto.IsStartCountersign,
|
|
|
- _sessionContext.RequiredUserId, _sessionContext.UserName,
|
|
|
- _sessionContext.RequiredOrgId, _sessionContext.OrgName,
|
|
|
- _sessionContext.OrgAreaCode, _sessionContext.OrgAreaName,
|
|
|
- nextStep: targetStepNew);
|
|
|
+ //workflow.UpdateWorkflowCurrentStepInfo(dto.IsStartCountersign,
|
|
|
+ // _sessionContext.RequiredUserId, _sessionContext.UserName,
|
|
|
+ // _sessionContext.RequiredOrgId, _sessionContext.OrgName,
|
|
|
+ // _sessionContext.OrgAreaCode, _sessionContext.OrgAreaName,
|
|
|
+ // nextStep: targetStepNew);
|
|
|
+ workflow.UpdateActualStepWhenAssign(targetStepNew, targetStep.Handlers.First(), targetStep.HandlerType);
|
|
|
|
|
|
//calc workflow expired time
|
|
|
var isOrgToCenter = CheckIfFlowFromOrgToCenter(workflow, targetStep);
|