|
@@ -28,17 +28,14 @@ namespace Hotline.FlowEngine.Workflows
|
|
private readonly IRepository<WorkflowStep> _workflowStepRepository;
|
|
private readonly IRepository<WorkflowStep> _workflowStepRepository;
|
|
private readonly IRepository<WorkflowTrace> _workflowTraceRepository;
|
|
private readonly IRepository<WorkflowTrace> _workflowTraceRepository;
|
|
private readonly IRepository<WorkflowSupplement> _workflowSupplementRepository;
|
|
private readonly IRepository<WorkflowSupplement> _workflowSupplementRepository;
|
|
-
|
|
|
|
private readonly IRepository<WorkflowCountersign> _workflowCountersignRepository;
|
|
private readonly IRepository<WorkflowCountersign> _workflowCountersignRepository;
|
|
-
|
|
|
|
- //private readonly IRepository<WorkflowStepHandler> _workflowStepHandlerRepository;
|
|
|
|
- private readonly ISessionContext _sessionContext;
|
|
|
|
private readonly IMapper _mapper;
|
|
private readonly IMapper _mapper;
|
|
private readonly Publisher _publisher;
|
|
private readonly Publisher _publisher;
|
|
private readonly ILogger<WorkflowDomainService> _logger;
|
|
private readonly ILogger<WorkflowDomainService> _logger;
|
|
private readonly IFileRepository _fileRepository;
|
|
private readonly IFileRepository _fileRepository;
|
|
private readonly IRepository<User> _userRepository;
|
|
private readonly IRepository<User> _userRepository;
|
|
private readonly ISystemSettingCacheManager _systemSettingCacheManager;
|
|
private readonly ISystemSettingCacheManager _systemSettingCacheManager;
|
|
|
|
+ private readonly ISessionContextProvider _sessionContextProvider;
|
|
|
|
|
|
public WorkflowDomainService(
|
|
public WorkflowDomainService(
|
|
IWorkflowRepository workflowRepository,
|
|
IWorkflowRepository workflowRepository,
|
|
@@ -46,7 +43,6 @@ namespace Hotline.FlowEngine.Workflows
|
|
IRepository<WorkflowTrace> workflowTraceRepository,
|
|
IRepository<WorkflowTrace> workflowTraceRepository,
|
|
IRepository<WorkflowSupplement> workflowSupplementRepository,
|
|
IRepository<WorkflowSupplement> workflowSupplementRepository,
|
|
IRepository<WorkflowCountersign> workflowCountersignRepository,
|
|
IRepository<WorkflowCountersign> workflowCountersignRepository,
|
|
- //IRepository<WorkflowStepHandler> workflowStepHandlerRepository,
|
|
|
|
ISystemSettingCacheManager systemSettingCacheManager,
|
|
ISystemSettingCacheManager systemSettingCacheManager,
|
|
ISessionContextProvider sessionContextProvider,
|
|
ISessionContextProvider sessionContextProvider,
|
|
IMapper mapper,
|
|
IMapper mapper,
|
|
@@ -59,13 +55,12 @@ namespace Hotline.FlowEngine.Workflows
|
|
_workflowTraceRepository = workflowTraceRepository;
|
|
_workflowTraceRepository = workflowTraceRepository;
|
|
_workflowSupplementRepository = workflowSupplementRepository;
|
|
_workflowSupplementRepository = workflowSupplementRepository;
|
|
_workflowCountersignRepository = workflowCountersignRepository;
|
|
_workflowCountersignRepository = workflowCountersignRepository;
|
|
- //_workflowStepHandlerRepository = workflowStepHandlerRepository;
|
|
|
|
- _sessionContext = sessionContextProvider.SessionContext;
|
|
|
|
_mapper = mapper;
|
|
_mapper = mapper;
|
|
_publisher = publisher;
|
|
_publisher = publisher;
|
|
_logger = logger;
|
|
_logger = logger;
|
|
_fileRepository = fileRepository;
|
|
_fileRepository = fileRepository;
|
|
_systemSettingCacheManager = systemSettingCacheManager;
|
|
_systemSettingCacheManager = systemSettingCacheManager;
|
|
|
|
+ _sessionContextProvider = sessionContextProvider;
|
|
}
|
|
}
|
|
|
|
|
|
public async Task<Workflow> CreateWorkflowAsync(WorkflowModule wfModule, string title, string userId,
|
|
public async Task<Workflow> CreateWorkflowAsync(WorkflowModule wfModule, string title, string userId,
|
|
@@ -111,9 +106,9 @@ namespace Hotline.FlowEngine.Workflows
|
|
PublishStrategy.ParallelWhenAll, cancellationToken);
|
|
PublishStrategy.ParallelWhenAll, cancellationToken);
|
|
|
|
|
|
//firstStep是否为end,t: 实际办理节点为startStep, 并且handlerId赋值 f: 实际办理节点为firstStep, handlerId未赋值
|
|
//firstStep是否为end,t: 实际办理节点为startStep, 并且handlerId赋值 f: 实际办理节点为firstStep, handlerId未赋值
|
|
- workflow.UpdateActualStepWhenHandle(startStep, _sessionContext.OrgAreaCode, _sessionContext.OrgAreaName, _sessionContext.OrgLevel);
|
|
|
|
|
|
+ workflow.UpdateActualStepWhenHandle(startStep, _sessionContextProvider.SessionContext.OrgAreaCode, _sessionContextProvider.SessionContext.OrgAreaName, _sessionContextProvider.SessionContext.OrgLevel);
|
|
|
|
|
|
- workflow.UpdateCurrentStepWhenHandle(startStep, _sessionContext.OrgAreaCode, _sessionContext.OrgAreaName, _sessionContext.OrgLevel);
|
|
|
|
|
|
+ workflow.UpdateCurrentStepWhenHandle(startStep, _sessionContextProvider.SessionContext.OrgAreaCode, _sessionContextProvider.SessionContext.OrgAreaName, _sessionContextProvider.SessionContext.OrgLevel);
|
|
|
|
|
|
var endTrace = await EndAsync(workflow, dto, firstStepDefine, startStep, expiredTime, cancellationToken);
|
|
var endTrace = await EndAsync(workflow, dto, firstStepDefine, startStep, expiredTime, cancellationToken);
|
|
return;
|
|
return;
|
|
@@ -235,8 +230,7 @@ namespace Hotline.FlowEngine.Workflows
|
|
/// <summary>
|
|
/// <summary>
|
|
/// 查询工作流包含当前用户结束会签权限(是否可结束)
|
|
/// 查询工作流包含当前用户结束会签权限(是否可结束)
|
|
/// </summary>
|
|
/// </summary>
|
|
- public async Task<(Workflow Workflow, string? CountersignId, bool CanHandle, bool CanPrevious, WorkflowTrace?
|
|
|
|
- Trace)>
|
|
|
|
|
|
+ public async Task<(Workflow Workflow, string? CountersignId, bool CanHandle, bool CanPrevious, WorkflowTrace? Trace)>
|
|
GetWorkflowHandlePermissionAsync(
|
|
GetWorkflowHandlePermissionAsync(
|
|
string workflowId, string userId, string orgId, string[] roleIds,
|
|
string workflowId, string userId, string orgId, string[] roleIds,
|
|
CancellationToken cancellationToken = default)
|
|
CancellationToken cancellationToken = default)
|
|
@@ -284,13 +278,13 @@ namespace Hotline.FlowEngine.Workflows
|
|
string? orgAreaCode, string? orgAreaName,
|
|
string? orgAreaCode, string? orgAreaName,
|
|
CancellationToken cancellationToken)
|
|
CancellationToken cancellationToken)
|
|
{
|
|
{
|
|
- if (!workflow.IsCanHandle(_sessionContext.RequiredUserId, _sessionContext.RequiredOrgId,
|
|
|
|
- _sessionContext.Roles)) return;
|
|
|
|
|
|
+ if (!workflow.IsCanHandle(_sessionContextProvider.SessionContext.RequiredUserId, _sessionContextProvider.SessionContext.RequiredOrgId,
|
|
|
|
+ _sessionContextProvider.SessionContext.Roles)) return;
|
|
//工单完成以后查看的场景
|
|
//工单完成以后查看的场景
|
|
if (workflow.Status != EWorkflowStatus.Runnable) return;
|
|
if (workflow.Status != EWorkflowStatus.Runnable) return;
|
|
|
|
|
|
- var currentStep = GetUnHandleStep(workflow.Steps, _sessionContext.RequiredOrgId,
|
|
|
|
- _sessionContext.RequiredUserId, _sessionContext.Roles);
|
|
|
|
|
|
+ var currentStep = GetUnHandleStep(workflow.Steps, _sessionContextProvider.SessionContext.RequiredOrgId,
|
|
|
|
+ _sessionContextProvider.SessionContext.RequiredUserId, _sessionContextProvider.SessionContext.Roles);
|
|
if (currentStep.Status is not EWorkflowStepStatus.WaitForAccept) return;
|
|
if (currentStep.Status is not EWorkflowStepStatus.WaitForAccept) return;
|
|
|
|
|
|
if (currentStep.Handlers.All(d => d.Key != orgId && d.Key != userId)) return;
|
|
if (currentStep.Handlers.All(d => d.Key != orgId && d.Key != userId)) return;
|
|
@@ -372,9 +366,9 @@ namespace Hotline.FlowEngine.Workflows
|
|
|
|
|
|
//结束会签
|
|
//结束会签
|
|
currentCountersign.End(currentStep.Id, currentStep.Code, currentStep.BusinessType,
|
|
currentCountersign.End(currentStep.Id, currentStep.Code, currentStep.BusinessType,
|
|
- _sessionContext.RequiredUserId, _sessionContext.UserName,
|
|
|
|
- _sessionContext.RequiredOrgId, _sessionContext.OrgName,
|
|
|
|
- _sessionContext.OrgAreaCode, _sessionContext.OrgAreaName);
|
|
|
|
|
|
+ _sessionContextProvider.SessionContext.RequiredUserId, _sessionContextProvider.SessionContext.UserName,
|
|
|
|
+ _sessionContextProvider.SessionContext.RequiredOrgId, _sessionContextProvider.SessionContext.OrgName,
|
|
|
|
+ _sessionContextProvider.SessionContext.OrgAreaCode, _sessionContextProvider.SessionContext.OrgAreaName);
|
|
await _workflowCountersignRepository.UpdateAsync(currentCountersign, cancellationToken);
|
|
await _workflowCountersignRepository.UpdateAsync(currentCountersign, cancellationToken);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -386,10 +380,10 @@ namespace Hotline.FlowEngine.Workflows
|
|
if (isStartCountersign)
|
|
if (isStartCountersign)
|
|
{
|
|
{
|
|
var exists = workflow.Countersigns.Any(d =>
|
|
var exists = workflow.Countersigns.Any(d =>
|
|
- !d.IsCompleted() && d.StarterId == _sessionContext.RequiredUserId);
|
|
|
|
|
|
+ !d.IsCompleted() && d.StarterId == _sessionContextProvider.SessionContext.RequiredUserId);
|
|
if (exists)
|
|
if (exists)
|
|
throw new UserFriendlyException("该用户在当前流程存在未结束会签");
|
|
throw new UserFriendlyException("该用户在当前流程存在未结束会签");
|
|
- await StartCountersignAsync(_sessionContext, workflow, currentStep, dto, flowAssignInfo.FlowAssignType,
|
|
|
|
|
|
+ await StartCountersignAsync(_sessionContextProvider.SessionContext, workflow, currentStep, dto, flowAssignInfo.FlowAssignType,
|
|
counterSignType, expiredTime, cancellationToken);
|
|
counterSignType, expiredTime, cancellationToken);
|
|
}
|
|
}
|
|
|
|
|
|
@@ -432,7 +426,7 @@ namespace Hotline.FlowEngine.Workflows
|
|
//throw new UserFriendlyException(
|
|
//throw new UserFriendlyException(
|
|
// $"会签数据异常, workflowId: {currentStep.WorkflowId}, countersignId: {currentStep.CountersignId}",
|
|
// $"会签数据异常, workflowId: {currentStep.WorkflowId}, countersignId: {currentStep.CountersignId}",
|
|
// "会签数据异常");
|
|
// "会签数据异常");
|
|
- countersign.MemberHandled(_sessionContext.RequiredUserId, _sessionContext.RequiredOrgId);
|
|
|
|
|
|
+ countersign.MemberHandled(_sessionContextProvider.SessionContext.RequiredUserId, _sessionContextProvider.SessionContext.RequiredOrgId);
|
|
//update cs
|
|
//update cs
|
|
await _workflowCountersignRepository.UpdateNav(countersign)
|
|
await _workflowCountersignRepository.UpdateNav(countersign)
|
|
.Include(d => d.Members)
|
|
.Include(d => d.Members)
|
|
@@ -475,12 +469,12 @@ namespace Hotline.FlowEngine.Workflows
|
|
if (workflow.ActualHandleStepId == currentStep.Id)
|
|
if (workflow.ActualHandleStepId == currentStep.Id)
|
|
{
|
|
{
|
|
//更新实际办理节点信息
|
|
//更新实际办理节点信息
|
|
- workflow.UpdateActualStepWhenHandle(currentStep, _sessionContext.OrgAreaCode, _sessionContext.OrgAreaName, _sessionContext.OrgLevel);
|
|
|
|
|
|
+ workflow.UpdateActualStepWhenHandle(currentStep, _sessionContextProvider.SessionContext.OrgAreaCode, _sessionContextProvider.SessionContext.OrgAreaName, _sessionContextProvider.SessionContext.OrgLevel);
|
|
}
|
|
}
|
|
|
|
|
|
if (workflow.CurrentStepId == currentStep.Id)
|
|
if (workflow.CurrentStepId == currentStep.Id)
|
|
{
|
|
{
|
|
- workflow.UpdateCurrentStepWhenHandle(currentStep, _sessionContext.OrgAreaCode, _sessionContext.OrgAreaName, _sessionContext.OrgLevel);
|
|
|
|
|
|
+ workflow.UpdateCurrentStepWhenHandle(currentStep, _sessionContextProvider.SessionContext.OrgAreaCode, _sessionContextProvider.SessionContext.OrgAreaName, _sessionContextProvider.SessionContext.OrgLevel);
|
|
}
|
|
}
|
|
|
|
|
|
//检查是否流转到流程终点
|
|
//检查是否流转到流程终点
|
|
@@ -526,7 +520,7 @@ namespace Hotline.FlowEngine.Workflows
|
|
|
|
|
|
//更新会签实际办理对象信息
|
|
//更新会签实际办理对象信息
|
|
if (currentStep.IsActualHandled)
|
|
if (currentStep.IsActualHandled)
|
|
- workflow.AddCsActualHandler(_sessionContext.RequiredUserId, _sessionContext.RequiredOrgId);
|
|
|
|
|
|
+ workflow.AddCsActualHandler(_sessionContextProvider.SessionContext.RequiredUserId, _sessionContextProvider.SessionContext.RequiredOrgId);
|
|
|
|
|
|
await _workflowRepository.UpdateAsync(workflow, cancellationToken);
|
|
await _workflowRepository.UpdateAsync(workflow, cancellationToken);
|
|
|
|
|
|
@@ -541,7 +535,7 @@ namespace Hotline.FlowEngine.Workflows
|
|
var currentTrace = workflow.Traces.First(d => d.Id == currentStep.Id);
|
|
var currentTrace = workflow.Traces.First(d => d.Id == currentStep.Id);
|
|
await _publisher.PublishAsync(
|
|
await _publisher.PublishAsync(
|
|
new NextStepNotify(workflow, dto, flowAssignInfo, currentTrace, nextStepDefine,
|
|
new NextStepNotify(workflow, dto, flowAssignInfo, currentTrace, nextStepDefine,
|
|
- _sessionContext.RequiredOrgId, expiredTime.HasValue), PublishStrategy.ParallelWhenAll,
|
|
|
|
|
|
+ _sessionContextProvider.SessionContext.RequiredOrgId, expiredTime.HasValue), PublishStrategy.ParallelWhenAll,
|
|
cancellationToken);
|
|
cancellationToken);
|
|
}
|
|
}
|
|
|
|
|
|
@@ -822,9 +816,7 @@ namespace Hotline.FlowEngine.Workflows
|
|
/// 批量修改工单办理对象
|
|
/// 批量修改工单办理对象
|
|
/// </summary>
|
|
/// </summary>
|
|
public async Task ChangeHandlerBatchAsync(
|
|
public async Task ChangeHandlerBatchAsync(
|
|
- IReadOnlyList<(string userId, string username, string orgId, string orgName, string? roleId, string? roleName, ICollection<WorkflowStep>
|
|
|
|
- steps
|
|
|
|
- )> handlers,
|
|
|
|
|
|
+ IReadOnlyList<(string userId, string username, string orgId, string orgName, string? roleId, string? roleName, ICollection<WorkflowStep> steps)> handlers,
|
|
CancellationToken cancellationToken)
|
|
CancellationToken cancellationToken)
|
|
{
|
|
{
|
|
foreach (var handler in handlers)
|
|
foreach (var handler in handlers)
|
|
@@ -992,7 +984,7 @@ namespace Hotline.FlowEngine.Workflows
|
|
{
|
|
{
|
|
var workflow = await GetWorkflowAsync(workflowId, withSteps: true, withTraces: true,
|
|
var workflow = await GetWorkflowAsync(workflowId, withSteps: true, withTraces: true,
|
|
cancellationToken: cancellationToken);
|
|
cancellationToken: cancellationToken);
|
|
- // workflow.Assign(EFlowAssignType.User, _sessionContext.RequiredUserId);
|
|
|
|
|
|
+ // workflow.Assign(EFlowAssignType.User, _sessionContextProvider.SessionContext.RequiredUserId);
|
|
//
|
|
//
|
|
// workflow.HandlerOrgs = new();
|
|
// workflow.HandlerOrgs = new();
|
|
// workflow.HandlerUsers = new List<HandlerGroupItem>
|
|
// workflow.HandlerUsers = new List<HandlerGroupItem>
|
|
@@ -1399,7 +1391,7 @@ namespace Hotline.FlowEngine.Workflows
|
|
case EPathPolicy.DirectUpper:
|
|
case EPathPolicy.DirectUpper:
|
|
break;
|
|
break;
|
|
case EPathPolicy.DirectUpperCenterIsTop:
|
|
case EPathPolicy.DirectUpperCenterIsTop:
|
|
- var currentOrgLevel = _sessionContext.RequiredOrgId.CalcOrgLevel();
|
|
|
|
|
|
+ var currentOrgLevel = _sessionContextProvider.SessionContext.RequiredOrgId.CalcOrgLevel();
|
|
if (currentOrgLevel == 1)
|
|
if (currentOrgLevel == 1)
|
|
{
|
|
{
|
|
nextStepDefines = nextStepDefines.Where(d => d.IsCenter()).ToList();
|
|
nextStepDefines = nextStepDefines.Where(d => d.IsCenter()).ToList();
|
|
@@ -1430,9 +1422,9 @@ namespace Hotline.FlowEngine.Workflows
|
|
var workflow = await GetWorkflowAsync(dto.WorkflowId, withDefine: true, withSteps: true,
|
|
var workflow = await GetWorkflowAsync(dto.WorkflowId, withDefine: true, withSteps: true,
|
|
cancellationToken: cancellationToken);
|
|
cancellationToken: cancellationToken);
|
|
|
|
|
|
- var currentStep = GetUnHandleStep(workflow.Steps, _sessionContext.RequiredOrgId,
|
|
|
|
- _sessionContext.RequiredUserId, _sessionContext.Roles);
|
|
|
|
- //var (currentStepBox, currentStep) = GetUnCompleteStep(workflow.Steps, _sessionContext.RequiredOrgId, _sessionContext.RequiredUserId);
|
|
|
|
|
|
+ var currentStep = GetUnHandleStep(workflow.Steps, _sessionContextProvider.SessionContext.RequiredOrgId,
|
|
|
|
+ _sessionContextProvider.SessionContext.RequiredUserId, _sessionContextProvider.SessionContext.Roles);
|
|
|
|
+ //var (currentStepBox, currentStep) = GetUnCompleteStep(workflow.Steps, _sessionContextProvider.SessionContext.RequiredOrgId, _sessionContextProvider.SessionContext.RequiredUserId);
|
|
|
|
|
|
var endStepDefine = workflow.WorkflowDefinition.FindEndStepDefine();
|
|
var endStepDefine = workflow.WorkflowDefinition.FindEndStepDefine();
|
|
|
|
|
|
@@ -1518,7 +1510,7 @@ namespace Hotline.FlowEngine.Workflows
|
|
workflow.Complete(endStep, dto.ReviewResult);
|
|
workflow.Complete(endStep, dto.ReviewResult);
|
|
|
|
|
|
//需求调整:归档时当前节点显示为归档节点
|
|
//需求调整:归档时当前节点显示为归档节点
|
|
- workflow.UpdateCurrentStepWhenHandle(endStep, _sessionContext.OrgAreaCode, _sessionContext.OrgAreaName, _sessionContext.OrgLevel);
|
|
|
|
|
|
+ workflow.UpdateCurrentStepWhenHandle(endStep, _sessionContextProvider.SessionContext.OrgAreaCode, _sessionContextProvider.SessionContext.OrgAreaName, _sessionContextProvider.SessionContext.OrgLevel);
|
|
workflow.UpdateCurrentStepAcceptTime(endStep.AcceptTime.Value);
|
|
workflow.UpdateCurrentStepAcceptTime(endStep.AcceptTime.Value);
|
|
|
|
|
|
//workflow.UpdateActualStepWhenHandle(endStep, current.OrgAreaCode, current.OrgAreaName, current.OrgLevel);
|
|
//workflow.UpdateActualStepWhenHandle(endStep, current.OrgAreaCode, current.OrgAreaName, current.OrgLevel);
|
|
@@ -1554,7 +1546,7 @@ namespace Hotline.FlowEngine.Workflows
|
|
public ECounterSignType? GetCounterSignType(bool isStartCountersign)
|
|
public ECounterSignType? GetCounterSignType(bool isStartCountersign)
|
|
{
|
|
{
|
|
if (!isStartCountersign) return null;
|
|
if (!isStartCountersign) return null;
|
|
- return _sessionContext.OrgIsCenter ? ECounterSignType.Center : ECounterSignType.Department;
|
|
|
|
|
|
+ return _sessionContextProvider.SessionContext.OrgIsCenter ? ECounterSignType.Center : ECounterSignType.Department;
|
|
}
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
/// <summary>
|
|
@@ -1945,10 +1937,10 @@ namespace Hotline.FlowEngine.Workflows
|
|
/// </summary>
|
|
/// </summary>
|
|
private void HandleStep(WorkflowStep step, string opinion, string nextStepCode)
|
|
private void HandleStep(WorkflowStep step, string opinion, string nextStepCode)
|
|
{
|
|
{
|
|
- step.Handle(_sessionContext.RequiredUserId, _sessionContext.UserName,
|
|
|
|
- _sessionContext.RequiredOrgId, _sessionContext.OrgName,
|
|
|
|
- _sessionContext.OrgAreaCode, _sessionContext.OrgAreaName,
|
|
|
|
- _sessionContext.OrgIsCenter, opinion, nextStepCode);
|
|
|
|
|
|
+ step.Handle(_sessionContextProvider.SessionContext.RequiredUserId, _sessionContextProvider.SessionContext.UserName,
|
|
|
|
+ _sessionContextProvider.SessionContext.RequiredOrgId, _sessionContextProvider.SessionContext.OrgName,
|
|
|
|
+ _sessionContextProvider.SessionContext.OrgAreaCode, _sessionContextProvider.SessionContext.OrgAreaName,
|
|
|
|
+ _sessionContextProvider.SessionContext.OrgIsCenter, opinion, nextStepCode);
|
|
|
|
|
|
//var handler = step.FindActualHandler(current.Roles, current.RequiredUserId, current.RequiredOrgId);
|
|
//var handler = step.FindActualHandler(current.Roles, current.RequiredUserId, current.RequiredOrgId);
|
|
//if (handler is not null)
|
|
//if (handler is not null)
|
|
@@ -2275,10 +2267,10 @@ namespace Hotline.FlowEngine.Workflows
|
|
foreach (var trace in uncompleteTraces)
|
|
foreach (var trace in uncompleteTraces)
|
|
{
|
|
{
|
|
trace.Handle(
|
|
trace.Handle(
|
|
- _sessionContext.RequiredUserId, _sessionContext.UserName,
|
|
|
|
- _sessionContext.RequiredOrgId, _sessionContext.OrgName,
|
|
|
|
- _sessionContext.OrgAreaCode, _sessionContext.OrgAreaName,
|
|
|
|
- _sessionContext.OrgIsCenter, dto.Opinion);
|
|
|
|
|
|
+ _sessionContextProvider.SessionContext.RequiredUserId, _sessionContextProvider.SessionContext.UserName,
|
|
|
|
+ _sessionContextProvider.SessionContext.RequiredOrgId, _sessionContextProvider.SessionContext.OrgName,
|
|
|
|
+ _sessionContextProvider.SessionContext.OrgAreaCode, _sessionContextProvider.SessionContext.OrgAreaName,
|
|
|
|
+ _sessionContextProvider.SessionContext.OrgIsCenter, dto.Opinion);
|
|
}
|
|
}
|
|
|
|
|
|
//await _workflowTraceRepository.UpdateRangeAsync(uncompleteTraces, cancellationToken);
|
|
//await _workflowTraceRepository.UpdateRangeAsync(uncompleteTraces, cancellationToken);
|
|
@@ -2333,9 +2325,9 @@ namespace Hotline.FlowEngine.Workflows
|
|
foreach (var unCompleteCountersign in unCompleteCountersigns)
|
|
foreach (var unCompleteCountersign in unCompleteCountersigns)
|
|
{
|
|
{
|
|
unCompleteCountersign.End(null, null, EBusinessType.File,
|
|
unCompleteCountersign.End(null, null, EBusinessType.File,
|
|
- _sessionContext.RequiredUserId, _sessionContext.UserName,
|
|
|
|
- _sessionContext.RequiredOrgId, _sessionContext.OrgName,
|
|
|
|
- _sessionContext.OrgAreaCode, _sessionContext.OrgAreaName);
|
|
|
|
|
|
+ _sessionContextProvider.SessionContext.RequiredUserId, _sessionContextProvider.SessionContext.UserName,
|
|
|
|
+ _sessionContextProvider.SessionContext.RequiredOrgId, _sessionContextProvider.SessionContext.OrgName,
|
|
|
|
+ _sessionContextProvider.SessionContext.OrgAreaCode, _sessionContextProvider.SessionContext.OrgAreaName);
|
|
}
|
|
}
|
|
|
|
|
|
await _workflowCountersignRepository.UpdateRangeAsync(unCompleteCountersigns, cancellationToken);
|
|
await _workflowCountersignRepository.UpdateRangeAsync(unCompleteCountersigns, cancellationToken);
|
|
@@ -2427,21 +2419,21 @@ namespace Hotline.FlowEngine.Workflows
|
|
|
|
|
|
var handler = new FlowStepHandler
|
|
var handler = new FlowStepHandler
|
|
{
|
|
{
|
|
- Key = _sessionContext.UserId,
|
|
|
|
- Value = _sessionContext.UserName,
|
|
|
|
- UserId = _sessionContext.RequiredUserId,
|
|
|
|
- Username = _sessionContext.UserName,
|
|
|
|
- OrgId = _sessionContext.OrgId,
|
|
|
|
- OrgName = _sessionContext.OrgName,
|
|
|
|
|
|
+ Key = _sessionContextProvider.SessionContext.UserId,
|
|
|
|
+ Value = _sessionContextProvider.SessionContext.UserName,
|
|
|
|
+ UserId = _sessionContextProvider.SessionContext.RequiredUserId,
|
|
|
|
+ Username = _sessionContextProvider.SessionContext.UserName,
|
|
|
|
+ OrgId = _sessionContextProvider.SessionContext.OrgId,
|
|
|
|
+ OrgName = _sessionContextProvider.SessionContext.OrgName,
|
|
};
|
|
};
|
|
|
|
|
|
var step = CreateStep(workflow, endStepDefine, prevStep, EFlowAssignType.User, handler,
|
|
var step = CreateStep(workflow, endStepDefine, prevStep, EFlowAssignType.User, handler,
|
|
null, null, EWorkflowStepStatus.WaitForAccept,
|
|
null, null, EWorkflowStepStatus.WaitForAccept,
|
|
ECountersignPosition.None, expiredTime, endStepDefine.Name, true, businessType: EBusinessType.File,flowDirection: dto.FlowDirection);
|
|
ECountersignPosition.None, expiredTime, endStepDefine.Name, true, businessType: EBusinessType.File,flowDirection: dto.FlowDirection);
|
|
|
|
|
|
- //step.Accept(_sessionContext.RequiredUserId, _sessionContext.UserName,
|
|
|
|
- // _sessionContext.RequiredOrgId, _sessionContext.OrgName,
|
|
|
|
- // _sessionContext.OrgAreaCode, _sessionContext.OrgAreaName);
|
|
|
|
|
|
+ //step.Accept(_sessionContextProvider.SessionContext.RequiredUserId, _sessionContextProvider.SessionContext.UserName,
|
|
|
|
+ // _sessionContextProvider.SessionContext.RequiredOrgId, _sessionContextProvider.SessionContext.OrgName,
|
|
|
|
+ // _sessionContextProvider.SessionContext.OrgAreaCode, _sessionContextProvider.SessionContext.OrgAreaName);
|
|
|
|
|
|
HandleStep(step, "流程归档", string.Empty);
|
|
HandleStep(step, "流程归档", string.Empty);
|
|
|
|
|
|
@@ -2589,7 +2581,7 @@ namespace Hotline.FlowEngine.Workflows
|
|
throw new UserFriendlyException(
|
|
throw new UserFriendlyException(
|
|
$"TerminalDynamicMark parse to int failed, tMark: {currentStepDefine.TerminalDynamicMark}");
|
|
$"TerminalDynamicMark parse to int failed, tMark: {currentStepDefine.TerminalDynamicMark}");
|
|
var leadRoleCode = _systemSettingCacheManager.GetSetting(SettingConstants.RoleLingDao)?.SettingValue[0];
|
|
var leadRoleCode = _systemSettingCacheManager.GetSetting(SettingConstants.RoleLingDao)?.SettingValue[0];
|
|
- var isLead = _sessionContext.Roles.Any(x => x == leadRoleCode);
|
|
|
|
|
|
+ var isLead = _sessionContextProvider.SessionContext.Roles.Any(x => x == leadRoleCode);
|
|
return (currentOrgLevel <= tMark2) && isLead;
|
|
return (currentOrgLevel <= tMark2) && isLead;
|
|
case EDynamicPolicy.OrgDownCenterTop:
|
|
case EDynamicPolicy.OrgDownCenterTop:
|
|
case EDynamicPolicy.OrgDown:
|
|
case EDynamicPolicy.OrgDown:
|
|
@@ -2724,16 +2716,16 @@ namespace Hotline.FlowEngine.Workflows
|
|
ref List<WorkflowStep> updateSteps, ref List<WorkflowTrace> updateTraces)
|
|
ref List<WorkflowStep> updateSteps, ref List<WorkflowTrace> updateTraces)
|
|
{
|
|
{
|
|
var isHandled = step.Status is EWorkflowStepStatus.Handled;
|
|
var isHandled = step.Status is EWorkflowStepStatus.Handled;
|
|
- var opinion = $"会签未办理完成,由 {_sessionContext.OrgName} 的 {_sessionContext.UserName} 终止办理";
|
|
|
|
|
|
+ var opinion = $"会签未办理完成,由 {_sessionContextProvider.SessionContext.OrgName} 的 {_sessionContextProvider.SessionContext.UserName} 终止办理";
|
|
if (step.IsStartCountersign)
|
|
if (step.IsStartCountersign)
|
|
step.CountersignEnd();
|
|
step.CountersignEnd();
|
|
|
|
|
|
if (step.Status is not EWorkflowStepStatus.Handled)
|
|
if (step.Status is not EWorkflowStepStatus.Handled)
|
|
{
|
|
{
|
|
- step.Handle(_sessionContext.RequiredUserId, _sessionContext.UserName,
|
|
|
|
- _sessionContext.RequiredOrgId, _sessionContext.OrgName,
|
|
|
|
- _sessionContext.OrgAreaCode, _sessionContext.OrgAreaName,
|
|
|
|
- _sessionContext.OrgIsCenter, opinion);
|
|
|
|
|
|
+ step.Handle(_sessionContextProvider.SessionContext.RequiredUserId, _sessionContextProvider.SessionContext.UserName,
|
|
|
|
+ _sessionContextProvider.SessionContext.RequiredOrgId, _sessionContextProvider.SessionContext.OrgName,
|
|
|
|
+ _sessionContextProvider.SessionContext.OrgAreaCode, _sessionContextProvider.SessionContext.OrgAreaName,
|
|
|
|
+ _sessionContextProvider.SessionContext.OrgIsCenter, opinion);
|
|
}
|
|
}
|
|
|
|
|
|
updateSteps.Add(step);
|
|
updateSteps.Add(step);
|
|
@@ -2776,9 +2768,9 @@ namespace Hotline.FlowEngine.Workflows
|
|
//todo 1. trace? 先确定展现形式 2. end cs
|
|
//todo 1. trace? 先确定展现形式 2. end cs
|
|
|
|
|
|
countersign.End(null, null, businessType,
|
|
countersign.End(null, null, businessType,
|
|
- _sessionContext.RequiredUserId, _sessionContext.UserName,
|
|
|
|
- _sessionContext.RequiredOrgId, _sessionContext.OrgName,
|
|
|
|
- _sessionContext.OrgAreaCode, _sessionContext.OrgAreaName);
|
|
|
|
|
|
+ _sessionContextProvider.SessionContext.RequiredUserId, _sessionContextProvider.SessionContext.UserName,
|
|
|
|
+ _sessionContextProvider.SessionContext.RequiredOrgId, _sessionContextProvider.SessionContext.OrgName,
|
|
|
|
+ _sessionContextProvider.SessionContext.OrgAreaCode, _sessionContextProvider.SessionContext.OrgAreaName);
|
|
|
|
|
|
/*
|
|
/*
|
|
* //结束step会签信息
|
|
* //结束step会签信息
|
|
@@ -2787,9 +2779,9 @@ namespace Hotline.FlowEngine.Workflows
|
|
|
|
|
|
//结束会签
|
|
//结束会签
|
|
currentCountersign.End(currentStep.Id, currentStep.Code, currentStep.BusinessType,
|
|
currentCountersign.End(currentStep.Id, currentStep.Code, currentStep.BusinessType,
|
|
- _sessionContext.RequiredUserId, _sessionContext.UserName,
|
|
|
|
- _sessionContext.RequiredOrgId, _sessionContext.OrgName,
|
|
|
|
- _sessionContext.OrgAreaCode, _sessionContext.OrgAreaName);
|
|
|
|
|
|
+ _sessionContextProvider.SessionContext.RequiredUserId, _sessionContextProvider.SessionContext.UserName,
|
|
|
|
+ _sessionContextProvider.SessionContext.RequiredOrgId, _sessionContextProvider.SessionContext.OrgName,
|
|
|
|
+ _sessionContextProvider.SessionContext.OrgAreaCode, _sessionContextProvider.SessionContext.OrgAreaName);
|
|
await _workflowCountersignRepository.UpdateAsync(currentCountersign, cancellationToken);
|
|
await _workflowCountersignRepository.UpdateAsync(currentCountersign, cancellationToken);
|
|
*/
|
|
*/
|
|
|
|
|