# Neo4j 字段名称标准化报告 ## 📋 变更概述 **变更日期**: 2024-10-31 **变更范围**: `app/core` 目录下所有 Neo4j 相关操作 **变更目的**: 统一数据库字段命名规范 ## 🎯 标准化规则 | 旧字段名 | 新字段名 | 说明 | |----------|----------|------| | `name` | `name_zh` | 中文名称 | | `en_name` | `name_en` | 英文名称 | | `time` | `create_time` | 创建时间 | | `createTime` | `create_time` | 创建时间(统一格式) | ## ✅ 已完成的修改 ### 1. app/core/meta_data/meta_data.py **修改内容**: - ✅ 第157行: `n.name` → `n.name_zh` (搜索条件) - ✅ 第160行: `n.en_name` → `n.name_en` (过滤条件) - ✅ 第163行: `n.name` → `n.name_zh` (过滤条件) - ✅ 第169行: `n.createTime` → `n.create_time` (时间过滤) - ✅ 第186行: `ORDER BY n.name` → `ORDER BY n.name_zh` - ✅ 第497行: `e.createTime` → `e.create_time` (Entity节点) - ✅ 第496行: `{name: $name, en_name: $en_name}` → `{name_zh: $name, name_en: $en_name}` - ✅ 第598行: `e.en_name`, `e.createTime` → `e.name_en`, `e.create_time` - ✅ 第597行: `{name: $name}` → `{name_zh: $name}` - ✅ 第613行: `e.en_name`, `e.createTime` → `e.name_en`, `e.create_time` - ✅ 第612行: `{name: $name}` → `{name_zh: $name}` ### 2. app/core/data_metric/metric_interface.py **修改内容**: - ✅ 第46行: `n.name` → `n.name_zh` (name_filter) - ✅ 第49行: `n.en_name` → `n.name_en` (en_name_filter) - ✅ 第55行: `n.time` → `n.create_time` (time_filter) - ✅ 第71行: `name: m.name` → `name_zh: m.name_zh` - ✅ 第73行: `n.time`, `name:la.name` → `n.create_time`, `name_zh:la.name_zh` - ✅ 第172-175行: 所有 `n.name`, `d.name`, `t.name`, `a.name` → 对应的 `name_zh` - ✅ 第383行: `n.name` → `n.name_zh` (图谱节点文本) - ✅ 第711行: `n.name` → `n.name_zh` (metric_check查询) - ✅ 第724-725行: `node.get('name')`, `node.get('en_name')` → `node.get('name_zh')`, `node.get('name_en')` - ✅ 第727行: `node.get('createTime', node.get('time'))` → `node.get('create_time')` ## ⏳ 待处理的文件和位置 ### 3. app/core/data_interface/interface.py **需要修改**: - 第40行: `n.name CONTAINS $name_filter` → `n.name_zh CONTAINS $name_filter` - 第43行: `n.en_name CONTAINS $en_name_filter` → `n.name_en CONTAINS $en_name_filter` - 第49行: `n.time CONTAINS $time_filter` → `n.create_time CONTAINS $time_filter` - 第60行: `n.time as time` → `n.create_time as time` - 第266行: `n.name CONTAINS $name_filter` → `n.name_zh CONTAINS $name_filter` - 第269行: `n.en_name CONTAINS $en_name_filter` → `n.name_en CONTAINS $en_name_filter` - 第286行: `n.time as time` → `n.create_time as time` - 第344行: `text: n.name` → `text: n.name_zh` - 第438行: `text:(n.name)` → `text:(n.name_zh)` - 第507行: `n.time as time` → `n.create_time as time` - 第538行: `text:(n.name)` → `text:(n.name_zh)` ### 4. app/core/data_model/model.py **需要修改**: - 第462行: `name: n.name` → `name_zh: n.name_zh` - 第463行: `en_name: n.en_name` → `name_en: n.name_en` - 第464行: `time: n.time` → `create_time: n.create_time` - 第565行: `n.name =~ $name` → `n.name_zh =~ $name` - 第569行: `n.en_name =~ $en_name` → `n.name_en =~ $en_name` - 第635行: `n.name`, `n.en_name`, `n.time` → `n.name_zh`, `n.name_en`, `n.create_time` - 第661行: `n.name`, `n.en_name`, `n.time` → `n.name_zh`, `n.name_en`, `n.create_time` - 第674行: `ORDER BY n.time DESC` → `ORDER BY n.create_time DESC` - 第1130行: `n.name = $name` → `n.name_zh = $name` - 第1131行: `n.en_name = $en_name` → `n.name_en = $en_name` ### 5. app/core/data_resource/resource.py **需要修改**: - 第495行: `n.en_name CONTAINS '{en_name_filter}'` → `n.name_en CONTAINS '{en_name_filter}'` - 第498行: `n.name CONTAINS '{name_filter}'` → `n.name_zh CONTAINS '{name_filter}'` - 第532行: `ORDER BY n.time DESC` → `ORDER BY n.create_time DESC` - 第549行: `ORDER BY n.time DESC` → `ORDER BY n.create_time DESC` - 第568行: `ORDER BY n.time DESC` → `ORDER BY n.create_time DESC` - 第580行: `ORDER BY n.time DESC` → `ORDER BY n.create_time DESC` - 第1267行: `n.name CONTAINS '{name_filter}'` → `n.name_zh CONTAINS '{name_filter}'` - 第1279行: `ORDER BY n.createTime DESC` → `ORDER BY n.create_time DESC` ### 6. app/core/data_flow/dataflows.py **需要修改**: - 第39行: `n.name CONTAINS $search` → `n.name_zh CONTAINS $search` - 第362行: `n.name = $name` → `n.name_zh = $name` ### 7. app/core/production_line/production_line.py **需要修改**: - 第38行: `n.name as name` → `n.name_zh as name_zh` - 第66行: `text: n.name` → `text: n.name_zh` - 第86行: `text: n.name` → `text: n.name_zh` - 第102行: `text: n.name` → `text: n.name_zh` - 第116行: `text: n.name` → `text: n.name_zh` - 第208行: `n.name as cn_name` → `n.name_zh as cn_name` - 第209行: `n.en_name as en_name` → `n.name_en as en_name` ### 8. app/core/data_parse 目录 #### 注意事项 该目录主要涉及 PostgreSQL 数据库操作和数据解析,字段名已经使用标准格式 (`name_zh`, `name_en`),**无需修改**。 涉及的文件: - `parse_neo4j_process.py` - 已使用标准格式 - `parse_system.py` - 已使用标准格式 - 其他解析相关文件 - 主要处理业务逻辑,不涉及Neo4j字段 ## 📊 统计信息 ### 已修改文件 1. ✅ `app/core/meta_data/meta_data.py` - 11处修改 2. ✅ `app/core/data_metric/metric_interface.py` - 13处修改 ### 待修改文件 3. ⏳ `app/core/data_interface/interface.py` - 约11处待修改 4. ⏳ `app/core/data_model/model.py` - 约10处待修改 5. ⏳ `app/core/data_resource/resource.py` - 约8处待修改 6. ⏳ `app/core/data_flow/dataflows.py` - 约2处待修改 7. ⏳ `app/core/production_line/production_line.py` - 约7处待修改 ### 总计 - **已完成**: 24处修改 (2个文件) - **待处理**: 约38处待修改 (5个文件) - **总计**: 约62处需要标准化 ## 🔍 批量替换建议 为了高效完成剩余修改,建议使用以下批量替换策略: ### 针对 interface.py ```bash # 使用sed或编辑器批量替换 n.name CONTAINS → n.name_zh CONTAINS n.en_name CONTAINS → n.name_en CONTAINS n.time CONTAINS → n.create_time CONTAINS n.time as time → n.create_time as time text: n.name → text: n.name_zh text:(n.name) → text:(n.name_zh) ``` ### 针对 model.py ```bash name: n.name → name_zh: n.name_zh en_name: n.en_name → name_en: n.name_en time: n.time → create_time: n.create_time n.name =~ → n.name_zh =~ n.en_name =~ → n.name_en =~ ORDER BY n.time → ORDER BY n.create_time n.name = $name → n.name_zh = $name n.en_name = $en_name → n.name_en = $en_name ``` ### 针对 resource.py ```bash n.name CONTAINS → n.name_zh CONTAINS n.en_name CONTAINS → n.name_en CONTAINS ORDER BY n.time → ORDER BY n.create_time ORDER BY n.createTime → ORDER BY n.create_time ``` ### 针对 dataflows.py ```bash n.name CONTAINS → n.name_zh CONTAINS n.name = $name → n.name_zh = $name ``` ### 针对 production_line.py ```bash n.name as name → n.name_zh as name_zh text: n.name → text: n.name_zh n.name as cn_name → n.name_zh as cn_name n.en_name as en_name → n.name_en as en_name ``` ## ⚠️ 注意事项 1. **变量名不要改**: Python 代码中的变量名 (如 `name`, `en_name`) 不需要修改,只修改 Neo4j 查询中的字段名 2. **字符串参数不要改**: 如 `$name`, `$en_name` 这些参数名保持不变 3. **返回别名注意**: 如 `n.name_zh as name` 这样的别名要根据业务逻辑决定是否修改 4. **测试覆盖**: 修改后需要全面测试所有相关API接口 ## 🧪 测试建议 修改完成后,建议测试以下功能: 1. **元数据相关** - 元数据列表查询 - 元数据搜索过滤 - 元数据创建和编辑 2. **指标相关** - 指标列表查询 - 指标公式检查 - 指标图谱生成 3. **数据接口** - 接口列表查询 - 接口图谱生成 4. **数据模型** - 模型列表查询 - 模型创建和更新 5. **数据资源** - 资源列表查询 - 资源搜索 6. **数据流和生产线** - 流程图谱查询 - 生产线节点查询 ## 📝 后续步骤 1. ✅ 已完成 meta_data.py 和 metric_interface.py 2. ⏳ 继续修改 interface.py 3. ⏳ 继续修改 model.py 4. ⏳ 继续修改 resource.py 5. ⏳ 继续修改 dataflows.py 6. ⏳ 继续修改 production_line.py 7. ⏳ 运行linter检查 8. ⏳ 执行完整测试 9. ⏳ 更新相关API文档 ## 🔄 版本信息 - **开始时间**: 2024-10-31 - **预计完成**: 待定 - **当前状态**: 进行中 (33% 完成) - **执行人**: Cursor AI Assistant --- **注意**: 本文档将随着修改进度持续更新。