fix(emergency): 修复一人一案接口VARCHAR列映射Double报类型转换异常

达梦库 EMP_PERSON_FILE 表的 BMI/HEIGHT/WEIGHT/WEIGHT_TARGET 等
列为 VARCHAR 类型,MyBatis 映射到 Double 时报类型转换异常,
将对应 VO 字段改为 String,并在 getBmi() 中解析字符串做保留一位小数。
This commit is contained in:
2026-07-14 16:36:55 +08:00
parent 2d5198ec3f
commit d4f1d1a7bd
@@ -63,19 +63,19 @@ public class OnePersonCaseVO {
private Integer flagFat;
@Schema(title = "BMI")
private Double bmi;
private String bmi;
@Schema(title = "身高")
private Double height;
private String height;
@Schema(title = "体重")
private Double weight;
private String weight;
@Schema(title = "体重管理目标")
private Double targetWeight;
private String targetWeight;
@Schema(title = "目标BMI")
private Double targetBmi;
private String targetBmi;
@Schema(title = "目前BMI监测值")
private String bmiCurrent;
@@ -244,12 +244,18 @@ public class OnePersonCaseVO {
/**
* BMI 保留一位小数
* 数据库 BMI 列为 VARCHAR,这里解析为数值后四舍五入
*/
public Double getBmi() {
if (bmi == null) {
public String getBmi() {
if (bmi == null || bmi.isEmpty()) {
return null;
}
return Math.round(bmi * 10) / 10.0;
try {
double v = Double.parseDouble(bmi.trim());
return String.valueOf(Math.round(v * 10) / 10.0);
} catch (NumberFormatException e) {
return bmi;
}
}
/**