From 26f417382ff5cea9635d0ca65852e83938228e8a Mon Sep 17 00:00:00 2001
From: 陈昶聿 <chychen@nbjetron.com>
Date: 星期六, 18 七月 2026 14:28:17 +0800
Subject: [PATCH] 【景宁】用户-关系删除原有关系

---
 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java |   27 ++++++++++++++++-----------
 ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserDeptMapper.java        |    2 ++
 ruoyi-system/src/main/resources/mapper/system/SysUserDeptMapper.xml              |   18 ++++++++++++++++++
 3 files changed, 36 insertions(+), 11 deletions(-)

diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserDeptMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserDeptMapper.java
index 020091d..88562e9 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserDeptMapper.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserDeptMapper.java
@@ -74,5 +74,7 @@
 
     public int deleteSysUserDeptByCode(SysUserDept sysUserDept);
 
+    public int deleteSysUserDeptByUserId(SysUserDept sysUserDept);
+
     public int updateSysUserDeptForSync(SysUserDept sysUserDept);
 }
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java
index 1c28e14..315404e 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java
@@ -709,7 +709,15 @@
 //                sysUserDeptMapper.insertSysUserDept(sysUserDep);
 //            }
 //        }
+
         if (!CollectionUtils.isEmpty(user.getDeptCodes())) {
+            //鍒犻櫎鍘熸湁鍏崇郴
+            SysUserDept delSysUserDept = new SysUserDept();
+            delSysUserDept.setUserId(user.getUserId());
+            delSysUserDept.setOrgid(user.getOrgid());
+            delSysUserDept.setDeptType("1");
+            sysUserDeptMapper.deleteSysUserDeptByUserId(delSysUserDept);
+
             for (String deptCode : user.getDeptCodes()) {
                 SysDept sysDept = sysDeptMapper.selectDeptByCode("1", user.getOrgid(), deptCode);
                 if (ObjectUtils.isEmpty(sysDept)) {
@@ -721,21 +729,23 @@
                 sysUserDept.setOrgid(user.getOrgid());
                 sysUserDept.setDeptCode(deptCode);
                 sysUserDept.setDeptId(sysDept.getDeptId());
-                List<SysUserDept> sysUserDepts = sysUserDeptMapper.selectSysUserDeptList(sysUserDept);
                 sysUserDept.setDelFlag(0L);
                 sysUserDept.setDeptType("1");
                 sysUserDept.setDeptName(sysDept.getDeptName());
                 sysUserDept.setUpdateTime(new Date());
-                if (!CollectionUtils.isEmpty(sysUserDepts)) {
-                    sysUserDept.setId(sysUserDepts.get(0).getId());
-                    sysUserDeptMapper.updateSysUserDept(sysUserDept);
-                    continue;
-                }
                 sysUserDept.setCreateTime(new Date());
                 sysUserDeptMapper.insertSysUserDept(sysUserDept);
             }
         }
+
         if (!CollectionUtils.isEmpty(user.getWardCodes())) {
+            //鍒犻櫎鍘熸湁鍏崇郴
+            SysUserDept delSysUserDept = new SysUserDept();
+            delSysUserDept.setUserId(user.getUserId());
+            delSysUserDept.setOrgid(user.getOrgid());
+            delSysUserDept.setDeptType("2");
+            sysUserDeptMapper.deleteSysUserDeptByUserId(delSysUserDept);
+
             for (String wardCode : user.getWardCodes()) {
                 SysDept sysDept = sysDeptMapper.selectDeptByCode("2", user.getOrgid(), wardCode);
                 if (ObjectUtils.isEmpty(sysDept)) {
@@ -746,16 +756,11 @@
                 sysUserDept.setDeptCode(wardCode);
                 sysUserDept.setDeptId(sysDept.getDeptId());
                 sysUserDept.setOrgid(user.getOrgid());
-                List<SysUserDept> sysUserDepts = sysUserDeptMapper.selectSysUserDeptList(sysUserDept);
                 sysUserDept.setDelFlag(0L);
                 sysUserDept.setDeptType("2");
                 sysUserDept.setOrgid(user.getOrgid());
                 sysUserDept.setDeptName(sysDept.getDeptName());
                 sysUserDept.setUpdateTime(new Date());
-                if (!CollectionUtils.isEmpty(sysUserDepts)) {
-                    sysUserDeptMapper.updateSysUserDept(sysUserDept);
-                    continue;
-                }
                 sysUserDept.setCreateTime(new Date());
                 sysUserDeptMapper.insertSysUserDept(sysUserDept);
             }
diff --git a/ruoyi-system/src/main/resources/mapper/system/SysUserDeptMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysUserDeptMapper.xml
index cbb6490..4795ebc 100644
--- a/ruoyi-system/src/main/resources/mapper/system/SysUserDeptMapper.xml
+++ b/ruoyi-system/src/main/resources/mapper/system/SysUserDeptMapper.xml
@@ -237,6 +237,24 @@
         where user_id =#{userId} and dept_code=#{deptCode}
     </update>
 
+    <update id="deleteSysUserDeptByUserId" parameterType="String">
+        update sys_user_dept
+        <trim prefix="SET" suffixOverrides=",">
+            del_flag =1,
+            update_time = sysdate()
+        </trim>
+        where del_flag = 0
+        <if test="userId != null">
+            and user_id =#{userId}
+        </if>
+        <if test="orgid != null ">
+            and orgid = #{orgid}
+        </if>
+        <if test="deptType != null ">
+            and dept_type = #{deptType}
+        </if>
+    </update>
+
     <update id="updateSysUserDeptForSync" parameterType="com.ruoyi.common.core.domain.entity.SysUserDept">
         update sys_user_dept
         <trim prefix="SET" suffixOverrides=",">

--
Gitblit v1.9.3