# 纪检初核系统 - 原型图开发设计文档

## 一、项目概述

### 1.1 项目背景

本项目是一个**纪检初核系统**，用于对银行信贷部门员工进行初步核查，通过分析银行流水、征信报告、员工关系等数据，识别潜在的违规行为和风险。

### 1.2 项目目标

- 支持多维度数据导入（流水、征信、员工关系）
- 提供可配置的风险监测模型
- 自动识别高风险人员并生成初核提示
- 提供专项排查工作台进行深入分析
- 支持关系图谱和资金流向分析

### 1.3 技术栈

- **后端**: Spring Boot 3.5.8 + MyBatis 3.0.5 + MySQL 8.2.0
- **前端**: Vue 2.6.12 + Element UI 2.15.14
- **数据库**: MySQL（表前缀：ccdi_）

---

## 二、页面结构与功能分析

### 2.1 页面导航结构

```
纪检初核系统
├── 项目管理
│   ├── 项目详情
│   ├── 上传数据
│   ├── 参数配置
│   └── 初核提示
├── 初核结果
│   ├── 专项排查工作台（高风险）
│   ├── 专项排查工作台（中风险）
│   └── 专项排查
└── 流水明细查询
```

---

### 2.2 页面1：上传数据

#### 功能描述

支持在一个项目中上传多个主体/账户数据，进行汇总/独立分析。

#### 页面元素

| 元素类型   | 元素名称/内容  | 说明                  |
|--------|----------|---------------------|
| 项目信息   | 项目状态     | 显示项目当前状态（如：已完成）     |
|        | 最后更新时间   | 显示项目最后更新时间          |
| 上传模块1  | 流水导入     | 支持Excel、PDF格式文件批量上传 |
|        |          | 占位符：拖拽文件到此处或点击上传    |
|        |          | 支持格式：xlsx, xls, pdf |
| 上传模块2  | 已上传流水查询  | 支持HTML格式            |
|        |          | 占位符：拖拽文件到此处或点击上传    |
| 上传模块3  | 征信导入     | 支持HTML格式征信报告解析      |
| 上传模块4  | 员工家庭关系导入 | Excel模板上传员工家庭关系信息   |
|        |          | 支持格式：xlsx, xls      |
| 名单库选择  | 高风险人员名单  | 复选框，显示人数（如68人）      |
|        | 历史可疑人员名单 | 复选框，显示人数（如45人）      |
|        | 监管关注名单   | 复选框，显示人数（如32人）      |
| 数据质量检查 | 数据完整性    | 进度条，显示百分比（如98.5%）   |
|        | 格式一致性    | 进度条，显示百分比（如95.2%）   |
|        | 余额连续性    | 进度条，显示百分比（如92.8%）   |
|        | 检查结果     | 显示发现的问题数量           |
| 操作按钮   | 拉取本行信息   | 触发拉取银行内部信息          |
|        | 生成报告     | 生成初核报告              |

#### 数据模型

```sql
-- 项目表
CREATE TABLE ccdi_project (
    project_id BIGINT PRIMARY KEY AUTO_INCREMENT,
    project_name VARCHAR(200) NOT NULL COMMENT '项目名称',
    project_status VARCHAR(50) COMMENT '项目状态',
    create_time DATETIME DEFAULT CURRENT_TIMESTAMP,
    update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    create_by VARCHAR(100),
    update_by VARCHAR(100),
    remark VARCHAR(500)
) COMMENT '项目表';

-- 数据上传记录表
CREATE TABLE ccdi_data_upload (
    upload_id BIGINT PRIMARY KEY AUTO_INCREMENT,
    project_id BIGINT COMMENT '项目ID',
    upload_type VARCHAR(50) COMMENT '上传类型：流水/征信/家庭关系',
    file_name VARCHAR(500) COMMENT '文件名',
    file_path VARCHAR(1000) COMMENT '文件路径',
    upload_status VARCHAR(50) COMMENT '上传状态',
    upload_time DATETIME COMMENT '上传时间',
    create_time DATETIME DEFAULT CURRENT_TIMESTAMP,
    create_by VARCHAR(100)
) COMMENT '数据上传记录表';

-- 名单库选择记录表
CREATE TABLE ccdi_blacklist_selection (
    selection_id BIGINT PRIMARY KEY AUTO_INCREMENT,
    project_id BIGINT COMMENT '项目ID',
    blacklist_type VARCHAR(50) COMMENT '名单类型：高风险/历史可疑/监管关注',
    blacklist_id BIGINT COMMENT '名单ID',
    create_time DATETIME DEFAULT CURRENT_TIMESTAMP
) COMMENT '名单库选择记录表';

-- 数据质量检查表
CREATE TABLE ccdi_data_quality (
    quality_id BIGINT PRIMARY KEY AUTO_INCREMENT,
    project_id BIGINT COMMENT '项目ID',
    check_item VARCHAR(100) COMMENT '检查项：完整性/一致性/连续性',
    check_result DECIMAL(5,2) COMMENT '检查结果百分比',
    issue_count INT COMMENT '问题数量',
    issue_detail TEXT COMMENT '问题详情',
    create_time DATETIME DEFAULT CURRENT_TIMESTAMP
) COMMENT '数据质量检查表';
```

