From aff3af669362fc9b0743e3d3319ac9e20ba822eb Mon Sep 17 00:00:00 2001
From: ‘liusuyi’ <1951119284@qq.com>
Date: 周日, 08 10月 2023 15:06:31 +0800
Subject: [PATCH] 归纳分类定时任务 任务列表和任务日志按时间逆序排列

---
 ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/CleanTask.java   |   25 +++++
 /dev/null                                                         |   43 ----------
 ruoyi-quartz/src/main/resources/mapper/quartz/SysJobLogMapper.xml |    1 
 ruoyi-quartz/src/main/resources/mapper/quartz/SysJobMapper.xml    |    1 
 ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/PushTask.java    |   43 ++++++++--
 ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/SyncTask.java    |   84 +++++++++++++++++++++
 6 files changed, 142 insertions(+), 55 deletions(-)

diff --git a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/AlarmTask.java b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/AlarmTask.java
deleted file mode 100644
index 1eea459..0000000
--- a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/AlarmTask.java
+++ /dev/null
@@ -1,62 +0,0 @@
-package com.ruoyi.quartz.task;
-
-import com.ruoyi.alarm.global.domain.GuidePriorityQueue;
-import com.ruoyi.alarm.global.domain.GuideTask;
-import com.ruoyi.alarm.global.service.IGlobalAlarmService;
-import com.ruoyi.common.utils.spring.SpringUtils;
-import com.ruoyi.utils.websocket.util.WebSocketUtils;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.stereotype.Component;
-
-import java.util.*;
-import java.util.concurrent.PriorityBlockingQueue;
-
-import static com.ruoyi.utils.websocket.util.WebSocketUtils.ONLINE_USER_SESSIONS;
-
-/**
- * @ClassName: AlarmTask
- * @Description:
- * @Author: Administrator
- * @Date: 2023年03月06日 11:13
- * @Version: 1.0
- **/
-@Component("AlarmTask")
-@Slf4j
-public class AlarmTask {
-
-    /**
-     * @描述 定时推送所有报警的点位数量
-     * @参数 []
-     * @返回值 void
-     * @创建人 刘苏义
-     * @创建时间 2023/6/15 15:43
-     * @修改人和其它信息
-     */
-    public void globalAlarmCountPush() {
-        try {
-            IGlobalAlarmService globalAlarmService = SpringUtils.getBean(IGlobalAlarmService.class);
-            Map<String, Object> stringIntegerMap = globalAlarmService.selectAlarmLogsCount();
-            if (ONLINE_USER_SESSIONS.size() > 0) {
-                WebSocketUtils.sendMessageAll(stringIntegerMap);
-            }
-        } catch (Exception ex) {
-            log.error("定时推送所有报警的点位数量异常:" + ex.getMessage());
-        }
-    }
-
-    /**
-     * 定时清空引导队列
-     * 刘苏义
-     * 2023/7/1 10:41
-     */
-    public void clearGuideQueue() {
-        try {
-            log.info("定时清理引导队列");
-            for (PriorityBlockingQueue<GuideTask> guideQueue : GuidePriorityQueue.cameraQueueMap.values()) {
-                guideQueue.clear();
-            }
-        } catch (Exception ex) {
-            log.error("定时清空引导队列:" + ex.getMessage());
-        }
-    }
-}
\ No newline at end of file
diff --git a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/MinioTask.java b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/CleanTask.java
similarity index 78%
rename from ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/MinioTask.java
rename to ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/CleanTask.java
index 7a8ef64..1cbb4fe 100644
--- a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/MinioTask.java
+++ b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/CleanTask.java
@@ -1,15 +1,18 @@
 package com.ruoyi.quartz.task;
 
+import com.ruoyi.alarm.global.domain.GuidePriorityQueue;
+import com.ruoyi.alarm.global.domain.GuideTask;
 import com.ruoyi.utils.minio.MinioUtil;
 import io.minio.Result;
 import io.minio.messages.Item;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Component;
-import javax.annotation.Resource;
+
 import java.text.SimpleDateFormat;
 import java.time.ZoneId;
 import java.time.format.DateTimeFormatter;
 import java.util.*;
