|
@@ -24,6 +24,7 @@ import com.ozs.entity.MsgAlarmFrequency;
|
|
|
import com.ozs.entity.MsgHeartbeatAlarmMessage;
|
|
|
import com.ozs.entity.SkynetHeartbeatLog;
|
|
|
import com.ozs.entity.SvcAddress;
|
|
|
+import com.ozs.entity.TerminalHeartbeatLog;
|
|
|
import com.ozs.entity.TerminalIgnoreAlarm;
|
|
|
import com.ozs.entity.VehiclePosition;
|
|
|
import com.ozs.entity.vo.AlarmFilesVo;
|
|
@@ -57,6 +58,7 @@ import com.ozs.service.MsgAlarmExtService;
|
|
|
import com.ozs.service.MsgAlarmFrequencyService;
|
|
|
import com.ozs.service.MsgAlarmService;
|
|
|
import com.ozs.service.SvcAddressService;
|
|
|
+import com.ozs.service.TerminalHeartbeatLogService;
|
|
|
import com.ozs.service.TerminalIgnoreAlarmService;
|
|
|
import com.ozs.service.VehiclePositionService;
|
|
|
import com.ozs.system.service.ISysDictDataService;
|
|
@@ -144,6 +146,8 @@ public class GeoHazardMonitorTokenController {
|
|
|
private String sdkUrl;
|
|
|
@Autowired
|
|
|
private ISysDictTypeService dictTypeService;
|
|
|
+ @Resource
|
|
|
+ private TerminalHeartbeatLogService terminalHeartbeatLogService;
|
|
|
|
|
|
/**
|
|
|
* 获取web访问令牌
|
|
@@ -552,7 +556,7 @@ public class GeoHazardMonitorTokenController {
|
|
|
return SM4Utils.encryptData_ECB(JSONObject.toJSONString(jsonObject), key);
|
|
|
}
|
|
|
if (heartbeatVo.getSignalStrength() == 2) {
|
|
|
- type=false;
|
|
|
+ type = false;
|
|
|
}
|
|
|
vehiclePosition.setTravelMile(heartbeatVo.getCurrentMile());
|
|
|
vehiclePosition.setVehicleCode(baseTerminal.getVehicleCode());
|
|
@@ -570,6 +574,11 @@ public class GeoHazardMonitorTokenController {
|
|
|
LambdaQueryWrapper<BaseTerminal> terminal = new LambdaQueryWrapper<>();
|
|
|
terminal.eq(BaseTerminal::getTerminalCode, vehiclePosition.getTerminalCode());
|
|
|
boolean update = baseTerminalService.update(baseTerminal1, terminal);
|
|
|
+ //获取心跳接口相机记录表信息
|
|
|
+ List<TerminalHeartbeatLog> heartbeatLogList = terminalHeartbeatLogService.list(new LambdaQueryWrapper<TerminalHeartbeatLog>()
|
|
|
+ .orderByDesc(TerminalHeartbeatLog::getCreateTime)
|
|
|
+ .last("limit 2"));
|
|
|
+ List<String> codeList = heartbeatLogList.stream().map(TerminalHeartbeatLog::getCameraCode).collect(Collectors.toList());
|
|
|
|
|
|
//目视距离和里程位置
|
|
|
if (save && update) {
|
|
@@ -624,7 +633,7 @@ public class GeoHazardMonitorTokenController {
|
|
|
camera.ge(BaseCameraManagement::getEndMile, list.get(0).getAlarmMile());
|
|
|
camera.le(BaseCameraManagement::getBeginMile, list.get(0).getAlarmMile());
|
|
|
camera.eq(BaseCameraManagement::getRailwayCode, heartbeatVo.getRailwayCode());
|
|
|
- camera.eq(BaseCameraManagement::getOnline,2);
|
|
|
+ camera.eq(BaseCameraManagement::getOnline, 2);
|
|
|
if (heartbeatVo.getLineDir() == 1) {
|
|
|
camera.in(BaseCameraManagement::getMonitoringDirection, 1, 3);
|
|
|
} else if (heartbeatVo.getLineDir() == 2) {
|
|
@@ -635,8 +644,16 @@ public class GeoHazardMonitorTokenController {
|
|
|
List<BaseCameraManagement> baseCameraManagementList = baseCameraManagementService.list(camera);
|
|
|
List<AlarmListVo> listVos = new ArrayList<>();
|
|
|
if (baseCameraManagementList.size() > 0) {
|
|
|
- //判断流媒体是否有流
|
|
|
- String playFlv = cameraUtil.heartbeatgetUrl(baseCameraManagementList.get(0).getCameraCode(), baseCameraManagementList.get(0).getChannel(),type);
|
|
|
+ String playFlv = cameraUtil.heartbeatgetUrl(baseCameraManagementList.get(0).getCameraCode(), baseCameraManagementList.get(0).getChannel(), type);
|
|
|
+ //判断心跳相机日志表后两条数据是否包含该相机编码
|
|
|
+ if (!codeList.contains(baseCameraManagementList.get(0).getCameraCode())) {
|
|
|
+ //如果不包含此相机编码
|
|
|
+ for (TerminalHeartbeatLog terminalHeartbeatLog : heartbeatLogList) {
|
|
|
+ cameraUtil.stopStream(terminalHeartbeatLog.getCameraCode(),terminalHeartbeatLog.getChannel());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //添加心跳相机日志信息
|
|
|
+ terminalHeartbeatLogService.add(baseCameraManagementList.get(0).getCameraCode(), baseCameraManagementList.get(0).getChannel());
|
|
|
respHeartbeatVo.setCurrentStream(playFlv);
|
|
|
respHeartbeatVo.setIsAlarm(1);
|
|
|
respHeartbeatVo.setCameraCode(baseCameraManagementList.get(0).getCameraCode());
|
|
@@ -681,7 +698,7 @@ public class GeoHazardMonitorTokenController {
|
|
|
ment.ge(BaseCameraManagement::getEndMile, list.get(i).getAlarmMile());
|
|
|
ment.le(BaseCameraManagement::getBeginMile, list.get(i).getAlarmMile());
|
|
|
ment.eq(BaseCameraManagement::getRailwayCode, heartbeatVo.getRailwayCode());
|
|
|
- ment.eq(BaseCameraManagement::getOnline,2);
|
|
|
+ ment.eq(BaseCameraManagement::getOnline, 2);
|
|
|
if (heartbeatVo.getLineDir() == 1) {
|
|
|
ment.in(BaseCameraManagement::getMonitoringDirection, 1, 3);
|
|
|
} else if (heartbeatVo.getLineDir() == 2) {
|
|
@@ -696,7 +713,16 @@ public class GeoHazardMonitorTokenController {
|
|
|
if (baseList.size() > 0) {
|
|
|
for (int o = 0; o < baseList.size(); o++) {
|
|
|
//判断流媒体是否有流
|
|
|
- String playFlv = cameraUtil.heartbeatgetUrl(baseList.get(o).getCameraCode(), baseList.get(o).getChannel(),type);
|
|
|
+ String playFlv = cameraUtil.heartbeatgetUrl(baseList.get(o).getCameraCode(), baseList.get(o).getChannel(), type);
|
|
|
+ //判断心跳相机日志表后两条数据是否包含该相机编码
|
|
|
+ if (!codeList.contains(baseList.get(o).getCameraCode())) {
|
|
|
+ //如果不包含此相机编码
|
|
|
+ for (TerminalHeartbeatLog terminalHeartbeatLog : heartbeatLogList) {
|
|
|
+ cameraUtil.stopStream(terminalHeartbeatLog.getCameraCode(),terminalHeartbeatLog.getChannel());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //添加心跳相机日志信息
|
|
|
+ terminalHeartbeatLogService.add(baseList.get(o).getCameraCode(), baseList.get(o).getChannel());
|
|
|
AlarmListVo alarmListVo = new AlarmListVo();
|
|
|
//alarmList对象
|
|
|
alarmListVo.setCameraStream(playFlv);
|
|
@@ -739,11 +765,20 @@ public class GeoHazardMonitorTokenController {
|
|
|
}
|
|
|
base.eq(BaseCameraManagement::getRailwayCode, heartbeatVo.getRailwayCode());
|
|
|
base.orderByAsc(BaseCameraManagement::getInstallMile);
|
|
|
- base.eq(BaseCameraManagement::getOnline,2);
|
|
|
+ base.eq(BaseCameraManagement::getOnline, 2);
|
|
|
base.last("limit 2");
|
|
|
List<BaseCameraManagement> list1 = baseCameraManagementService.list(base);
|
|
|
for (BaseCameraManagement baseCameraManagement : list1) {
|
|
|
- cameraUtil.heartbeatgetUrl(baseCameraManagement.getCameraCode(), baseCameraManagement.getChannel(),type);
|
|
|
+ cameraUtil.heartbeatgetUrl(baseCameraManagement.getCameraCode(), baseCameraManagement.getChannel(), type);
|
|
|
+ //判断心跳相机日志表后两条数据是否包含该相机编码
|
|
|
+ if (!codeList.contains(baseCameraManagement.getCameraCode())) {
|
|
|
+ //如果不包含此相机编码
|
|
|
+ for (TerminalHeartbeatLog terminalHeartbeatLog : heartbeatLogList) {
|
|
|
+ cameraUtil.stopStream(terminalHeartbeatLog.getCameraCode(),terminalHeartbeatLog.getChannel());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //添加心跳相机日志信息
|
|
|
+ terminalHeartbeatLogService.add(baseCameraManagement.getCameraCode(), baseCameraManagement.getChannel());
|
|
|
}
|
|
|
} else {
|
|
|
//没有报警信息的时候
|
|
@@ -759,7 +794,7 @@ public class GeoHazardMonitorTokenController {
|
|
|
}
|
|
|
base.eq(BaseCameraManagement::getRailwayCode, heartbeatVo.getRailwayCode());
|
|
|
base.orderByAsc(BaseCameraManagement::getInstallMile);
|
|
|
- base.eq(BaseCameraManagement::getOnline,2);
|
|
|
+ base.eq(BaseCameraManagement::getOnline, 2);
|
|
|
base.last("limit 2");
|
|
|
List<BaseCameraManagement> list1 = baseCameraManagementService.list(base);
|
|
|
if (list1.size() <= 0) {
|
|
@@ -770,7 +805,7 @@ public class GeoHazardMonitorTokenController {
|
|
|
}
|
|
|
log.info("流程1----------------->");
|
|
|
//判断流媒体是否有流
|
|
|
- String playFlv = cameraUtil.heartbeatgetPlayFlv(list1.get(0).getCameraCode(), list1.get(0).getChannel(),type);
|
|
|
+ String playFlv = cameraUtil.heartbeatgetPlayFlv(list1.get(0).getCameraCode(), list1.get(0).getChannel(), type);
|
|
|
log.info("playFlv------------>" + playFlv);
|
|
|
//拉四路视频
|
|
|
if (StringUtils.isEmpty(playFlv)) {
|
|
@@ -779,6 +814,15 @@ public class GeoHazardMonitorTokenController {
|
|
|
boolean finalType = type;
|
|
|
CompletableFuture.runAsync(() -> {
|
|
|
cameraUtil.heartbeatgetUrl(baseCameraManagement.getCameraCode(), baseCameraManagement.getChannel(), finalType);
|
|
|
+ //判断心跳相机日志表后两条数据是否包含该相机编码
|
|
|
+ if (!codeList.contains(baseCameraManagement.getCameraCode())) {
|
|
|
+ //如果不包含此相机编码
|
|
|
+ for (TerminalHeartbeatLog terminalHeartbeatLog : heartbeatLogList) {
|
|
|
+ cameraUtil.stopStream(terminalHeartbeatLog.getCameraCode(),terminalHeartbeatLog.getChannel());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //添加心跳相机日志信息
|
|
|
+ terminalHeartbeatLogService.add(baseCameraManagement.getCameraCode(), baseCameraManagement.getChannel());
|
|
|
});
|
|
|
}
|
|
|
} else {
|
|
@@ -789,6 +833,15 @@ public class GeoHazardMonitorTokenController {
|
|
|
boolean finalType1 = type;
|
|
|
CompletableFuture.runAsync(() -> {
|
|
|
cameraUtil.heartbeatgetUrl(baseCameraManagement.getCameraCode(), baseCameraManagement.getChannel(), finalType1);
|
|
|
+ //判断心跳相机日志表后两条数据是否包含该相机编码
|
|
|
+ if (!codeList.contains(baseCameraManagement.getCameraCode())) {
|
|
|
+ //如果不包含此相机编码
|
|
|
+ for (TerminalHeartbeatLog terminalHeartbeatLog : heartbeatLogList) {
|
|
|
+ cameraUtil.stopStream(terminalHeartbeatLog.getCameraCode(),terminalHeartbeatLog.getChannel());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //添加心跳相机日志信息
|
|
|
+ terminalHeartbeatLogService.add(baseCameraManagement.getCameraCode(), baseCameraManagement.getChannel());
|
|
|
});
|
|
|
}
|
|
|
}
|
|
@@ -814,7 +867,7 @@ public class GeoHazardMonitorTokenController {
|
|
|
}
|
|
|
base.eq(BaseCameraManagement::getRailwayCode, heartbeatVo.getRailwayCode());
|
|
|
base.orderByAsc(BaseCameraManagement::getInstallMile);
|
|
|
- base.eq(BaseCameraManagement::getOnline,2);
|
|
|
+ base.eq(BaseCameraManagement::getOnline, 2);
|
|
|
base.last("limit 2");
|
|
|
List<BaseCameraManagement> list1 = baseCameraManagementService.list(base);
|
|
|
if (list1.size() <= 0) {
|
|
@@ -825,7 +878,7 @@ public class GeoHazardMonitorTokenController {
|
|
|
}
|
|
|
log.info("流程2----------------->");
|
|
|
//判断流媒体是否有流
|
|
|
- String playFlv = cameraUtil.heartbeatgetPlayFlv(list1.get(0).getCameraCode(), list1.get(0).getChannel(),type);
|
|
|
+ String playFlv = cameraUtil.heartbeatgetPlayFlv(list1.get(0).getCameraCode(), list1.get(0).getChannel(), type);
|
|
|
log.info("playFlv------------>" + playFlv);
|
|
|
//拉四路视频
|
|
|
if (StringUtils.isEmpty(playFlv)) {
|
|
@@ -834,6 +887,15 @@ public class GeoHazardMonitorTokenController {
|
|
|
boolean finalType2 = type;
|
|
|
CompletableFuture.runAsync(() -> {
|
|
|
cameraUtil.heartbeatgetUrl(baseCameraManagement.getCameraCode(), baseCameraManagement.getChannel(), finalType2);
|
|
|
+ //判断心跳相机日志表后两条数据是否包含该相机编码
|
|
|
+ if (!codeList.contains(baseCameraManagement.getCameraCode())) {
|
|
|
+ //如果不包含此相机编码
|
|
|
+ for (TerminalHeartbeatLog terminalHeartbeatLog : heartbeatLogList) {
|
|
|
+ cameraUtil.stopStream(terminalHeartbeatLog.getCameraCode(),terminalHeartbeatLog.getChannel());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //添加心跳相机日志信息
|
|
|
+ terminalHeartbeatLogService.add(baseCameraManagement.getCameraCode(), baseCameraManagement.getChannel());
|
|
|
});
|
|
|
}
|
|
|
} else {
|
|
@@ -844,6 +906,15 @@ public class GeoHazardMonitorTokenController {
|
|
|
boolean finalType3 = type;
|
|
|
CompletableFuture.runAsync(() -> {
|
|
|
cameraUtil.heartbeatgetUrl(baseCameraManagement.getCameraCode(), baseCameraManagement.getChannel(), finalType3);
|
|
|
+ //判断心跳相机日志表后两条数据是否包含该相机编码
|
|
|
+ if (!codeList.contains(baseCameraManagement.getCameraCode())) {
|
|
|
+ //如果不包含此相机编码
|
|
|
+ for (TerminalHeartbeatLog terminalHeartbeatLog : heartbeatLogList) {
|
|
|
+ cameraUtil.stopStream(terminalHeartbeatLog.getCameraCode(),terminalHeartbeatLog.getChannel());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //添加心跳相机日志信息
|
|
|
+ terminalHeartbeatLogService.add(baseCameraManagement.getCameraCode(), baseCameraManagement.getChannel());
|
|
|
});
|
|
|
}
|
|
|
}
|
|
@@ -1079,7 +1150,7 @@ public class GeoHazardMonitorTokenController {
|
|
|
jsonObject.put("data", "没有该相机编码的相机或已离线");
|
|
|
return SM4Utils.encryptData_ECB(JSONObject.toJSONString(jsonObject), key);
|
|
|
}
|
|
|
- String playFlv = cameraUtil.heartbeatgetUrl(one.getCameraCode(), one.getChannel(),false);
|
|
|
+ String playFlv = cameraUtil.heartbeatgetUrl(one.getCameraCode(), one.getChannel(), false);
|
|
|
map.put("url", playFlv);
|
|
|
jsonObject.put("resultCode", 1);
|
|
|
jsonObject.put("message", "ok");
|