|
@@ -189,6 +189,40 @@ public class OrgServiceImpl implements OrgService {
|
|
|
|
|
|
return trees;
|
|
|
}
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public List<OrgTree> getUserTrees(Org org) {
|
|
|
+ LoginUser currentUser = UserUtil.getCurrentUser();
|
|
|
+ org.setTenantId(currentUser.getTenantId());
|
|
|
+ Set<Integer>orgIds=new HashSet<>();
|
|
|
+ List<ProgramItem> programItemList = currentUser.getProgramItemList();
|
|
|
+ if(programItemList!=null){
|
|
|
+ programItemList.forEach(programItem -> {
|
|
|
+ orgIds.add(programItem.getOrgId());
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ List<OrgTree> trees=new ArrayList<>();
|
|
|
+ if("company".equals(org.getOrgType())){
|
|
|
+ if(currentUser.getDepartmentId()==null){
|
|
|
+ trees=orgMapper.selectTrees(org);
|
|
|
+ trees=getOrgTree(trees,currentUser.getCompanyId(),1,orgIds);
|
|
|
+ }else{
|
|
|
+ org.setId(currentUser.getCompanyId());
|
|
|
+ trees=orgMapper.selectTrees(org);
|
|
|
+ }
|
|
|
+ }else{
|
|
|
+ if(currentUser.getDepartmentId()!=null){
|
|
|
+ org.setOrgType("department");
|
|
|
+ trees=orgMapper.selectTrees(org);
|
|
|
+ trees=getOrgTree(trees,currentUser.getDepartmentId(),1,orgIds);
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ return trees;
|
|
|
+ }
|
|
|
+
|
|
|
public static List<OrgTree> getOrgTree(List<OrgTree> list, Integer id, Integer level, Set<Integer> set) {
|
|
|
List<OrgTree> temList = newArrayList();
|
|
|
if (list != null) {
|