| | |
| | | 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; |
| | |
| | | @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; |
| | |
| | | int aas = ardAlarmStealelecMapper.insertArdAlarmStealelec(ardAlarmStealelec); |
| | | if (aas > 0) { |
| | | log.info("stealelecå
¥åºæåï¼" + 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.setOperator("sys_steal_elec"); |
| | | cmd.setExpired(30); |
| | | cmd.setTargetPosition(new double[]{well.getLongitude(), well.getLatitude(), well.getAltitude()}); |
| | | String url = guideCamera(cmd); |
| | | boolean res = guideCamera(cmd); |
| | | if (res) { |
| | | String url = alarmToRecord(cmd); |
| | | if (StringUtils.isNotEmpty(url)) { |
| | | //æ´æ°å½å |
| | | ardAlarmStealelec.setRecordUrl(url); |
| | | ardAlarmStealelecMapper.updateArdAlarmStealelec(ardAlarmStealelec); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | //endregion |
| | |
| | | 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); |
| | |
| | | cmd.setOperator("sys_tube_leak"); |
| | | cmd.setExpired(30); |
| | | cmd.setTargetPosition(new double[]{ardAlarmTube.getLongitude(), ardAlarmTube.getLatitude(), ardAlarmTube.getAltitude()}); |
| | | String url = guideCamera(cmd); |
| | | //æ´æ°å½å |
| | | boolean res = guideCamera(cmd); |
| | | if (res) { |
| | | String url = alarmToRecord(cmd); |
| | | if (StringUtils.isNotEmpty(url)) { |
| | | //æ´æ°å½å |
| | | ardAlarmTube.setRecordUrl(url); |
| | | ardAlarmTubeMapper.updateArdAlarmTube(ardAlarmTube); |
| | | } |
| | | } |
| | | } |
| | | //endregion |
| | |
| | | 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); |
| | |
| | | cmd.setOperator("sys_camera"); |
| | | cmd.setExpired(30); |
| | | cmd.setTargetPosition(new double[]{ardAlarmCamera.getLongitude(), ardAlarmCamera.getLatitude()}); |
| | | String url = guideCamera(cmd); |
| | | //æ´æ°å½å |
| | | 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); |
| | | 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; |
| | | } |
| | |
| | | |
| | | /** |
| | | * @æè¿° å¼å¯¼æè¿ç大å
çµæåç®æ |
| | | * @åæ° [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"); |
| | | //è·åææå¤§å
çµ |
| | |
| | | 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) { |
| | | 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(minDistanceCameraId, Thread.currentThread().getName());//å°ç¸æºidä¸å½åå¤ç线ç¨åç§°ç»å® |
| | | GlobalVariable.threadMap.put(cameraId, Thread.currentThread().getName());//å°ç¸æºidä¸å½åå¤ç线ç¨åç§°ç»å® |
| | | Thread.sleep(cmd.getExpired() * 1000);//å½åæ¶é¿ |
| | | String thread = GlobalVariable.threadMap.get(minDistanceCameraId); |
| | | String thread = GlobalVariable.threadMap.get(cameraId); |
| | | String currentThread = Thread.currentThread().getName(); |
| | | //å¤æç¸æºç»å®çº¿ç¨æ¯å¦æ¯å½å线ç¨ï¼å¦ææ¯ï¼åæ¢å½åï¼å¦æä¸æ¯ï¼è¯´æç¸æºè¢«å
¶ä»çº¿ç¨æ¢å ï¼ä¸åæ¢å½å |
| | | if (thread.equals(currentThread)) { |
| | |
| | | cmd.setUploadMinio(true);//ä¸ä¼ minio |
| | | url = hikClientService.recordToMinio(cmd);//忢å½åè¿åurl |
| | | } |
| | | } |
| | | } else { |
| | | log.debug("æªæ¥æ¾å°æè¿å
çµ"); |
| | | } |
| | | } catch (Exception ex) { |
| | | log.error("å¼å¯¼å¼å¸¸:" + ex.getMessage()); |
| | | log.error("å½åå¼å¸¸:" + ex.getMessage()); |
| | | } |
| | | return url; |
| | | } |
| | |
| | | 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<>(); |
| | |
| | | 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 + ")"); |
| | | } |
| | | |
| | | } |