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