⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 selectactorservice.java

📁 公司自己开发的工作流引擎
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
 }

 /**
  * 根据用户列表生成用户树
  * @param userList List
  * @return List
  */
 private List generateUserTree(List userList){
   List treeList=new ArrayList();
   if(userList!=null){
     for(int i=0;i<userList.size();i++){
       WfUser user=(WfUser)userList.get(i);
       SelectActorTree actorTree=new SelectActorTree();
       actorTree.setTreeId(user.getUserId());
       actorTree.setTreeName(user.getUserName());
       actorTree.setTreeType("user");
       actorTree.setOrder(user.getUserOrder());
       actorTree.setParentId("0");
       actorTree.setParentName("");
       actorTree.setParentType("user");
       actorTree.setHasChild(false);
       if(!checkIfExistsInActorList(treeList,actorTree)){
         treeList.add(actorTree);
       }
     }
   }
   return treeList;
 }

 /**
  * 根据用户列表、角色列表生成角色用户树
  * @param userList List
  * @return List
  */
 private List generateRoleUserTree(List roleList,List userList){
   List treeList=new ArrayList();
   if(roleList!=null&&roleList.size()>1){
     for(int i=0;i<roleList.size();i++){
       WfRole role=(WfRole)roleList.get(i);
       SelectActorTree actorTree=new SelectActorTree();
       actorTree.setTreeId(role.getRoleId());
       actorTree.setTreeName(role.getRoleName());
       actorTree.setTreeType("role");
       actorTree.setOrder(role.getRoleOrder());
       actorTree.setParentId("0");
       actorTree.setParentName("");
       actorTree.setParentType("role");
       int childTag=0;
       if(userList!=null&&userList.size()>0){
         for(int j=0;j<userList.size();j++){
           WfUser user=(WfUser)userList.get(j);
           if(user.getRoleId()!=null&&user.getRoleId().equals(role.getRoleId())){
             childTag=1;
             SelectActorTree tempTree=new SelectActorTree();
             tempTree.setTreeId(user.getUserId());
             tempTree.setTreeName(user.getUserName());
             tempTree.setTreeType("user");
             tempTree.setOrder(user.getUserOrder());
             tempTree.setParentId(role.getRoleId());
             tempTree.setParentName(role.getRoleName());
             tempTree.setParentType("role");
             tempTree.setHasChild(false);
             if(!checkIfExistsInActorList(treeList,tempTree)){
               treeList.add(tempTree);
             }
           }
         }
       }
       if(childTag==1){
         actorTree.setHasChild(true);
       }
       else{
         actorTree.setHasChild(false);
       }
       if(!checkIfExistsInActorList(treeList,actorTree)){
         treeList.add(actorTree);
       }
     }
   }
   else{
     //如果没有角色或者只有一个角色,则生成用户树
     treeList=generateUserTree(userList);
   }
   return treeList;
 }

 /**
  * 根据用户列表、部门列表生成部门用户树
  * @param userList List
  * @return List
  */
 private List generateOrgUserTree(List orgList,List userList){
   List treeList=new ArrayList();
   if(orgList!=null&&orgList.size()>1){
     for(int i=0;i<orgList.size();i++){
       WfOrganization org=(WfOrganization)orgList.get(i);
       SelectActorTree actorTree=new SelectActorTree();
       actorTree.setTreeId(org.getOrgId());
       actorTree.setTreeName(org.getOrgName());
       actorTree.setTreeType("org");
       actorTree.setOrder(org.getOrgOrder());
       actorTree.setParentId(org.getUpOrg());
       actorTree.setParentName(org.getUpOrgName());
       actorTree.setParentType("org");
       actorTree.setHasChild(false);
       if(userList!=null&&userList.size()>0){
         for(int j=0;j<userList.size();j++){
           WfUser user=(WfUser)userList.get(j);
           if(user.getOrgId()!=null&&user.getOrgId().equals(org.getOrgId())){
             SelectActorTree tempTree=new SelectActorTree();
             tempTree.setTreeId(user.getUserId());
             tempTree.setTreeName(user.getUserName());
             tempTree.setTreeType("user");
             tempTree.setOrder(user.getUserOrder());
             tempTree.setParentId(org.getOrgId());
             tempTree.setParentName(org.getOrgName());
             tempTree.setParentType("org");
             tempTree.setHasChild(false);
             if(!checkIfExistsInActorList(treeList,tempTree)){
               treeList.add(tempTree);
             }
           }
         }
       }
       if(!checkIfExistsInActorList(treeList,actorTree)){
         treeList.add(actorTree);
       }
     }
   }
   else{
     //如果没有部门或者只有一个部门,则生成用户树
     treeList=generateUserTree(userList);
   }
   //设置部门类型节点下是否有子节点
   setOrgNodeHasChildInfo(treeList);
   return treeList;
 }

 /**
  * 根据角色列表生成角色树
  * @param roleList List
  * @return List
  */
 private List generateRoleTree(List roleList){
   List treeList=new ArrayList();
   if(roleList!=null){
     for(int i=0;i<roleList.size();i++){
       WfRole role=(WfRole)roleList.get(i);
       SelectActorTree actorTree=new SelectActorTree();
       actorTree.setTreeId(role.getRoleId());
       actorTree.setTreeName(role.getRoleName());
       actorTree.setTreeType("role");
       actorTree.setOrder(role.getRoleOrder());
       actorTree.setParentId("0");
       actorTree.setParentName("");
       actorTree.setParentType("role");
       actorTree.setHasChild(false);
       if(!checkIfExistsInActorList(treeList,actorTree)){
         treeList.add(actorTree);
       }
     }
   }
   return treeList;
 }

 /**
  * 根据部门列表、角色列表生成部门角色树
  * @param orgList List
  * @param roleList List
  * @return List
  */
 private List generateOrgRoleTree(List orgList,List roleList){
   List treeList=new ArrayList();
   if(orgList!=null&&orgList.size()>0&&roleList!=null&&roleList.size()>0){
     //如果只有一个部门,则不显示部门
     if(orgList.size()==1){
       WfOrganization org=(WfOrganization)orgList.get(0);
       if(roleList!=null&&roleList.size()>0){
         for(int j=0;j<roleList.size();j++){
           WfRole role=(WfRole)roleList.get(j);
           SelectActorTree tempTree=new SelectActorTree();
           tempTree.setTreeId(role.getRoleId());
           tempTree.setTreeName(role.getRoleName()+"("+org.getOrgName()+")");
           tempTree.setTreeType("role");
           tempTree.setOrder(role.getRoleOrder());
           tempTree.setParentId(org.getOrgId());
           tempTree.setParentName(org.getOrgName());
           tempTree.setParentType("org");
           tempTree.setHasChild(false);
           if(!checkIfExistsInActorList(treeList,tempTree)){
             treeList.add(tempTree);
           }
         }
       }
     }
     else{
       for(int i=0;i<orgList.size();i++){
         WfOrganization org=(WfOrganization)orgList.get(i);
         SelectActorTree actorTree=new SelectActorTree();
         actorTree.setTreeId(org.getOrgId());
         actorTree.setTreeName(org.getOrgName());
         actorTree.setTreeType("org");
         actorTree.setOrder(org.getOrgOrder());
         actorTree.setParentId("0");
         actorTree.setParentName("");
         actorTree.setParentType("org");
         actorTree.setHasChild(false);
         if(roleList!=null&&roleList.size()>0){
           for(int j=0;j<roleList.size();j++){
             WfRole role=(WfRole)roleList.get(j);
             SelectActorTree tempTree=new SelectActorTree();
             tempTree.setTreeId(role.getRoleId());
             tempTree.setTreeName(role.getRoleName()+"("+org.getOrgName()+")");
             tempTree.setTreeType("role");
             tempTree.setOrder(role.getRoleOrder());
             tempTree.setParentId(org.getOrgId());
             tempTree.setParentName(org.getOrgName());
             tempTree.setParentType("org");
             tempTree.setHasChild(false);
             if(!checkIfExistsInActorList(treeList,tempTree)){
               treeList.add(tempTree);
             }
           }
         }
         if(!checkIfExistsInActorList(treeList,actorTree)){
           treeList.add(actorTree);
         }
       }

     }
   }
   //设置部门类型节点下是否有子节点
   setOrgNodeHasChildInfo(treeList);
   return treeList;
 }

 /**
  * 根据部门列表生成部门树
  * @param roleList List
  * @return List
  */
 private List generateOrgTree(List orgList){
   List treeList=new ArrayList();
   if(orgList!=null){
     for(int i=0;i<orgList.size();i++){
       WfOrganization org=(WfOrganization)orgList.get(i);
       SelectActorTree actorTree=new SelectActorTree();
       actorTree.setTreeId(org.getOrgId());
       actorTree.setTreeName(org.getOrgName());
       actorTree.setTreeType("org");
       actorTree.setOrder(org.getOrgOrder());
       actorTree.setParentId("0");
       actorTree.setParentName("");
       actorTree.setParentType("org");
       actorTree.setHasChild(false);
       if(!checkIfExistsInActorList(treeList,actorTree)){
         treeList.add(actorTree);
       }
     }
     //设置部门类型节点下是否有子节点
     setOrgNodeHasChildInfo(treeList);
   }
   return treeList;
 }

 /**
  * 根据角色列表、部门列表生成角色部门树
  * @param roleList List
  * @param orgList List
  * @return List
  */
 private List generateRoleOrgTree(List roleList,List orgList){
   List treeList=new ArrayList();
   if(roleList!=null&&roleList.size()>0&&orgList!=null&&orgList.size()>0){
     //如果只有一个角色,则不显示角色
     if(roleList.size()==1){
       WfRole role=(WfRole)roleList.get(0);
       if(orgList!=null&&orgList.size()>0){
         for(int j=0;j<orgList.size();j++){
           WfOrganization org=(WfOrganization)orgList.get(j);
           SelectActorTree tempTree=new SelectActorTree();
           tempTree.setTreeId(org.getOrgId());
           tempTree.setTreeName(org.getOrgName()+"("+role.getRoleName()+")");
           tempTree.setTreeType("org");
           tempTree.setOrder(org.getOrgOrder());
           tempTree.setParentId(role.getRoleId());
           tempTree.setParentName(role.getRoleName());
           tempTree.setParentType("role");
           tempTree.setHasChild(false);
           if(!checkIfExistsInActorList(treeList,tempTree)){
             treeList.add(tempTree);
           }
         }
       }
     }
     else{
       for(int i=0;i<roleList.size();i++){
         WfRole role=(WfRole)roleList.get(i);
         SelectActorTree actorTree=new SelectActorTree();
         actorTree.setTreeId(role.getRoleId());
         actorTree.setTreeName(role.getRoleName());
         actorTree.setTreeType("role");
         actorTree.setOrder(role.getRoleOrder());
         actorTree.setParentId("0");
         actorTree.setParentName("");
         actorTree.setParentType("role");
         if(orgList!=null&&orgList.size()>0){
           actorTree.setHasChild(true);
         }
         else{
           actorTree.setHasChild(false);
         }
         if(orgList!=null&&orgList.size()>0){
           for(int j=0;j<orgList.size();j++){
             WfOrganization org=(WfOrganization)orgList.get(j);
             SelectActorTree tempTree=new SelectActorTree();
             tempTree.setTreeId(org.getOrgId());
             tempTree.setTreeName(org.getOrgName()+"("+role.getRoleName()+")");
             tempTree.setTreeType("org");
             tempTree.setOrder(org.getOrgOrder());
             tempTree.setParentId(role.getRoleId());
             tempTree.setParentName(role.getRoleName());
             tempTree.setParentType("role");
             tempTree.setHasChild(false);
             if(!checkIfExistsInActorList(treeList,tempTree)){
               treeList.add(tempTree);
             }
           }
         }
         if(!checkIfExistsInActorList(treeList,actorTree)){
           treeList.add(actorTree);
         }
       }
     }
   }
   return treeList;
 }

 /**
  * 检查部门节点下是否有子节点
  * @param treeList List
  * @param orgId 部门id
  * @return boolean
  */
 private boolean checkOrgNodeExistChildNode(List treeList,String orgId){
   boolean bResult=false;
   if(treeList!=null&&treeList.size()>0&&orgId!=null){
     Iterator it=treeList.iterator();
     while(it.hasNext()){
       SelectActorTree tree=(SelectActorTree)it.next();
       if(tree.getParentType()!=null&&tree.getParentType().equals("org")&&
           tree.getParentId().equals(orgId)){
         bResult=true;
         break;
       }
     }
   }
   return bResult;
 }

 /**
  * 设置部门类型节点下是否有子节点
  * @param treeList List
  * @param orgId 部门id
  * @return boolean
  */
 private void setOrgNodeHasChildInfo(List treeList){
   if(treeList!=null){
     for(int i=0;i<treeList.size();i++){
       SelectActorTree tree=(SelectActorTree)treeList.get(i);
       //检查部门节点下是否有子节点
       if(tree.getTreeType().equals("org")&&
           checkOrgNodeExistChildNode(treeList,tree.getTreeId())){
         //设置存在子节点
         tree.setHasChild(true);
         treeList.set(i,tree);
       }
     }
   }
 }

 /**
  * 检查对象tree是否在treeList中
  * @param treeList List
  * @param tree SelectActorTree
  * @return boolean
  */
 private boolean checkIfExistsInActorList(List treeList,SelectActorTree tree){
   boolean b=false;
   if(treeList!=null&&tree!=null){
     for(int i=0;i<treeList.size();i++){
       SelectActorTree tempTree=(SelectActorTree)treeList.get(i);
       if(tree.equals(tempTree)){
         return true;
       }
     }
   }
   return b;
 }

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -