From 1aad56563c6861e13f3a837eb7ef410723cc2358 Mon Sep 17 00:00:00 2001 From: ‘liusuyi’ <1951119284@qq.com> Date: 星期日, 25 六月 2023 11:00:04 +0800 Subject: [PATCH] 报警点位数量推送增加一层map 增加通用光电报警数量推送 --- ard-work/src/main/java/com/ruoyi/alarm/globalAlarm/service/impl/GlobalAlarmServiceImpl.java | 119 +++++++++++++++++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 111 insertions(+), 8 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 ad84498..8bb6f21 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; @@ -53,6 +55,8 @@ @Resource ArdAlarmTubeMapper ardAlarmTubeMapper; @Resource + ArdAlarmCameraMapper ardAlarmCameraMapper; + @Resource ArdTubesMapper ardTubesMapper; @Resource ArdAlarmpointsWellMapper ardAlarmpointsWellMapper; @@ -66,6 +70,7 @@ private IHikClientService hikClientService; @Resource private RedisCache redisCache; + /** * @鎻忚堪 鎸夋潯浠舵煡璇㈡姤璀� * @鍙傛暟 [condition] @@ -94,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() @@ -114,6 +134,7 @@ return null; } } + /** * @鎻忚堪 鎸夋潯浠舵洿鏂版煡鐪嬫椂闂� * @鍙傛暟 [condition] @@ -146,6 +167,7 @@ return null; } } + /** * @鎻忚堪 寮傛澶勭悊鎺ユ敹鐨勬姤璀� * @鍙傛暟 [topic, message] @@ -232,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()); @@ -260,16 +305,18 @@ double distance = GisTool.getDistance(cmd.getTargetPosition(), camPosition); if (distance != 0.0 && distance <= camera.getCamMaxVisibleDistance()) { distanceMap.put(camera.getId(), distance); - guideMap.put(camera.getId(),camera.getCamAlarmGuideEnable()); + 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+"锛屽皾璇曞紩瀵�"); - if(guideMap.get(minDistanceCameraId).equals(0)) - { + log.debug("鏌ユ壘鍒版渶杩戝厜鐢�:" + minDistanceCameraId + "锛屽皾璇曞紩瀵�"); + if (guideMap.get(minDistanceCameraId).equals(0)) { log.debug("璇ュ厜鐢垫湭寮�鍚姤璀﹀紩瀵�"); return ""; } @@ -311,13 +358,69 @@ * @淇敼浜哄拰鍏跺畠淇℃伅 */ @Override - public Map<String, Integer> selectAlarmLogsCount() { + public Map<String, Object> selectAlarmLogsCount() { + Map<String,Object> map=new HashMap<>(); Map<String, Integer> countMap = new HashMap<>(); String refreshTime = configService.selectConfigByKey("refreshTime"); int count1001 = ardAlarmStealelecMapper.selectCountByStartTime(refreshTime); countMap.put("1001", count1001); - int count1014 = ardAlarmTubeMapper.selectCountByStartTime(refreshTime); - countMap.put("1014 ", count1014); - return countMap; + int count1002 = ardAlarmCameraMapper.selectCountByAlarmTime(refreshTime); + countMap.put("1002", count1002); + int count1014 = ardAlarmTubeMapper.selectCountByAlarmTime(refreshTime); + countMap.put("1014", count1014); + map.put("20000",countMap); + return map; + } + + @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; + } + public static void main(String[] args) { + // 缁欏畾鍧愭爣 A + double Ax = 0; + double Ay = 0; + + // 缁欏畾瑙掑害锛堜互搴︿负鍗曚綅锛� + double angle = 45; + + // 缁欏畾璺濈 + double distance = 1.414; + + // 灏嗚搴﹁浆鎹负寮у害 + double radians = Math.toRadians(angle); + + // 璁$畻 B 鍧愭爣 + double Bx = Ax + distance * Math.cos(radians); + double By = Ay + distance * Math.sin(radians); + + // 杈撳嚭缁撴灉 + System.out.println("鍧愭爣 B: (" + Bx + ", " + By + ")"); } } -- Gitblit v1.9.3