7.7 KiB
7.7 KiB
代码调整记录 - 2025-01-23
📋 变更概述
变更日期: 2025-01-23
操作人员: wuzilong
变更类型: 数据库表名规范化调整
影响模块: 物业报修管理模块
优先级: 高
🎯 变更目标
将物业报修管理模块的数据库表名从 pm_* 格式调整为 hq_pm_* 格式,符合项目数据库表名规范要求(后勤管理模块使用 hq_ 前缀)。
📊 变更详情
1. SQL文件调整
文件: docs/设计文档/database/07-property-maintenance-module.sql
变更内容:
- 将所有表名从
pm_*调整为hq_pm_* - 更新相关注释和关联引用
- 版本号更新至 V1.0.2
具体表名变更:
| 原表名 | 新表名 |
|---|---|
pm_repair_order |
hq_pm_repair_order |
pm_repair_attachment |
hq_pm_repair_attachment |
pm_repair_progress |
hq_pm_repair_progress |
pm_service_evaluation |
hq_pm_service_evaluation |
pm_repair_category |
hq_pm_repair_category |
pm_system_config |
hq_pm_system_config |
2. 数据库重命名脚本
新增文件: docs/设计文档/database/08-property-maintenance-table-rename.sql
功能:
- 智能检测现有表是否存在
- 批量重命名所有物业报修相关表
- 提供验证结果显示
- 支持幂等操作
3. 规范文档更新
更新文件:
docs/业务模块/property-maintenance/技术设计/数据库设计.mddocs/业务模块/property-maintenance/README.md
变更内容:
- 更新所有表名引用
- 修正实体关系图
- 更新数据流转图
4. 后端代码调整
Entity实体类更新:
PmRepairOrder.java- @TableName("hq_pm_repair_order")PmRepairAttachment.java- @TableName("hq_pm_repair_attachment")PmRepairProgress.java- @TableName("hq_pm_repair_progress")PmServiceEvaluation.java- @TableName("hq_pm_service_evaluation")PmRepairCategory.java- @TableName("hq_pm_repair_category")
Mapper XML文件更新:
PmRepairAttachmentMapper.xml- selectVo中的表名更新PmRepairProgressMapper.xml- selectVo中的表名更新PmServiceEvaluationMapper.xml- 新创建完整的Mapper XML
VO类和BO类完善:
- 新增:
PmRepairProgressVo.java、PmServiceEvaluationVo.java - 新增:
PmRepairProgressBo.java、PmServiceEvaluationBo.java - 更新:所有VO/BO类中的注释表名引用
Service接口完善:
- 新增:
IPmRepairProgressService.java - 新增:
IPmServiceEvaluationService.java
涉及文件:
backend/ruoyi-modules/ruoyi-hq/src/main/java/org/dromara/hq/
├── domain/
│ ├── PmRepairOrder.java ✅
│ ├── PmRepairAttachment.java ✅
│ ├── PmRepairProgress.java ✅
│ ├── PmServiceEvaluation.java ✅
│ ├── PmRepairCategory.java ✅
│ ├── vo/
│ │ ├── PmRepairProgressVo.java ✅ (新增)
│ │ ├── PmServiceEvaluationVo.java ✅ (新增)
│ │ ├── PmRepairOrderVo.java ✅ (注释更新)
│ │ ├── PmRepairAttachmentVo.java ✅ (注释更新)
│ │ └── PmRepairCategoryVo.java ✅ (注释更新)
│ └── bo/
│ ├── PmRepairProgressBo.java ✅ (新增)
│ ├── PmServiceEvaluationBo.java ✅ (新增)
│ ├── PmRepairOrderBo.java ✅ (注释更新)
│ ├── PmRepairAttachmentBo.java ✅ (注释更新)
│ └── PmRepairCategoryBo.java ✅ (注释更新)
├── service/
│ ├── IPmRepairProgressService.java ✅ (新增)
│ └── IPmServiceEvaluationService.java ✅ (新增)
└── resources/mapper/
├── PmRepairAttachmentMapper.xml ✅ (表名更新)
├── PmRepairProgressMapper.xml ✅ (表名更新)
└── PmServiceEvaluationMapper.xml ✅ (新增)
🛠️ 执行步骤
步骤1: SQL文件调整 ✅
- 更新表结构定义
- 更新关联引用
- 更新索引定义
- 更新初始化数据
步骤2: 数据库表重命名 🔄
- 创建重命名脚本
- 执行数据库重命名(需手动执行)
步骤3: 文档更新 ✅
- 数据库设计文档
- 模块总览文档
- 实体关系图
步骤4: 代码调整 ✅
- Entity类@TableName注解
- 注释中的表名引用
- Mapper XML文件表名更新
- 创建缺失的VO和BO类
- 创建缺失的Service接口
- 创建缺失的Mapper XML文件
📋 验证清单
数据库层面
- 确认旧表名不存在
- 确认新表名存在且结构正确
- 确认索引重建成功
- 确认数据完整性
代码层面
- Entity类编译通过
- Mapper XML语法正确
- VO/BO类创建完成
- Service接口定义完成
- Service实现类创建(待完成)
- Controller类创建(待完成)
- 单元测试执行成功
- API接口调用正常
- 前端页面显示正常
文档层面
- 所有文档表名更新完成
- 图表和示例代码正确
- 变更记录完整
⚠️ 注意事项
数据库操作
- 备份重要性: 执行表重命名前务必备份数据库
- 停机时间: 重命名操作需要停止相关服务
- 权限验证: 确保有足够的数据库操作权限
代码部署
- 同步部署: 数据库重命名与代码部署需同步进行
- 回滚预案: 准备回滚脚本以防意外情况
- 测试验证: 部署后需全面测试业务功能
数据一致性
- 外键约束: 确认没有外键约束冲突
- 应用层关联: 验证应用层关联逻辑正确
- 缓存刷新: 清理相关缓存数据
🔧 执行命令
数据库重命名
# 连接到MySQL数据库
mysql -h 47.99.164.66 -P 3306 -u root -p hzdyjs_xg
# 执行重命名脚本
source docs/设计文档/database/08-property-maintenance-table-rename.sql;
代码重新编译
# 后端重新编译
cd backend
mvn clean compile
📈 影响评估
正面影响
- 规范统一: 符合项目数据库命名规范
- 维护性提升: 表名更清晰易理解
- 模块区分: 清晰区分后勤管理模块表
风险评估
- 低风险: 仅表名变更,表结构不变
- 影响范围: 仅限物业报修模块
- 恢复时间: 如有问题可快速回滚
✅ 验证结果
文件变更统计
- SQL文件: 2个(1个更新,1个新增)
- 文档文件: 2个更新
- Entity类: 5个更新(@TableName注解和注释)
- Mapper XML: 3个(2个更新,1个新增)
- VO类: 7个(2个新增,5个注释更新)
- BO类: 7个(2个新增,5个注释更新)
- Service接口: 2个新增
- 总变更行数: 约800行
测试状态
- 本地环境测试
- 开发环境验证
- 功能回归测试
📝 后续任务
- 数据库执行: 在测试环境执行表重命名脚本
- 完善代码层:
- 创建
PmRepairProgressServiceImpl.java和PmServiceEvaluationServiceImpl.java - 创建
PmRepairProgressController.java和PmServiceEvaluationController.java - 完善Mapper接口方法
- 创建
- 代码测试: 验证所有API接口正常工作
- 前端联调: 确认前端页面数据显示正常
- 文档同步: 更新相关API文档和使用说明
🔗 相关文档
变更完成时间: 2025-01-23 18:45:00
最后更新: 2025-01-23 18:45:00 - 完成所有表名调整和基础代码结构
下次更新计划: 待Service实现类和Controller创建完成后更新验证结果