From 0533bbabfe22484a84c85d13a391a1fd5cb949c2 Mon Sep 17 00:00:00 2001
From: Administrator <1144154118@qq.com>
Date: 星期二, 25 七月 2023 14:48:06 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 ard-work/src/main/java/com/ruoyi/app/task/service/impl/ArdAppTaskServiceImpl.java         |   36 +++++++++++-
 ard-work/src/main/java/com/ruoyi/app/position/controller/ArdAppPositionController.java    |   10 +++
 ard-work/src/main/resources/mapper/app/ArdAppTaskMapper.xml                               |   29 ++++++++-
 ard-work/src/main/java/com/ruoyi/app/position/service/IArdAppPositionService.java         |    8 ++
 ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysUser.java               |    1 
 ard-work/src/main/java/com/ruoyi/app/task/controller/ArdAppTaskController.java            |    1 
 ard-work/src/main/java/com/ruoyi/app/task/domain/ArdAppTaskDetail.java                    |   26 ++++++++
 ard-work/src/main/java/com/ruoyi/app/position/service/impl/ArdAppPositionServiceImpl.java |   11 +++
 ard-work/src/main/java/com/ruoyi/app/position/mapper/ArdAppPositionMapper.java            |    7 ++
 ard-work/src/main/resources/mapper/app/ArdAppPositionMapper.xml                           |    7 ++
 10 files changed, 125 insertions(+), 11 deletions(-)