---

### 2.3 页面2：参数配置

#### 功能描述

配置风险监测模型的阈值参数。

#### 页面元素

| 元素类型     | 元素名称/内容 | 说明              |
|----------|---------|-----------------|
| 模型名称     | 大额交易模型  | 下拉选择            |
| 阈值参数配置表格 |         |                 |
| 表格列1     | 监测项     | 如：单笔交易额         |
| 表格列2     | 描述      | 如：单笔超过该金额视为大额交易 |
| 表格列3     | 阈值设置    | 输入框，如：50000     |
| 表格列4     | 单位      | 如：元             |
| 操作按钮     | 保存配置    | 保存当前配置          |
|          | 恢复默认    | 恢复默认值           |
|          | 一键导出配置  | 导出配置文件          |

#### 监测项配置

1. **单笔交易额**: 50000元
2. **累计交易额**: 5000000元
3. **大额存现**: 200000元
4. **短时多次存现**: 100000元/4小时
5. **频繁转账**: 10次/日
6. **转账频率**: 1000000元/日

#### 数据模型

```sql
-- 风险模型表
CREATE TABLE ccdi_risk_model (
    model_id BIGINT PRIMARY KEY AUTO_INCREMENT,
    model_name VARCHAR(200) NOT NULL COMMENT '模型名称',
    model_code VARCHAR(100) COMMENT '模型编码',
    status VARCHAR(50) DEFAULT 'active' COMMENT '状态',
    create_time DATETIME DEFAULT CURRENT_TIMESTAMP,
    update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    create_by VARCHAR(100),
    update_by VARCHAR(100)
) COMMENT '风险模型表';

-- 模型参数配置表
CREATE TABLE ccdi_model_parameter (
    parameter_id BIGINT PRIMARY KEY AUTO_INCREMENT,
    model_id BIGINT COMMENT '模型ID',
    parameter_name VARCHAR(200) COMMENT '参数名称',
    parameter_code VARCHAR(100) COMMENT '参数编码',
    parameter_desc VARCHAR(500) COMMENT '参数描述',
    threshold_value DECIMAL(20,2) COMMENT '阈值',
    unit VARCHAR(50) COMMENT '单位',
    create_time DATETIME DEFAULT CURRENT_TIMESTAMP,
    update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
) COMMENT '模型参数配置表';
```

---

### 2.4 页面3：初核提示

#### 功能描述

展示初核结果的总体概况，包括人员风险分布、模型触发情况、可疑交易明细等。

#### 页面元素

| 元素类型       | 元素名称/内容                                           | 说明                    |
|------------|---------------------------------------------------|-----------------------|
| 统计卡片       | 总人数                                               | 显示总人数（如500）           |
|            | 无预警人数                                             | 显示无预警人数（如432）         |
|            | 低风险                                               | 显示低风险人数（如38）          |
|            | 中风险                                               | 显示中风险人数（如20）          |
|            | 高风险                                               | 显示高风险人数（如10）          |
| 模型触发情况表格   | 模型名称                                              | 如：大额交易监测              |
|            | 触发数                                               | 触发次数                  |
|            | 触发人员                                              | 触发人员列表                |
|            | 操作                                                | 查看详情                  |
| 涉疑交易明细表    | 交易时间、可疑人员、关联人、关联员工、关系、摘要/交易类型、交易金额、操作             |                       |
| 高风险人员清单    | 姓名、身份证号、所属部门、风险评分、触发模型数、核心异常点、操作                  | 复选框支持批量操作             |
| 中风险人员TOP10 | 姓名、身份证号、所属部门、触发模型、触发模型数、操作                        |                       |
| 异常账户清单     | 账户号、开户人姓名、开户银行、异常类型、异常发生时间、状态、操作                  |                       |
| 涉及违法人员清单表  | 姓名、身份证号、失信被执行人、刑事判决、行政处罚、公安涉案记录、限制高消费、违法信息更新时间、操作 |                       |
| 筛选条件       | 姓名/工号搜索                                           | 输入框                   |
|            | 部门筛选                                              | 下拉选择                  |
|            | 风险等级筛选                                            | 下拉选择（全部/高风险/中风险/低风险）  |
|            | 可疑人员类型筛选                                          | 下拉选择（全部/名单库命中/模型规则命中） |
|            | 模型筛选                                              | 复选框（大额交易/可疑财产/频繁转账等）  |
|            | 模型筛选逻辑                                            | 单选：同时触发以上模型/触发任意模型    |
| 批量操作       | 批量生成报告                                            |                       |
|            | 批量导出证据                                            |                       |
|            | 批量添加到关注列表                                         |                       |

