From 71f61d13531b3e2a0099ba5afe3f268c99c5bacf Mon Sep 17 00:00:00 2001
From: zxl <763096477@qq.com>
Date: 星期四, 29 五月 2025 18:13:33 +0800
Subject: [PATCH] 修改大屏录像可用率指标,点位在线指标,数据中心录像可用率,

---
 ycl-server/src/main/java/com/ycl/factory/IndexCalculationFactory.java |   74 +++++++++++++++++++++++++++++++++---
 1 files changed, 67 insertions(+), 7 deletions(-)

diff --git a/ycl-server/src/main/java/com/ycl/factory/IndexCalculationFactory.java b/ycl-server/src/main/java/com/ycl/factory/IndexCalculationFactory.java
index 1b638dc..a6a4bbc 100644
--- a/ycl-server/src/main/java/com/ycl/factory/IndexCalculationFactory.java
+++ b/ycl-server/src/main/java/com/ycl/factory/IndexCalculationFactory.java
@@ -1,19 +1,79 @@
 package com.ycl.factory;
 
-import com.ycl.calculate.CalculationStrategy;
-import com.ycl.calculate.CarSiteOnlineCalculation;
+import com.ycl.calculate.*;
+import com.ycl.platform.domain.result.UY.VideoQualityResult;
+import constant.CalculationStrategyConstants;
+import org.springframework.beans.BeansException;
+import org.springframework.beans.factory.BeanFactory;
+import org.springframework.beans.factory.BeanFactoryAware;
+import org.springframework.stereotype.Component;
 
 import java.util.HashMap;
 import java.util.Map;
-
-public class IndexCalculationFactory {
-    private static final Map<String, CalculationStrategy> calculators = new HashMap<>();
+@Component
+public class IndexCalculationFactory implements BeanFactoryAware {
+    private static BeanFactory beanFactory;
+    private static final Map<String, Class<? extends CalculationStrategy>> calculatorClasses = new HashMap<>();
 
     static {
-        calculators.put("siteOnline", new CarSiteOnlineCalculation());
+        //杞﹁締鐐逛綅鍦ㄧ嚎
+        calculatorClasses.put(CalculationStrategyConstants.Car_SiteOnline, CarOnlineCalculation.class);
+        //杞﹁締瑙嗗浘搴撳鎺ョǔ瀹氭��
+        calculatorClasses.put(CalculationStrategyConstants.Car_ViewStability, CarSnapshopDataCalculation.class);
+        //杞﹁締淇℃伅鍑嗙‘鐜�
+        calculatorClasses.put(CalculationStrategyConstants.Car_InfoAccuracy, CarInFoAccuracyCalculation.class);
+        //杞﹁締鎶撴媿鏁版嵁涓婁紶寤惰繜
+        calculatorClasses.put(CalculationStrategyConstants.Car_SnapshotDelay, CarSnapshotDelayCalculation.class);
+        //杞﹁締鏁版嵁鎶撴媿瀹屾暣鎬�
+        calculatorClasses.put(CalculationStrategyConstants.Car_DataIntegrity, CarDataIntegrityCalculation.class);
+        //杞﹁締鏁版嵁鎶撴媿鍑嗙‘鎬с�乽rl銆佸ぇ鍥惧彲鐢�
+        calculatorClasses.put(CalculationStrategyConstants.Car_DataAccuracy_PicUsability, CarDeviceSampleCalculation.class);
+        //杞﹁締url
+        calculatorClasses.put(CalculationStrategyConstants.Car_Url, CarUrlCalculation.class);
+        //杞﹁締鏃堕挓鍑嗙‘鎬�
+        calculatorClasses.put(CalculationStrategyConstants.Car_ClockAccuracy, CarClockAccuracyCalculation.class);
+        //杞﹁締鐩綍涓�鑷�
+        calculatorClasses.put(CalculationStrategyConstants.Car_DirectConsistent, CarConsistentCalculation.class);
+
+        //浜鸿劯鐐逛綅鍦ㄧ嚎
+        calculatorClasses.put(CalculationStrategyConstants.Face_SiteOnline, FaceOnlineCalculation.class);
+        //浜鸿劯瑙嗗浘搴撳鎺ョǔ瀹�
+        calculatorClasses.put(CalculationStrategyConstants.Face_ViewStability, FaceSnapshotDataCalculation.class);
+        //浜鸿劯淇℃伅鍑嗙‘鐜�
+        calculatorClasses.put(CalculationStrategyConstants.Face_InfoAccuracy, FaceInFoAccuracyCalculation.class);
+        //浜鸿劯鎶撴媿鏁版嵁寤惰繜
+        calculatorClasses.put(CalculationStrategyConstants.Face_SnapshotDelay, FaceSnapshotDelayCalculation.class);
+        //浜鸿劯鍥剧墖鍚堟牸銆佸ぇ鍥惧彲鐢�
+        calculatorClasses.put(CalculationStrategyConstants.Face_DataAccuracy_PicUsability, FaceDeviceSampleCalculation.class);
+        //浜鸿劯鏃堕挓鍑嗙‘鎬�
+        calculatorClasses.put(CalculationStrategyConstants.Face_ClockAccuracy, FaceClockAccuracyCalculation.class);
+        //浜鸿劯鐩綍涓�鑷�
+        calculatorClasses.put(CalculationStrategyConstants.Face_DirectConsistent, FaceConsistentCalculation.class);
+
+        //娉ㄥ唽鐜囥�佹。妗堣�冩牳姣�
+        calculatorClasses.put(CalculationStrategyConstants.Video_MonitorRegis_ArchiveRate,MonitorRegistrationCalculation.class);
+        //涓�鏈轰竴妗e悎鏍肩巼
+        calculatorClasses.put(CalculationStrategyConstants.Video_MonitorQualify, MonitorQualifyCalculation.class);
+        //瑙嗛鐐逛綅鍦ㄧ嚎鐜�
+        calculatorClasses.put(CalculationStrategyConstants.Video_SiteOnline, VideoOnlineCalculation.class);
+        //瑙嗛褰曞儚鍙敤鐜�
+        calculatorClasses.put(CalculationStrategyConstants.Video_Usability, VideoUsabilityCalculation.class);
+        //骞冲彴鍦ㄧ嚎鐜�
+        calculatorClasses.put(CalculationStrategyConstants.Video_PlatformOnline,PlatformOnlineCalculation.class);
+        //Osd鍑嗙‘鐜囧拰鏃堕棿鏍囨敞鍑嗙‘鐜�
+        calculatorClasses.put(CalculationStrategyConstants.Video_OsdTime,VideoOsdCalculation.class);
     }
 
     public static CalculationStrategy getCalculator(String indexName) {
-        return calculators.get(indexName);
+        Class<? extends CalculationStrategy> clazz = calculatorClasses.get(indexName);
+        if (clazz != null) {
+            return beanFactory.getBean(clazz);
+        }
+        return null;
+    }
+
+    @Override
+    public void setBeanFactory(BeanFactory beanFactory) throws BeansException {
+        IndexCalculationFactory.beanFactory = beanFactory;
     }
 }

--
Gitblit v1.8.0