From 2e81e44c7dc4945b9d1db55bf0357e4c79d59500 Mon Sep 17 00:00:00 2001
From: ‘liusuyi’ <1951119284@qq.com>
Date: 星期二, 04 七月 2023 16:15:42 +0800
Subject: [PATCH] websocket推送ptz增加剩余秒数

---
 ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/SdkTask.java |   91 ++++++++++++++++++++++++++-------------------
 1 files changed, 53 insertions(+), 38 deletions(-)

diff --git a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/SdkTask.java b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/SdkTask.java
index 746bae2..4fcc320 100644
--- a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/SdkTask.java
+++ b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/SdkTask.java
@@ -11,6 +11,7 @@
 import com.ruoyi.device.hiksdk.common.GlobalVariable;
 import com.ruoyi.device.hiksdk.service.IHikClientService;
 import com.ruoyi.system.service.ISysUserService;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Component;
 
 import javax.annotation.Resource;
@@ -26,6 +27,7 @@
  * @Version: 1.0
  **/
 @Component("SdkTask")
+@Slf4j(topic = "hikSdk")
 public class SdkTask {
 
     /**
@@ -37,48 +39,61 @@
      * @淇敼浜哄拰鍏跺畠淇℃伅
      */
     public void ptzPush() {
-        ISysUserService sysUserService = SpringUtils.getBean(ISysUserService.class);
-        IArdCamerasService ardCamerasService = SpringUtils.getBean(IArdCamerasService.class);
-        IHikClientService hikClientService = SpringUtils.getBean(IHikClientService.class);
-        List<Map<String, Object>> list = new ArrayList<>();
-        ArdCameras ardCameras = new ArdCameras();
-        ardCameras.setGdtype("1");
-        List<ArdCameras> ardCamerasList = ardCamerasService.selectArdCamerasListNoDataScope(ardCameras);
-        for (ArdCameras camera : ardCamerasList) {
-            CameraCmd cmd = new CameraCmd();
-            cmd.setCameraId(camera.getId());
-            cmd.setChannelNum(1);
-            cmd.setOperator(camera.getOperatorId());
-            if (!GlobalVariable.loginMap.containsKey(camera.getId()))//鍙帹閫佺櫥褰曟垚鍔熺殑鐩告満
-            {
-                continue;
-            }
-            Map<String, Object> ptz = hikClientService.getPtz(cmd);
-            if (StringUtils.isNull(ptz)) {
-                continue;
-            }
-            SysUser sysUser = sysUserService.selectUserById(camera.getOperatorId());
-            if (StringUtils.isNotNull(sysUser)) {
-                cmd.setOperatorZh(sysUser.getNickName());
-            } else {
-                cmd.setOperatorZh(cmd.getOperator());
-            }
+        try {
+            ISysUserService sysUserService = SpringUtils.getBean(ISysUserService.class);
+            IArdCamerasService ardCamerasService = SpringUtils.getBean(IArdCamerasService.class);
+            IHikClientService hikClientService = SpringUtils.getBean(IHikClientService.class);
+            List<Map<String, Object>> list = new ArrayList<>();
+            ArdCameras ardCameras = new ArdCameras();
+            ardCameras.setGdtype("1");
+            List<ArdCameras> ardCamerasList = ardCamerasService.selectArdCamerasListNoDataScope(ardCameras);
+            for (ArdCameras camera : ardCamerasList) {
+                CameraCmd cmd = new CameraCmd();
+                cmd.setCameraId(camera.getId());
+                cmd.setChannelNum(1);
+                cmd.setOperator(camera.getOperatorId());
+                if (!GlobalVariable.loginMap.containsKey(camera.getId()))//鍙帹閫佺櫥褰曟垚鍔熺殑鐩告満
+                {
+                    continue;
+                }
+                Map<String, Object> ptz = hikClientService.getPtz(cmd);
+                if (StringUtils.isNull(ptz)) {
+                    continue;
+                }
+                SysUser sysUser = sysUserService.selectUserById(camera.getOperatorId());
+                if (StringUtils.isNotNull(sysUser)) {
+                    cmd.setOperatorZh(sysUser.getNickName());
+                } else {
+                    cmd.setOperatorZh(cmd.getOperator());
+                }
 
-            //鑾峰彇鏃堕棿宸�
-            long secDatePoor = DateUtils.getSecDatePoor(camera.getOperatorExpired(), new Date());
+                //鑾峰彇鏃堕棿宸�
+                long secDatePoor = 0;
+                if (StringUtils.isNotNull(camera.getOperatorExpired())) {
+                    secDatePoor = DateUtils.getSecDatePoor(camera.getOperatorExpired(), new Date());
+                    if(secDatePoor<0)
+                    {
+                        secDatePoor=0;
+                    }
+                }
 
-            if (ptz.size() > 0) {
-                ptz.put("cameraId", cmd.getCameraId());
-                ptz.put("usernameZh", cmd.getOperatorZh());
-                ptz.put("operatorId", cmd.getOperator());//涓婇攣鐢ㄦ埛id
-                ptz.put("expirationRemainingSecond", secDatePoor);
-                list.add(ptz);
+                if (ptz.size() > 0) {
+                    ptz.put("cameraId", cmd.getCameraId());
+                    ptz.put("usernameZh", cmd.getOperatorZh());
+                    ptz.put("operatorId", cmd.getOperator());//涓婇攣鐢ㄦ埛id
+                    ptz.put("expirationRemainingSecond", secDatePoor);
+                    list.add(ptz);
+                }
+            }
+            if (ONLINE_USER_SESSIONS.size() > 0) {
+                Map<String, Object> sendMap = new HashMap<>();
+                sendMap.put("10000", list);
+                WebSocketUtils.sendMessageAll(sendMap);
             }
         }
-        if (ONLINE_USER_SESSIONS.size() > 0) {
-            Map<String, Object> sendMap = new HashMap<>();
-            sendMap.put("10000", list);
-            WebSocketUtils.sendMessageAll(sendMap);
+        catch (Exception ex)
+        {
+            log.error("鎺ㄩ�乸tz寮傚父:"+ex.getMessage());
         }
     }
 }

--
Gitblit v1.9.3