Files
hzdyjs/docs/变更管理/code-adjust-record-2025-07-24-lixuming-7.md
T
2025-07-25 11:27:52 +08:00

2.5 KiB
Raw Blame History

心理健康测评明细导出功能修复记录(第四次)

后端服务器内部错误修复(2025-07-24 18:00)

问题描述

导出功能仍然出现500内部服务器错误,可能是由于字典转换功能导致的问题。

问题分析

通过检查代码,发现以下问题:

  1. 字典转换依赖问题:

    • XljkEvaluationDetailVo 类使用了 @ExcelDictFormat(dictType = "xljk_mental_status") 和 @ExcelDictFormat(dictType = "sys_user_sex") 注解
    • 系统中可能缺少这些字典数据,导致转换失败
    • ExcelDictConvert 类在转换过程中可能遇到异常
  2. 异常处理不完善:

    • 导出方法中的异常处理不够详细
    • 需要添加更多的日志记录和错误处理

解决方案

  1. 移除字典转换功能:

    • 暂时移除 XljkEvaluationDetailVo 类中的字典转换注解
    • 使用普通的 @ExcelProperty 注解,不使用转换器
  2. 增强数据预处理和异常处理:

    • 在导出前对数据进行预处理,确保没有null值
    • 添加更详细的异常捕获和日志记录
    • 在异常情况下向客户端返回友好的错误信息

修改内容

  1. XljkEvaluationDetailVo.java:

    // 修改前
    @ExcelProperty(value = "性别", converter = ExcelDictConvert.class)
    @ExcelDictFormat(dictType = "sys_user_sex")
    private String gender;
    
    @ExcelProperty(value = "心理状态", converter = ExcelDictConvert.class)
    @ExcelDictFormat(dictType = "xljk_mental_status")
    private String mentalStatus;
    
    // 修改后
    @ExcelProperty(value = "性别")
    private String gender;
    
    @ExcelProperty(value = "心理状态")
    private String mentalStatus;
    
  2. XljkEvaluationDetailController.java:

    • 添加更详细的数据预处理逻辑
    • 增强异常处理和日志记录
    • 在异常情况下向客户端返回友好的错误信息

测试结果

修复后,导出功能应该可以正常工作,不再出现500内部服务器错误。

相关文件

  • backend/ruoyi-modules/ruoyi-xljk/src/main/java/org/dromara/xljk/controller/XljkEvaluationDetailController.java
  • backend/ruoyi-modules/ruoyi-xljk/src/main/java/org/dromara/xljk/domain/vo/XljkEvaluationDetailVo.java

注意事项

  • 移除字典转换功能后,导出的Excel中将直接显示原始的代码值,而不是转换后的文本描述
  • 后续可以在确保字典数据正确配置后,再恢复字典转换功能

修复人员:李旭明
修复时间:2025-07-24 18:00