<?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.ruoyi.dataprocess.mapper.HwDeviceMapper">
    
    <resultMap type="HwDevice" id="HwDeviceResult">
        <result property="deviceId"    column="device_id"    />
        <result property="deviceCode"    column="device_code"    />
        <result property="deviceName"    column="device_name"    />
        <result property="sceneId"    column="scene_id"    />
        <result property="monitorUnitId"    column="monitor_unit_id"    />
        <result property="deviceType"    column="device_type"    />
        <result property="networkingMode"    column="networking_mode"    />
        <result property="accessProtocol"    column="access_protocol"    />
        <result property="dataFormat"    column="data_format"    />
        <result property="releatedDeviceId"    column="releated_device_id"    />
        <result property="deviceModeId"    column="device_mode_id"    />
        <result property="accessGwProtocol"    column="access_gw_protocol"    />
        <result property="activeStatus"    column="active_status"    />
        <result property="deviceStatus"    column="device_status"    />
        <result property="activeTime"    column="active_time"    />
        <result property="devicePic"    column="device_pic"    />
        <result property="ipAddress"    column="ip_address"    />
        <result property="areaId"    column="area_id"    />
        <result property="deviceLocation"    column="device_location"    />
        <result property="currentModuleVersion"    column="current_module_version"    />
        <result property="currentSinglechipVersion"    column="current_singlechip_version"    />
        <result property="remark"    column="remark"    />
        <result property="createBy"    column="create_by"    />
        <result property="createTime"    column="create_time"    />
        <result property="updateBy"    column="update_by"    />
        <result property="updateTime"    column="update_time"    />
        <result property="deviceField"    column="device_field"    />
        <result property="tenantId"    column="tenant_id"    />
        <result property="onlineStatus"    column="online_status"    />
    </resultMap>

    <sql id="selectHwDeviceVo">
        select device_id, device_code, device_name, scene_id, monitor_unit_id, device_type, networking_mode, access_protocol, data_format, releated_device_id, device_mode_id, access_gw_protocol, active_status, device_status, active_time, device_pic, ip_address, area_id, device_location, current_module_version, current_singlechip_version, remark, create_by, create_time, update_by, update_time, device_field, tenant_id, online_status from hw_device
    </sql>

    <select id="selectHwDeviceByDeviceCode" parameterType="String" resultMap="HwDeviceResult">
        <include refid="selectHwDeviceVo"/>
        where device_code = #{deviceCode} limit 1
    </select>

    <update id="updateHwDevice" parameterType="HwDevice">
        update hw_device
        <trim prefix="SET" suffixOverrides=",">
            <if test="deviceCode != null and deviceCode != ''">device_code = #{deviceCode},</if>
            <if test="deviceName != null and deviceName != ''">device_name = #{deviceName},</if>
            <if test="sceneId != null">scene_id = #{sceneId},</if>
            <if test="monitorUnitId != null">monitor_unit_id = #{monitorUnitId},</if>
            <if test="deviceType != null and deviceType != ''">device_type = #{deviceType},</if>
            <if test="networkingMode != null and networkingMode != ''">networking_mode = #{networkingMode},</if>
            <if test="accessProtocol != null">access_protocol = #{accessProtocol},</if>
            <if test="dataFormat != null">data_format = #{dataFormat},</if>
            <if test="releatedDeviceId != null">releated_device_id = #{releatedDeviceId},</if>
            <if test="deviceModeId != null">device_mode_id = #{deviceModeId},</if>
            <if test="accessGwProtocol != null">access_gw_protocol = #{accessGwProtocol},</if>
            <if test="activeStatus != null and activeStatus != ''">active_status = #{activeStatus},</if>
            <if test="deviceStatus != null and deviceStatus != ''">device_status = #{deviceStatus},</if>
            <if test="activeTime != null">active_time = #{activeTime},</if>
            <if test="devicePic != null">device_pic = #{devicePic},</if>
            <if test="ipAddress != null">ip_address = #{ipAddress},</if>
            <if test="areaId != null">area_id = #{areaId},</if>
            <if test="deviceLocation != null">device_location = #{deviceLocation},</if>
            <if test="currentModuleVersion != null">current_module_version = #{currentModuleVersion},</if>
            <if test="currentSinglechipVersion != null">current_singlechip_version = #{currentSinglechipVersion},</if>
            <if test="remark != null">remark = #{remark},</if>
            <if test="createBy != null">create_by = #{createBy},</if>
            <if test="createTime != null">create_time = #{createTime},</if>
            <if test="updateBy != null">update_by = #{updateBy},</if>
            <if test="updateTime != null">update_time = #{updateTime},</if>
            <if test="deviceField != null">device_field = #{deviceField},</if>
            <if test="tenantId != null">tenant_id = #{tenantId},</if>
            <if test="onlineStatus != null and onlineStatus != ''">online_status = #{onlineStatus},</if>
        </trim>
        where device_id = #{deviceId}
    </update>

</mapper>