jinpengyong
2021-05-14 efaa96ca645875270668de1ec3a766900847732a
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
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
<?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="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"/>
    </resultMap>
 
    <resultMap id="resultMap" type="com.moral.api.pojo.vo.device.DeviceVO" extends="BaseResultMap">
        <!--行业-->
        <result column="profession_name" property="professionName"/>
 
        <!--工艺-->
        <result column="tech_name" property="techName"/>
 
        <!--设备检测器-->
        <result column="detector_name" property="detectorName"/>
 
        <!--采购商-->
        <result column="purchaser_name" property="purchaserName"/>
 
        <!--组织-->
        <association property="organization" javaType="com.moral.api.entity.Organization">
            <result column="org_id" property="id"/>
            <result column="org_name" property="name"/>
        </association>
 
        <!--站点-->
        <association property="monitorPoint" javaType="com.moral.api.entity.MonitorPoint">
            <result column="mp_id" property="id"/>
            <result column="mp_name" property="name"/>
            <result column="mp_address" property="address"/>
        </association>
 
        <!--型号-->
        <association property="version" javaType="com.moral.api.entity.Version">
            <result column="version_id" property="id"/>
            <result column="version_name" property="name"/>
        </association>
 
        <!--设备维护人-->
        <collection property="operators" ofType="com.moral.api.entity.ManageAccount">
            <result column="operate_id" property="id" jdbcType="INTEGER"/>
            <result column="operate_name" property="userName" jdbcType="VARCHAR"/>
        </collection>
    </resultMap>
 
    <select id="selectDeviceInfoById" resultMap="resultMap">
        SELECT
            d.id,
            d.`name`,
            d.mac,
            d.address,
            d.longitude,
            d.latitude,
            d.operate_ids,
            d.organization_id,
            d.monitor_point_id,
            d.device_version_id,
            d.profession,
            d.tech,
            d.detector,
            d.purchaser,
            d.create_time,
            d.extend,
            o.id org_id,
            o.`name` org_name,
            mp.id mp_id,
            mp.`name` mp_name,
            mp.address mp_address,
            ma.id operate_id,
            v.id version_id,
            v.`name` version_name,
            ma.user_name operate_name,
            profession.dataValue profession_name,
            tech.dataValue tech_name,
            detector.dataValue detector_name,
            purchaser.dataValue purchaser_name
        FROM device d
                 LEFT JOIN version v
                           on d.device_version_id=v.id
                 LEFT JOIN `organization` o
                           ON d.organization_id = o.id
                 LEFT JOIN `monitor_point` mp
                           ON mp.id = d.monitor_point_id
                 LEFT JOIN `manage_account` ma
                           ON FIND_IN_SET
                               (
                                   ma.id, (SELECT operate_ids FROM device WHERE id = d.id)
                               )
                 LEFT JOIN
             (
                 SELECT sdt.`name`, sdd.dataKey, sdd.dataValue
                 FROM sys_dict_type sdt,
                      sys_dict_data sdd
                 WHERE sdt.id = sdd.dict_type_id
                   AND sdt.`name` = 'profession'
             ) profession
             ON d.profession = profession.dataKey
 
                 LEFT JOIN
             (
                 SELECT sdt.`name`, sdd.dataKey, sdd.dataValue
                 FROM sys_dict_type sdt,
                      sys_dict_data sdd
                 WHERE sdt.id = sdd.dict_type_id
                   AND sdt.`name` = 'tech'
             ) tech
             ON d.tech = tech.dataKey
 
                 LEFT JOIN
             (
                 SELECT sdt.`name`, sdd.dataKey, sdd.dataValue
                 FROM sys_dict_type sdt,
                      sys_dict_data sdd
                 WHERE sdt.id = sdd.dict_type_id
                   AND sdt.`name` = 'detector'
             ) detector
             ON d.detector = detector.dataKey
 
                 LEFT JOIN
             (
                 SELECT sdt.`name`, sdd.dataKey, sdd.dataValue
                 FROM sys_dict_type sdt,
                      sys_dict_data sdd
                 WHERE sdt.id = sdd.dict_type_id
                   AND sdt.`name` = 'purchaser'
             ) purchaser
             ON d.purchaser = purchaser.dataKey
        WHERE d.id = #{deviceId}
    </select>
 
 
</mapper>