fix:存放位置数据权限调整
This commit is contained in:
@@ -25,5 +25,5 @@ public interface QmsPermissionConstant {
|
|||||||
|
|
||||||
String DEVICE_MANAGER = "qms_device_manager"; //设备管理员
|
String DEVICE_MANAGER = "qms_device_manager"; //设备管理员
|
||||||
|
|
||||||
public static final String ADMIN_ROLE = "ytjyAdmin"; // 超级管理员 标识
|
String ADMIN_ROLE = "ytjyAdmin"; // 超级管理员 标识
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -61,6 +61,9 @@ public class ConfigWarehouseLocationPageReqVO extends PageParam {
|
|||||||
@Schema(description = "查询时进行权限过滤")
|
@Schema(description = "查询时进行权限过滤")
|
||||||
private String permissionFilterFlag;
|
private String permissionFilterFlag;
|
||||||
|
|
||||||
|
@Schema(description = "是否为管理员-可查看全部数据")
|
||||||
|
private Boolean adminFlag;
|
||||||
|
|
||||||
@Schema(description = "查询用-权限角色")
|
@Schema(description = "查询用-权限角色")
|
||||||
private Set<Long> roleIds;
|
private Set<Long> roleIds;
|
||||||
|
|
||||||
|
|||||||
@@ -16,6 +16,7 @@ import org.apache.ibatis.annotations.Mapper;
|
|||||||
import org.apache.ibatis.annotations.Param;
|
import org.apache.ibatis.annotations.Param;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 存放位置 Mapper
|
* 存放位置 Mapper
|
||||||
@@ -29,9 +30,7 @@ public interface ConfigWarehouseLocationMapper extends BaseMapperX<ConfigWarehou
|
|||||||
|
|
||||||
MPJLambdaWrapperX<ConfigWarehouseLocationDO> wrapper = new MPJLambdaWrapperX<>();
|
MPJLambdaWrapperX<ConfigWarehouseLocationDO> wrapper = new MPJLambdaWrapperX<>();
|
||||||
//仓库
|
//仓库
|
||||||
wrapper.leftJoin(ConfigWarehouseLocationParDO.class, ConfigWarehouseLocationParDO::getId, ConfigWarehouseLocationDO::getParentId)
|
wrapper.leftJoin(ConfigWarehouseLocationParDO.class, ConfigWarehouseLocationParDO::getId, ConfigWarehouseLocationDO::getParentId);
|
||||||
// 权限
|
|
||||||
.leftJoin(ConfigPermissionDO.class, ConfigPermissionDO::getSourceId, ConfigWarehouseLocationDO::getId);
|
|
||||||
wrapper.selectAll(ConfigWarehouseLocationDO.class)
|
wrapper.selectAll(ConfigWarehouseLocationDO.class)
|
||||||
.selectAs(ConfigWarehouseLocationParDO::getName, ConfigWarehouseLocationRespVO::getWarehouseName)
|
.selectAs(ConfigWarehouseLocationParDO::getName, ConfigWarehouseLocationRespVO::getWarehouseName)
|
||||||
.selectAs(ConfigWarehouseLocationParDO::getCode, ConfigWarehouseLocationRespVO::getWarehouseCode)
|
.selectAs(ConfigWarehouseLocationParDO::getCode, ConfigWarehouseLocationRespVO::getWarehouseCode)
|
||||||
@@ -48,12 +47,19 @@ public interface ConfigWarehouseLocationMapper extends BaseMapperX<ConfigWarehou
|
|||||||
.eqIfPresent(ConfigWarehouseLocationDO::getSystemDepartmentCode, reqVO.getSystemDepartmentCode())
|
.eqIfPresent(ConfigWarehouseLocationDO::getSystemDepartmentCode, reqVO.getSystemDepartmentCode())
|
||||||
.betweenIfPresent(ConfigWarehouseLocationDO::getCreateTime, reqVO.getCreateTime())
|
.betweenIfPresent(ConfigWarehouseLocationDO::getCreateTime, reqVO.getCreateTime())
|
||||||
.eqIfPresent(ConfigWarehouseLocationDO::getRemark, reqVO.getRemark())
|
.eqIfPresent(ConfigWarehouseLocationDO::getRemark, reqVO.getRemark())
|
||||||
// 角色权限
|
;
|
||||||
.and(CollUtil.isNotEmpty(reqVO.getRoleIds()), wrapper1 ->
|
Boolean adminFlag = reqVO.getAdminFlag();
|
||||||
wrapper1.in(ConfigPermissionDO::getTargetId, reqVO.getRoleIds())
|
// 角色权限 - 使用 exists 子查询
|
||||||
.or()
|
if (adminFlag == null || !adminFlag && CollUtil.isNotEmpty(reqVO.getRoleIds())) {
|
||||||
.eqIfExists(ConfigWarehouseLocationDO::getCreator, SecurityFrameworkUtils.getLoginUserId()))
|
String roleIdsStr = reqVO.getRoleIds().stream()
|
||||||
.orderByDesc(ConfigWarehouseLocationDO::getSortNo);
|
.map(String::valueOf)
|
||||||
|
.collect(Collectors.joining(","));
|
||||||
|
wrapper.and(wrapper1 ->
|
||||||
|
wrapper1.exists("SELECT 1 FROM t_cfg_perm WHERE t_cfg_perm.SRC_ID = t.ID AND t_cfg_perm.deleted = 0 AND t_cfg_perm.TGT_ID IN (" + roleIdsStr + ")")
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
wrapper.orderByDesc(ConfigWarehouseLocationDO::getSortNo);
|
||||||
|
|
||||||
return selectJoinPage(reqVO, ConfigWarehouseLocationRespVO.class, wrapper);
|
return selectJoinPage(reqVO, ConfigWarehouseLocationRespVO.class, wrapper);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ package com.zt.plat.module.qms.business.config.service;
|
|||||||
import cn.hutool.core.collection.CollUtil;
|
import cn.hutool.core.collection.CollUtil;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||||
|
import com.zt.plat.framework.common.biz.system.permission.PermissionCommonApi;
|
||||||
import com.zt.plat.framework.common.pojo.CommonResult;
|
import com.zt.plat.framework.common.pojo.CommonResult;
|
||||||
import com.zt.plat.framework.security.core.util.SecurityFrameworkUtils;
|
import com.zt.plat.framework.security.core.util.SecurityFrameworkUtils;
|
||||||
import com.zt.plat.module.qms.business.config.controller.vo.ConfigPermissionSaveReqVO;
|
import com.zt.plat.module.qms.business.config.controller.vo.ConfigPermissionSaveReqVO;
|
||||||
@@ -12,6 +13,7 @@ import com.zt.plat.module.qms.business.config.controller.vo.ConfigWarehouseLocat
|
|||||||
import com.zt.plat.module.qms.enums.QmsPermissionConstant;
|
import com.zt.plat.module.qms.enums.QmsPermissionConstant;
|
||||||
import com.zt.plat.module.qms.enums.QmsWarehouseLocationConstant;
|
import com.zt.plat.module.qms.enums.QmsWarehouseLocationConstant;
|
||||||
import com.zt.plat.module.system.api.permission.PermissionApi;
|
import com.zt.plat.module.system.api.permission.PermissionApi;
|
||||||
|
import com.zt.plat.module.system.api.permission.RoleApi;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import jakarta.annotation.Resource;
|
import jakarta.annotation.Resource;
|
||||||
@@ -45,6 +47,8 @@ public class ConfigWarehouseLocationServiceImpl implements ConfigWarehouseLocati
|
|||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private PermissionApi permissionApi;
|
private PermissionApi permissionApi;
|
||||||
|
@Autowired
|
||||||
|
private PermissionCommonApi permissionCommonApi;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ConfigWarehouseLocationRespVO save(ConfigWarehouseLocationSaveReqVO reqVo) {
|
public ConfigWarehouseLocationRespVO save(ConfigWarehouseLocationSaveReqVO reqVo) {
|
||||||
@@ -182,6 +186,8 @@ public class ConfigWarehouseLocationServiceImpl implements ConfigWarehouseLocati
|
|||||||
// 获取当前用户角色
|
// 获取当前用户角色
|
||||||
CommonResult<Set<Long>> userRoleIds = permissionApi.getUserRoleIdListByUserId(SecurityFrameworkUtils.getLoginUserId());
|
CommonResult<Set<Long>> userRoleIds = permissionApi.getUserRoleIdListByUserId(SecurityFrameworkUtils.getLoginUserId());
|
||||||
pageReqVO.setRoleIds(userRoleIds.getData());
|
pageReqVO.setRoleIds(userRoleIds.getData());
|
||||||
|
CommonResult<Boolean> hasAnyRoles = permissionCommonApi.hasAnyRoles(SecurityFrameworkUtils.getLoginUserId(), QmsPermissionConstant.ADMIN_ROLE);
|
||||||
|
pageReqVO.setAdminFlag(hasAnyRoles.getData());
|
||||||
return configWarehouseLocationMapper.selectPage(pageReqVO);
|
return configWarehouseLocationMapper.selectPage(pageReqVO);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user