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

📄 orgusermanageservice.java

📁 公司自己开发的工作流引擎
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
package cn.com.iaspec.workflow.sysmanage.business;

import cn.com.iaspec.workflow.sysmanage.tree.OrgUserTree;
import java.util.List;
import cn.com.iaspec.workflow.organize.dao.WfOrganizationDAO;
import java.sql.SQLException;
import cn.com.iaspec.workflow.organize.dao.WfUserDAO;
import java.util.ArrayList;
import cn.com.iaspec.workflow.vo.db.WfOrganization;
import cn.com.iaspec.workflow.vo.db.WfUser;
import cn.com.iaspec.workflow.util.GetTableSequenceId;
import cn.com.iaspec.workflow.exception.WorkflowException;
import cn.com.iaspec.workflow.organize.dao.WfOrgUserRoleDAO;
import cn.com.iaspec.workflow.vo.db.WfOrgUserRole;
import cn.com.iaspec.workflow.exception.LoginIdConflictException;
import cn.com.iaspec.workflow.util.MD5Util;
import cn.com.iaspec.workflow.sysmanage.tree.SortOrgUserTree;
import java.util.Collections;
import cn.com.iaspec.workflow.manage.dao.GetRoleManageDAO;
import cn.com.iaspec.workflow.sysmanage.tree.RoleOrgUserTree;
import cn.com.iaspec.workflow.vo.db.WfManageRoleAuthorization;
import cn.com.iaspec.workflow.sysmanage.dao.WfManageRoleAuthorizationDAO;
import cn.com.iaspec.workflow.organize.dao.WfRoleDAO;
import cn.com.iaspec.workflow.vo.db.WfRole;
import cn.com.iaspec.workflow.organize.business.WfOrgRoleDAOAgent;

/**
 * <p>Title: </p>
 *
 * <p>Description: </p>
 *
 * <p>Copyright: Copyright (c) 2005</p>
 *
 * <p>Company: IASPEC Technologies</p>
 *
 * @author xiesonglin
 * @version 1.0
 */
public class OrgUserManageService{
  public OrgUserManageService(){
  }

  /**
   * 取得组织用户信息树
   * @param upOrgId 父节点id
   * @param areaId 所属行政区
   * @return List
   */
  public List getOrgUserTree(String upOrgId,String areaId)
      throws Exception{
    List list=new ArrayList();
    WfOrganizationDAO orgDAO=new WfOrganizationDAO();
    List orgList=orgDAO.query(upOrgId,areaId,true,true);
    //将WfOrganization转化为OrgUserTree
    if(orgList!=null&&orgList.size()>0){
      for(int i=0;i<orgList.size();i++){
        WfOrganization org=(WfOrganization)orgList.get(i);
        OrgUserTree tree=orgToOrgUserTree(org);
        if(tree!=null){
          list.add(tree);
        }
      }
    }
    WfUserDAO userDAO=new WfUserDAO();
    List userList=userDAO.query(upOrgId);
    //将WfUser转化为OrgUserTree
    if(userList!=null&&userList.size()>0){
      for(int i=0;i<userList.size();i++){
        WfUser user=(WfUser)userList.get(i);
        OrgUserTree tree=userToOrgUserTree(user,upOrgId);
        if(tree!=null){
          list.add(tree);
        }
      }
    }
    if(list!=null&&list.size()>0){
      SortOrgUserTree sort=new SortOrgUserTree();
      //排序
      Collections.sort(list,sort);
    }
    return list;
  }

