Files
ccdi/assets/requirements/原型图开发设计文档.md
2026-03-03 16:14:16 +08:00

856 lines
36 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 纪检初核系统 - 原型图开发设计文档
## 一、项目概述
### 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