# 风险疑点按业务维度展示 - PRD文档

## 1. 功能概述

### 1.1 功能名称
风险疑点按业务维度展示

### 1.2 功能描述
在风险疑点管理模块中，增加按"业务视角"查看疑点的功能。通过对规则进行分组管理，实现同组规则的疑点可从同一业务角度（如差旅费单据ID、合同ID等）进行关联分析，帮助用户从业务业务维度全面掌握风险疑点情况。

### 1.3 功能目标
- 支持用户从"业务视角"查看疑点，直观掌握业务系统中的对象（比如财务申请单或合同单）涉及的风险规则
- 实现规则分组管理，相同业务含义的规则归为一组显示
- 在风险场景关联规则时，智能推荐同组其他规则

---

## 2. 功能背景

### 2.1 现有问题
当前风险疑点采用三级展示结构：
1. 风险场景
2. 风险规则
3. 疑点数据（具体单据）

从规则视角展示时，呈现效果为：
- 规则A中有单据1、2存在疑点
- 规则B中有单据1、2、3存在疑点

用户无法直观地从单据角度查看"某张单据存在哪些规则的疑点"。

### 2.2 业务需求
用户提出需要增加"业务视角"维度，从业务单据角度分析疑点，呈现效果为：
- 单据1存在规则A和规则B的疑点
- 单据2存在规则A和规则B的疑点
- 单据3存在规则B的疑点

### 2.3 实现前提
各规则的疑点数据中包含相同的业务字段（如差旅费单据ID、合同ID等），通过该业务字段将同组规则的疑点进行关联。

---

## 3. 功能范围

| 功能模块 | 优先级 | 说明 |
|----------|--------|------|
| 规则分组管理 | P0 | 对规则进行分组，配置组名称、业务字段含义 |
| 规则业务字段配置 | P0 | 为每条规则配置业务字段，关联分组 |
| 分组疑点分析-按单据查看 | P0 | 按业务维度展示疑点 |
| 分组规则推荐 | P1 | 风险场景关联规则时推荐同组规则 |
| 分组疑点分析-按规则查看单据 | P1 | 从规则视角查看关联的单据 |

---

## 4. 业务规则与约束

### 4.1 规则分组
- 分组按业务字段含义归类（如差旅费报销、合同管理）
- 一个分组可包含多条规则，一条规则只能属于一个分组
- 分组需关联业务域，便于分类检索
- 分组需配置业务字段含义（如"差旅费单据ID"、"合同ID"）

### 4.2 业务字段配置
- 每条规则需配置业务字段（必填）
- 业务字段用于关联规则疑点与业务单据
- 业务字段从疑点数据ETL表中提取

### 4.3 分组疑点分析
- 按单据查看疑点时，筛选出该业务字段有值的疑点记录
- 同一单据可能触发多条规则的疑点，应全部展示
- 支持按风险场景、规则组筛选

### 4.4 规则推荐
- 风险场景关联规则时，显示当前已关联规则所在分组的其他规则
- 区分"已关联"和"可推荐"状态

---

## 5. 数据模型设计——不用理会

### 5.1 规则分组表（RISK_RULE_GROUP）

| 字段名 | 字段类型 | 是否必填 | 说明 |
|--------|----------|----------|------|
| ID | VARCHAR(36) | 是 | 主键UUID |
| GROUP_NAME | VARCHAR(100) | 是 | 规则组名称 |
| GROUP_CODE | VARCHAR(50) | 是 | 规则组编码 |
| GROUP_DESC | VARCHAR(500) | 否 | 规则组描述 |
| BUSINESS_FIELD_NAME | VARCHAR(100) | 是 | 业务字段名称（如"差旅费单据ID"） |
| BUSINESS_FIELD_CODE | VARCHAR(50) | 是 | 业务字段编码 |
| BUSINESS_DOMAIN_ID | VARCHAR(36) | 否 | 所属业务域ID |
| STATUS | VARCHAR(1) | 是 | 状态（1-启用 0-停用） |
| CREATE_BY | VARCHAR(36) | 是 | 创建人ID |
| CREATE_TIME | DATETIME | 是 | 创建时间 |
| UPDATE_BY | VARCHAR(36) | 否 | 更新人ID |
| UPDATE_TIME | DATETIME | 否 | 更新时间 |

