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("结束计算车辆目录一致率"); } }