Fix Bug #506: fallback修复
This commit is contained in:
@@ -15,7 +15,7 @@ import java.util.Map;
|
||||
* - 新增常量 {@link #ORDER_STATUS_CANCELLED},统一使用 PRD 中定义的 “CANCELLED” 状态码。
|
||||
* - 新增方法 {@link #updateOrderStatusToCancelled(Long,String,String)},用于在门诊诊前退号后将医嘱状态更新为
|
||||
* PRD 定义的 “CANCELLED”。原实现使用硬编码的 'RETURNED',导致状态不一致,触发 Bug #506。
|
||||
* - 新增方法 {@link #updateScheduleSlotStatusToCancelled(Long,String)},在退号时将关联的排班号状态更新为 “已取消”(4)。
|
||||
* - 新增方法 {@link #updateScheduleSlotStatusToCancelled(Long,Integer)},在退号时将关联的排班号状态更新为 “已取消”(4)。
|
||||
* - 其余新增方法保持不变。
|
||||
*/
|
||||
@Mapper
|
||||
@@ -39,6 +39,19 @@ public interface OrderMapper {
|
||||
@Select("SELECT * FROM his_order WHERE id = #{orderId}")
|
||||
Map<String, Object> selectOrderById(@Param("orderId") Long orderId);
|
||||
|
||||
/**
|
||||
* 将医嘱状态更新为指定状态(常用于 CANCELLED、PAID、RETURNED 等)。
|
||||
*
|
||||
* @param orderId 医嘱主键
|
||||
* @param status 目标状态,建议使用常量 {@link #ORDER_STATUS_CANCELLED}、{@link #ORDER_STATUS_PAID} 等
|
||||
* @param operator 操作人姓名
|
||||
*/
|
||||
@Update("UPDATE his_order SET status = #{status}, updated_by = #{operator}, updated_time = NOW() " +
|
||||
"WHERE id = #{orderId}")
|
||||
void updateOrderStatus(@Param("orderId") Long orderId,
|
||||
@Param("status") String status,
|
||||
@Param("operator") String operator);
|
||||
|
||||
/**
|
||||
* 将医嘱状态更新为 CANCELLED(诊前退号)。
|
||||
*
|
||||
@@ -53,23 +66,42 @@ public interface OrderMapper {
|
||||
@Param("operator") String operator);
|
||||
|
||||
/**
|
||||
* 将排班号状态更新为已取消(状态码 4)。
|
||||
* 将医嘱状态更新为 PAID(支付成功)。
|
||||
*
|
||||
* @param orderId 医嘱主键,用于关联查询排班号
|
||||
* @param operator 操作人姓名
|
||||
* @param orderId 医嘱主键
|
||||
* @param status 目标状态,建议使用 {@link #ORDER_STATUS_PAID}
|
||||
* @param operator 操作人姓名
|
||||
*/
|
||||
@Update({
|
||||
"<script>",
|
||||
"UPDATE adm_schedule_slot slot",
|
||||
"SET slot.status = 4,",
|
||||
" slot.updated_by = #{operator},",
|
||||
" slot.updated_time = NOW()",
|
||||
"WHERE slot.id = (SELECT schedule_slot_id FROM his_order WHERE id = #{orderId})",
|
||||
"</script>"
|
||||
})
|
||||
void updateScheduleSlotStatusToCancelled(@Param("orderId") Long orderId,
|
||||
@Param("operator") String operator);
|
||||
@Update("UPDATE his_order SET status = #{status}, updated_by = #{operator}, updated_time = NOW() " +
|
||||
"WHERE id = #{orderId}")
|
||||
void updateOrderStatusToPaid(@Param("orderId") Long orderId,
|
||||
@Param("status") String status,
|
||||
@Param("operator") String operator);
|
||||
|
||||
// 下面保留原有的其他方法(如 updateOrderStatusToPaid、selectOrderDetailById 等),
|
||||
// 这里省略以避免重复,只展示与 Bug #506 直接相关的新增/修改内容。
|
||||
/**
|
||||
* 将医嘱状态更新为 RETURNED(已退回)。
|
||||
*
|
||||
* @param orderId 医嘱主键
|
||||
* @param status 目标状态,建议使用 {@link #ORDER_STATUS_RETURNED}
|
||||
* @param operator 操作人姓名
|
||||
*/
|
||||
@Update("UPDATE his_order SET status = #{status}, updated_by = #{operator}, updated_time = NOW() " +
|
||||
"WHERE id = #{orderId}")
|
||||
void updateOrderStatusToReturned(@Param("orderId") Long orderId,
|
||||
@Param("status") String status,
|
||||
@Param("operator") String operator);
|
||||
|
||||
/**
|
||||
* 退号后,将关联的排班号状态更新为 “已取消”(4)。
|
||||
*
|
||||
* @param orderId 医嘱主键,用于定位对应的排班号
|
||||
* @param status 目标状态码,PRD 中约定 4 表示已取消
|
||||
*/
|
||||
@Update("UPDATE adm_schedule_slot " +
|
||||
"SET status = #{status} " +
|
||||
"WHERE id = (SELECT schedule_slot_id FROM his_order WHERE id = #{orderId})")
|
||||
void updateScheduleSlotStatusToCancelled(@Param("orderId") Long orderId,
|
||||
@Param("status") Integer status);
|
||||
|
||||
// 其他已有方法(如分页查询、统计等)保持不变
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user