From d2d8db6a6f66f3b646e395a7a2a4822ce68d5b47 Mon Sep 17 00:00:00 2001 From: zhanghl <253316343@qq.com> Date: 星期二, 22 四月 2025 15:08:25 +0800 Subject: [PATCH] 角色-部门表增加 部门组织编码 --- aps-modules/aps-system/src/main/java/com/aps/system/mapper/SysDeptMapper.java | 2 + aps-modules/aps-system/src/main/java/com/aps/system/service/impl/SysRoleServiceImpl.java | 34 ++++++++++------- aps-common/aps-common-datascope/src/main/java/com/aps/common/datascope/aspect/DataScopeAspect.java | 8 ++-- aps-modules/aps-system/src/main/java/com/aps/system/domain/SysRoleDept.java | 13 ++++++ aps-modules/aps-system/src/main/resources/mapper/system/SysDeptMapper.xml | 8 ++++ aps-modules/aps-system/src/main/resources/mapper/system/SysRoleDeptMapper.xml | 4 +- 6 files changed, 49 insertions(+), 20 deletions(-) diff --git a/aps-common/aps-common-datascope/src/main/java/com/aps/common/datascope/aspect/DataScopeAspect.java b/aps-common/aps-common-datascope/src/main/java/com/aps/common/datascope/aspect/DataScopeAspect.java index 4d31f2d..b449065 100644 --- a/aps-common/aps-common-datascope/src/main/java/com/aps/common/datascope/aspect/DataScopeAspect.java +++ b/aps-common/aps-common-datascope/src/main/java/com/aps/common/datascope/aspect/DataScopeAspect.java @@ -118,7 +118,7 @@ break; } else if (DATA_SCOPE_CUSTOM.equals(dataScope)) - { + { /*鑷畾涔夋暟鎹潈闄�*/ if (scopeCustomIds.size() > 1) { // 澶氫釜鑷畾鏁版嵁鏉冮檺浣跨敤in鏌ヨ锛岄伩鍏嶅娆℃嫾鎺ャ�� @@ -130,15 +130,15 @@ } } else if (DATA_SCOPE_DEPT.equals(dataScope)) - { + { /*鏈儴闂ㄦ暟鎹潈闄�*/ sqlString.append(StringUtils.format(" OR {}.dept_id = {} ", deptAlias, user.getDeptId())); } else if (DATA_SCOPE_DEPT_AND_CHILD.equals(dataScope)) - { + { /*鏈儴闂ㄤ互鍙婁互涓嬫暟鎹潈闄�*/ sqlString.append(StringUtils.format(" OR {}.dept_id IN ( SELECT dept_id FROM sys_dept WHERE dept_id = {} or find_in_set( {} , ancestors ) )", deptAlias, user.getDeptId(), user.getDeptId())); } else if (DATA_SCOPE_SELF.equals(dataScope)) - { + { /*浠呮湰浜烘暟鎹潈闄�*/ if (StringUtils.isNotBlank(userAlias)) { sqlString.append(StringUtils.format(" OR {}.user_id = {} ", userAlias, user.getUserId())); diff --git a/aps-modules/aps-system/src/main/java/com/aps/system/domain/SysRoleDept.java b/aps-modules/aps-system/src/main/java/com/aps/system/domain/SysRoleDept.java index e439a08..b52fe8f 100644 --- a/aps-modules/aps-system/src/main/java/com/aps/system/domain/SysRoleDept.java +++ b/aps-modules/aps-system/src/main/java/com/aps/system/domain/SysRoleDept.java @@ -16,6 +16,10 @@ /** 閮ㄩ棬ID */ private Long deptId; + + /**閮ㄩ棬缁勭粐缂栫爜*/ + private String deptOrgCode; + public Long getRoleId() { return roleId; @@ -36,11 +40,20 @@ this.deptId = deptId; } + + public String getDeptOrgCode() { + return deptOrgCode; + } + + public void setDeptOrgCode(String deptOrgCode) { + this.deptOrgCode = deptOrgCode; + } @Override public String toString() { return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) .append("roleId", getRoleId()) .append("deptId", getDeptId()) + .append("deptOrgCode", getDeptOrgCode()) .toString(); } } diff --git a/aps-modules/aps-system/src/main/java/com/aps/system/mapper/SysDeptMapper.java b/aps-modules/aps-system/src/main/java/com/aps/system/mapper/SysDeptMapper.java index 838bb84..0e97158 100644 --- a/aps-modules/aps-system/src/main/java/com/aps/system/mapper/SysDeptMapper.java +++ b/aps-modules/aps-system/src/main/java/com/aps/system/mapper/SysDeptMapper.java @@ -115,4 +115,6 @@ * @return 缁撴灉 */ public int deleteDeptById(Long deptId); + + List<SysDept> selectDeptListByIdList(List<Long> deptIdList); } diff --git a/aps-modules/aps-system/src/main/java/com/aps/system/service/impl/SysRoleServiceImpl.java b/aps-modules/aps-system/src/main/java/com/aps/system/service/impl/SysRoleServiceImpl.java index 30ab94f..9eab4bf 100644 --- a/aps-modules/aps-system/src/main/java/com/aps/system/service/impl/SysRoleServiceImpl.java +++ b/aps-modules/aps-system/src/main/java/com/aps/system/service/impl/SysRoleServiceImpl.java @@ -1,10 +1,9 @@ package com.aps.system.service.impl; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.HashSet; -import java.util.List; -import java.util.Set; +import java.util.*; + +import com.aps.system.api.domain.SysDept; +import com.aps.system.mapper.*; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -19,10 +18,6 @@ import com.aps.system.domain.SysRoleDept; import com.aps.system.domain.SysRoleMenu; import com.aps.system.domain.SysUserRole; -import com.aps.system.mapper.SysRoleDeptMapper; -import com.aps.system.mapper.SysRoleMapper; -import com.aps.system.mapper.SysRoleMenuMapper; -import com.aps.system.mapper.SysUserRoleMapper; import com.aps.system.service.ISysRoleService; /** @@ -45,6 +40,8 @@ @Autowired private SysRoleDeptMapper roleDeptMapper; + @Autowired + private SysDeptMapper deptMapper; /** * 鏍规嵁鏉′欢鍒嗛〉鏌ヨ瑙掕壊鏁版嵁 * @@ -320,12 +317,21 @@ int rows = 1; // 鏂板瑙掕壊涓庨儴闂紙鏁版嵁鏉冮檺锛夌鐞� List<SysRoleDept> list = new ArrayList<SysRoleDept>(); - for (Long deptId : role.getDeptIds()) + Long[] deptIds = role.getDeptIds(); + List<SysDept> sysDepts = deptMapper.selectDeptListByIdList(Arrays.asList(deptIds)); + + for (Long deptId : deptIds) { - SysRoleDept rd = new SysRoleDept(); - rd.setRoleId(role.getRoleId()); - rd.setDeptId(deptId); - list.add(rd); + Optional<SysDept> first = sysDepts.stream().filter(sysDept -> sysDept.getDeptId().equals(deptId)).findFirst(); + if(first.isPresent()){ + SysDept sysDept = first.get(); + SysRoleDept rd = new SysRoleDept(); + rd.setRoleId(role.getRoleId()); + rd.setDeptId(deptId); + rd.setDeptOrgCode(sysDept.getOrgCode()); + list.add(rd); + } + } if (list.size() > 0) { diff --git a/aps-modules/aps-system/src/main/resources/mapper/system/SysDeptMapper.xml b/aps-modules/aps-system/src/main/resources/mapper/system/SysDeptMapper.xml index e6a6945..cb98780 100644 --- a/aps-modules/aps-system/src/main/resources/mapper/system/SysDeptMapper.xml +++ b/aps-modules/aps-system/src/main/resources/mapper/system/SysDeptMapper.xml @@ -159,5 +159,13 @@ <delete id="deleteDeptById" parameterType="Long"> update sys_dept set del_flag = '2' where dept_id = #{deptId} </delete> + <select id="selectDeptListByIdList" parameterType="Long" resultMap="SysDeptResult"> + <include refid="selectDeptVo"/> + where d.del_flag = '0' and dept_id in + <foreach collection="deptIdList" item="deptId" open="(" separator="," close=")"> + #{deptId} + </foreach> + order by d.parent_id, d.order_num + </select> </mapper> \ No newline at end of file diff --git a/aps-modules/aps-system/src/main/resources/mapper/system/SysRoleDeptMapper.xml b/aps-modules/aps-system/src/main/resources/mapper/system/SysRoleDeptMapper.xml index f71ae30..76abcfd 100644 --- a/aps-modules/aps-system/src/main/resources/mapper/system/SysRoleDeptMapper.xml +++ b/aps-modules/aps-system/src/main/resources/mapper/system/SysRoleDeptMapper.xml @@ -25,9 +25,9 @@ </delete> <insert id="batchRoleDept"> - insert into sys_role_dept(role_id, dept_id) values + insert into sys_role_dept(role_id, dept_id,dept_org_code) values <foreach item="item" index="index" collection="list" separator=","> - (#{item.roleId},#{item.deptId}) + (#{item.roleId},#{item.deptId},#{item.deptOrgCode}) </foreach> </insert> -- Gitblit v1.9.3