|
@@ -3,6 +3,7 @@ package com.ozs.controller.upload;
|
|
|
import com.alibaba.fastjson2.JSON;
|
|
|
import com.alibaba.fastjson2.JSONObject;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
+import com.ozs.common.core.domain.entity.SysDictData;
|
|
|
import com.ozs.common.core.redis.RedisCache;
|
|
|
import com.ozs.common.utils.ApiTokenUtils;
|
|
|
import com.ozs.common.utils.ChineseToPingyin;
|
|
@@ -31,6 +32,7 @@ import com.ozs.entity.vo.AlarmInfoVo;
|
|
|
import com.ozs.entity.vo.AlarmListVo;
|
|
|
import com.ozs.entity.vo.CameraPlayVo;
|
|
|
import com.ozs.entity.vo.CameraVo;
|
|
|
+import com.ozs.entity.vo.CamerasVo;
|
|
|
import com.ozs.entity.vo.Files;
|
|
|
import com.ozs.entity.vo.HeartbeatVo;
|
|
|
import com.ozs.entity.vo.ParameterVo;
|
|
@@ -57,6 +59,8 @@ import com.ozs.service.MsgAlarmService;
|
|
|
import com.ozs.service.SvcAddressService;
|
|
|
import com.ozs.service.TerminalIgnoreAlarmService;
|
|
|
import com.ozs.service.VehiclePositionService;
|
|
|
+import com.ozs.system.service.ISysDictDataService;
|
|
|
+import com.ozs.system.service.ISysDictTypeService;
|
|
|
import com.ozs.utils.CameraUtil;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.springframework.beans.BeanUtils;
|
|
@@ -81,6 +85,7 @@ import java.util.Date;
|
|
|
import java.util.HashMap;
|
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
|
+import java.util.concurrent.CompletableFuture;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
@@ -122,8 +127,6 @@ public class GeoHazardMonitorTokenController {
|
|
|
@Autowired
|
|
|
private BaseRailwayManagementService baseRailwayManagementService;
|
|
|
@Autowired
|
|
|
- private RedisCache redisCache;
|
|
|
- @Autowired
|
|
|
private BaseTerminalService baseTerminalService;
|
|
|
@Autowired
|
|
|
private CameraUtil cameraUtil;
|
|
@@ -137,6 +140,8 @@ public class GeoHazardMonitorTokenController {
|
|
|
private String env;
|
|
|
@Value("${sdk.publish}")
|
|
|
private String sdkUrl;
|
|
|
+ @Autowired
|
|
|
+ private ISysDictTypeService dictTypeService;
|
|
|
|
|
|
/**
|
|
|
* 获取web访问令牌
|
|
@@ -345,13 +350,14 @@ public class GeoHazardMonitorTokenController {
|
|
|
msgAlarmFrequencyService.save(msgAlarmVice);
|
|
|
|
|
|
log.info("alarmJSON :{}", JSON.toJSONString(msgAlarm));
|
|
|
- log.info("->>>>>>>>>>>>>>>>>>>>>>>>>>"+msgAlarm);
|
|
|
+ log.info("->>>>>>>>>>>>>>>>>>>>>>>>>>" + msgAlarm);
|
|
|
String result = HttpClientUtil.postJson(sdkUrl, JSON.toJSONString(msgAlarm));
|
|
|
- log.info("->>>>>>>>>>>>>>>>>>>>>>>>>>>>"+result);
|
|
|
+ log.info("->>>>>>>>>>>>>>>>>>>>>>>>>>>>" + result);
|
|
|
log.info("result:{}", result);
|
|
|
|
|
|
List<String> collect = baseCameraManagementList.stream().map(BaseCameraManagement::getCameraCode).collect(Collectors.toList());
|
|
|
-// CompletableFuture.runAsync(() ->cameraUtil.playbackURLs(collect));
|
|
|
+ List<SysDictData> data = dictTypeService.selectDictDataByType("alarm_play_time_value");
|
|
|
+ CompletableFuture.runAsync(() -> cameraUtil.playbackURLs(collect, data.get(0).getDictValue()));
|
|
|
} else {
|
|
|
BeanUtils.copyProperties(reqMsgAlarmVo, msgAlarmVice);
|
|
|
msgAlarmVice.setCreateBy(admin.getUserId());
|
|
@@ -467,6 +473,7 @@ public class GeoHazardMonitorTokenController {
|
|
|
long begin = System.currentTimeMillis();
|
|
|
Map<String, Object> twoMap = new HashMap<>();
|
|
|
int distance = 0;
|
|
|
+ int type = 0;
|
|
|
RespHeartbeatVo respHeartbeatVo = new RespHeartbeatVo();
|
|
|
String token = apiTokenUtils.getGeoHazardMonitorToken(request);
|
|
|
log.info("token:{}", token);
|
|
@@ -543,6 +550,11 @@ public class GeoHazardMonitorTokenController {
|
|
|
jsonObject.put("data", "关联表中没有改终端编码的信息");
|
|
|
return SM4Utils.encryptData_ECB(JSONObject.toJSONString(jsonObject), key);
|
|
|
}
|
|
|
+ if (heartbeatVo.getSignalStrength() == 1) {
|
|
|
+ type = 0;
|
|
|
+ } else if (heartbeatVo.getSignalStrength() == 2) {
|
|
|
+ type = 1;
|
|
|
+ }
|
|
|
vehiclePosition.setTravelMile(heartbeatVo.getCurrentMile());
|
|
|
vehiclePosition.setVehicleCode(baseTerminal.getVehicleCode());
|
|
|
vehiclePosition.setTerminalLatitude(heartbeatVo.getLatitude());
|
|
@@ -619,14 +631,20 @@ public class GeoHazardMonitorTokenController {
|
|
|
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());
|
|
|
+ CamerasVo camerasVo = new CamerasVo();
|
|
|
+ camerasVo.setStreamType(type);
|
|
|
+ camerasVo.setCameraIndexCode(baseCameraManagementList.get(0).getCameraCode());
|
|
|
+ String playFlv = cameraUtil.apiPreviewURLs(camerasVo);
|
|
|
+ if ("1".equals(playFlv)) {
|
|
|
+ jsonObject.put("resultCode", 0);
|
|
|
+ jsonObject.put("message", "失败");
|
|
|
+ jsonObject.put("data", "天网实时流接口调用失败");
|
|
|
+ return SM4Utils.encryptData_ECB(JSONObject.toJSONString(jsonObject), key);
|
|
|
+ }
|
|
|
+ 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("currentStream", playFlv);
|
|
|
twoMap.put("cameraCode", baseCameraManagementList.get(0).getCameraCode());
|
|
|
//alarmInfo对象
|
|
|
AlarmInfoVo alarmInfoVo = new AlarmInfoVo();
|
|
@@ -668,7 +686,6 @@ public class GeoHazardMonitorTokenController {
|
|
|
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) {
|
|
@@ -678,12 +695,20 @@ public class GeoHazardMonitorTokenController {
|
|
|
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());
|
|
|
+ //获取视频点播地址
|
|
|
+ CamerasVo camerasVo = new CamerasVo();
|
|
|
+ camerasVo.setStreamType(type);
|
|
|
+ camerasVo.setCameraIndexCode(baseList.get(o).getCameraCode());
|
|
|
+ String playFlv = cameraUtil.apiPreviewURLs(camerasVo);
|
|
|
+ if ("1".equals(playFlv)) {
|
|
|
+ jsonObject.put("resultCode", 0);
|
|
|
+ jsonObject.put("message", "失败");
|
|
|
+ jsonObject.put("data", "天网实时流接口调用失败");
|
|
|
+ return SM4Utils.encryptData_ECB(JSONObject.toJSONString(jsonObject), key);
|
|
|
+ }
|
|
|
AlarmListVo alarmListVo = new AlarmListVo();
|
|
|
//alarmList对象
|
|
|
-// alarmListVo.setCameraStream(flv);
|
|
|
- alarmListVo.setCameraStream(baseList.get(o).getRtspUrl());
|
|
|
+ alarmListVo.setCameraStream(playFlv);
|
|
|
alarmListVo.setCameraCode(baseList.get(o).getCameraCode());
|
|
|
//alarmInfo对象
|
|
|
AlarmInfoVo alarmInfoVo1 = new AlarmInfoVo();
|
|
@@ -725,7 +750,6 @@ 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.last("limit 4");
|
|
|
List<BaseCameraManagement> list1 = baseCameraManagementService.list(base);
|
|
@@ -735,18 +759,20 @@ public class GeoHazardMonitorTokenController {
|
|
|
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());
|
|
|
+ //获取视频点播地址
|
|
|
+ CamerasVo camerasVo = new CamerasVo();
|
|
|
+ camerasVo.setStreamType(type);
|
|
|
+ camerasVo.setCameraIndexCode(list1.get(0).getCameraCode());
|
|
|
+ String playFlv = cameraUtil.apiPreviewURLs(camerasVo);
|
|
|
+ if ("1".equals(playFlv)) {
|
|
|
+ jsonObject.put("resultCode", 0);
|
|
|
+ jsonObject.put("message", "失败");
|
|
|
+ jsonObject.put("data", "天网实时流接口调用失败");
|
|
|
+ return SM4Utils.encryptData_ECB(JSONObject.toJSONString(jsonObject), key);
|
|
|
}
|
|
|
- cameraUtil.streamConversion(list1.get(0).getCameraCode());
|
|
|
- respHeartbeatVo.setCurrentStream(list1.get(0).getRtspUrl());
|
|
|
+ twoMap.put("currentStream", playFlv);
|
|
|
+ twoMap.put("cameraCode", list1.get(0).getCameraCode());
|
|
|
+ respHeartbeatVo.setCurrentStream(playFlv);
|
|
|
respHeartbeatVo.setIsAlarm(2);
|
|
|
respHeartbeatVo.setCameraCode(list1.get(0).getCameraCode());
|
|
|
respHeartbeatVo.setAlarmList(null);
|
|
@@ -765,7 +791,6 @@ 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.last("limit 4");
|
|
|
List<BaseCameraManagement> list1 = baseCameraManagementService.list(base);
|
|
@@ -775,18 +800,20 @@ public class GeoHazardMonitorTokenController {
|
|
|
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());
|
|
|
+ //获取视频点播地址
|
|
|
+ CamerasVo camerasVo = new CamerasVo();
|
|
|
+ camerasVo.setStreamType(type);
|
|
|
+ camerasVo.setCameraIndexCode(list1.get(0).getCameraCode());
|
|
|
+ String playFlv = cameraUtil.apiPreviewURLs(camerasVo);
|
|
|
+ if ("1".equals(playFlv)) {
|
|
|
+ jsonObject.put("resultCode", 0);
|
|
|
+ jsonObject.put("message", "失败");
|
|
|
+ jsonObject.put("data", "天网实时流接口调用失败");
|
|
|
+ return SM4Utils.encryptData_ECB(JSONObject.toJSONString(jsonObject), key);
|
|
|
}
|
|
|
- cameraUtil.streamConversion(list1.get(0).getCameraCode());
|
|
|
- respHeartbeatVo.setCurrentStream(list1.get(0).getRtspUrl());
|
|
|
+ twoMap.put("currentStream", playFlv);
|
|
|
+ twoMap.put("cameraCode", list1.get(0).getCameraCode());
|
|
|
+ respHeartbeatVo.setCurrentStream(playFlv);
|
|
|
respHeartbeatVo.setIsAlarm(2);
|
|
|
respHeartbeatVo.setCameraCode(list1.get(0).getCameraCode());
|
|
|
respHeartbeatVo.setAlarmList(null);
|
|
@@ -918,7 +945,6 @@ 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.orderByAsc(BaseCameraManagement::getInstallMile);
|
|
|
List<BaseCameraManagement> list = baseCameraManagementService.list(wrapper);
|
|
@@ -1009,7 +1035,6 @@ 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);
|
|
|
BaseCameraManagement one = baseCameraManagementService.getOne(lw);
|
|
|
if (ObjectUtils.isEmpty(one)) {
|
|
@@ -1018,10 +1043,18 @@ public class GeoHazardMonitorTokenController {
|
|
|
jsonObject.put("data", "没有该相机编码的相机或已离线");
|
|
|
return SM4Utils.encryptData_ECB(JSONObject.toJSONString(jsonObject), key);
|
|
|
}
|
|
|
-// String flv = CameraUtil.getPlayFlvRtsp(one.getCameraCode(), one.getChannel(), false);
|
|
|
- cameraUtil.streamConversion(one.getCameraCode());
|
|
|
-// map.put("url", flv);
|
|
|
- map.put("url", one.getRtspUrl());
|
|
|
+ //获取视频点播地址
|
|
|
+ CamerasVo camerasVo = new CamerasVo();
|
|
|
+ camerasVo.setStreamType(0);
|
|
|
+ camerasVo.setCameraIndexCode(one.getCameraCode());
|
|
|
+ String playFlv = cameraUtil.apiPreviewURLs(camerasVo);
|
|
|
+ if ("1".equals(playFlv)) {
|
|
|
+ jsonObject.put("resultCode", 0);
|
|
|
+ jsonObject.put("message", "失败");
|
|
|
+ jsonObject.put("data", "天网实时流接口调用失败");
|
|
|
+ return SM4Utils.encryptData_ECB(JSONObject.toJSONString(jsonObject), key);
|
|
|
+ }
|
|
|
+ map.put("url", playFlv);
|
|
|
jsonObject.put("resultCode", 1);
|
|
|
jsonObject.put("message", "ok");
|
|
|
jsonObject.put("data", map);
|
|
@@ -1161,29 +1194,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);
|
|
|
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));
|
|
|
-// String url = null;
|
|
|
-// if ("1".equals(one.getIsRelease().toString())) {
|
|
|
-// url = CameraUtil.historyPlayListStr(baseCameraManagement.getChannel(),
|
|
|
-// one.getAlarmTime(),
|
|
|
-// one.getReleasedTime(),
|
|
|
-// true);
|
|
|
-// } else {
|
|
|
-// url = CameraUtil.historyPlayListStr(baseCameraManagement.getChannel(),
|
|
|
-// one.getAlarmTime(),
|
|
|
-// new Date(),
|
|
|
-// false);
|
|
|
-// }
|
|
|
-// one.setReleasedUrl(url);
|
|
|
- one.setReleasedUrl(baseCameraManagement.getRtspUrl());
|
|
|
+ String url = cameraUtil.streamConversion(baseCameraManagement.getCameraCode());
|
|
|
+ one.setReleasedUrl(url);
|
|
|
msgAlarmService.updateById(one);
|
|
|
} else {
|
|
|
jsonObject.put("resultCode", 0);
|