

package com.weather.modules.sys.service;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.weather.common.service.BaseService;
import com.weather.modules.sys.dto.SysDeptDTO;
import com.weather.modules.sys.entity.SysDeptEntity;
import org.apache.poi.ss.formula.functions.T;

import java.util.List;
import java.util.Map;

/**
 * 部门管理
 * 
 * @author 123
 */
public interface SysDeptService extends BaseService<SysDeptEntity> {

	List<SysDeptDTO> list(Map<String, Object> params);

	SysDeptDTO get(Long id);

	void save(SysDeptDTO dto);

	void update(SysDeptDTO dto);

	void delete(Long id);

	/**
	 * 根据部门ID，获取本部门及子部门ID列表
	 * @param id   部门ID
	 */
	List<Long> getSubDeptIdList(Long id);

	<T> QueryWrapper<T> limitedQueryScope(QueryWrapper<T> queryWrapper);

    /**
     * 获取当前用户可见的所有部门ID（含自身、子部门、所有上级部门）
     */
    List<Long> getAccessibleDeptIdList();
}