我们解决的三个真实问题
每一项都不是"功能列表里塞一行",是仓库里真的在卡流程的问题。
3PL 多租户数据隔离
同一套系统服务多个货主。每张商品、订单、库存都带 customer_id;客户门户只能看到自己的数据,员工后台可按客户筛选。客户专属登录与员工登录是两套独立签名根的 JWT。
文档 → 实体的统一管道
货主把 Excel / 表格 PDF / 扫描件 / 微信截图丢进客户门户,系统用模板优先 + LLM 兜底的方式提取结构化字段:入库单、出库单、新商品。每一条都进入"待客户确认"状态,确认后才能由仓库执行。
PDA 作业流 + 弱网友好
Flutter 移动端是精简版的操作终端:扫码收货 / 上架、按单拣货、库存盘点、库存查询。专为仓库现场的低端 Android 手持设备和不稳定 Wi-Fi 设计。
文档上传到入账的完整路径
客户两次确认;仓库永远不会对未确认的数据动手。
- ① 上传
客户在门户上传 Excel、PDF、相机照片,单文件 25 MB 以内;常用格式可保存为模板,下次跳过 LLM。
- ② 解析
后台队列先用模板(行/列映射 + 正则),失败时回退到 Claude Haiku 4.5 视觉提取;扫描件 PDF 直接读取图像,不依赖 Tesseract。
- ③ 复核
客户在门户看到结构化预览:缺字段、SKU 不匹配的行高亮,可逐行编辑后保存。
- ④ 确认 → 入账
客户点"确认"后才会落地为草稿入库 / 出库单;缺失的客户商品会在确认时自动建为该客户的正式商品。
已上线的业务模块
20 个领域模块,按职责分组。
作业
- 入库
- 上架
- 出库
- 盘点
- 调拨
- 拆装
主数据
- 商品
- 类目
- 仓库
- 客户
- SKU 映射
查询与看板
- 库存
- 全局搜索
- 仪表盘
权限与账号
- 用户
- 角色
- 权限
客户端
- 客户门户认证
- 客户门户业务
健康
- Health
