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