gao.qiang пре 2 година
родитељ
комит
90718a28dc

+ 8 - 2
business-service/src/main/java/com/ozs/entity/BaseVehicleTerminal.java

@@ -67,6 +67,12 @@ public class BaseVehicleTerminal implements Serializable {
      * 备注
      */
     private String remark;
-
-
+    /**
+     * 终端经度
+     */
+    private String terminalLongitude;
+    /**
+     * 终端纬度
+     */
+    private String terminalLatitude;
 }

+ 9 - 0
business-service/src/main/java/com/ozs/entity/VehiclePosition.java

@@ -113,4 +113,13 @@ public class VehiclePosition implements Serializable {
     @TableField(exist = false)
     @Excel(name = "车载状态",readConverterExp = "1=在线,2=离线")
     private String status;
+
+    /**
+     * 终端经度
+     */
+    private String terminalLongitude;
+    /**
+     * 终端纬度
+     */
+    private String terminalLatitude;
 }

+ 37 - 24
vehicle-admin/src/main/java/com/ozs/web/controller/sdk/GeoHazardMonitorTokenController.java

@@ -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);