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();
|
}
|