cjl
2023-08-21 ac8bf95409ef0fe471e0fc195b2af1f36daf6676
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
<?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.moral.api.mapper.DeviceMapper">
 
    <!-- 通用查询映射结果 -->
    <resultMap id="BaseResultMap" type="com.moral.api.entity.Device">
        <id column="id" property="id"/>
        <result column="name" property="name"/>
        <result column="mac" property="mac"/>
        <result column="address" property="address"/>
        <result column="longitude" property="longitude"/>
        <result column="latitude" property="latitude"/>
        <result column="state" property="state"/>
        <result column="operate_ids" property="operateIds"/>
        <result column="monitor_point_id" property="monitorPointId"/>
        <result column="organization_id" property="organizationId"/>
        <result column="guid" property="guid"/>
        <result column="device_version_id" property="deviceVersionId"/>
        <result column="profession" property="profession"/>
        <result column="tech" property="tech"/>
        <result column="detector" property="detector"/>
        <result column="purchaser" property="purchaser"/>
        <result column="create_time" property="createTime"/>
        <result column="update_time" property="updateTime"/>
        <result column="install_time" property="installTime"/>
        <result column="is_delete" property="isDelete"/>
        <result column="extend" property="extend"/>
        <result column="town_code" property="townCode"/>
        <result column="dev_num" property="devNum"/>
    </resultMap>
 
    <!--监测因子趋势图数据-->
    <select id="getTrendChartData" resultType="java.util.Map">
        SELECT mac,
        DATE_FORMAT(`time`,#{dateFormat}) AS `time`,
        `value`->'$.${sensorCode}' AS '${sensorCode}'
        FROM history_${timeUnits}
        WHERE mac IN
            <foreach collection="macs" item="mac" index="index" open="(" close=")" separator=",">
                #{mac}
            </foreach>
        AND `time` <![CDATA[>=]]> #{start}
        AND `time` <![CDATA[<]]> #{end}
        ORDER BY `time`
    </select>
    <select id="deviceList" resultMap="BaseResultMap">
        SELECT
            t.latitude,
            t.longitude,
            t.mac,
            t.state
        FROM
            device t
                inner JOIN monitor_point p on p.id = t.monitor_point_id and p.is_delete = 0
                and p.organization_id in (
                    SELECT t1.id FROM organization t1
                    where t1.id = #{organizationId} or t1.parent_id = #{organizationId})
        <if test="region != null">
            and ${region} = #{regionCode}
        </if>
        WHERE
            t.state <![CDATA[ <> ]]> '0'  and t.is_delete = 0
        order by t.id desc
    </select>
</mapper>