diff --git a/ard-work/src/main/java/com/ruoyi/app/position/controller/ArdAppPositionController.java b/ard-work/src/main/java/com/ruoyi/app/position/controller/ArdAppPositionController.java
index c3f102a..465b865 100644
--- a/ard-work/src/main/java/com/ruoyi/app/position/controller/ArdAppPositionController.java
+++ b/ard-work/src/main/java/com/ruoyi/app/position/controller/ArdAppPositionController.java
@@ -166,6 +166,16 @@
         List<SysUser> offLineList=new ArrayList<>();
         for(SysUser sysUser:list)
         {
+
+            ArdAppPosition ardAppPosition = ardAppPositionService.selectLastArdAppPositionByUserId(sysUser.getUserId());
+            if(ardAppPosition!=null) {
+                Map<String, Object> params =new HashMap<>();
+                params.put("longitude", ardAppPosition.getLongitude());
+                params.put("lagitude", ardAppPosition.getLatitude());
+                params.put("altitude", ardAppPosition.getAltitude());
+                params.put("bearing", ardAppPosition.getBearing());
+                sysUser.setParams(params);
+            }
             Boolean online = rongCloudService.checkOnline(sysUser.getUserId());
             if(online)
             {
diff --git a/ard-work/src/main/java/com/ruoyi/app/position/mapper/ArdAppPositionMapper.java b/ard-work/src/main/java/com/ruoyi/app/position/mapper/ArdAppPositionMapper.java
index 0b23c5d..117dd30 100644
--- a/ard-work/src/main/java/com/ruoyi/app/position/mapper/ArdAppPositionMapper.java
+++ b/ard-work/src/main/java/com/ruoyi/app/position/mapper/ArdAppPositionMapper.java
@@ -19,7 +19,14 @@
      * @return app浣嶇疆
      */
     public ArdAppPosition selectArdAppPositionById(String id);
+    /**
+     * 鎸夌敤鎴穒d鏌ヨ鏈�鍚庣殑浣嶇疆淇℃伅
+     *
+     * @param userId app鐢ㄦ埛涓婚敭
+     * @return app浣嶇疆
+     */
 
+    public ArdAppPosition selectLastArdAppPositionByUserId(String userId);
     /**
      * 鏌ヨapp浣嶇疆鍒楄〃
      * 
diff --git a/ard-work/src/main/java/com/ruoyi/app/position/service/IArdAppPositionService.java b/ard-work/src/main/java/com/ruoyi/app/position/service/IArdAppPositionService.java
index a4fa952..05640d8 100644
--- a/ard-work/src/main/java/com/ruoyi/app/position/service/IArdAppPositionService.java
+++ b/ard-work/src/main/java/com/ruoyi/app/position/service/IArdAppPositionService.java
@@ -19,7 +19,13 @@
      * @return app浣嶇疆
      */
     public ArdAppPosition selectArdAppPositionById(String id);
-
+    /**
+     * 鎸夌敤鎴穒d鏌ヨ鏈�鍚庣殑浣嶇疆淇℃伅
+     *
+     * @param userId app鐢ㄦ埛涓婚敭
+     * @return app浣嶇疆
+     */
+    public ArdAppPosition selectLastArdAppPositionByUserId(String userId);
     /**
      * 鏌ヨapp浣嶇疆鍒楄〃
      * 
diff --git a/ard-work/src/main/java/com/ruoyi/app/position/service/impl/ArdAppPositionServiceImpl.java b/ard-work/src/main/java/com/ruoyi/app/position/service/impl/ArdAppPositionServiceImpl.java
index 14ce8c9..2214737 100644
--- a/ard-work/src/main/java/com/ruoyi/app/position/service/impl/ArdAppPositionServiceImpl.java
+++ b/ard-work/src/main/java/com/ruoyi/app/position/service/impl/ArdAppPositionServiceImpl.java
@@ -32,7 +32,16 @@
     public ArdAppPosition selectArdAppPositionById(String id) {
         return ardAppPositionMapper.selectArdAppPositionById(id);
     }
-
+    /**
+     * 鎸夌敤鎴穒d鏌ヨ鏈�鍚庣殑浣嶇疆淇℃伅
+     *
+     * @param userId app鐢ㄦ埛涓婚敭
+     * @return app浣嶇疆
+     */
+    @Override
+    public ArdAppPosition selectLastArdAppPositionByUserId(String userId){
+        return ardAppPositionMapper.selectLastArdAppPositionByUserId(userId);
+    }
     /**
      * 鏌ヨapp浣嶇疆鍒楄〃
      *
diff --git a/ard-work/src/main/java/com/ruoyi/app/task/controller/ArdAppTaskController.java b/ard-work/src/main/java/com/ruoyi/app/task/controller/ArdAppTaskController.java
index b1cf439..0d953c3 100644
--- a/ard-work/src/main/java/com/ruoyi/app/task/controller/ArdAppTaskController.java
+++ b/ard-work/src/main/java/com/ruoyi/app/task/controller/ArdAppTaskController.java
@@ -51,7 +51,6 @@
     @PreAuthorize("@ss.hasPermi('app:task:list')")
     @GetMapping("/listWithDetail")
     public TableDataInfo userlist(ArdAppTask ardAppTask) {
-        startPage();
         List<ArdAppTask> ardAppTasks = ardAppTaskService.selectArdAppTaskListWithDetail(ardAppTask);
         return getDataTable(ardAppTasks);
     }
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 bf0a2a4..ba53338 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
@@ -54,9 +54,35 @@
     @Excel(name = "浠诲姟ID")
     private String taskId;
 
+    /**
+     * 鐘舵�侊紙0鏈畬鎴� 1宸插畬鎴愶級
+     */
+    @Excel(name = "鐘舵��", readConverterExp = "0=鏈畬鎴�,1=宸插畬鎴�")
+    private String status;
+
+    /** 鎵撳崱鍥剧墖url */
+    @Excel(name = "鎵撳崱鍥剧墖url")
+    private String clockInPicUrl;
+
     /** app浠诲姟璇︽儏鍥剧墖淇℃伅 */
     private List<ArdAppTaskDetailPic> ardAppTaskDetailPic;
 
+    public String getStatus() {
+        return status;
+    }
+
+    public void setStatus(String status) {
+        this.status = status;
+    }
+
+    public String getClockInPicUrl() {
+        return clockInPicUrl;
+    }
+
+    public void setClockInPicUrl(String clockInPicUrl) {
+        this.clockInPicUrl = clockInPicUrl;
+    }
+
     public List<ArdAppTaskDetailPic> getArdAppTaskDetailPic() {
         return ardAppTaskDetailPic;
     }
diff --git a/ard-work/src/main/java/com/ruoyi/app/task/service/impl/ArdAppTaskServiceImpl.java b/ard-work/src/main/java/com/ruoyi/app/task/service/impl/ArdAppTaskServiceImpl.java
index a8cf189..b084327 100644
--- a/ard-work/src/main/java/com/ruoyi/app/task/service/impl/ArdAppTaskServiceImpl.java
+++ b/ard-work/src/main/java/com/ruoyi/app/task/service/impl/ArdAppTaskServiceImpl.java
@@ -1,6 +1,8 @@
 package com.ruoyi.app.task.service.impl;
 
 import java.util.List;
+
+import com.github.pagehelper.PageHelper;
 import com.ruoyi.app.task.domain.ArdAppTaskDetail;
 import com.ruoyi.app.taskdetail.domain.ArdAppTaskDetailPic;
 import com.ruoyi.app.tasktext.domain.ArdAppTaskText;
@@ -9,7 +11,9 @@
 import com.ruoyi.common.utils.DateUtils;
 import com.ruoyi.common.utils.uuid.IdUtils;
 import org.springframework.stereotype.Service;
+
 import java.util.ArrayList;
+
 import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.common.utils.SecurityUtils;
 import org.springframework.transaction.annotation.Transactional;
@@ -17,6 +21,7 @@
 import com.ruoyi.app.task.mapper.ArdAppTaskMapper;
 import com.ruoyi.app.task.domain.ArdAppTask;
 import com.ruoyi.app.task.service.IArdAppTaskService;
+
 import javax.annotation.Resource;
 
 /**
@@ -54,6 +59,7 @@
     public List<ArdAppTask> selectArdAppTaskList(ArdAppTask ardAppTask) {
         return ardAppTaskMapper.selectArdAppTaskList(ardAppTask);
     }
+
     /**
      * 鏌ヨapp浠诲姟璇︽儏绠$悊鍒楄〃
      *
@@ -63,7 +69,31 @@
     @Override
     public List<ArdAppTask> selectArdAppTaskListWithDetail(ArdAppTask ardAppTask) {
         ardAppTask.setUserId(SecurityUtils.getUserId());
-        return ardAppTaskMapper.selectArdAppTaskListWithDetail(ardAppTask);
+        List<ArdAppTask> list1 = ardAppTaskMapper.selectArdAppTaskListWithDetail(ardAppTask);
+        List<ArdAppTask>list=new ArrayList<>();
+        list.addAll(list1);
+        return list;
+//        boolean flag=false;
+//        List<ArdAppTask> ardAppTasks = ardAppTaskMapper.selectArdAppTaskList(ardAppTask);
+//        ardAppTask.setUserId(SecurityUtils.getUserId());
+//        List<ArdAppTask> ardAppTasksNew=new ArrayList<>();
+//        for (ArdAppTask appTask : ardAppTasks) {
+//            ArdAppTask task = ardAppTaskMapper.selectArdAppTaskById(appTask.getId());
+//            List<ArdAppTaskDetail> ardAppTaskDetailListNew = new ArrayList<>();
+//            List<ArdAppTaskDetail> ardAppTaskDetailList = task.getArdAppTaskDetailList();
+//            for (ArdAppTaskDetail appTaskDetail : ardAppTaskDetailList) {
+//                if (appTaskDetail.getUserId().equals(ardAppTask.getUserId())) {
+//                    ardAppTaskDetailListNew.add(appTaskDetail);
+//                    flag=true;
+//                }
+//            }
+//            if(flag) {
+//                appTask.setArdAppTaskDetailList(ardAppTaskDetailListNew);
+//                ardAppTasksNew.add(appTask);
+//            }
+//            flag=false;
+//        }
+//        return ardAppTasksNew;
     }
 
     /**
@@ -166,6 +196,7 @@
                 List<ArdAppTaskDetail> list = new ArrayList<ArdAppTaskDetail>();
                 for (ArdAppTaskDetail ardAppTaskDetail : ardAppTaskDetailList) {
                     ardAppTaskDetail.setId(IdUtils.simpleUUID());
+                    ardAppTaskDetail.setStatus("0");
                     ardAppTaskDetail.setTaskId(id);
                     ardAppTaskDetail.setUserId(userId);
                     list.add(ardAppTaskDetail);
@@ -185,8 +216,7 @@
     public void insertArdAppTaskText(ArdAppTask ardAppTask) {
         String userId = ardAppTask.getUserId();
         String text = ardAppTask.getText();
-        if(StringUtils.isEmpty(text))
-        {
+        if (StringUtils.isEmpty(text)) {
             return;
         }
         ArdAppTaskText ardAppTaskText = new ArdAppTaskText();
diff --git a/ard-work/src/main/resources/mapper/app/ArdAppPositionMapper.xml b/ard-work/src/main/resources/mapper/app/ArdAppPositionMapper.xml
index 1967f0f..81371a7 100644
--- a/ard-work/src/main/resources/mapper/app/ArdAppPositionMapper.xml
+++ b/ard-work/src/main/resources/mapper/app/ArdAppPositionMapper.xml
@@ -29,7 +29,12 @@
         <include refid="selectArdAppPositionVo"/>
         where id = #{id}
     </select>
-
+    <select id="selectLastArdAppPositionByUserId" parameterType="String" resultMap="ArdAppPositionResult">
+        <include refid="selectArdAppPositionVo"/>
+        where user_id = #{userId}
+        order by create_time desc
+        limit 1
+    </select>
     <insert id="insertArdAppPosition" parameterType="ArdAppPosition">
         insert into ard_app_position
         <trim prefix="(" suffix=")" suffixOverrides=",">
diff --git a/ard-work/src/main/resources/mapper/app/ArdAppTaskMapper.xml b/ard-work/src/main/resources/mapper/app/ArdAppTaskMapper.xml
index 297f886..69fbce4 100644
--- a/ard-work/src/main/resources/mapper/app/ArdAppTaskMapper.xml
+++ b/ard-work/src/main/resources/mapper/app/ArdAppTaskMapper.xml
@@ -32,6 +32,8 @@
         <result property="text" column="sub1_text"/>
         <result property="voice" column="sub1_voice"/>
         <result property="taskId" column="sub1_task_id"/>
+        <result property="status" column="sub1_status"/>
+        <result property="clockInPicUrl" column="sub1_clock_in_pic_url"/>
     </resultMap>
     <resultMap type="ArdAppTaskPic" id="ArdAppTaskPicResult">
         <result property="id" column="sub2_id"/>
@@ -69,6 +71,13 @@
             <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>
@@ -94,11 +103,19 @@
         c.altitude as sub1_altitude,
         c.user_id as sub1_user_id,
         c.text as sub1_text,
-        c.voice as sub1_voice
+        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 c.user_id = #{userId}
+        <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>
     </select>
     <select id="selectArdAppTaskById" parameterType="String" resultMap="ArdAppTaskSubResult">
         select a.id,
@@ -163,7 +180,9 @@
                c.altitude as sub_altitude,
                c.user_id as sub_user_id,
                c.text as sub_text,
-               c.voice as sub_voice
+               c.voice as sub_voice,
+               c.status as sub_status,
+               c.clock_in_pic_url as sub_clock_in_pic_url
         from ard_app_task a
                  left join ard_app_task_detail c on c.task_id = a.id
         where a.id = #{id}
@@ -260,16 +279,18 @@
     </delete>
 
     <insert id="batchArdAppTaskDetail">
-        insert into ard_app_task_detail( id, name, longitude, latitude, altitude, user_id, text, voice, task_id) values
+        insert into ard_app_task_detail( id, name, longitude, latitude, altitude, user_id, text, voice, task_id,status,clock_in_pic_url) 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.text}, #{item.voice}, #{item.taskId}, #{item.status}, #{item.clockInPicUrl})
         </foreach>
     </insert>
 
     <update id="updateArdAppTaskDetail" parameterType="ArdAppTaskDetail">
         update ard_app_task_detail
         <trim prefix="SET" suffixOverrides=",">
+            <if test="status != null">status = #{status},</if>
+            <if test="clockInPicUrl != null">clock_in_pic_url = #{clockInPicUrl},</if>
             <if test="text != null">text = #{text},</if>
             <if test="voice != null">voice = #{voice},</if>
         </trim>
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysUser.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysUser.java
index 5675fd8..d1ef403 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysUser.java
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysUser.java
@@ -140,6 +140,7 @@
      */
     private String rongCloudToken;
 
+
     public SysUser() {
 
     }

--
Gitblit v1.9.3