gongchunyi
2 天以前 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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
package com.ruoyi.energymeter.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.ruoyi.energymeter.dto.EnergyMeterDeviceQuery;
import com.ruoyi.energymeter.dto.MeterBindRequest;
import com.ruoyi.energymeter.dto.MeterManualBindRequest;
import com.ruoyi.energymeter.dto.MeterReadingRequest;
import com.ruoyi.energymeter.dto.MeterUpdateRequest;
import com.ruoyi.energymeter.pojo.EnergyMeterDevice;
import com.ruoyi.energymeter.pojo.EnergyMeterMeasurement;
import com.ruoyi.energymeter.vo.MeterArchiveVO;
import com.ruoyi.energymeter.vo.MeterReadingResultVO;
 
import java.util.List;
 
/**
 * 水电表绑定设备服务。
 */
public interface EnergyMeterDeviceService extends IService<EnergyMeterDevice> {
 
    /**
     * 按类型、关键字、状态分页查询当前租户可见设备,并补充最近采集结果。
     */
    IPage<EnergyMeterDevice> pageDevices(Page<EnergyMeterDevice> page, EnergyMeterDeviceQuery query);
 
    /**
     * 设备下拉选项(仅已启用设备)。
     */
    List<EnergyMeterDevice> listDeviceOptions(String meterType);
 
    /**
     * 调用第三方档案接口验证并严格匹配通信地址。
     */
    MeterArchiveVO verifyArchive(String meterType, String meterAddress);
 
    /**
     * 新增本地绑定,成功后异步创建历史补采批次。
     */
    EnergyMeterDevice bind(MeterBindRequest request);
 
    /**
     * 新增手工抄表设备(水表/电表/气表),写入起始表码,不调用第三方接口。
     */
    EnergyMeterDevice addManual(MeterManualBindRequest request);
 
    /**
     * 删除设备:仅允许删除用户新增的手工抄表设备,初始化设备禁止删除。
     */
    void removeDevice(Long id);
 
    /**
     * 手工抄表记录分页(表码 + 本期用量)。
     */
    IPage<EnergyMeterMeasurement> pageReadings(Long meterId, long current, long size);
 
    /**
     * 录入一条手工抄表记录,按期差生成/修正对应日用量。
     */
    MeterReadingResultVO addReading(Long meterId, MeterReadingRequest request);
 
    /**
     * 删除一条手工抄表记录,并重算受影响的日用量。
     */
    void removeReading(Long meterId, Long measurementId);
 
    /**
     * 修改本地显示字段与启停用状态;通信地址不可在此修改。
     */
    EnergyMeterDevice updateLocal(Long id, MeterUpdateRequest request);
 
    /**
     * 获取当前租户下的一台设备,找不到时抛业务异常。
     */
    EnergyMeterDevice getOwnedDevice(Long id);
 
    /**
     * 当前租户下启用的设备(按类型筛选,可为空)。
     */
    List<EnergyMeterDevice> listEnabledDevices(String meterType);
 
    /**
     * 演示数据模式提示。
     */
    boolean mockMode();
}