From 0c8751da4d4bcf63289fc7cbd90aa5635ceb3984 Mon Sep 17 00:00:00 2001 From: ‘liusuyi’ <1951119284@qq.com> Date: 星期六, 24 六月 2023 11:45:01 +0800 Subject: [PATCH] 增加报警历史查询分页功能 --- ard-work/src/main/java/com/ruoyi/alarm/globalAlarm/service/impl/GlobalAlarmServiceImpl.java | 93 +++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 91 insertions(+), 2 deletions(-) diff --git a/ard-work/src/main/java/com/ruoyi/alarm/globalAlarm/service/impl/GlobalAlarmServiceImpl.java b/ard-work/src/main/java/com/ruoyi/alarm/globalAlarm/service/impl/GlobalAlarmServiceImpl.java index 26b741a..0327572 100644 --- a/ard-work/src/main/java/com/ruoyi/alarm/globalAlarm/service/impl/GlobalAlarmServiceImpl.java +++ b/ard-work/src/main/java/com/ruoyi/alarm/globalAlarm/service/impl/GlobalAlarmServiceImpl.java @@ -1,6 +1,8 @@ package com.ruoyi.alarm.globalAlarm.service.impl; import com.alibaba.fastjson2.JSONObject; +import com.ruoyi.alarm.cameraAlarm.domain.ArdAlarmCamera; +import com.ruoyi.alarm.cameraAlarm.mapper.ArdAlarmCameraMapper; import com.ruoyi.alarm.globalAlarm.domain.GlobalAlarmCondition; import com.ruoyi.alarm.globalAlarm.domain.GlobalAlarmData; import com.ruoyi.alarm.globalAlarm.service.IGlobalAlarmService; @@ -14,6 +16,7 @@ import com.ruoyi.alarmpoints.tube.mapper.ArdTubesMapper; import com.ruoyi.alarmpoints.well.domain.ArdAlarmpointsWell; import com.ruoyi.alarmpoints.well.mapper.ArdAlarmpointsWellMapper; +import com.ruoyi.common.core.redis.RedisCache; import com.ruoyi.common.utils.DateUtils; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.utils.tools.ArdTool; @@ -52,6 +55,8 @@ @Resource ArdAlarmTubeMapper ardAlarmTubeMapper; @Resource + ArdAlarmCameraMapper ardAlarmCameraMapper; + @Resource ArdTubesMapper ardTubesMapper; @Resource ArdAlarmpointsWellMapper ardAlarmpointsWellMapper; @@ -63,6 +68,9 @@ private ArdCamerasMapper ardCamerasMapper; @Resource private IHikClientService hikClientService; + @Resource + private RedisCache redisCache; + /** * @鎻忚堪 鎸夋潯浠舵煡璇㈡姤璀� * @鍙傛暟 [condition] @@ -91,6 +99,21 @@ return globalAlarmData; }) .collect(Collectors.toList()); + case 1002: + List<ArdAlarmCamera> ardAlarmCameras = ardAlarmCameraMapper.selectListAllByCommand(refreshTime); + return ardAlarmCameras.stream() + .map(ardAlarmCamera -> { + GlobalAlarmData globalAlarmData = new GlobalAlarmData() + .setId(ardAlarmCamera.getId()) + .setName(ardAlarmCamera.getCameraName()) + .setAlarmTime(ardAlarmCamera.getAlarmTime()) + .setLongitude(ardAlarmCamera.getLongitude()) + .setLatitude(ardAlarmCamera.getLatitude()) + .setCount(ardAlarmCamera.getCount()) + .setTotal(ardAlarmCamera.getTotal()); + return globalAlarmData; + }) + .collect(Collectors.toList()); case 1014: List<ArdAlarmTube> ardAlarmTubes = ardAlarmTubeMapper.selectListAllByCommand(refreshTime); return ardAlarmTubes.stream() @@ -111,6 +134,7 @@ return null; } } + /** * @鎻忚堪 鎸夋潯浠舵洿鏂版煡鐪嬫椂闂� * @鍙傛暟 [condition] @@ -143,6 +167,7 @@ return null; } } + /** * @鎻忚堪 寮傛澶勭悊鎺ユ敹鐨勬姤璀� * @鍙傛暟 [topic, message] @@ -229,6 +254,29 @@ } //endregion break; + case "camera": + //region 澶勭悊閫氱敤鍏夌數鎶ヨ + ArdAlarmCamera ardAlarmCamera = JSONObject.parseObject(message, ArdAlarmCamera.class); + ardAlarmCamera.setId(simpleUUID); + int aac = ardAlarmCameraMapper.insertArdAlarmCamera(ardAlarmCamera); + if (aac > 0) { + log.debug("camera鍏ュ簱鎴愬姛锛�" + ardAlarmCamera); + //寮曞褰曞儚 + CameraCmd cmd = new CameraCmd(); + cmd.setRecordBucketName("record"); + cmd.setRecordObjectName("camera"); + cmd.setOperator("sys_camera"); + cmd.setExpired(30); + cmd.setTargetPosition(new double[]{ardAlarmCamera.getLongitude(), ardAlarmCamera.getLatitude()}); + String url = guideCamera(cmd); + //鏇存柊褰曞儚 + if (StringUtils.isNotEmpty(url)) { + ardAlarmCamera.setRecordUrl(url); + ardAlarmCameraMapper.updateArdAlarmCamera(ardAlarmCamera); + } + } + //endregion + break; } } catch (Exception ex) { log.error("鎺ユ敹鎶ヨ寮傚父:" + ex.getMessage()); @@ -246,25 +294,35 @@ private String guideCamera(CameraCmd cmd) { String url = ""; try { + String dayNightTime = redisCache.getCacheObject("sys_config:dayNightTime"); //鑾峰彇鎵�鏈夊ぇ鍏夌數 List<ArdCameras> ardCamerasList = ardCamerasMapper.selectArdCamerasList(new ArdCameras("1")); //缁熻鎵�鏈夊ぇ鍏夌數鍙鑼冨洿鍐呬笌鎶ヨ鐐圭殑璺濈 Map<String, Double> distanceMap = new HashMap<>(); + Map<String, Integer> guideMap = new HashMap<>(); for (ArdCameras camera : ardCamerasList) { double[] camPosition = new double[]{camera.getLongitude(), camera.getLatitude()}; double distance = GisTool.getDistance(cmd.getTargetPosition(), camPosition); if (distance != 0.0 && distance <= camera.getCamMaxVisibleDistance()) { distanceMap.put(camera.getId(), distance); + if (StringUtils.isNull(camera.getCamAlarmGuideEnable())) { + camera.setCamAlarmGuideEnable(0); + } + guideMap.put(camera.getId(), camera.getCamAlarmGuideEnable()); } } if (distanceMap.size() > 0) { log.debug("灏濊瘯鏌ユ壘鏈�杩戝厜鐢�"); //鑾峰彇璺濈瀛楀吀涓渶杩戠殑涓�涓浉鏈篒D String minDistanceCameraId = ArdTool.getKeyByMinValue(distanceMap); - log.debug("鏌ユ壘鍒版渶杩戝厜鐢�:"+minDistanceCameraId+"锛屽皾璇曞紩瀵�"); + log.debug("鏌ユ壘鍒版渶杩戝厜鐢�:" + minDistanceCameraId + "锛屽皾璇曞紩瀵�"); + if (guideMap.get(minDistanceCameraId).equals(0)) { + log.debug("璇ュ厜鐢垫湭寮�鍚姤璀﹀紩瀵�"); + return ""; + } //寮曞鍏夌數 cmd.setCameraId(minDistanceCameraId); - cmd.setChannelNum(1); + cmd.setChannelNum(ArdTool.getChannelBydayNightTime(dayNightTime)); boolean guideRes = hikClientService.guideTargetPosition(cmd); if (guideRes) { log.debug("寮曞鎴愬姛锛屽皾璇曞綍鍍�"); @@ -309,4 +367,35 @@ countMap.put("1014 ", count1014); return countMap; } + + @Override + public Object selectAlarmList(Integer command, String beginTime, String endTime,Integer pageNum,Integer pageSize) { + Map<String, Object> params = new HashMap<>(); + params.put("beginTime", beginTime); + params.put("endTime", endTime); + switch (command) { + case 1001: + ArdAlarmStealelec aas = new ArdAlarmStealelec(); + aas.setParams(params); + aas.setPageNum(pageNum); + aas.setPageSize(pageSize); + List<ArdAlarmStealelec> ardAlarmStealelecs = ardAlarmStealelecMapper.selectArdAlarmStealelecList(aas); + return ardAlarmStealelecs; + case 1002: + ArdAlarmCamera aac = new ArdAlarmCamera(); + aac.setParams(params); + aac.setPageNum(pageNum); + aac.setPageSize(pageSize); + List<ArdAlarmCamera> ardAlarmCameras = ardAlarmCameraMapper.selectArdAlarmCameraList(aac); + return ardAlarmCameras; + case 1014: + ArdAlarmTube aat = new ArdAlarmTube(); + aat.setParams(params); + aat.setPageNum(pageNum); + aat.setPageSize(pageSize); + List<ArdAlarmTube> ardAlarmTubes = ardAlarmTubeMapper.selectArdAlarmTubeList(aat); + return ardAlarmTubes; + } + return null; + } } -- Gitblit v1.9.3