package com.njcn.harmonic.mapper;

import com.njcn.harmonic.pojo.param.ReportQueryParam;
import com.njcn.harmonic.pojo.vo.ReportValue;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 谐波报告查询
 */
public interface ReportMapper {
    /**
     * 获取电流有效值
     * @return
     */
    List<ReportValue> getVirtualDataI(@Param("param") ReportQueryParam param);

    /**
     * 获取电压有效值
     * @return
     */
    List<ReportValue> getVirtualDataV(@Param("param") ReportQueryParam param);

    /**
     *  CP95条数
     * @param param
     * @return
     */
    Integer getTotalCP95Day(@Param("param")ReportQueryParam param);
    /**
     *  CP95条数
     * @param param
     * @return
     */
    Integer getTotalPltCP95Day(@Param("param")ReportQueryParam param);
    /**
     *  CP95条数
     * @param param
     * @return
     */
    Integer getTotalPstCP95Day(@Param("param")ReportQueryParam param);


    List<ReportValue> getVVirtualData(@Param("param")ReportQueryParam param);

    /**
     * 获取有功功率
     * @param param
     * @return
     */
    List<ReportValue> getPowerP(@Param("param")ReportQueryParam param);

    /**
     * 无功功率
     * @param param
     * @return
     */
    List<ReportValue> getPowerQ(@Param("param")ReportQueryParam param);

    /**
     * 视在功率
     * @param param
     * @return
     */
    List<ReportValue> getPowerS(@Param("param")ReportQueryParam param);

    /**
     *  功率因数
     * @param param
     * @return
     */
    List<ReportValue> getPF(@Param("param")ReportQueryParam param);

    /**
     * 短时闪变
     * @param param
     * @return
     */
    List<ReportValue> getFlickerData(@Param("param")ReportQueryParam param);

    /**
     * 长时闪变
     * @param param
     * @return
     */
    List<ReportValue> getLFlickerData(@Param("param")ReportQueryParam param);

    /**
     * 电压负偏差
     * @param param
     * @return
     */
    List<ReportValue> getUVdeviationData(@Param("param")ReportQueryParam param);

    /**
     * 电压正偏差
     * @param param
     * @return
     */
    List<ReportValue> getLVdeviationData(@Param("param")ReportQueryParam param);

    /**
     * 获取电压畸变率
     * @param param
     * @return
     */
    List<ReportValue> getDistortionDataV(@Param("param")ReportQueryParam param);

    /**
     * 获取电流畸变率
     * @param param
     * @return
     */
    List<ReportValue> getDistortionDataI(@Param("param")ReportQueryParam param);

    /**
     *频率
     * @param param
     * @return
     */
    List<ReportValue> getFrequencyData(@Param("param")ReportQueryParam param);

    /**
     *频率
     * @param param
     * @return
     */
    List<ReportValue> getDEVFrequencyData(@Param("param")ReportQueryParam param);

    /**
     * 负序电流
     * @param param
     * @return
     */
    List<ReportValue> getINegData(@Param("param")ReportQueryParam param);
}
