From fbe06367836796f584984e021729002b3707c26b Mon Sep 17 00:00:00 2001
From: fuliqi <fuliqi@qq.com>
Date: 星期一, 19 八月 2024 16:50:24 +0800
Subject: [PATCH] 视频考核计算测试+修改

---
 ycl-common/src/main/java/constant/ApiConstants.java                            |    8 ---
 ycl-server/src/main/java/com/ycl/calculate/CarSnapshopDataCalculation.java     |    9 ++--
 ycl-common/src/main/java/constant/CheckThreadConstants.java                    |   19 +++++++++
 ycl-server/src/main/java/com/ycl/calculate/FaceSnapshotDataCalculation.java    |    9 ++--
 ycl-server/src/main/java/com/ycl/calculate/MonitorRegistrationCalculation.java |   24 +++++++----
 ycl-server/src/main/java/com/ycl/calculate/VideoOnlineCalculation.java         |   11 +++++
 6 files changed, 56 insertions(+), 24 deletions(-)

diff --git a/ycl-common/src/main/java/constant/ApiConstants.java b/ycl-common/src/main/java/constant/ApiConstants.java
index 9037425..436c6ae 100644
--- a/ycl-common/src/main/java/constant/ApiConstants.java
+++ b/ycl-common/src/main/java/constant/ApiConstants.java
@@ -72,11 +72,5 @@
 
 
 
-    /** 鑰冩牳鎸囨爣 鏉′欢鍙傛暟  */
-    //杞﹁締鑰冩牳锛岀偣浣嶅湪绾跨巼锛屽尯鍘夸笉灏戜簬40璺�
-    public final static Integer Check_Car_SiteOnline = 40;
-    public final static Integer Check_Face_SiteOnline = 40;
-    //杞﹁締鍦ㄧ嚎鐜�  Redis 姣忔湀鏁版嵁涓柇娆℃暟 Hash key
-    public final static String Check_Car_ViewConnect = "CarViewConnectNoData";
-    public final static String Check_Face_ViewConnect = "FaceViewConnectNoData";
+
 }
diff --git a/ycl-common/src/main/java/constant/CheckThreadConstants.java b/ycl-common/src/main/java/constant/CheckThreadConstants.java
new file mode 100644
index 0000000..2f4335e
--- /dev/null
+++ b/ycl-common/src/main/java/constant/CheckThreadConstants.java
@@ -0,0 +1,19 @@
+package constant;
+
+/**
+ * 鑰冩牳鎸囨爣璁$畻闃堝��
+ */
+public class CheckThreadConstants {
+    //瑙嗛妗f鑰冩牳姣斾笉浣庝簬90%
+    public final static String Check_Video_Archive ="0.9";
+    //瑙嗛鐐逛綅鍦ㄧ嚎鐜囷紝鍖哄幙涓嶅皯浜�100璺�
+    public final static Integer Check_Video_SiteOnline =100;
+    public final static Integer Check_Video_ImportantSite =10;
+
+    //杞﹁締銆佷汉鑴歌�冩牳锛岀偣浣嶅湪绾跨巼锛屽尯鍘夸笉灏戜簬40璺�
+    public final static Integer Check_Car_SiteOnline = 40;
+    public final static Integer Check_Face_SiteOnline = 40;
+    //杞﹁締銆佷汉鑴稿湪绾跨巼  Redis 姣忔湀鏁版嵁涓柇娆℃暟 Hash key
+    public final static String Check_Car_ViewConnect = "CarViewConnectNoData";
+    public final static String Check_Face_ViewConnect = "FaceViewConnectNoData";
+}
diff --git a/ycl-server/src/main/java/com/ycl/calculate/CarSnapshopDataCalculation.java b/ycl-server/src/main/java/com/ycl/calculate/CarSnapshopDataCalculation.java
index 33469c9..716de5e 100644
--- a/ycl-server/src/main/java/com/ycl/calculate/CarSnapshopDataCalculation.java
+++ b/ycl-server/src/main/java/com/ycl/calculate/CarSnapshopDataCalculation.java
@@ -10,6 +10,7 @@
 import com.ycl.utils.DateUtils;
 import constant.ApiConstants;
 import constant.CheckSnapCountConstants;
