|  |  |  | 
|---|
|  |  |  | 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.utils.spring.SpringUtils; | 
|---|
|  |  |  | import com.ruoyi.device.camera.domain.ArdCameras; | 
|---|
|  |  |  | import com.ruoyi.device.camera.domain.CameraCmd; | 
|---|
|  |  |  | import com.ruoyi.device.camera.service.ICameraSdkService; | 
|---|
|  |  |  | 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 javax.annotation.Resource; | 
|---|
|  |  |  | import java.util.*; | 
|---|
|  |  |  | import java.util.concurrent.PriorityBlockingQueue; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | import static com.ruoyi.utils.websocket.util.WebSocketUtils.ONLINE_USER_SESSIONS; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * @ClassName: AlarmTask | 
|---|
|  |  |  | * @Description: | 
|---|
|  |  |  | * @Description: 推送任务 | 
|---|
|  |  |  | * @Author: Administrator | 
|---|
|  |  |  | * @Date: 2023年03月06日 11:13 | 
|---|
|  |  |  | * @Version: 1.0 | 
|---|
|  |  |  | 
|---|
|  |  |  | @Slf4j | 
|---|
|  |  |  | public class PushTask { | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Resource | 
|---|
|  |  |  | RedisCache redisCache; | 
|---|
|  |  |  | @Resource | 
|---|
|  |  |  | ICameraSdkService cameraSdkService; | 
|---|
|  |  |  | @Resource | 
|---|
|  |  |  | IGlobalAlarmService globalAlarmService; | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * @描述 定时推送所有报警的点位数量 | 
|---|
|  |  |  | * @参数 [] | 
|---|
|  |  |  | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | 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); | 
|---|
|  |  |  | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | 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) { | 
|---|
|  |  |  | 
|---|
|  |  |  | { | 
|---|
|  |  |  | continue; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | //推送大光电 | 
|---|
|  |  |  | if(!"1".equals(camera.getGdtype())) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | continue; | 
|---|
|  |  |  | 
|---|
|  |  |  | cmd.setChanNo(1); | 
|---|
|  |  |  | cmd.setOperator(camera.getOperatorId()); | 
|---|
|  |  |  | //推送在线的相机 | 
|---|
|  |  |  | boolean onLine = hikClientService.isOnLine(cmd); | 
|---|
|  |  |  | boolean onLine = cameraSdkService.isOnLine(cmd); | 
|---|
|  |  |  | if(!onLine) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | continue; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | Map<String, Object> ptz = hikClientService.getGisInfo(cmd); | 
|---|
|  |  |  | Map<String, Object> ptz = cameraSdkService.getGisInfo(cmd); | 
|---|
|  |  |  | if (StringUtils.isNull(ptz)) { | 
|---|
|  |  |  | continue; | 
|---|
|  |  |  | } | 
|---|