#### 数据模型

```sql
-- 人员风险评分表
CREATE TABLE ccdi_person_risk_score (
    score_id BIGINT PRIMARY KEY AUTO_INCREMENT,
    project_id BIGINT COMMENT '项目ID',
    person_id BIGINT COMMENT '人员ID',
    person_name VARCHAR(100) COMMENT '姓名',
    id_card VARCHAR(50) COMMENT '身份证号',
    department VARCHAR(200) COMMENT '所属部门',
    risk_level VARCHAR(50) COMMENT '风险等级：高/中/低',
    risk_score INT COMMENT '风险评分',
    trigger_model_count INT COMMENT '触发模型数量',
    core_issue VARCHAR(500) COMMENT '核心异常点',
    create_time DATETIME DEFAULT CURRENT_TIMESTAMP
) COMMENT '人员风险评分表';

-- 模型触发记录表
CREATE TABLE ccdi_model_trigger_record (
    trigger_id BIGINT PRIMARY KEY AUTO_INCREMENT,
    project_id BIGINT COMMENT '项目ID',
    model_id BIGINT COMMENT '模型ID',
    model_name VARCHAR(200) COMMENT '模型名称',
    trigger_count INT COMMENT '触发次数',
    trigger_persons TEXT COMMENT '触发人员列表',
    create_time DATETIME DEFAULT CURRENT_TIMESTAMP
) COMMENT '模型触发记录表';

-- 涉疑交易明细表
CREATE TABLE ccdi_suspicious_transaction (
    transaction_id BIGINT PRIMARY KEY AUTO_INCREMENT,
    project_id BIGINT COMMENT '项目ID',
    transaction_time DATETIME COMMENT '交易时间',
    suspicious_person VARCHAR(100) COMMENT '可疑人员',
    related_person VARCHAR(100) COMMENT '关联人',
    related_employee VARCHAR(100) COMMENT '关联员工',
    relationship VARCHAR(100) COMMENT '关系',
    transaction_type VARCHAR(200) COMMENT '摘要/交易类型',
    transaction_amount DECIMAL(20,2) COMMENT '交易金额',
    create_time DATETIME DEFAULT CURRENT_TIMESTAMP
) COMMENT '涉嫌交易明细表';

-- 异常账户表
CREATE TABLE ccdi_abnormal_account (
    account_id BIGINT PRIMARY KEY AUTO_INCREMENT,
    project_id BIGINT COMMENT '项目ID',
    account_no VARCHAR(100) COMMENT '账户号',
    account_holder VARCHAR(100) COMMENT '开户人姓名',
    bank_name VARCHAR(200) COMMENT '开户银行',
    abnormal_type VARCHAR(100) COMMENT '异常类型',
    abnormal_time DATETIME COMMENT '异常发生时间',
    account_status VARCHAR(50) COMMENT '状态',
    create_time DATETIME DEFAULT CURRENT_TIMESTAMP
) COMMENT '异常账户表';

-- 违法人员信息表
CREATE TABLE ccdi_illegal_person_info (
    info_id BIGINT PRIMARY KEY AUTO_INCREMENT,
    person_id BIGINT COMMENT '人员ID',
    person_name VARCHAR(100) COMMENT '姓名',
    id_card VARCHAR(50) COMMENT '身份证号',
    is_dishonesty_executor VARCHAR(10) COMMENT '是否失信被执行人',
    is_criminal_penalty VARCHAR(10) COMMENT '是否有刑事判决',
    is_administrative_penalty VARCHAR(10) COMMENT '是否有行政处罚',
    is_police_case VARCHAR(10) COMMENT '是否有公安涉案记录',
    is_limit_consumption VARCHAR(10) COMMENT '是否限制高消费',
    update_time DATETIME COMMENT '违法信息更新时间',
    create_time DATETIME DEFAULT CURRENT_TIMESTAMP
) COMMENT '违法人员信息表';
```

---

### 2.5 页面4：专项排查工作台-高风险

#### 功能描述

针对高风险人员的详细排查工作台。

