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