# 专项排查图谱实施记录

## 实施范围

- 当前口径保留资金流图谱和关系图谱两个页签。
- 页面嵌入项目详情“专项排查”页签。
- 后端不再实时聚合 `ccdi_bank_statement`。
- 资金流图谱后端读取四张基础图谱表，并叠加手工资金流向表：
  - `lx_fund_flow_subject_node`
  - `lx_fund_flow_account_node`
  - `lx_fund_flow_own_account_edge`
  - `lx_fund_flow_detail_edge`
  - `lx_fund_flow_manual_edge`
- 关系图谱后端读取四张关系图谱表：
  - `lx_rel_node`
  - `lx_rel_family_edge`
  - `lx_rel_stock_edge`
  - `lx_rel_represent_edge`
- 默认查询全部流水；用户选择日期时按 `lx_fund_flow_detail_edge.trx_date` 过滤。
- 点击资金边可分页查看逐笔流水。
- 点击可穿透节点可按 `object_key` 设为中心重新查询。

## 关键改动

- 后端 `CcdiFundGraphMapper.xml` 改为四表查询和实时聚合。
- 后端 `CcdiFundGraphServiceImpl` 支持 `objectKey` 查询、节点穿透和边明细查询。
- 后端新增 `/ccdi/project/fund-graph/search` 主体搜索接口。
- 前端新增 `ruoyi-ui/src/api/ccdi/graph/fundGraph.js`。
- 前端新增 `ruoyi-ui/src/api/ccdi/graph/relationGraph.js`。
- 前端新增 `FundGraphSection.vue`，提供紧凑型图谱卡片和边明细抽屉。
- `SpecialCheck.vue` 中原“图谱外链展示”占位卡替换为图谱组件。
- `ProjectAnalysisDialog.vue` 中“资金流向”和“关系图谱”页签替换为简版图谱展示。

## 测试数据

测试数据脚本：

```text
sql/ccdi/graph/02_lx_fund_graph_seed_test_data.sql
```

dev 库测试数据：

```text
资金流图谱测试身份证号：617673198109148314
关系图谱测试身份证号：330101198001010011
主体点：10
账户点：14
持有边：14
明细边：72
```

覆盖场景：

- 默认全部流水聚合。
- 日期范围筛选聚合。
- 支出 `flag = 1`。
- 收入 `flag = 2`。
- 家庭关系标签：配偶、父亲、母亲。
- 普通对手方：支付宝、淘宝、美团、财付通、小店、银行转账。
- 家庭关系节点按 `object_key` 设为中心查询。

## 验证

- `mvn -pl ccdi-project -am compile -DskipTests` 通过。
- `npm run build:prod` 通过。
- dev 库 SQL 校验通过：身份证号可定位主体，默认全部流水和日期筛选均能聚合出资金边。

## 注意

- 生产库 DDL 不随应用发布自动执行。
- 生产需人工执行 `sql/ccdi/graph/01_lx_fund_graph_mysql_ddl.sql` 后再发布后端。
- 生产如已建资金流图谱旧表，优先执行 `sql/ccdi/graph/06_lx_fund_graph_existing_table_supplement.sql` 补字段和补索引。
- `lx_fund_flow_sum_edge` 不作为当前纪检资金图谱页面依赖。
- 如果目标库未建四张 `lx_*` 表，后端接口会报表不存在。
