package com.yfd.platform.modules.patroltask.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yfd.platform.modules.patroltask.domain.AlarmLog;

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

/**
 * <p>
 * 告警日志表 Mapper 接口
 * </p>
 *
 *
 * @since 2023-05-03
 */
public interface AlarmLogMapper extends BaseMapper<AlarmLog> {

    /**********************************
     * 用途说明: 静默监视查询
     * 参数说明 stationId
     * 参数说明 areaId
     * 参数说明 patrolDeviceName
     * 参数说明 monitorType
     * 返回值说明: java.util.List<java.util.Map<java.lang.String,java.lang.Object>>
     ***********************************/
    Page<Map<String, Object>> getAlarmListByType(Page<Map<String, Object>> page, String stationId, String areaId,
                                                 String patrolDeviceName, String monitorType);

    /**********************************
     * 用途说明: 根据设备编号查询告警列表
     * 参数说明 page
     * 参数说明 patrolDeviceCode
     * 参数说明 monitorType
     * 参数说明 startDate
     * 参数说明 endDate
     * 返回值说明: com.baomidou.mybatisplus.extension.plugins.pagination.Page<java.util.Map<java.lang.String,java.lang
     * .Object>>
     ***********************************/
    Page<Map<String, Object>> getAlarmListPage(Page<Map<String, Object>> page, String patrolDeviceCode,
                                               String monitorType, String startDate, String endDate);

    /**********************************
     * 用途说明: 告警准确率统计
     * 参数说明 stationId 变电站Id
     * 返回值说明: java.util.Map<java.lang.String,java.lang.Object>
     ***********************************/
    Map<String, Object> getConfirmationRate(String stationId);

    /**********************************
     * 用途说明: 查询报警信息
     * 参数说明 stationId
     * 返回值说明: java.util.List<java.util.Map<java.lang.String,java.lang.Object>>
     ***********************************/
    List<Map<String, Object>> getAlarmLogList(String stationId);

    Map<String, Object> getAlarmLogById(String id);

    List<AlarmLog> getNotCheckAlarmCount(String stationId);

    Page<Map<String, Object>> getAlarmLogPage(Page<Map<String, Object>> page, String stationCode, String taskAlarmType, String alarmLevel, String checkFlag, String alarmSourceType, String startDate, String endDate);

}
