From 46c0be4ad0028db3d9a41e29d9a5b46ab46056a0 Mon Sep 17 00:00:00 2001
From: fuliqi <fuliqi@qq.com>
Date: 星期四, 05 十二月 2024 18:17:46 +0800
Subject: [PATCH] 省厅标签拆分2
---
ycl-server/src/main/java/com/ycl/factory/IndexCalculationFactory.java | 70 +++++++++++++++++++++++------------
1 files changed, 46 insertions(+), 24 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 7c5c7ea..42b764a 100644
--- a/ycl-server/src/main/java/com/ycl/factory/IndexCalculationFactory.java
+++ b/ycl-server/src/main/java/com/ycl/factory/IndexCalculationFactory.java
@@ -3,55 +3,77 @@
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(CalculationStrategyConstants.Car_SiteOnline_ViewStability, new CarSnapshopDataCalculation());
+ //杞﹁締鐐逛綅鍦ㄧ嚎
+ calculatorClasses.put(CalculationStrategyConstants.Car_SiteOnline, CarOnlineCalculation.class);
+ //杞﹁締瑙嗗浘搴撳鎺ョǔ瀹氭��
+ calculatorClasses.put(CalculationStrategyConstants.Car_ViewStability, CarSnapshopDataCalculation.class);
//杞﹁締淇℃伅鍑嗙‘鐜�
- calculators.put(CalculationStrategyConstants.Car_InfoAccuracy, new CarInFoAccuracyCalculation());
+ calculatorClasses.put(CalculationStrategyConstants.Car_InfoAccuracy, CarInFoAccuracyCalculation.class);
//杞﹁締鎶撴媿鏁版嵁涓婁紶寤惰繜
- calculators.put(CalculationStrategyConstants.Car_SnapshotDelay, new CarSnapshotDelayCalculation());
+ calculatorClasses.put(CalculationStrategyConstants.Car_SnapshotDelay, CarSnapshotDelayCalculation.class);
//杞﹁締鏁版嵁鎶撴媿瀹屾暣鎬�
- calculators.put(CalculationStrategyConstants.Car_DataIntegrity, new CarDataIntegrityCalculation());
+ calculatorClasses.put(CalculationStrategyConstants.Car_DataIntegrity, CarDataIntegrityCalculation.class);
//杞﹁締鏁版嵁鎶撴媿鍑嗙‘鎬с�乽rl銆佸ぇ鍥惧彲鐢�
- calculators.put(CalculationStrategyConstants.Car_DataAccuracy_Url_PicUsability, new CarDeviceSampleCalculation());
+ calculatorClasses.put(CalculationStrategyConstants.Car_DataAccuracy_PicUsability, CarDeviceSampleCalculation.class);
+ //杞﹁締url
+ calculatorClasses.put(CalculationStrategyConstants.Car_Url, CarUrlCalculation.class);
//杞﹁締鏃堕挓鍑嗙‘鎬�
- calculators.put(CalculationStrategyConstants.Car_ClockAccuracy, new CarClockAccuracyCalculation());
+ calculatorClasses.put(CalculationStrategyConstants.Car_ClockAccuracy, CarClockAccuracyCalculation.class);
//杞﹁締鐩綍涓�鑷�
- calculators.put(CalculationStrategyConstants.Car_DirectConsistent, new CarConsistentCalculation());
+ calculatorClasses.put(CalculationStrategyConstants.Car_DirectConsistent, CarConsistentCalculation.class);
- //浜鸿劯鐐逛綅鍦ㄧ嚎銆佽鍥惧簱瀵规帴绋冲畾
- calculators.put(CalculationStrategyConstants.Face_SiteOnline_ViewStability, new FaceSnapshotDataCalculation());
+ //浜鸿劯鐐逛綅鍦ㄧ嚎
+ calculatorClasses.put(CalculationStrategyConstants.Face_SiteOnline, FaceOnlineCalculation.class);
+ //浜鸿劯瑙嗗浘搴撳鎺ョǔ瀹�
+ calculatorClasses.put(CalculationStrategyConstants.Face_ViewStability, FaceSnapshotDataCalculation.class);
//浜鸿劯淇℃伅鍑嗙‘鐜�
- calculators.put(CalculationStrategyConstants.Face_InfoAccuracy, new FaceInFoAccuracyCalculation());
+ calculatorClasses.put(CalculationStrategyConstants.Face_InfoAccuracy, FaceInFoAccuracyCalculation.class);
//浜鸿劯鎶撴媿鏁版嵁寤惰繜
- calculators.put(CalculationStrategyConstants.Face_SnapshotDelay, new FaceSnapshotDelayCalculation());
+ calculatorClasses.put(CalculationStrategyConstants.Face_SnapshotDelay, FaceSnapshotDelayCalculation.class);
//浜鸿劯鍥剧墖鍚堟牸銆佸ぇ鍥惧彲鐢�
- calculators.put(CalculationStrategyConstants.Face_DataAccuracy_PicUsability, new FaceDeviceSampleCalculation());
+ calculatorClasses.put(CalculationStrategyConstants.Face_DataAccuracy_PicUsability, FaceDeviceSampleCalculation.class);
//浜鸿劯鏃堕挓鍑嗙‘鎬�
- calculators.put(CalculationStrategyConstants.Face_ClockAccuracy, new FaceClockAccuracyCalculation());
+ calculatorClasses.put(CalculationStrategyConstants.Face_ClockAccuracy, FaceClockAccuracyCalculation.class);
//浜鸿劯鐩綍涓�鑷�
- calculators.put(CalculationStrategyConstants.Face_DirectConsistent, new FaceConsistentCalculation());
+ calculatorClasses.put(CalculationStrategyConstants.Face_DirectConsistent, FaceConsistentCalculation.class);
//涓�鏈轰竴妗f敞鍐岀巼銆佹。妗堣�冩牳姣�
- calculators.put(CalculationStrategyConstants.Video_MonitorRegis_ArchiveRate,new MonitorRegistrationCalculation())
+ calculatorClasses.put(CalculationStrategyConstants.Video_MonitorRegis_ArchiveRate,MonitorRegistrationCalculation.class);
//涓�鏈轰竴妗e悎鏍肩巼
- calculators.put(CalculationStrategyConstants.Video_MonitorQualify, new MonitorQualifyCalculation());
+ calculatorClasses.put(CalculationStrategyConstants.Video_MonitorQualify, MonitorQualifyCalculation.class);
//瑙嗛鐐逛綅鍦ㄧ嚎鐜�
- calculators.put(CalculationStrategyConstants.Video_SiteOnline, new VideoOnlineCalculation());
+ calculatorClasses.put(CalculationStrategyConstants.Video_SiteOnline, VideoOnlineCalculation.class);
//瑙嗛褰曞儚鍙敤鐜�
- calculators.put(CalculationStrategyConstants.Video_Usability, new VideoUsabilityCalculation());
+ calculatorClasses.put(CalculationStrategyConstants.Video_Usability, VideoUsabilityCalculation.class);
//骞冲彴鍦ㄧ嚎鐜�
- calculators.put(CalculationStrategyConstants.Video_PlatformOnline,new PlatformOnlineCalculation());
+ 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