ai-business-write/模板层级结构更新报告.md
2025-12-26 09:32:15 +08:00

248 lines
6.9 KiB
Markdown
Raw Permalink 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.

# 模板层级结构更新报告
## 更新时间
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
**更新状态**: ✅ 完成