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