diff --git a/com/openhis/web/outpatient/mapper/OrderMapper.java b/com/openhis/web/outpatient/mapper/OrderMapper.java index 17c1f4f0a..c16c5702e 100644 --- a/com/openhis/web/outpatient/mapper/OrderMapper.java +++ b/com/openhis/web/outpatient/mapper/OrderMapper.java @@ -49,42 +49,36 @@ public interface OrderMapper { * 从而保证前端能够正确显示。

* * @param orderId 医嘱主键 - * @return 包含医嘱详情的 Map,关键字段 {@code total_unit} 已正确映射 + * @return 包含医嘱详情的 Map */ - @Select("SELECT " + - " o.id, " + - " o.patient_id, " + - " o.doctor_id, " + - " o.order_status, " + - " o.total_quantity, " + - " o.total_unit, " + // 原字段(可能为空) - " d.total_unit_name AS total_unit, " + // 诊疗目录配置的单位,覆盖为 total_unit - " o.create_time, " + - " o.update_time " + + @Select("SELECT o.*, d.total_unit_name AS total_unit " + "FROM his_order o " + - "LEFT JOIN his_diagnosis_catalog d ON o.catalog_id = d.id " + + "LEFT JOIN diagnosis_item d ON o.item_id = d.id " + "WHERE o.id = #{orderId}") Map selectOrderDetailById(@Param("orderId") Long orderId); /** - * 将医嘱状态更新为已取消(CANCELLED)。 + * 将医嘱状态更新为已支付。 * - * @param orderId 医嘱ID - * @param status 目标状态,建议使用 {@link #ORDER_STATUS_CANCELLED} + * @param orderId 医嘱主键 + * @param status 状态码,建议使用 {@link #ORDER_STATUS_PAID} * @return 受影响的行数 */ - @Update("UPDATE his_order SET order_status = #{status} WHERE id = #{orderId}") - int updateOrderStatusToCancelled(@Param("orderId") Long orderId, - @Param("status") String status); - - /** - * **新增**:将医嘱状态更新为已支付(PAID)。 - * - * @param orderId 医嘱ID - * @param status 目标状态,建议使用 {@link #ORDER_STATUS_PAID} - * @return 受影响的行数 - */ - @Update("UPDATE his_order SET order_status = #{status} WHERE id = #{orderId}") + @Update("UPDATE his_order SET status = #{status} WHERE id = #{orderId}") int updateOrderStatusToPaid(@Param("orderId") Long orderId, @Param("status") String status); + + /** + * 将医嘱状态更新为取消(诊前退号)。 + * + *

此方法使用 PRD 中统一的 {@link #ORDER_STATUS_CANCELLED} 状态码,取代之前硬编码的 + * {@code 'RETURNED'},确保数据库状态与生产环境定义保持一致,修复 Bug #506。

+ * + * @param orderId 医嘱主键 + * @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); }