H1-H10 优化OCR实时体验闭环

这个提交包含在:
2026-05-09 11:48:57 +08:00
父节点 549bd81e30
当前提交 c26cf9b954
共修改 34 个文件,包含 1217 行新增和 184 行删除
@@ -133,6 +133,7 @@ async function buildApp(options = {}) {
],
travelRequests: (options.travelRequests ?? [buildTravelRequest()]).map((item) => cloneTravelRequest(item)),
auditLogs: [],
sequenceNumber: 0,
};
function buildReimbursementSelect(record, select) {
@@ -236,6 +237,28 @@ async function buildApp(options = {}) {
return found ? cloneTravelRequest(found) : null;
}),
},
documentSequence: {
findUnique: vi.fn(async () => null),
upsert: vi.fn(async ({ create, update }) => {
stateRef.sequenceNumber = (stateRef.sequenceNumber ?? 0) + 1;
return {
document_type: create.document_type,
prefix: update.prefix ?? create.prefix,
date_format: update.date_format ?? create.date_format,
separator: update.separator ?? create.separator,
number_length: update.number_length ?? create.number_length,
reset_period: update.reset_period ?? create.reset_period,
current_number: stateRef.sequenceNumber,
last_reset_date: null,
updated_at: new Date("2026-04-08T12:00:00.000Z"),
updated_by: update.updated_by ?? create.updated_by ?? null,
};
}),
},
documentCategory: {
findUnique: vi.fn(async () => null),
findFirst: vi.fn(async () => null),
},
reimbursementForm: {
create: vi.fn(async ({ data, select }) => {
const record = {
@@ -317,6 +340,7 @@ async function buildApp(options = {}) {
expenseTypes: state.expenseTypes.map((item) => ({ ...item })),
travelRequests: state.travelRequests.map((item) => cloneTravelRequest(item)),
auditLogs: state.auditLogs.map((item) => ({ ...item })),
sequenceNumber: state.sequenceNumber,
};
const tx = buildPrismaLike(txState);
const result = await callback(tx);
@@ -327,6 +351,7 @@ async function buildApp(options = {}) {
state.expenseTypes = txState.expenseTypes;
state.travelRequests = txState.travelRequests;
state.auditLogs = txState.auditLogs;
state.sequenceNumber = txState.sequenceNumber;
return result;
});