package com.ruoyi.energymeter.provider; import com.ruoyi.energymeter.dto.MeterArchive; import com.ruoyi.energymeter.dto.MeterQuarterPoint; import com.ruoyi.energymeter.dto.MeterReadingPoint; import com.ruoyi.energymeter.dto.MeterUsagePoint; import java.time.LocalDate; import java.util.List; /** * 第三方表计数据源。 */ public interface MeterProviderClient { /** * 查询并严格匹配一条表计档案;匹配不到时抛出 NOT_FOUND。 */ MeterArchive queryArchive(String meterType, String address); /** * 查询期间日用量。 * * @param providerMeterId 第三方设备ID,气表用量接口要求传 ID 而不是通信地址 */ List queryDailyUsage(String meterType, String address, String providerMeterId, LocalDate start, LocalDate end); /** * 查询时点示值。 */ List queryReadings(String meterType, String address, String providerMeterId, LocalDate start, LocalDate end); /** * 查询 15 分钟粒度电量(当前仅电表支持,来自 ElectricQuantity 的 mi15 数据)。 * *

返回的时间是时间片结束时间;active / reactive 为该时间片内的电量。

*/ List queryQuarterUsage(String meterType, String address, String providerMeterId, LocalDate start, LocalDate end); /** * 是否处于演示数据模式。 */ boolean mockMode(); /** * 是否已配置第三方授权码;未配置且非演示模式时不允许创建采集任务。 */ boolean hasApiKey(); }