ai-business-write/模板处理说明.md

180 lines
6.0 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.

# 模板处理说明
本文档说明如何使用脚本处理原始模板文档自动添加占位符并初始化到数据库和MinIO。
## 脚本说明
### 1. process_templates.py - 模板占位符处理脚本
**功能:**
- 自动扫描 `模板/原始模板` 目录下的所有 `.doc``.docx` 文件
- 根据文件名识别文档类型
- 根据占位符与字段对照表,智能识别并添加占位符
- 将处理后的模板保存到 `模板` 文件夹下(保持目录结构)
**使用方法:**
```bash
python process_templates.py
```
**处理流程:**
1. 扫描原始模板目录
2. 识别每个文档的类型(根据文件名匹配)
3. 如果是 `.doc` 文件,自动转换为 `.docx` 格式(需要 Windows 系统和 pywin32
4. 在文档中查找字段名称,并在其后添加占位符(格式:`{{field_code}}`
5. 保存处理后的模板到输出目录
**注意事项:**
- 如果系统未安装 `pywin32``.doc` 文件无法自动转换,需要手动转换为 `.docx` 格式
- 脚本会智能识别字段名称后的内容,并替换为占位符
- 常见的占位符(如 "XXX"、"待填" 等)会被自动替换
- 处理后的模板需要人工检查,确认占位符位置是否正确
### 2. init_all_templates.py - 模板初始化脚本
**功能:**
- 扫描 `模板` 目录下的所有 `.docx` 文件(排除原始模板目录)
- 上传模板文件到 MinIO 服务器
- 在数据库中创建或更新文件配置记录
**使用方法:**
```bash
python init_all_templates.py
```
**处理流程:**
1. 连接数据库和 MinIO
2. 扫描模板目录下的所有 `.docx` 文件
3. 根据文件名识别文档类型和模板编码
4. 上传文件到 MinIO路径`/租户ID/TEMPLATE/年/月/文件名.docx`
5. 在数据库中创建或更新文件配置记录
**注意事项:**
- 确保数据库和 MinIO 连接配置正确
- 如果文件配置已存在,会更新文件路径
- 如果文件配置不存在,会创建新记录
## 使用步骤
### 第一步:处理原始模板
1. 确保所有原始模板文件已放在 `模板/原始模板` 目录下
2. 运行处理脚本:
```bash
python process_templates.py
```
3. 检查生成的模板文件,确认占位符是否正确添加
4. 如有需要,手动调整占位符位置
### 第二步:初始化模板到系统
1. 确认所有模板文件已处理完成并检查无误
2. 运行初始化脚本:
```bash
python init_all_templates.py
```
3. 检查输出信息,确认所有模板已成功上传和配置
## 文档类型识别
脚本会根据文件名自动识别文档类型,支持的文档类型包括:
| 文档名称 | 模板编码 | 说明 |
|---------|---------|------|
| 请示报告卡 | REPORT_CARD | 初核请示相关 |
| 初步核实审批表 | PRELIMINARY_VERIFICATION_APPROVAL | 初步核实审批 |
| 初核方案 | INVESTIGATION_PLAN | 初核方案 |
| 谈话通知书 | NOTIFICATION_LETTER | 谈话通知 |
| 谈话笔录 | INTERVIEW_RECORD | 谈话记录 |
| 谈话询问对象情况摸底调查30问 | INVESTIGATION_30_QUESTIONS | 摸底调查 |
| 被谈话人权利义务告知书 | RIGHTS_OBLIGATIONS_NOTICE | 权利义务告知 |
| 点对点交接单 | HANDOVER_FORM | 交接单 |
| 陪送交接单 | ESCORT_HANDOVER_FORM | 陪送交接 |
| 保密承诺书 | CONFIDENTIALITY_COMMITMENT | 保密承诺 |
| 办案人员-办案安全保密承诺书 | INVESTIGATOR_CONFIDENTIALITY_COMMITMENT | 办案人员承诺 |
| 请示报告卡(初核报告结论) | REPORT_CARD_CONCLUSION | 初核结论 |
| 初核情况报告 | INVESTIGATION_REPORT | 初核报告 |
| 谈话审批表 | INTERVIEW_APPROVAL_FORM | 谈话审批 |
| 谈话前安全风险评估表 | PRE_INTERVIEW_RISK_ASSESSMENT | 风险评估 |
| 谈话方案 | INTERVIEW_PLAN | 谈话方案 |
| 谈话后安全风险评估表 | POST_INTERVIEW_RISK_ASSESSMENT | 风险评估 |
## 占位符格式
所有占位符使用以下格式:
```
{{field_code}}
```
例如:
- `{{target_name}}` - 被核查人姓名
- `{{target_organization_and_position}}` - 被核查人员单位及职务
- `{{target_gender}}` - 被核查人员性别
完整的字段列表请参考 `占位符与字段对照表.md`。
## 常见问题
### Q1: .doc 文件无法转换怎么办?
**A:** 如果系统未安装 `pywin32`,可以:
1. 安装 pywin32: `pip install pywin32`
2. 或者手动将 `.doc` 文件转换为 `.docx` 格式
### Q2: 占位符位置不正确怎么办?
**A:** 脚本会自动识别字段名称并添加占位符,但可能不够精确。建议:
1. 检查生成的模板文件
2. 手动调整占位符位置
3. 确保占位符格式正确:`{{field_code}}`
### Q3: 文档类型无法识别怎么办?
**A:** 如果文档类型无法识别:
1. 检查文件名是否包含文档类型关键词
2. 可以在 `process_templates.py` 中的 `DOCUMENT_TYPE_MAPPING` 添加新的映射
3. 或者手动指定文档类型
### Q4: 上传到 MinIO 失败怎么办?
**A:** 检查:
1. MinIO 连接配置是否正确
2. 存储桶是否存在
3. 网络连接是否正常
4. 文件路径是否正确
### Q5: 数据库更新失败怎么办?
**A:** 检查:
1. 数据库连接配置是否正确
2. 数据库表结构是否正确
3. 租户ID是否正确
4. 是否有足够的权限
## 文件结构
处理后的文件结构:
```
模板/
├── 初步核实审批表模板.docx # 已处理的模板
├── 原始模板/ # 原始模板(不处理)
│ └── 2-初核模版/
│ └── ...
└── [其他已处理的模板文件]
```
## 注意事项
1. **备份原始文件**:处理前建议备份原始模板文件
2. **检查占位符**:处理后的模板需要人工检查,确认占位符位置正确
3. **测试生成**:初始化后,建议测试文档生成功能,确认模板可用
4. **版本控制**:建议使用版本控制管理模板文件
## 技术支持
如有问题,请检查:
1. 脚本输出日志
2. 数据库和 MinIO 连接状态
3. 文件路径和权限
4. 占位符格式是否正确