陈昶聿
3 天以前 1958e8bad428b94aa457734f7f047fe373eafd83
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDeptServiceImpl.java
@@ -3,6 +3,10 @@
import java.util.*;
import java.util.stream.Collectors;
import cn.hutool.core.lang.tree.TreeUtil;
import com.ruoyi.common.core.domain.entity.SysUserDept;
import com.ruoyi.common.utils.TreeUtils;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
@@ -46,6 +50,17 @@
    @Override
    @DataScope(deptAlias = "d")
    public List<SysDept> selectDeptList(SysDept dept) {
        return deptMapper.selectDeptList(dept);
    }
    /**
     * 查询部门管理数据
     *
     * @param dept 部门信息
     * @return 部门信息集合
     */
    @Override
    public List<SysDept> selectSysDeptList(SysDept dept) {
        return deptMapper.selectDeptList(dept);
    }
@@ -315,4 +330,17 @@
    private boolean hasChild(List<SysDept> list, SysDept t) {
        return getChildList(list, t).size() > 0;
    }
    public List<SysDept> selectLeafSysDeptListBySysUserDept(SysUserDept sysUserDept){
        List<SysDept> list =  deptMapper.selectSysDeptListBySysUserDept(sysUserDept);
        // userId 为空 = 管理员取本机构全量科室/病区:要「全部」,不能再按叶子节点过滤掉父级部门
        if (sysUserDept != null && sysUserDept.getUserId() == null) {
            return list == null ? new ArrayList<>() : list;
        }
        if(CollectionUtils.isNotEmpty(list)){
            list = TreeUtils.getLeafDepts(list);
        }
        return list;
    }
}