#### 页面元素

| 元素类型      | 元素名称/内容                                          | 说明                    |
|-----------|--------------------------------------------------|-----------------------|
| 排查对象信息    | 排查对象                                             | 如：李四                  |
|           | 姓名、工号、部门、职级、入职时间、风险等级、所属项目                       |                       |
| 触发模型列表    | 触发模型（5个）                                         |                       |
|           | 大额交易监测                                           | 3笔 > 50万              |
|           | 频繁转账监测                                           | 1小时25笔                |
|           | 关联交易排查                                           | 配偶账户频繁交易              |
|           | 异常销户监测                                           | 1个账户突然销户              |
|           | 疑似赌博交易                                           | 涉赌商户5笔                |
| 初核评分      | 风险评分                                             | 如：85分（高风险阈值：60分）      |
| 异常详情-大额交易 | 交易时间、本方账号/主体、对方名称/账户、摘要/交易类型、交易金额、标记状态           | 标记状态下拉：标记正常/标记可疑/确认异常 |
| 异常详情-频繁转账 | 时间段、总笔数、总金额、主要对手、模式特征、核查建议                       |                       |
| 异常详情-关联交易 | 关联人、关联账户、交易特征、异常点、需核实                            |                       |
| 排查工具箱     | 查看完整流水、查看征信报告、查看资产信息、关系图谱分析、资金流向分析、导出所有证据、添加到案例库 |                       |
| 排查进度标签页   | 异常明细、资产分析、征信摘要、关系人图谱、资金流向                        |                       |
| 操作按钮      | 生成报告、生成排查报告、标记为案例、关注                             |                       |

#### 数据模型

```sql
-- 排查对象表
CREATE TABLE ccdi_investigation_object (
    object_id BIGINT PRIMARY KEY AUTO_INCREMENT,
    project_id BIGINT COMMENT '项目ID',
    person_id BIGINT COMMENT '人员ID',
    person_name VARCHAR(100) COMMENT '姓名',
    employee_no VARCHAR(100) COMMENT '工号',
    department VARCHAR(200) COMMENT '部门',
    position_level VARCHAR(100) COMMENT '职级',
    entry_date DATE COMMENT '入职时间',
    risk_level VARCHAR(50) COMMENT '风险等级',
    risk_score INT COMMENT '风险评分',
    investigation_status VARCHAR(50) COMMENT '排查状态',
    create_time DATETIME DEFAULT CURRENT_TIMESTAMP,
    update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
) COMMENT '排查对象表';

-- 排查触发模型表
CREATE TABLE ccdi_investigation_trigger_model (
    trigger_model_id BIGINT PRIMARY KEY AUTO_INCREMENT,
    object_id BIGINT COMMENT '排查对象ID',
    model_id BIGINT COMMENT '模型ID',
    model_name VARCHAR(200) COMMENT '模型名称',
    trigger_desc VARCHAR(500) COMMENT '触发描述',
    create_time DATETIME DEFAULT CURRENT_TIMESTAMP
) COMMENT '排查触发模型表';

-- 异常交易明细表
CREATE TABLE ccdi_abnormal_transaction_detail (
    detail_id BIGINT PRIMARY KEY AUTO_INCREMENT,
    object_id BIGINT COMMENT '排查对象ID',
    transaction_time DATETIME COMMENT '交易时间',
    own_account VARCHAR(200) COMMENT '本方账号/主体',
    counterparty VARCHAR(200) COMMENT '对方名称/账户',
    transaction_type VARCHAR(200) COMMENT '摘要/交易类型',
    transaction_amount DECIMAL(20,2) COMMENT '交易金额',
    mark_status VARCHAR(50) COMMENT '标记状态：正常/可疑/异常',
    create_time DATETIME DEFAULT CURRENT_TIMESTAMP
) COMMENT '异常交易明细表';

-- 排查进度表
CREATE TABLE ccdi_investigation_progress (
    progress_id BIGINT PRIMARY KEY AUTO_INCREMENT,
    object_id BIGINT COMMENT '排查对象ID',
    progress_type VARCHAR(100) COMMENT '进度类型：流水分析/征信分析/资产比对/人工核实',
    progress_status VARCHAR(50) COMMENT '进度状态',
    complete_time DATETIME COMMENT '完成时间',
    create_time DATETIME DEFAULT CURRENT_TIMESTAMP
) COMMENT '排查进度表';

-- 关注列表表
CREATE TABLE ccdi_attention_list (
    attention_id BIGINT PRIMARY KEY AUTO_INCREMENT,
    object_id BIGINT COMMENT '排查对象ID',
    person_id BIGINT COMMENT '人员ID',
    attention_type VARCHAR(50) COMMENT '关注类型',
    create_by VARCHAR(100) COMMENT '创建人',
    create_time DATETIME DEFAULT CURRENT_TIMESTAMP
) COMMENT '关注列表表';
```

