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<MeterUsagePoint> queryDailyUsage(String meterType, String address, String providerMeterId,
|
LocalDate start, LocalDate end);
|
|
/**
|
* 查询时点示值。
|
*/
|
List<MeterReadingPoint> queryReadings(String meterType, String address, String providerMeterId,
|
LocalDate start, LocalDate end);
|
|
/**
|
* 查询 15 分钟粒度电量(当前仅电表支持,来自 ElectricQuantity 的 mi15 数据)。
|
*
|
* <p>返回的时间是时间片结束时间;active / reactive 为该时间片内的电量。</p>
|
*/
|
List<MeterQuarterPoint> queryQuarterUsage(String meterType, String address, String providerMeterId,
|
LocalDate start, LocalDate end);
|
|
/**
|
* 是否处于演示数据模式。
|
*/
|
boolean mockMode();
|
|
/**
|
* 是否已配置第三方授权码;未配置且非演示模式时不允许创建采集任务。
|
*/
|
boolean hasApiKey();
|
}
|