zouyu
2026-01-16 f605b84620bf35bb02a2ee5ef2086c164b520e67
src/main/java/com/ruoyi/project/system/service/impl/SysDeptServiceImpl.java
@@ -4,6 +4,8 @@
import java.util.Iterator;
import java.util.List;
import java.util.stream.Collectors;
import cn.hutool.core.util.ObjectUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.common.constant.UserConstants;
@@ -42,10 +44,23 @@
     * @return 部门信息集合
     */
    @Override
    @DataScope(deptAlias = "d")
    @DataScope(tenantIdFelid = "d")
    public List<SysDept> selectDeptList(SysDept dept)
    {
        return deptMapper.selectDeptList(dept);
    }
    /**
     * 查询部门树结构信息
     *
     * @param dept 部门信息
     * @return 部门树信息集合
     */
    @Override
    public List<TreeSelect> selectDeptTreeList(SysDept dept)
    {
        List<SysDept> depts = SpringUtils.getAopProxy(this).selectDeptList(dept);
        return buildDeptTreeSelect(depts);
    }
    /**
@@ -58,11 +73,7 @@
    public List<SysDept> buildDeptTree(List<SysDept> depts)
    {
        List<SysDept> returnList = new ArrayList<SysDept>();
        List<Long> tempList = new ArrayList<Long>();
        for (SysDept dept : depts)
        {
            tempList.add(dept.getDeptId());
        }
        List<Long> tempList = depts.stream().map(SysDept::getDeptId).collect(Collectors.toList());
        for (SysDept dept : depts)
        {
            // 如果是顶级节点, 遍历该父节点的所有子节点
@@ -139,7 +150,7 @@
    public boolean hasChildByDeptId(Long deptId)
    {
        int result = deptMapper.hasChildByDeptId(deptId);
        return result > 0 ? true : false;
        return result > 0;
    }
    /**
@@ -152,7 +163,7 @@
    public boolean checkDeptExistUser(Long deptId)
    {
        int result = deptMapper.checkDeptExistUser(deptId);
        return result > 0 ? true : false;
        return result > 0;
    }
    /**
@@ -162,7 +173,7 @@
     * @return 结果
     */
    @Override
    public String checkDeptNameUnique(SysDept dept)
    public boolean checkDeptNameUnique(SysDept dept)
    {
        Long deptId = StringUtils.isNull(dept.getDeptId()) ? -1L : dept.getDeptId();
        SysDept info = deptMapper.checkDeptNameUnique(dept.getDeptName(), dept.getParentId());
@@ -181,7 +192,7 @@
    @Override
    public void checkDeptDataScope(Long deptId)
    {
        if (!SysUser.isAdmin(SecurityUtils.getUserId()))
        if (!SysUser.isAdmin(SecurityUtils.getUserId()) && StringUtils.isNotNull(deptId))
        {
            SysDept dept = new SysDept();
            dept.setDeptId(deptId);
@@ -204,11 +215,15 @@
    {
        SysDept info = deptMapper.selectDeptById(dept.getParentId());
        // 如果父节点不为正常状态,则不允许新增子节点
        if (!UserConstants.DEPT_NORMAL.equals(info.getStatus()))
        if (ObjectUtil.isNotNull(info) && !UserConstants.DEPT_NORMAL.equals(info.getStatus()))
        {
            throw new ServiceException("部门停用,不允许新增");
        }
        dept.setAncestors(info.getAncestors() + "," + dept.getParentId());
        if(ObjectUtil.isNotNull(info) && 0L!=dept.getParentId()){
            dept.setAncestors(info.getAncestors() + "," + dept.getParentId());
        }else{
            dept.setAncestors("0");
        }
        return deptMapper.insertDept(dept);
    }
@@ -252,6 +267,11 @@
        deptMapper.updateDeptStatusNormal(deptIds);
    }
    @Override
    public SysDept selectDeptByDeptName(String deptName) {
        return deptMapper.selectDeptByDeptName(deptName);
    }
    /**
     * 修改子元素关系
     * 
@@ -285,6 +305,16 @@
    }
    /**
     * 查询顶层部门id
     * @param deptId
     * @return
     */
    @Override
    public Long maxLevelDeptId(Long deptId) {
        return deptMapper.maxLevelDeptId(deptId);
    }
    /**
     * 递归列表
     */
    private void recursionFn(List<SysDept> list, SysDept t)