+import constant.CheckThreadConstants;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.redis.core.RedisTemplate;
@@ -73,7 +74,7 @@
         // 鍒ゆ柇浠婂ぉ鏄惁鏄湰鏈堢殑绗竴澶�
         if (today.equals(firstDayOfMonth)) {
             // 濡傛灉鏄紝鍒欐竻闄edis涓褰曚腑鏂鏁扮殑鏁版嵁
-            redisTemplate.delete(ApiConstants.Check_Car_ViewConnect);
+            redisTemplate.delete(CheckThreadConstants.Check_Car_ViewConnect);
         }
         for (SnapshotDataMonitorResult result : list) {
             TMonitorVO monitor = monitorMap.get(result.getExternalIndexCode());
@@ -144,7 +145,7 @@
         }
 
         //璋冪敤鐐逛綅鍦ㄧ嚎璁$畻鏂规硶
-        if (stats.totalSites >= ApiConstants.Check_Car_SiteOnline) {
+        if (stats.totalSites >= CheckThreadConstants.Check_Car_SiteOnline) {
             Map<String, Object> siteOnlineParam = new HashMap<>();
             siteOnlineParam.put("totalSites", stats.totalSites);
             siteOnlineParam.put("onlineSites", stats.onlineSites);
@@ -155,7 +156,7 @@
         }
         //瑙嗗浘搴撳鎺ョǔ瀹氭��
         //Redis璁板綍璇ュ尯鍘垮綋鏈堟棤鏁版嵁涓婁紶娆℃暟
-        Integer noDateCount = (Integer) redisTemplate.opsForHash().get(ApiConstants.Check_Car_ViewConnect, key);
+        Integer noDateCount = (Integer) redisTemplate.opsForHash().get(CheckThreadConstants.Check_Car_ViewConnect, key);
         // 濡傛灉鍊间负null锛屽垯鍒濆鍖栦负0
         if (noDateCount == null) {
             noDateCount = 0;
@@ -173,7 +174,7 @@
             noDateCount++;
         }
         // 灏嗘柊鐨勫�兼斁鍥濰ash涓�
-        redisTemplate.opsForHash().put(ApiConstants.Check_Car_ViewConnect, key, noDateCount);
+        redisTemplate.opsForHash().put(CheckThreadConstants.Check_Car_ViewConnect, key, noDateCount);
         return checkIndexCar;
     }
 }
diff --git a/ycl-server/src/main/java/com/ycl/calculate/FaceSnapshotDataCalculation.java b/ycl-server/src/main/java/com/ycl/calculate/FaceSnapshotDataCalculation.java
index c1500fc..d9541ff 100644
--- a/ycl-server/src/main/java/com/ycl/calculate/FaceSnapshotDataCalculation.java
+++ b/ycl-server/src/main/java/com/ycl/calculate/FaceSnapshotDataCalculation.java
@@ -14,6 +14,7 @@
 import constant.ApiConstants;
 import constant.CheckConstants;
 import constant.CheckSnapCountConstants;
+import constant.CheckThreadConstants;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.redis.core.RedisTemplate;
@@ -78,7 +79,7 @@
         // 鍒ゆ柇浠婂ぉ鏄惁鏄湰鏈堢殑绗竴澶�
         if (today.equals(firstDayOfMonth)) {
             // 濡傛灉鏄紝鍒欐竻闄edis涓褰曚腑鏂鏁扮殑鏁版嵁
-            redisTemplate.delete(ApiConstants.Check_Face_ViewConnect);
+            redisTemplate.delete(CheckThreadConstants.Check_Face_ViewConnect);
         }
         for (SnapshotDataMonitorResult result : list) {
             TMonitorVO monitor = monitorMap.get(result.getExternalIndexCode());
@@ -141,7 +142,7 @@
             return null;
         }
         //璋冪敤鐐逛綅鍦ㄧ嚎璁$畻鏂规硶
