From 48eff52a47822a871cf15e58c1997fb47006b9e0 Mon Sep 17 00:00:00 2001 From: Jerry Yan <792602257@qq.com> Date: Mon, 8 Sep 2025 20:51:50 +0800 Subject: [PATCH] =?UTF-8?q?refactor(task):=20=E4=BC=98=E5=8C=96=E4=BA=BA?= =?UTF-8?q?=E8=84=B8=E8=AF=86=E5=88=AB=E6=97=B6=E9=97=B4=E8=8C=83=E5=9B=B4?= =?UTF-8?q?=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 修改了景区场景下的人脸识别时间范围计算方式 - 从 acceptFaceSampleIds 中筛选出在指定时间范围内的样本 - 优化了代码结构,提高了可读性和可维护性 --- .../service/task/impl/TaskFaceServiceImpl.java | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/ycwl/basic/service/task/impl/TaskFaceServiceImpl.java b/src/main/java/com/ycwl/basic/service/task/impl/TaskFaceServiceImpl.java index 7f11b91..fdc1f28 100644 --- a/src/main/java/com/ycwl/basic/service/task/impl/TaskFaceServiceImpl.java +++ b/src/main/java/com/ycwl/basic/service/task/impl/TaskFaceServiceImpl.java @@ -45,6 +45,7 @@ import com.aliyuncs.IAcsClient; import java.math.BigDecimal; import java.util.ArrayList; import java.util.Collections; +import java.util.Comparator; import java.util.Date; import java.util.List; import java.util.Map; @@ -222,13 +223,18 @@ public class TaskFaceServiceImpl implements TaskFaceService { if (StringUtils.isNumeric(dbName)) { // 景区 allFaceSampleList = faceSampleMapper.listByIds(allFaceSampleIds); if (!acceptFaceSampleIds.isEmpty()) { - Long firstFaceSampleId = acceptFaceSampleIds.getFirst(); - Optional firstFaceSample = allFaceSampleList.stream().filter(faceSample -> faceSample.getId().equals(firstFaceSampleId)).findAny(); + List finalAcceptFaceSampleIds = acceptFaceSampleIds; + Optional firstFaceSample = allFaceSampleList.stream() + .filter(faceSample -> finalAcceptFaceSampleIds.contains(faceSample.getId())) + .sorted(Comparator.comparing(FaceSampleEntity::getCreateAt).reversed()) + .findAny(); +// Long firstFaceSampleId = acceptFaceSampleIds.getFirst(); +// Optional firstFaceSample = allFaceSampleList.stream().filter(faceSample -> faceSample.getId().equals(firstFaceSampleId)).findAny(); if (firstFaceSample.isPresent()) { if (tourMinutes > 0) { List acceptFaceSampleList = faceSampleMapper.listByIds(acceptFaceSampleIds); - Date startDate = DateUtil.offsetMinute(firstFaceSample.get().getCreateAt(), -tourMinutes/2); - Date endDate = DateUtil.offsetMinute(firstFaceSample.get().getCreateAt(), tourMinutes/2); + Date startDate = DateUtil.offsetMinute(firstFaceSample.get().getCreateAt(), -tourMinutes); + Date endDate = DateUtil.offsetMinute(firstFaceSample.get().getCreateAt(), 0); acceptFaceSampleIds = acceptFaceSampleList.stream() .filter(faceSample -> faceSample.getCreateAt().after(startDate) && faceSample.getCreateAt().before(endDate)) .map(FaceSampleEntity::getId) @@ -238,7 +244,7 @@ public class TaskFaceServiceImpl implements TaskFaceService { log.info("时间范围逻辑:景区未限制"); } } else { - log.info("时间范围逻辑:最高匹配ID:{},未找到", firstFaceSampleId); + log.info("时间范围逻辑:最高匹配ID:{},未找到", "--"); } } }