# 对公多表业务库与数据卡说明 ## 1. 定位 本库是脱敏的业务演示库,表结构按融资租赁对公项目拆分,不包含真实客户信息。它用于验证:一个数据卡可以通过受控 SQL 连接多张表、选取部分字段、映射为统一业务字段,再交给 mini-openclaw 的 Skills 和规则使用。 客户经理不配置数据库或 SQL。配置管理员维护数据连接、允许访问的表、参数化 SQL、字段映射和口径;客户经理只选择已发布的业务方案。 ## 2. 文件 - 可重复生成的结构与数据:`backend/fixtures/xingbang_demo/business_database.sql` - 生成服务:`backend/services/business_demo_database.py` - 手工生成入口:`scripts/build_business_demo_db.py` - 本地运行库:`backend/xingbang_data/xingbang_business_demo.sqlite3`(运行数据,不提交 Git) 重新生成: ```powershell .\backend\venv\Scripts\python.exe scripts\build_business_demo_db.py --force ``` ## 3. 业务表 | 表 | 用途 | |---|---| | `corporate_customer` | 对公客户主数据 | | `lease_project` | 租赁项目主数据 | | `financing_scheme` | 融资方案及版本 | | `financial_statement` | 多期、多口径财务报表 | | `lease_asset` | 租赁物明细及唯一编号 | | `insurance_policy` | 保险保单 | | `guarantee_measure` | 保证金、保证及质押措施 | | `credit_snapshot` | 征信快照 | | `legal_case` | 涉诉与执行案件 | | `repayment_source` | 还款来源及佐证状态 | | `project_document` | 项目材料索引,不保存文件正文 | 库内提供 `DEMO-A`、`DEMO-B`、`DEMO-C` 三个项目。金额、名称和编号均为演示数据。 ## 4. 已配置的数据卡 | 数据卡 | SQL 涉及的表 | 主要标准字段 | |---|---|---| | 项目与授信方案 | 客户、项目、融资方案 | `project.id`、`customer.name`、`facility.amount`、`facility.term` | | 多期财务报表 | 财务报表 | 期间、口径、资产、负债、经营现金流 | | 征信与涉诉汇总 | 征信、涉诉 | 报告日期、逾期、查询次数、案件数量和金额 | | 租赁物与增信汇总 | 租赁物、保险、增信 | 租赁物价值、重复编号、保额、保证金、保证金额 | | 还款来源与材料 | 还款来源 | 是否依赖特定回款、材料状态、预计金额 | 已发布方案 `plan-business-sql` 在配置工作台用于单独自查;项目工作台中的 `corporate.business-sql` 使用同一组数据卡完成 AI 预审。 ## 5. SQL 配置约束 - 仅允许一条参数化 `SELECT` 或 `WITH ... SELECT`。 - 项目条件使用服务端参数 `:project_id`,不得字符串拼接。 - 数据连接配置允许表白名单,SQL 不能访问白名单之外的表或系统表。 - SQLite 以只读模式打开,并由数据库授权器再次禁止写操作。 - 每次查询限制时间和行数;数据卡负责多期、口径、单位和唯一粒度对齐。 - 数据库密码只引用服务器环境变量,不进入 SQL、数据卡或运行快照。 - 每次运行冻结数据卡版本、字段映射、查询结果哈希和字段级来源,AI 不具备自行执行 SQL 的工具。 ## 6. 生产替换方式 正式环境可将连接类型从 SQLite 换为 PostgreSQL 或 MySQL,SQL 改为只读视图查询,字段仍映射到相同的标准字段。Skills、规则和报告模板不需要理解源系统的表名,从而避免 ERP 字段变化直接影响业务逻辑。