

package com.lutao.cloud.oil.mapper;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.lutao.cloud.common.data.datascope.CloudBaseMapper;
import com.lutao.cloud.oil.pojo.param.DetectAlarmChartVOParam;
import com.lutao.cloud.oil.pojo.param.EquipmentTagParam;
import com.lutao.cloud.oil.pojo.vo.*;
import com.lutao.entity.PerceptionMonitorAlarmInfo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.time.LocalDate;
import java.util.List;

/**
 * 感知监测报警信息
 *
 * @author guoyc
 * @date 2023-07-20 10:58:39
 */
@Mapper
public interface PerceptionMonitorAlarmInfoMapper extends CloudBaseMapper<PerceptionMonitorAlarmInfo> {

    /**
     * 选择报警列表
     * 报警列表
     *
     * @param platformId 平台id
     * @param page       页面
     * @param tagType    标签类型
     * @return {@link IPage}<{@link AlarmVO}>
     */
    IPage<AlarmVO> selectAlarmList(Page page, @Param("platformId") String platformId, @Param("tagType") Integer tagType);


    /**
     * 查询探测报警列表
     *
     * @param page       页面
     * @param platformId 平台id
     * @param tagType    标签类型
     * @return {@link IPage}<{@link DetectionAlarmVO}>
     */
    IPage<DetectionAlarmVO> selectDetectionAlarmList(Page page,
                                                     @Param("platformId") String platformId,
                                                     @Param("appId")String appId,
                                                     @Param("tagType") Integer tagType,
                                                     @Param("startDate") LocalDate startDate,
                                                     @Param("endDate") LocalDate endDate,
                                                     @Param("oilGasName") String oilGasName,
                                                     @Param("operatingCompany") String operatingCompany);


    /**
     * 关键工艺参数监测报警
     *
     * @param page  页面
     * @param param 参数
     * @return {@link IPage}<{@link EquipmentTagAlarmVO}>
     */
    IPage<EquipmentTagAlarmVO> getEquipmentTagAlarm(Page page, @Param("param") EquipmentTagParam param);

    /**
     * 大屏工艺参数报警
     *
     * @return {@link List}<{@link EquipmentTagAlarmVO}>
     */
    List<ScreenTagAlarmVO> getScreenTagAlarm();

    /**
     * 近1个月关键参数检测预警数据趋势
     *
     * @param param 参数
     * @return {@link TagAlarmTrendVO}
     */
    List<TagAlarmTrendVO> getAlarmTrend(@Param("param") EquipmentTagParam param);

    /**
     * 火气报警图表
     *
     * @param param param
     * @return {@link List}<{@link DetectAlarmChartVO}>
     */
    List<DetectAlarmChartVO> getDetectAlarmChart(@Param("param") DetectAlarmChartVOParam param);
}
