package com.ruoyi.energymeter.mapper;
|
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
import com.ruoyi.energymeter.pojo.EnergyMeterDevice;
|
import org.apache.ibatis.annotations.Mapper;
|
import org.apache.ibatis.annotations.Param;
|
import org.apache.ibatis.annotations.Select;
|
import org.apache.ibatis.annotations.Update;
|
|
import java.time.LocalDateTime;
|
import java.util.List;
|
|
/**
|
* 水电表绑定设备 Mapper。
|
*/
|
@Mapper
|
public interface EnergyMeterDeviceMapper extends BaseMapper<EnergyMeterDevice> {
|
|
/**
|
* 扫描全部租户下已启用、已验证、且为第三方接入的设备,用于系统级自动同步。
|
* 手工抄表设备由用户录表,不参与定时采集。
|
*/
|
@Select("SELECT * FROM energy_meter_device WHERE enabled = 1 AND bind_status = 'VERIFIED' "
|
+ "AND source_type = 'PROVIDER' ORDER BY id")
|
List<EnergyMeterDevice> selectScannableDevices();
|
|
/**
|
* 记录采集成功并清空上次错误。
|
*/
|
@Update("UPDATE energy_meter_device SET last_success_at = #{now}, last_error_code = NULL, "
|
+ "last_error_message = NULL WHERE id = #{id}")
|
int markCollectSuccess(@Param("id") Long id, @Param("now") LocalDateTime now);
|
|
/**
|
* 记录采集失败的脱敏错误类别与摘要。
|
*/
|
@Update("UPDATE energy_meter_device SET last_error_code = #{code}, last_error_message = #{message} WHERE id = #{id}")
|
int markCollectFailure(@Param("id") Long id, @Param("code") String code, @Param("message") String message);
|
}
|