| | |
| | | package com.vci.frameworkcore.compatibility.impl; |
| | | |
| | | import com.vci.corba.framework.data.DeptInfo; |
| | | import com.vci.corba.framework.data.RoleInfo; |
| | | import com.vci.dto.SmUserDTO; |
| | | import com.vci.common.util.ThreeDES; |
| | | import com.vci.corba.common.PLException; |
| | |
| | | import com.vci.frameworkcore.compatibility.SmPwdStrategyQueryServiceI; |
| | | import com.vci.frameworkcore.compatibility.SmRoleQueryServiceI; |
| | | import com.vci.frameworkcore.compatibility.SmUserQueryServiceI; |
| | | import com.vci.frameworkcore.enumpck.OrgTypeEnum; |
| | | import com.vci.model.SmUserDO; |
| | | import com.vci.pagemodel.SmUserVO; |
| | | import com.vci.po.SmUserPO; |
| | |
| | | import com.vci.web.util.WebUtil; |
| | | import org.apache.commons.lang3.StringUtils; |
| | | import org.apache.poi.hssf.util.HSSFColor; |
| | | import org.apache.poi.ss.formula.functions.T; |
| | | import org.slf4j.Logger; |
| | | import org.slf4j.LoggerFactory; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | |
| | | return treeList; |
| | | } |
| | | |
| | | /** |
| | | /** |
| | | * 获取角色数据 |
| | | * @param treeQueryObject |
| | | * @return |
| | | * @throws VciBaseException |
| | | */ |
| | | @Override |
| | | public List<Tree> refPersonOrgTree(TreeQueryObject treeQueryObject) throws VciBaseException { |
| | | List<Tree> rootTreeList=new ArrayList<>(); |
| | | Map<String,String> conditionMap=treeQueryObject.getConditionMap(); |
| | | if(CollectionUtils.isEmpty(conditionMap)) { |
| | | conditionMap = new HashMap<>(); |
| | | } |
| | | String dataType=StringUtils.isNotBlank(conditionMap.get("dataType"))?conditionMap.get("dataType"):"";//数据类型 |
| | | String parentId=StringUtils.isNotBlank(conditionMap.get("parentId"))?conditionMap.get("parentId"):"";//父节点 |
| | | String orgType=StringUtils.isNotBlank(conditionMap.get("orgType"))?conditionMap.get("orgType"):"";//接口查询包含的类型 |
| | | try { |
| | | initChildTree(dataType,orgType,parentId,rootTreeList); |
| | | } catch (PLException e) { |
| | | throw new VciBaseException("用户权限选择树加载失败:"+e.getMessage()); |
| | | } |
| | | return rootTreeList; |
| | | } |
| | | |
| | | /*** |
| | | * |
| | | * @param dataType |
| | | * @param orgType |
| | | * @param parentId |
| | | */ |
| | | private void initChildTree(String dataType,String orgType, String parentId, List<Tree>rootTreeList) throws PLException { |
| | | if(StringUtils.isBlank(parentId)){ |
| | | Tree rootTree=new Tree("root","人员组织","root"); |
| | | rootTree.setParentBtmName("root"); |
| | | rootTree.setExpanded(true); |
| | | List<Tree> childList=new ArrayList<>(); |
| | | if(OrgTypeEnum.ORG_TYPE_USER.getValue().equals(orgType)){//如果是人员 |
| | | Tree userTree=initDataTreeNode(OrgTypeEnum.ORG_TYPE_USER.getValue(),"用户",OrgTypeEnum.ORG_TYPE_USER.getValue(),OrgTypeEnum.ORG_TYPE_USER.getValue(),rootTree); |
| | | childList.add(userTree); |
| | | }else if(OrgTypeEnum.ORG_TYPE_DEPT.getValue().equals(orgType)){//如果是部门 |
| | | Tree departmentTree=initDataTreeNode(OrgTypeEnum.ORG_TYPE_DEPT.getValue(),"部门",OrgTypeEnum.ORG_TYPE_DEPT.getValue(),OrgTypeEnum.ORG_TYPE_DEPT.getValue(),rootTree); |
| | | childList.add(departmentTree); |
| | | }else if(OrgTypeEnum.ORG_TYPE_ROLE.getValue().equals(orgType)){//如果是角色 |
| | | Tree roleTree=initDataTreeNode(OrgTypeEnum.ORG_TYPE_ROLE.getValue(),"角色",OrgTypeEnum.ORG_TYPE_ROLE.getValue(),OrgTypeEnum.ORG_TYPE_ROLE.getValue(),rootTree); |
| | | childList.add(roleTree); |
| | | }else{ |
| | | Tree userTree=initDataTreeNode(OrgTypeEnum.ORG_TYPE_USER.getValue(),"用户",OrgTypeEnum.ORG_TYPE_USER.getValue(),OrgTypeEnum.ORG_TYPE_USER.getValue(),rootTree); |
| | | childList.add(userTree); |
| | | Tree departmentTree=initDataTreeNode(OrgTypeEnum.ORG_TYPE_DEPT.getValue(),"部门",OrgTypeEnum.ORG_TYPE_DEPT.getValue(),OrgTypeEnum.ORG_TYPE_DEPT.getValue(),rootTree); |
| | | childList.add(departmentTree); |
| | | Tree roleTree=initDataTreeNode(OrgTypeEnum.ORG_TYPE_ROLE.getValue(),"角色",OrgTypeEnum.ORG_TYPE_ROLE.getValue(),OrgTypeEnum.ORG_TYPE_ROLE.getValue(),rootTree); |
| | | childList.add(roleTree); |
| | | } |
| | | if(childList.size()>0){ |
| | | rootTree.setExpanded(true); |
| | | rootTree.setChildren(childList); |
| | | } |
| | | rootTreeList.add(rootTree); |
| | | }else{ |
| | | if(OrgTypeEnum.ORG_TYPE_ROOT.getValue().equals(dataType)){//如果父节点有值,则需要判断是加载什么节点 |
| | | Tree rootTree=new Tree("root","人员组织","root"); |
| | | rootTree.setParentBtmName("root"); |
| | | rootTree.setExpanded(true); |
| | | if(OrgTypeEnum.ORG_TYPE_USER.getValue().equals(orgType)){//如果是人员 |
| | | Tree userTree=initDataTreeNode(OrgTypeEnum.ORG_TYPE_USER.getValue(),"用户",OrgTypeEnum.ORG_TYPE_USER.getValue(),OrgTypeEnum.ORG_TYPE_USER.getValue(),rootTree); |
| | | rootTreeList.add(userTree); |
| | | }else if(OrgTypeEnum.ORG_TYPE_DEPT.getValue().equals(orgType)){//如果是部门 |
| | | Tree departmentTree=initDataTreeNode(OrgTypeEnum.ORG_TYPE_DEPT.getValue(),"部门",OrgTypeEnum.ORG_TYPE_DEPT.getValue(),OrgTypeEnum.ORG_TYPE_DEPT.getValue(),rootTree); |
| | | rootTreeList.add(departmentTree); |
| | | }else if(OrgTypeEnum.ORG_TYPE_ROLE.getValue().equals(orgType)){//如果是角色 |
| | | Tree roleTree=initDataTreeNode(OrgTypeEnum.ORG_TYPE_ROLE.getValue(),"角色",OrgTypeEnum.ORG_TYPE_ROLE.getValue(),OrgTypeEnum.ORG_TYPE_ROLE.getValue(),rootTree); |
| | | rootTreeList.add(roleTree); |
| | | }else{ |
| | | Tree userTree=initDataTreeNode(OrgTypeEnum.ORG_TYPE_USER.getValue(),"用户",OrgTypeEnum.ORG_TYPE_USER.getValue(),OrgTypeEnum.ORG_TYPE_USER.getValue(),rootTree); |
| | | rootTreeList.add(userTree); |
| | | Tree departmentTree=initDataTreeNode(OrgTypeEnum.ORG_TYPE_DEPT.getValue(),"部门",OrgTypeEnum.ORG_TYPE_DEPT.getValue(),OrgTypeEnum.ORG_TYPE_DEPT.getValue(),rootTree); |
| | | rootTreeList.add(departmentTree); |
| | | Tree roleTree=initDataTreeNode(OrgTypeEnum.ORG_TYPE_ROLE.getValue(),"角色",OrgTypeEnum.ORG_TYPE_ROLE.getValue(),OrgTypeEnum.ORG_TYPE_ROLE.getValue(),rootTree); |
| | | rootTreeList.add(roleTree); |
| | | } |
| | | }else if(OrgTypeEnum.ORG_TYPE_USER.getValue().equals(dataType)) {//如果传进来的是user节点 |
| | | if(OrgTypeEnum.ORG_TYPE_USER.getValue().equals(parentId)) { |
| | | Tree userTree = initDataTreeNode(OrgTypeEnum.ORG_TYPE_USER.getValue(), "用户", OrgTypeEnum.ORG_TYPE_USER.getValue(), OrgTypeEnum.ORG_TYPE_USER.getValue(), null); |
| | | UserInfo[] infos = platformClientUtil.getFrameworkService().fetchUserInfo(); |
| | | Arrays.stream(infos).forEach(info -> { |
| | | Tree childTree = initDataTreeNode(info.id, info.trueName + "(" + info.userName + ")", info, OrgTypeEnum.ORG_TYPE_USER.getValue(), userTree); |
| | | rootTreeList.add(childTree); |
| | | }); |
| | | } |
| | | }else if(OrgTypeEnum.ORG_TYPE_DEPT.getValue().equals(dataType)) {//如果是部门 |
| | | DeptInfo[] deptInfos=new DeptInfo[]{}; |
| | | Tree departmentTree=new Tree(); |
| | | if(OrgTypeEnum.ORG_TYPE_DEPT.getValue().equals(parentId)) { |
| | | departmentTree=initDataTreeNode(OrgTypeEnum.ORG_TYPE_DEPT.getValue(),"部门",OrgTypeEnum.ORG_TYPE_DEPT.getValue(),OrgTypeEnum.ORG_TYPE_DEPT.getValue(),null); |
| | | deptInfos = platformClientUtil.getFrameworkService().fetchDepartmentInfo(); |
| | | }else{ |
| | | deptInfos=platformClientUtil.getFrameworkService().fetchDepartmentInfoByParentId(parentId); |
| | | DeptInfo deptInfo=platformClientUtil.getFrameworkService().fetchDepartmentInfoById(parentId); |
| | | departmentTree=initDataTreeNode(deptInfo.id,deptInfo.name,deptInfo,OrgTypeEnum.ORG_TYPE_DEPT.getValue(),null); |
| | | } |
| | | if(!CollectionUtils.isEmpty(Arrays.asList(deptInfos))){ |
| | | Tree finalDepartmentTree = departmentTree; |
| | | Arrays.stream(deptInfos).forEach(deptInfo -> { |
| | | Tree childTree=initDataTreeNode(deptInfo.id,deptInfo.name,deptInfo,OrgTypeEnum.ORG_TYPE_DEPT.getValue(), finalDepartmentTree); |
| | | rootTreeList.add(childTree); |
| | | }); |
| | | } |
| | | if(!OrgTypeEnum.ORG_TYPE_DEPT.getValue().equals(parentId)) { |
| | | UserInfo[] infos = platformClientUtil.getFrameworkService().getUserByDeptId(parentId); |
| | | if (infos != null && infos.length > 0) { |
| | | Tree finalDepartmentTree = departmentTree; |
| | | Arrays.stream(infos).forEach(info -> { |
| | | Tree childTree = initDataTreeNode(info.id, info.trueName + "(" + info.userName + ")", info, OrgTypeEnum.ORG_TYPE_USER.getValue(), finalDepartmentTree); |
| | | rootTreeList.add(childTree); |
| | | }); |
| | | } |
| | | } |
| | | |
| | | }else if(OrgTypeEnum.ORG_TYPE_ROLE.getValue().equals(dataType)) {//如果是角色 |
| | | if(OrgTypeEnum.ORG_TYPE_ROLE.getValue().equals(parentId)){ |
| | | Tree roleTree=initDataTreeNode(OrgTypeEnum.ORG_TYPE_ROLE.getValue(),"角色",OrgTypeEnum.ORG_TYPE_ROLE.getValue(),OrgTypeEnum.ORG_TYPE_ROLE.getValue(),null); |
| | | RoleInfo[] roleInfos=platformClientUtil.getFrameworkService().fetchRoleInfo(); |
| | | if(roleInfos!=null&&roleInfos.length>0) { |
| | | Arrays.stream(roleInfos).forEach(info -> { |
| | | Tree childTree = initDataTreeNode(info.id, info.name, info, OrgTypeEnum.ORG_TYPE_ROLE.getValue(), roleTree); |
| | | rootTreeList.add(childTree); |
| | | }); |
| | | } |
| | | }else{ |
| | | RoleInfo roleInfo=platformClientUtil.getFrameworkService().fetchRoleInfoById(parentId); |
| | | Tree roleTree=initDataTreeNode(roleInfo.id,roleInfo.name,roleInfo,OrgTypeEnum.ORG_TYPE_ROLE.getValue(),null); |
| | | UserInfo[] infos=platformClientUtil.getFrameworkService().fetchUserInfoByRoleId(roleInfo.id,roleInfo.type); |
| | | if(infos!=null&&infos.length>0) { |
| | | Arrays.stream(infos).forEach(info -> { |
| | | Tree childTree = initDataTreeNode(info.id, info.trueName + "(" + info.userName + ")", info, OrgTypeEnum.ORG_TYPE_USER.getValue(), roleTree); |
| | | rootTreeList.add(childTree); |
| | | }); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | /*** |
| | | * |
| | | * @param oid |
| | | * @param text |
| | | * @param o |
| | | * @param type |
| | | * @param parentTree |
| | | * @return |
| | | */ |
| | | private Tree initDataTreeNode(String oid,String text,Object o,String type,Tree parentTree){ |
| | | Tree ObjectTreeNode=new Tree(oid,text,o); |
| | | ObjectTreeNode.setParentBtmName(type); |
| | | if(parentTree!=null) { |
| | | ObjectTreeNode.setParentId(parentTree.getParentId()); |
| | | ObjectTreeNode.setParentName(parentTree.getParentName()); |
| | | } |
| | | return ObjectTreeNode; |
| | | } |
| | | /** |
| | | * 校验密码是否相同,在新平台中存储的密码是两次md5 |
| | | * @param userOid 用户主键 |
| | | * @param md5Password 已经md5加密一次的密码--老的平台里不能加密 |