Files
hzdyjs/docs/变更管理/code-adjust-record-2025-01-17-wuzhen.md
T
2025-07-16 18:11:31 +08:00

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个字段)

✅ 验证方法

  1. 启动后端服务
  2. 登录系统,进入学生信息管理
  3. 编辑学生信息,修改家庭信息中的父母信息
  4. 保存后查看详情页面,确认信息正确显示
  5. 重新编辑,确认上次修改的信息正确回显

📋 相关文档

  • 问题分析报告: 已完成系统性排查
  • 技术方案: 采用字段级别的更新策略配置
  • 测试计划: 需要手动验证修复效果