package com.zksy.base.water.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.zksy.base.water.domain.WaterMonitorData;

import java.time.LocalDateTime;
import java.util.List;
import java.util.Map;

/**
 * 水位监测数据 业务层
 * @author zksy
 */
public interface WaterMonitorDataService extends IService<WaterMonitorData> {
    /**
     * 分页查询水位监测数据
     */
    IPage<WaterMonitorData> selectWaterMonitorDataPage(Page<WaterMonitorData> page, WaterMonitorData waterMonitorData);

    /**
     * 按设备分组统计水位数据
     */
    List<Map<String, Object>> statisticsByDevice(LocalDateTime startTime, LocalDateTime endTime);

    /**
     * 查询水位超限数据
     */
    IPage<WaterMonitorData> selectOverLimitData(Page<WaterMonitorData> page, String threshold,
                                                LocalDateTime startTime, LocalDateTime endTime);

    /**
     * 统计指定时间段内在线设备数量（按天）
     */
    List<Map<String, Object>> statisticsOnlineDevice(LocalDateTime startTime, LocalDateTime endTime);

    /**
     * 获取最新的水位监测数据（按设备分组）
     */
    List<WaterMonitorData> getLatestDataByDevice();
}