154 lines
5.0 KiB
Markdown
154 lines
5.0 KiB
Markdown
# 模板处理脚本完成说明
|
||
|
||
## 已完成的工作
|
||
|
||
### 1. 创建了两个主要脚本
|
||
|
||
#### `process_templates.py` - 模板占位符处理脚本
|
||
- ✅ 自动扫描 `模板/原始模板` 目录下的所有 `.doc` 和 `.docx` 文件
|
||
- ✅ 根据文件名智能识别文档类型(支持17种文档类型)
|
||
- ✅ 自动将 `.doc` 文件转换为 `.docx` 格式(需要 Windows + pywin32)
|
||
- ✅ 根据占位符与字段对照表,智能识别字段名称并添加占位符
|
||
- ✅ 处理后的模板保存到 `模板` 文件夹,保持原有目录结构
|
||
|
||
#### `init_all_templates.py` - 模板初始化脚本
|
||
- ✅ 扫描 `模板` 目录下的所有 `.docx` 文件(排除原始模板目录)
|
||
- ✅ 自动识别文档类型和模板编码
|
||
- ✅ 上传模板文件到 MinIO 服务器
|
||
- ✅ 在数据库中创建或更新文件配置记录(使用 `template_code` 字段)
|
||
|
||
### 2. 支持的文档类型
|
||
|
||
脚本支持以下17种文档类型:
|
||
|
||
1. 请示报告卡 (REPORT_CARD)
|
||
2. 初步核实审批表 (PRELIMINARY_VERIFICATION_APPROVAL)
|
||
3. 初核方案 (INVESTIGATION_PLAN)
|
||
4. 谈话通知书 (NOTIFICATION_LETTER)
|
||
5. 谈话笔录 (INTERVIEW_RECORD)
|
||
6. 谈话询问对象情况摸底调查30问 (INVESTIGATION_30_QUESTIONS)
|
||
7. 被谈话人权利义务告知书 (RIGHTS_OBLIGATIONS_NOTICE)
|
||
8. 点对点交接单 (HANDOVER_FORM)
|
||
9. 陪送交接单 (ESCORT_HANDOVER_FORM)
|
||
10. 保密承诺书 (CONFIDENTIALITY_COMMITMENT)
|
||
11. 办案人员-办案安全保密承诺书 (INVESTIGATOR_CONFIDENTIALITY_COMMITMENT)
|
||
12. 请示报告卡(初核报告结论) (REPORT_CARD_CONCLUSION)
|
||
13. 初核情况报告 (INVESTIGATION_REPORT)
|
||
14. 谈话审批表 (INTERVIEW_APPROVAL_FORM)
|
||
15. 谈话前安全风险评估表 (PRE_INTERVIEW_RISK_ASSESSMENT)
|
||
16. 谈话方案 (INTERVIEW_PLAN)
|
||
17. 谈话后安全风险评估表 (POST_INTERVIEW_RISK_ASSESSMENT)
|
||
|
||
### 3. 占位符处理逻辑
|
||
|
||
脚本会智能识别以下模式并添加占位符:
|
||
|
||
1. **字段名称: 具体值** → **字段名称: {{field_code}}**
|
||
- 例如:`被核查人姓名: 张三` → `被核查人姓名: {{target_name}}`
|
||
|
||
2. **字段名称: XXX/待填** → **字段名称: {{field_code}}**
|
||
- 例如:`被核查人姓名: XXX` → `被核查人姓名: {{target_name}}`
|
||
|
||
3. **表格中的字段**:同样处理表格单元格中的字段
|
||
|
||
### 4. 使用步骤
|
||
|
||
#### 第一步:处理原始模板
|
||
```bash
|
||
python process_templates.py
|
||
```
|
||
|
||
**输出:**
|
||
- 处理后的模板保存在 `模板` 文件夹下
|
||
- 保持原有的目录结构
|
||
- 所有文件统一为 `.docx` 格式
|
||
|
||
**注意:**
|
||
- 处理后的模板需要人工检查,确认占位符位置是否正确
|
||
- 如有需要,可以手动调整占位符位置
|
||
|
||
#### 第二步:初始化模板到系统
|
||
```bash
|
||
python init_all_templates.py
|
||
```
|
||
|
||
**功能:**
|
||
- 上传所有模板到 MinIO
|
||
- 在数据库中创建或更新文件配置记录
|
||
- 使用 `template_code` 字段存储模板编码
|
||
|
||
**输出:**
|
||
- 显示处理进度和结果
|
||
- 统计成功、跳过、失败的文件数量
|
||
|
||
## 文件结构
|
||
|
||
```
|
||
项目根目录/
|
||
├── process_templates.py # 模板处理脚本
|
||
├── init_all_templates.py # 初始化脚本
|
||
├── 模板处理说明.md # 详细使用说明
|
||
├── 模板/
|
||
│ ├── 初步核实审批表模板.docx # 已处理的模板(示例)
|
||
│ └── 原始模板/ # 原始模板(不处理)
|
||
│ └── 2-初核模版/
|
||
│ └── ...
|
||
└── 占位符与字段对照表.md # 字段对照表
|
||
```
|
||
|
||
## 注意事项
|
||
|
||
1. **依赖要求:**
|
||
- `python-docx` - 处理 Word 文档
|
||
- `pywin32` - 转换 .doc 文件(仅 Windows,可选)
|
||
- `pymysql` - 数据库操作
|
||
- `minio` - MinIO 客户端
|
||
|
||
2. **.doc 文件处理:**
|
||
- 如果未安装 `pywin32`,需要手动将 `.doc` 文件转换为 `.docx` 格式
|
||
- 或者安装:`pip install pywin32`
|
||
|
||
3. **占位符检查:**
|
||
- 处理后的模板需要人工检查
|
||
- 确保占位符格式正确:`{{field_code}}`
|
||
- 确保占位符位置合理
|
||
|
||
4. **数据库配置:**
|
||
- 确保数据库连接配置正确
|
||
- 确保 `f_polic_file_config` 表有 `template_code` 字段
|
||
- 确保有足够的权限
|
||
|
||
5. **MinIO 配置:**
|
||
- 确保 MinIO 连接配置正确
|
||
- 确保存储桶 `finyx` 存在
|
||
- 确保有上传权限
|
||
|
||
## 后续工作
|
||
|
||
1. **检查生成的模板:**
|
||
- 打开处理后的模板文件
|
||
- 检查占位符是否正确添加
|
||
- 手动调整不正确的占位符
|
||
|
||
2. **运行初始化脚本:**
|
||
- 确认所有模板检查无误后
|
||
- 运行 `init_all_templates.py`
|
||
- 检查输出信息,确认所有模板已成功上传
|
||
|
||
3. **测试文档生成:**
|
||
- 使用 API 测试文档生成功能
|
||
- 确认模板可以正常使用
|
||
- 检查生成的文档是否正确填充
|
||
|
||
## 技术支持
|
||
|
||
如有问题,请检查:
|
||
1. 脚本输出日志
|
||
2. 数据库和 MinIO 连接状态
|
||
3. 文件路径和权限
|
||
4. 占位符格式是否正确
|
||
|
||
参考文档:
|
||
- `模板处理说明.md` - 详细使用说明
|
||
- `占位符与字段对照表.md` - 字段对照表
|