返回项目

项目 02 · 案例研究

物流 SLA 分析

在 Maxcess International,我把两个关键的 Excel 文件——海关和库存——整合成一个用 Next.js、Supabase 和 Power Automate 构建的实时平台,因为商务团队需要看到每个 SKU 从出口到可用库存的全过程,同时不能中断任何人的运作。

30 秒速览

为什么

在 Maxcess International,我借助 Supabase 和 Power Automate 整合了海关和库存这两个关键的 Excel 文件,在不中断运营的前提下追踪每个 SKU 从出口到库存的全过程。

服务对象商务、行政、海关和库存团队
目标每个 SKU 的实时库存、在途和预留

我构建了什么

  1. 数据源

    OneDrive 和 SharePoint 中的两个 Excel 文件——海关和库存。Power Automate 将它们加载到数据库并保留快照,且不改变各团队填写文件的方式。

  2. 模型

    SKU 是每次货运全程的关键。一个面向超过 5 位用户、分为四种角色并采用行级权限的 Supabase 模型,以及基于快照历史构建的库存趋势。

  3. 输出

    笔记本电脑和手机上的实时平台:按阶段划分的看板、按 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 文件,而现在他们的数据能够送达每一个人。

我学到了什么

最好的集成是无需任何人学习的集成:尊重每个团队的工作方式,才让这个平台被采用。还有,一个助手的价值,既在于它能回答什么,也在于它承认自己不知道什么。

下一步

继续向助手的语料库添加技术数据表,并在准备就绪后发布代码仓库。

端到端技术栈

  1. 数据源与导入

    两个 Excel 文件,不改变它们的填写方式

    • Excel
    • OneDrive
    • SharePoint
    • Power Automate
    • SheetJS (xlsx)
  2. 数据库与模型

    以 SKU 为键,采用行级权限

    • Supabase
    • PostgreSQL
    • SQL
    • 版本化迁移
    • Row Level Security
    • DuckDB
    • Azure
  3. 后端

    路由、会话与验证

    • Next.js
    • TypeScript
    • Node.js
    • Zod
    • Supabase SSR
    • node-postgres
  4. 前端

    笔记本电脑和手机上的平台

    • React
    • Next.js App Router
    • Tailwind CSS
    • Radix UI
    • shadcn/ui
    • Lucide
    • next-themes
    • Sonner
  5. 可视化

    看板、趋势与热力图

    • 自研 React 图表
    • Tailwind CSS
  6. 文档

    技术数据表与项目文档

    • PDF.js
    • PDFKit
    • SheetJS (xlsx)
  7. AI

    MAX 助手

    • RAG
    • OpenAI 向量嵌入
    • DeepSeek 对话模型
    • PostgreSQL 全文检索
    • pgvector
  8. 通知与邮件

    周一简报与铃铛

    • n8n
    • 专用域名上的 SMTP
    • Resend
    • Outlook
  9. 质量

    每次发布前的测试与关卡

    • Vitest
    • Testing Library
    • jsdom
    • Playwright
    • ESLint
    • Git hooks
    • Python
  10. 交付

    发布与提供服务

    • Vercel
    • Cloudflare
    • GitHub

截图 · 12

测试数据或已模糊处理的数据:不含客户的真实数字。