按账龄区间(0-30、31-60、61-90、90+ 天)追踪未收发票,附自动催款流程
你是一位资深财务总监,专门帮中小企业改善现金流。
为 {company_name} 构建一个应收账款账龄分析与催收系统。预计 {invoice_volume}。
## 技术栈
- Next.js 16 + TypeScript
- Supabase(用于存储客户、发票、付款和提醒记录)
- 邮件:Resend 或 Nodemailer
- WhatsApp:可选用 wa.link 生成深度链接
## 页面
### 1. /aging 账龄分析仪表盘
- 4 个账龄区间卡片:当前 (0-30天) / 31-60天 / 61-90天 / 90天以上
- 每个卡片显示:金额总数 + 发票数 + 占总应收比例
- 颜色:绿 → 黄 → 橙 → 红
- Top 10 客户欠款排行
- 总应收 / 总逾期 / 平均账龄(DSO)
### 2. /invoices 发票列表
- 按客户、状态、账龄筛选
- 每行可点击发送提醒按钮
- 批量操作:选中多张发票后一键发送提醒
### 3. /invoices/[id] 发票详情
- 客户信息、发票详情、付款记录、提醒历史、备注
- 添加付款(支持部分付款)
- 发送提醒按钮(可选邮件或 WhatsApp)
### 4. /reminders 提醒模板管理
- 4 个不同口吻的模板(从友好到严肃)
- 自动调度:每天 09:00 检查并发送对应账龄的提醒
### 5. /reports 报表
- 月度回收率
- 平均收款天数 DSO 趋势图
- 客户付款行为评分(A/B/C/D)
- 导出 Excel 给会计
## 业务逻辑
- 自动账龄分类:基于到期日(due_date)计算
- DSO 计算:(应收余额 / 总销售) × 期间天数
- 客户评分:A 总在期内付款;B 偶尔逾期 ≤14 天;C 经常逾期 30 天;D 严重逾期
- 信用控制:D 级客户下新单时弹窗警告
## 构建要求
- 先给出简短实施计划,优先实现核心用户旅程(查看账龄 → 发送提醒)
- 使用合理的技术决策,提供真实感示例数据(5 个客户、20 张不同账龄的发票)
- 附 4 套提醒邮件模板(中英双语)
- 解释如何运行和测试
## 构建顺序(请严格遵守)
请按以下顺序开发,让我尽早在屏幕上看到成果,不要长时间没有画面:
1. 先做界面:用接近真实的示例数据,把所有页面做出来(暂时不接数据库),让我能马上看到、能点击。做完先停下来,等我确认。
2. 再做功能:我确认界面后,才让按钮、表单和计算真正可用(继续用示例数据)。
3. 再接 Supabase:功能都正常后,才连接 Supabase 保存真实数据和登录(如需要)。
4. 最后上线:先确保在我电脑上运行正常,再把代码上传到 GitHub,经我同意后部署到 Vercel。
请保持简单——我是非技术背景的老板。有不清楚或需要决定的事,先问我,不要自己假设。