From c17dc5484bde25d032bf58d114a4f1598a301f31 Mon Sep 17 00:00:00 2001
From: liusuyi <1951119284@qq.com>
Date: 星期三, 08 五月 2024 10:29:52 +0800
Subject: [PATCH] 增加用户预览位置接口
---
ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/PushTask.java | 263 ++++++++++++++++++++++++++-------------------------
1 files changed, 134 insertions(+), 129 deletions(-)
diff --git a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/PushTask.java b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/PushTask.java
index b9d9170..6363c40 100644
--- a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/PushTask.java
+++ b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/PushTask.java
@@ -1,129 +1,134 @@
-package com.ruoyi.quartz.task;
-
-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.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 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("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());
- }
- }
-
-
- /**
- * @鎻忚堪 瀹氭椂鎺ㄩ�乸tz
- * @鍙傛暟 []
- * @杩斿洖鍊� void
- * @鍒涘缓浜� 鍒樿嫃涔�
- * @鍒涘缓鏃堕棿 2023/6/15 15:43
- * @淇敼浜哄拰鍏跺畠淇℃伅
- */
- public void ptzPush() {
- try {
- RedisCache redisCache = SpringUtils.getBean(RedisCache.class);
- IHikClientService hikClientService = SpringUtils.getBean(IHikClientService.class);
- List<Map<String, Object>> list = new ArrayList<>();
- List<Object> Objects = redisCache.getListKey(CacheConstants.CAMERA_LIST_KEY);
- if (Objects.size() > 0) {
- for (Object obj : Objects) {
- ArdCameras camera = (ArdCameras) obj;
- if (!GlobalVariable.loginMap.containsKey(camera.getId()))//鍙帹閫侀娆$櫥褰曟垚鍔熺殑鐩告満
- {
- continue;
- }
- //鎺ㄩ�佸ぇ鍏夌數
- if(!"1".equals(camera.getGdtype()))
- {
- continue;
- }
- CameraCmd cmd = new CameraCmd();
- cmd.setCameraId(camera.getId());
- cmd.setChanNo(1);
- cmd.setOperator(camera.getOperatorId());
- //鎺ㄩ�佸湪绾跨殑鐩告満
- boolean onLine = hikClientService.isOnLine(cmd);
- if(!onLine)
- {
- continue;
- }
- Map<String, Object> ptz = hikClientService.getGisInfo(cmd);
- if (StringUtils.isNull(ptz)) {
- continue;
- }
- SysUser sysUser = redisCache.getCacheObject(CacheConstants.USER_LIST_KEY + camera.getOperatorId());
- if (StringUtils.isNotNull(sysUser)) {
- cmd.setOperatorZh(sysUser.getNickName());
- } else {
- cmd.setOperatorZh(cmd.getOperator());
- }
-
- //鑾峰彇鏃堕棿宸�
- 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);
- ptz.put("longitude",camera.getLongitude());
- ptz.put("latitude",camera.getLatitude());
- ptz.put("altitude",camera.getAltitude());
- list.add(ptz);
- }
- }
- 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());
- }
- }
-}
\ No newline at end of file
+package com.ruoyi.quartz.task;
+
+import com.ruoyi.alarm.global.service.IGlobalAlarmService;
+import com.ruoyi.common.constant.CacheConstants;
+import com.ruoyi.common.core.domain.AjaxResult;
+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.device.camera.domain.ArdCameras;
+import com.ruoyi.device.camera.domain.CameraCmd;
+import com.ruoyi.device.camera.service.ICameraSdkService;
+import com.ruoyi.utils.sdk.common.GlobalVariable;
+import com.ruoyi.utils.websocket.util.WebSocketUtils;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+
+import javax.annotation.Resource;
+import java.util.*;
+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("PushTask")
+@Slf4j
+public class PushTask {
+
+ @Resource
+ RedisCache redisCache;
+ @Resource
+ ICameraSdkService cameraSdkService;
+ @Resource
+ IGlobalAlarmService globalAlarmService;
+ /**
+ * @鎻忚堪 瀹氭椂鎺ㄩ�佹墍鏈夋姤璀︾殑鐐逛綅鏁伴噺
+ * @鍙傛暟 []
+ * @杩斿洖鍊� void
+ * @鍒涘缓浜� 鍒樿嫃涔�
+ * @鍒涘缓鏃堕棿 2023/6/15 15:43
+ * @淇敼浜哄拰鍏跺畠淇℃伅
+ */
+ public void globalAlarmCountPush() {
+ try {
+ Map<String, Object> stringIntegerMap = globalAlarmService.selectAlarmLogsCount();
+ if (ONLINE_USER_SESSIONS.size() > 0) {
+ WebSocketUtils.sendMessageAll(stringIntegerMap);
+ }
+ } catch (Exception ex) {
+ log.error("鎺ㄩ�佹姤璀︾殑鐐逛綅鏁伴噺寮傚父:" + ex.getMessage());
+ }
+ }
+
+
+ /**
+ * @鎻忚堪 瀹氭椂鎺ㄩ�乸tz
+ * @鍙傛暟 []
+ * @杩斿洖鍊� void
+ * @鍒涘缓浜� 鍒樿嫃涔�
+ * @鍒涘缓鏃堕棿 2023/6/15 15:43
+ * @淇敼浜哄拰鍏跺畠淇℃伅
+ */
+ public void ptzPush() {
+ try {
+ List<Map<String, Object>> list = new ArrayList<>();
+ List<Object> Objects = redisCache.getListKey(CacheConstants.CAMERA_LIST_KEY);
+ if (Objects.size() > 0) {
+ for (Object obj : Objects) {
+ ArdCameras camera = (ArdCameras) obj;
+ if (!GlobalVariable.loginMap.containsKey(camera.getId()))//鍙帹閫侀娆$櫥褰曟垚鍔熺殑鐩告満
+ {
+ continue;
+ }
+ if(!"1".equals(camera.getGdtype()))
+ {
+ continue;
+ }
+ CameraCmd cmd = new CameraCmd();
+ cmd.setCameraId(camera.getId());
+ cmd.setChanNo(1);
+ cmd.setOperator(camera.getOperatorId());
+ //鎺ㄩ�佸湪绾跨殑鐩告満
+ boolean onLine = cameraSdkService.isOnLine(cmd);
+ if(!onLine)
+ {
+ continue;
+ }
+ AjaxResult ajaxResult = cameraSdkService.getGisInfo(cmd);
+ Map<String, Object> ptz = (Map<String, Object>)ajaxResult.get("data");
+ if (StringUtils.isNull(ptz)) {
+ continue;
+ }
+ SysUser sysUser = redisCache.getCacheObject(CacheConstants.USER_LIST_KEY + camera.getOperatorId());
+ if (StringUtils.isNotNull(sysUser)) {
+ cmd.setOperatorZh(sysUser.getNickName());
+ } else {
+ cmd.setOperatorZh(cmd.getOperator());
+ }
+
+ //鑾峰彇鏃堕棿宸�
+ 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);
+ ptz.put("longitude",camera.getLongitude());
+ ptz.put("latitude",camera.getLatitude());
+ ptz.put("altitude",camera.getAltitude());
+ list.add(ptz);
+ }
+ }
+ 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