package com.njcn.event.mapper.distribution;

import com.njcn.event.pojo.po.EventDistributionStatisticsPO;
import com.njcn.event.pojo.po.EventDurationLineChartPO;
import com.njcn.event.pojo.po.EventFeatureAmplitudeLineChartPO;
import com.njcn.event.pojo.po.RmpEventDetailPO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 配网-暂态事件分布统计
 *
 * @author yzh
 * @date 2022/10/28
 */
@Mapper
public interface PwEventCategoryDetailsMapper {

    /**
     * 获取配网暂态指标分布统计
     *
     * @param monitorIdList 监测点id
     * @param startTime     开始时间
     * @param endTime       结束时间
     * @return com.njcn.event.pojo.po.EventDistributionStatisticsPO
     * @author yzh
     * @date 2022/10/31
     */
    EventDistributionStatisticsPO getPwEventCategoryDetailsMapper(@Param("monitorIdList") List<String> monitorIdList,
                                                                  @Param("startTime") String startTime,
                                                                  @Param("endTime") String endTime);

    /**
     * 获取配网持续时间折线图
     *
     * @param monitorIdList 监测点id
     * @param startTime     开始时间
     * @param endTime       结束时间
     * @return 持续时间折线图
     * @author yzh
     * @date 2022/10/31
     */
    EventDurationLineChartPO getPwEventDurationLineChart(@Param("monitorIdList") List<String> monitorIdList,
                                                         @Param("startTime") String startTime,
                                                         @Param("endTime") String endTime);

    /**
     * 获取配网特征幅值折线图
     *
     * @param monitorIdList 监测点id
     * @param startTime     开始时间
     * @param endTime       结束时间
     * @return com.njcn.event.pojo.po.EventFeatureAmplitudeLineChartPO
     * @author yzh
     * @date 2022/10/31
     */
    EventFeatureAmplitudeLineChartPO getPwEventFeatureAmplitudeLineChart(@Param("monitorIdList") List<String> monitorIdList,
                                                                         @Param("startTime") String startTime,
                                                                         @Param("endTime") String endTime);

    /**
     * 获取配网监测点暂态事件明细数据
     *
     * @param monitorIdList 监测点id
     * @param startTime     开始时间
     * @param endTime       结束时间
     * @return java.util.List<com.njcn.event.pojo.po.RmpEventDetailPO>
     * @author yzh
     * @date 2022/10/31
     */
    List<RmpEventDetailPO> getPwRmpEventDetail(@Param("monitorIdList") List<String> monitorIdList,
                                               @Param("startTime") String startTime,
                                               @Param("endTime") String endTime);
}
