From c422623743896020d819972e20895aea1896f823 Mon Sep 17 00:00:00 2001 From: ‘liusuyi’ <1951119284@qq.com> Date: 星期四, 29 六月 2023 11:37:24 +0800 Subject: [PATCH] 井管理增加关联相机字段 --- ard-work/src/main/java/com/ruoyi/alarm/globalAlarm/service/impl/GlobalAlarmServiceImpl.java | 201 +++++++++++++++++++++++++++++--------------------- 1 files changed, 117 insertions(+), 84 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 5d24727..90cbeb2 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 @@ -7,6 +7,7 @@ import com.ruoyi.alarm.globalAlarm.domain.GlobalAlarmData; import com.ruoyi.alarm.globalAlarm.service.IGlobalAlarmService; import com.ruoyi.alarm.radarAlarm.domain.ArdAlarmRadar; +import com.ruoyi.alarm.radarAlarm.domain.RadarAlarmData; import com.ruoyi.alarm.radarAlarm.mapper.ArdAlarmRadarMapper; import com.ruoyi.alarm.stealAlarm.domain.ArdAlarmStealelec; import com.ruoyi.alarm.stealAlarm.mapper.ArdAlarmStealelecMapper; @@ -119,7 +120,7 @@ }) .collect(Collectors.toList()); case 1003: - List<ArdAlarmRadar> ardAlarmRadars = ardAlarmRadarMapper.selectListAllByCommand(refreshTime,"杩愬姩鐩爣妫�娴�"); + List<ArdAlarmRadar> ardAlarmRadars = ardAlarmRadarMapper.selectListAllByCommand(refreshTime, "杩愬姩鐩爣妫�娴�"); return ardAlarmRadars.stream() .map(ardAlarmRadar -> { GlobalAlarmData globalAlarmData = new GlobalAlarmData() @@ -134,7 +135,7 @@ }) .collect(Collectors.toList()); case 1004: - ardAlarmRadars = ardAlarmRadarMapper.selectListAllByCommand(refreshTime,"鐑簮妫�娴�"); + ardAlarmRadars = ardAlarmRadarMapper.selectListAllByCommand(refreshTime, "鐑簮妫�娴�"); return ardAlarmRadars.stream() .map(ardAlarmRadar -> { GlobalAlarmData globalAlarmData = new GlobalAlarmData() @@ -214,17 +215,11 @@ @Async("alarmExecutor") public void receiveAlarm(String topic, String message) { try { - String simpleUUID = IdUtils.simpleUUID(); switch (topic) { case "stealelec": //region 澶勭悊鐩楃數鎶ヨ ArdAlarmStealelec ardAlarmStealelec = JSONObject.parseObject(message, ArdAlarmStealelec.class); - ArdAlarmpointsWell well = ardAlarmpointsWellMapper.selectArdAlarmpointsWellByWellId(ardAlarmStealelec.getDescribe()); - if (well != null) { - ardAlarmStealelec.setLongitude(well.getLongitude()); - ardAlarmStealelec.setLatitude(well.getLatitude()); - ardAlarmStealelec.setAltitude(well.getAltitude()); - } + ArdAlarmStealelec existe = ardAlarmStealelecMapper.selectByPrimaryKey(ardAlarmStealelec.getId()); if (StringUtils.isNotNull(existe)) { return; @@ -232,18 +227,27 @@ int aas = ardAlarmStealelecMapper.insertArdAlarmStealelec(ardAlarmStealelec); if (aas > 0) { log.info("stealelec鍏ュ簱鎴愬姛锛�" + ardAlarmStealelec); - //寮曞褰曞儚 - CameraCmd cmd = new CameraCmd(); - cmd.setRecordBucketName("record"); - cmd.setRecordObjectName("stealelec"); - cmd.setOperator("sys_steal_elec"); - cmd.setExpired(30); - cmd.setTargetPosition(new double[]{well.getLongitude(), well.getLatitude(), well.getAltitude()}); - String url = guideCamera(cmd); - if (StringUtils.isNotEmpty(url)) { - //鏇存柊褰曞儚 - ardAlarmStealelec.setRecordUrl(url); - ardAlarmStealelecMapper.updateArdAlarmStealelec(ardAlarmStealelec); + ArdAlarmpointsWell well = ardAlarmpointsWellMapper.selectArdAlarmpointsWellByWellId(ardAlarmStealelec.getDescribe()); + if (well != null) { + ardAlarmStealelec.setLongitude(well.getLongitude()); + ardAlarmStealelec.setLatitude(well.getLatitude()); + ardAlarmStealelec.setAltitude(well.getAltitude()); + //寮曞褰曞儚 + CameraCmd cmd = new CameraCmd(); + cmd.setRecordBucketName("record"); + cmd.setRecordObjectName("stealelec"); + cmd.setOperator("sys_steal_elec"); + cmd.setExpired(30); + cmd.setTargetPosition(new double[]{well.getLongitude(), well.getLatitude(), well.getAltitude()}); + boolean res = guideCamera(cmd); + if (res) { + String url = alarmToRecord(cmd); + if (StringUtils.isNotEmpty(url)) { + //鏇存柊褰曞儚 + ardAlarmStealelec.setRecordUrl(url); + ardAlarmStealelecMapper.updateArdAlarmStealelec(ardAlarmStealelec); + } + } } } //endregion @@ -251,7 +255,7 @@ case "tube": //region 澶勭悊绠$嚎娉勯湶鎶ヨ ArdAlarmTube ardAlarmTube = JSONObject.parseObject(message, ArdAlarmTube.class); - ardAlarmTube.setId(simpleUUID); + ardAlarmTube.setId(IdUtils.simpleUUID()); ArdTubesDetails atd = new ArdTubesDetails(); atd.setReelNumber(ardAlarmTube.getTubeId()); List<ArdTubesDetails> ardTubesDetails = ardTubesDetailsMapper.selectArdTubesDetailsList(atd); @@ -279,11 +283,14 @@ cmd.setOperator("sys_tube_leak"); cmd.setExpired(30); cmd.setTargetPosition(new double[]{ardAlarmTube.getLongitude(), ardAlarmTube.getLatitude(), ardAlarmTube.getAltitude()}); - String url = guideCamera(cmd); - //鏇存柊褰曞儚 - if (StringUtils.isNotEmpty(url)) { - ardAlarmTube.setRecordUrl(url); - ardAlarmTubeMapper.updateArdAlarmTube(ardAlarmTube); + boolean res = guideCamera(cmd); + if (res) { + String url = alarmToRecord(cmd); + if (StringUtils.isNotEmpty(url)) { + //鏇存柊褰曞儚 + ardAlarmTube.setRecordUrl(url); + ardAlarmTubeMapper.updateArdAlarmTube(ardAlarmTube); + } } } //endregion @@ -291,7 +298,7 @@ case "camera": //region 澶勭悊閫氱敤鍏夌數鎶ヨ ArdAlarmCamera ardAlarmCamera = JSONObject.parseObject(message, ArdAlarmCamera.class); - ardAlarmCamera.setId(simpleUUID); + ardAlarmCamera.setId(IdUtils.simpleUUID()); int aac = ardAlarmCameraMapper.insertArdAlarmCamera(ardAlarmCamera); if (aac > 0) { log.debug("camera鍏ュ簱鎴愬姛锛�" + ardAlarmCamera); @@ -302,23 +309,45 @@ 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); + boolean res = guideCamera(cmd); + if (res) { + String url = alarmToRecord(cmd); + if (StringUtils.isNotEmpty(url)) { + //鏇存柊褰曞儚 + ardAlarmCamera.setRecordUrl(url); + ardAlarmCameraMapper.updateArdAlarmCamera(ardAlarmCamera); + } } } //endregion break; case "radar": //region 澶勭悊闆疯揪鎶ヨ - ArdAlarmRadar ardAlarmRadar = JSONObject.parseObject(message, ArdAlarmRadar.class); - ardAlarmRadar.setId(simpleUUID); - int aar = ardAlarmRadarMapper.insertArdAlarmRadar(ardAlarmRadar); - if (aar > 0) { - log.debug("radar鍏ュ簱鎴愬姛锛�" + ardAlarmRadar); + RadarAlarmData radarAlarmData = JSONObject.parseObject(message, RadarAlarmData.class); + List<ArdAlarmRadar> ardAlarmRadars = radarAlarmData.getArdAlarmRadars(); + Map<String, Object> readyGuide = new HashMap<>(); + for (ArdAlarmRadar ardAlarmRadar : ardAlarmRadars) { + ardAlarmRadar.setId(IdUtils.simpleUUID()); + ardAlarmRadar.setAlarmTime(radarAlarmData.getAlarmTime()); + int aar = ardAlarmRadarMapper.insertArdAlarmRadar(ardAlarmRadar); + if (aar > 0) { + log.debug("radar鍏ュ簱鎴愬姛锛�" + ardAlarmRadar); + } + readyGuide.put(ardAlarmRadar.getName(), ardAlarmRadar);//姣忎釜鎶ヨ鐐瑰彇鍑轰竴鏉℃姤璀� } + //鑾峰彇姣忎釜鎶ヨ鐐瑰叧鑱旂殑鐩告満 + + //鍏堟壘鎶ヨ闆疯揪濉斾笂鐨勭浉鏈� + CameraCmd cmd = new CameraCmd(); + cmd.setCameraId("1"); + cmd.setChannelNum(1); + boolean b = guideCamera(cmd); + + //鍐嶆壘鎶ヨ鐐瑰叧鑱旂殑鐩告満 + cmd.setCameraId("2"); + cmd.setChannelNum(1); + boolean b1 = guideCamera(cmd); + //endregion break; } @@ -329,14 +358,13 @@ /** * @鎻忚堪 寮曞鏈�杩戠殑澶у厜鐢垫寚鍚戠洰鏍� - * @鍙傛暟 [targetPosition] - * @杩斿洖鍊� java.lang.String + * @鍙傛暟 [cmd] + * @杩斿洖鍊� boolean * @鍒涘缓浜� 鍒樿嫃涔� - * @鍒涘缓鏃堕棿 2023/6/15 11:55 + * @鍒涘缓鏃堕棿 2023/6/28 16:34 * @淇敼浜哄拰鍏跺畠淇℃伅 */ - private String guideCamera(CameraCmd cmd) { - String url = ""; + private boolean guideCamera(CameraCmd cmd) { try { String dayNightTime = redisCache.getCacheObject("sys_config:dayNightTime"); //鑾峰彇鎵�鏈夊ぇ鍏夌數 @@ -362,33 +390,52 @@ log.debug("鏌ユ壘鍒版渶杩戝厜鐢�:" + minDistanceCameraId + "锛屽皾璇曞紩瀵�"); if (guideMap.get(minDistanceCameraId).equals(0)) { log.debug("璇ュ厜鐢垫湭寮�鍚姤璀﹀紩瀵�"); - return ""; + return false; } //寮曞鍏夌數 cmd.setCameraId(minDistanceCameraId); cmd.setChannelNum(ArdTool.getChannelBydayNightTime(dayNightTime)); boolean guideRes = hikClientService.guideTargetPosition(cmd); - if (guideRes) { - log.debug("寮曞鎴愬姛锛屽皾璇曞綍鍍�"); - hikClientService.controlLock(cmd);//涓婇攣 - cmd.setEnable(true);//寮�濮嬪綍鍍� - hikClientService.recordToMinio(cmd);//寮�濮嬪綍鍍� - GlobalVariable.threadMap.put(minDistanceCameraId, Thread.currentThread().getName());//灏嗙浉鏈篿d涓庡綋鍓嶅鐞嗙嚎绋嬪悕绉扮粦瀹� - Thread.sleep(cmd.getExpired() * 1000);//褰曞儚鏃堕暱 - String thread = GlobalVariable.threadMap.get(minDistanceCameraId); - String currentThread = Thread.currentThread().getName(); - //鍒ゆ柇鐩告満缁戝畾绾跨▼鏄惁鏄綋鍓嶇嚎绋嬶紝濡傛灉鏄紝鍋滄褰曞儚锛屽鏋滀笉鏄紝璇存槑鐩告満琚叾浠栫嚎绋嬫姠鍗狅紝涓嶅仠姝㈠綍鍍� - if (thread.equals(currentThread)) { - cmd.setEnable(false);//鍋滄褰曞儚 - cmd.setUploadMinio(true);//涓婁紶minio - url = hikClientService.recordToMinio(cmd);//鍋滄褰曞儚杩斿洖url - } - } + return guideRes; + } else { log.debug("鏈煡鎵惧埌鏈�杩戝厜鐢�"); + return false; } } catch (Exception ex) { log.error("寮曞寮傚父:" + ex.getMessage()); + return false; + } + } + + /** + * @鎻忚堪 鎶ヨ褰曞儚 + * @鍙傛暟 [cmd] + * @杩斿洖鍊� java.lang.String + * @鍒涘缓浜� 鍒樿嫃涔� + * @鍒涘缓鏃堕棿 2023/6/28 16:33 + * @淇敼浜哄拰鍏跺畠淇℃伅 + */ + public String alarmToRecord(CameraCmd cmd) { + String url = ""; + try { + log.debug("寮曞鎴愬姛锛屽皾璇曞綍鍍�"); + String cameraId = cmd.getCameraId(); + hikClientService.controlLock(cmd);//涓婇攣 + cmd.setEnable(true);//寮�濮嬪綍鍍� + hikClientService.recordToMinio(cmd);//寮�濮嬪綍鍍� + GlobalVariable.threadMap.put(cameraId, Thread.currentThread().getName());//灏嗙浉鏈篿d涓庡綋鍓嶅鐞嗙嚎绋嬪悕绉扮粦瀹� + Thread.sleep(cmd.getExpired() * 1000);//褰曞儚鏃堕暱 + String thread = GlobalVariable.threadMap.get(cameraId); + String currentThread = Thread.currentThread().getName(); + //鍒ゆ柇鐩告満缁戝畾绾跨▼鏄惁鏄綋鍓嶇嚎绋嬶紝濡傛灉鏄紝鍋滄褰曞儚锛屽鏋滀笉鏄紝璇存槑鐩告満琚叾浠栫嚎绋嬫姠鍗狅紝涓嶅仠姝㈠綍鍍� + if (thread.equals(currentThread)) { + cmd.setEnable(false);//鍋滄褰曞儚 + cmd.setUploadMinio(true);//涓婁紶minio + url = hikClientService.recordToMinio(cmd);//鍋滄褰曞儚杩斿洖url + } + } catch (Exception ex) { + log.error("褰曞儚寮傚父:" + ex.getMessage()); } return url; } @@ -410,9 +457,9 @@ countMap.put("1001", count1001); int count1002 = ardAlarmCameraMapper.selectCountByAlarmTime(refreshTime); countMap.put("1002", count1002); - int count1003 = ardAlarmRadarMapper.selectCountByAlarmTime(refreshTime,"杩愬姩鐩爣妫�娴�"); + int count1003 = ardAlarmRadarMapper.selectCountByAlarmTime(refreshTime, "杩愬姩鐩爣妫�娴�"); countMap.put("1003", count1003); - int count1004 = ardAlarmRadarMapper.selectCountByAlarmTime(refreshTime,"鐑簮妫�娴�"); + int count1004 = ardAlarmRadarMapper.selectCountByAlarmTime(refreshTime, "鐑簮妫�娴�"); countMap.put("1004", count1004); int count1014 = ardAlarmTubeMapper.selectCountByAlarmTime(refreshTime); countMap.put("1014", count1014); @@ -420,6 +467,14 @@ return map; } + /** + * @鎻忚堪 鍘嗗彶鎶ヨ鏌ヨ + * @鍙傛暟 [command, beginTime, endTime, pageNum, pageSize] + * @杩斿洖鍊� java.lang.Object + * @鍒涘缓浜� 鍒樿嫃涔� + * @鍒涘缓鏃堕棿 2023/6/28 13:30 + * @淇敼浜哄拰鍏跺畠淇℃伅 + */ @Override public Object selectAlarmList(Integer command, String beginTime, String endTime, Integer pageNum, Integer pageSize) { Map<String, Object> params = new HashMap<>(); @@ -465,28 +520,6 @@ 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