kaiyu
2021-05-20 e7bc156f901b06e5af54cfe86fe53e7491af7b7f
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
66
67
68
69
70
71
72
73
74
75
76
<?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.VersionMapper">
 
    <!-- 通用查询映射结果 -->
    <resultMap id="BaseResultMap" type="com.moral.api.entity.Version">
        <id column="id" property="id"/>
        <result column="name" property="name"/>
        <result column="create_time" property="createTime"/>
        <result column="update_time" property="updateTime"/>
        <result column="is_delete" property="isDelete"/>
        <result column="desc" property="desc"/>
    </resultMap>
 
    <!--带有因子以及单位的查询map-->
    <resultMap id="VersionSensorUnitMap" type="com.moral.api.entity.Version">
        <id property="id" column="id"></id>
        <result property="name" column="name"></result>
        <result property="desc" column="desc"></result>
        <result property="createTime" column="create_time"></result>
        <result property="updateTime" column="update_time"></result>
        <collection property="sensors" column="id" ofType="com.moral.api.entity.Sensor">
            <id property="id" column="sid"></id>
            <result property="name" column="sname"></result>
            <result property="code" column="scode"></result>
            <result property="unitKey" column="dataKey"></result>
            <result property="unit" column="dataValue"></result>
        </collection>
    </resultMap>
 
    <select id="queryVersionsAndSensorUnitByIds" resultMap="VersionSensorUnitMap">
    SELECT
      v.`id`,v.`name`,v.`desc`,v.`create_time`,v.`update_time`,s.`id` AS sid,s.`code` as scode,s.`name` AS sname ,u.dataKey,u.dataValue
    FROM
      `version` v
    JOIN
      version_sensor_unit vsu
    ON
      v.`id` = vsu.`version_id` AND vsu.`is_delete` = 0
    JOIN
      sensor s
    ON
      s.`code` = vsu.`sensor_code` AND s.`is_delete` = 0
    JOIN
    (
      SELECT
        sdd.datakey,sdd.dataValue,sdd.is_delete
      FROM
        sys_dict_data sdd
      JOIN
        sys_dict_type sdt
      ON
        sdt.`name` = 'unit' AND sdt.`id` = sdd.`dict_type_id` AND sdt.`is_delete` = 0
      WHERE
        sdd.`is_delete` = 0
    ) u
    ON
      vsu.unit_key = u.dataKey AND u.is_delete = 0
    WHERE
      v.`id`
    in
    <foreach collection="list" item="vid" open="(" separator="," close=")">
        #{vid}
    </foreach>
    AND
        v.`is_delete` = 0
    ORDER BY FIELD
        (v.`id`,
        <foreach collection="list" item="vid"  separator="," >
            #{vid}
        </foreach>
        )
 
    </select>
 
</mapper>