|
@@ -248,19 +248,31 @@ public class WorkflowApplication : IWorkflowApplication, IScopeDependency
|
|
|
//当前操作人所属部门的下级部门并且属于配置orgLevel的部门
|
|
|
var levels = stepDefine.HandlerClassifies.Select(d => d.Id).Select(d => int.Parse(d));
|
|
|
var levelOneOrg = _sessionContext.RequiredOrgCode.GetUpperOrgCode();
|
|
|
- var orgs1 = await _organizeRepository.QueryAsync(d =>
|
|
|
- d.IsEnable && d.OrgCode.StartsWith(levelOneOrg) &&
|
|
|
- levels.Contains(d.OrgLevel));
|
|
|
+ //var orgs1 = await _organizeRepository.QueryAsync(d =>
|
|
|
+ // d.IsEnable && d.OrgCode.StartsWith(levelOneOrg) &&
|
|
|
+ // levels.Contains(d.OrgLevel));
|
|
|
+
|
|
|
+ var orgs1 = await _organizeRepository.Queryable()
|
|
|
+ .Where(d => d.IsEnable && levels.Contains(d.OrgLevel))
|
|
|
+ .WhereIF(!levelOneOrg.IsCenter(), d => d.OrgCode.StartsWith(levelOneOrg))
|
|
|
+ .ToListAsync(cancellationToken);
|
|
|
+
|
|
|
handlers = orgs1.Select(d => new IdName(d.OrgCode, d.OrgName)).ToList();
|
|
|
break;
|
|
|
case EHandlerType.OrgType:
|
|
|
var types = stepDefine.HandlerClassifies.Select(d => d.Id)
|
|
|
.Select(d => Enum.Parse<EOrgType>(d));
|
|
|
var levelOneOrg1 = _sessionContext.RequiredOrgCode.GetUpperOrgCode();
|
|
|
- var org2 = await _organizeRepository.QueryAsync(d =>
|
|
|
- d.IsEnable && d.OrgCode.StartsWith(levelOneOrg1) &&
|
|
|
- types.Contains(d.OrgType));
|
|
|
- handlers = org2.Select(d => new IdName(d.OrgCode, d.OrgName)).ToList();
|
|
|
+ //var org2 = await _organizeRepository.QueryAsync(d =>
|
|
|
+ // d.IsEnable && d.OrgCode.StartsWith(levelOneOrg1) &&
|
|
|
+ // types.Contains(d.OrgType));
|
|
|
+
|
|
|
+ var orgs2 = await _organizeRepository.Queryable()
|
|
|
+ .Where(d => d.IsEnable && types.Contains(d.OrgType))
|
|
|
+ .WhereIF(!levelOneOrg1.IsCenter(), d => d.OrgCode.StartsWith(levelOneOrg1))
|
|
|
+ .ToListAsync(cancellationToken);
|
|
|
+
|
|
|
+ handlers = orgs2.Select(d => new IdName(d.OrgCode, d.OrgName)).ToList();
|
|
|
break;
|
|
|
default:
|
|
|
throw new ArgumentOutOfRangeException();
|