feat: add selectable demo flow tasks

This commit is contained in:
2026-09-02 15:23:15 +08:00
parent f879328562
commit e3dc7ebe21
19 changed files with 871 additions and 110 deletions

View File

@@ -201,6 +201,10 @@ const DEMO_FLOW_RESULT_DATA_KEYS = [
'demoFlowSourcePointCloudFileId',
'demoFlowCadFileId',
'demoFlowCancelledAt',
'demoFlowMode',
'demoFlowSelectedTaskNos',
'demoFlowSelectedTaskCount',
'demoFlowPluginTaskNos',
] as const;
async function readDemoFlowResultData(resultId: number): Promise<Record<string, unknown>> {
@@ -389,8 +393,19 @@ export async function runAlgorithmJob(
algorithmProtocolVersion: result?.schemaVersion ?? manifest.schemaVersion,
});
logCompatibilityWarnings(resultId, normalized.warnings);
const requestedDemoTaskNos = Array.isArray(params.demoTaskNos)
? new Set(
params.demoTaskNos
.filter((value): value is number => typeof value === 'number' && Number.isInteger(value))
.map(String),
)
: null;
const normalizedMeasurements = Array.isArray(result?.measurements)
? normalized.measurements
? requestedDemoTaskNos
? normalized.measurements.filter((measurement) => (
typeof measurement.taskNo === 'string' && requestedDemoTaskNos.has(measurement.taskNo)
))
: normalized.measurements
: undefined;
const resultData: PluginResultData = {
kind: 'plugin',