Browse Source

代码修改

gao.qiang 1 year ago
parent
commit
0a93d1b5ad

+ 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("当前机车无实时流");
     }
 
     /**