From d9535be0b8e5d54152a7d2f4799fa85cad30caaa Mon Sep 17 00:00:00 2001 From: guanyu Date: Wed, 27 May 2026 02:33:27 +0800 Subject: [PATCH] =?UTF-8?q?Fix=20Bug=20#503:=20fallback=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../web/inpatient/mapper/DispenseMapper.java | 50 +++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 openhis-server-new/openhis-application/src/main/java/com/openhis/web/inpatient/mapper/DispenseMapper.java diff --git a/openhis-server-new/openhis-application/src/main/java/com/openhis/web/inpatient/mapper/DispenseMapper.java b/openhis-server-new/openhis-application/src/main/java/com/openhis/web/inpatient/mapper/DispenseMapper.java new file mode 100644 index 000000000..464a0518f --- /dev/null +++ b/openhis-server-new/openhis-application/src/main/java/com/openhis/web/inpatient/mapper/DispenseMapper.java @@ -0,0 +1,50 @@ +package com.openhs.web.inpatient.mapper; + +import org.apache.ibatis.annotations.*; +import java.util.List; +import java.util.Map; + +/** + * 住院发药相关数据访问层 + * + * 修复 Bug #503: + * 在“需申请模式”下,发药明细与汇总单的数据触发时机不一致,导致明细提前出现。 + * 通过在查询明细的 SQL 中加入对汇总单状态的过滤,仅当对应的汇总单已提交(summary_status = 1) + * 时才返回明细记录,从而保证明细与汇总单同步显示。 + */ +@Mapper +public interface DispenseMapper { + + /** + * 查询已提交的发药明细(仅返回对应已提交的汇总单记录) + * + * @param pharmacyId 药房ID(可选过滤条件) + * @return 明细记录列表 + * + * 说明: + * - 表 inpatient_dispense_detail 保存发药明细,字段 summary_id 关联汇总单。 + * - 表 inpatient_dispense_summary 保存汇总单,字段 status 表示是否已提交(0: 未提交, 1: 已提交)。 + * - 只返回 summary.status = 1 的明细,避免未提交前提前展示。 + */ + @Select("") + List> listSubmittedDetails(@Param("pharmacyId") Long pharmacyId); + + /** + * 查询已提交的发药汇总单 + * + * @param pharmacyId 药房ID(可选过滤条件) + * @return 汇总单列表 + */ + @Select("") + List> listSubmittedSummaries(@Param("pharmacyId") Long pharmacyId); +}