+import java.util.concurrent.PriorityBlockingQueue;
 
 /**
  * @ClassName: MinioDeleteTask
@@ -19,8 +22,8 @@
  * @Version: 1.0
  **/
 @Component("MinioTask")
-@Slf4j(topic = "minio")
-public class MinioTask {
+@Slf4j
+public class CleanTask {
 
     public void delHistoryTask(Integer saveDays) {
         log.debug("执行历史数据删除");
@@ -59,4 +62,20 @@
             log.error("minio历史数据删除异常:" + ex.getMessage());
         }
     }
+
+    /**
+     * 定时清空引导队列
+     * 刘苏义
+     * 2023/7/1 10:41
+     */
+    public void clearGuideQueue() {
+        try {
+            log.info("定时清理引导队列");
+            for (PriorityBlockingQueue<GuideTask> guideQueue : GuidePriorityQueue.cameraQueueMap.values()) {
+                guideQueue.clear();
+            }
+        } catch (Exception ex) {
+            log.error("定时清空引导队列:" + ex.getMessage());
+        }
+    }
 }
diff --git a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/SdkTask.java b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/PushTask.java
similarity index 79%
rename from ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/SdkTask.java
rename to ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/PushTask.java
index ad33328..4aa4deb 100644
--- a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/SdkTask.java
+++ b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/PushTask.java
@@ -1,32 +1,58 @@
 package com.ruoyi.quartz.task;
 
+import com.ruoyi.alarm.global.domain.GuidePriorityQueue;
+import com.ruoyi.alarm.global.domain.GuideTask;
+import com.ruoyi.alarm.global.service.IGlobalAlarmService;
 import com.ruoyi.common.constant.CacheConstants;
 import com.ruoyi.common.core.domain.entity.SysUser;
 import com.ruoyi.common.core.redis.RedisCache;
 import com.ruoyi.common.utils.DateUtils;
 import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.common.utils.spring.SpringUtils;
-import com.ruoyi.utils.websocket.util.WebSocketUtils;
 import com.ruoyi.device.camera.domain.ArdCameras;
 import com.ruoyi.device.camera.domain.CameraCmd;
 import com.ruoyi.device.hiksdk.common.GlobalVariable;
 import com.ruoyi.device.hiksdk.service.IHikClientService;
+import com.ruoyi.utils.websocket.util.WebSocketUtils;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Component;
+
 import java.util.*;
+import java.util.concurrent.PriorityBlockingQueue;
 
 import static com.ruoyi.utils.websocket.util.WebSocketUtils.ONLINE_USER_SESSIONS;
 
 /**
+ * @ClassName: AlarmTask
  * @Description:
- * @ClassName: SdkTask
- * @Author: 刘苏义
- * @Date: 2023年06月24日14:23
+ * @Author: Administrator
+ * @Date: 2023年03月06日 11:13
  * @Version: 1.0
  **/
