Compare same-key multipath by order; heartbeat during persist.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
oliver 2026-10-08 17:14:33 +08:00
parent 3d92a74fac
commit dd4195cdbc
7 changed files with 300 additions and 170 deletions

View file

@ -502,6 +502,7 @@ const en = {
runProgress: "{{phase}} · sheet {{i}}/{{n}} · {{sheet}} · {{s}}s elapsed",
runRowsLoaded: "Loaded {{side}} {{n}} rows",
runRowsSqlCount: "DB count {{side}} {{n}} rows",
runPersisting: "Wrote {{done}}/{{total}} rows",
runEngineSql: "engine SQL",
runEnginePython: "engine Python",
runEngineNote: "reason {{note}}",

View file

@ -501,6 +501,7 @@ const zh = {
runProgress: "{{phase}} · 表 {{i}}/{{n}} · {{sheet}} · 已用 {{s}}s",
runRowsLoaded: "已加载 {{side}} {{n}} 行",
runRowsSqlCount: "库内统计 {{side}} {{n}} 行",
runPersisting: "已写入 {{done}}/{{total}} 行",
runEngineSql: "引擎 SQL",
runEnginePython: "引擎 Python",
runEngineNote: "原因 {{note}}",

View file

@ -1895,6 +1895,10 @@ export function BizComparePage({ pageMode = "all" }: { pageMode?: BizComparePage
rows_loaded?: number;
engine?: string;
engine_note?: string;
persisted?: number;
persist_total?: number;
fail_rows?: number;
ok_rows?: number;
};
const runEngine = String(runProgress.engine || "").toLowerCase();
@ -3292,6 +3296,15 @@ export function BizComparePage({ pageMode = "all" }: { pageMode?: BizComparePage
})}
</span>
) : null}
{String(runProgress.phase || "").startsWith("persisting") &&
Number(runProgress.persist_total || 0) > 0 ? (
<span className="muted">
{t("bizCompare.runPersisting", {
done: String(runProgress.persisted || 0),
total: String(runProgress.persist_total || 0),
})}
</span>
) : null}
{runDetail.message ? (
<span className="muted bs-cmp-progress__msg">{String(runDetail.message)}</span>
) : null}