package com.zcxk.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.zcxk.dto.*;
import com.zcxk.vo.AlarmDetailsVo;

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

/**
 * @description
 * @auto yjy
 * @data 2020-12-2
 */
public interface OnlineMonitorService {

    /**
     * 查询实时报警信息
     * @return
     */
    List<AlarmDetailsDto> selectAlarmDetails(AlarmDetailsDto alarmDetailsDto);
    /**
     * 查询实时报警数量
     * @return
     */
    List<Map<String, Object>> selectAlarmCount(AlarmDetailsDto alarmDetailsDto);
    /**
     * 查询地图悬浮数据
     * @return
     */
    List<MonitorDataCollectDto> selectMapSuspension(MonitorDataCollectDto monitorDataCollectDto);
    /**
     * 查询地图悬浮数据
     * @return
     */
    List<MonitorDataCollectDto> selectMapSuspensionForMonth(MonitorDataCollectDto monitorDataCollectDto);
    /**
     * 查询地图参数数据
     * @return
     */
    List<MonitorDataCollectDto> selectMapParam(MonitorDataCollectDto monitorDataCollectDto);
    /**
     * 分页查询
     * @return
     */
    IPage<OnlineDataDto> selectPage(IPage<OnlineDataDto> page,  OnlineDataDto onlineDataDto);
    /**
     * 查询设备报警分析
     * @return
     */
    List<Map<String, Object>> selectAlarmStats(AlarmDetailsDto alarmDetailsDto);
    /**
     * 查询场景对应参数数据
     * @return
     */
    List<MonitorDataCollectDto> selectSceneParam(MonitorDataCollectDto monitorDataCollectDto);
    /**
     * 按管网名称分类查询设备数量
     * @return
     */
    List<Map<String, Object>> selectDeviceCount(OnlineDataDto onlineDataDto);
    /**
     * 查询设备地图参数数据
     * @return
     */
    List<MonitorDataCollectDto> selectDeviceMapParam(MonitorDataCollectDto monitorDataCollectDto);
    /**
     * 统计设备合格数据
     * @return
     */
    List<DeviceCountStatsDto> statsDeviceQualified(OnlineDataDto onlineDataDto);
    /**
     * 统计今日累计流量
     * @return
     */
    List<MonitorDataCollectDto> statsDeviceFlow(OnlineDataDto onlineDataDto);
    /**
     * 统计压力、瞬时流量的分布区间
     * @return
     */
    DistributeIntervalDto statsDeviceParmCount(OnlineDataDto onlineDataDto);
    /**
     * 管网分页查询
     * @return
     */
    IPage<OnlineDataDto> selectPipeNetPage(IPage<OnlineDataDto> page,  OnlineDataDto onlineDataDto);
    /**
     * 查询管网地图图层
     * @return
     */
    List<PipeNetLayerDto> selectPipeNetLayer(OnlineDataDto onlineDataDto);
    /**
     * 统计从水源地到水龙头汇总数据
     * @return
     */
    DispatchSummaryDto statsDispatchSummary(MonitorDataCollectDto monitorDataCollectDto);

    /**
     * 查询供水排行
     * @param monitorDataCollectDto
     * @return
     */
    List<SecDataCollectDto> selectMapForWholeCompany(MonitorDataCollectDto monitorDataCollectDto);

    /**
     * 查询场景列表
     * @return
     */
    List<OnlineDataDto> selectList(OnlineDataDto onlineDataDto);
    /**
     * 查询管网设备列表
     * @return
     */
    List<OnlineDataDto> selectPipeNetList(OnlineDataDto onlineDataDto);
    /**
     * 查询场景实时状态数量
     * @return
     */
    List<Map<String, Object>> selectStateCount(OnlineDataDto onlineDataDto);

    /**
     * 查询设备报警分析
     * @return
     */
    List<AlarmDetailsVo> selectAlarmStatsInfo(AlarmDetailsQueryDto dto);
}
