From 9c00d2823f39154144b5cf59105028427ec32b4e Mon Sep 17 00:00:00 2001
From: fuliqi <fuliqi@qq.com>
Date: 星期一, 19 八月 2024 15:36:41 +0800
Subject: [PATCH] 车辆指标计算测试+修改

---
 ycl-server/src/main/java/com/ycl/calculate/CarDataIntegrityCalculation.java |    4 ++--
 ycl-server/src/main/java/com/ycl/calculate/CarSnapshotDelayCalculation.java |    2 +-
 ycl-server/src/main/java/com/ycl/calculate/CarDeviceSampleCalculation.java  |   18 ++++++++++--------
 ycl-server/src/main/java/com/ycl/task/CarTask.java                          |   14 ++++++++++++++
 ycl-server/src/main/java/com/ycl/calculate/IndexCalculationServe.java       |    6 +++---
 5 files changed, 30 insertions(+), 14 deletions(-)

diff --git a/ycl-server/src/main/java/com/ycl/calculate/CarDataIntegrityCalculation.java b/ycl-server/src/main/java/com/ycl/calculate/CarDataIntegrityCalculation.java
index 29b2db9..fac20a8 100644
--- a/ycl-server/src/main/java/com/ycl/calculate/CarDataIntegrityCalculation.java
+++ b/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++;
diff --git a/ycl-server/src/main/java/com/ycl/calculate/CarDeviceSampleCalculation.java b/ycl-server/src/main/java/com/ycl/calculate/CarDeviceSampleCalculation.java
index 651d501..e9e410a 100644
--- a/ycl-server/src/main/java/com/ycl/calculate/CarDeviceSampleCalculation.java
+++ b/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++;
         }
-        //鍥剧墖璁块棶姝e父閲� = 鎶芥閲�-寮傚父閲�
-        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) {
+            //鍥剧墖璁块棶姝e父閲� = 鎶芥閲�-寮傚父閲�
+            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++;
+            }
         }
     }
 
diff --git a/ycl-server/src/main/java/com/ycl/calculate/CarSnapshotDelayCalculation.java b/ycl-server/src/main/java/com/ycl/calculate/CarSnapshotDelayCalculation.java
index 8fdd2f9..7f91098 100644
--- a/ycl-server/src/main/java/com/ycl/calculate/CarSnapshotDelayCalculation.java
+++ b/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;
     }
 }
diff --git a/ycl-server/src/main/java/com/ycl/calculate/IndexCalculationServe.java b/ycl-server/src/main/java/com/ycl/calculate/IndexCalculationServe.java
index aa66e08..24d8cdc 100644
--- a/ycl-server/src/main/java/com/ycl/calculate/IndexCalculationServe.java
+++ b/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);
     }
 
diff --git a/ycl-server/src/main/java/com/ycl/task/CarTask.java b/ycl-server/src/main/java/com/ycl/task/CarTask.java
index 98e0042..8e5fbaa 100644
--- a/ycl-server/src/main/java/com/ycl/task/CarTask.java
+++ b/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("寮�濮嬭绠楄溅杈嗗崱鍙h澶囨暟鎹瘑鍒噯纭�с�乽rl鍙敤鎬с�佸ぇ鍥惧彲鐢ㄦ��");
         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("缁撴潫璁$畻杞﹁締鍗″彛璁惧鏁版嵁璇嗗埆鍑嗙‘鎬с�乽rl鍙敤鎬с�佸ぇ鍥惧彲鐢ㄦ��");
     }
 
     public void infoAccuracyTask() {
+        log.info("寮�濮嬭绠楄溅杈嗗崱鍙d俊鎭噰闆嗗噯纭巼");
         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("寮�濮嬭绠楄溅杈嗗崱鍙h澶囨椂閽熷噯纭��");
         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("缁撴潫璁$畻杞﹁締鐩綍涓�鑷寸巼");
     }
 
 }

--
Gitblit v1.8.0