架构与实现
卓安Claw 经营数据录入/导入 v1.0
日期:2026-11-13
状态:案件财务、渠道成本、线索事件录入与 CSV 导入已落地;审批流/凭证附件待做
关联:卓安Claw-任务链-v1.0.md、卓安Claw-预约排期-v1.0.md
0. 一句话
经营分析不能只靠演示种子。把案件财务、渠道投放成本、线索事件变成管理者可录入、可批量导入、可审计的数据入口,报表的每个数字才能追到来源。
1. 数据底座
沿用已存在的 zhuoan_* 扩展表,不改上游案管表:
| 表 | 粒度 | 写入语义 |
|---|---|---|
zhuoan_case_finance |
案件 | 按 case_id 覆盖(upsert) |
zhuoan_channel_cost |
渠道 + 账期 | 按 (channel, period) 覆盖(upsert) |
zhuoan_lead_event |
线索事件 | 追加,不覆盖历史 |
字段:
- 财务:
contract_amount / received_amount / cost_amount / refund_amount / outcome / client_rating / notes。 - 渠道成本:
channel / period(YYYY-MM) / cost / note。 - 线索事件:
intake_id / event_type / event_at / actor / note;事件类型created/contacted/invited/visited/consulted/signed/lost。 - 线索渠道、质量分、签约金额仍在
zhuoan_lead_ops,本次未开单独表单,先通过已有种子/后续线索表单维护。
口径不变:
- 净收 = 已收 − 退款
- 毛利 = 净收 − 办案成本
- 渠道 ROI = 渠道归因案件毛利 / 渠道投放成本
2. API
| 方法 | 路径 | 说明 |
|---|---|---|
| GET | /api/zhuoan/ops |
增加 entry:可录入案件(含当前财务)、线索、渠道、已有账期 |
| POST | /api/zhuoan/ops/finance |
保存案件财务;case_id 必填 |
| POST | /api/zhuoan/ops/channel-cost |
保存渠道成本;channel/period/cost 必填 |
| POST | /api/zhuoan/ops/lead-event |
追加线索事件;intake_id/event_type 必填 |
| POST | /api/zhuoan/ops/import |
CSV 导入:{kind: finance|channel_cost|lead_event, text} |
校验:
- 金额必须为非负数字;客户评分 0–5;账期
YYYY-MM。 - 财务/线索写入校验案件数据范围;渠道成本为全所口径。
- 所有写入写审计(
zhuoan_ops_*)。 - CSV 单次最多 500 行;返回
imported / skipped / errors,错误最多回显 20 条。
CSV 模板
case_no,contract_amount,received_amount,cost_amount,refund_amount,outcome,client_rating,notes
ZA-2026-0318,150000,80000,30000,0,在办,4.6,首付款已到账
channel,period,cost,note
抖音,2026-11,8000,信息流投放
转介绍,2026-11,10000,渠道维护
intake_id,event_type,event_at,note
<线索ID>,visited,2026-11-13 10:00,客户到所面谈
也支持中文表头别名(案件编号/合同额/已收/成本/退款/渠道/账期/事件类型/事件时间/备注)。
3. UI
「经营分析 → 经营数据」:
- 案件财务:选案件自动带出当前值;合同额、已收、成本、退款、结果、客户评分、备注。
- 渠道成本:渠道(datalist 提示已有渠道)、账期、成本、备注;显示已有账期。
- 线索事件:选线索、事件类型、事件时间(默认当前)、备注。
- CSV 批量导入:选择数据类型、粘贴 CSV、查看模板、导入结果与首条错误。
保存/导入后自动刷新经营分析,复用原有总览/渠道/漏斗/律师/盈利/质量页签。
4. 权限与审计
- 仅
ops:view(管理者)可录入/导入;服务端 403,不靠前端隐藏。 - 客服、客户经理、谈案/承办律师看不到经营分析,也不能写经营数据。
- 审计动作:
zhuoan_ops_finance_saved、zhuoan_ops_channel_cost_saved、zhuoan_ops_lead_event_added、zhuoan_ops_csv_imported。
5. 演示数据与验证
GET /api/zhuoan/ops:10 个可录入案件、6 条线索、4 个渠道、账期 2026-11。- 财务保存:合同 88,888 / 已收 50,000 / 成本 12,000 / 退款 1,000 → 201,报表口径随刷新变化。
- 渠道成本:2026-10 / 1,234 → 201。
- 线索事件:contacted → 201。
- CSV:渠道成本 2 行 → imported 2;无效案件编号 → imported 0 / skipped 1 / 错误定位到第 2 行。
- Playwright 1920×1080:经营数据页签 3 个表单、10 个案件选项、6 个线索选项;渠道成本保存与 CSV 导入成功,0 console error;截图
C:\tmp\ops-entry.png。 - 测试写入已清理,未污染演示数据。
6. 边界与未做
- 没有审批/复核流:管理者录入即生效;正式版应加“录入→复核→锁定”。
- 没有凭证/发票附件;金额无流水号、无收款账户。
- 财务是案件级汇总,不是收款流水;分期到账、退费批次后续拆
zhuoan_case_payment。 - 没有月份筛选:当前报表仍是全期聚合;渠道成本已按账期存,后续加
period过滤。 - CSV 仅支持 UTF-8;Excel 另存 GBK 会报错,需要前端提示或转码。
- 线索渠道/质量分/签约金额尚无独立表单,暂由种子或后续线索编辑维护。
7. 下一步
- 经营分析月份筛选:总览/渠道/漏斗/律师/财务联动,渠道成本按
period过滤。 - 财务流水:收款/退费/成本明细,案件汇总由流水推导,支持凭证附件。
- 录入复核:财务与渠道成本双人复核,锁定后不可改,改需走变更单。
- CSV 模板下载与字段校验预览(先预览、后提交)。
- 线索表单补齐渠道、质量分、签约金额,和线索事件同一处维护。