package com.njcn.event.service.majornetwork;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.njcn.common.pojo.param.StatisticsBizBaseParam;
import com.njcn.common.pojo.response.HttpResult;
import com.njcn.device.pq.pojo.param.GridDiagramParam;
import com.njcn.device.pq.pojo.vo.GridDiagramVO;
import com.njcn.event.pojo.dto.EventCount;
import com.njcn.event.pojo.param.EventBaseParam;
import com.njcn.event.pojo.param.UniversalFrontEndParam;
import com.njcn.event.pojo.po.RmpEventDetailPO;
import com.njcn.event.pojo.vo.AdvanceEventDetailVO;
import com.njcn.event.pojo.vo.EventDetailVO;
import com.njcn.event.pojo.vo.RmpEventDetailVO;
import com.njcn.harmonic.pojo.param.StatSubstationBizBaseParam;
import com.njcn.event.pojo.po.RMpEventDetailM;
import com.njcn.system.pojo.po.DictData;
import com.njcn.web.pojo.param.BaseParam;
import org.springframework.web.bind.annotation.RequestBody;

import java.util.List;
import java.util.Map;

/**
 * 暂态事件明细
 *
 * @author yzh
 * @date 2022/10/12
 */

public interface RmpEventDetailService extends IService<RmpEventDetailPO> {

    /**
     * 获取暂态事件明细
     *
     * @param param 条件参数
     * @return 暂态事件明细
     */
    Page<RmpEventDetailVO> getRmpEventDetail(UniversalFrontEndParam param);

    /**
     * 获取暂态指标类型列表
     *
     * @return 暂态指标类型列表
     */
    List<DictData> getEventStatisList();


    /**
     *
     * @author cdf
     * @date 2023/5/17
     */
    RmpEventDetailVO getTransientDetailById(String eventId,String sysType,Integer smallType);


    Page<AdvanceEventDetailVO> querySagEvents(BaseParam baseParam);



    /**
     *
     * @author cdf
     * @date 2023/7/28
     */
    RmpEventDetailPO queryEventDetailByEventId(String eventId);

    GridDiagramVO getEventLevelEvaluation(StatSubstationBizBaseParam param);

    List<EventDetailVO> getEventDetailByList(GridDiagramParam param);

    /**
     * @Description: 根据监测点获取暂态短时中断和暂态赞升暂降
     * @param param
     * @return: java.util.List<java.lang.String>
     * @Author: wr
     * @Date: 2024/5/4 17:08
     */
    RMpEventDetailM getEventDetailByLine(StatisticsBizBaseParam param);


    List<Map<String,Object>> getImMonitorEvents(EventBaseParam param);


    List<EventCount> getEventCount(GridDiagramParam param);

    Page<AdvanceEventDetailVO> getEventByLineIdsCount(EventBaseParam.Info param);
}