---

### 2.6 页面5：专项排查

#### 功能描述

员工详查分析功能，包括资产收入分析、图谱分析、采购查询等。

#### 页面元素

| 元素类型    | 元素名称/内容                                 | 说明                        |
|---------|-----------------------------------------|---------------------------|
| 查询条件    | 身份证号                                    | 输入框                       |
|         | 开始日期、结束日期                               | 日期选择器                     |
|         | 查询、重置                                   | 按钮                        |
| 详查结果    | 详查结果描述                                  | 如：收入+负债远低于资产              |
| 基本信息    | 姓名、身份证号、资产/收入比                          |                           |
| 收入分析    | 工资收入、其他收入                               | 显示金额和百分比                  |
| 本人资产分析  | 房产、存款、其他                                | 显示金额和百分比                  |
| 配偶资产分析  | 房产、车产、其他                                | 显示金额和百分比                  |
| 负债分析    | 房贷、其他贷款                                 | 显示金额和百分比                  |
| 汇总信息    | 本人+配偶资产合计、总负债                           |                           |
| 图谱分析标签页 | 关系人图谱、资金流图谱、实控账户图谱                      |                           |
| 关系人图谱   | 姓名搜索框、生成图谱按钮                            |                           |
|         | 可视化图谱                                   | 显示配偶、对外投资、股东、高管关联等        |
|         | 操作按钮                                    | 展开所有关联、仅显示直接关联、导出图谱、筛选、刷新 |
| 采购查询表格  | 序号、采购事项名称、交易日期、采购金额、供应商名称、对方账号、联系人、关联员工 |                           |
| 扩展查询标签页 | 采购查询、人员调动查询、招聘查询                        |                           |
| 采购查询条件  | 采购时间范围、关联员工                             |                           |

#### 数据模型

```sql
-- 员工资产分析表
CREATE TABLE ccdi_employee_asset_analysis (
    analysis_id BIGINT PRIMARY KEY AUTO_INCREMENT,
    person_id BIGINT COMMENT '人员ID',
    person_name VARCHAR(100) COMMENT '姓名',
    id_card VARCHAR(50) COMMENT '身份证号',
    asset_income_ratio DECIMAL(10,2) COMMENT '资产/收入比',
    annual_income DECIMAL(20,2) COMMENT '年收入',
    own_asset DECIMAL(20,2) COMMENT '本人资产',
    spouse_asset DECIMAL(20,2) COMMENT '配偶资产',
    total_asset DECIMAL(20,2) COMMENT '本人+配偶资产合计',
    total_liability DECIMAL(20,2) COMMENT '总负债',
    income_salary DECIMAL(20,2) COMMENT '工资收入',
    income_other DECIMAL(20,2) COMMENT '其他收入',
    asset_house DECIMAL(20,2) COMMENT '房产',
    asset_deposit DECIMAL(20,2) COMMENT '存款',
    asset_other DECIMAL(20,2) COMMENT '其他',
    liability_mortgage DECIMAL(20,2) COMMENT '房贷',
    liability_loan DECIMAL(20,2) COMMENT '其他贷款',
    spouse_asset_house DECIMAL(20,2) COMMENT '配偶房产',
    spouse_asset_car DECIMAL(20,2) COMMENT '配偶车产',
    spouse_asset_other DECIMAL(20,2) COMMENT '配偶其他',
    create_time DATETIME DEFAULT CURRENT_TIMESTAMP
) COMMENT '员工资产分析表';

-- 关系人图谱表
CREATE TABLE ccdi_relationship_graph (
    graph_id BIGINT PRIMARY KEY AUTO_INCREMENT,
    person_id BIGINT COMMENT '人员ID',
    related_person_name VARCHAR(100) COMMENT '关联人姓名',
    relationship_type VARCHAR(100) COMMENT '关系类型：配偶/对外投资/股东/高管关联',
    related_entity_name VARCHAR(200) COMMENT '关联实体名称',
    share_ratio DECIMAL(5,2) COMMENT '持股比例',
    position VARCHAR(200) COMMENT '职位',
    create_time DATETIME DEFAULT CURRENT_TIMESTAMP
) COMMENT '关系人图谱表';

-- 采购查询记录表
CREATE TABLE ccdi_purchase_record (
    purchase_id BIGINT PRIMARY KEY AUTO_INCREMENT,
    purchase_name VARCHAR(500) COMMENT '采购事项名称',
    transaction_date DATE COMMENT '交易日期',
    purchase_amount DECIMAL(20,2) COMMENT '采购金额',
    supplier_name VARCHAR(500) COMMENT '供应商名称',
    supplier_account VARCHAR(200) COMMENT '对方账号',
    contact_person VARCHAR(100) COMMENT '联系人',
    related_employee VARCHAR(100) COMMENT '关联员工',
    create_time DATETIME DEFAULT CURRENT_TIMESTAMP
) COMMENT '采购查询记录表';
```