  /**
   * 取得登陆用户管理权限范围内的组织用户信息树
   * @param upOrgId 父节点id
   * @param areaId 所属行政区
   * @return List
   */
  public List getOrgUserTree(String upOrgId,String areaId,String userId)
      throws Exception{
    List list=new ArrayList();
    WfOrganizationDAO orgDAO=new WfOrganizationDAO();
    List orgList=orgDAO.query(upOrgId,areaId,userId,true,true);
    //将WfOrganization转化为OrgUserTree
    if(orgList!=null&&orgList.size()>0){
      for(int i=0;i<orgList.size();i++){
        WfOrganization org=(WfOrganization)orgList.get(i);
        OrgUserTree tree=orgToOrgUserTree(org);
        if(tree!=null){
          list.add(tree);
        }
      }
    }
    WfUserDAO userDAO=new WfUserDAO();
    List userList=userDAO.query(upOrgId,userId);
    //将WfUser转化为OrgUserTree
    if(userList!=null&&userList.size()>0){
      for(int i=0;i<userList.size();i++){
        WfUser user=(WfUser)userList.get(i);
        OrgUserTree tree=userToOrgUserTree(user,upOrgId);
        if(tree!=null){
          list.add(tree);
        }
      }
    }
    if(list!=null&&list.size()>0){
      SortOrgUserTree sort=new SortOrgUserTree();
      //排序
      Collections.sort(list,sort);
    }
    return list;
  }

  /**
   * 取得登陆用户管理权限范围内的角色(管理角色)组织用户信息树
   * @param parentId 父节点id
   * @param areaId 所属行政区
   * @param roleId 管理角色id
   * @param parentType 父节点的类型(管理角色,组织部门)
   * param userId 登陆用户id
   * @return List
   */
  public List getRoleOrgUserTree(String parentId,String areaId,String roleId,
      String parentType,String userId,boolean isAdmin)
      throws Exception{
    List list=new ArrayList();
    //当parentId为0时,获取登陆用户可以管理的管理角色
    if(parentId.equals("0")){
      GetRoleManageDAO roleDAO=new GetRoleManageDAO();
      if(isAdmin){
        list=roleDAO.getAllManageRoleList();
      }
      else{
        list=roleDAO.getManageRoleList(userId);
      }
      if(list!=null&&list.size()>0){ //排序
        SortOrgUserTree sort=new SortOrgUserTree();
        Collections.sort(list,sort);
      }
      return list;
    }
    else{
      //当父节点的类型是管理角色时,查询指定行政区、指定管理角色的管理权限范围内的部门信息
      if(parentType.equals("role")){
        WfOrganizationDAO orgDAO=new WfOrganizationDAO();

        List orgList = null;
        if(isAdmin){
          orgList = orgDAO.queryOrgByAreaUpOrgManageRole("0",areaId,parentId);
        }else{
          orgList=orgDAO.queryOrgByAreaUpOrgManageRole("0",areaId,parentId,
              userId,true,true);
        }
        //将WfOrganization转化为RoleOrgUserTree
        if(orgList!=null&&orgList.size()>0){
          for(int i=0;i<orgList.size();i++){
            WfOrganization org=(WfOrganization)orgList.get(i);
            RoleOrgUserTree tree=OrgToRoleOrgUserTree(org,parentId);
            if(tree!=null){
              list.add(tree);
            }
          }
        }
      }
      else if(parentType.equals("org")){
        WfOrganizationDAO orgDAO=new WfOrganizationDAO();
        List orgList = null;

        if(isAdmin){
          orgList = orgDAO.queryOrgByAreaUpOrgManageRole(parentId,areaId,roleId);
        }else{
          orgList = orgDAO.queryOrgByAreaUpOrgManageRole(parentId,areaId,
              roleId,userId,true,true);
        }
        //将WfOrganization转化为RoleOrgUserTree
        if(orgList!=null&&orgList.size()>0){
          for(int i=0;i<orgList.size();i++){
            WfOrganization org=(WfOrganization)orgList.get(i);
            RoleOrgUserTree tree=OrgToRoleOrgUserTree(org,roleId);
            if(tree!=null){
              list.add(tree);
            }
          }
        }
        WfUserDAO userDAO=new WfUserDAO();
        List userList = null;

        if(isAdmin){
          userList = userDAO.queryUserByOrgManageRole(parentId,roleId);
        }else{
          userList = userDAO.queryUserByOrgManageRole(parentId,roleId,userId);
        }
        //将WfUser转化为RoleOrgUserTree
        if(userList!=null&&userList.size()>0){
          for(int i=0;i<userList.size();i++){
            WfUser user=(WfUser)userList.get(i);
            RoleOrgUserTree tree=userToRoleOrgUserTree(user,parentId,roleId);
            if(tree!=null){
              list.add(tree);
            }
          }
        }
      }
    }

    if(list!=null&&list.size()>0){
      SortOrgUserTree sort=new SortOrgUserTree();
      //排序
      Collections.sort(list,sort);
    }
    return list;
  }

