From ee89d67599e85222b1df11df6601ab5658475052 Mon Sep 17 00:00:00 2001
From: Administrator <1144154118@qq.com>
Date: 星期六, 12 八月 2023 17:06:53 +0800
Subject: [PATCH] 巡检个人记录

---
 ard-work/src/main/resources/mapper/app/ArdAppTaskMapper.xml |  294 +++++++++++++++++++++++++++-------------------------------
 1 files changed, 139 insertions(+), 155 deletions(-)

diff --git a/ard-work/src/main/resources/mapper/app/ArdAppTaskMapper.xml b/ard-work/src/main/resources/mapper/app/ArdAppTaskMapper.xml
index b5ea1d1..1f65a23 100644
--- a/ard-work/src/main/resources/mapper/app/ArdAppTaskMapper.xml
+++ b/ard-work/src/main/resources/mapper/app/ArdAppTaskMapper.xml
@@ -16,7 +16,18 @@
         <result property="updateBy" column="update_by"/>
         <result property="updateTime" column="update_time"/>
     </resultMap>
+
     <resultMap id="ArdAppTaskSubResult" type="ArdAppTask" extends="ArdAppTaskResult">
+        <collection property="ardAppTaskDetailList" column="{id=id,detailUserId=detail_user_id}"
+                    select="selectArdAppTaskDetailListByIdAndUserId"/>
+        <collection property="ardAppTaskPicList" column="id"
+                    select="selectArdAppTaskPicListById"/>
+        <!--        <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 id="ArdAppTaskSub1Result" 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"
@@ -34,19 +45,15 @@
         <result property="taskId" column="sub1_task_id"/>
         <result property="status" column="sub1_status"/>
         <result property="clockInPicUrl" column="sub1_clock_in_pic_url"/>
+        <result property="viewTime" column="sub1_view_time"/>
+        <result property="viewPosition" column="sub1_view_position"/>
+        <result property="clockInTime" column="sub1_clock_in_time"/>
+        <result property="viewFlag" column="sub1_view_flag"/>
     </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"/>
-    </resultMap>
-    <resultMap id="ArdAppTaskArdAppTaskDetailResult" type="ArdAppTask" extends="ArdAppTaskResult">
-        <collection property="ardAppTaskDetailList" notNullColumn="sub_id" javaType="java.util.List"
-                    resultMap="ArdAppTaskDetailResult"/>
     </resultMap>
 
     <sql id="selectArdAppTaskVo">
@@ -64,106 +71,7 @@
                  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">
