|
@@ -915,7 +915,7 @@ public class WorkflowApplication : IWorkflowApplication, IScopeDependency
|
|
|
{
|
|
|
int orgLevel;
|
|
|
List<Kv> items;
|
|
|
- var levelOneOrgCode = _sessionContext.RequiredOrgId.GetHigherOrgId();
|
|
|
+ string upperOrgId;
|
|
|
switch (policy)
|
|
|
{
|
|
|
case EDynamicPolicy.OrgUpCenterTop:
|
|
@@ -931,8 +931,10 @@ public class WorkflowApplication : IWorkflowApplication, IScopeDependency
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
+ //上级部门Id
|
|
|
+ upperOrgId = _sessionContext.RequiredOrgId.GetHigherOrgId(orgLevel);
|
|
|
items = await _organizeRepository.Queryable()
|
|
|
- .Where(d => !d.IsCenter && d.Level == orgLevel && d.Id.StartsWith(levelOneOrgCode))
|
|
|
+ .Where(d => d.Id == upperOrgId)
|
|
|
.Select(d => new Kv { Key = d.Id, Value = d.Name })
|
|
|
.ToListAsync(cancellationToken);
|
|
|
}
|
|
@@ -941,8 +943,10 @@ public class WorkflowApplication : IWorkflowApplication, IScopeDependency
|
|
|
case EDynamicPolicy.OrgUp:
|
|
|
orgLevel = _sessionContext.OrgLevel - 1;
|
|
|
if (orgLevel <= 0) orgLevel = 1;
|
|
|
+ //上级部门Id
|
|
|
+ upperOrgId = _sessionContext.RequiredOrgId.GetHigherOrgId(orgLevel);
|
|
|
items = await _organizeRepository.Queryable()
|
|
|
- .Where(d => d.Level == orgLevel && d.Id.StartsWith(levelOneOrgCode))
|
|
|
+ .Where(d => d.Id == upperOrgId)
|
|
|
.Select(d => new Kv { Key = d.Id, Value = d.Name })
|
|
|
.ToListAsync(cancellationToken);
|
|
|
break;
|
|
@@ -959,7 +963,7 @@ public class WorkflowApplication : IWorkflowApplication, IScopeDependency
|
|
|
{
|
|
|
orgLevel = _sessionContext.OrgLevel + 1;
|
|
|
items = await _organizeRepository.Queryable()
|
|
|
- .Where(d => !d.IsCenter && d.Level == orgLevel && d.Id.StartsWith(levelOneOrgCode))
|
|
|
+ .Where(d => !d.IsCenter && d.Level == orgLevel && d.Id.StartsWith(_sessionContext.RequiredOrgId))
|
|
|
.Select(d => new Kv { Key = d.Id, Value = d.Name })
|
|
|
.ToListAsync(cancellationToken);
|
|
|
}
|
|
@@ -968,7 +972,7 @@ public class WorkflowApplication : IWorkflowApplication, IScopeDependency
|
|
|
case EDynamicPolicy.OrgDown:
|
|
|
orgLevel = _sessionContext.OrgLevel + 1;
|
|
|
items = await _organizeRepository.Queryable()
|
|
|
- .Where(d => d.Level == orgLevel && d.Id.StartsWith(levelOneOrgCode))
|
|
|
+ .Where(d => d.Level == orgLevel && d.Id.StartsWith(_sessionContext.RequiredOrgId))
|
|
|
.Select(d => new Kv { Key = d.Id, Value = d.Name })
|
|
|
.ToListAsync(cancellationToken);
|
|
|
break;
|