package com.njcn.harmonic.mapper;

import cn.hutool.core.date.DateTime;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.njcn.harmonic.pojo.vo.HistoryHarmOverLimitVO;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @author denghuajun
 * @version 1.0.0
 * @date 2022年10月13日 10:05
 */
public interface NormLimitMapper extends BaseMapper<HistoryHarmOverLimitVO> {
    /**
     * 电压偏差
     * @param lineIndex 监测点
     * @param startTime 起始时间
     * @param endTime 结束时间
     * @return 结果
     */
    List<HistoryHarmOverLimitVO> getDyPc(@Param("lineIndex")List<String> lineIndex, @Param("startTime") DateTime startTime, @Param("endTime") DateTime endTime);
    /**
     * 三相电压不平衡度
     * @param lineIndex 监测点
     * @param startTime 起始时间
     * @param endTime 结束时间
     * @return 结果
     */
    List<HistoryHarmOverLimitVO> getSxBpHd(@Param("lineIndex")List<String> lineIndex, @Param("startTime") DateTime startTime, @Param("endTime") DateTime endTime);
    /**
     * 电压总畸变率
     * @param lineIndex 监测点
     * @param startTime 起始时间
     * @param endTime 结束时间
     * @return 结果
     */
    List<HistoryHarmOverLimitVO> getDyZjBl(@Param("lineIndex")List<String> lineIndex, @Param("startTime") DateTime startTime, @Param("endTime") DateTime endTime);
    /**
     * 负序电流
     * @param lineIndex 监测点
     * @param startTime 起始时间
     * @param endTime 结束时间
     * @return 结果
     */
    List<HistoryHarmOverLimitVO> getFxDl(@Param("lineIndex")List<String> lineIndex, @Param("startTime") DateTime startTime, @Param("endTime") DateTime endTime);
    /**
     * 频率
     * @param lineIndex 监测点
     * @param startTime 起始时间
     * @param endTime 结束时间
     * @return 结果
     */
    List<HistoryHarmOverLimitVO> getPl(@Param("lineIndex")List<String> lineIndex, @Param("startTime") DateTime startTime, @Param("endTime") DateTime endTime);
    /**
     * 谐波电压含有率
     * @param lineIndex 监测点
     * @param startTime 起始时间
     * @param endTime 结束时间
     * @param number 次数
     * @return 结果
     */
    List<HistoryHarmOverLimitVO> getXbDyHyl(@Param("lineIndex")List<String> lineIndex, @Param("startTime") DateTime startTime, @Param("endTime") DateTime endTime,@Param("number")Integer number);

    /**
     * 谐波电流幅值
     * @param lineIndex 监测点
     * @param startTime 起始时间
     * @param endTime 结束时间
     * @param number 次数
     * @return 结果
     */
    List<HistoryHarmOverLimitVO> getXbDlFz(@Param("lineIndex")List<String> lineIndex, @Param("startTime") DateTime startTime, @Param("endTime") DateTime endTime,@Param("number")Integer number);
    /**
     * 间谐波电压含有率
     * @param lineIndex 监测点
     * @param startTime 起始时间
     * @param endTime 结束时间
     * @param number 次数
     * @return 结果
     */
    List<HistoryHarmOverLimitVO> getJxbHyl(@Param("lineIndex")List<String> lineIndex, @Param("startTime") DateTime startTime, @Param("endTime") DateTime endTime,@Param("number")Integer number);
    /**
     * 长时闪变
     * @param lineIndex 监测点
     * @param startTime 起始时间
     * @param endTime 结束时间
     * @return 结果
     */
    List<HistoryHarmOverLimitVO> getCsSb(@Param("lineIndex")List<String> lineIndex, @Param("startTime") DateTime startTime, @Param("endTime") DateTime endTime);
}
