package com.njcn.device.pq.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.njcn.device.pq.pojo.po.TerminalOnlineRateData;
import com.njcn.device.pq.pojo.vo.LineIntegrityDataVO;
import com.njcn.device.pq.pojo.vo.TerminalOnlineRateDataVO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.time.LocalDateTime;
import java.util.List;

/**
 * @author yzh
 * @date 2022/9/19
 */
@Mapper
public interface TerminalOnlineRateDataMapper extends BaseMapper<TerminalOnlineRateDataVO> {

    /**
     * 通过终端的索引查询索引的等级和id
     * @param deviceIndexes
     * @return
     */
    List<TerminalOnlineRateDataVO> getDeviceLevelData(@Param("deviceIndexes") List<String> deviceIndexes);

    /**
     * 通过部分终端等级信息查询终端信息
     * @param lineGrade
     * @return
     */
    List<TerminalOnlineRateDataVO> getDevice(@Param("devIds")List<String> devIds, @Param("lineGrade")String lineGrade);
    /**
     * 根据供电公司索引获取出省会的信息
     * @param gdIndexes 供电公司索引
     * @return 省会信息
     */
    List<TerminalOnlineRateDataVO> getProvinceList(@Param("gdIndex")List<String> gdIndexes);

    /**
     * 获取出供电公司的信息
     * @param gdIndexes 供电公司索引
     * @return 供电公司信息
     */
    List<TerminalOnlineRateDataVO> getGdList(@Param("gdIndex")List<String> gdIndexes);

    /**
     * 获取出变电站的信息
     * @param subIndexes 变电站索引
     * @return 变电站信息
     */
    List<TerminalOnlineRateDataVO> getSubList(@Param("subIndex")List<String> subIndexes);

    /**
     * 根据监测点索引集合获取监测点详细参数
     * @param lineIndexes 监测点索引集合
     * @return
     */
    List<TerminalOnlineRateDataVO> getDetailedParametersForLine(@Param("lineIndexes") List<String> lineIndexes,
                                                           @Param("lineGrade")String lineGrade,
                                                                @Param("searchBeginTime") String searchBeginTime,
                                                                @Param("searchEndTime") String searchEndTime);



    /**
     * 根据装置获取装置在线率
     * @author cdf
     * @date 2023/3/28
     */
    List<TerminalOnlineRateData> getDevOnlineByDevIds(@Param("devIds")List<String> devIds, @Param("startTime")String startTime,@Param("endTime")String endTime);

}
