模板支持相同机位

This commit is contained in:
2025-04-30 18:29:14 +08:00
parent c45dffa0a0
commit 00f38c949c
6 changed files with 77 additions and 76 deletions

View File

@@ -55,6 +55,7 @@ import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.stream.Collectors;
/**
@@ -268,18 +269,22 @@ public class GoodsServiceImpl implements GoodsService {
}
TaskEntity task = videoTaskRepository.getTaskById(videoRespVO.getTaskId());
JSONObject paramJson = JSON.parseObject(task.getTaskParams());
long deviceCount;
AtomicInteger deviceCount = new AtomicInteger();
goodsDetailVO.setShotTime(taskTaskService.getTaskShotDate(task.getId()));
if (paramJson == null) {
deviceCount = 1;
deviceCount.set(1);
} else {
List<String> templatePlaceholder = templateRepository.getTemplatePlaceholder(task.getTemplateId());
deviceCount = paramJson.keySet().stream()
.filter(StringUtils::isNumeric)
.filter(templatePlaceholder::contains)
.count();
paramJson.entrySet().stream()
.filter(entry -> StringUtils.isNumeric(entry.getKey()))
.forEach(entry -> {
if (templatePlaceholder.contains(entry.getKey())) {
deviceCount.getAndIncrement();
templatePlaceholder.remove(entry.getKey());
}
});
}
goodsDetailVO.setLensNum((int) deviceCount);
goodsDetailVO.setLensNum(deviceCount.get());
return ApiResponse.success(goodsDetailVO);
}

View File

@@ -132,6 +132,7 @@ public class SourceServiceImpl implements SourceService {
// 下载切片
VideoPieceGetter.Task task = new VideoPieceGetter.Task();
task.faceSampleIds = Collections.singletonList(source.getFaceSampleId());
task.force = true;
VideoPieceGetter.addTask(task);
}
return ApiResponse.success("任务已下发");

View File

@@ -274,10 +274,15 @@ public class TaskTaskServiceImpl implements TaskService {
log.info("task callback: 没有视频源");
return;
}
sourcesMap.forEach((key, value) -> {
// 每个value只保留第一个
value.removeIf(item -> !value.get(0).equals(item));
});
List<String> templatePlaceholder = templateRepository.getTemplatePlaceholder(templateId);
if (templatePlaceholder.stream().distinct().count() == templatePlaceholder.size()) {
sourcesMap.forEach((key, value) -> {
// 每个value只保留第一个
value.removeIf(item -> !value.get(0).equals(item));
});
} else {
log.info("task callback: 模板占位符有重复,templateId: {}", templateId);
}
TaskReqQuery taskReqQuery = new TaskReqQuery();
taskReqQuery.setFaceId(faceId);
taskReqQuery.setTemplateId(templateId);
@@ -469,10 +474,15 @@ public class TaskTaskServiceImpl implements TaskService {
log.info("task callback: 没有视频源,templateId: {}", templateId);
return;
}
sourcesMap.forEach((key, value) -> {
// 每个value只保留第一个
value.removeIf(item -> !value.get(0).equals(item));
});
List<String> templatePlaceholder = templateRepository.getTemplatePlaceholder(templateId);
if (templatePlaceholder.stream().distinct().count() == templatePlaceholder.size()) {
sourcesMap.forEach((key, value) -> {
// 每个value只保留第一个
value.removeIf(item -> !value.get(0).equals(item));
});
} else {
log.info("task callback: 模板占位符有重复,templateId: {}", templateId);
}
TaskReqQuery taskReqQuery = new TaskReqQuery();
taskReqQuery.setFaceId(faceId);
taskReqQuery.setTemplateId(templateId);