  /**
   * 保存组织信息
   * @param org WfOrganization
   * @throws Exception
   */
  public void saveOrg(WfOrganization org)
      throws Exception{
    if(org!=null){
      WfOrganizationDAO dao=new WfOrganizationDAO();
      //增加
      if(org.getOrgId()==null||org.getOrgId().equals("")){
        //取得orgId
        String orgId=GetTableSequenceId.getTableId("wf_organization");
        org.setOrgId(orgId);
        org.setOrgState("1");
        //新增记录
        dao.insert(org);
      }
      else{ //修改
        //更新
        dao.update(org,org.getOrgId());
      }
    }
  }

  /**
   * 保存用户信息
   * @param user WfUser
   * @param orgId 所属部门id
   * @throws Exception
   */
  public void saveUser(WfUser user,String orgId)
      throws Exception{
    if(user!=null){
      WfUserDAO dao=new WfUserDAO();
      //检查是否loginId重复
      if(checkExistsLoginId(user)){
        throw new LoginIdConflictException("登录id“"+user.getLoginId()+
            "”已经使用,请您选用其他登录id。");
      }
      //设置加密密码
      if(user.getLoginId()!=null&&!user.getLoginId().equals("")&&
          user.getPassword()!=null&&!user.getPassword().equals("")){
        String encodePassword=MD5Util.MD5Encode(user.getLoginId()+
            user.getPassword());
        user.setPassword(encodePassword);
      }
      //增加
      if(user.getUserId()==null||user.getUserId().equals("")){
        if(orgId==null&&orgId.equals("")){
          throw new WorkflowException("所属部门为空。");
        }

        //取得userId
        String userId=GetTableSequenceId.getTableId("wf_user");
        user.setUserId(userId);
        user.setUserState("1");
        //新增人员记录
        dao.insert(user);
        //增加关联
        WfOrgUserRoleDAO relDao=new WfOrgUserRoleDAO();
        WfOrgUserRole rel=new WfOrgUserRole();
        rel.setOrgId(orgId);
        rel.setRoleId("0");
        rel.setUserId(userId);
        relDao.insert(rel);
      }
      else{ //修改
        //更新人员信息
        dao.update(user,user.getUserId());
      }
    }
  }

  /**
   * 检查是否存在登陆id
   * @param user WfUser
   * @return boolean
   */
  private boolean checkExistsLoginId(WfUser user)
      throws SQLException{
    boolean b=false;
    //如果设置登陆名及密码,则检查是否loginId重复
    if(user!=null&&user.getLoginId()!=null&&!user.getLoginId().equals("")&&
        user.getPassword()!=null&&!user.getPassword().equals("")){
      WfUserDAO dao=new WfUserDAO();
      WfUser userTemp=new WfUser();
      userTemp.setLoginId(user.getLoginId());
      List list=dao.query(userTemp);
      if(list!=null&&list.size()>0){
        //如果新增,则id已经存在
        if(user.getUserId()==null||user.getUserId().equals("")){
          b=true;
        }
        else{
          //如果为修改登陆id,则进一步判断
          if(list.size()==1){
            //判断返回结果中的userId是否与当前userId一致
            userTemp=(WfUser)list.get(0);
            if(userTemp.getUserId()!=null&&
                userTemp.getUserId().equals(user.getUserId())){

⌨️ 快捷键说明

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