This commit is contained in:
2025-04-05 13:21:52 +08:00
parent 67dca0d4d4
commit 0ab142e1c4
19 changed files with 215 additions and 337 deletions

View File

@ -8,6 +8,9 @@ import com.ycwl.basic.annotation.IgnoreLogReq;
import com.ycwl.basic.annotation.IgnoreToken;
import com.ycwl.basic.annotation.RequestToFile;
import com.ycwl.basic.aspectj.HttpSaver;
import com.ycwl.basic.facebody.FaceBodyFactory;
import com.ycwl.basic.facebody.adapter.IFaceBodyAdapter;
import com.ycwl.basic.facebody.entity.AddFaceResp;
import com.ycwl.basic.mapper.DeviceMapper;
import com.ycwl.basic.mapper.FaceSampleMapper;
import com.ycwl.basic.mapper.SourceMapper;
@ -69,6 +72,7 @@ import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
import static com.ycwl.basic.constant.StorageConstant.PHOTO_PATH;
import static com.ycwl.basic.service.task.impl.TaskFaceServiceImpl.generateEntityId;
@IgnoreToken
@RestController
@ -85,8 +89,10 @@ public class ViidController {
private DeviceRepository deviceRepository;
@Autowired
private ScenicRepository scenicRepository;
@Autowired
private TaskFaceService taskFaceService;
private final ThreadPoolExecutor executor = new ThreadPoolExecutor(8, 1024, 0L, TimeUnit.MILLISECONDS, new ArrayBlockingQueue<>(1024));
private final ThreadPoolExecutor executor = new ThreadPoolExecutor(8, 4096, 0L, TimeUnit.MILLISECONDS, new ArrayBlockingQueue<>(4096));
// region 注册注销基础接口
/**
@ -203,8 +209,6 @@ public class ViidController {
@Autowired
private FaceSampleMapper faceSampleMapper;
@Autowired
private TaskFaceService taskFaceService;
private final SimpleDateFormat sdfTime = new SimpleDateFormat("yyyyMMddHHmmss");
@ -268,6 +272,13 @@ public class ViidController {
} else {
scenicStorageAdapter = StorageFactory.use("video");
}
IFaceBodyAdapter faceBodyAdapter;
if (scenicConfig != null && scenicConfig.getFaceType() != null) {
faceBodyAdapter = FaceBodyFactory.getAdapter(scenicConfig.getFaceType());
faceBodyAdapter.loadConfig(JSONObject.parseObject(scenicConfig.getFaceConfigJson(), Map.class));
} else {
faceBodyAdapter = null;
}
FacePositionObject facePosition = new FacePositionObject();
facePosition.setLtY(face.getLeftTopY());
facePosition.setLtX(face.getLeftTopX());
@ -301,7 +312,14 @@ public class ViidController {
faceSample.setFaceUrl(url);
faceSampleMapper.add(faceSample);
executor.execute(() -> {
taskFaceService.addFaceSample(faceSample.getId());
if (faceBodyAdapter != null) {
taskFaceService.assureFaceDb(faceBodyAdapter, scenicId.toString());
AddFaceResp addFaceResp = faceBodyAdapter.addFace(scenicId.toString(), generateEntityId(faceSample), url, newFaceSampleId.toString());
if (addFaceResp != null) {
faceSample.setScore(addFaceResp.getScore());
faceSampleMapper.update(faceSample);
}
}
if (deviceConfig != null && Integer.valueOf(1).equals(deviceConfig.getEnablePreBook())) {
DynamicTaskGenerator.addTask(faceSample.getId());
}
@ -355,7 +373,14 @@ public class ViidController {
faceSampleMapper.add(faceSample);
DynamicTaskGenerator.addTask(faceSample.getId());
executor.execute(() -> {
taskFaceService.addFaceSample(faceSample.getId());
if (faceBodyAdapter != null) {
taskFaceService.assureFaceDb(faceBodyAdapter, scenicId.toString());
AddFaceResp addFaceResp = faceBodyAdapter.addFace(scenicId.toString(), generateEntityId(faceSample), url, newFaceSampleId.toString());
if (addFaceResp != null) {
faceSample.setScore(addFaceResp.getScore());
faceSampleMapper.update(faceSample);
}
}
if (deviceConfig != null && Integer.valueOf(1).equals(deviceConfig.getEnablePreBook())) {
DynamicTaskGenerator.addTask(faceSample.getId());
}