-@Component("SdkTask")
-@Slf4j(topic = "hikSdk")
-public class SdkTask {
+@Component("PushTask")
+@Slf4j
+public class PushTask {
+
+    /**
+     * @描述 定时推送所有报警的点位数量
+     * @参数 []
+     * @返回值 void
+     * @创建人 刘苏义
+     * @创建时间 2023/6/15 15:43
+     * @修改人和其它信息
+     */
+    public void globalAlarmCountPush() {
+        try {
+            IGlobalAlarmService globalAlarmService = SpringUtils.getBean(IGlobalAlarmService.class);
+            Map<String, Object> stringIntegerMap = globalAlarmService.selectAlarmLogsCount();
+            if (ONLINE_USER_SESSIONS.size() > 0) {
+                WebSocketUtils.sendMessageAll(stringIntegerMap);
+            }
+        } catch (Exception ex) {
+            log.error("推送报警的点位数量异常:" + ex.getMessage());
+        }
+    }
+
 
     /**
      * @描述 定时推送ptz
@@ -105,5 +131,4 @@
             log.error("推送ptz异常:" + ex.getMessage());
         }
     }
-
-}
+}
\ No newline at end of file
diff --git a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/RongCloudTask.java b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/RongCloudTask.java
deleted file mode 100644
index 7ec73cc..0000000
--- a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/RongCloudTask.java
+++ /dev/null
@@ -1,58 +0,0 @@
-package com.ruoyi.quartz.task;
-
-import com.ruoyi.app.position.domain.ArdAppPosition;
-import com.ruoyi.common.core.domain.entity.SysUser;
-import com.ruoyi.rongcloud.service.RongCloudService;
-import com.ruoyi.system.service.ISysUserService;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.stereotype.Component;
-
-import javax.annotation.Resource;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-/**
- * @Description: 融云任务类
- * @ClassName: RongCloudTask
- * @Author: 刘苏义
- * @Date: 2023年07月28日13:18:22
- * @Version: 1.0
- **/
-@Component("RongCloudTask")
-@Slf4j
-public class RongCloudTask {
-
-    @Resource
-    ISysUserService sysUserService;
-    @Resource
-    RongCloudService rongCloudService;
-
-    /**
-     * 定时获取app用户在线状态
-     * 刘苏义
-     * 2023/8/9 9:17:48
-     */
-    public void getAppUserOnlineStateTask() {
-        try {
-            List<SysUser> SysUserList = sysUserService.selectAllAppUserList(new SysUser());
-            if (SysUserList.size() > 0) {
-                for (SysUser sysUser : SysUserList) {
-                    String state = sysUser.getAppOnlineState();//获取当前用户的在线状态
-                    Boolean online = rongCloudService.checkOnline(sysUser.getUserId());//从融云获取在线状态
-                    if (state != null) {
-                        Boolean appOnlineState = state.equals("1");
-                        if (appOnlineState == online) {
-                            continue;
-                        }
-                    }
-                    sysUser.setAppOnlineState(online ? "1" : "0");
-                    sysUserService.updateUserProfile(sysUser);
-                }
-            }
-        } catch (Exception ex) {
-            log.error("融云在线接口异常:" + ex.getMessage());
-        }
-    }
-}
diff --git a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/SyncTask.java b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/SyncTask.java
new file mode 100644
index 0000000..f2b6b01
--- /dev/null
+++ b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/SyncTask.java
@@ -0,0 +1,84 @@
+package com.ruoyi.quartz.task;
+
+import com.ruoyi.common.core.domain.entity.SysUser;
+import com.ruoyi.device.camera.domain.ArdCameras;
+import com.ruoyi.device.camera.domain.CameraCmd;
+import com.ruoyi.device.camera.service.IArdCamerasService;
+import com.ruoyi.device.hiksdk.service.IHikClientService;
+import com.ruoyi.rongcloud.service.RongCloudService;
+import com.ruoyi.system.service.ISysUserService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+/**
+ * @Description: 同步任务
+ * @ClassName: syncDeviceStateTask
+ * @Author: 刘苏义
+ * @Date: 2023年10月08日11:06:42
+ **/
+@Component("SyncTask")
+@Slf4j
+public class SyncTask {
+    @Resource
+    ISysUserService sysUserService;
+    @Resource
+    RongCloudService rongCloudService;
+    @Resource
+    IArdCamerasService iArdCamerasService;
+    @Resource
+    IHikClientService iHikClientService;
+
+    /**
+     * 同步相机在线状态
+     * 刘苏义
+     * 2023/10/8 14:54:41
+     */
+    public void cameraState() {
+        List<ArdCameras> ardCameras = iArdCamerasService.selectArdCamerasListNoDataScope(new ArdCameras());
+        for (ArdCameras camera : ardCameras) {
+            CameraCmd cmd = new CameraCmd();
+            cmd.setCameraId(camera.getId());
+            boolean onLineNew = iHikClientService.isOnLine(cmd);//相机实时状态
+            boolean onLineOld = "1".equals(camera.getState());//相机历史状态
+            //当状态发生变化时,更新实时状态
+            if (onLineNew != onLineOld) {
+                if (onLineNew) {
+                    camera.setState("1");
+                } else {
+                    camera.setState("0");
+                }
+                iArdCamerasService.updateArdCameras(camera);
+            }
+        }
+    }
+
+    /**
+     * 定时获取app用户在线状态
+     * 刘苏义
+     * 2023/8/9 9:17:48
+     */
+    public void appUserState() {
+        try {
+            List<SysUser> SysUserList = sysUserService.selectAllAppUserList(new SysUser());
+            if (SysUserList.size() > 0) {
+                for (SysUser sysUser : SysUserList) {
+                    String state = sysUser.getAppOnlineState();//获取当前用户的在线状态
+                    Boolean online = rongCloudService.checkOnline(sysUser.getUserId());//从融云获取在线状态
+                    if (state != null) {
+                        Boolean appOnlineState = state.equals("1");
+                        if (appOnlineState == online) {
+                            continue;
+                        }
+                    }
+                    sysUser.setAppOnlineState(online ? "1" : "0");
+                    sysUserService.updateUserProfile(sysUser);
+                }
+            }
+        } catch (Exception ex) {
+            log.error("融云在线接口异常:" + ex.getMessage());
+        }
+    }
+}
diff --git a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/syncDeviceStateTask.java b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/syncDeviceStateTask.java
deleted file mode 100644
index 4f13eaf..0000000
--- a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/syncDeviceStateTask.java
+++ /dev/null
@@ -1,43 +0,0 @@
-package com.ruoyi.quartz.task;
-
-import com.ruoyi.device.camera.domain.ArdCameras;
-import com.ruoyi.device.camera.domain.CameraCmd;
-import com.ruoyi.device.camera.service.IArdCamerasService;
-import com.ruoyi.device.hiksdk.service.IHikClientService;
-import org.springframework.stereotype.Component;
-
-import javax.annotation.Resource;
-import java.util.List;
-
-/**
- * @Description: 同步设备状态任务
- * @ClassName: syncDeviceStateTask
- * @Author: 刘苏义
- * @Date: 2023年10月08日11:06:42
- **/
-@Component("syncTask")
-public class syncDeviceStateTask {
-    @Resource
-    IArdCamerasService iArdCamerasService;
-    @Resource
-    IHikClientService iHikClientService;
-
-    public void cameraState() {
-        List<ArdCameras> ardCameras = iArdCamerasService.selectArdCamerasListNoDataScope(new ArdCameras());
-        for (ArdCameras camera : ardCameras) {
-            CameraCmd cmd = new CameraCmd();
-            cmd.setCameraId(camera.getId());
-            boolean onLineNew = iHikClientService.isOnLine(cmd);//相机实时状态
-            boolean onLineOld = "1".equals(camera.getState());//相机历史状态
-            //当状态发生变化时,更新实时状态
-            if (onLineNew != onLineOld) {
-                if (onLineNew) {
-                    camera.setState("1");
-                } else {
-                    camera.setState("0");
-                }
-                iArdCamerasService.updateArdCameras(camera);
-            }
-        }
-    }
-}
diff --git a/ruoyi-quartz/src/main/resources/mapper/quartz/SysJobLogMapper.xml b/ruoyi-quartz/src/main/resources/mapper/quartz/SysJobLogMapper.xml
index 42b7ccd..10d9669 100644
--- a/ruoyi-quartz/src/main/resources/mapper/quartz/SysJobLogMapper.xml
+++ b/ruoyi-quartz/src/main/resources/mapper/quartz/SysJobLogMapper.xml
@@ -42,6 +42,7 @@
 				and create_time &lt;= to_timestamp(#{params.endTime},'yyyy-MM-DD')
 			</if>
 		</where>
+		order by create_time desc
 	</select>
 	
 	<select id="selectJobLogAll" resultMap="SysJobLogResult">
diff --git a/ruoyi-quartz/src/main/resources/mapper/quartz/SysJobMapper.xml b/ruoyi-quartz/src/main/resources/mapper/quartz/SysJobMapper.xml
index cdda8bd..a9cdddb 100644
--- a/ruoyi-quartz/src/main/resources/mapper/quartz/SysJobMapper.xml
+++ b/ruoyi-quartz/src/main/resources/mapper/quartz/SysJobMapper.xml
@@ -41,6 +41,7 @@
 				AND invoke_target like ('%${invokeTarget}%')
 			</if>
 		</where>
+		order by create_time desc
 	</select>
 	
 	<select id="selectJobAll" resultMap="SysJobResult">

--
Gitblit v1.9.3