You've already forked FrameTour-BE
feat(task): 添加视频数量限制功能
- 在处理人脸样本时,根据设备配置限制视频数量 - 新增 DeviceConfigManager 的使用,用于获取设备配置信息 - 使用流式处理对人脸样本进行分组和限制数量
This commit is contained in:
@@ -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<Long> faceSampleIds = faceSampleList.stream().map(FaceSampleEntity::getId).collect(Collectors.toList());
|
||||
List<Long> 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<SourceEntity> sourceList = sourceMapper.listVideoByScenicFaceRelation(face.getScenicId(), faceId);
|
||||
VideoPieceGetter.Task task = new VideoPieceGetter.Task();
|
||||
task.faceId = faceId;
|
||||
|
Reference in New Issue
Block a user