From 3b0516a2959e25576e4f3fda697a3b025d06c8c9 Mon Sep 17 00:00:00 2001 From: zxl <763096477@qq.com> Date: 星期二, 24 六月 2025 14:09:07 +0800 Subject: [PATCH] 每日录像可用指标添加日志,修改大屏为查看当前月平均 --- ycl-server/src/main/java/com/ycl/factory/IndexCalculationFactory.java | 75 +++++++++++++++++++++++++++++++++---- 1 files changed, 66 insertions(+), 9 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 faa06c8..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,22 +1,79 @@ package com.ycl.factory; -import com.ycl.calculate.CalculationStrategy; -import com.ycl.calculate.CarSiteOnlineCalculation; -import com.ycl.calculate.FaceSiteOnlineCalculation; +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 CarSiteOnlineCalculation()); - calculators.put(CalculationStrategyConstants.Face_SiteOnline_ViewStability, new FaceSiteOnlineCalculation()); + //杞﹁締鐐逛綅鍦ㄧ嚎 + 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