项目 02 · 案例研究
物流 SLA 分析
在 Maxcess International,我把两个关键的 Excel 文件——海关和库存——整合成一个用 Next.js、Supabase 和 Power Automate 构建的实时平台,因为商务团队需要看到每个 SKU 从出口到可用库存的全过程,同时不能中断任何人的运作。
30 秒速览
为什么
在 Maxcess International,我借助 Supabase 和 Power Automate 整合了海关和库存这两个关键的 Excel 文件,在不中断运营的前提下追踪每个 SKU 从出口到库存的全过程。
我构建了什么
- 数据源
OneDrive 和 SharePoint 中的两个 Excel 文件——海关和库存。Power Automate 将它们加载到数据库并保留快照,且不改变各团队填写文件的方式。
- 模型
SKU 是每次货运全程的关键。一个面向超过 5 位用户、分为四种角色并采用行级权限的 Supabase 模型,以及基于快照历史构建的库存趋势。
- 输出
笔记本电脑和手机上的实时平台:按阶段划分的看板、按 Strategic Account Manager 区分的预留、每周通知,以及一个基于产品技术数据表的 RAG 助手。
工具
- Excel
- Power Automate
- n8n
- Supabase
- Next.js
- TypeScript
- Azure
- Cloudflare
- DuckDB
- Resend
- RAG
完整案例
起点
Maxcess International 的商务团队凭手头的库存开展业务:哪些有货、哪些在途、哪些已被预留。这些答案存放在两个庞大的 Excel 文件里,一个用于海关,另一个用于库存,分别由不同的团队维护。
要回答某一个 SKU 的情况,就得手工交叉核对这两张表:信息是有的,但不在同一个地方,也不在同一时间。
挑战
在不要求任何人改变工作方式的前提下,把这两个文件整合起来:这套 Excel 体系本来就在运转,不能停下来,也不能在各团队之间造成摩擦。
并且要做到可以沿着货运的完整历程追踪每个 SKU:出口、进口、国际在途、海关、仓库和可用库存。
我的做法
我从原型开始,与商务团队反复迭代,直到他们批准。随后,我主动提议把它扩展成一个可复现、可验证的平台,实时运行,并由其用户自己的数据来驱动。
在相邻团队的帮助下,我们在 OneDrive 和 SharePoint 的副本中完善了这些 Excel 文件,使数据加载不再依赖任何人。原型获得批准后,我先设计架构并写成文档,然后才开始构建。
端到端
导入:一个 Power Automate 工作流把这两个 Excel 文件加载到数据库,并为每次截取保留一份快照。各团队仍像往常一样填写自己的表格。
模型:SKU 是整个货运过程的关键。在 Supabase(基于 PostgreSQL)中有一个模型,带有版本化迁移,并为管理员、Strategic Account Manager、支持人员和访客四种角色设置了行级权限。每次截取都存为一份快照,对比各次截取,就能看出每条记录新增、移除或变更了什么。
应用:使用 Next.js 和 TypeScript 构建,带有无障碍组件和深色模式,在笔记本电脑和手机上用起来都一样。通知每周一通过 n8n 工作流,从专用域名以邮件形式发出,同时也会显示在平台的铃铛里。
我构建了什么
一个面向超过 5 位用户的实时平台,每个界面都以 SKU 为中心。
- 看板:按阶段划分的 SKU、目录数量、可用件数、在途件数和待补充数据,配有实时图表、热力图,以及根据历次截取的历史构建的按期间库存趋势。
- 按技术和品牌划分的目录,附有每个产品的技术数据表。
- 货运与货运历史:每个 SKU 所处的阶段,并带有日期和国家筛选。
- 按 Strategic Account Manager 区分的预留,当某个 SKU 被超额预留时会发出通知。
- 根据历史记录创建的项目,附有其 PDF 文档。
- 快照:每个导入的文件及其变更,逐条记录。
- 跟踪:关注某个 SKU,当它到货、变更阶段,或其可用数量或预留数量发生变化时,您会收到通知。
- 设置:偏好设置、用户与角色、产品系列、品牌、待处理事项和帮助。
助手
MAX 回答与目录中技术数据表有关的问题。它是一个 RAG 助手:在 PostgreSQL 中按全文和按语义进行检索,并根据检索到的内容,借助语言模型撰写答案。
每次重新索引时它都会更新:索引器会将语料库与上一版本进行比较,对其分块,并只重新处理发生变化的部分。每次发布之前,都会用一组测试问题检查它是否有依据地作答,并懂得在不知道时坦承不知道。
改变了什么
商务团队可以在笔记本电脑和手机上实时看到每个 SKU 的库存、在途和预留情况,超过 5 位用户基于同一份信息开展工作。行政、海关和库存部门仍像往常一样填写他们的 Excel 文件,而现在他们的数据能够送达每一个人。
我学到了什么
最好的集成是无需任何人学习的集成:尊重每个团队的工作方式,才让这个平台被采用。还有,一个助手的价值,既在于它能回答什么,也在于它承认自己不知道什么。
下一步
继续向助手的语料库添加技术数据表,并在准备就绪后发布代码仓库。
端到端技术栈
数据源与导入
两个 Excel 文件,不改变它们的填写方式
- Excel
- OneDrive
- SharePoint
- Power Automate
- SheetJS (xlsx)
数据库与模型
以 SKU 为键,采用行级权限
- Supabase
- PostgreSQL
- SQL
- 版本化迁移
- Row Level Security
- DuckDB
- Azure
后端
路由、会话与验证
- Next.js
- TypeScript
- Node.js
- Zod
- Supabase SSR
- node-postgres
前端
笔记本电脑和手机上的平台
- React
- Next.js App Router
- Tailwind CSS
- Radix UI
- shadcn/ui
- Lucide
- next-themes
- Sonner
可视化
看板、趋势与热力图
- 自研 React 图表
- Tailwind CSS
文档
技术数据表与项目文档
- PDF.js
- PDFKit
- SheetJS (xlsx)
AI
MAX 助手
- RAG
- OpenAI 向量嵌入
- DeepSeek 对话模型
- PostgreSQL 全文检索
- pgvector
通知与邮件
周一简报与铃铛
- n8n
- 专用域名上的 SMTP
- Resend
- Outlook
质量
每次发布前的测试与关卡
- Vitest
- Testing Library
- jsdom
- Playwright
- ESLint
- Git hooks
- Python
交付
发布与提供服务
- Vercel
- Cloudflare
- GitHub
截图 · 12
测试数据或已模糊处理的数据:不含客户的真实数字。