jinpengyong
2021-05-14 efaa96ca645875270668de1ec3a766900847732a
screen-manage/src/main/resources/mapper/DeviceMapper.xml
@@ -27,54 +27,127 @@
    </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">
            <id column="operate_id" property="id" jdbcType="INTEGER"/>
            <result column="operate_id" property="id" jdbcType="INTEGER"/>
            <result column="operate_name" property="userName" jdbcType="VARCHAR"/>
        </collection>
    </resultMap>
    <select id="selectAllDeviceInfo" 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.organization_id,
               d.device_version_id,
               d.profession profession,
               o.id org_id,
               o.`name` org_name,
               ma.id operate_id,
               ma.user_name operate_name,
               sd.dataValue profession_name
        FROM `device` d
        LEFT JOIN `organization` o
        ON d.organization_id = o.id
        LEFT JOIN `manage_account` ma
        ON FIND_IN_SET(
            ma.id, (SELECT operate_ids FROM device)
            )
        LEFT JOIN
    <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
             ) sd
        on sd.`name` = 'profession'
        and d.profession = sd.dataKey
        AND d.is_delete = 0
        ${ew.customSqlSegment}
                   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>