cjl
2023-07-10 7b03a1d14a165cc6932067e17f1fb30f68fd34a5
screen-manage/src/main/resources/mapper/DeviceMapper.xml
@@ -14,6 +14,7 @@
        <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"/>
@@ -24,12 +25,10 @@
        <result column="install_time" property="installTime"/>
        <result column="is_delete" property="isDelete"/>
        <result column="extend" property="extend"/>
        <result column="town_code" property="townCode"/>
    </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"/>
@@ -49,7 +48,15 @@
        <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"/>
            <result column="mp_area_code" property="areaCode"/>
            <result column="mp_city_code" property="cityCode"/>
            <result column="mp_province_code" property="provinceCode"/>
        </association>
        <!--国控站点-->
        <association property="govMonitorPoint" javaType="com.moral.api.entity.GovMonitorPoint">
            <result column="gmp_guid" property="guid"/>
            <result column="gmp_name" property="name"/>
        </association>
        <!--型号-->
@@ -58,11 +65,51 @@
            <result column="version_name" property="name"/>
        </association>
        <!--乡镇街道-->
        <association property="town" javaType="java.util.HashMap">
            <result column="town_code" property="townCode"/>
            <result column="town_name" property="townName"/>
        </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>
        <!--行业-->
        <collection property="professions" ofType="java.util.HashMap">
            <result column="profession_key" property="dataKey" jdbcType="INTEGER"/>
            <result column="profession_value" property="dataValue" jdbcType="VARCHAR"/>
        </collection>
    </resultMap>
    <resultMap id="queryDeviceUnitAlarmInfoMap" type="com.moral.api.entity.Device">
        <id column="d.id" property="id"/>
        <result column="d.name" property="name"/>
        <result column="d.mac" property="mac"/>
        <result column="d.address" property="address"/>
        <result column="d.longitude" property="longitude"/>
        <result column="d.latitude" property="latitude"/>
        <result column="d.operate_ids" property="operateIds"/>
        <result column="d.monitor_point_id" property="monitorPointId"/>
        <result column="d.organization_id" property="organizationId"/>
        <result column="oua.version_id" property="deviceVersionId"/>
        <result column="d.profession" property="profession"/>
        <result column="d.tech" property="tech"/>
        <result column="d.detector" property="detector"/>
        <result column="d.purchaser" property="purchaser"/>
        <result column="d.extend" property="extend" javaType="String" />
        <association property="version" column="d.device_version_id" javaType="com.moral.api.entity.Version">
            <id column="v.id" property="id"></id>
            <result column="v.name" property="name"></result>
            <collection column="d.device_version_id" property="sensors" ofType="com.moral.api.entity.Sensor">
                <result column="oua.sensor_code" property="code" ></result>
                <result column="oua.unit_key" property="unitKey"></result>
                <result column="oua.show_unit_key" property="showUnitKey"></result>
                <result column="oua.alarm_level" property="alarmLevel" javaType="String" ></result>
            </collection>
        </association>
    </resultMap>
    <select id="selectDeviceInfoById" resultMap="resultMap">
@@ -82,17 +129,25 @@
            d.detector,
            d.purchaser,
            d.create_time,
            d.install_time,
            d.extend,
            d.town_code,
            sa.area_name town_name,
            o.id org_id,
            o.`name` org_name,
            mp.id mp_id,
            mp.`name` mp_name,
            mp.address mp_address,
            mp.area_code mp_area_code,
            mp.city_code mp_city_code,
            mp.province_code mp_province_code,
            gmp.guid gmp_guid,
            gmp.name gmp_name,
            ma.id operate_id,
            v.id version_id,
            v.`name` version_name,
            ma.user_name operate_name,
            profession.dataValue profession_name,
            profession.dataKey profession_key,
            profession.dataValue profession_value,
            tech.dataValue tech_name,
            detector.dataValue detector_name,
            purchaser.dataValue purchaser_name
@@ -103,20 +158,28 @@
                           ON d.organization_id = o.id
                 LEFT JOIN `monitor_point` mp
                           ON mp.id = d.monitor_point_id
                 LEFT JOIN `gov_monitor_point` gmp
                           ON gmp.guid = d.guid
                 LEFT JOIN `manage_account` ma
                           ON FIND_IN_SET
                               (
                                   ma.id, (SELECT operate_ids FROM device WHERE id = d.id)
                               )
                 LEFT JOIN `sys_area` sa
                           ON d.town_code = sa.area_code
                 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'
                 AND sdt.`name` = 'profession'
                 AND sdd.is_delete = '0'
             ) profession
             ON d.profession = profession.dataKey
             ON FIND_IN_SET
             (
                 profession.dataKey, (SELECT profession FROM device WHERE id = d.id)
             )
                 LEFT JOIN
             (
@@ -124,7 +187,8 @@
                 FROM sys_dict_type sdt,
                      sys_dict_data sdd
                 WHERE sdt.id = sdd.dict_type_id
                   AND sdt.`name` = 'tech'
                 AND sdt.`name` = 'tech'
                 AND sdd.is_delete = '0'
             ) tech
             ON d.tech = tech.dataKey
@@ -134,7 +198,8 @@
                 FROM sys_dict_type sdt,
                      sys_dict_data sdd
                 WHERE sdt.id = sdd.dict_type_id
                   AND sdt.`name` = 'detector'
                 AND sdt.`name` = 'detector'
                 AND sdd.is_delete = '0'
             ) detector
             ON d.detector = detector.dataKey
@@ -144,11 +209,49 @@
                 FROM sys_dict_type sdt,
                      sys_dict_data sdd
                 WHERE sdt.id = sdd.dict_type_id
                   AND sdt.`name` = 'purchaser'
                 AND sdt.`name` = 'purchaser'
                 AND sdd.is_delete = '0'
             ) purchaser
             ON d.purchaser = purchaser.dataKey
        WHERE d.id = #{deviceId}
    </select>
    <select id="queryDeviceUnitAlarmInfo" resultMap="queryDeviceUnitAlarmInfoMap">
        select
            d.id as `d.id`,
            d.mac as `d.mac`,
            d.name as `d.name`,
            d.address as `d.address`,
            d.longitude as `d.longitude`,
            d.latitude as `d.latitude`,
            d.operate_ids as `d.operate_ids`,
            d.monitor_point_id as `d.monitor_point_id`,
            d.organization_id as `d.organization_id`,
            d.profession as `d.profession`,
            d.tech as `d.tech`,
            d.detector as `d.detector`,
            d.purchaser as `d.purchaser`,
            d.extend as `d.extend`,
            oua.version_id as `oua.version_id`,
            oua.sensor_code as `oua.sensor_code`,
            oua.unit_key as `oua.unit_key`,
            oua.show_unit_key as `oua.show_unit_key`,
            oua.alarm_level as `oua.alarm_level`,
            v.id as `v.id`,
            v.name as `v.name`
        from
            device d
        join
            version v
        on
            v.`id` = d.`device_version_id` and v.`is_delete` = 0
        join
            organization_unit_alarm oua
        on
            d.`device_version_id` = oua.`version_id`   and d.`organization_id` = oua.`organization_id` and oua.`is_delete` = 0
        where
            d.`is_delete` = 0;
    </select>
</mapper>