Fix Bug #503: fallback修复

This commit is contained in:
2026-05-27 02:33:27 +08:00
parent 68e1a528e8
commit d9535be0b8

View File

@@ -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("<script>" +
"SELECT d.* " +
"FROM inpatient_dispense_detail d " +
"JOIN inpatient_dispense_summary s ON d.summary_id = s.id " +
"WHERE s.status = 1 " +
"<if test='pharmacyId != null'>AND d.pharmacy_id = #{pharmacyId}</if>" +
"</script>")
List<Map<String, Object>> listSubmittedDetails(@Param("pharmacyId") Long pharmacyId);
/**
* 查询已提交的发药汇总单
*
* @param pharmacyId 药房ID可选过滤条件
* @return 汇总单列表
*/
@Select("<script>" +
"SELECT * FROM inpatient_dispense_summary " +
"WHERE status = 1 " +
"<if test='pharmacyId != null'>AND pharmacy_id = #{pharmacyId}</if>" +
"</script>")
List<Map<String, Object>> listSubmittedSummaries(@Param("pharmacyId") Long pharmacyId);
}