From d6df1c415a1e34b6aaa2f107c2b30580992e85e3 Mon Sep 17 00:00:00 2001 From: Pu Zhibing <393733352@qq.com> Date: 星期三, 23 四月 2025 17:10:50 +0800 Subject: [PATCH] 修改测试bug --- ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/CarServiceImpl.java | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 53 insertions(+), 2 deletions(-) diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/CarServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/CarServiceImpl.java index e4ec30f..09b2e9e 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/CarServiceImpl.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/CarServiceImpl.java @@ -19,6 +19,8 @@ import com.ruoyi.system.service.ICarTypeService; import com.ruoyi.system.service.IDriverService; import com.ruoyi.system.service.IEnterpriseService; +import com.ruoyi.system.util.JavaCVStreamUtil; +import org.springframework.beans.factory.annotation.Value; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.Service; @@ -29,6 +31,9 @@ import java.util.ArrayList; import java.util.List; import java.util.Optional; +import java.util.concurrent.Executors; +import java.util.concurrent.ScheduledExecutorService; +import java.util.concurrent.TimeUnit; /** * @author zhibing.pu @@ -36,6 +41,9 @@ */ @Service public class CarServiceImpl extends ServiceImpl<CarMapper, Car> implements ICarService { + + @Value("${live.hls.output-path}") + private String hlsOutputPath; @Resource private UPExgMsgRegisterClient upExgMsgRegisterClient; @@ -103,6 +111,22 @@ /** + * 定时保存车辆司机id + */ + @Override + public void taskSaveDriverId() { + List<Driver> driverList = driverService.list(new LambdaQueryWrapper<Driver>().eq(Driver::getStatus, 1)); + List<Car> list = this.list(new LambdaQueryWrapper<Car>().isNull(Car::getDriverId)); + for (Car car : list) { + Optional<Driver> optional = driverList.stream().filter(s -> s.getVehicleNumber().equals(car.getVehicleNumber())).findFirst(); + if (optional.isPresent()) { + car.setDriverId(optional.get().getId()); + this.updateById(car); + } + } + } + + /** * 获取车辆列表数据 * * @param carListReq @@ -128,7 +152,8 @@ if (car.getStatus() == 1) { updateWrapper.set(Car::getDownlineTime, LocalDateTime.now()); } - updateWrapper.set(Car::getStatus, 4); + updateWrapper.set(Car::getStatus, 3); + updateWrapper.eq(Car::getId, car.getId()); this.update(updateWrapper); } else { String dateTime = gnssDataVo.getDate() + " " + gnssDataVo.getTime(); @@ -138,7 +163,8 @@ if (car.getStatus() == 1) { updateWrapper.set(Car::getDownlineTime, LocalDateTime.now()); } - updateWrapper.set(Car::getStatus, 4); + updateWrapper.set(Car::getStatus, 3); + updateWrapper.eq(Car::getId, car.getId()); this.update(updateWrapper); } else { if (car.getStatus() != 1) { @@ -146,9 +172,34 @@ updateWrapper.set(Car::getOnlineTime, LocalDateTime.now()); } updateWrapper.set(Car::getStatus, 1); + updateWrapper.eq(Car::getId, car.getId()); this.update(updateWrapper); } } } } + + + /** + * 检测视频播放,清除没有播放的视频流 + */ + @Override + public void taskPlayDetection(Integer deviceNumber) { + Car car = this.getById(deviceNumber); + try { + ScheduledExecutorService executorService = Executors.newScheduledThreadPool(1); + executorService.scheduleWithFixedDelay(new Runnable() { + @Override + public void run() { + if(!redisTemplate.hasKey("live:" + car.getId())){ + String folderPath = hlsOutputPath + "hls\\" + car.getVehicleNumber(); + JavaCVStreamUtil.close(car.getId(), folderPath); + } + }}, 1, 1, TimeUnit.MINUTES); + }catch (Exception e){ + e.printStackTrace(); + } + } + + } -- Gitblit v1.7.1