|
@@ -28,11 +28,14 @@ import com.ozs.entity.VehiclePosition;
|
|
|
import com.ozs.entity.vo.AlarmFilesVo;
|
|
|
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.Files;
|
|
|
import com.ozs.entity.vo.HeartbeatVo;
|
|
|
+import com.ozs.entity.vo.QueryAlarmVo;
|
|
|
import com.ozs.entity.vo.ReleaseAlarmVo;
|
|
|
import com.ozs.entity.vo.ReqMsgAlarmVo;
|
|
|
+import com.ozs.entity.vo.RespAlarmList;
|
|
|
import com.ozs.entity.vo.RespCameraVo;
|
|
|
import com.ozs.entity.vo.RespGeoHazardMonitorVo;
|
|
|
import com.ozs.entity.vo.RespHeartbeatVo;
|
|
@@ -401,6 +404,7 @@ public class GeoHazardMonitorTokenController {
|
|
|
camera.eq(BaseCameraManagement::getLineDir, heartbeatVo.getLineDir());
|
|
|
camera.orderByAsc(BaseCameraManagement::getInstallMile);
|
|
|
List<BaseCameraManagement> baseCameraManagementList = baseCameraManagementService.list(camera);
|
|
|
+ List<AlarmListVo> listVos = new ArrayList<>();
|
|
|
if (baseCameraManagementList.size() > 0) {
|
|
|
//获取视频点播地址
|
|
|
String playFlv = CameraUtil.getPlayFlv(baseCameraManagementList.get(0).getCameraCode(), baseCameraManagementList.get(0).getChannel(), false);
|
|
@@ -441,11 +445,11 @@ public class GeoHazardMonitorTokenController {
|
|
|
if (i == 0) {
|
|
|
wrapper.last("limit 1,1000000");
|
|
|
}
|
|
|
+ //获取所有报警安装里程位置的相机
|
|
|
List<BaseCameraManagement> baseList = baseCameraManagementService.list(camera);
|
|
|
if (baseList.size() > 0) {
|
|
|
for (int o = 0; o < baseList.size(); o++) {
|
|
|
String flv = CameraUtil.getPlayFlv(baseList.get(o).getCameraCode(), baseList.get(o).getChannel(), false);
|
|
|
- List<AlarmListVo> listVos = new ArrayList<>();
|
|
|
AlarmListVo alarmListVo = new AlarmListVo();
|
|
|
//alarmList对象
|
|
|
alarmListVo.setCameraStream(flv);
|
|
@@ -458,18 +462,18 @@ public class GeoHazardMonitorTokenController {
|
|
|
alarmInfoVo1.setAlarmTime(list.get(i).getAlarmTime().getTime());
|
|
|
alarmInfoVo1.setAlarmType(list.get(i).getAlarmType());
|
|
|
alarmInfoVo1.setAlarmLevel(list.get(i).getAlarmLevel());
|
|
|
- AlarmFilesVo[] vo = new AlarmFilesVo[1];
|
|
|
LambdaQueryWrapper<MsgAlarmExt> alarm = new LambdaQueryWrapper<>();
|
|
|
alarm.eq(MsgAlarmExt::getAlarmId, list.get(0).getAlarmId());
|
|
|
- MsgAlarmExt msgAlarmExt = msgAlarmExtService.getOne(alarm);
|
|
|
- vo[0] = new AlarmFilesVo();
|
|
|
- vo[0].setAlarmAttType(msgAlarmExt.getAlarmAttType());
|
|
|
- vo[0].setAlarmAttPath(msgAlarmExt.getAlarmAttPath());
|
|
|
- //返回结果
|
|
|
+ List<MsgAlarmExt> list1 = msgAlarmExtService.list(alarm);
|
|
|
+ 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);
|
|
|
+ alarmListVo.setAlarmInfo(alarmInfoVo1);
|
|
|
listVos.add(alarmListVo);
|
|
|
- AlarmListVo[] array = listVos.toArray(new AlarmListVo[]{});
|
|
|
- respHeartbeatVo.setAlarmList(array);
|
|
|
}
|
|
|
} else {
|
|
|
jsonObject.put("resultCode", 0);
|
|
@@ -478,6 +482,8 @@ public class GeoHazardMonitorTokenController {
|
|
|
return SM4Utils.encryptData_ECB(JSONObject.toJSONString(jsonObject), "4370780c9a8c43e5");
|
|
|
}
|
|
|
}
|
|
|
+ AlarmListVo[] array = listVos.toArray(new AlarmListVo[]{});
|
|
|
+ respHeartbeatVo.setAlarmList(array);
|
|
|
} else {
|
|
|
//没有报警信息的时候
|
|
|
distance = heartbeatVo.getVisualDistance() + heartbeatVo.getCurrentMile();
|
|
@@ -629,19 +635,156 @@ public class GeoHazardMonitorTokenController {
|
|
|
}
|
|
|
}
|
|
|
});
|
|
|
- List<RespCameraVo> cameraVos=new ArrayList<>();
|
|
|
+ List<RespCameraVo> cameraVos = new ArrayList<>();
|
|
|
for (BaseCameraManagement baseCameraManagement : list) {
|
|
|
- RespCameraVo respCameraVo=new RespCameraVo();
|
|
|
+ RespCameraVo respCameraVo = new RespCameraVo();
|
|
|
BeanUtils.copyProperties(baseCameraManagement, respCameraVo);
|
|
|
respCameraVo.setRailwayCame(baseCameraManagement.getRailwayName());
|
|
|
cameraVos.add(respCameraVo);
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
jsonObject.put("resultCode", 1);
|
|
|
jsonObject.put("message", "ok");
|
|
|
jsonObject.put("data", cameraVos);
|
|
|
return SM4Utils.encryptData_ECB(JSONObject.toJSONString(jsonObject), "4370780c9a8c43e5");
|
|
|
- }else {
|
|
|
+ } else {
|
|
|
+ jsonObject.put("resultCode", 2);
|
|
|
+ jsonObject.put("message", "失败");
|
|
|
+ jsonObject.put("data", "token验证失败");
|
|
|
+ return SM4Utils.encryptData_ECB(JSONObject.toJSONString(jsonObject), "4370780c9a8c43e5");
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 点播功能接口定义(直播流)
|
|
|
+ *
|
|
|
+ * @param parameter
|
|
|
+ * @param request
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @PostMapping("/api/camera/play")
|
|
|
+ public String cameraPlay(@RequestParam("parameter") String parameter, HttpServletRequest request) {
|
|
|
+ Map<String, Object> map = new HashMap<>();
|
|
|
+ String token = apiTokenUtils.getGeoHazardMonitorToken(request);
|
|
|
+ log.info("token:{}", token);
|
|
|
+ log.info("parameter:{}", parameter);
|
|
|
+ JSONObject jsonObject = new JSONObject();
|
|
|
+ if (StringUtils.isNotEmpty(token)) {
|
|
|
+ String s = SM4Utils.decryptData_ECB(parameter, "4370780c9a8c43e5");
|
|
|
+ CameraPlayVo cameraPlayVo = JSON.parseObject(s, CameraPlayVo.class);
|
|
|
+
|
|
|
+ LambdaQueryWrapper<BaseCameraManagement> lw = new LambdaQueryWrapper<BaseCameraManagement>();
|
|
|
+ lw.eq(BaseCameraManagement::getCameraCode, cameraPlayVo.getCameraCode());
|
|
|
+ BaseCameraManagement one = baseCameraManagementService.getOne(lw);
|
|
|
+ if (ObjectUtils.isEmpty(one)) {
|
|
|
+ jsonObject.put("resultCode", 0);
|
|
|
+ jsonObject.put("message", "失败");
|
|
|
+ jsonObject.put("data", "没有该相机编码的相机");
|
|
|
+ return SM4Utils.encryptData_ECB(JSONObject.toJSONString(jsonObject), "4370780c9a8c43e5");
|
|
|
+ }
|
|
|
+ String flv = CameraUtil.getPlayFlv(one.getCameraCode(), one.getChannel());
|
|
|
+ map.put("url", flv);
|
|
|
+ jsonObject.put("resultCode", 1);
|
|
|
+ jsonObject.put("message", "ok");
|
|
|
+ jsonObject.put("data", map);
|
|
|
+ return SM4Utils.encryptData_ECB(JSONObject.toJSONString(jsonObject), "4370780c9a8c43e5");
|
|
|
+ } else {
|
|
|
+ jsonObject.put("resultCode", 2);
|
|
|
+ jsonObject.put("message", "失败");
|
|
|
+ jsonObject.put("data", "token验证失败");
|
|
|
+ return SM4Utils.encryptData_ECB(JSONObject.toJSONString(jsonObject), "4370780c9a8c43e5");
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 获取报警列表(已解除和未解除)
|
|
|
+ *
|
|
|
+ * @param parameter
|
|
|
+ * @param request
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @PostMapping("/api/query/alarm")
|
|
|
+ public String queryAlarm(@RequestParam("parameter") String parameter, HttpServletRequest request) {
|
|
|
+ String token = apiTokenUtils.getGeoHazardMonitorToken(request);
|
|
|
+ log.info("token:{}", token);
|
|
|
+ log.info("parameter:{}", parameter);
|
|
|
+ JSONObject jsonObject = new JSONObject();
|
|
|
+ if (StringUtils.isNotEmpty(token)) {
|
|
|
+ String s = SM4Utils.decryptData_ECB(parameter, "4370780c9a8c43e5");
|
|
|
+ CameraVo cameraVo = JSON.parseObject(s, CameraVo.class);
|
|
|
+ LambdaQueryWrapper<MsgAlarm> wrapper = new LambdaQueryWrapper<>();
|
|
|
+ if (!ObjectUtils.isEmpty(cameraVo.getRailwayCode())) {
|
|
|
+ wrapper.eq(MsgAlarm::getRailwayCode, cameraVo.getRailwayCode());
|
|
|
+ }
|
|
|
+ if (!ObjectUtils.isEmpty(cameraVo.getLineDir())) {
|
|
|
+ wrapper.eq(MsgAlarm::getLineDir, cameraVo.getLineDir());
|
|
|
+ }
|
|
|
+ List<MsgAlarm> list = msgAlarmService.list(wrapper);
|
|
|
+ QueryAlarmVo queryAlarmVo = new QueryAlarmVo();
|
|
|
+ List<RespAlarmList> listVos = new ArrayList<>();
|
|
|
+ for (MsgAlarm msgAlarm : list) {
|
|
|
+ RespAlarmList alarmListVo = new RespAlarmList();
|
|
|
+ AlarmInfoVo alarmInfoVo1 = new AlarmInfoVo();
|
|
|
+ alarmInfoVo1.setAlarmId(msgAlarm.getAlarmId());
|
|
|
+ alarmInfoVo1.setAlarmMile(msgAlarm.getAlarmMile());
|
|
|
+ alarmInfoVo1.setAlarmTime(msgAlarm.getAlarmTime().getTime());
|
|
|
+ alarmInfoVo1.setAlarmType(msgAlarm.getAlarmType());
|
|
|
+ alarmInfoVo1.setAlarmLevel(msgAlarm.getAlarmLevel());
|
|
|
+ LambdaQueryWrapper<MsgAlarmExt> alarm = new LambdaQueryWrapper<>();
|
|
|
+ alarm.eq(MsgAlarmExt::getAlarmId, msgAlarm.getAlarmId());
|
|
|
+ List<MsgAlarmExt> list1 = msgAlarmExtService.list(alarm);
|
|
|
+ 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);
|
|
|
+ alarmListVo.setAlarmInfo(alarmInfoVo1);
|
|
|
+ listVos.add(alarmListVo);
|
|
|
+ }
|
|
|
+ RespAlarmList[] array = listVos.toArray(new RespAlarmList[]{});
|
|
|
+ queryAlarmVo.setAlarmList(array);
|
|
|
+ jsonObject.put("resultCode", 1);
|
|
|
+ jsonObject.put("message", "ok");
|
|
|
+ jsonObject.put("data", queryAlarmVo);
|
|
|
+ return SM4Utils.encryptData_ECB(JSONObject.toJSONString(jsonObject), "4370780c9a8c43e5");
|
|
|
+ } else {
|
|
|
+ jsonObject.put("resultCode", 2);
|
|
|
+ jsonObject.put("message", "失败");
|
|
|
+ jsonObject.put("data", "token验证失败");
|
|
|
+ return SM4Utils.encryptData_ECB(JSONObject.toJSONString(jsonObject), "4370780c9a8c43e5");
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ @PostMapping("/api/alarm/play")
|
|
|
+ public String alarmPlay(@RequestParam("parameter") String parameter, HttpServletRequest request) {
|
|
|
+ Map<String,Object> map=new HashMap<>();
|
|
|
+ String token = apiTokenUtils.getGeoHazardMonitorToken(request);
|
|
|
+ log.info("token:{}", token);
|
|
|
+ log.info("parameter:{}", parameter);
|
|
|
+ JSONObject jsonObject = new JSONObject();
|
|
|
+ if (StringUtils.isNotEmpty(token)) {
|
|
|
+ String s = SM4Utils.decryptData_ECB(parameter, "4370780c9a8c43e5");
|
|
|
+ TerminalIgnoreVo terminalIgnoreVo = JSON.parseObject(s, TerminalIgnoreVo.class);
|
|
|
+ LambdaQueryWrapper<MsgAlarm> wrapper = new LambdaQueryWrapper<>();
|
|
|
+ wrapper.eq(MsgAlarm::getAlarmId, terminalIgnoreVo.getAlarmId());
|
|
|
+ MsgAlarm one = msgAlarmService.getOne(wrapper);
|
|
|
+ if (ObjectUtils.isEmpty(one)){
|
|
|
+ jsonObject.put("resultCode", 0);
|
|
|
+ jsonObject.put("message", "失败");
|
|
|
+ jsonObject.put("data", "没有该报警唯一UUID的报警数据");
|
|
|
+ return SM4Utils.encryptData_ECB(JSONObject.toJSONString(jsonObject), "4370780c9a8c43e5");
|
|
|
+ }
|
|
|
+ //todo 报警视频未写
|
|
|
+ map.put("url","");
|
|
|
+ jsonObject.put("resultCode", 1);
|
|
|
+ jsonObject.put("message", "ok");
|
|
|
+ jsonObject.put("data", map);
|
|
|
+ return SM4Utils.encryptData_ECB(JSONObject.toJSONString(jsonObject), "4370780c9a8c43e5");
|
|
|
+ } else {
|
|
|
jsonObject.put("resultCode", 2);
|
|
|
jsonObject.put("message", "失败");
|
|
|
jsonObject.put("data", "token验证失败");
|