From cd24a045bd9ee29505ddc9760d25f5d4037f4f0c Mon Sep 17 00:00:00 2001 From: fuliqi <fuliqi@qq.com> Date: 星期四, 05 九月 2024 21:55:28 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- ycl-server/src/main/java/com/ycl/calculate/VideoOsdCalculation.java | 65 ++++++++------------------------ 1 files changed, 16 insertions(+), 49 deletions(-) diff --git a/ycl-server/src/main/java/com/ycl/calculate/VideoOsdCalculation.java b/ycl-server/src/main/java/com/ycl/calculate/VideoOsdCalculation.java index 54ddecb..b5325f6 100644 --- a/ycl-server/src/main/java/com/ycl/calculate/VideoOsdCalculation.java +++ b/ycl-server/src/main/java/com/ycl/calculate/VideoOsdCalculation.java @@ -1,8 +1,7 @@ package com.ycl.calculate; import com.ycl.platform.domain.entity.CheckIndexVideo; -import com.ycl.platform.domain.result.UY.PyOsdResult; -import com.ycl.platform.domain.result.UY.VideoOnlineResult; +import com.ycl.platform.domain.result.UY.OsdCheckResult; import com.ycl.platform.domain.vo.TMonitorVO; import com.ycl.platform.mapper.CheckIndexVideoMapper; import com.ycl.platform.mapper.TMonitorMapper; @@ -32,7 +31,7 @@ */ @Component @Slf4j -public class VideoOsdCalculation extends IndexCalculationServe implements CalculationStrategy<PyOsdResult> { +public class VideoOsdCalculation extends IndexCalculationServe implements CalculationStrategy<OsdCheckResult> { @Autowired private CheckIndexVideoMapper checkIndexVideoMapper; @Autowired @@ -43,23 +42,20 @@ //鍖哄煙瑙嗛鍦ㄧ嚎鐜囩殑鍐呴儴绫� private static class AreaStats { int totalSites = 0; - int osdAccuracySites = 0; - int timeAccuracySites = 0; - int importantTotalSites = 0; int importantOsdAccuracySites = 0; int importantTimeAccuracySites = 0; } @Override - public void calculate(List<PyOsdResult> list) { + public void calculate(List<OsdCheckResult> list) { if (CollectionUtils.isEmpty(list)) { log.info("鏁版嵁涓虹┖"); return; } //鑾峰緱鍥芥爣鐮佷负key鐨勮澶噈ap - Map<String, TMonitorVO> monitorMap = monitorMapper.selectListByIds(list.stream().map(PyOsdResult::getDeviceNo).collect(Collectors.toList())) + Map<String, TMonitorVO> monitorMap = monitorMapper.selectListByIds(list.stream().map(OsdCheckResult::getDeviceNo).collect(Collectors.toList())) .stream().collect(Collectors.toMap(TMonitorVO::getSerialNumber, Function.identity())); //鑾峰彇鐪佸巺鍥芥爣鐮侀泦鍚� List<String> provinceIds = getProvince(); @@ -67,7 +63,7 @@ List<String> important = getImportant(); Map<String, AreaStats> areaStatsMap = new HashMap<>(); - for (PyOsdResult result : list) { + for (OsdCheckResult result : list) { TMonitorVO monitor = monitorMap.get(result.getDeviceNo()); if (monitor == null) continue; @@ -99,18 +95,11 @@ /** * 绱osd鍚堟牸鏁般�佹椂闂村亸宸悎鏍兼暟 */ - private void updateAreaStats(Map<String, AreaStats> areaStatsMap, String key, PyOsdResult result, List<String> important) { + private void updateAreaStats(Map<String, AreaStats> areaStatsMap, String key, OsdCheckResult result, List<String> important) { //杩斿洖瀵硅薄鐨勫紩鐢紝濡傛灉涓嶅瓨鍦ㄤ細鏀惧叆鏂扮殑key,value AreaStats stats = areaStatsMap.computeIfAbsent(key, k -> new AreaStats()); stats.totalSites++; - //鏍¢獙osd - if (checkOsd(result)) { - stats.osdAccuracySites++; - } - //鏍¢獙鏃堕棿鍋忓樊 - if (checkTime(result)) { - stats.timeAccuracySites++; - } + //閲嶇偣鐐逛綅 if (important.contains(result.getDeviceNo())) { stats.importantTotalSites++; @@ -123,27 +112,16 @@ } } - private Boolean checkOsd(PyOsdResult result) { - return ApiConstants.PY_OSD_Correct.equals(result.getOsd1Province()) && - ApiConstants.PY_OSD_Correct.equals(result.getOsd1City()) && - ApiConstants.PY_OSD_Correct.equals(result.getOsd1Part()) && - ApiConstants.PY_OSD_Correct.equals(result.getOsd1LB()) && - ApiConstants.PY_OSD_Correct.equals(result.getOsd1OSD()) && - ApiConstants.PY_OSD_Correct.equals(result.getOsd1TimeFormat()) && - ApiConstants.PY_OSD_Correct.equals(result.getOsd1OsdSet()); + private Boolean checkOsd(OsdCheckResult result) { + return ApiConstants.OSD_Correct.equals(result.getOsdTimeCorrect()) && + ApiConstants.OSD_Correct.equals(result.getOsdNameCorrect()) && + ApiConstants.OSD_Correct.equals(result.getOsdProvinceCorrect()) && + ApiConstants.OSD_Correct.equals(result.getOsdCityCorrect()) && + ApiConstants.OSD_Correct.equals(result.getOsdPartCorrect()); } - private Boolean checkTime(PyOsdResult result) { - DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); - // 瑙f瀽鏃堕棿瀛楃涓� - LocalDateTime checkTime = LocalDateTime.parse(result.getCheckTime(), formatter); - LocalDateTime osdTime = LocalDateTime.parse(result.getSetTime(), formatter); - // 璁$畻鏃堕棿宸紙Duration锛� - Duration duration = Duration.between(checkTime, osdTime); - // 灏嗘椂闂村樊杞崲涓虹 - long secondsBetween = duration.getSeconds(); - // 鍒ゆ柇鏃堕棿宸槸鍚﹀湪60绉掍互鍐� - return secondsBetween <= 60; + private Boolean checkTime(OsdCheckResult result) { + return ApiConstants.OSD_Correct.equals(result.getOsdTimeCorrect()); } /** @@ -154,12 +132,7 @@ if (checkIndexVideo == null) { return null; } - //璋冪敤osd鏍囨敞璁$畻鏂规硶 - Map<String, Object> param = new HashMap<>(); - param.put("totalSites", stats.totalSites); - param.put("osdAccuracySites", stats.osdAccuracySites); - BigDecimal osdAccuracy = osdAccuracy(param); - checkIndexVideo.setAnnotationAccuracy(osdAccuracy); + //璋冪敤osd鏍囨敞璁$畻鏂规硶 璁$畻閲嶇偣osd鏍囨敞 Map<String, Object> importantParam = new HashMap<>(); importantParam.put("totalSites", stats.importantTotalSites); @@ -167,12 +140,6 @@ BigDecimal imOsdAccuracy = osdAccuracy(importantParam); checkIndexVideo.setKeyAnnotationAccuracy(imOsdAccuracy); - //璋冪敤osd鏃堕棿鍑嗙‘鐜� - Map<String, Object> timeParam = new HashMap<>(); - timeParam.put("totalSites", stats.totalSites); - timeParam.put("timeAccuracySites", stats.timeAccuracySites); - BigDecimal osdTimeAccuracy = osdTimeAccuracy(timeParam); - checkIndexVideo.setTimingAccuracy(osdTimeAccuracy); //璋冪敤osd鏃堕棿鍑嗙‘鐜�,璁$畻閲嶇偣 Map<String, Object> importantTimeParam = new HashMap<>(); importantTimeParam.put("totalSites", stats.importantTotalSites); -- Gitblit v1.8.0