package com.njcn.csharmonic.service;



import com.njcn.csharmonic.pojo.dto.report.OverLimitInfo;
import com.njcn.csharmonic.pojo.param.report.ReportQueryParam;
import com.njcn.csharmonic.pojo.vo.report.ReportValue;

import java.util.List;

/**
 * 谐波报告
 */
public interface ReportService {

    /**
     * 限值
     * @param param
     * @return
     */
    OverLimitInfo getOverLimitData(ReportQueryParam param);

    /**
     * 基波增幅
     * @param param
     * @return
     */
    List<ReportValue> getVirtualData(ReportQueryParam param);

    /**
     * 功率
     * @param param
     * @return
     */
    List<ReportValue> getPowerData(ReportQueryParam param);

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

    /**
     * 电压偏差
     * @param param
     * @return
     */
    List<ReportValue> getVdeviation(ReportQueryParam param);

    /**
     * 畸变率
     * @param param
     * @return
     */
    List<ReportValue> getDistortionData(ReportQueryParam param);

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

    /**
     * 三相不平衡
     * @param param
     * @return
     */
    List<ReportValue> getThreephase(ReportQueryParam param);

    /**
     * 谐波电流
     * @param param
     * @return
     */
    List<ReportValue> getICurrent(ReportQueryParam param);

    /**
     * 谐波电压
     * @param param
     * @return
     */
    List<ReportValue> getVoltageRate(ReportQueryParam param);

    /**
     * 间谐波
     * @param param
     * @return
     */
    List<ReportValue> getInharmVeRate(ReportQueryParam param);

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