From 7e864f157e98e468de60aea1658c66a2d8d5d53f Mon Sep 17 00:00:00 2001
From: ‘liusuyi’ <1951119284@qq.com>
Date: 星期五, 28 七月 2023 17:26:53 +0800
Subject: [PATCH] 单兵端-新任务轮询接口-获取最新任务接口

---
 ard-work/src/main/java/com/ruoyi/app/task/service/impl/ArdAppTaskServiceImpl.java |    5 ++
 ard-work/src/main/java/com/ruoyi/app/task/mapper/ArdAppTaskMapper.java            |    8 ++++
 ard-work/src/main/resources/mapper/app/ArdAppTaskMapper.xml                       |   10 ++++
 ard-work/src/main/java/com/ruoyi/app/task/service/IArdAppTaskService.java         |    7 +++
 ard-work/src/main/java/com/ruoyi/app/position/service/impl/AppPositionPush.java   |    4 ++
 ard-work/src/main/java/com/ruoyi/app/task/controller/ArdAppTaskController.java    |   14 +++++++
 ard-work/src/main/java/com/ruoyi/app/task/domain/ArdAppTaskDetail.java            |   12 +++++
 ard-work/src/main/java/com/ruoyi/app/task/domain/AppParam.java                    |   15 +++++++
 8 files changed, 73 insertions(+), 2 deletions(-)

diff --git a/ard-work/src/main/java/com/ruoyi/app/position/service/impl/AppPositionPush.java b/ard-work/src/main/java/com/ruoyi/app/position/service/impl/AppPositionPush.java
index 7464684..943df41 100644
--- a/ard-work/src/main/java/com/ruoyi/app/position/service/impl/AppPositionPush.java
+++ b/ard-work/src/main/java/com/ruoyi/app/position/service/impl/AppPositionPush.java
@@ -3,6 +3,7 @@
 import com.ruoyi.app.position.domain.ArdAppPosition;
 import com.ruoyi.app.position.service.IArdAppPositionService;
 import com.ruoyi.common.core.domain.entity.SysUser;
+import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.common.utils.spring.SpringUtils;
 import com.ruoyi.utils.websocket.util.WebSocketUtils;
 import com.ruoyi.system.service.ISysUserService;
@@ -91,6 +92,9 @@
         //鑾峰彇鎵�鏈塧pp鐢ㄦ埛
         List<SysUser> list = sysUserService.selectAllAppUserList(new SysUser());
         for (SysUser sysUser : list) {
+            if (StringUtils.isNull(sysUser.getAppOnlineState())) {
+                continue;
+            }
             if (sysUser.getAppOnlineState().equals("0")) {
                 continue;
             }
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 3fc7278..087e993 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
@@ -1,10 +1,13 @@
 package com.ruoyi.app.task.controller;
 
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 import javax.servlet.http.HttpServletResponse;
 
 import com.alibaba.fastjson2.JSONObject;
 import com.ruoyi.alarm.steal.domain.ArdAlarmStealelec;
+import com.ruoyi.app.task.domain.AppParam;
 import com.ruoyi.app.task.domain.ArdAppTaskDetail;
 import com.ruoyi.common.core.domain.entity.SysUser;
 import com.ruoyi.common.utils.spring.SpringUtils;
@@ -146,4 +149,15 @@
     public AjaxResult getTaskDetailInfo(@PathVariable("id") String id) {
         return success(ardAppTaskService.selectArdAppTaskDetailById(id));
     }
+
+    @ApiOperation("鍗曞叺绔�-鏂颁换鍔¤疆璇�")
+    @PostMapping(value = "/newTaskPolling")
+    public AjaxResult newTaskPolling(@RequestBody AppParam param)
+    {
+        Map<String,Object> map=new HashMap<>();
+        String userId = param.getUserId();
+        ArdAppTask ardAppTask= ardAppTaskService.selectNewArdAppTaskByUserId(userId);
+        map.put("task",ardAppTask);
+        return success(map);
+    }
 }
