📄 orgusermanageservice.java
字号:
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 + -