---

### 2.7 页面6：专项排查工作台-中风险

#### 功能描述

针对中风险人员的排查工作台，功能与高风险工作台类似，但风险等级不同。

#### 页面元素

与高风险工作台结构相同，主要区别：

- 风险等级显示为"中风险"
- 初核评分可能较低
- 触发模型数量可能较少

数据模型与高风险工作台共用。

---

### 2.8 页面7：流水明细查询

#### 功能描述

查询和筛选银行流水明细。

#### 页面元素

| 元素类型   | 元素名称/内容                                 | 说明          |
|--------|-----------------------------------------|-------------|
| 筛选条件   | 交易时间范围                                  | 开始日期、结束日期   |
|        | 对方名称                                    | 输入框，支持空值筛选  |
|        | 摘要                                      | 输入框，支持空值筛选  |
|        | 分类                                      | 多选下拉        |
|        | 本方主体                                    | 多选下拉        |
|        | 本方银行                                    | 多选下拉        |
|        | 本方账户                                    | 多选下拉        |
|        | 交易金额                                    | 范围输入（最小～最大） |
|        | 对方账户                                    | 输入框，支持空值筛选  |
|        | 交易类型                                    | 输入框，支持空值筛选  |
|        | 剔除关联方与本方                                | 复选框         |
|        | 查询、重置                                   | 按钮          |
| 流水类型切换 | 全部、流入、流出                                | 单选或Tab切换    |
| 流水明细表格 | 交易时间、本行账户/主体、对方名称/账户、摘要/交易类型、交易金额、分类、操作 | 支持复选框       |
| 表格操作   | 修改分类                                    | 下拉或弹窗       |
| 底部操作栏  | 已筛选X笔流水，已选中X笔流水                         |             |
|        | 导出流水                                    |             |
|        | 加入分析                                    |             |
| 标签页    | 流水、对手方                                  |             |

#### 数据模型

```sql
-- 流水明细表
CREATE TABLE ccdi_transaction_detail (
    detail_id BIGINT PRIMARY KEY AUTO_INCREMENT,
    project_id BIGINT COMMENT '项目ID',
    transaction_time DATETIME COMMENT '交易时间',
    own_account VARCHAR(200) COMMENT '本方账户/主体',
    own_bank VARCHAR(200) COMMENT '本方银行',
    counterparty_name VARCHAR(500) COMMENT '对方名称/账户',
    counterparty_account VARCHAR(200) COMMENT '对方账户',
    transaction_summary VARCHAR(500) COMMENT '摘要',
    transaction_type VARCHAR(200) COMMENT '交易类型',
    transaction_amount DECIMAL(20,2) COMMENT '交易金额',
    transaction_direction VARCHAR(50) COMMENT '交易方向：流入/流出',
    category VARCHAR(200) COMMENT '分类',
    create_time DATETIME DEFAULT CURRENT_TIMESTAMP
) COMMENT '流水明细表';

-- 流水分类表
CREATE TABLE ccdi_transaction_category (
    category_id BIGINT PRIMARY KEY AUTO_INCREMENT,
    category_code VARCHAR(100) COMMENT '分类编码',
    category_name VARCHAR(200) COMMENT '分类名称',
    parent_id BIGINT COMMENT '父分类ID',
    sort_order INT COMMENT '排序',
    create_time DATETIME DEFAULT CURRENT_TIMESTAMP
) COMMENT '流水分类表';
```

---

## 三、模块划分与开发建议

### 3.1 后端模块划分

