From 83dcb14325b953ecd9f01dbb8571a438e8becabe Mon Sep 17 00:00:00 2001 From: luyya Date: Thu, 16 Oct 2025 11:56:11 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=BF=E5=B7=9E=E5=A4=84=E7=90=86=E6=9C=BA?= =?UTF-8?q?=E6=9E=84=E5=B8=A6=E5=AD=97=E6=AF=8D=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/system/SysDeptController.java | 2 +- .../system/domain/vo/DeptTreeSelectVo.java | 2 +- .../dubbo/RemoteDataScopeServiceImpl.java | 19 ++++++++++++++++++- .../dromara/system/mapper/SysDeptMapper.java | 2 +- .../system/service/ISysDeptService.java | 2 +- .../service/impl/SysDeptServiceImpl.java | 2 +- .../resources/mapper/system/SysDeptMapper.xml | 2 +- 7 files changed, 24 insertions(+), 7 deletions(-) diff --git a/stwzhj-modules/wzhj-system/src/main/java/org/dromara/system/controller/system/SysDeptController.java b/stwzhj-modules/wzhj-system/src/main/java/org/dromara/system/controller/system/SysDeptController.java index ea35ac0c..caf53f15 100644 --- a/stwzhj-modules/wzhj-system/src/main/java/org/dromara/system/controller/system/SysDeptController.java +++ b/stwzhj-modules/wzhj-system/src/main/java/org/dromara/system/controller/system/SysDeptController.java @@ -59,7 +59,7 @@ public class SysDeptController extends BaseController { */ @SaCheckPermission("system:dept:list") @GetMapping("/list/exclude/{deptId}") - public R> excludeChild(@PathVariable(value = "deptId", required = false) Long deptId) { + public R> excludeChild(@PathVariable(value = "deptId", required = false) String deptId) { List depts = deptService.selectDeptList(new SysDeptBo()); depts.removeIf(d -> d.getDeptId().equals(deptId) || StringUtils.splitList(d.getAncestors()).contains(Convert.toStr(deptId))); diff --git a/stwzhj-modules/wzhj-system/src/main/java/org/dromara/system/domain/vo/DeptTreeSelectVo.java b/stwzhj-modules/wzhj-system/src/main/java/org/dromara/system/domain/vo/DeptTreeSelectVo.java index 7ab914e5..2307baef 100644 --- a/stwzhj-modules/wzhj-system/src/main/java/org/dromara/system/domain/vo/DeptTreeSelectVo.java +++ b/stwzhj-modules/wzhj-system/src/main/java/org/dromara/system/domain/vo/DeptTreeSelectVo.java @@ -21,7 +21,7 @@ public class DeptTreeSelectVo implements Serializable { /** * 选中部门列表 */ - private List checkedKeys; + private List checkedKeys; /** * 下拉树结构列表 diff --git a/stwzhj-modules/wzhj-system/src/main/java/org/dromara/system/dubbo/RemoteDataScopeServiceImpl.java b/stwzhj-modules/wzhj-system/src/main/java/org/dromara/system/dubbo/RemoteDataScopeServiceImpl.java index 0e05a51f..ee0ced48 100644 --- a/stwzhj-modules/wzhj-system/src/main/java/org/dromara/system/dubbo/RemoteDataScopeServiceImpl.java +++ b/stwzhj-modules/wzhj-system/src/main/java/org/dromara/system/dubbo/RemoteDataScopeServiceImpl.java @@ -16,6 +16,7 @@ import org.dromara.system.mapper.SysRoleDeptMapper; import org.springframework.stereotype.Service; import java.util.List; +import java.util.stream.Collectors; /** * 数据权限 实现 @@ -63,6 +64,22 @@ public class RemoteDataScopeServiceImpl implements RemoteDataScopeService { @Override public String getDeptAndChild(String deptId) { if (ObjectUtil.isNull(deptId)) { + return "'-1'"; + } + List deptList = deptMapper.selectList(new LambdaQueryWrapper() + .select(SysDept::getDeptId) + .apply(DataBaseHelper.findInSet(deptId, "ancestors"))); + List ids = StreamUtils.toList(deptList, SysDept::getDeptId); + ids.add(deptId); + + if (CollUtil.isNotEmpty(ids)) { + // 每个 ID 都加上单引号,并用逗号连接 + return ids.stream() + .map(id -> "'" + id.replace("'", "''") + "'") // 转义单引号 + .collect(Collectors.joining(",")); + } + return "'-1'"; + /*if (ObjectUtil.isNull(deptId)) { return "-1"; } List deptList = deptMapper.selectList(new LambdaQueryWrapper() @@ -73,7 +90,7 @@ public class RemoteDataScopeServiceImpl implements RemoteDataScopeService { if (CollUtil.isNotEmpty(ids)) { return StreamUtils.join(ids, Convert::toStr); } - return "-1"; + return "-1";*/ } } diff --git a/stwzhj-modules/wzhj-system/src/main/java/org/dromara/system/mapper/SysDeptMapper.java b/stwzhj-modules/wzhj-system/src/main/java/org/dromara/system/mapper/SysDeptMapper.java index addd6878..3b45167d 100644 --- a/stwzhj-modules/wzhj-system/src/main/java/org/dromara/system/mapper/SysDeptMapper.java +++ b/stwzhj-modules/wzhj-system/src/main/java/org/dromara/system/mapper/SysDeptMapper.java @@ -41,7 +41,7 @@ public interface SysDeptMapper extends BaseMapperPlus { * @param deptCheckStrictly 部门树选择项是否关联显示 * @return 选中部门列表 */ - List selectDeptListByRoleId(@Param("roleId") Long roleId, @Param("deptCheckStrictly") boolean deptCheckStrictly); + List selectDeptListByRoleId(@Param("roleId") Long roleId, @Param("deptCheckStrictly") boolean deptCheckStrictly); List deviceStatics(@Param("deviceType") String deviceType); diff --git a/stwzhj-modules/wzhj-system/src/main/java/org/dromara/system/service/ISysDeptService.java b/stwzhj-modules/wzhj-system/src/main/java/org/dromara/system/service/ISysDeptService.java index 254f73d6..a24b24ee 100644 --- a/stwzhj-modules/wzhj-system/src/main/java/org/dromara/system/service/ISysDeptService.java +++ b/stwzhj-modules/wzhj-system/src/main/java/org/dromara/system/service/ISysDeptService.java @@ -42,7 +42,7 @@ public interface ISysDeptService { * @param roleId 角色ID * @return 选中部门列表 */ - List selectDeptListByRoleId(Long roleId); + List selectDeptListByRoleId(Long roleId); /** * 根据部门ID查询信息 diff --git a/stwzhj-modules/wzhj-system/src/main/java/org/dromara/system/service/impl/SysDeptServiceImpl.java b/stwzhj-modules/wzhj-system/src/main/java/org/dromara/system/service/impl/SysDeptServiceImpl.java index 685eb862..bef5b255 100644 --- a/stwzhj-modules/wzhj-system/src/main/java/org/dromara/system/service/impl/SysDeptServiceImpl.java +++ b/stwzhj-modules/wzhj-system/src/main/java/org/dromara/system/service/impl/SysDeptServiceImpl.java @@ -116,7 +116,7 @@ public class SysDeptServiceImpl implements ISysDeptService { * @return 选中部门列表 */ @Override - public List selectDeptListByRoleId(Long roleId) { + public List selectDeptListByRoleId(Long roleId) { SysRole role = roleMapper.selectById(roleId); return baseMapper.selectDeptListByRoleId(roleId, role.getDeptCheckStrictly()); } diff --git a/stwzhj-modules/wzhj-system/src/main/resources/mapper/system/SysDeptMapper.xml b/stwzhj-modules/wzhj-system/src/main/resources/mapper/system/SysDeptMapper.xml index ffcc40ae..63973b81 100644 --- a/stwzhj-modules/wzhj-system/src/main/resources/mapper/system/SysDeptMapper.xml +++ b/stwzhj-modules/wzhj-system/src/main/resources/mapper/system/SysDeptMapper.xml @@ -22,7 +22,7 @@ select count(*) from sys_dept where del_flag = '0' and dept_id = #{deptId} - select d.dept_id from sys_dept d left join sys_role_dept rd on d.dept_id = rd.dept_id