From b0b09870e7bfd3d3cda7a38cc924e86c633938e5 Mon Sep 17 00:00:00 2001
From: ‘liusuyi’ <1951119284@qq.com>
Date: 星期五, 28 七月 2023 08:56:03 +0800
Subject: [PATCH] 增加app任务详情查看时间和查看位置 修复用户不按部门过滤的问题

---
 ard-work/src/main/java/com/ruoyi/app/task/mapper/ArdAppTaskMapper.java |    8 +
 ard-work/src/main/resources/mapper/app/ArdAppTaskMapper.xml            |  160 ++++++++++------------------------------
 ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml        |    3 
 ard-work/src/main/java/com/ruoyi/app/task/domain/ArdAppTaskDetail.java |   25 ++++++
 4 files changed, 74 insertions(+), 122 deletions(-)

diff --git a/ard-work/src/main/java/com/ruoyi/app/task/domain/ArdAppTaskDetail.java b/ard-work/src/main/java/com/ruoyi/app/task/domain/ArdAppTaskDetail.java
index ba53338..e2279ec 100644
--- a/ard-work/src/main/java/com/ruoyi/app/task/domain/ArdAppTaskDetail.java
+++ b/ard-work/src/main/java/com/ruoyi/app/task/domain/ArdAppTaskDetail.java
@@ -1,5 +1,6 @@
 package com.ruoyi.app.task.domain;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
 import com.ruoyi.app.taskdetail.domain.ArdAppTaskDetailPic;
 import io.swagger.annotations.ApiModelProperty;
 import org.apache.commons.lang3.builder.ToStringBuilder;
@@ -7,6 +8,7 @@
 import com.ruoyi.common.annotation.Excel;
 import com.ruoyi.common.core.domain.BaseEntity;
 
+import java.util.Date;
 import java.util.List;
 
 /**
@@ -66,6 +68,29 @@
 
     /** app浠诲姟璇︽儏鍥剧墖淇℃伅 */
     private List<ArdAppTaskDetailPic> ardAppTaskDetailPic;
+    /** 棣栨鏌ョ湅鏃堕棿 */
+    @Excel(name = "棣栨鏌ョ湅鏃堕棿")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date viewTime;
+    /** 棣栨鏌ョ湅浣嶇疆 */
+    @Excel(name = "棣栨鏌ョ湅浣嶇疆")
+    private String viewPosition;
+
+    public Date getViewTime() {
+        return viewTime;
+    }
+
+    public void setViewTime(Date viewTime) {
+        this.viewTime = viewTime;
+    }
+
+    public String getViewPosition() {
+        return viewPosition;
+    }
+
+    public void setViewPosition(String viewPosition) {
+        this.viewPosition = viewPosition;
+    }
 
     public String getStatus() {
         return status;
diff --git a/ard-work/src/main/java/com/ruoyi/app/task/mapper/ArdAppTaskMapper.java b/ard-work/src/main/java/com/ruoyi/app/task/mapper/ArdAppTaskMapper.java
index b8ef70f..fca91dc 100644
--- a/ard-work/src/main/java/com/ruoyi/app/task/mapper/ArdAppTaskMapper.java
+++ b/ard-work/src/main/java/com/ruoyi/app/task/mapper/ArdAppTaskMapper.java
@@ -21,8 +21,12 @@
      * @return app浠诲姟绠$悊
      */
     public ArdAppTask selectArdAppTaskById(String id);
-    public ArdAppTask selectArdAppTaskByIdWithPic(String id);
-    public ArdAppTask selectArdAppTaskByIdWithDetail(String id);
+    /**
+     * 閫氳繃浠诲姟璇︽儏ID鏌ヨ浠诲姟璇︽儏
+     *
+     * @param id app浠诲姟璇︽儏涓婚敭
+     * @return app浠诲姟璇︽儏
+     */
     public ArdAppTaskDetail selectArdAppTaskDetailById(String id);
     /**
      * 鏌ヨapp浠诲姟绠$悊鍒楄〃
diff --git a/ard-work/src/main/resources/mapper/app/ArdAppTaskMapper.xml b/ard-work/src/main/resources/mapper/app/ArdAppTaskMapper.xml
index 820511b..0805696 100644
--- a/ard-work/src/main/resources/mapper/app/ArdAppTaskMapper.xml
+++ b/ard-work/src/main/resources/mapper/app/ArdAppTaskMapper.xml
@@ -34,6 +34,8 @@
         <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"/>
     </resultMap>
     <resultMap type="ArdAppTaskPic" id="ArdAppTaskPicResult">
         <result property="id" column="sub2_id"/>
@@ -64,7 +66,36 @@
                  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>
-
+    <sql id="selectArdAppTaskDto">
+        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,
+               c.view_time as sub1_view_time,
+               c.view_position as sub1_view_position
+        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>
@@ -83,32 +114,7 @@
         </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
+        <include refid="selectArdAppTaskDto"/>
         <where>
             <if test="userId != null and userId != ''">
                 and c.user_id = #{userId}
@@ -122,32 +128,7 @@
         </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
+        <include refid="selectArdAppTaskDto"/>
         <where>
             <if test="id != null and id != ''">
                 and a.id = #{id}
@@ -163,74 +144,9 @@
             </if>
         </where>
     </select>
+
     <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_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,
-               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_detail c on c.task_id = a.id
+        <include refid="selectArdAppTaskDto"/>
         where a.id = #{id}
     </select>
 
@@ -340,6 +256,8 @@
             <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="viewPosition != null">view_position = #{vviewPosition},</if>
         </trim>
         where id = #{id}
     </update>
@@ -365,6 +283,8 @@
                c.voice,
                c.status,
                c.clock_in_pic_url
+               c.view_time,
+               c.view_position
         from ard_app_task_detail c
         where c.id = #{id}
     </select>
diff --git a/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml
index 5bc4bd2..4479047 100644
--- a/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml
+++ b/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml
@@ -110,6 +110,9 @@
             AND u.create_time &lt;= to_timestamp(#{params.endTime},'yyyy-MM-DD')
         </if>
         <if test="appUserType!=null and appUserType!=''"> AND u.app_user_type = #{appUserType}</if>
+        <if test="deptId != null ">and (d.dept_id = #{deptId} OR d.dept_id IN ( SELECT t.dept_id FROM sys_dept t
+            WHERE cast(#{deptId} as varchar) = any(string_to_array(ancestors,',')) ))
+        </if>
         <!-- 鏁版嵁鑼冨洿杩囨护 -->
         ${params.dataScope}
     </select>

--
Gitblit v1.9.3