From 4903122e276c9deab7aef9bab3781003041ad686 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=8D=8E=E4=BD=97?= Date: Sat, 30 May 2026 16:37:41 +0800 Subject: [PATCH] =?UTF-8?q?fix(#629):=20=E8=AF=B7=E4=BF=AE=E5=A4=8D=20Bug?= =?UTF-8?q?=20#629=EF=BC=9A[=E4=BD=8F=E9=99=A2=E5=8C=BB=E7=94=9F=E7=AB=99-?= =?UTF-8?q?=E4=B8=B4=E5=BA=8A=E5=8C=BB=E5=98=B1]=20=E5=BD=95=E5=85=A5?= =?UTF-8?q?=E9=95=BF=E6=9C=9F=E5=8C=BB=E5=98=B1=E2=80=9C=E8=8D=86=E9=98=B2?= =?UTF-8?q?=E9=A2=97=E7=B2=92=E2=80=9D=E7=82=B9=E5=87=BB=E4=BF=9D=E5=AD=98?= =?UTF-8?q?=E6=8A=A5=E9=94=99=EF=BC=8C=E6=95=B0=E6=8D=AE=E6=97=A0=E6=B3=95?= =?UTF-8?q?=E5=86=99=E5=85=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 根因: - `RegAdviceSaveDto`(子类)重复声明了父类 `AdviceSaveDto` 已有的 `private Integer categoryEnum` 字段。Lombok `@Data` 在两个类上各生成独立的 getter/setter,子类方法覆盖父类。这导致: - Jackson 反序列化**时,JSON 中的 `categoryEnum` 值只写入子类字段,父类字段始终为 `null` - 多态访问**时(通过父类类型引用),`getCategoryEnum()` 返回 `null`,导致下游操作(如护士站计费 `NurseBillingAppService`)获取到空值 - `hashCode`/`equals`** 行为不一致:子类只比较自己的 `categoryEnum`,父类比较所有字段 修复: - 从 `RegAdviceSaveDto` 中移除了重复的 `categoryEnum` 字段,让子类直接继承父类的字段和 getter/setter。 - | 文件 | 变更 | - |---|---| - | `RegAdviceSaveDto.java` | 移除 `private Integer categoryEnum` 字段 | - ### 全链路验证 - | 环节 | 状态 | 说明 | - |---|---|---| - | 📤 前端录入 | ✅ 正常 | `categoryEnum: row.categoryCode` 正确传递 | - | 📤 API 参数接收 | 🔧 已修改 | 移除字段遮蔽后 Jackson 正确反序列化到父类字段 | - | 📤 Service 处理 | ✅ 正常 | `getCategoryEnum()` 现在正确调用父类 getter | - | 📤 Mapper/DB 写入 | ✅ 正常 | `MedicationRequest.categoryEnum` 正确赋值 | - | 📥 查询展示 | ✅ 正常 | 数据正确入库,查询不受影响 | - ### 编译验证 - `mvn compile -pl openhis-application -am` ✅ 通过 --- .../openhis/web/regdoctorstation/dto/RegAdviceSaveDto.java | 4 ---- 1 file changed, 4 deletions(-) diff --git a/openhis-server-new/openhis-application/src/main/java/com/openhis/web/regdoctorstation/dto/RegAdviceSaveDto.java b/openhis-server-new/openhis-application/src/main/java/com/openhis/web/regdoctorstation/dto/RegAdviceSaveDto.java index da966e871..5c228ea99 100755 --- a/openhis-server-new/openhis-application/src/main/java/com/openhis/web/regdoctorstation/dto/RegAdviceSaveDto.java +++ b/openhis-server-new/openhis-application/src/main/java/com/openhis/web/regdoctorstation/dto/RegAdviceSaveDto.java @@ -10,8 +10,4 @@ import lombok.experimental.Accessors; @Data @Accessors(chain = true) public class RegAdviceSaveDto extends AdviceSaveDto { - - /** 请求类型 */ - private Integer categoryEnum; - }