| 
					
				 | 
			
			
				@@ -19,6 +19,7 @@ import com.ozs.entity.BaseDeviceDynamicManagement; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.ozs.entity.BaseRailwayManagement; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.ozs.entity.BaseTerminal; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.ozs.entity.BaseUser; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.ozs.entity.BaseVehicleTerminal; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.ozs.entity.CameraTree; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.ozs.entity.MsgAlarm; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.ozs.entity.MsgAlarmExt; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -48,6 +49,7 @@ import com.ozs.service.BaseDeviceDynamicManagementService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.ozs.service.BaseRailwayManagementService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.ozs.service.BaseTerminalService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.ozs.service.BaseUserService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.ozs.service.BaseVehicleTerminalService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.ozs.service.MsgAlarmExtService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.ozs.service.MsgAlarmFrequencyService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.ozs.service.MsgAlarmService; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -120,6 +122,8 @@ public class GeoHazardMonitorTokenController { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     private RedisCache redisCache; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     private ServerConfig serverConfig; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private BaseVehicleTerminalService baseVehicleTerminalService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      * 获取web访问令牌 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -374,6 +378,7 @@ public class GeoHazardMonitorTokenController { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @PostMapping("/api/terminal/heartbeat") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @Transactional 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     public String heartbeat(@RequestParam("parameter") String parameter, HttpServletRequest request) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         Map<String, Object> twoMap = new HashMap<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         int distance = 0; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -392,10 +397,19 @@ public class GeoHazardMonitorTokenController { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             BaseTerminal baseTerminal = baseTerminalService.getOne(wrapper); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             vehiclePosition.setTravelMile(heartbeatVo.getCurrentMile()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             vehiclePosition.setVehicleCode(baseTerminal.getVehicleCode()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            vehiclePosition.setTerminalLatitude(heartbeatVo.getLatitude()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            vehiclePosition.setTerminalLongitude(heartbeatVo.getLongitude()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             //机车行驶表添加数据 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             boolean save = vehiclePositionService.save(vehiclePosition); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            //修改车载终端经度纬度 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            BaseVehicleTerminal baseVehicleTerminal = new BaseVehicleTerminal(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            baseVehicleTerminal.setTerminalLatitude(heartbeatVo.getLatitude()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            baseVehicleTerminal.setTerminalLongitude(heartbeatVo.getLongitude()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            LambdaQueryWrapper<BaseVehicleTerminal> terminal = new LambdaQueryWrapper<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            terminal.eq(BaseVehicleTerminal::getTerminalCode, vehiclePosition.getTerminalCode()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            boolean update = baseVehicleTerminalService.update(baseVehicleTerminal, terminal); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             //目视距离和里程位置 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if (save) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (save && update) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 LambdaQueryWrapper<MsgAlarm> queryWrapper = new LambdaQueryWrapper<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 queryWrapper.le(MsgAlarm::getAlarmMile, heartbeatVo.getCurrentMile()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 queryWrapper.ge(MsgAlarm::getAlarmMile, (heartbeatVo.getCurrentMile() + 10000)); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -768,6 +782,7 @@ public class GeoHazardMonitorTokenController { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      * 获取报警回放 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      * @param parameter 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      * @param request 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      * @return 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -775,6 +790,7 @@ public class GeoHazardMonitorTokenController { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @PostMapping("/api/alarm/play") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     public String alarmPlay(@RequestParam("parameter") String parameter, HttpServletRequest request) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         Map<String, Object> map = new HashMap<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        String urls = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         String token = apiTokenUtils.getGeoHazardMonitorToken(request); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         log.info("token:{}", token); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         log.info("parameter:{}", parameter); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -785,7 +801,6 @@ public class GeoHazardMonitorTokenController { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             LambdaQueryWrapper<MsgAlarm> wrapper = new LambdaQueryWrapper<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             wrapper.eq(MsgAlarm::getAlarmId, terminalIgnoreVo.getAlarmId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             MsgAlarm one = msgAlarmService.getOne(wrapper); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            ArrayList<String> urls = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             if (ObjectUtils.isEmpty(one)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 jsonObject.put("resultCode", 0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 jsonObject.put("message", "失败"); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -800,27 +815,26 @@ public class GeoHazardMonitorTokenController { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 camera.orderByAsc(BaseCameraManagement::getInstallMile); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 List<BaseCameraManagement> baseCameraManagementList = baseCameraManagementService.list(camera); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 if (baseCameraManagementList.size() > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    for (BaseCameraManagement baseCameraManagement : baseCameraManagementList) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        Object cacheObject = redisCache.getCacheObject("STREAMING_ALARM_VIDEO:" + baseCameraManagement.getCameraCode()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        if (ObjectUtils.isEmpty(cacheObject)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            String url = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            if ("1".equals(one.getIsRelease().toString())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                url = CameraUtil.historyPlayListStr(baseCameraManagement.getChannel(), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                        one.getAlarmTime(), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                        one.getReleasedTime(), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                        true); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                redisCache.setCacheObject("STREAMING_ALARM_VIDEO:" + baseCameraManagement.getCameraCode(), url); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                redisCache.expire("STREAMING_ALARM_VIDEO:" + baseCameraManagement.getCameraCode(), 365L, TimeUnit.DAYS); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                url = CameraUtil.historyPlayListStr(baseCameraManagement.getChannel(), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                        one.getAlarmTime(), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                        new Date(), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                        false); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            urls.add(serverConfig.getUrl() + url); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        }else{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            urls.add(serverConfig.getUrl() + cacheObject); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    BaseCameraManagement baseCameraManagement = baseCameraManagementList.get(0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    Object cacheObject = redisCache.getCacheObject("STREAMING_ALARM_VIDEO:" + baseCameraManagement.getCameraCode()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    if (ObjectUtils.isEmpty(cacheObject)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        String url = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        if ("1".equals(one.getIsRelease().toString())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            url = CameraUtil.historyPlayListStr(baseCameraManagement.getChannel(), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    one.getAlarmTime(), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    one.getReleasedTime(), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    true); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            redisCache.setCacheObject("STREAMING_ALARM_VIDEO:" + baseCameraManagement.getCameraCode(), url); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            redisCache.expire("STREAMING_ALARM_VIDEO:" + baseCameraManagement.getCameraCode(), 365L, TimeUnit.DAYS); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            url = CameraUtil.historyPlayListStr(baseCameraManagement.getChannel(), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    one.getAlarmTime(), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    new Date(), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    false); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        urls = serverConfig.getUrl() + url; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        urls = serverConfig.getUrl() + cacheObject; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     jsonObject.put("resultCode", 1); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -828,8 +842,7 @@ public class GeoHazardMonitorTokenController { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     jsonObject.put("data", "没有该报警里程位置的相机"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     return SM4Utils.encryptData_ECB(JSONObject.toJSONString(jsonObject), "4370780c9a8c43e5"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                String[] array = urls.toArray(new String[]{}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                map.put("urls", array); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                map.put("url", urls); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 jsonObject.put("resultCode", 1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 jsonObject.put("message", "ok"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 jsonObject.put("data", map); 
			 |