From ad0888ccc7630330b2aa30747f51525bdfe2b6d1 Mon Sep 17 00:00:00 2001 From: Jerry Yan <792602257@qq.com> Date: Mon, 8 Sep 2025 21:11:20 +0800 Subject: [PATCH] =?UTF-8?q?feat(task):=20=E6=B7=BB=E5=8A=A0=E8=A7=86?= =?UTF-8?q?=E9=A2=91=E6=95=B0=E9=87=8F=E9=99=90=E5=88=B6=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在处理人脸样本时,根据设备配置限制视频数量 - 新增 DeviceConfigManager 的使用,用于获取设备配置信息 - 使用流式处理对人脸样本进行分组和限制数量 --- .../basic/service/task/impl/TaskTaskServiceImpl.java | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) 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 d030e9b..3e07afd 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 @@ -2,6 +2,7 @@ package com.ycwl.basic.service.task.impl; import cn.hutool.core.date.DateUtil; import cn.hutool.crypto.digest.MD5; +import com.ycwl.basic.integration.common.manager.DeviceConfigManager; import com.ycwl.basic.utils.JacksonUtil; import com.ycwl.basic.biz.OrderBiz; import com.ycwl.basic.biz.TaskStatusBiz; @@ -287,7 +288,15 @@ public class TaskTaskServiceImpl implements TaskService { } } - List faceSampleIds = faceSampleList.stream().map(FaceSampleEntity::getId).collect(Collectors.toList()); + List faceSampleIds = faceSampleList.stream().collect(Collectors.groupingBy(FaceSampleEntity::getDeviceId)).entrySet() + .stream().flatMap(entry -> { + DeviceConfigManager configManager = deviceRepository.getDeviceConfigManager(entry.getKey()); + if (configManager.getInteger("limit_video", 0) > 0) { + return entry.getValue().subList(0, Math.min(entry.getValue().size(), configManager.getInteger("limit_video", 0))).stream(); + } + return entry.getValue().stream(); + }).toList() + .stream().map(FaceSampleEntity::getId).collect(Collectors.toList()); List sourceList = sourceMapper.listVideoByScenicFaceRelation(face.getScenicId(), faceId); VideoPieceGetter.Task task = new VideoPieceGetter.Task(); task.faceId = faceId;