艾金辉
2023-07-24 651186d7fce51274500b66d7ed8a53bedc6a1339
ard-work/src/main/resources/mapper/app/ArdAppTaskMapper.xml
@@ -16,7 +16,28 @@
        <result property="updateBy" column="update_by"/>
        <result property="updateTime" column="update_time"/>
    </resultMap>
    <resultMap id="ArdAppTaskSubResult" type="ArdAppTask" extends="ArdAppTaskResult">
        <collection property="ardAppTaskPicList" notNullColumn="sub2_id" javaType="java.util.List"
                    resultMap="ArdAppTaskPicResult"/>
        <collection property="ardAppTaskDetailList" notNullColumn="sub1_id" javaType="java.util.List"
                    resultMap="ArdAppTaskDetailResult"/>
    </resultMap>
    <resultMap type="ArdAppTaskDetail" id="ArdAppTaskDetailResult">
        <result property="id" column="sub1_id"/>
        <result property="name" column="sub1_name"/>
        <result property="longitude" column="sub1_longitude"/>
        <result property="latitude" column="sub1_latitude"/>
        <result property="altitude" column="sub1_altitude"/>
        <result property="userId" column="sub1_user_id"/>
        <result property="text" column="sub1_text"/>
        <result property="voice" column="sub1_voice"/>
        <result property="taskId" column="sub1_task_id"/>
    </resultMap>
    <resultMap type="ArdAppTaskPic" id="ArdAppTaskPicResult">
        <result property="id" column="sub2_id"/>
        <result property="taskId" column="sub2_task_id"/>
        <result property="picUrl" column="sub2_pic_url"/>
    </resultMap>
    <resultMap id="ArdAppTaskArdAppTaskPicResult" type="ArdAppTask" extends="ArdAppTaskResult">
        <collection property="ardAppTaskPicList" notNullColumn="sub_id" javaType="java.util.List"
                    resultMap="ArdAppTaskPicResult"/>
@@ -24,23 +45,6 @@
    <resultMap id="ArdAppTaskArdAppTaskDetailResult" type="ArdAppTask" extends="ArdAppTaskResult">
        <collection property="ardAppTaskDetailList" notNullColumn="sub_id" javaType="java.util.List"
                    resultMap="ArdAppTaskDetailResult"/>
    </resultMap>
    <resultMap type="ArdAppTaskDetail" id="ArdAppTaskDetailResult">
        <result property="id" column="sub_id"/>
        <result property="name" column="sub_name"/>
        <result property="longitude" column="sub_longitude"/>
        <result property="latitude" column="sub_latitude"/>
        <result property="altitude" column="sub_altitude"/>
        <result property="userId" column="sub_user_id"/>
        <result property="text" column="sub_text"/>
        <result property="voice" column="sub_voice"/>
        <result property="taskId" column="sub_task_id"/>
    </resultMap>
    <resultMap type="ArdAppTaskPic" id="ArdAppTaskPicResult">
        <result property="id" column="sub_id"/>
        <result property="taskId" column="sub_task_id"/>
        <result property="picUrl" column="sub_pic_url"/>
    </resultMap>
    <sql id="selectArdAppTaskVo">
@@ -55,8 +59,8 @@
               c.update_by,
               c.update_time
        from ard_app_task 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
                 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="selectArdAppTaskList" parameterType="ArdAppTask" resultMap="ArdAppTaskResult">
@@ -65,16 +69,44 @@
            <if test="name != null  and name != ''">and name like '%'||#{name}||'%'</if>
            <if test="text != null  and text != ''">and text = #{text}</if>
            <if test="voice != null  and voice != ''">and voice = #{voice}</if>
            <if test="deptId != null ">and (c.dept_id = #{deptId} OR c.dept_id IN ( SELECT t.dept_id FROM sys_dept t
            <if test="deptId != null and deptId != 0 ">
            and (c.dept_id = #{deptId} OR c.dept_id IN ( SELECT t.dept_id FROM sys_dept t
                WHERE cast(#{deptId} as varchar) = any(string_to_array(ancestors,',')) ))
            </if>
            <if test="userId != null  and userId != ''">and user_id = #{userId}</if>
            <!-- 数据范围过滤 -->
            ${params.dataScope}
        </where>
        <!-- 数据范围过滤 -->
        ${params.dataScope}
    </select>
    <select id="selectArdAppTaskById" parameterType="String" resultMap="ArdAppTaskArdAppTaskPicResult">
    <select id="selectArdAppTaskById" parameterType="String" resultMap="ArdAppTaskSubResult">
        select a.id,
               a.name,
               a.text,
               a.voice,
               a.dept_id,
               a.user_id,
               a.create_by,
               a.create_time,
               a.update_by,
               a.update_time,
               b.id      as sub2_id,
               b.task_id as sub2_task_id,
               b.pic_url as sub2_pic_url,
               c.id   as sub1_id,
               c.name as sub1_name,
               c.longitude as sub1_longitude,
               c.latitude as sub1_latitde,
               c.altitude as sub1_altitude,
               c.user_id as sub1_user_id,
               c.text as sub1_text,
               c.voice as sub1_voice
        from ard_app_task a
                 left join ard_app_task_pic b on b.task_id = a.id
                 left join ard_app_task_detail c on c.task_id = a.id
        where a.id = #{id}
    </select>
    <select id="selectArdAppTaskByIdWithPic" parameterType="String" resultMap="ArdAppTaskArdAppTaskPicResult">
        select a.id,
               a.name,
               a.text,
@@ -90,6 +122,28 @@
               b.pic_url as sub_pic_url
        from ard_app_task a
                 left join ard_app_task_pic b on b.task_id = a.id
        where a.id = #{id}
    </select>
    <select id="selectArdAppTaskByIdWithDetail" parameterType="String" resultMap="ArdAppTaskArdAppTaskDetailResult">
        select a.id,
               a.name,
               a.text,
               a.voice,
               a.dept_id,
               a.user_id,
               a.create_by,
               a.create_time,
               a.update_by,
               a.update_time,
               c.id   as sub_id,
               c.name as sub_name,
               c.longitude as sub_longitude,
               c.latitude as sub_latitde,
               c.altitude as sub_altitude,
               c.user_id as sub_user_id,
               c.text as sub_text,
               c.voice as sub_voice
        from ard_app_task a
                 left join ard_app_task_detail c on c.task_id = a.id
        where a.id = #{id}
    </select>
@@ -178,13 +232,16 @@
    </delete>
    <delete id="deleteArdAppTaskDetailByTaskId" parameterType="String">
        delete from ard_app_task_detail where task_id = #{taskId}
        delete
        from ard_app_task_detail
        where task_id = #{taskId}
    </delete>
    <insert id="batchArdAppTaskDetail">
        insert into ard_app_task_detail( id, name, longitude, latitude, altitude, user_id, text, voice, task_id) values
        <foreach item="item" index="index" collection="list" separator=",">
            ( #{item.id}, #{item.name}, #{item.longitude}, #{item.latitude}, #{item.altitude}, #{item.userId}, #{item.text}, #{item.voice}, #{item.taskId})
            ( #{item.id}, #{item.name}, #{item.longitude}, #{item.latitude}, #{item.altitude}, #{item.userId},
            #{item.text}, #{item.voice}, #{item.taskId})
        </foreach>
    </insert>
</mapper>