Browse Source

查询部门层级关系

feature/dangjian
yujintao 6 years ago
parent
commit
0d0e62c129
  1. 50
      esua-epdc/epdc-admin/epdc-admin-client/src/main/java/com/elink/esua/epdc/dto/DeptLevelAndLeaderDTO.java
  2. 22
      esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/controller/SysDeptController.java
  3. 11
      esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/dao/SysDeptDao.java
  4. 11
      esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/SysDeptService.java
  5. 57
      esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/impl/SysDeptServiceImpl.java
  6. 15
      esua-epdc/epdc-admin/epdc-admin-server/src/main/resources/mapper/SysDeptDao.xml

50
esua-epdc/epdc-admin/epdc-admin-client/src/main/java/com/elink/esua/epdc/dto/DeptLevelAndLeaderDTO.java

@ -0,0 +1,50 @@
package com.elink.esua.epdc.dto;
import lombok.Data;
import java.io.Serializable;
/**
* 机构层级关系与机构负责人
*
* @author work@yujt.net.cn
* @date 2019/12/18 10:55
*/
@Data
public class DeptLevelAndLeaderDTO implements Serializable {
private static final long serialVersionUID = 8264059305193996215L;
/**
* 部门ID
*/
private Long deptId;
/**
* 部门名称
*/
private String deptName;
/**
* 父所有部门ID
*/
private String parentDeptIds;
/**
* 父所有部门
*/
private String parentDeptNames;
/**
* 所有部门ID
*/
private String allDeptIds;
/**
* 所有部门名称
*/
private String allDeptNames;
/**
* 部门负责人名称
*/
private String leaderName;
/**
* 部门负责人名称
*/
private String typeKey;
}

22
esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/controller/SysDeptController.java

@ -15,10 +15,7 @@ import com.elink.esua.epdc.commons.tools.validator.ValidatorUtils;
import com.elink.esua.epdc.commons.tools.validator.group.AddGroup;
import com.elink.esua.epdc.commons.tools.validator.group.DefaultGroup;
import com.elink.esua.epdc.commons.tools.validator.group.UpdateGroup;
import com.elink.esua.epdc.dto.CompleteDeptDTO;
import com.elink.esua.epdc.dto.ParentAndAllDeptDTO;
import com.elink.esua.epdc.dto.SysDeptDTO;
import com.elink.esua.epdc.dto.SysSimpleDeptDTO;
import com.elink.esua.epdc.dto.*;
import com.elink.esua.epdc.dto.epdc.form.UserSysDeptInfoFormDTO;
import com.elink.esua.epdc.dto.epdc.result.UserSysDeptInfoResultDTO;
import com.elink.esua.epdc.service.SysDeptService;
@ -228,4 +225,21 @@ public class SysDeptController {
@PathVariable("pageIndex") Integer pageIndex) {
return sysDeptService.pageDeptIdByTypeKey(typeKey, pageSize, pageIndex);
}
/**
* 根据部门id获取部门层级关系获取部门领导姓名
*
* @param deptId 部门id
* @param leaderFlag 是否需要查询网格长姓名 0 1
* @return com.elink.esua.epdc.commons.tools.utils.Result<com.elink.esua.epdc.dto.DeptLevelAndLeaderDTO>
* @author work@yujt.net.cn
* @date 2019/12/18 11:04
*/
@GetMapping("getDeptInfoById/{deptId}/{leaderFlag}")
public Result<DeptLevelAndLeaderDTO> getDeptInfoById(@PathVariable("deptId") Long deptId,
@PathVariable("leaderFlag") Integer leaderFlag) {
DeptLevelAndLeaderDTO dto = sysDeptService.getDeptInfoById(deptId, leaderFlag);
return new Result<DeptLevelAndLeaderDTO>().ok(dto);
}
}

11
esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/dao/SysDeptDao.java

@ -161,4 +161,15 @@ public interface SysDeptDao extends BaseDao<SysDeptEntity> {
List<Long> pageDeptIdByTypeKey(@Param("typeKey") String typeKey,
@Param("pageSize") Integer pageSize,
@Param("pageIndex") Integer pageIndex);
/**
* 根据部门id查询该部门指定角色的用户姓名
*
* @param deptId 部门id
* @param roleType 角色类型
* @return java.lang.String
* @author work@yujt.net.cn
* @date 2019/12/18 13:45
*/
String selectDeptLeaderName(@Param("deptId") Long deptId, @Param("roleType") String roleType);
}

11
esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/SysDeptService.java

@ -191,4 +191,15 @@ public interface SysDeptService extends BaseService<SysDeptEntity> {
* @date 2019/12/17 16:05
*/
Result<List<Long>> pageDeptIdByTypeKey(String typeKey, Integer pageSize, Integer pageIndex);
/**
* 根据部门id获取部门层级关系获取部门领导姓名
*
* @param deptId 部门id
* @param leaderFlag 是否需要查询网格长姓名 0 1
* @return com.elink.esua.epdc.dto.DeptLevelAndLeaderDTO
* @author work@yujt.net.cn
* @date 2019/12/18 11:05
*/
DeptLevelAndLeaderDTO getDeptInfoById(Long deptId, Integer leaderFlag);
}

