package com.njcn.event.service.majornetwork;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.njcn.event.pojo.dto.wave.WaveDataDTO;
import com.njcn.event.pojo.param.*;
import com.njcn.event.pojo.po.EventDetail;
import com.njcn.event.pojo.vo.*;

import javax.servlet.http.HttpServletResponse;
import java.text.ParseException;
import java.util.List;

/**
 * pqs-event
 * 暂降 监测点
 * @author cdf
 * @date 2022/6/23
 */
public interface EventAnalysisService {

    /**
     * 获取暂降事件分析
     * @author cdf
     * @date 2022/6/23
     */
    Page<EventDetail> getEventAnalyse(EventBaseParam eventBaseParam);

    /**
     * 获取坐标
     * @param statisticsParam
     * @return
     */
    List<CoordsVO> getCoords(StatisticsParam statisticsParam);

    /**
     *获取Disdip表格
     * @param statisticsParam
     * @return
     */
    List<DISDIPVO> eventDisdip(StatisticsParam statisticsParam);

    /**
     * 获取IEC411数据
     * @param statisticsParam
     * @return
     */
    List<IEC411VO> IEC411(StatisticsParam statisticsParam);

    /**
     * 获取IEC28数据
     * @param statisticsParam
     * @return
     */
    List<IEC28VO> IEC28(StatisticsParam statisticsParam);

    /**
     * 获取时间列表
     * @param statisticsParam
     * @return
     */
    List<TimeVO> getReasonTypeTime(StatisticsParam statisticsParam) throws ParseException;

    /**
     * 获取详细数据对象
     * @param statisticsParam
     * @return
     */
    StatisticVO getStatistic(StatisticsParam statisticsParam);

    ProbabilityVO getProbabilityDistribution(StatisticsParam statisticsParam);
    /**
     * 获取点状表格数据
     * @param statisticsParam
     * @return
     */
    VoltageToleranceCurveVO getPlot(StatisticsParam statisticsParam);

    /**
     *监测点暂降事件分析查询
     * @author zbj
     * @date 2022/7/25
     */
    Page<WaveTypeVO> getMonitorEventAnalyseQuery(EventBaseParam eventBaseParam);



    /**
     *监测点事件波形下载
     * @author zbj
     * @date 2022/7/28
     */
    //HttpServletResponse downloadMonitorEventWaveFile(WaveFileParam waveFileParam, HttpServletResponse response) throws Exception;



}
