From 40797b99f5ec22b7165d4c67eee5c198741d0633 Mon Sep 17 00:00:00 2001
From: fuliqi <fuliqi@qq.com>
Date: 星期五, 02 八月 2024 17:22:22 +0800
Subject: [PATCH] 人脸时钟准确性

---
 ycl-server/src/main/java/com/ycl/calculate/IndexCalculationServe.java |   52 +++++++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 47 insertions(+), 5 deletions(-)

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 cdd439c..aa33b57 100644
--- a/ycl-server/src/main/java/com/ycl/calculate/IndexCalculationServe.java
+++ b/ycl-server/src/main/java/com/ycl/calculate/IndexCalculationServe.java
@@ -8,6 +8,7 @@
 import com.ycl.platform.domain.result.HK.SnapshotDataMonitorResult;
 import com.ycl.platform.service.ITMonitorService;
 import constant.CheckConstants;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 import org.springframework.stereotype.Service;
@@ -22,6 +23,7 @@
  * 璁$畻鍏紡
  */
 @Component
+@Slf4j
 public class IndexCalculationServe {
 
     //鐐逛綅鍦ㄧ嚎鐜�
@@ -59,8 +61,8 @@
         return result.setScale(4, RoundingMode.HALF_UP);
     }
 
-    //鏁版嵁瀹屾暣鎬�
-    public BigDecimal dataIntegrity(Map<String, Object> param){
+    //杞﹁締鏁版嵁瀹屾暣鎬�
+    public BigDecimal dataIntegrity(Map<String, Object> param) {
         BigDecimal totalSites = new BigDecimal((Integer) param.get("totalSites"));
         BigDecimal importantTotalSites = new BigDecimal((Integer) param.get("importantTotalSites"));
         BigDecimal integritySites = new BigDecimal((Integer) param.get("integritySites"));
@@ -68,6 +70,45 @@
         BigDecimal result = integritySites.divide(totalSites, 10, RoundingMode.HALF_UP)
                 .add(importantIntegritySites.divide(importantTotalSites, 10, RoundingMode.HALF_UP));
         return result.setScale(4, RoundingMode.HALF_UP);
+    }
+
+    //杞﹁締鏁版嵁瀹屾暣鎬�
+    public BigDecimal dataAccuracy(Map<String, Object> param) {
+        BigDecimal totalSites = new BigDecimal((Integer) param.get("totalSites"));
+        BigDecimal importantTotalSites = new BigDecimal((Integer) param.get("importantTotalSites"));
+        BigDecimal accuracySites = new BigDecimal((Integer) param.get("accuracySites"));
+        BigDecimal importantAccuracySites = new BigDecimal((Integer) param.get("importantAccuracySites"));
+        BigDecimal result = accuracySites.divide(totalSites, 10, RoundingMode.HALF_UP)
+                .add(importantAccuracySites.divide(importantTotalSites, 10, RoundingMode.HALF_UP));
+        return result.setScale(4, RoundingMode.HALF_UP);
+    }
+
+    //鏃堕挓鍑嗙‘鎬�
+    public BigDecimal clockAccuracy(Map<String, Object> param) {
+        BigDecimal totalSitesCount = new BigDecimal((Integer) param.get("totalSites"));
+        BigDecimal accuracySites = new BigDecimal((Integer) param.get("accuracySites"));
+        return accuracySites.divide(totalSitesCount, 4, RoundingMode.HALF_UP);
+    }
+
+    //url鍙敤鎬�
+    public BigDecimal urlUsability(Map<String, Object> param) {
+        BigDecimal totalSitesCount = new BigDecimal((Integer) param.get("totalSites"));
+        BigDecimal urlQualifySites = new BigDecimal((Integer) param.get("urlQualifySites"));
+        return urlQualifySites.divide(totalSitesCount, 4, RoundingMode.HALF_UP);
+    }
+
+    //澶у浘鍙敤鎬�
+    public BigDecimal picUsability(Map<String, Object> param) {
+        BigDecimal totalSitesCount = new BigDecimal((Integer) param.get("totalSites"));
+        BigDecimal picUsabilitySites = new BigDecimal((Integer) param.get("picUsabilitySites"));
+        return picUsabilitySites.divide(totalSitesCount, 4, RoundingMode.HALF_UP);
+    }
+
+    //鍥剧墖鍚堟牸鐜�
+    public BigDecimal dataQualify(Map<String, Object> param) {
+        BigDecimal totalSitesCount = new BigDecimal((Integer) param.get("totalSites"));
+        BigDecimal picQualifySites = new BigDecimal((Integer) param.get("picQualifySites"));
+        return picQualifySites.divide(totalSitesCount, 4, RoundingMode.HALF_UP);
     }
 
     //杩斿洖鐪佸巺鍥芥爣鐮侀泦鍚�
@@ -85,7 +126,7 @@
     }
 
     //妫�鏌ユ槸鍚﹀瓨鍦ㄥ綋鏃ユ暟鎹�
-    public <T extends CheckIndex> T getCheckIndex(String key, List<T> checkIndexList) {
+    public <T extends CheckIndex> T getCheckIndex(String key, List<T> checkIndexList, Class<T> clazz) {
         T checkIndex;
 
         // 妫�鏌ユ槸鍚﹀凡瀛樺湪浠婃棩鏁版嵁
@@ -99,12 +140,13 @@
             checkIndex = existingIndex.get();
         } else {
             try {
-                checkIndex = (T) CheckIndexCar.class.getDeclaredConstructor().newInstance();
+                checkIndex = clazz.getDeclaredConstructor().newInstance();
                 checkIndex.setDeptId(key.startsWith("Province_") ? Long.parseLong(key.split("_")[1]) : Long.parseLong(key));
                 checkIndex.setExamineTag(key.startsWith("Province_") ? CheckConstants.Examine_Tag_City : CheckConstants.Examine_Tag_County);
                 checkIndex.setCreateTime(new Date());
             } catch (Exception e) {
-                throw new RuntimeException("鏃犳硶鍒涘缓 CheckIndexCar 瀹炰緥", e);
+                checkIndex = null;
+                log.error("鏃犳硶鍒涘缓 checkIndex 瀹炰緥", e);
             }
         }
         return checkIndex;

--
Gitblit v1.8.0