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