-        if (stats.totalSites >= ApiConstants.Check_Face_SiteOnline) {
+        if (stats.totalSites >= CheckThreadConstants.Check_Face_SiteOnline) {
             Map<String, Object> siteOnlineParam = new HashMap<>();
             siteOnlineParam.put("totalSites", stats.totalSites);
             siteOnlineParam.put("onlineSites", stats.onlineSites);
@@ -152,7 +153,7 @@
         }
         //瑙嗗浘搴撳鎺ョǔ瀹氭��
         //Redis璁板綍璇ュ尯鍘垮綋鏈堟棤鏁版嵁涓婁紶娆℃暟
-        Integer noDateCount = (Integer) redisTemplate.opsForHash().get(ApiConstants.Check_Face_ViewConnect, key);
+        Integer noDateCount = (Integer) redisTemplate.opsForHash().get(CheckThreadConstants.Check_Face_ViewConnect, key);
         // 濡傛灉鍊间负null锛屽垯鍒濆鍖栦负0
         if (noDateCount == null) {
             noDateCount = 0;
@@ -170,7 +171,7 @@
             noDateCount++;
         }
         // 灏嗘柊鐨勫�兼斁鍥濰ash涓�
-        redisTemplate.opsForHash().put(ApiConstants.Check_Face_ViewConnect, key, noDateCount);
+        redisTemplate.opsForHash().put(CheckThreadConstants.Check_Face_ViewConnect, key, noDateCount);
         return checkIndexFace;
     }
 }
diff --git a/ycl-server/src/main/java/com/ycl/calculate/MonitorRegistrationCalculation.java b/ycl-server/src/main/java/com/ycl/calculate/MonitorRegistrationCalculation.java
index 70b9707..5c04496 100644
--- a/ycl-server/src/main/java/com/ycl/calculate/MonitorRegistrationCalculation.java
+++ b/ycl-server/src/main/java/com/ycl/calculate/MonitorRegistrationCalculation.java
@@ -10,6 +10,7 @@
 import com.ycl.platform.mapper.TMonitorMapper;
 import com.ycl.platform.service.ICheckIndexVideoService;
 import constant.ApiConstants;
+import constant.CheckThreadConstants;
 import constant.RedisConstant;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -59,18 +60,18 @@
         }
         //鑾峰緱鍥芥爣鐮佷负key鐨勮澶噈ap
         Map<String, TMonitorVO> monitorMap = new HashMap<>();