diff --git a/ard-work/src/main/java/com/ruoyi/app/task/domain/AppParam.java b/ard-work/src/main/java/com/ruoyi/app/task/domain/AppParam.java
new file mode 100644
index 0000000..4b5859e
--- /dev/null
+++ b/ard-work/src/main/java/com/ruoyi/app/task/domain/AppParam.java
@@ -0,0 +1,15 @@
+package com.ruoyi.app.task.domain;
+
+import lombok.Data;
+
+/**
+ * @Description:
+ * @ClassName: AppParam
+ * @Author: 鍒樿嫃涔�
+ * @Date: 2023骞�07鏈�28鏃�16:38:26
+ * @Version: 1.0
+ **/
+@Data
+public class AppParam {
+    String userId;
+}
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 8ca5183..99942be 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
@@ -75,11 +75,21 @@
     /** 鏌ョ湅浣嶇疆 */
     @Excel(name = "鏌ョ湅浣嶇疆")
     private String viewPosition;
-
+    /** 寮圭獥鏍囪 */
+    @Excel(name = "寮圭獥鏍囪")
+    private String viewFlag;
     /** 鎵撳崱鏃堕棿*/
     @Excel(name = "鎵撳崱鏃堕棿")
     private Date clockInTime;
 
+    public String getViewFlag() {
+        return viewFlag;
+    }
+
+    public void setViewFlag(String viewFlag) {
+        this.viewFlag = viewFlag;
+    }
+
     public Date getClockInTime() {
         return clockInTime;
     }
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 b21b796..455b57a 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
@@ -154,4 +154,12 @@
      * @return 缁撴灉
      */
     public int deleteArdAppTaskDetailPicByTaskDetailId(String id);
+
+    /**
+     * 鏌ヨ鐢ㄦ埛鏈�鏂扮殑浠诲姟
+     *
+     * @param userId app鐢ㄦ埛Id
+     * @return 缁撴灉
+     */
+    public ArdAppTask selectNewArdAppTaskByUserId(String userId);
 }
diff --git a/ard-work/src/main/java/com/ruoyi/app/task/service/IArdAppTaskService.java b/ard-work/src/main/java/com/ruoyi/app/task/service/IArdAppTaskService.java
index 687fec0..748cfe8 100644
--- a/ard-work/src/main/java/com/ruoyi/app/task/service/IArdAppTaskService.java
+++ b/ard-work/src/main/java/com/ruoyi/app/task/service/IArdAppTaskService.java
@@ -90,4 +90,11 @@
      * @return 缁撴灉
      */
     public int updateArdAppTaskDetailView(ArdAppTaskDetail ardAppTaskDetail);
+    /**
+     * 鏌ヨ鐢ㄦ埛鏈�鏂扮殑浠诲姟
+     *
+     * @param userId app鐢ㄦ埛Id
+     * @return 缁撴灉
+     */
+    public ArdAppTask selectNewArdAppTaskByUserId(String userId);
 }
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 fc9630b..61bc650 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
@@ -281,4 +281,9 @@
             }
         }
     }
+
+    @Override
+    public ArdAppTask selectNewArdAppTaskByUserId(String userId) {
+        return ardAppTaskMapper.selectNewArdAppTaskByUserId(userId);
+    }
 }
diff --git a/ard-work/src/main/resources/mapper/app/ArdAppTaskMapper.xml b/ard-work/src/main/resources/mapper/app/ArdAppTaskMapper.xml
index de83c72..5d13a83 100644
--- a/ard-work/src/main/resources/mapper/app/ArdAppTaskMapper.xml
+++ b/ard-work/src/main/resources/mapper/app/ArdAppTaskMapper.xml
@@ -37,6 +37,7 @@
         <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"/>
@@ -94,7 +95,9 @@
                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
+               c.view_position    as sub1_view_position,
+               c.clock_in_time    as sub1_clock_in_time,
+               c.view_flag        as sub1_view_flag
         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
@@ -299,4 +302,9 @@
         from ard_app_task_detail c
         where c.id = #{id}
     </select>
+    <select id="selectNewArdAppTaskByUserId" parameterType="String" resultMap="ArdAppTaskSubResult">
+        <include refid="selectArdAppTaskDto"/>
+        where c.user_id = #{userId} AND c.view_flag is null
+        order by create_time desc limit 1
+    </select>
 </mapper>
\ No newline at end of file

--
Gitblit v1.9.3