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;