feat: 算法升级、整车配准集成与性能分析文档
算法更新: delivery v1.2.1、平整度v1.5、测距v2.2、整车配准v1.3 适配器: vehicle-registration 新增、各算法 manifest 和 adapter 更新 后端: taskCadFiles/source 字段迁移、derivedPointClouds 注册、取消任务联动 前端: ElapsedTime 时长显示、两步算法流程、canRun 逻辑修复 文档: 新增5份算法性能分析报告
This commit is contained in:
@@ -321,6 +321,7 @@ export async function runAlgorithmJob(
|
||||
errorStats: result?.errorStats,
|
||||
overlay3d: result?.overlay3d,
|
||||
images: result?.images,
|
||||
files: result?.files,
|
||||
extra: result?.extra,
|
||||
error: finalStatus === 'error'
|
||||
? result?.message ?? `子进程退出码 ${exitCode}`
|
||||
@@ -334,6 +335,35 @@ export async function runAlgorithmJob(
|
||||
resultData,
|
||||
});
|
||||
|
||||
// ── 回写配准产出点云 ─────────────────────────────────────────────────────
|
||||
// 若 result.json 包含 derivedPointClouds,把对应 PLY 注册为任务点云,
|
||||
// 供后续测量算法直接选用,无需用户手动上传。
|
||||
if (finalStatus === 'completed') {
|
||||
const derived = (result as Record<string, unknown> | null)?.derivedPointClouds;
|
||||
if (Array.isArray(derived) && derived.length > 0) {
|
||||
for (const item of derived) {
|
||||
const d = item as { file?: string; name?: string };
|
||||
if (!d.file) continue;
|
||||
const absPath = path.join(workDir, d.file);
|
||||
if (!fs.existsSync(absPath)) {
|
||||
console.warn(`[AlgorithmJobRunner] derivedPointCloud not found: ${absPath}`);
|
||||
continue;
|
||||
}
|
||||
try {
|
||||
await db.createRegisteredPointcloudFile(
|
||||
taskId,
|
||||
d.name ?? d.file,
|
||||
absPath,
|
||||
resultId,
|
||||
);
|
||||
console.log(`[AlgorithmJobRunner] registered derived pointcloud: ${d.name ?? d.file}`);
|
||||
} catch (err) {
|
||||
console.error('[AlgorithmJobRunner] failed to register derived pointcloud:', err);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (finalStatus === 'completed') {
|
||||
console.log(
|
||||
`[AlgorithmJobRunner] ok pluginId=${pluginId} resultId=${resultId} taskId=${taskId}`,
|
||||
|
||||
Reference in New Issue
Block a user