package com.pqs9000.mapper.responsibility;

import com.pqs9000.pojo.responsibility.AreaOverNoraml;
import com.pqs9000.pojo.responsibility.OverLimitByDays;
import org.apache.ibatis.annotations.Param;

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

public interface AreaOverNormalMapper {

    List<Integer> getCountryMonitor(@Param("list") List<Integer> list);

    AreaOverNoraml getInfo(@Param("list") List<Integer> list, @Param("startTime") String startTime, @Param("endTime") String endTime);

    /**
     * 每天获取当前在线监测点数、超标监测点数、超标次数
     */
    //频率偏差超标
    List<OverLimitByDays> getFrequency(@Param("list") List<Integer> list, @Param("startTime") String startTime, @Param("endTime") String endTime);

    //电压偏差超标
    List<OverLimitByDays> getVoltage(@Param("list") List<Integer> list, @Param("startTime") String startTime, @Param("endTime") String endTime);

    //谐波电压偏差超标
    List<OverLimitByDays> getHarmonicVoltage(@Param("list") List<Integer> list, @Param("startTime") String startTime, @Param("endTime") String endTime);

    //谐波电流超标
    List<OverLimitByDays> getHarmonicCurrent(@Param("list") List<Integer> list, @Param("startTime") String startTime, @Param("endTime") String endTime);

    //三相电压不平衡度超标
    List<OverLimitByDays> getThreePhaseVoltage(@Param("list") List<Integer> list, @Param("startTime") String startTime, @Param("endTime") String endTime);

    //闪变超标
    List<OverLimitByDays> getFlicker(@Param("list") List<Integer> list, @Param("startTime") String startTime, @Param("endTime") String endTime);

    //负序电流
    List<OverLimitByDays> getNegative(@Param("list") List<Integer> list, @Param("startTime") String startTime, @Param("endTime") String endTime);

    //间谐波电压
    List<OverLimitByDays> getInterharmonic(@Param("list") List<Integer> list, @Param("startTime") String startTime, @Param("endTime") String endTime);

    //获取所有监测点的干扰源类型终
    List<Map<String,String>> getTypeList(@Param("list") List<Integer> list);

    //根据干扰源类型终区分监测点
    List<Integer> getMonitorByType(@Param("list") List<Integer> list,@Param("type")String type);

    //获取所有监测点的电压等级
    List<Map<String,String>> getVolList(@Param("list") List<Integer> list);

    //根据电压等级区分监测点
    List<Integer> getMonitorByVol(@Param("list") List<Integer> list,@Param("type")String vol);

    /**
     * 获取区域下**指标日均超标占比
     */
    AreaOverNoraml getAvg(@Param("list") List<Integer> list, @Param("startTime") String startTime, @Param("endTime") String endTime);

    List<Integer> getMonitorNature(@Param("list") List<Integer> list,@Param("powerId") Integer powerId);
}
