gongchunyi
昨天 e9b4ceeea014f9d81263672f3d9c46a567c39591
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
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();
}