package com.securitycontrol.system.base.mapper;

import com.securitycontrol.entity.system.dto.SelectDto;
import com.securitycontrol.entity.system.vo.SelectVo;
import com.securitycontrol.entity.system.vo.TreeNode;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * @author：cwchen
 * @date：2024-02-22-9:37
 * @version：1.0
 * @description：公共下拉选/树-数据库访问层
 */
@Repository(value = "ISelectMapper")
public interface ISelectMapper {

    /**
     * 组织机构树
     *
     * @return List<TreeNode>
     * @description 组织机构树
     * @author cwchen
     * @date 2024/2/22 9:51
     */
    List<TreeNode> getOrgTree();

    /**
     * 角色下拉选
     *
     * @return List<SelectVo>
     * @description 角色下拉选
     * @author cwchen
     * @date 2024/2/22 13:28
     */
    List<SelectVo> getRoleLists();

    /**
     * 菜单树
     *
     * @return List<TreeNode>
     * @description
     * @author cwchen
     * @date 2024/2/26 13:35
     */
    List<TreeNode> getMenuTree();


    /**
     * 查询字典下拉选
     *
     * @param code
     * @return
     */
    List<TreeNode> getDictList(@Param("code") String code);

    /**
     * 建管单位下拉选
     *
     * @return List<SelectVo>
     * @description
     * @author cwchen
     * @date 2024/3/12 11:24
     */
    List<SelectVo> getBuildLists();

    /**
     * 字典表下拉选
     *
     * @param dto
     * @return List<SelectVo>
     * @description
     * @author cwchen
     * @date 2024/3/13 17:09
     */
    List<SelectVo> getDictLists(SelectDto dto);

    /**
     * 杆塔下拉选
     *
     * @param dto
     * @return List<SelectVo>
     * @description
     * @author cwchen
     * @date 2024/3/15 17:01
     */
    List<SelectVo> getTowerLists(SelectDto dto);

    /**
     * 班组下拉选
     *
     * @param dto
     * @return List<SelectVo>
     * @description
     * @author cwchen
     * @date 2024/3/18 13:26
     */
    List<SelectVo> getTeamLists(SelectDto dto);

    /**
     * 工程下拉选
     *
     * @param dto
     * @return List<SelectVo>
     * @description
     * @author cwchen
     * @date 2024/3/20 16:16
     */
    List<SelectVo> getProLists(SelectDto dto);

    /**
     * 区域下拉选
     *
     * @param dto
     * @return List<SelectVo>
     * @description
     * @author cwchen
     * @date 2024/3/20 20:02
     */
    List<SelectVo> getAreaLists(SelectDto dto);

    /**
     * 边带下拉选
     *
     * @param dto
     * @return List<SelectVo>
     * @description
     * @author cwchen
     * @date 2024/3/25 13:11
     */
    List<SelectVo> getBdLists(SelectDto dto);

    /**
     * 工程下拉选集合
     *
     * @param dto
     * @return
     */
    List<SelectVo> getProList(SelectDto dto);

    List<SelectVo> getSelectLists();

    List<SelectVo> getGtLists(@Param("bidCode") String bidCode);

    /**
     * 项目下拉选
     *
     * @param dto
     * @return List<SelectVo>
     * @description
     * @author cwchen
     * @date 2024/4/2 14:12
     */
    List<SelectVo> getProjectList(SelectDto dto);

    /**
     * 单项工程下拉选
     * @param dto
     * @return List<SelectVo>
     * @description
     * @author cwchen
     * @date 2024/4/2 14:12
     */
    List<SelectVo> getSignProList(SelectDto dto);
}
