人事管理修改厂区权限

master
sunjianxi 2 years ago
parent e77ca79c52
commit 022859d4b7
  1. 16
      lab-service/lab-system/src/main/java/org/springblade/system/controller/DeptController.java
  2. 24
      lab-service/lab-system/src/main/java/org/springblade/system/controller/RoleController.java
  3. 16
      lab-service/lab-system/src/main/java/org/springblade/system/mapper/DeptMapper.java
  4. 39
      lab-service/lab-system/src/main/java/org/springblade/system/mapper/DeptMapper.xml
  5. 9
      lab-service/lab-system/src/main/java/org/springblade/system/mapper/RoleMapper.java
  6. 13
      lab-service/lab-system/src/main/java/org/springblade/system/mapper/RoleMapper.xml
  7. 16
      lab-service/lab-system/src/main/java/org/springblade/system/service/IDeptService.java
  8. 9
      lab-service/lab-system/src/main/java/org/springblade/system/service/IRoleService.java
  9. 16
      lab-service/lab-system/src/main/java/org/springblade/system/service/impl/DeptServiceImpl.java
  10. 9
      lab-service/lab-system/src/main/java/org/springblade/system/service/impl/RoleServiceImpl.java
  11. 7
      lab-service/lab-user/src/main/java/org/springblade/system/user/service/impl/UserServiceImpl.java

