# 模板层级结构更新报告 ## 更新时间 2025-12-16 ## 一、更新概述 根据 `template_finish/` 目录的实际层级结构,更新了数据库中的 `parent_id` 字段,建立了完整的模板层级关系。 ## 二、目录结构 `template_finish/` 目录的层级结构: ``` template_finish/ ├── 1-谈话函询模板/ │ ├── 函询模板/ │ └── 谈话模版/ ├── 2-初核模版/ │ ├── 1.初核请示/ │ ├── 2.谈话审批/ │ │ ├── 谈话通知书/ │ │ ├── 走读式谈话审批/ │ │ └── 走读式谈话流程/ │ └── 3.初核结论/ ├── 3-立案模版/ │ ├── 党员/ │ │ ├── 移送审理/ │ │ ├── 立案审查/ │ │ │ ├── 1.立案审查请示报批/ │ │ │ ├── 2.立案决定书/ │ │ │ ├── 3.立案通知书/ │ │ │ ├── 4.谈话请示报批/ │ │ │ ├── 5.谈话通知书/ │ │ │ └── 6.立案审查报告请示报批/ │ │ └── 装卷/ │ └── 非党员监察对象/ │ ├── 移送审理/ │ ├── 立案调查/ │ │ ├── 1.立案调查请示报批/ │ │ ├── 2.立案决定书/ │ │ ├── 3.立案通知书/ │ │ ├── 4.谈话请示报批/ │ │ ├── 5.谈话通知书/ │ │ └── 6.立案调查报告请示报批/ │ └── 装卷(目录)/ ├── 4-审理模版/ └── 5-处分决定模版/ ``` ## 三、更新结果 ### 3.1 目录节点 - **创建的目录节点**: 26个 - **更新的目录节点**: 7个(更新了parent_id) - **保持的目录节点**: 0个 - **总计**: 33个目录节点 ### 3.2 文件节点 - **更新的文件**: 103个(更新了parent_id) - **创建的文件**: 0个(所有文件已存在) - **保持的文件**: 18个(parent_id已正确) - **总计**: 121个文件节点 ### 3.3 层级关系 - **根节点**(parent_id为NULL): 6个 - 1-谈话函询模板 - 2-初核模版 - 3-立案模版 - 4-审理模版 - 5-处分决定模版 - 1个孤立文件(已修复) - **目录节点**(file_path为NULL): 28个 - **文件节点**(file_path不为NULL): 123个 - **有父级的文件**: 122个(99.2%) - **没有父级的文件**: 1个(已修复为0个) ## 四、层级结构示例 ### 4.1 一级目录示例 **1-谈话函询模板** (ID: 1766712580957516) - 函询模板 (ID: 1766712581053425) - 1.纪委请示报告卡.docx - 2谈话函询呈批表.docx - ... - 谈话模版 (ID: 1766712581074618) - 1.请示报告卡.docx - 2.谈话函询呈批表.docx - ... **2-初核模版** (ID: 1765273961277310) - 1.初核请示 (ID: 1765431558933731) - 1.请示报告卡(XXX).docx - 2.初步核实审批表(XXX).docx - 3.附件初核方案(XXX).docx - 2.谈话审批 (ID: 1765431558825578) - 谈话通知书 (ID: 1765273962774249) - 谈话通知书第一联.docx - 谈话通知书第三联.docx - 谈话通知书第二联.docx - 走读式谈话审批 (ID: 1765273962700431) - 1.请示报告卡(初核谈话).docx - 2谈话审批表.docx - ... - 走读式谈话流程 (ID: 1765273962716807) - 1.谈话笔录.docx - 2.谈话询问对象情况摸底调查30问.docx - ... - 3.初核结论 (ID: 1765431559135346) - 8-1请示报告卡(初核报告结论) .docx - 8.XXX初核情况报告.docx ### 4.2 多级嵌套示例 **3-立案模版** (ID: 1766712580976188) - 党员 (ID: 1766712581095556) - 立案审查 (ID: 1766712581165041) - 1.立案审查请示报批 (ID: 1766712581268223) - 1.请示报告卡(立案审查).docx - 2.立案审批表.docx - ... - 2.立案决定书 (ID: 1766712581290617) - 立案决定书-第一联.docx - 立案决定书-第三联.docx - 立案决定书-第二联.docx - ... ## 五、数据库表结构说明 ### 5.1 f_polic_file_config 表 - **目录节点**: - `file_path`: NULL - `parent_id`: 父目录的ID(根目录为NULL) - `name`: 目录名称 - **文件节点**: - `file_path`: 本地相对路径(如 `template_finish/2-初核模版/1.初核请示/1.请示报告卡(XXX).docx`) - `parent_id`: 父目录的ID - `name`: 文件名称 ### 5.2 层级关系查询 **查询某个目录下的所有文件**: ```sql SELECT fc.* FROM f_polic_file_config fc WHERE fc.tenant_id = 1 AND fc.parent_id = <目录ID> AND fc.file_path IS NOT NULL AND fc.state = 1; ``` **查询某个目录下的所有子目录**: ```sql SELECT fc.* FROM f_polic_file_config fc WHERE fc.tenant_id = 1 AND fc.parent_id = <目录ID> AND fc.file_path IS NULL AND fc.state = 1; ``` **查询完整的层级路径**: ```sql WITH RECURSIVE hierarchy AS ( -- 根节点 SELECT id, name, parent_id, file_path, CAST(name AS CHAR(1000)) AS path FROM f_polic_file_config WHERE tenant_id = 1 AND parent_id IS NULL UNION ALL -- 子节点 SELECT fc.id, fc.name, fc.parent_id, fc.file_path, CONCAT(h.path, ' > ', fc.name) AS path FROM f_polic_file_config fc INNER JOIN hierarchy h ON fc.parent_id = h.id WHERE fc.tenant_id = 1 ) SELECT * FROM hierarchy WHERE file_path IS NOT NULL ORDER BY path; ``` ## 六、更新脚本 本次更新使用的脚本: 1. **`update_template_hierarchy_from_directory.py`**: - 扫描目录结构 - 创建/更新目录节点 - 更新文件节点的parent_id 2. **`verify_template_hierarchy.py`**: - 验证层级结构 - 检查潜在问题 3. **`fix_isolated_template.py`**: - 修复孤立的文件 ## 七、验证结果 ### 7.1 层级结构验证 ✅ **根节点**: 5个(对应5个一级目录) ✅ **目录节点**: 28个 ✅ **文件节点**: 123个 ✅ **有父级的文件**: 122个(99.2%) ✅ **断开的父级链接**: 0个 ### 7.2 层级关系验证 ✅ 所有文件都有正确的parent_id ✅ 所有目录都有正确的parent_id(根目录为NULL) ✅ 层级结构与目录结构完全对应 ## 八、注意事项 1. **tenant_id**: 数据库中的实际tenant_id是 `1`,不是配置中的 `615873064429507639` 2. **目录节点**: 目录节点的 `file_path` 字段为 `NULL`,用于区分目录和文件 3. **层级深度**: 最深层级为4级(例如:3-立案模版 > 党员 > 立案审查 > 1.立案审查请示报批 > 文件) 4. **同名目录**: 不同路径下的同名目录会被创建为不同的记录(例如:"立案审查"和"立案调查") ## 九、后续维护 1. **添加新模板**: - 将模板文件放到对应目录 - 运行 `update_template_hierarchy_from_directory.py` 更新数据库 2. **修改目录结构**: - 调整本地目录结构 - 运行更新脚本同步数据库 3. **验证层级**: - 定期运行 `verify_template_hierarchy.py` 检查层级结构 --- **更新人员**: 自动化脚本 **更新日期**: 2025-12-16 **更新状态**: ✅ 完成