소스 검색

代码修改

gao.qiang 1 년 전
부모
커밋
f5f642cb8c

+ 2 - 0
business-service/src/main/java/com/ozs/entity/BaseCameraManagement.java

@@ -197,4 +197,6 @@ public class BaseCameraManagement extends BaseEntity implements Serializable {
      */
     @TableField(exist = false)
     private String enableOrNotName;
+
+    private String rtspUrl;
 }

+ 2 - 0
business-service/src/main/java/com/ozs/service/impl/BaseCameraManagementServiceImpl.java

@@ -398,6 +398,8 @@ public class BaseCameraManagementServiceImpl extends ServiceImpl<BaseCameraManag
                 camera.le(BaseCameraManagement::getBeginMile, msgAlarm.getAlarmMile());
                 camera.eq(BaseCameraManagement::getLineDir, msgAlarm.getLineDir());
                 camera.eq(BaseCameraManagement::getRailwayCode, msgAlarm.getRailwayCode());
+                camera.eq(BaseCameraManagement::getOnline,2);
+                camera.eq(BaseCameraManagement::getEnableOrNot,1);
                 List<BaseCameraManagement> baseCameraManagementList = this.list(camera);
                 if (!ObjectUtils.isEmpty(baseCameraManagementList)){
                     list.addAll(baseCameraManagementList);

+ 54 - 33
vehicle-admin/src/main/java/com/ozs/web/controller/accountmanagment/BaseVehicleController.java

@@ -9,6 +9,7 @@ import com.ozs.common.core.domain.AjaxResult;
 import com.ozs.common.core.domain.entity.SysDictData;
 import com.ozs.common.core.redis.RedisCache;
 import com.ozs.common.enums.BusinessType;
+import com.ozs.common.exception.base.BaseException;
 import com.ozs.common.utils.AppendUtils;
 import com.ozs.common.utils.ChineseToPingyin;
 import com.ozs.common.utils.HeartbeatUtils;
@@ -17,6 +18,7 @@ import com.ozs.common.utils.file.FileUtils;
 import com.ozs.common.utils.poi.ExcelUtil;
 import com.ozs.entity.*;
 import com.ozs.entity.vo.BaseRailwayManagementVo;
+import com.ozs.entity.vo.BaseVehicleTerminalDto;
 import com.ozs.entity.vo.BaseVehicleTerminalVo;
 import com.ozs.entity.vo.BaseVehicleVo;
 import com.ozs.entity.vo.VehicleTreeVo;
@@ -329,42 +331,61 @@ public class BaseVehicleController extends BaseController {
      * 2、根据 机车的位置  和线路 查询  机车前方1路视频 ( 10KM  是否有报警 )
      */
     @ApiOperation(value = "通过终端编码获取流")
-    @GetMapping("/vehicleCurrentStream")
+    @PostMapping("/vehicleCurrentStream")
     @Log(title = "通过终端编码获取流", businessType = BusinessType.SELECT)
-    public AjaxResult vehicleCurrentStream(String zdCode) {
-        String heartbeat = heartbeatUtils.getHeartbeat(Constant.HERTBEA_KEY + zdCode);
-        Map<String, Object> cacheMap = JSON.parseObject(heartbeat);
-        if (!ObjectUtils.isEmpty(cacheMap)) {
-            Map<String, String> ccMap = new HashMap<>();
-            Object cameraCode = cacheMap.get("cameraCode");
-            //Object stream = cacheMap.get("currentStream");
-            if (!ObjectUtils.isEmpty(cameraCode)) {
-                LambdaQueryWrapper<BaseCameraManagement> bcWrapper = new LambdaQueryWrapper<>();
-                bcWrapper.eq(BaseCameraManagement::getCameraCode, cameraCode.toString());
-                BaseCameraManagement one = cameraManagementService.getOne(bcWrapper);
-                if (!ObjectUtils.isEmpty(one)) {
-                    //相机编码和实时流
-                    ccMap.put("cameraCode", cameraCode.toString());
-                    ccMap.put("currentStream", CameraUtil.getPlayFlv(cameraCode.toString(), one.getChannel()));
-                    //行别
-                    String lineDirStr = one.getLineDir() == 1 ? "上行" : "下行";
-                    ccMap.put("lineDir", lineDirStr);
-                    //安装里程位置
-                    String mils = AppendUtils.stringAppend(one.getInstallMile());
-                    ccMap.put("installMile", mils);
-                    //线路名称
-                    LambdaQueryWrapper<BaseRailwayManagement> queryWrapper = new LambdaQueryWrapper<BaseRailwayManagement>();
-                    if (!ObjectUtils.isEmpty(one.getRailwayCode())) {
-                        queryWrapper.eq(BaseRailwayManagement::getRailwayCode, one.getRailwayCode());
-                    }
-                    BaseRailwayManagement baseRailwayManagement = baseRailwayManagementService.getOne(queryWrapper);
-                    ccMap.put("railwayName", baseRailwayManagement.getRailwayName());
-                    return AjaxResult.success(ccMap);
-                }
-                return AjaxResult.error("当前机车未绑定终端");
+    public AjaxResult vehicleCurrentStream(BaseVehicleTerminalDto vehicleTerminalDto) {
+        LambdaQueryWrapper<BaseCameraManagement> camera = new LambdaQueryWrapper<BaseCameraManagement>();
+        camera.ge(BaseCameraManagement::getInstallMile, vehicleTerminalDto.getTravelMile()+1000);
+        camera.eq(BaseCameraManagement::getLineDir, vehicleTerminalDto.getLineDir());
+        camera.eq(BaseCameraManagement::getRailwayCode, vehicleTerminalDto.getRailwayCode());
+        camera.eq(BaseCameraManagement::getOnline,2);
+        camera.eq(BaseCameraManagement::getEnableOrNot,1);
+        camera.orderByAsc(BaseCameraManagement::getInstallMile);
+        camera.last("limit 4");
+        List<BaseCameraManagement> baseCameraManagementList = baseCameraManagementService.list(camera);
+        if (!ObjectUtils.isEmpty(baseCameraManagementList)) {
+            List<String> list=new ArrayList<>();
+            for (BaseCameraManagement baseCameraManagement : baseCameraManagementList) {
+                String flv = CameraUtil.getPlayFlv(baseCameraManagement.getCameraCode(), baseCameraManagement.getChannel());
+                list.add(flv);
             }
+            return AjaxResult.success(list);
+        }else {
+            return AjaxResult.error("前方没有可用的相机");
         }
-        return AjaxResult.error("当前机车无实时流");
+//        String heartbeat = heartbeatUtils.getHeartbeat(Constant.HERTBEA_KEY + zdCode);
+//        Map<String, Object> cacheMap = JSON.parseObject(heartbeat);
+//        if (!ObjectUtils.isEmpty(cacheMap)) {
+//            Map<String, String> ccMap = new HashMap<>();
+//            Object cameraCode = cacheMap.get("cameraCode");
+//            //Object stream = cacheMap.get("currentStream");
+//            if (!ObjectUtils.isEmpty(cameraCode)) {
+//                LambdaQueryWrapper<BaseCameraManagement> bcWrapper = new LambdaQueryWrapper<>();
+//                bcWrapper.eq(BaseCameraManagement::getCameraCode, cameraCode.toString());
+//                BaseCameraManagement one = cameraManagementService.getOne(bcWrapper);
+//                if (!ObjectUtils.isEmpty(one)) {
+//                    //相机编码和实时流
+//                    ccMap.put("cameraCode", cameraCode.toString());
+//                    ccMap.put("currentStream", CameraUtil.getPlayFlv(cameraCode.toString(), one.getChannel()));
+//                    //行别
+//                    String lineDirStr = one.getLineDir() == 1 ? "上行" : "下行";
+//                    ccMap.put("lineDir", lineDirStr);
+//                    //安装里程位置
+//                    String mils = AppendUtils.stringAppend(one.getInstallMile());
+//                    ccMap.put("installMile", mils);
+//                    //线路名称
+//                    LambdaQueryWrapper<BaseRailwayManagement> queryWrapper = new LambdaQueryWrapper<BaseRailwayManagement>();
+//                    if (!ObjectUtils.isEmpty(one.getRailwayCode())) {
+//                        queryWrapper.eq(BaseRailwayManagement::getRailwayCode, one.getRailwayCode());
+//                    }
+//                    BaseRailwayManagement baseRailwayManagement = baseRailwayManagementService.getOne(queryWrapper);
+//                    ccMap.put("railwayName", baseRailwayManagement.getRailwayName());
+//                    return AjaxResult.success(ccMap);
+//                }
+//                return AjaxResult.error("当前机车未绑定终端");
+//            }
+//        }
+//        return AjaxResult.error("当前机车无实时流");
     }
 
     /**

+ 39 - 22
vehicle-admin/src/main/java/com/ozs/web/controller/sdk/GeoHazardMonitorTokenController.java

@@ -641,6 +641,8 @@ public class GeoHazardMonitorTokenController {
                     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<>();
@@ -650,7 +652,8 @@ public class GeoHazardMonitorTokenController {
                         respHeartbeatVo.setCurrentStream(playFlv);
                         respHeartbeatVo.setIsAlarm(1);
                         respHeartbeatVo.setCameraCode(baseCameraManagementList.get(0).getCameraCode());
-                        twoMap.put("currentStream", playFlv);
+//                        twoMap.put("currentStream", playFlv);
+                        twoMap.put("currentStream", baseCameraManagementList.get(0).getRtspUrl());
                         twoMap.put("cameraCode", baseCameraManagementList.get(0).getCameraCode());
                         //alarmInfo对象
                         AlarmInfoVo alarmInfoVo = new AlarmInfoVo();
@@ -692,6 +695,8 @@ public class GeoHazardMonitorTokenController {
                         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");
@@ -703,7 +708,8 @@ public class GeoHazardMonitorTokenController {
                                 String flv = CameraUtil.getPlayFlvRtsp(baseList.get(o).getCameraCode(), baseList.get(o).getChannel(), false);
                                 AlarmListVo alarmListVo = new AlarmListVo();
                                 //alarmList对象
-                                alarmListVo.setCameraStream(flv);
+//                                alarmListVo.setCameraStream(flv);
+                                alarmListVo.setCameraStream(baseList.get(o).getRtspUrl());
                                 alarmListVo.setCameraCode(baseList.get(o).getCameraCode());
                                 //alarmInfo对象
                                 AlarmInfoVo alarmInfoVo1 = new AlarmInfoVo();
@@ -745,6 +751,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.last("limit 4");
                     List<BaseCameraManagement> list1 = baseCameraManagementService.list(base);
                     if (list1.size() <= 0) {
@@ -755,13 +763,14 @@ public class GeoHazardMonitorTokenController {
                     }
                     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);
+//                    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());
                     }
-                    respHeartbeatVo.setCurrentStream(flv);
+                    respHeartbeatVo.setCurrentStream(list1.get(0).getRtspUrl());
                     respHeartbeatVo.setIsAlarm(2);
                     respHeartbeatVo.setCameraCode(list1.get(0).getCameraCode());
                     respHeartbeatVo.setAlarmList(null);
@@ -891,6 +900,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.orderByAsc(BaseCameraManagement::getInstallMile);
             List<BaseCameraManagement> list = baseCameraManagementService.list(wrapper);
             if (list.size() <= 0) {
@@ -981,15 +992,18 @@ 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)) {
                 jsonObject.put("resultCode", 0);
                 jsonObject.put("message", "失败");
-                jsonObject.put("data", "没有该相机编码的相机");
+                jsonObject.put("data", "没有该相机编码的相机或已离线");
                 return SM4Utils.encryptData_ECB(JSONObject.toJSONString(jsonObject), key);
             }
             String flv = CameraUtil.getPlayFlvRtsp(one.getCameraCode(), one.getChannel(), false);
-            map.put("url", flv);
+//            map.put("url", flv);
+            map.put("url",one.getRtspUrl());
             jsonObject.put("resultCode", 1);
             jsonObject.put("message", "ok");
             jsonObject.put("data", map);
@@ -1129,25 +1143,28 @@ 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);
-                        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);
+//                        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());
                         msgAlarmService.updateById(one);
                     } else {
                         jsonObject.put("resultCode", 0);