### 5.2 规则清单表变更（RISK_RULE_LIST）

| 字段名 | 字段类型 | 是否必填 | 说明 |
|--------|----------|----------|------|
| RULE_GROUP_ID | VARCHAR(36) | 否 | 关联规则组ID |
| BUSINESS_FIELD_NAME | VARCHAR(100) | 是 | 业务字段名称 |
| BUSINESS_FIELD_CODE | VARCHAR(50) | 是 | 业务字段编码 |

### 5.3 业务字段配置表（RISK_RULE_FIELD_CONFIG）

| 字段名 | 字段类型 | 是否必填 | 说明 |
|--------|----------|----------|------|
| ID | VARCHAR(36) | 是 | 主键UUID |
| RULE_ID | VARCHAR(36) | 是 | 规则ID |
| FIELD_NAME | VARCHAR(100) | 是 | 字段名称 |
| FIELD_CODE | VARCHAR(50) | 是 | 字段编码 |
| FIELD_SOURCE | VARCHAR(200) | 否 | 字段来源表/视图 |
| IS_MAIN_FIELD | VARCHAR(1) | 是 | 是否主业务字段（1-是 0-否） |
| REMARK | VARCHAR(500) | 否 | 备注 |

---

## 6. 页面设计

### 6.1 入口
路径：风险管理 → 风险疑点管理 → 疑点数据查看

### 6.2 页面结构

#### 6.2.1 顶部筛选区
| 筛选项 | 说明 |
|--------|------|
| 风险场景 | 下拉选择 |
| 规则组 | 下拉选择（按业务字段分组） |
| 视角切换 | 单选：按规则 / 按单据 |

#### 6.2.2 按规则视角（现有）
```
风险场景：差旅费报销检查
├── 规则：住宿天数超标
│   ├── 单据ID：CLF-20250101-001   员工：张三   住宿天数：8天   金额：2400元
│   └── 单据ID：CLF-20250101-002   员工：李四   住宿天数：10天  金额：3000元
├── 规则：个人补助超标
│   ├── 单据ID：CLF-20250101-001   员工：张三   补助金额：300元（标准200元）
│   └── 单据ID：CLF-20250101-002   员工：李四   补助金额：350元（标准200元）
└── 规则：交通费上限
    ├── 单据ID：CLF-20250101-001   员工：张三   交通费：800元（标准500元）
    ├── 单据ID：CLF-20250101-002   员工：李四   交通费：750元（标准500元）
    └── 单据ID：CLF-20250101-003   员工：王五   交通费：900元（标准500元）
```

#### 6.2.3 按业务视角（新增）
```
业务字段：差旅费单据ID
├── 单据ID：CLF-20250101-001   员工：张三   报销金额：3200元
│   ├── 规则：住宿天数超标（超标4天）
│   ├── 规则：个人补助超标（超标100元）
│   └── 规则：交通费上限（超标300元）
├── 单据ID：CLF-20250101-002   员工：李四   报销金额：4050元
│   ├── 规则：住宿天数超标（超标6天）
│   ├── 规则：个人补助超标（超标150元）
│   └── 规则：交通费上限（超标250元）
└── 单据ID：CLF-20250101-003   员工：王五   报销金额：3900元
    └── 规则：交通费上限（超标400元）
```

### 6.3 规则分组管理页面——暂不实现

路径：风险管理 → 风险规则库 → 规则分组管理

#### 6.3.1 左侧：分组树
```
├── 差旅费报销（业务字段：差旅费单据ID）
│   ├── 住宿天数超标
│   ├── 个人补助超标
│   └── 交通费上限
├── 合同管理（业务字段：合同ID）
│   ├── 合同金额异常
│   └── 合同签署日期异常
└── 采购管理（业务字段：采购单ID）
    ├── 采购单价超标
    └── 采购数量异常
```

#### 6.3.2 右侧：分组详情/规则列表
- 分组基本信息编辑
- 组内规则列表（可拖拽排序）
- 添加规则到分组

### 6.4 规则推荐功能

路径：风险管理 → 风险场景管理 → 场景详情 → 关联规则

