|
@@ -77,12 +77,15 @@ import org.springframework.web.bind.annotation.RestController;
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
|
import javax.servlet.http.HttpServletRequest;
|
|
|
+import java.time.LocalDateTime;
|
|
|
+import java.time.format.DateTimeFormatter;
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.Comparator;
|
|
|
import java.util.Date;
|
|
|
import java.util.HashMap;
|
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
|
* 1. 获取身份认证控制层
|
|
@@ -138,6 +141,8 @@ public class GeoHazardMonitorTokenController {
|
|
|
private SysUserMapper sysUserMapper;
|
|
|
@Autowired
|
|
|
WebSocketCommon webSocketCommon;
|
|
|
+ @Autowired
|
|
|
+ private CameraUtil cameraUtil;
|
|
|
@Resource
|
|
|
private SkynetHeartbeatLogMapper synetHeartbeatLogMapper;
|
|
|
@Resource
|
|
@@ -508,6 +513,7 @@ public class GeoHazardMonitorTokenController {
|
|
|
@PostMapping("/api/terminal/heartbeat")
|
|
|
@Transactional
|
|
|
public String heartbeat(@RequestBody ParameterVo parameterVo, HttpServletRequest request) {
|
|
|
+ long begin = System.currentTimeMillis();
|
|
|
Map<String, Object> twoMap = new HashMap<>();
|
|
|
int distance = 0;
|
|
|
RespHeartbeatVo respHeartbeatVo = new RespHeartbeatVo();
|
|
@@ -632,112 +638,190 @@ public class GeoHazardMonitorTokenController {
|
|
|
queryWrapper.eq(MsgAlarm::getLineDir, heartbeatVo.getLineDir());
|
|
|
queryWrapper.eq(MsgAlarm::getRailwayCode, heartbeatVo.getRailwayCode());
|
|
|
queryWrapper.orderByAsc(MsgAlarm::getAlarmMile);
|
|
|
- List<MsgAlarm> list = msgAlarmService.list(queryWrapper);
|
|
|
- //有报警信息的时候
|
|
|
- if (list.size() > 0) {
|
|
|
- //获取报警里程所监控的所有相机
|
|
|
- LambdaQueryWrapper<BaseCameraManagement> camera = new LambdaQueryWrapper<BaseCameraManagement>();
|
|
|
- camera.ge(BaseCameraManagement::getEndMile, list.get(0).getAlarmMile());
|
|
|
- camera.le(BaseCameraManagement::getBeginMile, list.get(0).getAlarmMile());
|
|
|
- camera.eq(BaseCameraManagement::getLineDir, heartbeatVo.getLineDir());
|
|
|
- camera.eq(BaseCameraManagement::getRailwayCode, heartbeatVo.getRailwayCode());
|
|
|
- camera.eq(BaseCameraManagement::getOnline,2);
|
|
|
- camera.eq(BaseCameraManagement::getEnableOrNot,1);
|
|
|
- camera.orderByAsc(BaseCameraManagement::getInstallMile);
|
|
|
- List<BaseCameraManagement> baseCameraManagementList = baseCameraManagementService.list(camera);
|
|
|
- List<AlarmListVo> listVos = new ArrayList<>();
|
|
|
- if (baseCameraManagementList.size() > 0) {
|
|
|
- //获取视频点播地址
|
|
|
- String playFlv = CameraUtil.getPlayFlvRtsp(baseCameraManagementList.get(0).getCameraCode(), baseCameraManagementList.get(0).getChannel(), false);
|
|
|
- respHeartbeatVo.setCurrentStream(playFlv);
|
|
|
- respHeartbeatVo.setIsAlarm(1);
|
|
|
- respHeartbeatVo.setCameraCode(baseCameraManagementList.get(0).getCameraCode());
|
|
|
-// twoMap.put("currentStream", playFlv);
|
|
|
- twoMap.put("currentStream", baseCameraManagementList.get(0).getRtspUrl());
|
|
|
- twoMap.put("cameraCode", baseCameraManagementList.get(0).getCameraCode());
|
|
|
- //alarmInfo对象
|
|
|
- AlarmInfoVo alarmInfoVo = new AlarmInfoVo();
|
|
|
- alarmInfoVo.setAlarmId(list.get(0).getAlarmId());
|
|
|
- alarmInfoVo.setAlarmMile(list.get(0).getAlarmMile());
|
|
|
- alarmInfoVo.setAlarmTime(list.get(0).getAlarmTime().getTime());
|
|
|
- alarmInfoVo.setAlarmContent(list.get(0).getContent());
|
|
|
- alarmInfoVo.setAlarmType(list.get(0).getAlarmType());
|
|
|
- alarmInfoVo.setAlarmLevel(list.get(0).getAlarmLevel());
|
|
|
- LambdaQueryWrapper<MsgAlarmExt> ext = new LambdaQueryWrapper<>();
|
|
|
- ext.eq(MsgAlarmExt::getAlarmId, list.get(0).getAlarmId());
|
|
|
- List<MsgAlarmExt> list1 = msgAlarmExtService.list(ext);
|
|
|
- AlarmFilesVo[] files = new AlarmFilesVo[list1.size()];
|
|
|
- if (!ObjectUtils.isEmpty(list1)) {
|
|
|
- for (int i = 0; i < list1.size(); i++) {
|
|
|
- files[i] = new AlarmFilesVo();
|
|
|
- files[i].setAlarmAttType(list1.get(i).getAlarmAttType());
|
|
|
- files[i].setAlarmAttPath(list1.get(i).getAlarmAttPath());
|
|
|
- }
|
|
|
- //返回结果
|
|
|
- alarmInfoVo.setAlarmFiles(files);
|
|
|
+ queryWrapper.eq(MsgAlarm::getIsRelease, 2);
|
|
|
+ List<MsgAlarm> alarmsList = msgAlarmService.list(queryWrapper);
|
|
|
+ //根据终端编码 判断终端忽略报警信息记录表中的是否有忽略的报警
|
|
|
+ if (!ObjectUtils.isEmpty(alarmsList)) {
|
|
|
+ // 获取当前时间
|
|
|
+ LocalDateTime currentDateTime = LocalDateTime.now();
|
|
|
+ // 获取前一天的时间
|
|
|
+ LocalDateTime previousDateTime = currentDateTime.minusDays(1);
|
|
|
+ // 格式化日期时间
|
|
|
+ DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
|
|
|
+ String currentFormattedDateTime = currentDateTime.format(formatter);
|
|
|
+ String previousFormattedDateTime = previousDateTime.format(formatter);
|
|
|
+
|
|
|
+ LambdaQueryWrapper<TerminalIgnoreAlarm> queryWrapper1 = new LambdaQueryWrapper<>();
|
|
|
+ List<String> collect = alarmsList.stream().map(MsgAlarm::getAlarmId).collect(Collectors.toList());
|
|
|
+ queryWrapper1.in(TerminalIgnoreAlarm::getAlarmId, collect);
|
|
|
+ queryWrapper1.eq(TerminalIgnoreAlarm::getTerminalCode, heartbeatVo.getTerminalCode());
|
|
|
+ queryWrapper1.ge(TerminalIgnoreAlarm::getIgnoreTime,previousFormattedDateTime);
|
|
|
+ queryWrapper1.le(TerminalIgnoreAlarm::getIgnoreTime,currentFormattedDateTime);
|
|
|
+ List<TerminalIgnoreAlarm> list2 = terminalIgnoreAlarmService.list(queryWrapper1);
|
|
|
+ //找出未忽略的报警信息
|
|
|
+ LambdaQueryWrapper<MsgAlarm> queryWrapper2 = new LambdaQueryWrapper<>();
|
|
|
+ if (!ObjectUtils.isEmpty(list2)) {
|
|
|
+ List<String> collect1 = list2.stream().map(TerminalIgnoreAlarm::getAlarmId).collect(Collectors.toList());
|
|
|
+ List<String> list = collect.stream()
|
|
|
+ .filter(item -> !collect1.contains(item))
|
|
|
+ .collect(Collectors.toList());
|
|
|
+ if (!ObjectUtils.isEmpty(list)) {
|
|
|
+ queryWrapper2.in(MsgAlarm::getAlarmId, list);
|
|
|
+ }else {
|
|
|
+ queryWrapper2.eq(MsgAlarm::getAlarmId, "1111111111111");
|
|
|
}
|
|
|
- respHeartbeatVo.setAlarmInfo(alarmInfoVo);
|
|
|
} else {
|
|
|
- jsonObject.put("resultCode", 0);
|
|
|
- jsonObject.put("message", "失败");
|
|
|
- jsonObject.put("data", "报警里程无可用相机");
|
|
|
- return SM4Utils.encryptData_ECB(JSONObject.toJSONString(jsonObject), key);
|
|
|
+ queryWrapper2.in(MsgAlarm::getAlarmId, collect);
|
|
|
}
|
|
|
- for (int i = 0; i < list.size(); i++) {
|
|
|
- MsgHeartbeatAlarmMessage msgHearbeatAlarmMessage = new MsgHeartbeatAlarmMessage();
|
|
|
- msgHearbeatAlarmMessage.setAlarmId(list.get(i).getAlarmId());
|
|
|
- msgHearbeatAlarmMessage.setTerminalCode(heartbeatVo.getTerminalCode());
|
|
|
- msgHearbeatAlarmMessage.setTrainNum(heartbeatVo.getTrainNum());
|
|
|
- msgHearbeatAlarmMessageMapper.insert(msgHearbeatAlarmMessage);
|
|
|
- //获取剩余的报警信息
|
|
|
- LambdaQueryWrapper<BaseCameraManagement> ment = new LambdaQueryWrapper<BaseCameraManagement>();
|
|
|
- ment.ge(BaseCameraManagement::getEndMile, list.get(i).getAlarmMile());
|
|
|
- ment.le(BaseCameraManagement::getBeginMile, list.get(i).getAlarmMile());
|
|
|
- ment.eq(BaseCameraManagement::getLineDir, heartbeatVo.getLineDir());
|
|
|
- ment.eq(BaseCameraManagement::getRailwayCode, heartbeatVo.getRailwayCode());
|
|
|
- camera.eq(BaseCameraManagement::getOnline,2);
|
|
|
- camera.eq(BaseCameraManagement::getEnableOrNot,1);
|
|
|
- ment.orderByAsc(BaseCameraManagement::getInstallMile);
|
|
|
- if (i == 0) {
|
|
|
- ment.last("limit 1,1000000");
|
|
|
+ List<MsgAlarm> list = msgAlarmService.list(queryWrapper2);
|
|
|
+ //有报警信息的时候
|
|
|
+ if (!ObjectUtils.isEmpty(list)) {
|
|
|
+ //获取报警里程所监控的所有相机
|
|
|
+ LambdaQueryWrapper<BaseCameraManagement> camera = new LambdaQueryWrapper<BaseCameraManagement>();
|
|
|
+ camera.ge(BaseCameraManagement::getEndMile, list.get(0).getAlarmMile());
|
|
|
+ camera.le(BaseCameraManagement::getBeginMile, list.get(0).getAlarmMile());
|
|
|
+ camera.eq(BaseCameraManagement::getLineDir, heartbeatVo.getLineDir());
|
|
|
+ camera.eq(BaseCameraManagement::getRailwayCode, heartbeatVo.getRailwayCode());
|
|
|
+// camera.eq(BaseCameraManagement::getOnline,2);
|
|
|
+ camera.eq(BaseCameraManagement::getEnableOrNot, 1);
|
|
|
+ camera.orderByAsc(BaseCameraManagement::getInstallMile);
|
|
|
+ List<BaseCameraManagement> baseCameraManagementList = baseCameraManagementService.list(camera);
|
|
|
+ List<AlarmListVo> listVos = new ArrayList<>();
|
|
|
+ if (baseCameraManagementList.size() > 0) {
|
|
|
+ //获取视频点播地址
|
|
|
+// String playFlv = CameraUtil.getPlayFlvRtsp(baseCameraManagementList.get(0).getCameraCode(), baseCameraManagementList.get(0).getChannel(), false);
|
|
|
+ cameraUtil.streamConversion(baseCameraManagementList.get(0).getCameraCode());
|
|
|
+// respHeartbeatVo.setCurrentStream(playFlv);
|
|
|
+ respHeartbeatVo.setCurrentStream(baseCameraManagementList.get(0).getRtspUrl());
|
|
|
+ respHeartbeatVo.setIsAlarm(1);
|
|
|
+ respHeartbeatVo.setCameraCode(baseCameraManagementList.get(0).getCameraCode());
|
|
|
+// twoMap.put("currentStream", playFlv);
|
|
|
+ twoMap.put("currentStream", baseCameraManagementList.get(0).getRtspUrl());
|
|
|
+ twoMap.put("cameraCode", baseCameraManagementList.get(0).getCameraCode());
|
|
|
+ //alarmInfo对象
|
|
|
+ AlarmInfoVo alarmInfoVo = new AlarmInfoVo();
|
|
|
+ alarmInfoVo.setAlarmId(list.get(0).getAlarmId());
|
|
|
+ alarmInfoVo.setAlarmMile(list.get(0).getAlarmMile());
|
|
|
+ alarmInfoVo.setAlarmTime(list.get(0).getAlarmTime().getTime());
|
|
|
+ alarmInfoVo.setAlarmContent(list.get(0).getContent());
|
|
|
+ alarmInfoVo.setAlarmType(list.get(0).getAlarmType());
|
|
|
+ alarmInfoVo.setAlarmLevel(list.get(0).getAlarmLevel());
|
|
|
+ LambdaQueryWrapper<MsgAlarmExt> ext = new LambdaQueryWrapper<>();
|
|
|
+ ext.eq(MsgAlarmExt::getAlarmId, list.get(0).getAlarmId());
|
|
|
+ List<MsgAlarmExt> list1 = msgAlarmExtService.list(ext);
|
|
|
+ AlarmFilesVo[] files = new AlarmFilesVo[list1.size()];
|
|
|
+ if (!ObjectUtils.isEmpty(list1)) {
|
|
|
+ for (int i = 0; i < list1.size(); i++) {
|
|
|
+ files[i] = new AlarmFilesVo();
|
|
|
+ files[i].setAlarmAttType(list1.get(i).getAlarmAttType());
|
|
|
+ files[i].setAlarmAttPath(list1.get(i).getAlarmAttPath());
|
|
|
+ }
|
|
|
+ //返回结果
|
|
|
+ alarmInfoVo.setAlarmFiles(files);
|
|
|
+ }
|
|
|
+ respHeartbeatVo.setAlarmInfo(alarmInfoVo);
|
|
|
+ } else {
|
|
|
+ jsonObject.put("resultCode", 0);
|
|
|
+ jsonObject.put("message", "失败");
|
|
|
+ jsonObject.put("data", "报警里程无可用相机");
|
|
|
+ return SM4Utils.encryptData_ECB(JSONObject.toJSONString(jsonObject), key);
|
|
|
}
|
|
|
- //获取所有报警安装里程位置的相机
|
|
|
- List<BaseCameraManagement> baseList = baseCameraManagementService.list(ment);
|
|
|
- if (baseList.size() > 0) {
|
|
|
- for (int o = 0; o < baseList.size(); o++) {
|
|
|
- String flv = CameraUtil.getPlayFlvRtsp(baseList.get(o).getCameraCode(), baseList.get(o).getChannel(), false);
|
|
|
- AlarmListVo alarmListVo = new AlarmListVo();
|
|
|
- //alarmList对象
|
|
|
+ for (int i = 0; i < list.size(); i++) {
|
|
|
+ MsgHeartbeatAlarmMessage msgHearbeatAlarmMessage = new MsgHeartbeatAlarmMessage();
|
|
|
+ msgHearbeatAlarmMessage.setAlarmId(list.get(i).getAlarmId());
|
|
|
+ msgHearbeatAlarmMessage.setTerminalCode(heartbeatVo.getTerminalCode());
|
|
|
+ msgHearbeatAlarmMessage.setTrainNum(heartbeatVo.getTrainNum());
|
|
|
+ msgHearbeatAlarmMessageMapper.insert(msgHearbeatAlarmMessage);
|
|
|
+ //获取剩余的报警信息
|
|
|
+ LambdaQueryWrapper<BaseCameraManagement> ment = new LambdaQueryWrapper<BaseCameraManagement>();
|
|
|
+ ment.ge(BaseCameraManagement::getEndMile, list.get(i).getAlarmMile());
|
|
|
+ ment.le(BaseCameraManagement::getBeginMile, list.get(i).getAlarmMile());
|
|
|
+ ment.eq(BaseCameraManagement::getLineDir, heartbeatVo.getLineDir());
|
|
|
+ ment.eq(BaseCameraManagement::getRailwayCode, heartbeatVo.getRailwayCode());
|
|
|
+// ment.eq(BaseCameraManagement::getOnline,2);
|
|
|
+ ment.eq(BaseCameraManagement::getEnableOrNot, 1);
|
|
|
+ ment.orderByAsc(BaseCameraManagement::getInstallMile);
|
|
|
+ if (i == 0) {
|
|
|
+ ment.last("limit 1,1000000");
|
|
|
+ }
|
|
|
+ //获取所有报警安装里程位置的相机
|
|
|
+ List<BaseCameraManagement> baseList = baseCameraManagementService.list(ment);
|
|
|
+ if (baseList.size() > 0) {
|
|
|
+ for (int o = 0; o < baseList.size(); o++) {
|
|
|
+// String flv = CameraUtil.getPlayFlvRtsp(baseList.get(o).getCameraCode(), baseList.get(o).getChannel(), false);
|
|
|
+ cameraUtil.streamConversion(baseCameraManagementList.get(o).getCameraCode());
|
|
|
+ AlarmListVo alarmListVo = new AlarmListVo();
|
|
|
+ //alarmList对象
|
|
|
// alarmListVo.setCameraStream(flv);
|
|
|
- alarmListVo.setCameraStream(baseList.get(o).getRtspUrl());
|
|
|
- alarmListVo.setCameraCode(baseList.get(o).getCameraCode());
|
|
|
- //alarmInfo对象
|
|
|
- AlarmInfoVo alarmInfoVo1 = new AlarmInfoVo();
|
|
|
- alarmInfoVo1.setAlarmId(list.get(i).getAlarmId());
|
|
|
- alarmInfoVo1.setAlarmMile(list.get(i).getAlarmMile());
|
|
|
- alarmInfoVo1.setAlarmTime(list.get(i).getAlarmTime().getTime());
|
|
|
- alarmInfoVo1.setAlarmType(list.get(i).getAlarmType());
|
|
|
- alarmInfoVo1.setAlarmContent(list.get(i).getContent());
|
|
|
- alarmInfoVo1.setAlarmLevel(list.get(i).getAlarmLevel());
|
|
|
- LambdaQueryWrapper<MsgAlarmExt> alarm = new LambdaQueryWrapper<>();
|
|
|
- alarm.eq(MsgAlarmExt::getAlarmId, list.get(0).getAlarmId());
|
|
|
- List<MsgAlarmExt> list1 = msgAlarmExtService.list(alarm);
|
|
|
- if (list1.size() > 0) {
|
|
|
- AlarmFilesVo[] vo = new AlarmFilesVo[list1.size()];
|
|
|
- for (int i1 = 0; i1 < list1.size(); i1++) {
|
|
|
- vo[i1] = new AlarmFilesVo();
|
|
|
- vo[i1].setAlarmAttType(list1.get(i1).getAlarmAttType());
|
|
|
- vo[i1].setAlarmAttPath(list1.get(i1).getAlarmAttPath());
|
|
|
+ alarmListVo.setCameraStream(baseList.get(o).getRtspUrl());
|
|
|
+ alarmListVo.setCameraCode(baseList.get(o).getCameraCode());
|
|
|
+ //alarmInfo对象
|
|
|
+ AlarmInfoVo alarmInfoVo1 = new AlarmInfoVo();
|
|
|
+ alarmInfoVo1.setAlarmId(list.get(i).getAlarmId());
|
|
|
+ alarmInfoVo1.setAlarmMile(list.get(i).getAlarmMile());
|
|
|
+ alarmInfoVo1.setAlarmTime(list.get(i).getAlarmTime().getTime());
|
|
|
+ alarmInfoVo1.setAlarmType(list.get(i).getAlarmType());
|
|
|
+ alarmInfoVo1.setAlarmContent(list.get(i).getContent());
|
|
|
+ alarmInfoVo1.setAlarmLevel(list.get(i).getAlarmLevel());
|
|
|
+ LambdaQueryWrapper<MsgAlarmExt> alarm = new LambdaQueryWrapper<>();
|
|
|
+ alarm.eq(MsgAlarmExt::getAlarmId, list.get(0).getAlarmId());
|
|
|
+ List<MsgAlarmExt> list1 = msgAlarmExtService.list(alarm);
|
|
|
+ if (list1.size() > 0) {
|
|
|
+ AlarmFilesVo[] vo = new AlarmFilesVo[list1.size()];
|
|
|
+ for (int i1 = 0; i1 < list1.size(); i1++) {
|
|
|
+ vo[i1] = new AlarmFilesVo();
|
|
|
+ vo[i1].setAlarmAttType(list1.get(i1).getAlarmAttType());
|
|
|
+ vo[i1].setAlarmAttPath(list1.get(i1).getAlarmAttPath());
|
|
|
+ }
|
|
|
+ alarmInfoVo1.setAlarmFiles(vo);
|
|
|
}
|
|
|
- alarmInfoVo1.setAlarmFiles(vo);
|
|
|
+ alarmListVo.setAlarmInfo(alarmInfoVo1);
|
|
|
+ listVos.add(alarmListVo);
|
|
|
}
|
|
|
- alarmListVo.setAlarmInfo(alarmInfoVo1);
|
|
|
- listVos.add(alarmListVo);
|
|
|
}
|
|
|
}
|
|
|
+ AlarmListVo[] array = listVos.toArray(new AlarmListVo[]{});
|
|
|
+ respHeartbeatVo.setAlarmList(array);
|
|
|
+ } else {
|
|
|
+ //没有报警信息的时候
|
|
|
+ distance = heartbeatVo.getVisualDistance() + heartbeatVo.getCurrentMile();
|
|
|
+ LambdaQueryWrapper<BaseCameraManagement> base = new LambdaQueryWrapper<>();
|
|
|
+ if (heartbeatVo.getLineDir() == 1) {
|
|
|
+ base.gt(BaseCameraManagement::getInstallMile, distance);
|
|
|
+ }
|
|
|
+ if (heartbeatVo.getLineDir() == 2) {
|
|
|
+ base.lt(BaseCameraManagement::getInstallMile, distance);
|
|
|
+ }
|
|
|
+ base.eq(BaseCameraManagement::getLineDir, heartbeatVo.getLineDir());
|
|
|
+ base.eq(BaseCameraManagement::getRailwayCode, heartbeatVo.getRailwayCode());
|
|
|
+ base.orderByAsc(BaseCameraManagement::getInstallMile);
|
|
|
+// base.eq(BaseCameraManagement::getOnline,2);
|
|
|
+ base.eq(BaseCameraManagement::getEnableOrNot, 1);
|
|
|
+ base.last("limit 4");
|
|
|
+ List<BaseCameraManagement> list1 = baseCameraManagementService.list(base);
|
|
|
+ if (list1.size() <= 0) {
|
|
|
+ jsonObject.put("resultCode", 0);
|
|
|
+ jsonObject.put("message", "失败");
|
|
|
+ jsonObject.put("data", "没有监控里程的相机");
|
|
|
+ return SM4Utils.encryptData_ECB(JSONObject.toJSONString(jsonObject), key);
|
|
|
+ }
|
|
|
+ CameraUtil.invite(list1.get(0).getCameraCode(), list1.get(0).getChannel());
|
|
|
+// String flv = CameraUtil.getPlayFlvRtsp(list1.get(0).getCameraCode(), list1.get(0).getChannel(), false);
|
|
|
+ cameraUtil.streamConversion(list1.get(0).getCameraCode());
|
|
|
+ //twoMap.put("currentStream", flv);
|
|
|
+ twoMap.put("currentStream", list1.get(0).getRtspUrl());
|
|
|
+ twoMap.put("cameraCode", list1.get(0).getCameraCode());
|
|
|
+ for (BaseCameraManagement baseCameraManagement : list1) {
|
|
|
+// String flv1 = CameraUtil.getPlayFlvRtsp(baseCameraManagement.getCameraCode(), baseCameraManagement.getChannel(), false);
|
|
|
+ CameraUtil.invite(baseCameraManagement.getCameraCode(), baseCameraManagement.getChannel());
|
|
|
+ }
|
|
|
+ cameraUtil.streamConversion(list1.get(0).getCameraCode());
|
|
|
+ respHeartbeatVo.setCurrentStream(list1.get(0).getRtspUrl());
|
|
|
+ respHeartbeatVo.setIsAlarm(2);
|
|
|
+ respHeartbeatVo.setCameraCode(list1.get(0).getCameraCode());
|
|
|
+ respHeartbeatVo.setAlarmList(null);
|
|
|
+ respHeartbeatVo.setAlarmInfo(null);
|
|
|
}
|
|
|
- AlarmListVo[] array = listVos.toArray(new AlarmListVo[]{});
|
|
|
- respHeartbeatVo.setAlarmList(array);
|
|
|
} else {
|
|
|
//没有报警信息的时候
|
|
|
distance = heartbeatVo.getVisualDistance() + heartbeatVo.getCurrentMile();
|
|
@@ -751,8 +835,8 @@ public class GeoHazardMonitorTokenController {
|
|
|
base.eq(BaseCameraManagement::getLineDir, heartbeatVo.getLineDir());
|
|
|
base.eq(BaseCameraManagement::getRailwayCode, heartbeatVo.getRailwayCode());
|
|
|
base.orderByAsc(BaseCameraManagement::getInstallMile);
|
|
|
- base.eq(BaseCameraManagement::getOnline,2);
|
|
|
- base.eq(BaseCameraManagement::getEnableOrNot,1);
|
|
|
+// base.eq(BaseCameraManagement::getOnline,2);
|
|
|
+ base.eq(BaseCameraManagement::getEnableOrNot, 1);
|
|
|
base.last("limit 4");
|
|
|
List<BaseCameraManagement> list1 = baseCameraManagementService.list(base);
|
|
|
if (list1.size() <= 0) {
|
|
@@ -762,14 +846,16 @@ public class GeoHazardMonitorTokenController {
|
|
|
return SM4Utils.encryptData_ECB(JSONObject.toJSONString(jsonObject), key);
|
|
|
}
|
|
|
CameraUtil.invite(list1.get(0).getCameraCode(), list1.get(0).getChannel());
|
|
|
- String flv = CameraUtil.getPlayFlvRtsp(list1.get(0).getCameraCode(), list1.get(0).getChannel(), false);
|
|
|
-// twoMap.put("currentStream", flv);
|
|
|
+// String flv = CameraUtil.getPlayFlvRtsp(list1.get(0).getCameraCode(), list1.get(0).getChannel(), false);
|
|
|
+ cameraUtil.streamConversion(list1.get(0).getCameraCode());
|
|
|
+ //twoMap.put("currentStream", flv);
|
|
|
twoMap.put("currentStream", list1.get(0).getRtspUrl());
|
|
|
twoMap.put("cameraCode", list1.get(0).getCameraCode());
|
|
|
for (BaseCameraManagement baseCameraManagement : list1) {
|
|
|
- String flv1 = CameraUtil.getPlayFlvRtsp(baseCameraManagement.getCameraCode(), baseCameraManagement.getChannel(), false);
|
|
|
+// String flv1 = CameraUtil.getPlayFlvRtsp(baseCameraManagement.getCameraCode(), baseCameraManagement.getChannel(), false);
|
|
|
CameraUtil.invite(baseCameraManagement.getCameraCode(), baseCameraManagement.getChannel());
|
|
|
}
|
|
|
+ cameraUtil.streamConversion(list1.get(0).getCameraCode());
|
|
|
respHeartbeatVo.setCurrentStream(list1.get(0).getRtspUrl());
|
|
|
respHeartbeatVo.setIsAlarm(2);
|
|
|
respHeartbeatVo.setCameraCode(list1.get(0).getCameraCode());
|
|
@@ -782,6 +868,8 @@ public class GeoHazardMonitorTokenController {
|
|
|
jsonObject.put("resultCode", 1);
|
|
|
jsonObject.put("message", "ok");
|
|
|
jsonObject.put("data", respHeartbeatVo);
|
|
|
+ long end = System.currentTimeMillis();
|
|
|
+ System.out.println("-------------------" + (begin - end) / 1000);
|
|
|
return SM4Utils.encryptData_ECB(JSONObject.toJSONString(jsonObject), key);
|
|
|
} else {
|
|
|
jsonObject.put("resultCode", 0);
|
|
@@ -900,8 +988,8 @@ public class GeoHazardMonitorTokenController {
|
|
|
if (!ObjectUtils.isEmpty(cameraVo.getLineDir())) {
|
|
|
wrapper.eq(BaseCameraManagement::getLineDir, cameraVo.getLineDir());
|
|
|
}
|
|
|
- wrapper.eq(BaseCameraManagement::getOnline,2);
|
|
|
- wrapper.eq(BaseCameraManagement::getEnableOrNot,1);
|
|
|
+// wrapper.eq(BaseCameraManagement::getOnline,2);
|
|
|
+ wrapper.eq(BaseCameraManagement::getEnableOrNot, 1);
|
|
|
wrapper.orderByAsc(BaseCameraManagement::getInstallMile);
|
|
|
List<BaseCameraManagement> list = baseCameraManagementService.list(wrapper);
|
|
|
if (list.size() <= 0) {
|
|
@@ -943,7 +1031,6 @@ public class GeoHazardMonitorTokenController {
|
|
|
for (BaseCameraManagement baseCameraManagement : list) {
|
|
|
RespCameraVo respCameraVo = new RespCameraVo();
|
|
|
BeanUtils.copyProperties(baseCameraManagement, respCameraVo);
|
|
|
- respCameraVo.setRailwayCame(baseCameraManagement.getRailwayName());
|
|
|
cameraVos.add(respCameraVo);
|
|
|
}
|
|
|
|
|
@@ -992,8 +1079,8 @@ public class GeoHazardMonitorTokenController {
|
|
|
}
|
|
|
LambdaQueryWrapper<BaseCameraManagement> lw = new LambdaQueryWrapper<BaseCameraManagement>();
|
|
|
lw.eq(BaseCameraManagement::getCameraCode, cameraPlayVo.getCameraCode());
|
|
|
- lw.eq(BaseCameraManagement::getOnline,2);
|
|
|
- lw.eq(BaseCameraManagement::getEnableOrNot,1);
|
|
|
+// lw.eq(BaseCameraManagement::getOnline,2);
|
|
|
+ lw.eq(BaseCameraManagement::getEnableOrNot, 1);
|
|
|
BaseCameraManagement one = baseCameraManagementService.getOne(lw);
|
|
|
if (ObjectUtils.isEmpty(one)) {
|
|
|
jsonObject.put("resultCode", 0);
|
|
@@ -1001,9 +1088,10 @@ public class GeoHazardMonitorTokenController {
|
|
|
jsonObject.put("data", "没有该相机编码的相机或已离线");
|
|
|
return SM4Utils.encryptData_ECB(JSONObject.toJSONString(jsonObject), key);
|
|
|
}
|
|
|
- String flv = CameraUtil.getPlayFlvRtsp(one.getCameraCode(), one.getChannel(), false);
|
|
|
+// String flv = CameraUtil.getPlayFlvRtsp(one.getCameraCode(), one.getChannel(), false);
|
|
|
+ cameraUtil.streamConversion(one.getCameraCode());
|
|
|
// map.put("url", flv);
|
|
|
- map.put("url",one.getRtspUrl());
|
|
|
+ map.put("url", one.getRtspUrl());
|
|
|
jsonObject.put("resultCode", 1);
|
|
|
jsonObject.put("message", "ok");
|
|
|
jsonObject.put("data", map);
|
|
@@ -1143,11 +1231,12 @@ public class GeoHazardMonitorTokenController {
|
|
|
camera.ge(BaseCameraManagement::getEndMile, one.getAlarmMile());
|
|
|
camera.eq(BaseCameraManagement::getLineDir, one.getLineDir());
|
|
|
camera.orderByAsc(BaseCameraManagement::getInstallMile);
|
|
|
- camera.eq(BaseCameraManagement::getOnline,2);
|
|
|
- camera.eq(BaseCameraManagement::getEnableOrNot,1);
|
|
|
+// camera.eq(BaseCameraManagement::getOnline,2);
|
|
|
+ camera.eq(BaseCameraManagement::getEnableOrNot, 1);
|
|
|
List<BaseCameraManagement> baseCameraManagementList = baseCameraManagementService.list(camera);
|
|
|
if (baseCameraManagementList.size() > 0) {
|
|
|
BaseCameraManagement baseCameraManagement = baseCameraManagementList.get(0);
|
|
|
+ cameraUtil.streamConversion(baseCameraManagement.getCameraCode());
|
|
|
// long time = one.getAlarmTime().getTime();
|
|
|
// long time2 = time - 600000L;
|
|
|
// one.setAlarmTime(new Date(time2));
|
|
@@ -1174,7 +1263,7 @@ public class GeoHazardMonitorTokenController {
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- map.put("url", serverConfig.getUrl() + one.getReleasedUrl());
|
|
|
+ map.put("url", one.getReleasedUrl());
|
|
|
jsonObject.put("resultCode", 1);
|
|
|
jsonObject.put("message", "ok");
|
|
|
jsonObject.put("data", map);
|