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