From d4f9f1fe0d3047c2562307c2dbf5ebd77d71570d Mon Sep 17 00:00:00 2001 From: Jerry Yan <792602257@qq.com> Date: Fri, 26 Sep 2025 16:20:31 +0800 Subject: [PATCH] =?UTF-8?q?feat(face):=E4=BC=98=E5=8C=96=E8=A7=86=E9=A2=91?= =?UTF-8?q?=E9=87=8D=E5=88=87=E4=BB=BB=E5=8A=A1=E7=9A=84=E6=A0=B7=E6=9C=AC?= =?UTF-8?q?=E9=80=89=E6=8B=A9=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 根据设备配置限制视频样本数量 - 实现按设备分组并应用数量限制- 更新视频重切任务中的样本ID列表 - 保留原有照片与视频数量比较逻辑 --- .../com/ycwl/basic/service/pc/impl/FaceServiceImpl.java | 2 ++ .../basic/service/task/impl/TaskFaceServiceImpl.java | 1 + .../basic/service/task/impl/TaskTaskServiceImpl.java | 9 +++++++-- 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/ycwl/basic/service/pc/impl/FaceServiceImpl.java b/src/main/java/com/ycwl/basic/service/pc/impl/FaceServiceImpl.java index f164642f..a4023f88 100644 --- a/src/main/java/com/ycwl/basic/service/pc/impl/FaceServiceImpl.java +++ b/src/main/java/com/ycwl/basic/service/pc/impl/FaceServiceImpl.java @@ -72,6 +72,7 @@ import java.io.File; import java.math.BigDecimal; import java.util.ArrayList; import java.util.Collections; +import java.util.Comparator; import java.util.Date; import java.util.LinkedHashSet; import java.util.List; @@ -633,6 +634,7 @@ public class FaceServiceImpl implements FaceService { return; } List faceSampleIds = faceSampleList.stream() + .sorted(Comparator.comparing(FaceSampleEntity::getCreateAt).reversed()) .collect(Collectors.groupingBy(FaceSampleEntity::getDeviceId)) .entrySet() .stream().flatMap(entry -> { 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 e9412974..e1241f6c 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 @@ -166,6 +166,7 @@ public class TaskFaceServiceImpl implements TaskFaceService { memberRelationRepository.clearSCacheByFace(faceId); List faceSampleList = faceRepository.getFaceSampleList(faceId); List faceSampleIds = faceSampleList.stream() + .sorted(Comparator.comparing(FaceSampleEntity::getCreateAt).reversed()) .collect(Collectors.groupingBy(FaceSampleEntity::getDeviceId)) .entrySet() .stream().flatMap(entry -> { diff --git a/src/main/java/com/ycwl/basic/service/task/impl/TaskTaskServiceImpl.java b/src/main/java/com/ycwl/basic/service/task/impl/TaskTaskServiceImpl.java index 49f1c353..1df3970e 100644 --- a/src/main/java/com/ycwl/basic/service/task/impl/TaskTaskServiceImpl.java +++ b/src/main/java/com/ycwl/basic/service/task/impl/TaskTaskServiceImpl.java @@ -69,6 +69,7 @@ import org.springframework.stereotype.Service; import java.util.ArrayList; import java.util.Arrays; +import java.util.Comparator; import java.util.Date; import java.util.HashMap; import java.util.List; @@ -269,7 +270,9 @@ public class TaskTaskServiceImpl implements TaskService { log.info("faceId:{} faceSampleList is empty", faceId); return; } - List faceSampleIds = faceSampleList.stream().collect(Collectors.groupingBy(FaceSampleEntity::getDeviceId)).entrySet() + List faceSampleIds = faceSampleList.stream() + .sorted(Comparator.comparing(FaceSampleEntity::getCreateAt).reversed()) + .collect(Collectors.groupingBy(FaceSampleEntity::getDeviceId)).entrySet() .stream().flatMap(entry -> { DeviceConfigManager configManager = deviceRepository.getDeviceConfigManager(entry.getKey()); if (configManager.getInteger("limit_video", 0) > 0) { @@ -344,7 +347,9 @@ public class TaskTaskServiceImpl implements TaskService { } } - List faceSampleIds = faceSampleList.stream().collect(Collectors.groupingBy(FaceSampleEntity::getDeviceId)).entrySet() + List faceSampleIds = faceSampleList.stream() + .sorted(Comparator.comparing(FaceSampleEntity::getCreateAt).reversed()) + .collect(Collectors.groupingBy(FaceSampleEntity::getDeviceId)).entrySet() .stream().flatMap(entry -> { DeviceConfigManager configManager = deviceRepository.getDeviceConfigManager(entry.getKey()); if (configManager.getInteger("limit_video", 0) > 0) {