Files
hzdyjs/docs/设计文档/database/code-adjust-record-2025-01-01-assistant.md
T
2025-08-10 00:28:48 +08:00

2.5 KiB
Raw Blame History

代码调整记录 - 2025-01-01 - Assistant

修复记录(按时间倒序)

⚡ 修复时间:2025-01-01 15:30:00

🐛 问题描述:

  • 报错信息:Field 'application_type' doesn't have a default value
  • 影响模块:奖学金申请管理
  • 场景:班主任批量申请奖学金时,插入数据库失败

🔍 问题根因:

  1. jcbt_scholarship_application 表中 application_type 字段定义为 NOT NULL 且无默认值
  2. 班主任批量申请方法 batchSubmitApplicationsByTeacher() 中缺少 applicationType 字段设置
  3. 通用插入方法 insertByBo() 中缺少 applicationType 默认值设置

✅ 修复方案:

  1. 在班主任批量申请中设置申请类型

    • 文件:JcbtScholarshipApplicationServiceImpl.java
    • 位置:batchSubmitApplicationsByTeacher() 方法
    • 修改:添加 applicationBo.setApplicationType("RECOMMEND");
    • 逻辑:班主任代申请属于教师推荐类型
  2. 在通用插入方法中添加默认值

    • 文件:JcbtScholarshipApplicationServiceImpl.java
    • 位置:insertByBo() 方法
    • 修改:添加默认值设置逻辑
    • 逻辑:如果未设置申请类型,默认为 "RECOMMEND"

📝 技术细节:

// 修复1:班主任批量申请
applicationBo.setApplicationType("RECOMMEND"); // 班主任代申请属于教师推荐类型

// 修复2:通用插入方法默认值
if (StringUtils.isBlank(add.getApplicationType())) {
    add.setApplicationType("RECOMMEND"); // 默认为教师推荐类型
}

🎯 申请类型枚举值:

  • RECOMMEND - 教师推荐(班主任代申请)
  • AUTO - 自动评定
  • DIRECT - 直接指定

📊 修复结果:

  • ✅ 班主任批量申请功能恢复正常
  • ✅ 所有申请记录都有明确的申请类型
  • ✅ 数据库插入不再报错
  • ✅ 符合业务逻辑:班主任代申请 = 教师推荐

⚠️ 重启要求:

  • 需要重新编译:修改了 Java 业务代码
  • 需要重启服务:修改了 Spring Bean 的业务逻辑
  • 影响模块:ruoyi-jcbt 模块

🔄 后续优化建议:

  1. 考虑在数据库层面添加 application_type 字段的默认值
  2. 完善申请类型的业务规则文档
  3. 添加申请类型的数据字典配置

📋 修复文件清单:

  • backend/ruoyi-modules/ruoyi-jcbt/src/main/java/org/dromara/jcbt/service/impl/JcbtScholarshipApplicationServiceImpl.java

🕐 修复耗时:约 10 分钟 ✅ 测试状态:待重启后验证