From 27bf1aad170bc78af274a596ce5c89caaa903ce3 Mon Sep 17 00:00:00 2001 From: fuliqi <fuliqi@qq.com> Date: 星期三, 04 九月 2024 03:34:45 +0800 Subject: [PATCH] 合同积分回显 --- ycl-server/src/main/java/com/ycl/calculate/VideoOsdCalculation.java | 76 +++++++++++-------------------------- 1 files changed, 23 insertions(+), 53 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 7369100..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,13 +1,13 @@ 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; import com.ycl.platform.service.ICheckIndexVideoService; import constant.ApiConstants; +import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.springframework.util.CollectionUtils; @@ -30,7 +30,8 @@ * 鏇存柊鎴栨柊澧� */ @Component -public class VideoOsdCalculation extends IndexCalculationServe implements CalculationStrategy<PyOsdResult> { +@Slf4j +public class VideoOsdCalculation extends IndexCalculationServe implements CalculationStrategy<OsdCheckResult> { @Autowired private CheckIndexVideoMapper checkIndexVideoMapper; @Autowired @@ -41,22 +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(); @@ -64,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; @@ -96,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++; @@ -120,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()); } /** @@ -151,29 +132,18 @@ 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<>(); - param.put("totalSites", stats.importantTotalSites); - param.put("osdAccuracySites", stats.importantOsdAccuracySites); + importantParam.put("totalSites", stats.importantTotalSites); + importantParam.put("osdAccuracySites", stats.importantOsdAccuracySites); BigDecimal imOsdAccuracy = osdAccuracy(importantParam); checkIndexVideo.setKeyAnnotationAccuracy(imOsdAccuracy); - //璋冪敤osd鏃堕棿鍑嗙‘鐜� - Map<String, Object> timeParam = new HashMap<>(); - param.put("totalSites", stats.totalSites); - param.put("timeAccuracySites", stats.timeAccuracySites); - BigDecimal osdTimeAccuracy = osdTimeAccuracy(timeParam); - checkIndexVideo.setTimingAccuracy(osdTimeAccuracy); //璋冪敤osd鏃堕棿鍑嗙‘鐜�,璁$畻閲嶇偣 Map<String, Object> importantTimeParam = new HashMap<>(); - param.put("totalSites", stats.importantTotalSites); - param.put("timeAccuracySites", stats.importantTimeAccuracySites); + importantTimeParam.put("totalSites", stats.importantTotalSites); + importantTimeParam.put("timeAccuracySites", stats.importantTimeAccuracySites); BigDecimal imOsdTimeAccuracy = osdTimeAccuracy(importantTimeParam); checkIndexVideo.setKeyTimingAccuracy(imOsdTimeAccuracy); return checkIndexVideo; -- Gitblit v1.8.0