package com.dxhy.extend.dao;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.dxhy.extend.entity.SysDeptEntity;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 部门管理
 *
 * @author jiaohongyang
 */
@Mapper
public interface SysAuthDao extends BaseMapper<SysDeptEntity> {
    /**
     * 根据集团编码查询税号
     *
     * @author 陈刚扬
     * @date 2020/12/4
     * @param company
     * @param orgType
     * @return java.util.List<com.dxhy.admin.sys.entity.SysDeptEntity>
     */
    List<SysDeptEntity> selectDeptByCompany(@Param("company") String company, @Param("orgType") String orgType);

    /**
     * 根据集团编码查询部门信息
     *
     * @param company
     *            集团编码
     * @return 部门信息
     */
    List<SysDeptEntity> queryList(@Param("company") String company);

    /**
     * 根据集团编码查询用户关联部门信息
     *
     * @param company
     *            集团编码
     * @return 部门信息
     */
    List<SysDeptEntity> queryListUser(@Param("company") String company);

    /**
     * 根据集团编码查询上级部门信息
     *
     * @param company
     *            集团编码
     * @return 部门信息
     */
    List<SysDeptEntity> queryListParent(@Param("company") String company);

    /**
     * 查询子部门ID列表
     *
     * @param parentId
     *            上级部门ID
     * @return 部门信息
     */
    List<Long> queryDetpIdList(@Param("parentId") Long parentId);

    /**
     * 根据上级ID查询部门信息
     *
     * @param parentId
     *            集团编码
     * @return 部门信息
     */
    List<SysDeptEntity> queryDeptParentId(@Param("parentId") Long parentId);

    /**
     * 获取部门信息
     *
     * @return 部门信息
     */
    List<SysDeptEntity> queryDeptList();

    /**
     * 根据集团编码修改部分信息
     *
     * @param company
     *            集团编码
     * @param isCollext
     *            是否采集
     * @param aceKey
     *            key
     * @param aceId
     *            id
     * @param dbName
     *            数据库
     * @param qsStatus
     *            签收状态
     */
    void updateDeptCompany(@Param("company") String company, @Param("isCollext") String isCollext,
                           @Param("aceKey") String aceKey, @Param("aceId") String aceId, @Param("dbName") String dbName,
                           @Param("qsStatus") String qsStatus);

    List<String> getOrgCodeList(Long userId);

    /**
     * 查询id与税号对应list
     *
     * @return 部门信息
     */
    List<SysDeptEntity> queryTaxnoList();

    List<SysDeptEntity> queryParentIdList();

}

