From d4f1d1a7bd52d2fafa8f70d80e85fe86ccbbac42 Mon Sep 17 00:00:00 2001 From: wanghao <2413927716@qq.com> Date: Tue, 14 Jul 2026 16:36:55 +0800 Subject: [PATCH] =?UTF-8?q?fix(emergency):=20=E4=BF=AE=E5=A4=8D=E4=B8=80?= =?UTF-8?q?=E4=BA=BA=E4=B8=80=E6=A1=88=E6=8E=A5=E5=8F=A3VARCHAR=E5=88=97?= =?UTF-8?q?=E6=98=A0=E5=B0=84Double=E6=8A=A5=E7=B1=BB=E5=9E=8B=E8=BD=AC?= =?UTF-8?q?=E6=8D=A2=E5=BC=82=E5=B8=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 达梦库 EMP_PERSON_FILE 表的 BMI/HEIGHT/WEIGHT/WEIGHT_TARGET 等 列为 VARCHAR 类型,MyBatis 映射到 Double 时报类型转换异常, 将对应 VO 字段改为 String,并在 getBmi() 中解析字符串做保留一位小数。 --- .../entity/vo/OnePersonCaseVO.java | 22 ++++++++++++------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/health-emergency/health-emergency-biz/src/main/java/com/renkang/emergency/largeScreen/entity/vo/OnePersonCaseVO.java b/health-emergency/health-emergency-biz/src/main/java/com/renkang/emergency/largeScreen/entity/vo/OnePersonCaseVO.java index 02ea920..861a1b2 100644 --- a/health-emergency/health-emergency-biz/src/main/java/com/renkang/emergency/largeScreen/entity/vo/OnePersonCaseVO.java +++ b/health-emergency/health-emergency-biz/src/main/java/com/renkang/emergency/largeScreen/entity/vo/OnePersonCaseVO.java @@ -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; + } } /**