338 lines
12 KiB
Markdown
338 lines
12 KiB
Markdown
# 谈话前安全风险评估表数据设计说明
|
||
|
||
## 一、设计概述
|
||
|
||
本文档说明"谈话前安全风险评估表"模板相关的数据字段设计,以及如何将数据存入数据库。
|
||
|
||
## 二、数据表结构
|
||
|
||
### 2.1 相关数据表
|
||
|
||
1. **f_polic_file_config** - 文件模板配置表
|
||
- 存储文档模板的基本信息
|
||
- 字段:id, tenant_id, parent_id, name, input_data, file_path, created_time, created_by, updated_time, updated_by, state
|
||
|
||
2. **f_polic_field** - 字段表
|
||
- 存储字段定义信息
|
||
- 字段:id, tenant_id, name, filed_code, field_type, created_time, created_by, updated_time, updated_by, state
|
||
- 注意:表中字段名为 `filed_code`(拼写错误,但需保持一致)
|
||
|
||
3. **f_polic_file_field** - 文件和字段关联表
|
||
- 存储文件模板与字段的关联关系
|
||
- 字段:id, tenant_id, filed_id, file_id, created_time, created_by, updated_time, updated_by, state
|
||
|
||
### 2.2 字段类型说明
|
||
|
||
- `field_type = 1`: 输入字段(用于AI解析的原始数据)
|
||
- `field_type = 2`: 输出字段(AI解析后生成的结构化数据,用于填充模板)
|
||
|
||
## 三、谈话前安全风险评估表字段设计
|
||
|
||
### 3.1 输出字段(用于填充模板)
|
||
|
||
根据风险评估需求,设计了以下11个输出字段,所有字段都配置了默认值:
|
||
|
||
| 字段名称 | 字段编码 (field_code) | 说明 | 默认值 | 示例 |
|
||
|---------|---------------------|------|--------|------|
|
||
| 被核查人员家庭情况 | target_family_situation | 被核查人员家庭情况 | 家庭关系和谐稳定 | 家庭关系和谐稳定 |
|
||
| 被核查人员社会关系 | target_social_relations | 被核查人员社会关系 | 社会交往较多,人机关系基本正常 | 社会交往较多,人机关系基本正常 |
|
||
| 被核查人员健康状况 | target_health_status | 被核查人员健康状况 | 良好 | 良好 |
|
||
| 被核查人员性格特征 | target_personality | 被核查人员性格特征 | 开朗 | 开朗 |
|
||
| 被核查人员承受能力 | target_tolerance | 被核查人员承受能力 | 较强 | 较强 |
|
||
| 被核查人员涉及问题严重程度 | target_issue_severity | 被核查人员涉及问题严重程度 | 较轻 | 较轻 |
|
||
| 被核查人员涉及其他问题的可能性 | target_other_issues_possibility | 被核查人员涉及其他问题的可能性 | 较小 | 较小 |
|
||
| 被核查人员此前被审查情况 | target_previous_investigation | 被核查人员此前被审查情况 | 无 | 无 |
|
||
| 被核查人员社会负面事件 | target_negative_events | 被核查人员社会负面事件 | 无 | 无 |
|
||
| 被核查人员其他情况 | target_other_situation | 被核查人员其他情况 | 无 | 无 |
|
||
| 风险等级 | risk_level | 风险等级 | 低 | 低 |
|
||
|
||
### 3.2 输入字段(用于AI解析)
|
||
|
||
该模板可以使用通用的输入字段:
|
||
|
||
| 字段名称 | 字段编码 (field_code) | 说明 |
|
||
|---------|---------------------|------|
|
||
| 线索信息 | clue_info | 线索信息(用于AI解析) |
|
||
| 被核查人员工作基本情况线索 | target_basic_info_clue | 被核查人员工作基本情况线索(用于AI解析) |
|
||
|
||
### 3.3 Word模板占位符映射
|
||
|
||
Word模板中使用的占位符格式为 `{{field_code}}`,与字段编码的对应关系:
|
||
|
||
- `{{target_family_situation}}` → 被核查人员家庭情况
|
||
- `{{target_social_relations}}` → 被核查人员社会关系
|
||
- `{{target_health_status}}` → 被核查人员健康状况
|
||
- `{{target_personality}}` → 被核查人员性格特征
|
||
- `{{target_tolerance}}` → 被核查人员承受能力
|
||
- `{{target_issue_severity}}` → 被核查人员涉及问题严重程度
|
||
- `{{target_other_issues_possibility}}` → 被核查人员涉及其他问题的可能性
|
||
- `{{target_previous_investigation}}` → 被核查人员此前被审查情况
|
||
- `{{target_negative_events}}` → 被核查人员社会负面事件
|
||
- `{{target_other_situation}}` → 被核查人员其他情况
|
||
- `{{risk_level}}` → 风险等级
|
||
|
||
## 四、文件配置信息
|
||
|
||
### 4.1 文件配置记录
|
||
|
||
- **名称**: 谈话前安全风险评估表
|
||
- **模板编码 (template_code)**: `PRE_INTERVIEW_RISK_ASSESSMENT`
|
||
- **业务类型 (business_type)**: `INVESTIGATION`(调查核实)
|
||
- **文件路径 (file_path)**: `/templates/谈话前安全风险评估表模板.docx`(MinIO相对路径)
|
||
|
||
### 4.2 配置存储
|
||
|
||
文件配置的 `input_data` 字段存储JSON格式数据:
|
||
```json
|
||
{
|
||
"template_code": "PRE_INTERVIEW_RISK_ASSESSMENT",
|
||
"business_type": "INVESTIGATION"
|
||
}
|
||
```
|
||
|
||
## 五、默认值机制
|
||
|
||
### 5.1 默认值配置
|
||
|
||
所有风险评估字段都配置了默认值,存储在 `config/field_defaults.json` 配置文件中。
|
||
|
||
### 5.2 默认值说明
|
||
|
||
**重要说明**:系统在AI提取阶段不会自动应用默认值。如果AI未提取到字段值,系统会返回空字符串。
|
||
|
||
默认值信息提供给前端开发人员,前端可以根据业务需求决定是否在界面上显示默认值或应用默认值。
|
||
|
||
### 5.3 默认值应用规则(前端参考)
|
||
|
||
1. **AI提取阶段**:如果AI从输入文本中提取到字段值,则使用提取的值
|
||
2. **空值处理**:如果AI提取的字段值为空或未提取到,系统返回空字符串
|
||
3. **前端应用**:前端可以根据业务需求,在用户界面中显示默认值提示,或允许用户选择应用默认值
|
||
4. **默认值优先级**:AI提取的值优先于默认值
|
||
|
||
### 5.3 默认值配置位置
|
||
|
||
默认值配置文件:`config/field_defaults.json`
|
||
|
||
```json
|
||
{
|
||
"field_defaults": {
|
||
"target_family_situation": "家庭关系和谐稳定",
|
||
"target_social_relations": "社会交往较多,人机关系基本正常",
|
||
"target_health_status": "良好",
|
||
"target_personality": "开朗",
|
||
"target_tolerance": "较强",
|
||
"target_issue_severity": "较轻",
|
||
"target_other_issues_possibility": "较小",
|
||
"target_previous_investigation": "无",
|
||
"target_negative_events": "无",
|
||
"target_other_situation": "无",
|
||
"risk_level": "低"
|
||
}
|
||
}
|
||
```
|
||
|
||
## 六、使用说明
|
||
|
||
### 6.1 初始化脚本
|
||
|
||
使用 `init_pre_interview_risk_assessment_fields.py` 脚本初始化数据:
|
||
|
||
```bash
|
||
python init_pre_interview_risk_assessment_fields.py
|
||
```
|
||
|
||
脚本功能:
|
||
1. 创建11个字段记录(输出字段)
|
||
2. 创建文件配置记录
|
||
3. 建立文件和字段的关联关系
|
||
|
||
### 6.2 接口调用示例
|
||
|
||
#### 1. AI解析接口 (`/ai/extract`)
|
||
|
||
```json
|
||
{
|
||
"businessType": "INVESTIGATION",
|
||
"inputData": [
|
||
{
|
||
"fieldCode": "clue_info",
|
||
"fieldValue": "被举报用户名称是张三,年龄30岁"
|
||
},
|
||
{
|
||
"fieldCode": "target_basic_info_clue",
|
||
"fieldValue": "张三,男,汉族,1980年5月出生,山西太原人,本科学历,2000年参加工作,2005年加入中国共产党。"
|
||
}
|
||
],
|
||
"outputData": [
|
||
{"fieldCode": "target_family_situation"},
|
||
{"fieldCode": "target_social_relations"},
|
||
{"fieldCode": "target_health_status"},
|
||
{"fieldCode": "target_personality"},
|
||
{"fieldCode": "target_tolerance"},
|
||
{"fieldCode": "target_issue_severity"},
|
||
{"fieldCode": "target_other_issues_possibility"},
|
||
{"fieldCode": "target_previous_investigation"},
|
||
{"fieldCode": "target_negative_events"},
|
||
{"fieldCode": "target_other_situation"},
|
||
{"fieldCode": "risk_level"}
|
||
]
|
||
}
|
||
```
|
||
|
||
**返回结果**(如果AI未提取到值,返回空字符串,前端可根据需要应用默认值):
|
||
|
||
```json
|
||
{
|
||
"code": 0,
|
||
"data": {
|
||
"outData": [
|
||
{
|
||
"fieldCode": "target_family_situation",
|
||
"fieldValue": ""
|
||
},
|
||
{
|
||
"fieldCode": "target_social_relations",
|
||
"fieldValue": ""
|
||
},
|
||
{
|
||
"fieldCode": "target_health_status",
|
||
"fieldValue": ""
|
||
},
|
||
{
|
||
"fieldCode": "target_personality",
|
||
"fieldValue": ""
|
||
},
|
||
{
|
||
"fieldCode": "target_tolerance",
|
||
"fieldValue": ""
|
||
},
|
||
{
|
||
"fieldCode": "target_issue_severity",
|
||
"fieldValue": ""
|
||
},
|
||
{
|
||
"fieldCode": "target_other_issues_possibility",
|
||
"fieldValue": ""
|
||
},
|
||
{
|
||
"fieldCode": "target_previous_investigation",
|
||
"fieldValue": ""
|
||
},
|
||
{
|
||
"fieldCode": "target_negative_events",
|
||
"fieldValue": ""
|
||
},
|
||
{
|
||
"fieldCode": "target_other_situation",
|
||
"fieldValue": ""
|
||
},
|
||
{
|
||
"fieldCode": "risk_level",
|
||
"fieldValue": ""
|
||
}
|
||
]
|
||
},
|
||
"msg": "ok",
|
||
"isSuccess": true
|
||
}
|
||
```
|
||
|
||
#### 2. 文档生成接口 (`/ai/generate-document`)
|
||
|
||
```json
|
||
{
|
||
"templateCode": "PRE_INTERVIEW_RISK_ASSESSMENT",
|
||
"businessType": "INVESTIGATION",
|
||
"inputData": [
|
||
{
|
||
"fieldCode": "target_family_situation",
|
||
"fieldValue": "家庭关系和谐稳定"
|
||
},
|
||
{
|
||
"fieldCode": "target_social_relations",
|
||
"fieldValue": "社会交往较多,人机关系基本正常"
|
||
},
|
||
{
|
||
"fieldCode": "target_health_status",
|
||
"fieldValue": "良好"
|
||
},
|
||
{
|
||
"fieldCode": "target_personality",
|
||
"fieldValue": "开朗"
|
||
},
|
||
{
|
||
"fieldCode": "target_tolerance",
|
||
"fieldValue": "较强"
|
||
},
|
||
{
|
||
"fieldCode": "target_issue_severity",
|
||
"fieldValue": "较轻"
|
||
},
|
||
{
|
||
"fieldCode": "target_other_issues_possibility",
|
||
"fieldValue": "较小"
|
||
},
|
||
{
|
||
"fieldCode": "target_previous_investigation",
|
||
"fieldValue": "无"
|
||
},
|
||
{
|
||
"fieldCode": "target_negative_events",
|
||
"fieldValue": "无"
|
||
},
|
||
{
|
||
"fieldCode": "target_other_situation",
|
||
"fieldValue": "无"
|
||
},
|
||
{
|
||
"fieldCode": "risk_level",
|
||
"fieldValue": "低"
|
||
}
|
||
],
|
||
"fpolicFieldParamFileList": [
|
||
{
|
||
"fileId": 1764656918061150,
|
||
"fileName": "谈话前安全风险评估表.doc"
|
||
}
|
||
]
|
||
}
|
||
```
|
||
|
||
## 七、注意事项
|
||
|
||
1. **字段编码一致性**: 确保Word模板中的占位符 `{{field_code}}` 与数据库中的 `filed_code` 字段值完全一致。
|
||
|
||
2. **默认值机制**:
|
||
- 系统在AI提取阶段不会自动应用默认值
|
||
- 如果AI提取到值,则使用AI提取的值
|
||
- 如果AI未提取到值或值为空,系统返回空字符串
|
||
- 默认值信息提供给前端,前端可根据业务需求决定是否应用
|
||
|
||
3. **字段类型**:
|
||
- 输入字段(field_type=1)用于接收用户输入的原始数据,供AI解析使用
|
||
- 输出字段(field_type=2)用于存储AI解析后的结构化数据,用于填充模板
|
||
|
||
4. **文件路径**: `f_polic_file_config` 表中的 `file_path` 存储的是MinIO的相对路径,不是绝对路径。
|
||
|
||
5. **状态字段**:
|
||
- `state = 0` 表示未启用
|
||
- `state = 1` 表示启用
|
||
|
||
6. **数据去重**: 初始化脚本会自动检查数据是否已存在,避免重复创建。
|
||
|
||
## 八、数据库连接信息
|
||
|
||
- **IP地址**: 152.136.177.240
|
||
- **端口**: 5012
|
||
- **用户名**: finyx
|
||
- **密码**: 6QsGK6MpePZDE57Z
|
||
- **数据库名称**: finyx
|
||
|
||
## 九、相关文件
|
||
|
||
- `init_pre_interview_risk_assessment_fields.py` - 数据初始化脚本
|
||
- `config/field_defaults.json` - 字段默认值配置文件
|
||
- `services/field_service.py` - 字段服务(包含默认值逻辑)
|
||
- `app.py` - API接口(包含默认值应用逻辑)
|
||
- `模板/谈话前安全风险评估表模板.docx` - Word模板文件
|