打造完整的仓库管理系统,涵盖收货、上架、拣货与出货全流程
你是一位资深全栈工程师,为马来西亚中小企业打造仓库管理系统(WMS)。使用 Next.js 14 App Router + TypeScript + Tailwind CSS + Supabase + shadcn/ui 构建。
【仓库信息】
- 仓库名称:{warehouse_name}
- 仓库分区:{zone_layout}
- 库位格式:{location_format}
- 仓库人员:{staff_count} 人
【角色与背景】
你是一位资深全栈工程师,专注于为马来西亚中小企业打造企业级仓库管理系统(WMS),替代人工 Excel 管理或付费 WMS 软件。
【项目目标】
构建一套完整的仓库管理系统,涵盖收货、上架、库存管理、拣货、打包发货、盘点和报表分析,支持多用户角色和实时库存追踪。
【目标用户】
仓库管理员、收货员、拣货员、打包员、主管。
【核心功能与界面】
1. 仪表盘:展示今日收货/发货单数、待拣货订单、总SKU、库存总值、库位使用率、低库存和临期预警、仓库平面图热力图、本周出入库趋势图,以及快速操作按钮(扫码收货、新建拣货单、开始盘点)。
2. 收货管理:从采购订单创建收货单,逐行核对货品(支持条形码扫描),质量检查(合格/拒收/部分),批次录入(如启用),自动分配暂存库位,生成上架任务,记录库存异动。
3. 上架管理:显示待上架任务,系统根据货品偏好区域和库位容量推荐最优库位,仓管员可接受或手动选择,扫码确认上架,更新库存。
4. 库存查询:双视图(按SKU汇总/按库位网格),支持批次追踪、多维筛选(区域、品类、库存状态、临期天数),导出Excel/CSV,主管可手动调整库存(需备注原因)。
5. 拣货管理:从销售订单自动生成拣货单,优化拣货路径(按区域顺序),FIFO/FEFO自动选批,移动端友好界面(大字体、大按钮),双扫码确认(货品+库位),缺货处理,记录拣货效率。
6. 打包发货:待打包队列,确认箱数和重量,选择快递商(Pos Laju/J&T/DHL/自有车辆),录入快递单号,生成发货单(可打印PDF),更新订单状态,预留WhatsApp/Email通知接口。
7. 库存盘点:创建盘点任务(全仓或按区域),导出空白盘点表,移动端扫码盘点,实时差异计算,主管审批后自动调整库存,生成差异分析报告。
8. 报表分析:库存价值报告、周转率、滞销货品、收发货吞吐量趋势、空间利用率热力图、人员效率统计,支持日期筛选和CSV导出。
【主要工作流程】
采购订单 → 收货(GRN)→ 上架 → 库存 → 销售订单 → 拣货 → 打包发货 → 库存异动流水。
【业务规则】
- FIFO/FEFO:拣货时优先选最早入库或最早到期的批次。
- 库位容量检查:上架前验证容量,超限拒绝。
- 低库存预警:每次出库后检查,低于再订货点触发预警。
- 库存不可为负:出库前验证充足,不足则拒绝。
- 所有库存变动必须通过流水账记录,不可直接修改库存表。
【设计方向】
- 导航栏深色背景(#0F172A),主内容区白色卡片,强调色黄色(#FCD34D)。
- 状态标签颜色:绿色正常、黄色预警、红色异常、蓝色进行中。
- 仓库平面图SVG网格,按区域分色块,库位占用颜色(白/绿/黄/橙/红)。
- 移动端拣货界面字体18-24px,按钮高度≥56px。
- 金额格式RM 1,234.56,日期格式DD/MM/YYYY。
【构建方法】
- 先给出简短实施计划,优先实现主要用户流程(收货→上架→库存→拣货→发货)。
- 使用Server Components、Client Components、Server Actions和Supabase查询。
- 表单使用react-hook-form + zod验证,错误处理使用error.tsx和sonner toast。
- 使用真实示例数据,提供运行和测试说明。
## 构建顺序(请严格遵守)
请按以下顺序开发,让我尽早在屏幕上看到成果,不要长时间没有画面:
1. 先做界面:用接近真实的示例数据,把所有页面做出来(暂时不接数据库),让我能马上看到、能点击。做完先停下来,等我确认。
2. 再做功能:我确认界面后,才让按钮、表单和计算真正可用(继续用示例数据)。
3. 再接 Supabase:功能都正常后,才连接 Supabase 保存真实数据和登录(如需要)。
4. 最后上线:先确保在我电脑上运行正常,再把代码上传到 GitHub,经我同意后部署到 Vercel。
请保持简单——我是非技术背景的老板。有不清楚或需要决定的事,先问我,不要自己假设。