flowable/src/main/java/com/ycl/service/common/TaskCommonService.java
@@ -11,6 +11,7 @@ import com.ycl.domain.vo.FormDetailVO; import com.ycl.flow.FindNextNodeUtil; import com.ycl.service.ISysFormService; import com.ycl.system.service.ISysDeptService; import com.ycl.system.service.ISysDictDataService; import com.ycl.system.service.ISysDictTypeService; import com.ycl.system.service.ISysUserService; @@ -47,6 +48,7 @@ private final TaskService taskService; private final HistoryService historyService; private final ISysUserService sysUserService; private final ISysDeptService deptService; private final ISysDictTypeService sysDictDService; /** @@ -321,14 +323,17 @@ * @return */ public List<String> getCurrentUserGroups() { String deptId = "dept:" + SecurityUtils.getLoginUser().getDeptId(); List<String> roleIds; if (CollectionUtils.isEmpty(SecurityUtils.getLoginUser().getUser().getRoles())) { roleIds = new ArrayList<>(1); } else { roleIds = SecurityUtils.getLoginUser().getUser().getRoles().stream().map(role -> role.getRoleId() + "").collect(Collectors.toList()); } roleIds.add(deptId); if (Objects.nonNull(SecurityUtils.getLoginUser().getDeptId())) { List<Long> deptIds = deptService.getChildIds(SecurityUtils.getLoginUser().getDeptId()); List<String> deptIdList = deptIds.stream().map(id -> "dept:" + id).collect(Collectors.toList()); roleIds.addAll(deptIdList); } return roleIds; } start/src/main/java/com/ycl/web/controller/system/SysDeptController.java
@@ -154,4 +154,5 @@ dept.setParentId(approvalPortId); return Result.ok().data(deptService.selectDeptListNoAuth(dept)); } } start/src/main/java/com/ycl/web/controller/system/SysLoginController.java
@@ -1,8 +1,10 @@ package com.ycl.web.controller.system; import java.util.List; import java.util.Objects; import java.util.Set; import com.ycl.system.service.ISysDeptService; import lombok.RequiredArgsConstructor; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; @@ -33,6 +35,8 @@ private final ISysMenuService menuService; private final SysPermissionService permissionService; private final ISysDeptService deptService; /** * 登录方法 @@ -66,6 +70,11 @@ ajax.put("user", user); ajax.put("roles", roles); ajax.put("permissions", permissions); // 获取当前登陆人的当前部门及下级所有部门 if (Objects.nonNull(user.getDept())) { List<Long> deptIds = deptService.getChildIds(user.getDept().getDeptId()); ajax.put("childDeptList", deptIds); } return ajax; } system/src/main/java/com/ycl/system/mapper/SysDeptMapper.java
@@ -124,4 +124,11 @@ Long selectByName(@Param("name") String projectOwnerUnit); /** * 获取某部门的子部门 * @param deptId * @return */ List<Long> getChildIds(@Param("deptId") Long deptId); } system/src/main/java/com/ycl/system/service/ISysDeptService.java
@@ -160,4 +160,12 @@ * @return */ List<StringTreeSelect> flowableAll(); /** * 获取某部门的下级部门 * * @param deptId * @return */ List<Long> getChildIds(Long deptId); } system/src/main/java/com/ycl/system/service/impl/SysDeptServiceImpl.java
@@ -427,4 +427,8 @@ } @Override public List<Long> getChildIds(Long deptId) { return deptMapper.getChildIds(deptId); } } system/src/main/resources/mapper/system/SysDeptMapper.xml
@@ -116,6 +116,20 @@ SELECT dept_id FROM sys_dept WHERE dept_name = #{name} and del_flag = '0' limit 1 </select> <select id="getChildIds" parameterType="long" resultType="long"> WITH RECURSIVE temp_table AS ( SELECT dept_id FROM sys_dept WHERE dept_id = #{deptId} AND del_flag = '0' UNION ALL SELECT so.dept_id FROM sys_dept so INNER JOIN temp_table tb ON so.parent_id = tb.dept_id AND so.del_flag = '0' ) SELECT dept_id FROM temp_table </select> <insert id="insertDept" parameterType="SysDept"> insert into sys_dept( <if test="deptId != null and deptId != 0">dept_id,</if>