-        if(!CollectionUtils.isEmpty(list)){
+        if (!CollectionUtils.isEmpty(list)) {
             monitorMap = list.stream().collect(Collectors.toMap(TMonitorVO::getSerialNumber, Function.identity()));
         }
         //鑾峰彇鐪佸巺鍥芥爣鐮侀泦鍚�
         List<String> provinceIds = getProvince();
         //鏈敞鍐岃澶�
-        Map<String,TMonitor> newMonitorMap = new HashMap<>();
+        Map<String, TMonitor> newMonitorMap = new HashMap<>();
         //Mongo涓�鏈轰竴妗e悓姝ysql鏃舵斁鍏edis
         String json = (String) redisTemplate.opsForValue().get(RedisConstant.New_Monitor_Set);
         if (!StringUtils.isEmpty(json)) {
             List<TMonitor> newMonitors = JSONArray.parseArray(json, TMonitor.class);
-            if(!CollectionUtils.isEmpty(newMonitors)){
+            if (!CollectionUtils.isEmpty(newMonitors)) {
                 newMonitorMap = newMonitors.stream().collect(Collectors.toMap(TMonitor::getSerialNumber, Function.identity()));
             }
         }
@@ -83,11 +84,11 @@
             if (monitor == null) continue;
 
             String deptId = monitor.getDeptId().toString();
-            updateAreaStats(areaStatsMap, deptId, result,newMonitorMap,todayMonitor);
+            updateAreaStats(areaStatsMap, deptId, result, newMonitorMap, todayMonitor);
             // 澶勭悊鐪佸巺鏁版嵁
             if (!CollectionUtils.isEmpty(provinceIds) && provinceIds.contains(monitor.getSerialNumber())) {
                 String provinceKey = ApiConstants.Province + deptId;
-                updateAreaStats(areaStatsMap, provinceKey, result,newMonitorMap,todayMonitor);
+                updateAreaStats(areaStatsMap, provinceKey, result, newMonitorMap, todayMonitor);
             }
         }
 
@@ -109,15 +110,15 @@
     /**
      * 绱鎬荤偣浣嶆暟銆佸湪绾跨偣浣嶆暟銆侀噸鐐圭偣浣嶆暟銆侀噸鐐圭偣浣嶅湪绾挎暟銆佹寚鎸ュ浘鍍忔暟銆佹寚鎸ュ浘鍍忓湪绾挎暟
      */
-    private void updateAreaStats(Map<String, AreaStats> areaStatsMap, String key, TMonitorVO result,Map<String,TMonitor> newMonitors,List<String> todayMonitor) {
+    private void updateAreaStats(Map<String, AreaStats> areaStatsMap, String key, TMonitorVO result, Map<String, TMonitor> newMonitors, List<String> todayMonitor) {
         //杩斿洖瀵硅薄鐨勫紩鐢紝濡傛灉涓嶅瓨鍦ㄤ細鏀惧叆鏂扮殑key,value
         AreaStats stats = areaStatsMap.computeIfAbsent(key, k -> new AreaStats());
         stats.totalSites++;
         stats.allFiles++;
-        if(newMonitors.containsKey(result.getSerialNumber())){
+        if (newMonitors.containsKey(result.getSerialNumber())) {
             stats.newSites++;
         }
-        if(todayMonitor.contains(result.getSerialNumber())){
+        if (todayMonitor.contains(result.getSerialNumber())) {
             stats.todayFiles++;
         }
     }
@@ -141,7 +142,12 @@
         archiveParam.put("allFiles", stats.allFiles);
         archiveParam.put("todayFiles", stats.todayFiles);
         BigDecimal archivesRate = archivesRate(archiveParam);
-        checkIndexVideo.setArchivesRate(archivesRate);
+        //濡傛灉妗f鑰冩牳姣斾綆浜�0.9涓嶅緱鍒�
+        if (new BigDecimal(CheckThreadConstants.Check_Video_Archive).compareTo(archivesRate) <= 0) {
+            checkIndexVideo.setArchivesRate(archivesRate);
+        } else {
+            checkIndexVideo.setArchivesRate(BigDecimal.ZERO);
+        }
 
         return checkIndexVideo;
     }
diff --git a/ycl-server/src/main/java/com/ycl/calculate/VideoOnlineCalculation.java b/ycl-server/src/main/java/com/ycl/calculate/VideoOnlineCalculation.java
index d90b901..1fbc17b 100644
--- a/ycl-server/src/main/java/com/ycl/calculate/VideoOnlineCalculation.java
+++ b/ycl-server/src/main/java/com/ycl/calculate/VideoOnlineCalculation.java
@@ -13,6 +13,7 @@
 import com.ycl.platform.service.ICheckIndexVideoService;
 import com.ycl.platform.service.ITMonitorService;
 import constant.ApiConstants;
+import constant.CheckThreadConstants;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
@@ -141,6 +142,10 @@
         param.put("onlineSites", stats.onlineSites);
         BigDecimal siteOnline = siteOnline(param);
         checkIndexVideo.setSiteOnline(siteOnline);
+        //鍖哄幙涓嶅皯浜�100璺�
+        if(stats.totalSites < CheckThreadConstants.Check_Video_SiteOnline){
+            checkIndexVideo.setSiteOnline(BigDecimal.ZERO);
+        }
         //璋冪敤鐐逛綅鍦ㄧ嚎鐜囪绠楁柟娉� 璁$畻閲嶇偣鐐逛綅鍦ㄧ嚎鐜�
         if(stats.importantSites!=0) {
             Map<String, Object> importantParam = new HashMap<>();
@@ -151,6 +156,12 @@
         }else {
             log.info("閲嶇偣鐐逛綅鏁颁负0");
         }
+
+        //鍖哄幙瑙嗛閲嶇偣鐐逛綅鏁颁笉灏戜簬10璺�
+        if(stats.importantSites<CheckThreadConstants.Check_Video_ImportantSite){
+            checkIndexVideo.setKeySiteOnline(BigDecimal.ZERO);
+        }
+
         //璋冪敤鐐逛綅鍦ㄧ嚎鐜囪绠楁柟娉� 璁$畻鎸囨尌鍥惧儚鍦ㄧ嚎鐜�
         if(stats.commandSites!=0) {
             Map<String, Object> commandParam = new HashMap<>();

--
Gitblit v1.8.0