You've already forked FrameTour-BE
fix(viid): 修复人脸上传适配器为空时的处理逻辑
- 增加了对人脸上传适配器为空的检查,避免空指针异常 - 优化了人脸添加的逻辑,增加了异常捕获和日志记录 - 调整了任务调度的顺序,确保人脸添加成功后再添加任务
This commit is contained in:
@@ -308,6 +308,10 @@ public class ViidController {
|
|||||||
}
|
}
|
||||||
IStorageAdapter scenicStorageAdapter = scenicService.getScenicStorageAdapter(scenicId);
|
IStorageAdapter scenicStorageAdapter = scenicService.getScenicStorageAdapter(scenicId);
|
||||||
IFaceBodyAdapter faceBodyAdapter = scenicService.getScenicFaceBodyAdapter(scenicId);
|
IFaceBodyAdapter faceBodyAdapter = scenicService.getScenicFaceBodyAdapter(scenicId);
|
||||||
|
if (faceBodyAdapter == null) {
|
||||||
|
log.warn("人脸上传适配器不存在:" + scenicId);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
FacePositionObject facePosition = new FacePositionObject();
|
FacePositionObject facePosition = new FacePositionObject();
|
||||||
facePosition.setLtY(face.getLeftTopY());
|
facePosition.setLtY(face.getLeftTopY());
|
||||||
facePosition.setLtX(face.getLeftTopX());
|
facePosition.setLtX(face.getLeftTopX());
|
||||||
@@ -344,13 +348,18 @@ public class ViidController {
|
|||||||
faceSampleMapper.add(faceSample);
|
faceSampleMapper.add(faceSample);
|
||||||
ThreadPoolExecutor executor = getExecutor(scenicId);
|
ThreadPoolExecutor executor = getExecutor(scenicId);
|
||||||
executor.execute(() -> {
|
executor.execute(() -> {
|
||||||
if (faceBodyAdapter != null) {
|
|
||||||
taskFaceService.assureFaceDb(faceBodyAdapter, scenicId.toString());
|
taskFaceService.assureFaceDb(faceBodyAdapter, scenicId.toString());
|
||||||
AddFaceResp addFaceResp = faceBodyAdapter.addFace(scenicId.toString(), faceSample.getId().toString(), url, newFaceSampleId.toString());
|
AddFaceResp addFaceResp;
|
||||||
|
try {
|
||||||
|
addFaceResp = faceBodyAdapter.addFace(scenicId.toString(), faceSample.getId().toString(), url, newFaceSampleId.toString());
|
||||||
|
} catch (Exception e) {
|
||||||
|
log.error("人脸添加失败:{}", e.getMessage());
|
||||||
|
return;
|
||||||
|
}
|
||||||
if (addFaceResp != null) {
|
if (addFaceResp != null) {
|
||||||
faceSample.setScore(addFaceResp.getScore());
|
faceSample.setScore(addFaceResp.getScore());
|
||||||
faceSampleMapper.updateScore(faceSample.getId(), addFaceResp.getScore());
|
faceSampleMapper.updateScore(faceSample.getId(), addFaceResp.getScore());
|
||||||
}
|
|
||||||
}
|
}
|
||||||
if (Integer.valueOf(1).equals(deviceConfig.getInteger("enable_pre_book"))) {
|
if (Integer.valueOf(1).equals(deviceConfig.getInteger("enable_pre_book"))) {
|
||||||
DynamicTaskGenerator.addTask(faceSample.getId());
|
DynamicTaskGenerator.addTask(faceSample.getId());
|
||||||
@@ -436,17 +445,21 @@ public class ViidController {
|
|||||||
DynamicTaskGenerator.addTask(faceSample.getId());
|
DynamicTaskGenerator.addTask(faceSample.getId());
|
||||||
ThreadPoolExecutor executor = getExecutor(scenicId);
|
ThreadPoolExecutor executor = getExecutor(scenicId);
|
||||||
executor.execute(() -> {
|
executor.execute(() -> {
|
||||||
if (faceBodyAdapter != null) {
|
|
||||||
taskFaceService.assureFaceDb(faceBodyAdapter, scenicId.toString());
|
taskFaceService.assureFaceDb(faceBodyAdapter, scenicId.toString());
|
||||||
AddFaceResp addFaceResp = faceBodyAdapter.addFace(scenicId.toString(), faceSample.getId().toString(), url, newFaceSampleId.toString());
|
AddFaceResp addFaceResp;
|
||||||
|
try {
|
||||||
|
addFaceResp = faceBodyAdapter.addFace(scenicId.toString(), faceSample.getId().toString(), url, newFaceSampleId.toString());
|
||||||
|
} catch (Exception e) {
|
||||||
|
log.error("人脸添加失败:{}", e.getMessage());
|
||||||
|
return;
|
||||||
|
}
|
||||||
if (addFaceResp != null) {
|
if (addFaceResp != null) {
|
||||||
faceSample.setScore(addFaceResp.getScore());
|
faceSample.setScore(addFaceResp.getScore());
|
||||||
faceSampleMapper.updateScore(faceSample.getId(), addFaceResp.getScore());
|
faceSampleMapper.updateScore(faceSample.getId(), addFaceResp.getScore());
|
||||||
}
|
|
||||||
}
|
|
||||||
if (Integer.valueOf(1).equals(deviceConfig.getInteger("enable_pre_book"))) {
|
if (Integer.valueOf(1).equals(deviceConfig.getInteger("enable_pre_book"))) {
|
||||||
DynamicTaskGenerator.addTask(faceSample.getId());
|
DynamicTaskGenerator.addTask(faceSample.getId());
|
||||||
}
|
}
|
||||||
|
}
|
||||||
});
|
});
|
||||||
log.info("模式1人脸信息入库成功!设备ID:{}", deviceID);
|
log.info("模式1人脸信息入库成功!设备ID:{}", deviceID);
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user