zxl
2025-06-24 3b0516a2959e25576e4f3fda697a3b025d06c8c9
ycl-server/src/main/java/com/ycl/task/VideoTask.java
@@ -63,9 +63,10 @@
        Date yesterday = DateUtils.addDays(new Date(), -1);
        //计算点位在线率和重点点位在线率和指挥图像在线率
        Query query = new Query();
        log.error("查询mongodb日期数据为{}" , yesterday);
        query.addCriteria(Criteria
                .where("mongoCreateTime").gte(DateUtils.getDayStart(yesterday)).lt(DateUtils.getDayEnd(yesterday)));
        List<VideoOnlineResult> results = mongoTemplate.find(query, VideoOnlineResult.class);
                .where("mongoCreateTime").gte(DateUtils.getDayStart(yesterday)).lt(DateUtils.getDayEnd(yesterday)));//<&== 昨天的开始时间 < 结束时间
        List<VideoOnlineResult> results = mongoTemplate.find(query, VideoOnlineResult.class);//
        //优云上有车辆和人脸的设备数据,需要过滤出视频设备
        List<String> videoIds = monitorMapper.getVideoIds();
        if(!CollectionUtils.isEmpty(results)){
@@ -76,6 +77,7 @@
        log.info("结束计算点位在线率");
    }
    //在15号执行指标,查询mongodb创建时间在14号 ,定时任务应该在15号执行 获得的mongodb数据在14号才正确
    public void videoUsabilityTask() {
        log.info("开始计算录像可用率和重点录像可用率");
        Date yesterday = DateUtils.addDays(new Date(), -1);
@@ -139,11 +141,6 @@
                .where("mongoCreateTime").gte(DateUtils.getDayStart(yesterday)).lt(DateUtils.getDayEnd(yesterday)));
        List<OsdCheckResult> results = mongoTemplate.find(query, OsdCheckResult.class);
        //优云上有车辆和人脸的设备数据,需要过滤出视频设备
        List<String> videoIds = monitorMapper.getVideoIds();
        if(!CollectionUtils.isEmpty(results)){
            results = results.stream().filter(result -> videoIds.contains(result.getNo())).collect(Collectors.toList());
        }
        CalculationStrategy calculator = IndexCalculationFactory.getCalculator(CalculationStrategyConstants.Video_OsdTime);
        calculator.calculate(results);
        log.info("结束计算Osd标注、时间准确率");