# 模板处理脚本完成说明 ## 已完成的工作 ### 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` - 字段对照表