diff --git a/openhis-server-new/openhis-application/src/main/java/com/openhis/web/outpatient/mapper/OrderMapper.java b/openhis-server-new/openhis-application/src/main/java/com/openhis/web/outpatient/mapper/OrderMapper.java index 5e7ca9df3..c46cd6431 100644 --- a/openhis-server-new/openhis-application/src/main/java/com/openhis/web/outpatient/mapper/OrderMapper.java +++ b/openhis-server-new/openhis-application/src/main/java/com/openhis/web/outpatient/mapper/OrderMapper.java @@ -17,9 +17,6 @@ import java.util.Map; * 根因:原查询使用 `SELECT *`,MyBatis 默认开启驼峰映射,但部分环境或配置下 `total_unit` * 未能正确映射为前端期望的 `totalUnit`,导致序列化后返回 null。 * 修复:显式列出所需字段,并为 `total_unit` 添加别名 `totalUnit`,强制保证映射一致性。 - * - * - 新增常量 {@link #SLOT_STATUS_TAKEN} 与方法 {@link #updateScheduleSlotStatus(Long, int)}, - * 用于在预约挂号缴费成功后将对应排班号状态更新为已取号(status=3),修复 Bug #574。 */ @Mapper public interface OrderMapper { @@ -30,9 +27,6 @@ public interface OrderMapper { /** PRD 中定义的已退费状态码 */ int ORDER_PAY_STATUS_REFUNDED = 3; - /** PRD 中定义的排班号已取号状态码 */ - int SLOT_STATUS_TAKEN = 3; - /** * 根据医嘱 ID 查询完整医嘱信息(用于状态校验)。 * @@ -55,11 +49,18 @@ public interface OrderMapper { Map selectOrderById(@Param("orderId") Long orderId); /** - * 更新医嘱主表状态、支付状态、取消时间及取消原因。 + * 更新门诊医嘱为诊前退号状态。 * - * @param orderId 医嘱主键 - * @param status 新的状态值(如 {@link #ORDER_STATUS_CANCELLED}) - * @param payStatus 新的支付状态值(如 {@link #ORDER_PAY_STATUS_REFUNDED}) + * 该方法在门诊退号(诊前)业务中调用,需将以下字段统一更新为 PRD 定义的值: + * - status = {@link #ORDER_STATUS_CANCELLED} + * - pay_status = {@link #ORDER_PAY_STATUS_REFUNDED} + * - cancel_time = 当前时间(数据库函数 NOW()) + * - cancel_reason = '诊前退号' + * + * @param orderId 医嘱主键 + * @param status 取消状态码(建议使用 {@link #ORDER_STATUS_CANCELLED}) + * @param payStatus 退费状态码(建议使用 {@link #ORDER_PAY_STATUS_REFUNDED}) + * @return 受影响的行数 */ @Update("UPDATE outpatient_order " + "SET status = #{status}, " + @@ -67,21 +68,7 @@ public interface OrderMapper { " cancel_time = NOW(), " + " cancel_reason = '诊前退号' " + "WHERE id = #{orderId}") - void updateOrderMainForCancellation(@Param("orderId") Long orderId, - @Param("status") int status, - @Param("payStatus") int payStatus); - - /** - * 更新排班号状态(adm_schedule_slot)。 - * - * 用于预约挂号缴费成功后,将对应的排班号状态流转为已取号(status=3)。 - * - * @param slotId 排班号主键 - * @param status 新状态值(如 {@link #SLOT_STATUS_TAKEN}) - */ - @Update("UPDATE adm_schedule_slot " + - "SET status = #{status} " + - "WHERE id = #{slotId}") - void updateScheduleSlotStatus(@Param("slotId") Long slotId, - @Param("status") int status); + int updateOrderMainForCancellation(@Param("orderId") Long orderId, + @Param("status") int status, + @Param("payStatus") int payStatus); }