@ -112,7 +112,13 @@ public class DeptController extends BladeController {
@ApiOperationSupport(order = 4)
@ApiOperation(value = "树形结构", notes = "树形结构")
public R<List<DeptVO>> tree(String tenantId, BladeUser bladeUser) {
List<DeptVO> tree = deptService.tree(Func.toStrWithEmpty(tenantId, bladeUser.getTenantId()));
List<DeptVO> tree = new ArrayList<>();
if(bladeUser.getRoleName().equals("厂区")){
Long deptId = Long.parseLong(bladeUser.getDeptId());
tree = deptService.companyTree(Func.toStrWithEmpty(tenantId, bladeUser.getTenantId()), deptId);
}else{
tree = deptService.tree(Func.toStrWithEmpty(tenantId, bladeUser.getTenantId()));
}
return R.data(tree);
}
@ -123,7 +129,13 @@ public class DeptController extends BladeController {
@ApiOperationSupport(order = 5)
@ApiOperation(value = "懒加载树形结构", notes = "树形结构")
public R<List<DeptVO>> lazyTree(String tenantId, Long parentId, BladeUser bladeUser) {
List<DeptVO> tree = deptService.lazyTree(Func.toStrWithEmpty(tenantId, bladeUser.getTenantId()), parentId);
List<DeptVO> tree = new ArrayList<>();
if(bladeUser.getRoleName().equals("厂区")&&parentId==0){
Long deptId = Long.parseLong(bladeUser.getDeptId());
tree = deptService.lazyCompanyTree(Func.toStrWithEmpty(tenantId, bladeUser.getTenantId()), deptId);
}else{
tree = deptService.lazyTree(Func.toStrWithEmpty(tenantId, bladeUser.getTenantId()), parentId);
}
return R.data(tree);
}

@ -9,11 +9,9 @@ import org.springblade.core.boot.ctrl.BladeController;
import org.springblade.core.cache.utils.CacheUtil;
import org.springblade.core.mp.support.Condition;
import org.springblade.core.secure.BladeUser;
import org.springblade.core.secure.annotation.PreAuth;
import org.springblade.core.tenant.annotation.NonDS;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.constant.BladeConstant;
import org.springblade.core.tool.constant.RoleConstant;
import org.springblade.core.tool.utils.Func;
import org.springblade.system.cache.SysCache;
import org.springblade.system.entity.Role;
@ -25,6 +23,7 @@ import org.springframework.web.bind.annotation.*;
import springfox.documentation.annotations.ApiIgnore;
import javax.validation.Valid;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
@ -69,6 +68,13 @@ public class RoleController extends BladeController {
public R<List<RoleVO>> list(@ApiIgnore @RequestParam Map<String, Object> role, BladeUser bladeUser) {
QueryWrapper<Role> queryWrapper = Condition.getQueryWrapper(role, Role.class);
List<Role> list = roleService.list((!bladeUser.getTenantId().equals(BladeConstant.ADMIN_TENANT_ID)) ? queryWrapper.lambda().eq(Role::getTenantId, bladeUser.getTenantId()) : queryWrapper);
if(bladeUser.getRoleName().equals("厂区")){
List<String> excludes = new ArrayList<>();
excludes.add("admin");
excludes.add("政府");
excludes.add("政府大屏");
list.removeIf(role1 -> excludes.contains(role1.getRoleAlias()));
}
return R.data(RoleWrapper.build().listNodeVO(list));
}
@ -79,7 +85,12 @@ public class RoleController extends BladeController {
@ApiOperationSupport(order = 3)
@ApiOperation(value = "树形结构", notes = "树形结构")
public R<List<RoleVO>> tree(String tenantId, BladeUser bladeUser) {
List<RoleVO> tree = roleService.tree(Func.toStrWithEmpty(tenantId, bladeUser.getTenantId()));
List<RoleVO> tree = new ArrayList<>();
if(bladeUser.getRoleName().equals("厂区")){
tree = roleService.companyTree(Func.toStrWithEmpty(tenantId, bladeUser.getTenantId()));
}else{
tree = roleService.tree(Func.toStrWithEmpty(tenantId, bladeUser.getTenantId()));
}
return R.data(tree);
}
@ -91,7 +102,12 @@ public class RoleController extends BladeController {
@ApiOperation(value = "树形结构", notes = "树形结构")
public R<List<RoleVO>> treeById(Long roleId, BladeUser bladeUser) {
Role role = SysCache.getRole(roleId);
List<RoleVO> tree = roleService.tree(Func.notNull(role) ? role.getTenantId() : bladeUser.getTenantId());
List<RoleVO> tree = new ArrayList<>();
if(bladeUser.getRoleName().equals("厂区")){
tree = roleService.companyTree(Func.notNull(role) ? role.getTenantId() : bladeUser.getTenantId());
}else{
tree = roleService.tree(Func.notNull(role) ? role.getTenantId() : bladeUser.getTenantId());
}
return R.data(tree);
}

@ -33,6 +33,14 @@ public interface DeptMapper extends BaseMapper<Dept> {
*/
List<DeptVO> tree(String tenantId);
/**
* 获取厂区树形节点
*
* @param tenantId
* @return
*/
List<DeptVO> companyTree(String tenantId,Long deptId);
/**
* 懒加载获取树形节点
*
@ -42,6 +50,14 @@ public interface DeptMapper extends BaseMapper<Dept> {
*/
List<DeptVO> lazyTree(String tenantId, Long parentId);
/**
* 懒加载获取树形节点
*
* @param tenantId
* @return
*/
List<DeptVO> lazyCompanyTree(String tenantId, Long deptId);
/**
* 获取部门名
*

@ -74,6 +74,17 @@
ORDER BY sort
</select>
<select id="companyTree" resultMap="treeNodeResultMap">
select id, parent_id, dept_name as title, id as "value", id as "key" from blade_dept where is_deleted = 0
<if test="tenantId!=null and tenantId!=''">
and tenant_id = #{tenantId}
</if>
<if test="deptId!=null">
and (id = #{deptId} or (parent_id = #{deptId}))
</if>
ORDER BY sort
</select>
<select id="lazyTree" resultMap="treeNodeResultMap" >
SELECT
dept.id,
@ -99,6 +110,34 @@
ORDER BY dept.sort
</select>
<select id="lazyCompanyTree" resultMap="treeNodeResultMap" >
SELECT
dept.id,
dept.parent_id,
dept.dept_name AS title,
dept.id AS "value",
dept.id AS "key",
(
SELECT
CASE WHEN count(1) > 0 THEN 1 ELSE 0 END
FROM
blade_dept
WHERE
parent_id = dept.id and is_deleted = 0
) AS "has_children"
FROM
blade_dept dept
WHERE
dept.is_deleted = 0
<if test="param1!=null and param1!=''">
and dept.tenant_id = #{param1}
</if>
<if test="param2!=null">
and dept.id = #{param2}
</if>
ORDER BY dept.sort
</select>
<select id="getDeptNames" resultType="java.lang.String">
SELECT
dept_name

@ -33,6 +33,15 @@ public interface RoleMapper extends BaseMapper<Role> {
*/
List<RoleVO> tree(String tenantId, String excludeRole);
/**
* 获取厂区树形节点
*
* @param tenantId
* @param roleList
* @return
*/
List<RoleVO> companyTree(String tenantId, List<String> roleList);
/**
* 获取角色名
*

@ -34,6 +34,19 @@
</if>
</select>
<select id="companyTree" resultMap="treeNodeResultMap">
select id, parent_id, role_name as title, id as "value", id as "key" from blade_role where is_deleted = 0
<if test="tenantId!=null">
and tenant_id = #{param1}
</if>
<if test="roleList!=null">
and role_alias not in
<foreach collection="roleList" item="roleAlias" index="index" open="(" close=")" separator=",">
#{roleAlias}
</foreach>
</if>
</select>
<select id="getRoleNames" resultType="java.lang.String">
SELECT
role_name

@ -33,6 +33,14 @@ public interface IDeptService extends IService<Dept> {
*/
List<DeptVO> tree(String tenantId);
/**
* 厂区树形结构
*
* @param tenantId
* @return
*/
List<DeptVO> companyTree(String tenantId,Long deptId);
/**
* 懒加载树形结构
*
@ -42,6 +50,14 @@ public interface IDeptService extends IService<Dept> {
*/
List<DeptVO> lazyTree(String tenantId, Long parentId);
/**
* 懒加载树形结构
*
* @param tenantId
* @return
*/
List<DeptVO> lazyCompanyTree(String tenantId, Long deptId);
/**
* 获取部门ID
*

@ -3,7 +3,6 @@ package org.springblade.system.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import org.springblade.core.tool.api.R;
import org.springblade.system.entity.Role;
import org.springblade.system.vo.RoleVO;
@ -34,6 +33,14 @@ public interface IRoleService extends IService<Role> {
*/
List<RoleVO> tree(String tenantId);
/**
* 树形结构
*
* @param tenantId
* @return
*/
List<RoleVO> companyTree(String tenantId);
/**
* 权限配置
*

@ -54,6 +54,9 @@ public class DeptServiceImpl extends ServiceImpl<DeptMapper, Dept> implements ID
if (dept.getParentId() != 0) {
parentId = dept.getParentId();
}
if(AuthUtil.getUser().getRoleName().equals("厂区")){
parentId = dept.getId();
}
}
// 判断点击搜索带有查询条件的情况
if (Func.isEmpty(param.get(PARENT_ID)) && param.size() > 1 && Func.toLong(parentId) == 0L) {
@ -69,6 +72,11 @@ public class DeptServiceImpl extends ServiceImpl<DeptMapper, Dept> implements ID
return ForestNodeMerger.merge(baseMapper.tree(tenantId));
}
@Override
public List<DeptVO> companyTree(String tenantId,Long deptId) {
return ForestNodeMerger.merge(baseMapper.companyTree(tenantId,deptId));
}
@Override
public List<DeptVO> lazyTree(String tenantId, Long parentId) {
if (AuthUtil.isAdministrator()) {
@ -77,6 +85,14 @@ public class DeptServiceImpl extends ServiceImpl<DeptMapper, Dept> implements ID
return ForestNodeMerger.merge(baseMapper.lazyTree(tenantId, parentId));
}
@Override
public List<DeptVO> lazyCompanyTree(String tenantId, Long deptId) {
if (AuthUtil.isAdministrator()) {
tenantId = StringPool.EMPTY;
}
return ForestNodeMerger.merge(baseMapper.lazyCompanyTree(tenantId, deptId));
}
@Override
public String getDeptIds(String tenantId, String deptNames) {
List<Dept> deptList = baseMapper.selectList(Wrappers.<Dept>query().lambda().eq(Dept::getTenantId, tenantId).in(Dept::getDeptName, Func.toStrList(deptNames)));

@ -63,6 +63,15 @@ public class RoleServiceImpl extends ServiceImpl<RoleMapper, Role> implements IR
return ForestNodeMerger.merge(baseMapper.tree(tenantId, excludeRole));
}
@Override
public List<RoleVO> companyTree(String tenantId) {
List<String> roleList = new ArrayList<>();
roleList.add("admin");
roleList.add("政府");
roleList.add("政府大屏");
return ForestNodeMerger.merge(baseMapper.companyTree(tenantId,roleList));
}
@Override
@Transactional(rollbackFor = Exception.class)
public boolean grant(@NotEmpty List<Long> roleIds, List<Long> menuIds, List<Long> dataScopeIds, List<Long> apiScopeIds) {

@ -25,7 +25,6 @@ import org.springblade.system.cache.DictCache;
import org.springblade.system.cache.ParamCache;
import org.springblade.system.cache.SysCache;
import org.springblade.system.entity.Dept;
import org.springblade.system.entity.Role;
import org.springblade.system.entity.Tenant;
import org.springblade.system.enums.DictEnum;
import org.springblade.system.feign.ISysClient;
@ -41,7 +40,6 @@ import org.springblade.system.user.vo.UserVO;
import org.springblade.system.user.wrapper.UserWrapper;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.Base64Utils;
import java.io.*;
import java.util.*;
@ -199,6 +197,10 @@ public class UserServiceImpl extends BaseServiceImpl<UserMapper, User> implement
public IPage<User> selectUserPage(IPage<User> page, User user, Long deptId, String tenantId) {
String roleIdsTemp = AuthUtil.getUser().getRoleId();
String[] roleIds = roleIdsTemp.split(",");
List<String> roles = Arrays.asList(AuthUtil.getUserRole().split(","));
if(!roles.contains("admin") && !roles.contains("政府")&&deptId==null){
deptId = Long.parseLong(AuthUtil.getDeptId());
}
List<Long> deptIdList = SysCache.getDeptChildIds(deptId);
List<Long> userIds = new ArrayList<>();
for (String myRoleId : roleIds) {
@ -213,6 +215,7 @@ public class UserServiceImpl extends BaseServiceImpl<UserMapper, User> implement
userIds.addAll(collect);
}
}
return page.setRecords(baseMapper.selectUserPage(page, user, deptIdList, tenantId, userIds));
}

Loading…
Cancel
Save