Explorar o código

心跳接口修改

gao.qiang hai 1 ano
pai
achega
137b52d961

+ 159 - 102
vehicle-admin/src/main/java/com/ozs/web/controller/sdk/GeoHazardMonitorTokenController.java

@@ -83,6 +83,7 @@ import java.util.Date;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.stream.Collectors;
 
 /**
  * 1. 获取身份认证控制层
@@ -635,116 +636,172 @@ public class GeoHazardMonitorTokenController {
                 queryWrapper.eq(MsgAlarm::getLineDir, heartbeatVo.getLineDir());
                 queryWrapper.eq(MsgAlarm::getRailwayCode, heartbeatVo.getRailwayCode());
                 queryWrapper.orderByAsc(MsgAlarm::getAlarmMile);
-                queryWrapper.eq(MsgAlarm::getIsRelease,2);
-                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());
+                queryWrapper.eq(MsgAlarm::getIsRelease, 2);
+                List<MsgAlarm> alarmsList = msgAlarmService.list(queryWrapper);
+                //根据终端编码 判断终端忽略报警信息记录表中的是否有忽略的报警
+                if (!ObjectUtils.isEmpty(alarmsList)) {
+                    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());
+                    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());
+                        queryWrapper2.notIn(MsgAlarm::getAlarmId, collect1);
+                    } else {
+                        queryWrapper2.in(MsgAlarm::getAlarmId, collect);
+                    }
+                    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) {
-                        //获取视频点播地址
+                        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());
+                            cameraUtil.streamConversion(baseCameraManagementList.get(0).getCameraCode());
 //                        respHeartbeatVo.setCurrentStream(playFlv);
-                        respHeartbeatVo.setCurrentStream(baseCameraManagementList.get(0).getRtspUrl());
-                        respHeartbeatVo.setIsAlarm(1);
-                        respHeartbeatVo.setCameraCode(baseCameraManagementList.get(0).getCameraCode());
+                            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());
+                            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);
                             }
-                            //返回结果
-                            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);
                         }
-                        respHeartbeatVo.setAlarmInfo(alarmInfoVo);
-                    } else {
-                        jsonObject.put("resultCode", 0);
-                        jsonObject.put("message", "失败");
-                        jsonObject.put("data", "报警里程无可用相机");
-                        return SM4Utils.encryptData_ECB(JSONObject.toJSONString(jsonObject), key);
-                    }
-                    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());
+                        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++) {
+                            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对象
+                                    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();
@@ -759,7 +816,7 @@ public class GeoHazardMonitorTokenController {
                     base.eq(BaseCameraManagement::getRailwayCode, heartbeatVo.getRailwayCode());
                     base.orderByAsc(BaseCameraManagement::getInstallMile);
 //                    base.eq(BaseCameraManagement::getOnline,2);
-                    base.eq(BaseCameraManagement::getEnableOrNot,1);
+                    base.eq(BaseCameraManagement::getEnableOrNot, 1);
                     base.last("limit 4");
                     List<BaseCameraManagement> list1 = baseCameraManagementService.list(base);
                     if (list1.size() <= 0) {
@@ -792,7 +849,7 @@ public class GeoHazardMonitorTokenController {
                 jsonObject.put("message", "ok");
                 jsonObject.put("data", respHeartbeatVo);
                 long end = System.currentTimeMillis();
-                System.out.println("-------------------"+(begin-end)/1000);
+                System.out.println("-------------------" + (begin - end) / 1000);
                 return SM4Utils.encryptData_ECB(JSONObject.toJSONString(jsonObject), key);
             } else {
                 jsonObject.put("resultCode", 0);
@@ -912,7 +969,7 @@ public class GeoHazardMonitorTokenController {
                 wrapper.eq(BaseCameraManagement::getLineDir, cameraVo.getLineDir());
             }
 //            wrapper.eq(BaseCameraManagement::getOnline,2);
-            wrapper.eq(BaseCameraManagement::getEnableOrNot,1);
+            wrapper.eq(BaseCameraManagement::getEnableOrNot, 1);
             wrapper.orderByAsc(BaseCameraManagement::getInstallMile);
             List<BaseCameraManagement> list = baseCameraManagementService.list(wrapper);
             if (list.size() <= 0) {
@@ -1003,7 +1060,7 @@ 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::getEnableOrNot, 1);
             BaseCameraManagement one = baseCameraManagementService.getOne(lw);
             if (ObjectUtils.isEmpty(one)) {
                 jsonObject.put("resultCode", 0);
@@ -1014,7 +1071,7 @@ public class GeoHazardMonitorTokenController {
 //            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);
@@ -1155,7 +1212,7 @@ public class GeoHazardMonitorTokenController {
                     camera.eq(BaseCameraManagement::getLineDir, one.getLineDir());
                     camera.orderByAsc(BaseCameraManagement::getInstallMile);
 //                    camera.eq(BaseCameraManagement::getOnline,2);
-                    camera.eq(BaseCameraManagement::getEnableOrNot,1);
+                    camera.eq(BaseCameraManagement::getEnableOrNot, 1);
                     List<BaseCameraManagement> baseCameraManagementList = baseCameraManagementService.list(camera);
                     if (baseCameraManagementList.size() > 0) {
                         BaseCameraManagement baseCameraManagement = baseCameraManagementList.get(0);