package com.njcn.mapper.configuration;

import java.util.List;

import com.njcn.pojo.commons.device.Tree;

import org.apache.ibatis.annotations.Param;
import tk.mybatis.mapper.common.Mapper;

public interface TreeMapper extends Mapper<Tree> {

    List<Tree> getProjInfo();

    List<Tree> getProInfo();

    //获取指定项目下的省份
    List<Tree> getProjInfoByName(String name);

    List<Tree> getProByProj(List<Integer> index);

    List<Tree> getGdInfo(List<Integer> index);

    List<Tree> getGdByPro(List<Integer> index);

    List<Tree> getSubInfo(List<Integer> index);

    List<Tree> getTransInfo(List<Integer> suIndex);

    List<Tree> getDevInfo(List<Integer> index);

    List<Tree> getLineInfo(List<Integer> index);

    List<Tree> getDevice(List<Integer> index);

    List<Tree> getSubv(List<Integer> index);

    List<Tree> getTreeProInfo(List<Integer> index);

    List<Tree> getTreeGdInfo(List<Integer> index);

    List<Tree> getTreeSubInfo(List<Integer> index);

    List<Tree> getWTTreeDevInfo(List<Integer> index);

    List<Tree> getWTTreeDevInfoOffline(List<Integer> index);

    List<Tree> getZTTreeDevInfo(List<Integer> index);

    List<Tree> getTreeSubvInfo(List<Integer> index);
    //获取离线的装置，区分系统
    List<Tree> getOffLineDevice(@Param("list") List<Integer> index, @Param("devModel") Integer devModel, @Param("dataType") List<Integer> dataType);

    List<Tree> getDeviceWT(List<Integer> index);

    List<Tree> getDeviceZT(List<Integer> index);

    List<Tree> getDeviceWTOnline(List<Integer> index);

    List<Tree> getDeviceZTOnline(List<Integer> index);


    List<Tree> getOffTreeProJInfo(List<Integer> index);

    List<Tree> getOffTreeProVInfo(List<Integer> index);

    List<Tree> getOffTreeSubInfo(List<Integer> index);

    List<Tree> getOffTreeLineInfo(List<Integer> index);

    List<Tree> getOffYearProJInfo(@Param("list") List<Integer> index, @Param("year") List<String> year);

    List<Tree> getOffYearProVInfo(@Param("list") List<Integer> index, @Param("year") String year);

    List<Tree> getOffYearSubInfo(@Param("list") List<Integer> index, @Param("year") String year);

    List<Tree> getOffYearLineInfo(@Param("list") List<Integer> index, @Param("year") String year);

    List<Tree> getOffTypeProJInfo(@Param("list") List<Integer> index, @Param("type") String type);

    List<Tree> getOffTypeProVInfo(@Param("list") List<Integer> index, @Param("type") String type);

    List<Tree> getOffTypeSubInfo(@Param("list") List<Integer> index, @Param("type") String type);

    List<Tree> getOffTypeLineInfo(@Param("list") List<Integer> index, @Param("type") String type);

    //根据条件获取省会节点信息
    List<Tree> getProInfoByDevice(@Param("devModel") Integer devModel, @Param("dataType") List<Integer> dataType);

    //根据条件获取供电公司节点信息
    List<Tree> getGDInfoByDevice(@Param("devModel") Integer devModel, @Param("dataType") List<Integer> dataType, @Param("nodeIndex") int nodeIndex);

    //根据条件获取变电站节点信息
    List<Tree> getSubInfoByDevice(@Param("devModel") Integer devModel, @Param("dataType") List<Integer> dataType, @Param("nodeIndex") int nodeIndex);

    //根据条件获取装置节点信息
    List<Tree> getDevInfoByDevice(@Param("devModel") Integer devModel, @Param("dataType") List<Integer> dataType, @Param("nodeIndex") int nodeIndex);

    //根据条件获取母线节点信息
    List<Tree> getSubvInfoByDevice(int nodeIndex);

    //根据条件获取监测点节点信息
    List<Tree> getLineInfoByDevice(int nodeIndex);


    List<Tree> getTreeGdInfoByGw(List<Integer> index);

    List<Tree> getTreeSubInfoByGw(List<Integer> index);

    List<Tree> getTreeSubvInfoByGw(List<Integer> index);

    List<Tree> getLineInfoByGw(List<Integer> index);

    List<Tree> getScaleProVInfo(@Param("list") List<Integer> index, @Param("type") String type);

    List<Tree> getScaleGdInfo(@Param("list") List<Integer> index, @Param("type") String type);

    List<Tree> getScaleSubInfo(@Param("list") List<Integer> index, @Param("type") String type);

    List<Tree> getScaleDevInfo(@Param("list") List<Integer> index, @Param("type") String type);

    List<Tree> getScaleSubvInfo(@Param("list") List<Integer> index, @Param("type") String type);

    List<Tree> getMancProVInfo(@Param("list") List<Integer> index, @Param("type") String type);

    List<Tree> getMancGdInfo(@Param("list") List<Integer> index, @Param("type") String type);

    List<Tree> getMancSubInfo(@Param("list") List<Integer> index, @Param("type") String type);

    List<Tree> getMancDevInfo(@Param("list") List<Integer> index, @Param("type") String type);

    List<Tree> getMancSubvInfo(@Param("list") List<Integer> index, @Param("type") String type);

    List<Tree> getLoadTypeProVInfo(@Param("list") List<Integer> index, @Param("type") String type);

    List<Tree> getLoadTypeGdInfo(@Param("list") List<Integer> index, @Param("type") String type);

    List<Tree> getLoadTypeSubInfo(@Param("list") List<Integer> index, @Param("type") String type);

    List<Tree> getLoadTypeDevInfo(@Param("list") List<Integer> index, @Param("type") String type);

    List<Tree> getLoadTypeSubvInfo(@Param("list") List<Integer> index, @Param("type") String type);

    List<Tree> getNodeTreeSubvInfo(List<Integer> index);

    /*pq9900webtool专用专用*/
    List<Tree> getTreeGdInfoToWebTool(List<Integer> index);

    List<Tree> getTreeSubInfoToWebTool(List<Integer> index);

    List<Tree> getLineInfoToWebTool(List<Integer> index);

    List<Tree> getTreeBySubv(@Param("subvIndex") Long subvIndex);

}
