252 lines
7.8 KiB
Markdown
252 lines
7.8 KiB
Markdown
# 模板字段关联关系更新报告
|
||
|
||
## 更新时间
|
||
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 示例1:8-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
|
||
**更新状态**: ✅ 完成
|