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 | 87 +++++++++++++++++++++++++++++-------------- 1 files changed, 58 insertions(+), 29 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 7a93710..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 @@ -1,5 +1,7 @@ package com.ruoyi.quartz.task; +import com.ruoyi.common.core.domain.entity.SysUser; +import com.ruoyi.common.utils.DateUtils; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.common.utils.spring.SpringUtils; import com.ruoyi.common.websocket.util.WebSocketUtils; @@ -8,13 +10,12 @@ import com.ruoyi.device.camera.service.IArdCamerasService; 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; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; import static com.ruoyi.common.websocket.util.WebSocketUtils.ONLINE_USER_SESSIONS; @@ -26,6 +27,7 @@ * @Version: 1.0 **/ @Component("SdkTask") +@Slf4j(topic = "hikSdk") public class SdkTask { /** @@ -37,34 +39,61 @@ * @淇敼浜哄拰鍏跺畠淇℃伅 */ public void ptzPush() { - 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); - if (!GlobalVariable.loginMap.containsKey(camera.getId()))//鍙帹閫佺櫥褰曟垚鍔熺殑鐩告満 - { - continue; + 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 = 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); + } } - Map<String, Object> ptz = hikClientService.getPtz(cmd); - if (StringUtils.isNull(ptz)) { - continue; - } - if (ptz.size() > 0) { - ptz.put("cameraId", camera.getId()); - ptz.put("operatorExpired", camera.getOperatorExpired()); - 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