diff --git a/com/openhis/web/outpatient/mapper/OrderMapper.java b/com/openhis/web/outpatient/mapper/OrderMapper.java index 5ad549a3e..7ca9769ac 100644 --- a/com/openhis/web/outpatient/mapper/OrderMapper.java +++ b/com/openhis/web/outpatient/mapper/OrderMapper.java @@ -12,7 +12,7 @@ import java.util.Map; * * 主要修复: * - 新增常量 {@link #ORDER_STATUS_CANCELLED},统一使用 PRD 中定义的 “CANCELLED” 状态码。 - * - 新增方法 {@link #updateOrderStatusToCancelled(Long)},用于在门诊诊前退号后将医嘱状态更新为 + * - 新增方法 {@link #updateOrderStatusToCancelled(Long,String)},用于在门诊诊前退号后将医嘱状态更新为 * PRD 定义的 “CANCELLED”。原实现使用硬编码的 'RETURNED',导致状态不一致,触发 Bug #506。 * - **新增方法 {@link #selectOrderDetailById(Long)}**,显式返回诊疗目录配置的总量单位字段, * 解决医嘱录入后总量单位显示为 “null” 的 Bug #561。 @@ -50,28 +50,32 @@ public interface OrderMapper { */ @Select("SELECT o.*, d.total_unit_name AS total_unit " + "FROM his_order o " + - "LEFT JOIN diagnostic_catalog d ON o.catalog_id = d.id " + + "LEFT JOIN diagnosis_detail d ON o.diagnosis_detail_id = d.id " + "WHERE o.id = #{orderId}") Map selectOrderDetailById(@Param("orderId") Long orderId); /** - * 将医嘱状态更新为已取消(CANCELLED)。 + * 更新订单状态为已支付。 * - * @param orderId 医嘱主键 - * @return 受影响的行数 - */ - @Update("UPDATE his_order SET status = #{status} WHERE id = #{orderId}") - int updateOrderStatusToCancelled(@Param("orderId") Long orderId, - @Param("status") String status); - - /** - * **新增**:将医嘱状态更新为已支付(PAID)。 - * - * @param orderId 医嘱主键 - * @param status 目标状态,建议使用 {@link #ORDER_STATUS_PAID} + * @param orderId 订单ID + * @param status 状态码,建议使用 {@link #ORDER_STATUS_PAID} * @return 受影响的行数 */ @Update("UPDATE his_order SET status = #{status} WHERE id = #{orderId}") int updateOrderStatusToPaid(@Param("orderId") Long orderId, @Param("status") String status); + + /** + * 更新订单状态为已取消(退号)。 + * + *

该方法专门用于门诊诊前退号场景,使用 PRD 中统一的 {@code CANCELLED} 状态码,避免 + * 之前硬编码为 {@code RETURNED} 导致的状态不一致问题。

+ * + * @param orderId 订单ID + * @param status 状态码,建议使用 {@link #ORDER_STATUS_CANCELLED} + * @return 受影响的行数 + */ + @Update("UPDATE his_order SET status = #{status} WHERE id = #{orderId}") + int updateOrderStatusToCancelled(@Param("orderId") Long orderId, + @Param("status") String status); }