#### 6.4.1 推荐弹窗
```
请选择要关联的规则

当前已选规则：[住宿天数超标]（差旅费报销分组）

同组推荐（差旅费报销分组）：
☑ 个人补助超标     （同组规则，建议添加）
☑ 交通费上限       （同组规则，建议添加）
□ 差旅城市超出标准  （同组规则，建议添加）

其他分组规则：
  合同金额异常     （合同管理分组）
  采购单价超标     （采购管理分组）
```

---

## 7. 接口设计——不用理会

### 7.1 规则分组相关接口

| 接口 | 方法 | 说明 |
|------|------|------|
| /core/riskRuleGroup/list | GET | 获取规则分组列表 |
| /core/riskRuleGroup/add | POST | 新增规则分组 |
| /core/riskRuleGroup/update | PUT | 更新规则分组 |
| /core/riskRuleGroup/delete | DELETE | 删除规则分组 |
| /core/riskRuleGroup/rules/{groupId} | GET | 获取分组下的规则列表 |
| /core/riskRuleGroup/recommend/{sceneId} | GET | 获取场景关联规则时的同组推荐 |

### 7.2 规则业务字段相关接口

| 接口 | 方法 | 说明 |
|------|------|------|
| /core/riskRuleFieldConfig/list | GET | 获取规则字段配置列表 |
| /core/riskRuleFieldConfig/add | POST | 新增规则字段配置 |
| /core/riskRuleFieldConfig/update | PUT | 更新规则字段配置 |

### 7.3 疑点数据相关接口（按业务视角）

| 接口 | 方法 | 说明 |
|------|------|------|
| /core/riskDoubt/queryByBill | GET | 按业务维度查询疑点数据 |
| 参数：sceneId, ruleGroupId, businessFieldCode |

---

## 8. 业务流程

### 8.1 规则分组配置流程——暂不实现
```
1. 管理员进入"规则分组管理"页面
2. 新建规则分组（填写组名称、业务字段名称、业务字段编码）
3. 从规则库中选择规则加入分组
4. 为每条规则配置业务字段（关联分组后自动带出）
5. 保存分组配置
```

### 8.2 疑点按单据查看流程
```
1. 用户进入"风险疑点管理"页面
2. 选择风险场景
3. 切换为"按单据"视角
4. 选择规则组（确定业务字段类型）
5. 系统展示：该业务字段关联的所有单据及其疑点
6. 用户可展开单据查看涉及哪些规则的疑点
7. 可点击跳转至规则详情或单据详情
```

### 8.3 风险场景关联规则流程
```
1. 管理员进入"风险场景管理"
2. 编辑场景，关联规则
3. 系统弹出规则选择框
4. 显示当前已关联规则所在分组的其他规则（推荐）
5. 管理员确认关联规则
6. 保存场景配置
```

---

## 9. 验收标准

### 9.1 功能验收
- [ ] 规则分组管理：可新建、编辑、删除规则分组
- [ ] 规则分配分组：可选择规则并分配至分组
- [ ] 规则业务字段配置：规则详情中可配置业务字段
- [ ] 按业务视角查看疑点：切换视角后，按单据展示疑点列表
- [ ] 规则推荐：风险场景关联规则时，显示同组推荐规则

### 9.2 数据展示验收
- [ ] 按规则视角展示：现有功能正常
- [ ] 按业务视角展示：分组展示单据及其关联的所有规则疑点
- [ ] 展开单据可查看具体的规则疑点详情

### 9.3 性能要求
- 页面响应时间 ≤ 3秒
- 业务维度查询响应时间 ≤ 5秒

---

## 10. 先行条件与依赖

### 10.1 先行条件
- 风险场景管理模块已上线
- 风险规则库模块已上线
- 风险疑点数据ETL定时任务已配置

### 10.2 依赖系统
- 业务单据数据源（用于关联单据基础信息）
- 数据ETL服务（用于获取规则疑点数据）

### 10.3 待确认事项
- 业务字段的具体取值逻辑（从哪张ETL表取数）
- 是否需要支持手动维护规则与业务字段的映射关系
- 分组规则推荐是否需要根据场景业务域智能过滤

---

## 11. 版本历史

| 版本 | 日期 | 修改内容 | 修改人 |
|------|------|----------|--------|
| v1.0 | 2026-03-30 | 初始版本 | 产品经理 |