fuliqi
2024-08-19 9c00d2823f39154144b5cf59105028427ec32b4e
车辆指标计算测试+修改
5个文件已修改
44 ■■■■■ 已修改文件
ycl-server/src/main/java/com/ycl/calculate/CarDataIntegrityCalculation.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/java/com/ycl/calculate/CarDeviceSampleCalculation.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/java/com/ycl/calculate/CarSnapshotDelayCalculation.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/java/com/ycl/calculate/IndexCalculationServe.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/java/com/ycl/task/CarTask.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/java/com/ycl/calculate/CarDataIntegrityCalculation.java
@@ -102,8 +102,8 @@
        if (result.getMainNoIntegrityPercent() <= 0.1) {
            stats.integritySites++;
        }
        //重点点位为六项属性
        if (importantIds.contains(key)) {
        //重点点位为六项属性完整
        if (importantIds.contains(result.getExternalIndexCode())) {
            stats.importantTotalSites++;
            if (result.getNoIntegrityPercent() <= 0.1) {
                stats.importantIntegritySites++;
ycl-server/src/main/java/com/ycl/calculate/CarDeviceSampleCalculation.java
@@ -108,7 +108,7 @@
            stats.accuracySites++;
        }
        //重点点位为六项属性
        if (importantIds.contains(key)) {
        if (importantIds.contains(result.getExternalIndexCode())) {
            stats.importantTotalSites++;
            if (vehDiff.getImportantConPercent() >= 0.9) {
                stats.importantAccuracySites++;
@@ -118,13 +118,15 @@
        if (bigUseful.getBigUsefulPercent() >= 0.9) {
            stats.picUsabilitySites++;
        }
        //图片访问正常量 = 抽检量-异常量
        BigDecimal picNormalCount = new BigDecimal(bigUseful.getSampleCount() - bigUseful.getBigPicExpCount());
        //图片抽检量
        BigDecimal sampleCount = new BigDecimal(bigUseful.getSampleCount());
        //图片访问率>=90% 视为合格
        if (picNormalCount.divide(sampleCount, 4, RoundingMode.HALF_UP).compareTo(new BigDecimal("0.9")) >= 0) {
            stats.urlUsabilitySites++;
        if (bigUseful.getSampleCount() != 0) {
            //图片访问正常量 = 抽检量-异常量
            BigDecimal picNormalCount = new BigDecimal(bigUseful.getSampleCount() - bigUseful.getBigPicExpCount());
            //图片抽检量
            BigDecimal sampleCount = new BigDecimal(bigUseful.getSampleCount());
            //图片访问率>=90% 视为合格
            if (picNormalCount.divide(sampleCount, 4, RoundingMode.HALF_UP).compareTo(new BigDecimal("0.9")) >= 0) {
                stats.urlUsabilitySites++;
            }
        }
    }
ycl-server/src/main/java/com/ycl/calculate/CarSnapshotDelayCalculation.java
@@ -126,7 +126,7 @@
        param.put("delayCount2", stats.delayCount2);
        param.put("delayCount3", stats.delayCount3);
        BigDecimal index = snapshopDelay(param);
        checkIndexCar.setSiteOnline(index);
        checkIndexCar.setVehicleUploadTimeliness(index);
        return checkIndexCar;
    }
}
ycl-server/src/main/java/com/ycl/calculate/IndexCalculationServe.java
@@ -118,9 +118,9 @@
        BigDecimal delayCount2 = new BigDecimal((Integer) param.get("delayCount2"));
        BigDecimal delayCount3 = new BigDecimal((Integer) param.get("delayCount3"));
        BigDecimal result = delayCount1.divide(totalCount, 10, RoundingMode.HALF_UP).multiply(BigDecimal.ONE)
        BigDecimal result = BigDecimal.ONE.subtract(delayCount1.divide(totalCount, 10, RoundingMode.HALF_UP).multiply(BigDecimal.ONE)
                .add(delayCount2.divide(totalCount, 10, RoundingMode.HALF_UP).multiply(new BigDecimal("0.8")))
                .add(delayCount3.divide(totalCount, 10, RoundingMode.HALF_UP).multiply(new BigDecimal("0.6")));
                .add(delayCount3.divide(totalCount, 10, RoundingMode.HALF_UP).multiply(new BigDecimal("0.6"))));
        return result.setScale(4, RoundingMode.HALF_UP);
    }
@@ -131,7 +131,7 @@
        BigDecimal integritySites = new BigDecimal((Integer) param.get("integritySites"));
        BigDecimal importantIntegritySites = new BigDecimal((Integer) param.get("importantIntegritySites"));
        BigDecimal result = integritySites.divide(totalSites, 10, RoundingMode.HALF_UP)
                .add(importantIntegritySites.divide(importantTotalSites, 10, RoundingMode.HALF_UP));
                .multiply(importantIntegritySites.divide(importantTotalSites, 10, RoundingMode.HALF_UP));
        return result.setScale(4, RoundingMode.HALF_UP);
    }
ycl-server/src/main/java/com/ycl/task/CarTask.java
@@ -34,6 +34,7 @@
    @Autowired
    private TMonitorMapper monitorMapper;
    public void siteOnlineTask() {
        log.info("开始计算点位在线率和视图库对接稳定性");
        Date yesterday = DateUtils.addDays(new Date(), -1);
        //TODO:时间写死了
        Date date = DateUtils.getDay(2024,7,13);
@@ -45,9 +46,11 @@
        List<SnapshotDataMonitorResult> results = mongoTemplate.find(query, SnapshotDataMonitorResult.class);
        CalculationStrategy<SnapshotDataMonitorResult> calculator = IndexCalculationFactory.getCalculator(CalculationStrategyConstants.Car_SiteOnline_ViewStability);
        calculator.calculate(results);
        log.info("结束计算点位在线率和视图库对接稳定性");
    }
    public void deviceSampleTask() {
        log.info("开始计算车辆卡口设备数据识别准确性、url可用性、大图可用性");
        Date yesterday = DateUtils.addDays(new Date(), -1);
        //TODO:时间写死了
        Date date = DateUtils.getDay(2024,7,13);
@@ -58,9 +61,11 @@
        List<VehicleDeviceSamplingResult> results = mongoTemplate.find(query, VehicleDeviceSamplingResult.class);
        CalculationStrategy calculator = IndexCalculationFactory.getCalculator(CalculationStrategyConstants.Car_DataAccuracy_Url_PicUsability);
        calculator.calculate(results);
        log.info("结束计算车辆卡口设备数据识别准确性、url可用性、大图可用性");
    }
    public void infoAccuracyTask() {
        log.info("开始计算车辆卡口信息采集准确率");
        Date yesterday = DateUtils.addDays(new Date(), -1);
        //TODO:时间写死了
        Date date = DateUtils.getDay(2024,7,13);
@@ -71,9 +76,11 @@
        List<CrossDetailResult> results = mongoTemplate.find(query, CrossDetailResult.class);
        CalculationStrategy calculator = IndexCalculationFactory.getCalculator(CalculationStrategyConstants.Car_InfoAccuracy);
        calculator.calculate(results);
        log.info("结束计算车辆卡口信息采集准确率");
    }
    public void snapShopDelayTask() {
        log.info("开始计算车辆抓拍数据上传及时性");
        Date yesterday = DateUtils.addDays(new Date(), -1);
        //TODO:时间写死了
        Date date = DateUtils.getDay(2024,7,13);
@@ -85,9 +92,11 @@
        List<SnapshotDelayMonitorResult> results = mongoTemplate.find(query, SnapshotDelayMonitorResult.class);
        CalculationStrategy calculator = IndexCalculationFactory.getCalculator(CalculationStrategyConstants.Car_SnapshotDelay);
        calculator.calculate(results);
        log.info("结束计算车辆抓拍数据上传及时性");
    }
    public void snapShopDataIntegrity() {
        log.info("开始计算车辆数据抓拍完整性");
        Date yesterday = DateUtils.addDays(new Date(), -1);
        //TODO:时间写死了
        Date date = DateUtils.getDay(2024,7,13);
@@ -98,9 +107,11 @@
        List<DataIntegrityMonitoringResult> results = mongoTemplate.find(query, DataIntegrityMonitoringResult.class);
        CalculationStrategy calculator = IndexCalculationFactory.getCalculator(CalculationStrategyConstants.Car_DataIntegrity);
        calculator.calculate(results);
        log.info("结束计算车辆数据抓拍完整性");
    }
    public void clockAccuracyTask() {
        log.info("开始计算车辆卡口设备时钟准确性");
        Date yesterday = DateUtils.addDays(new Date(), -1);
        //TODO:时间写死了
        Date date = DateUtils.getDay(2024,7,13);
@@ -111,14 +122,17 @@
        List<VehicleDeviceInspectionResult> results = mongoTemplate.find(query, VehicleDeviceInspectionResult.class);
        CalculationStrategy calculator = IndexCalculationFactory.getCalculator(CalculationStrategyConstants.Car_ClockAccuracy);
        calculator.calculate(results);
        log.info("结束计算车辆卡口设备时钟准确性");
    }
    public void directConsistentTask() {
        log.info("开始计算车辆目录一致率");
        //车辆目录一致率
        List<TMonitorVO> tMonitorVOS = monitorMapper.selectMonitorVOList();
        List<TMonitorVO> list = tMonitorVOS.stream().filter(tMonitorVO -> !StringUtils.isEmpty(tMonitorVO.getCameraFunType()) && tMonitorVO.getCameraFunType().contains(CheckConstants.Rule_Category_Car + "")).collect(Collectors.toList());
        CalculationStrategy calculator = IndexCalculationFactory.getCalculator(CalculationStrategyConstants.Car_DirectConsistent);
        calculator.calculate(list);
        log.info("结束计算车辆目录一致率");
    }
}