会计工作台是一款面向企业专职会计与代理记账会计的纯离线桌面软件,解决财务数据不出本机、断网也能完整记账这一核心诉求。立项目标有三条:账务数据全程本地存储、软件永不自动改账(所有智能建议必须人工确认后才落库)、交付形态为可直接双击安装的 Windows 安装包。核心模块共九块:多公司账套管理(一家公司一个独立数据库文件,代账场景下互不干扰)、科目与期初余额、凭证录入(支持红冲、断号整理、批量过账)、期末结转损益与结账反结账、三大财务报表外加现金流量表、Excel 导入(银行流水、费用明细、科目期初三类表通用解析)、智能对账勾对、发票台账与增值税科目、备份与恢复。业务路径与手工账一致:建账套并录期初 → 启用 → 通过凭证录入或大白话入账与表格导入生成待确认分录 → 人工确认入账 → 银行流水与账上分录智能勾对 → 月末结转损益并结账 → 出资产负债表、利润表、现金流量表 → 一键备份。
整体为 Electron + TypeScript + Vue 3 单仓库,主进程承担全部业务逻辑,渲染层只做展示与交互,二者通过 IPC 通道契约通信,通道名单与入出参类型集中在共享类型文件里做单一真源,避免两侧各写一遍而漂移。数据库用 better-sqlite3 直接读写本地 SQLite 文件,金额一律以整数分存储,杜绝浮点误差。可测试性是这项目的主要工程约束:所有算账逻辑拆进不引用 electron 的 core 层,原生对话框与应用路径以依赖注入方式传入,因此结账、试算平衡、现金流量归集这类核心算法可以在纯 Node 环境用真实数据库跑断言。报表引擎自研公式 DSL 加准则表体规则表,现金流量表按 28 行表体与借贷恒等式校验,并支持逐笔改归属。质量口径量化如下:单元测试 103 个文件 1238 例全绿,TypeScript 类型检查与构建零错误,另有一条端到端验收走查脚本通过远程调试驱动真实界面,累计 200 条断言全部通过,覆盖冷启动、建账、入账、导入、对账、结账、报表与备份全链路。遇到的难点有三个:一是原生模块的 Node 与 Electron ABI 互斥,同一份工作副本两侧不能同时可用,最终用真建库探针判定并自动切换;二是 Windows 安装包必须在一台 Apple Silicon 的 Mac 上交叉产出,node-gyp 拒绝交叉编译,改为换入官方 win32 预编译二进制并跳过依赖重建,安装包图标与版本信息用纯 JS 直接写 PE 资源,绕开 wine;三是原生保存对话框无法自动化,因此所有写文件的入口都做成「原生对话框 + 应用内默认目录」双入口,保证端到端可验证。