liujie
2026-01-15 f94782b7302f761799c1a0fbc155bed2d4dc504f
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
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.system.mapper.DeviceUsageMapper">
 
    <!-- 通用查询映射结果 -->
    <resultMap id="BaseResultMap" type="com.ruoyi.system.model.DeviceUsage">
        <id column="id" property="id" />
        <result column="create_time" property="createTime" />
        <result column="deleted" property="deleted" />
        <result column="name" property="name" />
        <result column="update_time" property="updateTime" />
        <result column="properties" property="properties" />
        <result column="creator_id" property="creatorId" />
        <result column="device_id" property="deviceId" />
        <result column="project_id" property="projectId" />
        <result column="disabled" property="disabled" />
    </resultMap>
    <select id="getDeviceUsageList" resultType="java.lang.String">
        select t3.properties from device_usage t1
        left join device t2 on t1.device_id = t2.id
        where t1.project_id =#{id}
    </select>
    <select id="getDeviceList" resultType="com.ruoyi.system.vo.DeviceListVo">
 
        select t1.id, t1.name, t1.create_time, t1.properties,   t1.type, latest.record_time as checkTime
        from device t1
                 left join device_usage t2 on t1.id = t2.device_id
                 left join (
                     select device_id, max(create_time) as record_time
                     from record
                     group by device_id
                 ) latest on t1.id = latest.device_id
        where t2.project_id = #{query.projectId} and t2.deleted = 0
        <if test="query.type != null">
            and t1.type = #{query.type}
        </if>
        <if test="query.content!= null and query.content!=''">
            and t1.name like CONCAT('%', #{query.content}, '%')
        </if>
        <if test="query.startTime != null and query.startTime != ''">
            and latest.record_time >= #{query.startTime}
        </if>
        <if test="query.endTime != null and query.endTime != ''">
            and   #{query.endTime} >=latest.record_time
        </if>
        order by latest.record_time desc
    </select>
 
</mapper>