-        <include refid="selectArdAppTaskVo"/>
-        <where>
-            <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="params.beginTime != null and params.beginTime != ''"><!-- 寮�濮嬫椂闂存绱� -->
-                and create_time &gt;= to_timestamp(#{params.beginTime},'yyyy-MM-DD HH24:MI:ss')
-            </if>
-            <if test="params.endTime != null and params.endTime != ''"><!-- 缁撴潫鏃堕棿妫�绱� -->
-                and create_time &lt;= to_timestamp(#{params.endTime},'yyyy-MM-DD HH24:MI:ss')
-            </if>
-            <if test="userId != null  and userId != ''">and user_id = #{userId}</if>
-            <!-- 鏁版嵁鑼冨洿杩囨护 -->
-            ${params.dataScope}
-        </where>
-    </select>
-    <select id="selectArdAppTaskListWithDetail" parameterType="ArdAppTask" 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_latitude,
-        c.altitude as sub1_altitude,
-        c.user_id as sub1_user_id,
-        c.text as sub1_text,
-        c.voice as sub1_voice,
-        c.status as sub1_status,
-        c.clock_in_pic_url as sub1_clock_in_pic_url
-        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>
-            <if test="userId != null and userId != ''">
-                and c.user_id = #{userId}
-            </if>
-            <if test="params.beginTime != null and params.beginTime != ''"><!-- 寮�濮嬫椂闂存绱� -->
-                and a.create_time &gt;= to_timestamp(#{params.beginTime},'yyyy-MM-DD HH24:MI:ss')
-            </if>
-            <if test="params.endTime != null and params.endTime != ''"><!-- 缁撴潫鏃堕棿妫�绱� -->
-                and a.create_time &lt;= to_timestamp(#{params.endTime},'yyyy-MM-DD HH24:MI:ss')
-            </if>
-        </where>
-    </select>
-    <select id="selectArdAppTaskListWithDetailById" parameterType="ArdAppTask" 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_latitude,
-        c.altitude as sub1_altitude,
-        c.user_id as sub1_user_id,
-        c.text as sub1_text,
-        c.voice as sub1_voice,
-        c.status as sub1_status,
-        c.clock_in_pic_url as sub1_clock_in_pic_url
-        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>
-            <if test="userId != null and userId != ''">
-                and c.user_id = #{userId}
-            </if>
-            <if test="id != null and id != ''">
-                and c.id = #{id}
-            </if>
-            <if test="params.beginTime != null and params.beginTime != ''"><!-- 寮�濮嬫椂闂存绱� -->
-                and a.create_time &gt;= to_timestamp(#{params.beginTime},'yyyy-MM-DD HH24:MI:ss')
-            </if>
-            <if test="params.endTime != null and params.endTime != ''"><!-- 缁撴潫鏃堕棿妫�绱� -->
-                and a.create_time &lt;= to_timestamp(#{params.endTime},'yyyy-MM-DD HH24:MI:ss')
-            </if>
-        </where>
-    </select>
-    <select id="selectArdAppTaskById" parameterType="String" resultMap="ArdAppTaskSubResult">
+    <sql id="selectArdAppTaskDto">
         select a.id,
                a.name,
                a.text,
@@ -174,51 +82,9 @@
                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_latitude,
-               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,
-               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
-        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,
+               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,
@@ -228,11 +94,95 @@
                c.text             as sub1_text,
                c.voice            as sub1_voice,
                c.status           as sub1_status,
-               c.clock_in_pic_url as sub1_clock_in_pic_url
+               c.clock_in_pic_url as sub1_clock_in_pic_url,
+               c.view_time        as sub1_view_time,
+               c.view_position    as sub1_view_position,
+               c.clock_in_time    as sub1_clock_in_time,
+               c.view_flag        as sub1_view_flag,
+               c.task_id          as sub1_task_id
         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
+    </sql>
+
+    <select id="selectArdAppTaskList" parameterType="ArdAppTask" resultMap="ArdAppTaskResult">
+        <include refid="selectArdAppTaskVo"/>
+        <where>
+            <if test="name != null  and name != ''">and c.name like '%'||#{name}||'%'</if>
+            <if test="text != null  and text != ''">and c.text = #{text}</if>
+            <if test="voice != null  and voice != ''">and c.voice = #{voice}</if>
+            <if test="params.beginTime != null and params.beginTime != ''"><!-- 寮�濮嬫椂闂存绱� -->
+                and c.create_time &gt;= to_timestamp(#{params.beginTime},'yyyy-MM-DD HH24:MI:ss')
+            </if>
+            <if test="params.endTime != null and params.endTime != ''"><!-- 缁撴潫鏃堕棿妫�绱� -->
+                and c.create_time &lt;= to_timestamp(#{params.endTime},'yyyy-MM-DD HH24:MI:ss')
+            </if>
+            <if test="userId != null  and userId != ''">and c.user_id = #{userId}</if>
+        </where>
+    </select>
+
+    <select id="selectArdAppTaskListWithDetail" parameterType="ArdAppTask" resultMap="ArdAppTaskSubResult">
+        select DISTINCT(a.id)as idd,c.user_id as detail_user_id,a.* from ard_app_task a
+        LEFT JOIN ard_app_task_detail c on c.task_id=a.id
+        <where>
+            <if test="id != null and id != ''">
+                and a.id = #{id}
+            </if>
+            <if test="userId != null and userId != ''">
+                and c.user_id = #{userId}
+            </if>
+            <if test="params.beginTime != null and params.beginTime != ''"><!-- 寮�濮嬫椂闂存绱� -->
+                and a.create_time &gt;= to_timestamp(#{params.beginTime},'yyyy-MM-DD HH24:MI:ss')
+            </if>
+            <if test="params.endTime != null and params.endTime != ''"><!-- 缁撴潫鏃堕棿妫�绱� -->
+                and a.create_time &lt;= to_timestamp(#{params.endTime},'yyyy-MM-DD HH24:MI:ss')
+            </if>
+        </where>
+        order by a.create_time desc
+    </select>
+
+    <select id="selectArdAppTaskListWithDetailById" parameterType="ArdAppTask" resultMap="ArdAppTaskSubResult">
+        <include refid="selectArdAppTaskDto"/>
+        <where>
+            <if test="id != null and id != ''">
+                and a.id = #{id}
+            </if>
+            <if test="userId != null and userId != ''">
+                and c.user_id = #{userId}
+            </if>
+            <if test="params.beginTime != null and params.beginTime != ''"><!-- 寮�濮嬫椂闂存绱� -->
+                and a.create_time &gt;= to_timestamp(#{params.beginTime},'yyyy-MM-DD HH24:MI:ss')
+            </if>
+            <if test="params.endTime != null and params.endTime != ''"><!-- 缁撴潫鏃堕棿妫�绱� -->
+                and a.create_time &lt;= to_timestamp(#{params.endTime},'yyyy-MM-DD HH24:MI:ss')
+            </if>
+        </where>
+    </select>
+    <select id="selectArdAppTaskDetailListByTaskId" resultType="ArdAppTaskDetail">
+        select * from ard_app_task_detail where task_id=#{taskId}
+    </select>
+    <select id="selectArdAppTaskById" parameterType="String" resultMap="ArdAppTaskSub1Result">
+        <include refid="selectArdAppTaskDto"/>
         where a.id = #{id}
     </select>
+
+    <select id="selectArdAppTaskDetailListByIdAndUserId" resultType="ArdAppTaskDetail">
+        select *
+        from ard_app_task_detail d
+        where d.task_id = #{id}
+          and d.user_id = #{detailUserId}
+    </select>
+    <select id="selectArdAppTaskPicListById" resultType="ArdAppTaskPic">
+        select *
+        from ard_app_task_pic d
+        where d.task_id = #{id}
+    </select>
+    <select id="selectArdAppTaskDetailUserIdsByTaskId" parameterType="String" resultType="java.lang.String">
+        select DISTINCT(user_id)
+        from ard_app_task_detail
+        where task_id = #{taskId}
+    </select>
+
 
     <insert id="insertArdAppTask" parameterType="ArdAppTask">
         insert into ard_app_task
@@ -340,8 +290,27 @@
             <if test="clockInPicUrl != null">clock_in_pic_url = #{clockInPicUrl},</if>
             <if test="text != null">text = #{text},</if>
             <if test="voice != null">voice = #{voice},</if>
+            <if test="viewTime != null">view_time = #{viewTime},</if>
+            <if test="viewFlag != null">view_flag = #{viewFlag},</if>
+            <if test="viewPosition != null">view_position = #{viewPosition},</if>
+            <if test="clockInTime != null">clock_in_time = #{clockInTime},</if>
+            <if test="taskId != null">task_id = #{taskId},</if>
         </trim>
         where id = #{id}
+    </update>
+    <update id="updateArdAppTaskDetailByTaskId" parameterType="ArdAppTaskDetail">
+        update ard_app_task_detail
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="viewFlag != null">view_flag = #{viewFlag},</if>
+        </trim>
+        where task_id = #{taskId}
+    </update>
+    <update id="updateArdAppTaskDetailView" parameterType="ArdAppTaskDetail">
+        update ard_app_task_detail
+        set view_time=#{viewTime},
+            view_position=#{viewPosition}
+        where task_id = #{taskId}
+          and user_id = #{userId}
     </update>
     <insert id="batchArdAppTaskDetailPic">
         insert into ard_app_task_detail_pic( id, task_detail_id, pic_url) values
@@ -364,8 +333,23 @@
                c.text,
                c.voice,
                c.status,
-               c.clock_in_pic_url
+               c.clock_in_pic_url,
+               c.view_time,
+               c.view_position
         from ard_app_task_detail c
         where c.id = #{id}
     </select>
+    <select id="selectNewArdAppTaskByUserId" parameterType="String" resultMap="ArdAppTaskSub1Result">
+        <include refid="selectArdAppTaskDto"/>
+        where c.user_id = #{userId} AND c.view_flag is null
+        order by create_time desc limit 1
+    </select>
+    <select id="selectUnreadArdAppTaskCount" resultType="Integer">
+        SELECT COUNT(A.ID)
+        FROM ard_app_task A
+                 LEFT JOIN ard_app_task_detail C ON C.task_id = A.ID
+        WHERE C.view_time IS NULL
+          AND C.view_flag = '1'
+          AND C.user_id = #{userId}
+    </select>
 </mapper>
\ No newline at end of file

--
Gitblit v1.9.3