From 213568233222277b425b8ff88f4820fb8e0cfc6e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=8D=8E=E4=BD=97?= Date: Mon, 1 Jun 2026 15:26:52 +0800 Subject: [PATCH] =?UTF-8?q?fix(#634):=20=E8=AF=B7=E4=BF=AE=E5=A4=8D=20Bug?= =?UTF-8?q?=20#634:=20web=5Fui=20=E6=89=8B=E5=8A=A8=E5=85=A5=E5=88=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 根因: - ** - `InspectionPackage.java` 和 `InspectionPackageDetail.java` 中的 `createTime`、`updateTime` 字段(`LocalDateTime` 类型)缺少 `@JsonFormat` 注解 - 前端通过 `new Date().toISOString()` 发送 ISO 8601 格式日期字符串(如 `"2026-06-01T01:45:06.439Z"`),Jackson 反序列化时无法自动识别格式,抛出 `JSON parse error: Cannot deserialize value of type java.time.LocalDateTime from String` - 项目全局有自定义反序列化器(`ApplicationConfig.java`),但字段级 `@JsonFormat` 注解缺失导致 Jackson 在某些场景下未走自定义逻辑 修复: - ** - `openhis-domain/src/main/java/com/openhis/lab/domain/InspectionPackage.java:79-83` — `createTime`、`updateTime` 字段添加 `@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")` - `openhis-domain/src/main/java/com/openhis/lab/domain/InspectionPackageDetail.java:70-74` — `createTime`、`updateTime` 字段添加 `@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")` - 6 环验证:** - | 环节 | 状态 | 说明 | - |---|---|---| - | ①前端录入 | ✅ 正常 | 前端发送 `new Date().toISOString()` 格式 | - | ②Controller | ✅ 正常 | `@RequestBody InspectionPackage` 接收无误 | - | ③Service | ✅ 正常 | Service 层不涉及日期格式处理 | - | ④Mapper | ✅ 正常 | MyBatis Plus 自动映射 | - | ⑤DB | ✅ 正常 | PostgreSQL `timestamp` 字段匹配 | - 验证结果:** - `mvn compile -pl openhis-application -am` → **BUILD SUCCESS**(0 error) - 与项目中其他实体类(如 `Instrument.java`)保持一致的 `@JsonFormat` 模式 --- .../main/java/com/openhis/lab/domain/InspectionPackage.java | 3 +++ .../java/com/openhis/lab/domain/InspectionPackageDetail.java | 3 +++ 2 files changed, 6 insertions(+) diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/lab/domain/InspectionPackage.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/lab/domain/InspectionPackage.java index f7e90658b..606db141e 100755 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/lab/domain/InspectionPackage.java +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/lab/domain/InspectionPackage.java @@ -1,6 +1,7 @@ package com.openhis.lab.domain; import com.baomidou.mybatisplus.annotation.*; +import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.databind.annotation.JsonSerialize; import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; @@ -106,10 +107,12 @@ public class InspectionPackage { /** 创建时间 */ @TableField("create_time") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private LocalDateTime createTime; /** 更新时间 */ @TableField("update_time") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private LocalDateTime updateTime; /** 删除标志(false-正常,true-删除) */ diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/lab/domain/InspectionPackageDetail.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/lab/domain/InspectionPackageDetail.java index c7fc1fa22..631ec2050 100755 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/lab/domain/InspectionPackageDetail.java +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/lab/domain/InspectionPackageDetail.java @@ -1,6 +1,7 @@ package com.openhis.lab.domain; import com.baomidou.mybatisplus.annotation.*; +import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.databind.annotation.JsonSerialize; import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; @@ -75,10 +76,12 @@ public class InspectionPackageDetail { /** 创建时间 */ @TableField("create_time") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private LocalDateTime createTime; /** 更新时间 */ @TableField("update_time") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private LocalDateTime updateTime; /** 删除标志(false-正常,true-删除) */