2.9 KiB
2.9 KiB
代码调整记录 - 2025-01-17 - wuzhen
📋 本次变更概述
变更时间: 2025-01-17 15:30:00
变更人员: wuzhen
变更类型: 🔧 Bug修复
影响模块: 学生信息管理模块
🎯 问题描述
问题现象: 学生信息管理中家庭信息修改后无法保存
- 前端提示"修改成功",但详情页面和编辑页面看不到修改的内容
- 数据库中父母信息字段保持NULL状态
- 紧急联系人信息也存在相同问题
根本原因: MyBatis-Plus的更新策略配置为 updateStrategy: NOT_NULL,导致空值字段无法更新
🔧 解决方案
修复策略: 对高优先级字段使用 FieldStrategy.IGNORED 策略,允许更新空值
修改文件:
backend/ruoyi-modules/ruoyi-xg-xx/src/main/java/org/dromara/xg/domain/XgStudentInfo.java
📝 具体变更内容
1. 家庭信息字段修复(6个字段)
// 修改前
@TableField("father_name")
private String fatherName;
// 修改后
@TableField(value = "father_name", updateStrategy = FieldStrategy.IGNORED)
private String fatherName;
修复字段清单:
fatherName- 父亲姓名fatherPhone- 父亲电话fatherWorkUnit- 父亲工作单位motherName- 母亲姓名motherPhone- 母亲电话motherWorkUnit- 母亲工作单位
2. 紧急联系人字段修复(3个字段)
// 修改前
@TableField("emergency_contact_name")
private String emergencyContactName;
// 修改后
@TableField(value = "emergency_contact_name", updateStrategy = FieldStrategy.IGNORED)
private String emergencyContactName;
修复字段清单:
emergencyContactName- 紧急联系人姓名emergencyContactPhone- 紧急联系人电话emergencyContactRelation- 紧急联系人关系
🎯 修复效果
- ✅ 用户可以正常修改和保存家庭信息
- ✅ 用户可以正常修改和保存紧急联系人信息
- ✅ 支持将字段清空(设置为空字符串或NULL)
- ✅ 详情页面和编辑页面正确显示修改后的内容
📊 影响范围
直接影响: 学生信息管理模块的家庭信息和紧急联系人信息编辑功能
间接影响: 无
风险评估: 低风险,仅影响指定字段的更新策略
🔄 后续计划
中优先级字段: 联系信息、地址信息、宿舍信息、健康信息字段(9个字段)
低优先级字段: 扩展信息、银行信息等字段(12个字段)
✅ 验证方法
- 启动后端服务
- 登录系统,进入学生信息管理
- 编辑学生信息,修改家庭信息中的父母信息
- 保存后查看详情页面,确认信息正确显示
- 重新编辑,确认上次修改的信息正确回显
📋 相关文档
- 问题分析报告: 已完成系统性排查
- 技术方案: 采用字段级别的更新策略配置
- 测试计划: 需要手动验证修复效果