← 返回锻造场
已交付 Next.js多租户人工智能财务

Grupo Andreazzi — 带 WhatsApp 机器人的多公司中后台.

单库多租户门户:集团旗下每家公司拥有自有品牌的独立工作区——财务、商务、规划、文件与加密密码保险箱——并配有一个代表门户应答与记录的对话式 WhatsApp 机器人。

客户
Grupo Andreazzi
周期
2026
角色
架构师兼主力开发

Domain models

~60

Application code

~37k LOC

Roles in the matrix

7

Scheduled jobs

5

www.andreazzigrupo.com.br
www.andreazzigrupo.com.br
www.andreazzigrupo.com.br
www.andreazzigrupo.com.br
www.andreazzigrupo.com.br
www.andreazzigrupo.com.br
www.andreazzigrupo.com.br
www.andreazzigrupo.com.br

问题

企业集团是若干家共享人员却不共享账目的公司。一家一套系统,意味着每个月底都要对表;共用一套系统,则意味着 A 公司的财务负责人可能无意中读到 B 公司。两者都不可接受。

而产生大部分数据的人——批付款的、结checklist 的、确认会议的——并不会为此打开笔记本电脑。

解决方案

一个门户、一个数据库、硬性的租户隔离。每家公司获得一个按 slug 划分的工作区,覆盖应付与应收、科目、银行账户、销售渠道与指标、任务、会议、检查表、季度目标、日历、文件存储与密码保险箱。

  • 按公司主题化。每家公司携带自己的品牌色,在布局边界注入为 CSS 变量——同一个界面在不同工作区读起来像是不同的产品。
  • WhatsApp 机器人。离开工位才会发生的那部分工作,改在对话中完成:机器人经由 Claude 理解意图,遵守与网页门户完全相同的权限矩阵,并写入同一批数据表。
  • 通知引擎。基于规则的告警、订阅机制与模板化日报,由五条 cron 路由驱动。

系统架构

Next.js 单体,接缝刻意收得很窄:一切租户范围的操作都经过唯一的公司上下文解析器与一次"角色 × 模块 × 动作"的权限断言。七种角色、一张显式矩阵,以及一个自身也可审计的超级管理员旁路。

  • 金额绝不用浮点。全程 decimal 列与 decimal.js,属项目约定——一份自己和自己差一分钱的利润表,比没有利润表更糟。
  • 银行对账。带独立测试套件的 OFX 对账单解析,与账面流水匹配。
  • 保险箱。共享凭据以 AES-256-GCM 加密,主密钥保存在数据库之外。
  • 机器人可观测性。会话、日志与原始消息全部落库,并有管理界面实时查看进行中的对话——看不见的对话式界面,就是修不好的对话式界面。

成果

集团把财务、商务与规划跑在同一处,同时任何一家公司都看不到另一家。月度结账不再是表格合并,过去迟到甚至不到的数据,现在在发生的瞬间就以 WhatsApp 消息抵达。

完整技术栈

Next.js 15 (App Router)React 19TypeScript (strict)Prisma 5PostgreSQL 16Auth.js v5TailwindRadixdecimal.jsAnthropic SDKWhatsApp Cloud APIVercel BlobVitest
João Afonso Assumpção 系统架构师 · 自动化工程师 · 解决方案构建者
© 2026 · 版权所有。 使用 SvelteKit 构建