From aabe122f6184bf2918b51375065b6e09f23f75c4 Mon Sep 17 00:00:00 2001 From: fuliqi <fuliqi@qq.com> Date: 星期二, 06 八月 2024 15:59:00 +0800 Subject: [PATCH] 抓拍系统配置区分车辆人脸 --- ycl-server/src/main/java/com/ycl/calculate/FaceInFoAccuracyCalculation.java | 49 ++++++++++++++++++------------------------------- 1 files changed, 18 insertions(+), 31 deletions(-) diff --git a/ycl-server/src/main/java/com/ycl/calculate/FaceInFoAccuracyCalculation.java b/ycl-server/src/main/java/com/ycl/calculate/FaceInFoAccuracyCalculation.java index 3eef548..ce028fc 100644 --- a/ycl-server/src/main/java/com/ycl/calculate/FaceInFoAccuracyCalculation.java +++ b/ycl-server/src/main/java/com/ycl/calculate/FaceInFoAccuracyCalculation.java @@ -1,9 +1,12 @@ 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.CheckIndexFace; import com.ycl.platform.domain.entity.TMonitor; +import com.ycl.platform.domain.result.HK.FaceDeviceSamplingResult; import com.ycl.platform.domain.result.HK.MonitoringDetailResult; +import com.ycl.platform.domain.vo.TMonitorVO; import com.ycl.platform.mapper.CheckIndexFaceMapper; import com.ycl.platform.mapper.TMonitorMapper; import com.ycl.platform.service.ICheckIndexFaceService; @@ -23,6 +26,7 @@ /** * 浜鸿劯鍗″彛淇℃伅閲囬泦鍑嗙‘鐜� 璁惧缂栫爜銆佽鏀垮尯鍒掍唬鐮併�佸畨瑁呬綅缃�佸潗鏍囩粡绾害淇℃伅瀹屾暣鍑嗙‘ + * 閲囬泦璁惧灞炴�х洃娴嬫帴鍙� * 鑾峰彇鍒嗙渷鍘呫�佸尯鍩熺殑map<k,v> k涓篸eptId鎴栬�匬rovince_deptId * 鏇存柊鎴栨柊澧� */ @@ -32,10 +36,6 @@ private CheckIndexFaceMapper checkIndexFaceMapper; @Autowired private ICheckIndexFaceService checkIndexFaceService; - @Autowired - private SysConfigMapper sysConfigMapper; - @Autowired - private ITMonitorService monitorService; @Autowired private TMonitorMapper monitorMapper; @@ -51,16 +51,14 @@ return; } //杩斿洖浠ュ浗鏍囩爜涓簁ey鐨勮澶噈ap - //TODO锛歮onitor鍘绘帀浜哾eptId - Map<String, TMonitor> monitorMap = monitorService.list(new QueryWrapper<TMonitor>() - .in("serial_number", list.stream().map(MonitoringDetailResult::getExternalIndexCode).collect(Collectors.toList()))) - .stream().collect(Collectors.toMap(TMonitor::getSerialNumber, Function.identity())); + Map<String, TMonitorVO> monitorMap = monitorMapper.selectListByIds(list.stream().map(MonitoringDetailResult::getExternalIndexCode).collect(Collectors.toList())) + .stream().collect(Collectors.toMap(TMonitorVO::getSerialNumber, Function.identity())); //鑾峰彇鐪佸巺鍥芥爣鐮侀泦鍚� List<String> provinceIds = getProvince(); Map<String, AreaStats> areaStatsMap = new HashMap<>(); for (MonitoringDetailResult result : list) { - TMonitor monitor = monitorMap.get(result.getExternalIndexCode()); + TMonitorVO monitor = monitorMap.get(result.getExternalIndexCode()); if (monitor == null) continue; String deptId = monitor.getDeptId().toString(); @@ -80,7 +78,9 @@ areaStatsMap.forEach((deptId, stats) -> { if (stats.totalSites > 0) { CheckIndexFace checkIndexFace = createOrUpdateCheckIndexFace(deptId, stats, checkIndexFaceList); - checkIndexFaces.add(checkIndexFace); + if (checkIndexFace != null) { + checkIndexFaces.add(checkIndexFace); + } } }); @@ -101,31 +101,18 @@ } /** - * 杞﹁締淇℃伅閲囬泦姝g‘鐜� + * 浜鸿劯淇℃伅閲囬泦姝g‘鐜� */ private CheckIndexFace createOrUpdateCheckIndexFace(String key, AreaStats stats, List<CheckIndexFace> checkIndexFaceList) { - CheckIndexFace checkIndexFace; - - // 妫�鏌ユ槸鍚﹀凡瀛樺湪浠婃棩鏁版嵁 - Optional<CheckIndexFace> existingFace = checkIndexFaceList.stream() - .filter(car -> key.equals(car.getDeptId().toString()) && - (key.startsWith("Province_") ? CheckConstants.Examine_Tag_City.equals(car.getExamineTag()) - : CheckConstants.Examine_Tag_County.equals(car.getExamineTag()))) - .findFirst(); - - if (existingFace.isPresent()) { - checkIndexFace = existingFace.get(); - } else { - checkIndexFace = new CheckIndexFace(); - checkIndexFace.setDeptId(key.startsWith("Province_") ? Long.parseLong(key.split("_")[1]) : Long.parseLong(key)); - checkIndexFace.setExamineTag(key.startsWith("Province_") ? CheckConstants.Examine_Tag_City : CheckConstants.Examine_Tag_County); - checkIndexFace.setCreateTime(new Date()); + CheckIndexFace checkIndexFace = getCheckIndex(key, checkIndexFaceList, CheckIndexFace.class); + if (checkIndexFace == null) { + return null; } //璋冪敤璁$畻鏂规硶 - Map<String, Object> siteOnlineParam = new HashMap<>(); - siteOnlineParam.put("totalSites", stats.totalSites); - siteOnlineParam.put("qualifySite", stats.qualifySite); - BigDecimal infoAccuracy = infoAccuracy(siteOnlineParam); + Map<String, Object> param = new HashMap<>(); + param.put("totalSites", stats.totalSites); + param.put("qualifySite", stats.qualifySite); + BigDecimal infoAccuracy = infoAccuracy(param); checkIndexFace.setFaceInformationCollectionAccuracy(infoAccuracy); return checkIndexFace; } -- Gitblit v1.8.0