57
esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/impl/SysDeptServiceImpl.java

@ -13,11 +13,9 @@ import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.elink.esua.epdc.commons.mybatis.service.impl.BaseServiceImpl;
import com.elink.esua.epdc.commons.tools.constant.Constant;
import com.elink.esua.epdc.commons.tools.constant.FieldConstant;
import com.elink.esua.epdc.commons.tools.constant.NumConstant;
import com.elink.esua.epdc.commons.tools.constant.OrganizationTypeConstant;
import com.elink.esua.epdc.commons.tools.constant.*;
import com.elink.esua.epdc.commons.tools.enums.SuperAdminEnum;
import com.elink.esua.epdc.commons.tools.enums.YesOrNoEnum;
import com.elink.esua.epdc.commons.tools.exception.ErrorCode;
import com.elink.esua.epdc.commons.tools.exception.RenException;
import com.elink.esua.epdc.commons.tools.redis.RedisKeys;
@ -28,6 +26,7 @@ import com.elink.esua.epdc.commons.tools.security.user.UserDetail;
import com.elink.esua.epdc.commons.tools.utils.ConvertUtils;
import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.commons.tools.utils.TreeUtils;
import com.elink.esua.epdc.constant.TypeKeyConstant;
import com.elink.esua.epdc.dao.SysDeptDao;
import com.elink.esua.epdc.dto.*;
import com.elink.esua.epdc.dto.epdc.GridForLeaderRegisterDTO;
@ -522,4 +521,54 @@ public class SysDeptServiceImpl extends BaseServiceImpl<SysDeptDao, SysDeptEntit
List<Long> deptIdList = baseDao.pageDeptIdByTypeKey(typeKey, pageSize, pageIndex);
return new Result().ok(deptIdList);
}
@Override
public DeptLevelAndLeaderDTO getDeptInfoById(Long deptId, Integer leaderFlag) {
if (null == deptId || null == leaderFlag) {
return null;
}
SysDeptEntity sysDeptEntity = baseDao.selectById(deptId);
if (null == sysDeptEntity) {
return null;
}
String deptName = sysDeptEntity.getName();
String pids = sysDeptEntity.getPids();
// 上级机构id
String parentDeptIds = NumConstant.ZERO_STR.equals(pids) ? "" : pids;
// 全部机构id
String allDeptIds = StringUtils.isBlank(pids) ? String.valueOf(deptId) :
pids.concat(StrConstant.COMMA).concat(String.valueOf(deptId));
// 上级机构名称
String parentDeptNames = "";
if (StringUtils.isNotBlank(parentDeptIds)) {
String[] pidArray = parentDeptIds.split(StrConstant.COMMA);
List<String> deptNameList = Lists.newArrayList();
SysDeptEntity dept;
for (int i = 0; i < pidArray.length; i++) {
dept = baseDao.selectById(Long.parseLong(pidArray[i]));
deptNameList.add(dept.getName());
}
parentDeptNames = StringUtils.join(deptNameList, StrConstant.HYPHEN);
}
// 全部机构名称
String allDeptNames = StringUtils.isBlank(parentDeptNames) ? deptName :
parentDeptNames.concat(StrConstant.HYPHEN).concat(deptName);
DeptLevelAndLeaderDTO deptLevel = new DeptLevelAndLeaderDTO();
deptLevel.setDeptId(deptId);
deptLevel.setDeptName(deptName);
deptLevel.setParentDeptIds(parentDeptIds);
deptLevel.setParentDeptNames(parentDeptNames);
deptLevel.setAllDeptIds(allDeptIds);
deptLevel.setAllDeptNames(allDeptNames);
deptLevel.setTypeKey(sysDeptEntity.getTypeKey());
if (YesOrNoEnum.YES.value().equals(leaderFlag)) {
String leaderName = baseDao.selectDeptLeaderName(deptId, TypeKeyConstant.ROLE_GRID_LEADER);
deptLevel.setLeaderName(leaderName);
}
return deptLevel;
}
}

15
esua-epdc/epdc-admin/epdc-admin-server/src/main/resources/mapper/SysDeptDao.xml

@ -210,4 +210,19 @@
ORDER BY d.create_date ASC
LIMIT #{pageIndex},#{pageSize}
</select>
<select id="selectDeptLeaderName" resultType="java.lang.String">
SELECT
GROUP_CONCAT( u.real_name ) gridLeader
FROM
sys_dept d
LEFT JOIN sys_role_data_scope rds ON rds.dept_id = d.id
LEFT JOIN sys_role r ON rds.role_id = r.id
LEFT JOIN sys_role_user ru ON ru.role_id = r.id
LEFT JOIN sys_user u ON u.id = ru.user_id
WHERE
r.type_key = #{roleType} AND d.id = #{deptId} AND u.id != ''
GROUP BY d.id
</select>
</mapper>

Loading…
Cancel
Save