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/CarDeviceSampleCalculation.java | 53 +++++++++++++++++++++++++++++------------------------ 1 files changed, 29 insertions(+), 24 deletions(-) diff --git a/ycl-server/src/main/java/com/ycl/calculate/CarDeviceSampleCalculation.java b/ycl-server/src/main/java/com/ycl/calculate/CarDeviceSampleCalculation.java index 7222299..f4b1ed6 100644 --- a/ycl-server/src/main/java/com/ycl/calculate/CarDeviceSampleCalculation.java +++ b/ycl-server/src/main/java/com/ycl/calculate/CarDeviceSampleCalculation.java @@ -1,13 +1,13 @@ package com.ycl.calculate; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.ycl.platform.domain.entity.CheckIndexCar; -import com.ycl.platform.domain.entity.TMonitor; -import com.ycl.platform.domain.result.HK.DataIntegrityMonitoringResult; import com.ycl.platform.domain.result.HK.VehicleDeviceSamplingResult; +import com.ycl.platform.domain.vo.TMonitorVO; import com.ycl.platform.mapper.CheckIndexCarMapper; +import com.ycl.platform.mapper.TMonitorMapper; import com.ycl.platform.service.ICheckIndexCarService; -import com.ycl.platform.service.ITMonitorService; +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; @@ -23,17 +23,18 @@ import java.util.stream.Collectors; /** - * 璁$畻杞﹁締灞炴�ц瘑鍒噯纭巼銆乽rl鍙敤鎬с�佸ぇ鍥惧彲鐢ㄦ�� + * 璁$畻杞﹁締鎶撴媿鏁版嵁鍑嗙‘鎬с�乽rl鍙敤鎬с�佸ぇ鍥惧彲鐢ㄦ�� * 杞﹁締鏁版嵁鎶芥鎺ュ彛 * 鑾峰彇鍒嗙渷鍘呫�佸尯鍩熺殑map<k,v> k涓篸eptId鎴栬�匬rovince_deptId * 鏇存柊鎴栨柊澧� */ @Component +@Slf4j public class CarDeviceSampleCalculation extends IndexCalculationServe implements CalculationStrategy<VehicleDeviceSamplingResult> { @Autowired private CheckIndexCarMapper checkIndexCarMapper; @Autowired - private ITMonitorService monitorService; + private TMonitorMapper monitorMapper; @Autowired private ICheckIndexCarService checkIndexCarService; @@ -54,27 +55,26 @@ @Override public void calculate(List<VehicleDeviceSamplingResult> list) { if (CollectionUtils.isEmpty(list)) { + log.info("鏁版嵁涓虹┖"); return; } //杩斿洖浠ュ浗鏍囩爜涓簁ey鐨勮澶噈ap - //TODO锛歮onitor鍘绘帀浜哾eptId - Map<String, TMonitor> monitorMap = monitorService.list(new QueryWrapper<TMonitor>() - .in("serial_number", list.stream().map(VehicleDeviceSamplingResult::getExternalIndexCode).collect(Collectors.toList()))) - .stream().collect(Collectors.toMap(TMonitor::getSerialNumber, Function.identity())); + Map<String, TMonitorVO> monitorMap = monitorMapper.selectListByIds(list.stream().map(VehicleDeviceSamplingResult::getExternalIndexCode).collect(Collectors.toList())) + .stream().collect(Collectors.toMap(TMonitorVO::getSerialNumber, Function.identity())); //鑾峰彇鐪佸巺鍥芥爣鐮侀泦鍚� List<String> provinceIds = getProvince(); //鑾峰彇閲嶇偣鐐逛綅闆嗗悎 List<String> importantIds = getImportant(); Map<String, AreaStats> areaStatsMap = new HashMap<>(); for (VehicleDeviceSamplingResult result : list) { - TMonitor monitor = monitorMap.get(result.getExternalIndexCode()); + TMonitorVO monitor = monitorMap.get(result.getExternalIndexCode()); if (monitor == null) continue; String deptId = monitor.getDeptId().toString(); updateAreaStats(areaStatsMap, deptId, result, importantIds); // 澶勭悊鐪佸巺鏁版嵁 if (!CollectionUtils.isEmpty(provinceIds) && provinceIds.contains(monitor.getSerialNumber())) { - String provinceKey = "Province_" + deptId; + String provinceKey = ApiConstants.Province + deptId; updateAreaStats(areaStatsMap, provinceKey, result, importantIds); } } @@ -108,7 +108,7 @@ stats.accuracySites++; } //閲嶇偣鐐逛綅涓哄叚椤瑰睘鎬� - if (importantIds.contains(key)) { + if (importantIds.contains(result.getExternalIndexCode())) { stats.importantTotalSites++; if (vehDiff.getImportantConPercent() >= 0.9) { stats.importantAccuracySites++; @@ -118,25 +118,28 @@ if (bigUseful.getBigUsefulPercent() >= 0.9) { stats.picUsabilitySites++; } - //鍥剧墖璁块棶姝e父閲� = 鎶芥閲�-寮傚父閲� - BigDecimal picNormalCount = new BigDecimal(bigUseful.getSampleCount() - bigUseful.getBigPicExpCount()); - //鍥剧墖鎶芥閲� - BigDecimal sampleCount = new BigDecimal(bigUseful.getSampleCount()); - //鍥剧墖璁块棶鐜�>=90% 瑙嗕负鍚堟牸 - if (picNormalCount.divide(sampleCount, 4, RoundingMode.HALF_UP).compareTo(new BigDecimal("0.9")) >= 0) { - stats.urlUsabilitySites++; + if (bigUseful.getSampleCount() != 0) { + //鍥剧墖璁块棶姝e父閲� = 鎶芥閲�-寮傚父閲� + BigDecimal picNormalCount = new BigDecimal(bigUseful.getSampleCount() - bigUseful.getBigPicExpCount()); + //鍥剧墖鎶芥閲� + BigDecimal sampleCount = new BigDecimal(bigUseful.getSampleCount()); + //鍥剧墖璁块棶鐜�>=90% 瑙嗕负鍚堟牸 + if (picNormalCount.divide(sampleCount, 4, RoundingMode.HALF_UP).compareTo(new BigDecimal("0.9")) >= 0) { + stats.urlUsabilitySites++; + } } } /** - * 杞﹁締淇℃伅閲囬泦姝g‘鐜囥�乽rl鍙敤鎬с�佸ぇ鍥惧彲鐢ㄦ�� + * 杞﹁締鎶撴媿鏁版嵁鍑嗙‘鎬с�乽rl鍙敤鎬с�佸ぇ鍥惧彲鐢ㄦ�� */ private CheckIndexCar createOrUpdateCheckIndexCar(String key, AreaStats stats, List<CheckIndexCar> checkIndexCarList) { CheckIndexCar checkIndexCar = getCheckIndex(key, checkIndexCarList, CheckIndexCar.class); if (checkIndexCar == null) { return null; } - //璋冪敤淇℃伅閲囬泦姝g‘鐜囪绠楁柟娉� + log.info("key:{},杞﹁締鎶撴媿鏁版嵁鍑嗙‘鎬э細totalSites锛歿}锛宨mportantTotalSites:{}锛宎ccuracySites:{}锛宨mportantAccuracySites:{}",key,stats.totalSites,stats.importantTotalSites,stats.accuracySites,stats.importantAccuracySites); + //璋冪敤杞﹁締鎶撴媿鏁版嵁鍑嗙‘鎬ц绠楁柟娉� Map<String, Object> accuracyParam = new HashMap<>(); accuracyParam.put("totalSites", stats.totalSites); accuracyParam.put("importantTotalSites", stats.importantTotalSites); @@ -144,16 +147,18 @@ accuracyParam.put("importantAccuracySites", stats.importantAccuracySites); BigDecimal dataAccuracy = dataAccuracy(accuracyParam); checkIndexCar.setVehicleCaptureAccuracy(dataAccuracy); + log.info("url鍙敤鎬�: totalSites:{},urlQualifySites:{}",stats.totalSites,stats.urlUsabilitySites); //璋冪敤url鍙敤鎬ц绠楁柟娉� Map<String, Object> urlParam = new HashMap<>(); urlParam.put("totalSites", stats.totalSites); urlParam.put("urlQualifySites", stats.urlUsabilitySites); BigDecimal urlUsability = urlUsability(urlParam); checkIndexCar.setVehicleUrlAvailability(urlUsability); + log.info("澶у浘鍙敤鎬�: totalSites:{},picUsabilitySites:{}",stats.totalSites,stats.picUsabilitySites); //璋冪敤澶у浘鍙敤鎬ц绠楁柟娉� Map<String, Object> usabilityParam = new HashMap<>(); - urlParam.put("totalSites", stats.totalSites); - urlParam.put("picUsabilitySites", stats.picUsabilitySites); + usabilityParam.put("totalSites", stats.totalSites); + usabilityParam.put("picUsabilitySites", stats.picUsabilitySites); BigDecimal picUsability = picUsability(usabilityParam); checkIndexCar.setVehiclePictureAvailability(picUsability); return checkIndexCar; -- Gitblit v1.8.0