```
ruoyi-info-collection/ (新建模块)
├── controller/
│   ├── CcdiProjectController.java          # 项目管理
│   ├── CcdiDataUploadController.java       # 数据上传
│   ├── CcdiModelConfigController.java      # 模型配置
│   ├── CcdiPreliminaryCheckController.java # 初核提示
│   ├── CcdiInvestigationController.java    # 专项排查工作台
│   ├── CcdiSpecialCheckController.java     # 专项排查
│   └── CcdiTransactionController.java      # 流水明细查询
├── service/
│   ├── ICcdiProjectService.java
│   ├── ICcdiDataUploadService.java
│   ├── ICcdiModelConfigService.java
│   ├── ICcdiPreliminaryCheckService.java
│   ├── ICcdiInvestigationService.java
│   ├── ICcdiSpecialCheckService.java
│   └── ICcdiTransactionService.java
├── mapper/
│   ├── CcdiProjectMapper.java
│   ├── CcdiDataUploadMapper.java
│   ├── CcdiModelConfigMapper.java
│   ├── CcdiPreliminaryCheckMapper.java
│   ├── CcdiInvestigationMapper.java
│   ├── CcdiSpecialCheckMapper.java
│   └── CcdiTransactionMapper.java
├── domain/
│   ├── CcdiProject.java
│   ├── CcdiDataUpload.java
│   ├── CcdiModelConfig.java
│   ├── CcdiPersonRiskScore.java
│   ├── CcdiInvestigationObject.java
│   └── ...
├── dto/
│   ├── CcdiProjectQueryDTO.java
│   ├── CcdiDataUploadDTO.java
│   ├── CcdiModelConfigDTO.java
│   └── ...
└── vo/
    ├── CcdiProjectVO.java
    ├── CcdiPreliminaryCheckVO.java
    ├── CcdiInvestigationVO.java
    └── ...
```

### 3.2 前端模块划分

```
ruoyi-ui/src/views/ccdi/
├── project/
│   ├── index.vue              # 项目列表
│   ├── detail.vue             # 项目详情
│   ├── upload.vue             # 上传数据
│   └── components/
│       ├── UploadCard.vue     # 上传卡片组件
│       ├── QualityCheck.vue   # 数据质量检查组件
│       └── BlacklistSelect.vue # 名单库选择组件
├── model/
│   ├── config.vue             # 参数配置
│   └── components/
│       └── ModelConfigTable.vue # 模型配置表格组件
├── preliminary/
│   ├── index.vue              # 初核提示
│   └── components/
│       ├── RiskStatistics.vue # 风险统计卡片
│       ├── ModelTriggerTable.vue # 模型触发表格
│       ├── SuspiciousTransactionTable.vue # 涉疑交易表格
│       └── PersonRiskList.vue # 人员风险列表
├── investigation/
│   ├── high-risk.vue          # 高风险工作台
│   ├── mid-risk.vue           # 中风险工作台
│   └── components/
│       ├── ObjectInfo.vue     # 排查对象信息
│       ├── AbnormalTransaction.vue # 异常交易明细
│       ├── InvestigationTools.vue # 排查工具箱
│       └── InvestigationTabs.vue # 排查进度标签页
├── special/
│   ├── index.vue              # 专项排查
│   └── components/
│       ├── AssetAnalysis.vue  # 资产分析
│       ├── RelationshipGraph.vue # 关系人图谱
│       └── PurchaseTable.vue  # 采购查询表格
└── transaction/
    └── index.vue              # 流水明细查询
```

### 3.3 开发顺序建议

1. **第一阶段：基础数据管理**
    - 项目管理（创建、查询、更新）
    - 数据上传功能
    - 数据质量检查

2. **第二阶段：模型配置**
    - 风险模型配置
    - 模型参数配置
    - 模型触发规则

3. **第三阶段：初核分析**
    - 初核提示页面
    - 风险评分计算
    - 人员风险分类

4. **第四阶段：排查工作台**
    - 高风险工作台
    - 中风险工作台
    - 排查进度跟踪

5. **第五阶段：专项排查**
    - 员工详查分析
    - 资产收入分析
    - 关系图谱分析
    - 采购查询

6. **第六阶段：流水查询**
    - 流水明细查询
    - 多维度筛选
    - 流水分类管理

---

## 四、关键技术要点

### 4.1 文件上传处理

- 支持Excel、PDF、HTML多种格式
- 需要实现文件解析功能
- 大文件上传需要分片处理
- 上传进度显示

### 4.2 数据质量检查

- 数据完整性检查
- 格式一致性检查
- 余额连续性检查
- 异常数据识别

### 4.3 风险评分模型

- 可配置的风险模型
- 可配置的阈值参数
- 多模型触发计算
- 风险等级分类

### 4.4 图谱可视化

- 关系人图谱展示
- 资金流向图谱
- 实控账户图谱
- 图谱交互操作

### 4.5 数据导出

- 支持多种导出格式
- 大数据量导出优化
- 批量导出功能

---

## 五、接口设计建议

### 5.1 项目管理接口

```
POST   /ccdi/project/list          # 项目列表查询
GET    /ccdi/project/{id}          # 项目详情
POST   /ccdi/project               # 新增项目
PUT    /ccdi/project               # 更新项目
DELETE /ccdi/project/{id}          # 删除项目
```

