From 5dfc09eefc352d8671444a8e18f824b14adeeb52 Mon Sep 17 00:00:00 2001 From: RuoYi Date: Tue, 14 Aug 2018 11:56:41 +0800 Subject: [PATCH] =?UTF-8?q?=E9=83=A8=E9=97=A8=E4=BF=AE=E6=94=B9=E5=90=8C?= =?UTF-8?q?=E6=AD=A5ancestor?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../system/dept/mapper/DeptMapper.java | 9 +++++++ .../system/dept/service/DeptServiceImpl.java | 25 ++++++++++++++++++- .../resources/mybatis/system/DeptMapper.xml | 16 ++++++++++++ 3 files changed, 49 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/ruoyi/project/system/dept/mapper/DeptMapper.java b/src/main/java/com/ruoyi/project/system/dept/mapper/DeptMapper.java index ea76f3fe..cd59dde4 100644 --- a/src/main/java/com/ruoyi/project/system/dept/mapper/DeptMapper.java +++ b/src/main/java/com/ruoyi/project/system/dept/mapper/DeptMapper.java @@ -1,6 +1,7 @@ package com.ruoyi.project.system.dept.mapper; import java.util.List; +import org.apache.ibatis.annotations.Param; import com.ruoyi.project.system.dept.domain.Dept; /** @@ -65,6 +66,14 @@ public interface DeptMapper */ public int updateDept(Dept dept); + /** + * 修改子元素关系 + * + * @param depts 子元素 + * @return 结果 + */ + public int updateDeptChildren(@Param("depts") List depts); + /** * 根据部门ID查询信息 * diff --git a/src/main/java/com/ruoyi/project/system/dept/service/DeptServiceImpl.java b/src/main/java/com/ruoyi/project/system/dept/service/DeptServiceImpl.java index ffde92e2..dba4b775 100644 --- a/src/main/java/com/ruoyi/project/system/dept/service/DeptServiceImpl.java +++ b/src/main/java/com/ruoyi/project/system/dept/service/DeptServiceImpl.java @@ -135,11 +135,34 @@ public class DeptServiceImpl implements IDeptService public int updateDept(Dept dept) { Dept info = deptMapper.selectDeptById(dept.getParentId()); + String ancestors = info.getAncestors() + "," + dept.getParentId(); dept.setUpdateBy(ShiroUtils.getLoginName()); - dept.setAncestors(info.getAncestors() + "," + dept.getParentId()); + dept.setAncestors(ancestors); + updateDeptChildren(dept.getDeptId(), ancestors); return deptMapper.updateDept(dept); } + /** + * 修改子元素关系 + * + * @param deptId 部门ID + * @param ancestors 元素列表 + */ + public void updateDeptChildren(Long deptId, String ancestors) + { + Dept dept = new Dept(); + dept.setParentId(deptId); + List childrens = deptMapper.selectDeptList(dept); + for (Dept children : childrens) + { + children.setAncestors(ancestors + "," + dept.getParentId()); + } + if (childrens.size() > 0) + { + deptMapper.updateDeptChildren(childrens); + } + } + /** * 根据部门ID查询信息 * diff --git a/src/main/resources/mybatis/system/DeptMapper.xml b/src/main/resources/mybatis/system/DeptMapper.xml index a77dbca6..af029601 100644 --- a/src/main/resources/mybatis/system/DeptMapper.xml +++ b/src/main/resources/mybatis/system/DeptMapper.xml @@ -32,6 +32,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"