package com.zksy.base.radar.service;

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

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

/**
* @author Administrator
* @description 针对表【radar_data(平升雷达流量计数据表)】的数据库操作Service
* @createDate 2026-01-16 15:37:38
*/
public interface RadarDataService extends IService<RadarData> {

    /**
     * 分页查询雷达流量计数据
     */
    IPage<RadarData> queryPage(Page<RadarData> page, String deviceCode, LocalDateTime startTime, LocalDateTime endTime);

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

    /**
     * 按小时统计瞬时流量趋势
     */
    List<Map<String, Object>> statFlowTrendByHour(String deviceCode, LocalDateTime startTime, LocalDateTime endTime);

    /**
     * 查询异常数据（流速/水位超阈值）
     */
    IPage<RadarData> queryAbnormalData(Page<RadarData> page, Double speedThreshold, Double levelThreshold,
                                       LocalDateTime startTime, LocalDateTime endTime);

    /**
     * 获取设备最新监测数据
     */
    RadarData getLatestDataByDevice(String deviceCode);

    /**
     * 获取所有设备编码
     */
    List<String> getAllDeviceCodes();
    List<String> getDeviceGroup();
}
