背景与挑战
很多十几个人的小制造厂,财务和仓库还跑在 Excel 上:采购入库记一张表,发票记另一张表,月底对账全靠人肉翻表,库存和账面永远对不平。税务局要看按发票立账,老板要看实时利润,会计要每天结账——Excel 撑不住这三件事。
市面上的财务软件要么太重(SAP/用友大版本,上手成本高、贵),要么太轻(记账 App,没有进销存和发票闭环)。这类企业的真实需求是:够用、合规、能从 Excel 平滑迁过来,而不是一堆花哨功能。

从 Excel 到系统:库存账面不平、发票滞后难立账、月底对账靠人肉
客户要什么
一家 10-50 人的制造企业,核心诉求是这五块全部打通:
- 财务:账务处理(凭证/账簿/报表)、资产管理(折旧)、出纳(银行对账)、工资(个税凭证)
- 进销存:采购/销售/库存/应收应付,且采购和销售都要按发票立账(单票分离)
- 委外:依赖进销存,发料/入库/加工费/成本核算
- 报销:消费明细、借还款、审批流、发票识别和查验
- 税务合规:发票查验对接税务局、税金计算、税务报表
难点不在功能多,而在三件事上:入库和发票分开管(单票分离)、税务必须合规、现有 Excel 数据要迁得准。
关键设计:单票分离怎么落地
单票分离是这个行业的硬骨头:货物先到、发票后到(甚至跨月跨年),但账必须按发票立账。系统要在「入库—发票—凭证」三个阶段保住数据一致性。
解法是把入库和发票放在同一个服务里用本地事务保障,凭证生成走服务间接口调用——不引入分布式事务的复杂度,单服务内部事务就够,这是给小企业做的务实取舍。
- 入库时:发票没到,按暂估价生成暂估凭证
- 发票到后:生成正式凭证,冲销暂估,差异自动入账
- 状态流转:入库单 暂估→已开票;发票 待审核→已审核→已记账
- 异常兜底:红字发票冲销、退库、凭证作废重开都支持

入库→暂估→发票→冲销→正式凭证,单服务本地事务保障一致性
暂估的两个最大风险——「暂估价怎么定」和「发票滞后多久」——系统给了标准库配置 + 手工暂估价双轨,以及暂估预警机制(定期提醒冲销、设最大有效期),不让暂估挂在账上变成糊涂账。

单票分离自动生成凭证,借贷平衡校验,支持审核/作废重开
关键设计:税务合规怎么保
税务不能马虎,错一笔就是真金白银的损失。系统在三个点做了加固:
- 发票查验:报销发票和采购发票都对接税务局查验接口验真;接口不稳定时降级为手工查验 + 人工审核,查验全程留日志可追溯。
- 税金计算:税率配置表 + 版本管理(税率变了能追溯历史版本)、生效时间控制;增值税/所得税统一计算逻辑。
- 税务报表:模板配置化,按税务局格式生成,生成后人工核对确认才上报。

发票查验对接税务局,接口失败降级手工查验,全程留日志可追溯
关键设计:Excel 数据怎么迁得准
从 Excel 迁系统,数据错了比没迁还糟。系统给了一条带校验和人工兜底的迁移链路:
- 标准导入模板(物料/供应商/客户/仓库)——客户按模板整理,导入前先做格式校验,缺字段当场提示
- 基础数据→期初数据→历史数据分批导入,先主数据再期初库存/应收应付
- 期初试算平衡:借方合计必须等于贷方合计(资产=负债+权益),不平衡系统拦下
- 双人核对 + 试运行:导入后人工核对,试运行期间发现问题及时修正

Excel→标准模板→校验→试算平衡→双人核对→试运行,每步都可回查
技术架构
基于 PigX 微服务框架(Spring Cloud Alibaba + Nacos + Gateway + OAuth2 + MyBatis-Plus + Flowable),务实划分 8 个服务 6 个库,不为小企业过度设计:
- 4 个 PigX 基础服务:注册中心、网关、认证、用户权限(开箱即用)
- 4 个 IMS 业务服务:ims-trade-biz(采购/销售/库存/应收应付)、ims-finance-biz(凭证/报表/资产/出纳/工资)、ims-outsource-biz(委外)、ims-expense-biz(报销/发票查验)
- 单票分离在 ims-trade-biz 内部用本地事务;跨服务用 Feign 接口,尽量避免分布式事务
- 前端 Vue 3 + Element Plus(PigX 集成)
工程化:DDD 聚合 + 文档驱动
光有架构不够,交付质量靠工程化纪律托底。这套系统用 DDD 聚合作为最小开发单元,文档驱动开发:
- 5 个领域、12 个上下文映射、8 个关键架构决策记录(ADR)全部先行落地
- 31 个聚合按风险分级(高 11/中 14/低 10),高风险模块(采购发票/销售发票/凭证/发票查验/税金/数据迁移)走完整 Spec→Verify→Code→评审流程,100% Spec 覆盖
- 4 层文档金字塔(L0 战略 / L1 战术 / L2 实现 / L3 测试),6 个评审点(R-Strategic→R3)
- 文档与代码不一致时文档优先、代码跟随,停止开发走评审流程
这套纪律保证了 5 个月分阶段交付(基础→进销存→财务→扩展)每一步都可验证,不为赶进度牺牲合规和准确。
技术栈
Spring Cloud Alibaba / Nacos / Spring Cloud Gateway / OAuth2 / MyBatis-Plus / Flowable(PigX 集成)· DDD 聚合工程化(31 聚合/5 领域/12 上下文)· 单票分离本地事务 + Feign 跨服务调用 · 发票查验对接税务局 · Vue 3 + Element Plus · MySQL 8.0 · 5 个月分阶段交付
适用场景
- 10-50 人小型制造企业,从 Excel 账本迁到合规财务进销存系统
- 需要按发票立账(单票分离)、税务合规、发票查验的 B2B 财务场景
- 有委外加工、报销审批、固定资产/工资出纳的综合性中小企业财务需求
