ai-business-write/模板字段关联关系更新报告.md
2025-12-30 10:41:35 +08:00

252 lines
7.8 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.

# 模板字段关联关系更新报告
## 更新时间
2025-12-16
## 一、更新概述
根据数据库设计说明,更新了所有模板的字段关联关系:
- **输入字段**:所有模板都关联了 `clue_info``target_basic_info_clue`
- **输出字段**:根据模板中的占位符自动关联对应的输出字段
## 二、更新规则
### 2.1 输入字段关联规则
所有模板(文件节点)都自动关联以下输入字段:
1. **clue_info** - 线索信息
2. **target_basic_info_clue** - 被核查人员工作基本情况线索
### 2.2 输出字段关联规则
根据模板文件中的占位符(格式:`{{field_code}}`)自动关联对应的输出字段:
- 扫描模板文件中的段落和表格
- 提取所有占位符
- 根据占位符的 `field_code` 查找对应的输出字段(`field_type=2`
- 如果字段不存在,自动创建该字段
## 三、更新结果
### 3.1 输入字段关联
- **关联的模板数**: 122/122 (100%)
- **输入字段数**: 2个
- `clue_info` (ID: 1764656917384058)
- `target_basic_info_clue` (ID: 1764656917996367)
- **关联关系总数**: 260条122个模板 × 2个输入字段
### 3.2 输出字段关联
- **关联的模板数**: 93/122 (76%)
- **未关联的模板数**: 29个这些模板没有占位符或占位符格式不正确
- **发现的占位符总数**: 35个不同的占位符
- **关联关系总数**: 325条
### 3.3 占位符列表35个
所有发现的占位符及其对应的输出字段:
1. `appointment_location` - 约谈地点
2. `appointment_time` - 约谈时间
3. `approval_time` - 审批时间
4. `clue_source` - 线索来源
5. `department_opinion` - 部门意见
6. `handler_name` - 处理人姓名
7. `handling_department` - 处理部门
8. `investigation_location` - 调查地点
9. `investigation_team_code` - 调查组编号
10. `investigation_team_leader_name` - 调查组组长姓名
11. `investigation_team_member_names` - 调查组成员姓名
12. `investigation_unit_name` - 调查单位名称
13. `target_address` - 被核查人地址
14. `target_age` - 被核查人年龄
15. `target_basic_info` - 被核查人基本信息
16. `target_contact` - 被核查人联系方式
17. `target_date_of_birth` - 被核查人出生日期
18. `target_date_of_birth_full` - 被核查人出生日期(完整)
19. `target_education` - 被核查人学历
20. `target_education_level` - 被核查人学历层次
21. `target_ethnicity` - 被核查人民族
22. `target_family_situation` - 被核查人家庭情况
23. `target_gender` - 被核查人性别
24. `target_id_number` - 被核查人身份证号
25. `target_issue_description` - 被核查人问题描述
26. `target_name` - 被核查人姓名
27. `target_organization` - 被核查人单位
28. `target_organization_and_position` - 被核查人单位及职务
29. `target_place_of_origin` - 被核查人籍贯
30. `target_political_status` - 被核查人政治面貌
31. `target_position` - 被核查人职务
32. `target_professional_rank` - 被核查人职级
33. `target_registered_address` - 被核查人户籍地址
34. `target_social_relations` - 被核查人社会关系
35. `target_work_basic_info` - 被核查人工作基本信息
## 四、示例模板关联关系
### 4.1 示例18-1请示报告卡初核报告结论
- **模板ID**: 1765273962631542
- **输入字段** (2个):
- clue_info - 线索信息
- target_basic_info_clue - 被核查人员工作基本情况线索
- **输出字段** (3个):
- investigation_team_code - 调查组编号
- target_name - 被核查人姓名
- target_organization_and_position - 被核查人单位及职务
### 4.2 示例2谈话通知书第三联
- **模板ID**: 1765273963038891
- **输入字段** (2个):
- clue_info - 线索信息
- target_basic_info_clue - 被核查人员工作基本情况线索
- **输出字段** (3个):
- appointment_location - 约谈地点
- appointment_time - 约谈时间
- target_name - 被核查人姓名
### 4.3 示例3谈话通知书第一联
- **模板ID**: 1765273963625524
- **输入字段** (2个):
- clue_info - 线索信息
- target_basic_info_clue - 被核查人员工作基本情况线索
- **输出字段** (9个):
- appointment_location - 约谈地点
- appointment_time - 约谈时间
- approval_time - 审批时间
- handler_name - 处理人姓名
- handling_department - 处理部门
- target_id_number - 被核查人身份证号
- target_name - 被核查人姓名
- target_organization - 被核查人单位
- target_position - 被核查人职务
## 五、数据库表结构
### 5.1 f_polic_file_field 表
关联关系存储在 `f_polic_file_field` 表中:
- `id`: 关联关系ID主键
- `tenant_id`: 租户ID
- `file_id`: 文件配置ID关联 `f_polic_file_config.id`
- `filed_id`: 字段ID关联 `f_polic_field.id`
- `state`: 状态1=启用0=禁用)
### 5.2 查询示例
**查询某个模板关联的所有字段**:
```sql
SELECT
f.id AS field_id,
f.name AS field_name,
f.filed_code AS field_code,
f.field_type,
CASE
WHEN f.field_type = 1 THEN '输入字段'
WHEN f.field_type = 2 THEN '输出字段'
END AS field_type_name
FROM f_polic_file_field fff
INNER JOIN f_polic_field f ON fff.filed_id = f.id
WHERE fff.tenant_id = 1
AND fff.file_id = <模板ID>
AND fff.state = 1
AND f.state = 1
ORDER BY f.field_type, f.filed_code;
```
**查询某个模板关联的输入字段**:
```sql
SELECT f.*
FROM f_polic_file_field fff
INNER JOIN f_polic_field f ON fff.filed_id = f.id
WHERE fff.tenant_id = 1
AND fff.file_id = <模板ID>
AND f.field_type = 1
AND fff.state = 1
AND f.state = 1;
```
**查询某个模板关联的输出字段**:
```sql
SELECT f.*
FROM f_polic_file_field fff
INNER JOIN f_polic_field f ON fff.filed_id = f.id
WHERE fff.tenant_id = 1
AND fff.file_id = <模板ID>
AND f.field_type = 2
AND fff.state = 1
AND f.state = 1;
```
## 六、验证结果
### 6.1 关联完整性
**输入字段关联**: 100% 完成
- 所有122个模板都关联了2个输入字段
- 关联关系总数: 260条
**输出字段关联**: 76% 完成
- 93个模板关联了输出字段
- 29个模板没有输出字段这些模板没有占位符属于正常情况
- 关联关系总数: 325条
### 6.2 总体统计
- **总模板数**: 122个
- **总关联关系数**: 585条
- 输入字段关联: 260条
- 输出字段关联: 325条
## 七、注意事项
1. **tenant_id**: 数据库中的实际tenant_id是 `1`,不是配置中的 `615873064429507639`
2. **无占位符的模板**: 29个模板没有输出字段关联这些模板可能是
- 目录节点(但已过滤,只处理文件节点)
- 没有占位符的模板文件
- 占位符格式不正确的模板
3. **字段自动创建**: 如果模板中的占位符对应的字段不存在,系统会自动创建该字段(`field_type=2`,输出字段)
4. **关联关系维护**:
- 添加新模板时,会自动关联输入字段
- 输出字段根据模板中的占位符自动关联
- 如果模板占位符发生变化,需要重新运行更新脚本
## 八、更新脚本
本次更新使用的脚本:
1. **`update_all_template_field_relations.py`**:
- 扫描所有模板的占位符
- 为所有模板关联输入字段
- 根据占位符关联输出字段
- 自动创建缺失的字段
2. **`verify_template_field_relations.py`**:
- 验证关联关系的完整性
- 检查是否有遗漏的关联
## 九、后续维护
1. **添加新模板**:
- 将模板文件放到对应目录
- 运行 `update_all_template_field_relations.py` 更新关联关系
2. **修改模板占位符**:
- 更新模板文件中的占位符
- 重新运行更新脚本同步关联关系
3. **验证关联关系**:
- 定期运行 `verify_template_field_relations.py` 检查关联关系
---
**更新人员**: 自动化脚本
**更新日期**: 2025-12-16
**更新状态**: ✅ 完成