Fix Bug #503: fallback修复
This commit is contained in:
61
com/openhis/web/inpatient/mapper/DispensingMapper.java
Normal file
61
com/openhis/web/inpatient/mapper/DispensingMapper.java
Normal file
@@ -0,0 +1,61 @@
|
||||
package com.openhis.web.inpatient.mapper;
|
||||
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
import org.apache.ibatis.annotations.Update;
|
||||
import org.apache.ibatis.annotations.Insert;
|
||||
|
||||
/**
|
||||
* 住院发药/退药数据访问层
|
||||
*
|
||||
* 关键新增/修改方法:
|
||||
* 1. initDispensingRecord(Long orderId, String submitStatus)
|
||||
* - 插入发药明细记录,并将 submit_status 设置为 UNAPPLIED 或 APPLIED。
|
||||
* 2. generateSummaryRecord(Long orderId)
|
||||
* - 根据明细生成(或更新)汇总单,submit_status 必须为 APPLIED。
|
||||
* 3. updateDispensingDetailStatus(Long orderId, String submitStatus)
|
||||
* - 在“汇总申请”时把明细状态从 UNAPPLIED 改为 APPLIED。
|
||||
*
|
||||
* 这些方法配合 InpatientDispensingServiceImpl 实现了 Bug #503 的修复。
|
||||
*/
|
||||
@Mapper
|
||||
public interface DispensingMapper {
|
||||
|
||||
/**
|
||||
* 更新医嘱执行状态为已执行。
|
||||
*/
|
||||
@Update("UPDATE his_inpatient_order SET exec_status = #{status} WHERE id = #{orderId}")
|
||||
int updateOrderExecStatus(@Param("orderId") Long orderId, @Param("status") String status);
|
||||
|
||||
/**
|
||||
* 初始化发药明细记录。
|
||||
*
|
||||
* @param orderId 医嘱ID
|
||||
* @param submitStatus 初始提交状态:UNAPPLIED 或 APPLIED
|
||||
*/
|
||||
@Insert("INSERT INTO dispensing_detail (order_id, submit_status, create_time) " +
|
||||
"VALUES (#{orderId}, #{submitStatus}, NOW())")
|
||||
int initDispensingRecord(@Param("orderId") Long orderId, @Param("submitStatus") String submitStatus);
|
||||
|
||||
/**
|
||||
* 在自动模式或汇总申请后生成/更新汇总单。
|
||||
*
|
||||
* @param orderId 医嘱ID
|
||||
*/
|
||||
@Insert("INSERT INTO dispensing_summary (order_id, submit_status, create_time) " +
|
||||
"SELECT #{orderId}, 'APPLIED', NOW() " +
|
||||
"FROM dual " +
|
||||
"ON DUPLICATE KEY UPDATE submit_status = 'APPLIED', update_time = NOW()")
|
||||
int generateSummaryRecord(@Param("orderId") Long orderId);
|
||||
|
||||
/**
|
||||
* 汇总申请时,将明细的 submit_status 更新为 APPLIED。
|
||||
*
|
||||
* @param orderId 医嘱ID
|
||||
* @param submitStatus 目标状态,固定为 'APPLIED'
|
||||
*/
|
||||
@Update("UPDATE dispensing_detail SET submit_status = #{submitStatus} " +
|
||||
"WHERE order_id = #{orderId}")
|
||||
int updateDispensingDetailStatus(@Param("orderId") Long orderId,
|
||||
@Param("submitStatus") String submitStatus);
|
||||
}
|
||||
Reference in New Issue
Block a user