### 5.2 数据上传接口

```
POST   /ccdi/upload/transaction    # 上传流水文件
POST   /ccdi/upload/credit         # 上传征信文件
POST   /ccdi/upload/relation       # 上传家庭关系文件
GET    /ccdi/upload/progress/{id}  # 查询上传进度
POST   /ccdi/upload/quality/check  # 数据质量检查
```

### 5.3 初核分析接口

```
GET    /ccdi/preliminary/statistics    # 获取统计数据
GET    /ccdi/preliminary/model/trigger # 模型触发情况
GET    /ccdi/preliminary/transaction   # 涉疑交易明细
GET    /ccdi/preliminary/person/list   # 人员风险列表
GET    /ccdi/preliminary/abnormal/account # 异常账户列表
POST   /ccdi/preliminary/batch/report  # 批量生成报告
```

### 5.4 排查工作台接口

```
GET    /ccdi/investigation/object/{id}     # 获取排查对象详情
GET    /ccdi/investigation/abnormal/{id}   # 获取异常交易详情
GET    /ccdi/investigation/progress/{id}   # 获取排查进度
PUT    /ccdi/investigation/mark/status     # 标记状态
POST   /ccdi/investigation/report          # 生成排查报告
```

---

## 六、数据库表汇总

| 序号 | 表名                               | 说明       |
|----|----------------------------------|----------|
| 1  | ccdi_project                     | 项目表      |
| 2  | ccdi_data_upload                 | 数据上传记录表  |
| 3  | ccdi_blacklist_selection         | 名单库选择记录表 |
| 4  | ccdi_data_quality                | 数据质量检查表  |
| 5  | ccdi_risk_model                  | 风险模型表    |
| 6  | ccdi_model_parameter             | 模型参数配置表  |
| 7  | ccdi_person_risk_score           | 人员风险评分表  |
| 8  | ccdi_model_trigger_record        | 模型触发记录表  |
| 9  | ccdi_suspicious_transaction      | 涉嫌交易明细表  |
| 10 | ccdi_abnormal_account            | 异常账户表    |
| 11 | ccdi_illegal_person_info         | 违法人员信息表  |
| 12 | ccdi_investigation_object        | 排查对象表    |
| 13 | ccdi_investigation_trigger_model | 排查触发模型表  |
| 14 | ccdi_abnormal_transaction_detail | 异常交易明细表  |
| 15 | ccdi_investigation_progress      | 排查进度表    |
| 16 | ccdi_attention_list              | 关注列表表    |
| 17 | ccdi_employee_asset_analysis     | 员工资产分析表  |
| 18 | ccdi_relationship_graph          | 关系人图谱表   |
| 19 | ccdi_purchase_record             | 采购查询记录表  |
| 20 | ccdi_transaction_detail          | 流水明细表    |
| 21 | ccdi_transaction_category        | 流水分类表    |

---

## 七、前端组件建议

### 7.1 通用组件

```javascript
// components/ccdi/
├── UploadCard.vue           # 文件上传卡片
├── RiskStatisticsCard.vue   # 风险统计卡片
├── QualityProgressBar.vue   # 质量检查进度条
├── ModelTriggerTable.vue    # 模型触发表格
├── PersonRiskList.vue       # 人员风险列表
├── TransactionTable.vue     # 交易明细表格
├── RelationshipGraph.vue    # 关系图谱组件
└── FilterPanel.vue          # 筛选面板组件
```

### 7.2 图表组件

```javascript
// 使用ECharts实现
├── RiskDistributionChart.vue    # 风险分布图
├── ModelTriggerChart.vue        # 模型触发图表
├── AssetAnalysisChart.vue       # 资产分析图表
└── RelationshipGraphChart.vue   # 关系图谱
```

---

## 八、开发注意事项

### 8.1 权限控制

- 项目级权限控制
- 数据访问权限
- 敏感信息脱敏

### 8.2 性能优化

- 大数据量查询分页
- 索引优化
- 缓存策略

### 8.3 数据安全

- 敏感数据加密
- 操作日志记录
- 数据备份

### 8.4 用户体验

- 加载状态提示
- 操作反馈
- 错误提示

---

## 九、后续扩展方向

1. **智能分析**：引入机器学习算法，提高风险识别准确率
2. **移动端适配**：开发移动端应用，支持移动办公
3. **报表中心**：自定义报表功能
4. **预警机制**：实时预警通知
5. **案例库管理**：典型案例沉淀和复用

---

**文档版本**: v1.0
**创建时间**: 2025-01-30
**最后更新**: 2025-01-30
