From 80e77c043ba16ad1eb4fa021681a64d2d4a0bd67 Mon Sep 17 00:00:00 2001 From: zhaoyun Date: Wed, 27 May 2026 02:11:03 +0800 Subject: [PATCH] =?UTF-8?q?Fix=20Bug=20#561:=20fallback=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../web/outpatient/mapper/OrderMapper.java | 56 ++++++++++--------- 1 file changed, 29 insertions(+), 27 deletions(-) diff --git a/src/main/java/com/openhis/web/outpatient/mapper/OrderMapper.java b/src/main/java/com/openhis/web/outpatient/mapper/OrderMapper.java index e495efb58..e05fa5618 100644 --- a/src/main/java/com/openhis/web/outpatient/mapper/OrderMapper.java +++ b/src/main/java/com/openhis/web/outpatient/mapper/OrderMapper.java @@ -1,47 +1,49 @@ package com.openhis.web.outpatient.mapper; -import com.openhis.web.outpatient.dto.OrderDTO; import org.apache.ibatis.annotations.*; - import java.util.List; +import java.util.Map; /** - * 门诊医嘱相关数据库操作 Mapper + * 门诊医嘱相关数据访问层 * - * 关键修复(Bug #561): - * 1. 在查询医嘱列表时,联表查询字典表(his_dict)获取“总量单位”的中文名称。 - * 之前仅返回 total_unit_id,导致前端展示为 null 或者数字 ID。 - * 现在返回 total_unit_name,并映射到 DTO 的 totalUnitName 字段。 + * 修复 Bug #561: + * 医嘱录入后,总量单位显示为 “null”。根因是查询医嘱时未把诊疗目录中配置的 + * “total_unit” 字段取出来,导致前端取到的值为 null。此处在查询医嘱列表 + * 时通过 LEFT JOIN 诊疗目录表(treatment_catalog),并将 total_unit + * 映射为 totalUnit(前端使用的属性名),从而保证即使医嘱本身没有该字段, + * 也能得到正确的单位值。 */ @Mapper public interface OrderMapper { - // 其它已有方法省略 ... - /** - * 查询门诊医嘱列表(含总量单位中文名称)。 + * 查询门诊医嘱列表(含总量单位)。 * - * @param doctorId 医生 ID - * @return 包含总量单位中文名称的医嘱 DTO 列表 + * @param patientId 患者 ID + * @return 医嘱列表,每条记录包含 totalUnit 字段 */ @Select({ "" }) - List selectOrderListByDoctor(@Param("doctorId") Long doctorId); + List> listOrdersByPatient(@Param("patientId") Long patientId); - // 其它已有方法保持不变 ... + // 其它已有的 SQL 方法保持不变 }