平台默认在BIZ层的组织机构函数中提供了获取拥有指定功能权限的所有角色和根据角色ID获取相关组织的函数如下:
findRolesHasActivity(String process, Set<String> activity) 获取拥有指定功能权限的所有角色 参数: String process Set<String> activity 返回: List<String>
findOrgUnitsHasRole(String roldID, Object inOrg, Boolean isPersonMember) 获取拥有某个角色的组织单元 findOrgUnitsHasRole('角色ID', '', true) findOrgUnitsHasRole('角色ID', currentOgnID(), false) 参数:String roldID 角色ID Object inOrg 组织单元所在的组织, 允许三种情况: 空值, 表示不限制范围; 单个组织单元ID或FID(String类型); 多个组织单元ID或FID(String类型)形成的List; Boolean isPersonMember 是否取到人员成员 返回:List<OrgUnit>
在获取拥有指定指定功能权限的人员成员是可以先获取到拥有指定功能权限的所有角色(findRolesHasActivity返回的是角色ID的List),然后根据角色ID获取人员成员
这两个函数的实现分别调用的是的OrgUtils.findRolesHasActivity(process,activity);
和OrgUtils.findOrgUnitsHasRole(roleID, inOrg, isPersonMember);实现的,因此在java中可以直接调用这两个API
如下:
String process = "/demo/misc/process/order/orderProcess"; String activity = "mainActivity"; List<String> roles = OrgUtils.findRolesHasActivity(process, activity); for (String roleID : roles) { System.out.println(roleID); List<OrgUnit> orgUtils = OrgUtils.findOrgUnitsHasRole(roleID, null, true); for (OrgUnit person : orgUtils) { String fid = person.getFID();// 获取人员成员sFID的值 String fname = person.getFName();// 获取人员成员sFName的值 } }
评一波