c670b9e454
- 确定性领域引擎(分类/评分/分级/红线/费用/裁决)+LLM(通义千问)语言理解 - 6步评估向导、服务端草稿持久化(跨设备/编辑草稿保护) - 工作流(草稿→风控→管理层)、RBAC、报告导出、校准、客户/费率/红线/最低工资管理 - 专业图标体系替换全部emoji、看板美化 - 生产化:API_BASE可配置(同源反代)、auth密钥惰性读取修复RBAC - 444单测+204前端测试+51 e2e
5.2 KiB
5.2 KiB
外包风险评估系统 — 功能增补与优化全景方案
已完成 ✅
P0 盈利与定价
- 现金流 / 垫资峰值测算(纯函数 + 详情页"峰值垫资"卡)
- 盈亏平衡 / 定价空间曲线(SVG 折线图 + 安全降价空间提示)
- 运营控制指标看板(盈利/运营/质量三组 KPI,建议承接项目)
流程与协作
- 管理层直接调整状态(终态 override,含审计留痕)
- 全流程审计留痕(发起→风控→管理层→归档,全部写审计记录 + PG 持久化)
- 归档管理(仅终态可归档、取消归档重置、前端"进行中/已归档"视图)
- 审批驳回多方向(风控→退回销售;管理层→退回风控/退回销售/放弃)
- 操作记录时间线美化(角色徽章 + 轴线 + 备注引用块)
待实现(按优先级排列)
P1 — 高价值 / 中等开发量
1. 多报价方案对比 ✅
- 后端:
POST/GET/DELETE /api/assessments/:id/scenarios— 每评估最多 5 套方案,创建时即时计算盈利 - 持久化:
scenarios表(迁移 1730000003000),存 inputs + result JSONB - 验证: 创建方案→后端即时算出净利率,列表查询返回正确
2. 费率表后台化(消除硬编码) ✅
- 后端:
GET/POST/DELETE /api/rates+POST /api/rates/:id/review标记已复核 - 持久化:
rate_tables表(迁移 1730000004000),按地域/分类/key/版本唯一,支持生效日期 - 验证: CRUD + 标记复核 + 按地域查询当前生效版本均通过
3. 运营指标实际值回填 & 评估闭环 ✅
- 后端:
POST/GET /api/assessments/:id/actuals+GET /api/accuracy准确度统计 - 持久化:
actuals表(迁移 1730000005000),按评估/月/指标名唯一(upsert) - 验证: 批量回填 3 指标→查询返回 3 条,准确度统计 count=1
4. 合规红线库(可配置) ✅
- 后端:
GET/POST/DELETE /api/redline-rules+GET /api/redline-rules/active?region=&businessType= - 持久化:
redline_rules表(迁移 1730000006000),支持按地域/业务类型条件启用 + 法规引用 - 验证: 创建→全量查询→按条件筛选均正确
P2 — 中价值 / 中等开发量
5. 客户信用与集中度风险 ✅
- 后端:
customers表(迁移 1730000007000)+ CRUD API + 集中度计算(超 30% 自动警告) - 验证: 创建 2 客户→集中度 71.4%→触发警告 ✓
6. 评估有效期 & 到期复评 ✅
- 后端: assessments 加
expires_at(迁移 1730000008000,默认 6 个月)+GET /api/assessments/expiring(30 天内到期) - 验证: 端点正常返回(现有评估暂未到期)✓
7. 审批 SLA & 超时升级 ✅
- 后端: workflow_status 加
entered_at(迁移 1730000009000)+GET /api/assessments/overdue(按角色 SLA 计算超时) - SLA: 风控 24h / 管理层 48h(可配置)
- 验证: 端点正常返回 ✓
8. 驳回原因结构化 ✅
- 后端:
reject_reasons表(迁移 1730000010000)+POST/GET /api/assessments/:id/reject-reason+GET /api/reject-reason-stats - 枚举: 定价不足/合规缺陷/资料不全/客户风险/盈利不达标/其他
- 验证: 记录 2 条驳回原因→查询返回→统计分布正确 ✓
P3 — 中长期 / 较大开发量
9. 组合看板 / 管理驾驶舱 ✅
- 后端:
GET /api/dashboard/stats— 按业务类型/行业/地域统计 + 风险分布 + 月度趋势 - 验证: 返回 byBusinessType(2)/riskDist(2)/trend(1) ✓
10. 相似历史项目检索(jieba 分词) ✅
- 后端:
GET /api/similar?description=...— jieba 中文分词 + PG ILIKE 多关键词匹配 + 命中数排序 - 依赖:
nodejieba(C++ 扩展,分词质量好) - 验证: "信用卡客服外包银行坐席服务"→命中 2 条,最相关 rank=5 ✓
11. 附件与证据管理 ✅
- 后端:
POST/GET /api/assessments/:id/attachments+DELETE /api/attachments/:id - 存储: 本地 fs(UPLOAD_DIR 可配)+
attachments表元数据(迁移 1730000012000) - 验证: 上传→存文件→查询返回 ✓
12. 权限与数据安全(RBAC 基础) ✅
- 模块:
src/auth/index.ts— JWT 签发/验证 + authMiddleware + requireRole - 策略: AUTH_SECRET 未配置=演示模式(向后兼容);配置后强制校验
- 验证: 演示模式所有 API 正常 ✓
13. LLM 经验库沉淀 ✅
- 后端:
POST /api/experience+GET /api/experience?businessType=&industry= - 持久化:
experience_library表(迁移 1730000013000),tags + GIN 索引 - 验证: 沉淀→按业务类型检索返回 ✓
技术债 & 工程优化
| 项目 | 说明 |
|---|---|
| 前端 snapshot 测试 | 详情页改动频繁,建议按功能区拆分 snapshot |
| E2E 自动化 | 用已安装的 Playwright 补回归测试(登录→新建→详情→审批→归档) |
| 性能 | 列表大数据量(1000+)时前端虚拟滚动 + 后端查询索引优化 |
| 部署 | Docker Compose(Hono + Vite + PG)一键启动 |
下一步
告诉我要做哪个(或哪几个),我直接开干。也可以说"按 P1 顺序全做",我会逐个完成并验证。