zhaowenyu
2026-03-02 1050a0dbace06b1510d53de5baedfc0ca07c8d71
ard-work/src/main/resources/mapper/ArdDroneInfoMapper.xml
@@ -4,92 +4,204 @@
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ard.work.mapper.ArdDroneInfoMapper">
    
    <resultMap type="ArdDroneInfo" id="ArdDroneManagementResult">
    <resultMap type="ArdDroneInfo" id="ArdDroneInfoResult">
        <result property="id"    column="id"    />
        <result property="deviceModel"    column="device_model"    />
        <result property="deviceSn"    column="device_sn"    />
        <result property="deviceName"    column="device_name"    />
        <result property="deviceStatus"    column="device_status"    />
        <result property="deviceAddTime"    column="device_add_time"    />
        <result property="onlineTime"    column="online_time"    />
        <result property="serverInfoId"    column="server_info_id"    />
        <result property="boxSn"    column="box_sn"    />
        <result property="boxName"    column="box_name"    />
        <result property="boxVersion"    column="box_version"    />
        <result property="startTime"    column="start_time"    />
        <result property="onLine"    column="on_line"    />
        <result property="videoServer"    column="video_server"    />
        <result property="videoPort"    column="video_port"    />
        <result property="lastTaskId"    column="last_task_id"    />
        <result property="userId"    column="user_id"    />
        <result property="deptId"    column="dept_id"    />
        <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="remark"    column="remark"    />
        <result property="serverId"    column="server_id"    />
        <!-- 关联 ArdServerInfo 对象 -->
        <association property="ardServerInfo"
                     javaType="com.ard.work.domain.entity.ArdServerInfo"
                     column="server_id"
                     autoMapping="true"
                     select="selectArdServerInfo">
        </association>
    </resultMap>
    <sql id="selectArdDroneManagementVo">
        select id,
               device_model,
               device_sn,
               device_name,
               device_status,
               device_add_time,
               online_time,
               server_info_id
        from ard_drone_info
    <select id="selectArdServerInfo" resultType="com.ard.work.domain.entity.ArdServerInfo">
        select * from ard_server where id = #{serverId}
    </select>
    <sql id="selectArdDroneVo">
        select c.id,
               c.box_sn,
               c.box_name,
               c.box_version,
               c.start_time,
               c.on_line,
               c.video_server,
               c.video_port,
               c.last_task_id,
               c.server_id,
               c.user_id,
               c.dept_id
        from ard_drone c
                 left join sys_dept d on d.dept_id = c.dept_id
                 left join sys_user u on u.user_id = c.user_id
    </sql>
    <select id="selectArdDroneManagementList" parameterType="ArdDroneManagement" resultMap="ArdDroneManagementResult">
        <include refid="selectArdDroneManagementVo"/>
        <where>
            <if test="deviceModel != null  and deviceModel != ''"> and device_model = #{deviceModel}</if>
            <if test="deviceSn != null  and deviceSn != ''"> and device_sn = #{deviceSn}</if>
            <if test="deviceName != null  and deviceName != ''"> and device_name like concat('%', #{deviceName}, '%')</if>
            <if test="deviceStatus != null  and deviceStatus != ''"> and device_status = #{deviceStatus}</if>
            <if test="deviceAddTime != null "> and device_add_time = #{deviceAddTime}</if>
            <if test="onlineTime != null "> and online_time = #{onlineTime}</if>
    <select id="selectArdDroneList" parameterType="ArdDroneInfo" resultMap="ArdDroneInfoResult">
        <include refid="selectArdDroneVo"/>
        <where>
            <if test="boxSn != null  and boxSn != ''"> and c.box_sn like concat('%', #{boxSn}, '%')</if>
            <if test="boxName != null  and boxName != ''"> and c.box_name like concat('%', #{boxName}, '%')</if>
            <if test="boxVersion != null  and boxVersion != ''"> and c.box_version = #{boxVersion}</if>
            <if test="onLine != null "> and c.onLine = #{onLine}</if>
            <if test="lastTaskId != null "> and c.last_task_id = #{lastTaskId}</if>
            <if test="userId != null "> and c.user_id = #{userId}</if>
            <if test="deptId != null and deptId != 0">
                and (d.dept_id = #{deptId} OR d.dept_id IN ( SELECT t.dept_id FROM sys_dept t WHERE
                find_in_set(#{deptId}, ancestors) ))
            </if>
            <!-- 数据范围过滤 -->
            ${params.dataScope}
        </where>
    </select>
    
    <select id="selectArdDroneManagementById" parameterType="String" resultMap="ArdDroneManagementResult">
        <include refid="selectArdDroneManagementVo"/>
    <select id="selectArdDroneById" parameterType="String" resultMap="ArdDroneInfoResult">
        <include refid="selectArdDroneVo"/>
        where id = #{id}
    </select>
    <insert id="insertArdDroneManagement" parameterType="ArdDroneManagement">
        insert into ard_drone_info
    <select id="selectArdDroneByBoxSn" parameterType="String" resultMap="ArdDroneInfoResult">
        <include refid="selectArdDroneVo"/>
        where box_sn = #{boxSn}
    </select>
    <insert id="insertArdDrone" parameterType="ArdDroneInfo">
        insert into ard_drone
        <trim prefix="(" suffix=")" suffixOverrides=",">
            <if test="id != null">id,</if>
            <if test="deviceModel != null">device_model,</if>
            <if test="deviceSn != null">device_sn,</if>
            <if test="deviceName != null">device_name,</if>
            <if test="deviceStatus != null">device_status,</if>
            <if test="deviceAddTime != null">device_add_time,</if>
            <if test="onlineTime != null">online_time,</if>
            <if test="serverInfoId != null">server_info_id,</if>
            <if test="boxSn != null">box_sn,</if>
            <if test="boxName != null">box_name,</if>
            <if test="boxVersion != null">box_version,</if>
            <if test="startTime != null">start_time,</if>
            <if test="onLine != null">on_line,</if>
            <if test="videoServer != null">video_server,</if>
            <if test="videoPort != null">video_port,</if>
            <if test="lastTaskId != null">last_task_id,</if>
            <if test="serverId != null">server_id,</if>
            <if test="userId != null">user_id,</if>
            <if test="deptId != null">dept_id,</if>
            <if test="createBy != null">create_by,</if>
            <if test="createTime != null">create_time,</if>
            <if test="updateBy != null">update_by,</if>
            <if test="updateTime != null">update_time,</if>
            <if test="remark != null">remark,</if>
         </trim>
        <trim prefix="values (" suffix=")" suffixOverrides=",">
            <if test="id != null">#{id},</if>
            <if test="deviceModel != null">#{deviceModel},</if>
            <if test="deviceSn != null">#{deviceSn},</if>
            <if test="deviceName != null">#{deviceName},</if>
            <if test="deviceStatus != null">#{deviceStatus},</if>
            <if test="deviceAddTime != null">#{deviceAddTime},</if>
            <if test="onlineTime != null">#{onlineTime},</if>
            <if test="serverInfoId != null">#{serverInfoId},</if>
            <if test="boxSn != null">#{boxSn},</if>
            <if test="boxName != null">#{boxName},</if>
            <if test="boxVersion != null">#{boxVersion},</if>
            <if test="startTime != null">#{startTime},</if>
            <if test="onLine != null">#{onLine},</if>
            <if test="videoServer != null">#{videoServer},</if>
            <if test="videoPort != null">#{videoPort},</if>
            <if test="lastTaskId != null">#{lastTaskId},</if>
            <if test="serverId != null">#{serverId},</if>
            <if test="userId != null">#{userId},</if>
            <if test="deptId != null">#{deptId},</if>
            <if test="createBy != null">#{createBy},</if>
            <if test="createTime != null">#{createTime},</if>
            <if test="updateBy != null">#{updateBy},</if>
            <if test="updateTime != null">#{updateTime},</if>
            <if test="remark != null">#{remark},</if>
         </trim>
    </insert>
    <update id="updateArdDroneManagement" parameterType="ArdDroneManagement">
        update ard_drone_info
    <update id="updateArdDrone" parameterType="ArdDroneInfo">
        update ard_drone
        <trim prefix="SET" suffixOverrides=",">
            <if test="deviceModel != null">device_model = #{deviceModel},</if>
            <if test="deviceSn != null">device_sn = #{deviceSn},</if>
            <if test="deviceName != null">device_name = #{deviceName},</if>
            <if test="deviceStatus != null">device_status = #{deviceStatus},</if>
            <if test="deviceAddTime != null">device_add_time = #{deviceAddTime},</if>
            <if test="onlineTime != null">online_time = #{onlineTime},</if>
            <if test="serverInfoId != null">server_info_id = #{serverInfoId},</if>
            <if test="boxSn != null">box_sn = #{boxSn},</if>
            <if test="boxName != null">box_name = #{boxName},</if>
            <if test="boxVersion != null">box_version = #{boxVersion},</if>
            <if test="startTime != null">start_time = #{startTime},</if>
            <if test="onLine != null">on_line = #{onLine},</if>
            <if test="videoServer != null">video_server = #{videoServer},</if>
            <if test="videoPort != null">video_port = #{videoPort},</if>
            <if test="lastTaskId != null">last_task_id = #{lastTaskId},</if>
            <if test="serverId != null">server_id = #{serverId},</if>
            <if test="userId != null">user_id = #{userId},</if>
            <if test="deptId != null">dept_id = #{deptId},</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="remark != null">remark = #{remark},</if>
        </trim>
        where id = #{id}
    </update>
    <delete id="deleteArdDroneManagementById" parameterType="String">
        delete from ard_drone_info where id = #{id}
    <delete id="deleteArdDroneById" parameterType="String">
        delete from ard_drone where id = #{id}
    </delete>
    <delete id="deleteArdDroneManagementByIds" parameterType="String">
        delete from ard_drone_info where id in
    <delete id="deleteArdDroneByIds" parameterType="String">
        delete from ard_drone where id in
        <foreach item="id" collection="array" open="(" separator="," close=")">
            #{id}
        </foreach>
    </delete>
    <insert id="insertArdDroneLs" parameterType="java.util.List">
        insert into ard_drone(
            id,
            box_sn,
            box_name,
            box_version,
            start_time,
            on_line,
            video_server,
            video_port,
            last_task_id,
            server_id,
            user_id,
            dept_id,
            create_by,
            create_time,
            update_by,
            update_time,
            remark
        ) values
        <foreach item="item" index="index" collection="list" separator=",">
            (#{item.id},
            #{item.boxSn},
            #{item.boxName},
            #{item.boxVersion},
            #{item.startTime},
            #{item.onLine},
            #{item.videoServer},
            #{item.videoPort},
            #{item.lastTaskId},
            #{item.serverId},
            #{item.userId},
            #{item.deptId},
            #{item.createBy},
            #{item.createTime},
            #{item.updateBy},
            #{item.updateTime},
            #{item.remark})
        </foreach>
    </insert>
    <update id="updateDroneStatus">
        update ard_drone
        <trim prefix="SET" suffixOverrides=",">
            <if test="onLine != null">on_line = #{onLine},</if>
        </trim>
        where server_id = #{serverId}
    </update>
</mapper>