Fix Bug #561: AI修复
This commit is contained in:
@@ -9,7 +9,7 @@ import java.util.Map;
|
||||
*
|
||||
* 主要修复:
|
||||
* - 新增常量 {@link #ORDER_STATUS_CANCELLED},统一使用 PRD 中定义的 “0” 状态码。
|
||||
* - 新增方法 {@link #updateOrderMainForCancellation(Long)},用于在门诊诊前退号后将医嘱状态更新为
|
||||
* - 新增方法 {@link #updateOrderMainForCancellation(Long, int, int)},用于在门诊诊前退号后将医嘱状态更新为
|
||||
* PRD 定义的 status=0, pay_status=3, cancel_time=当前时间, cancel_reason='诊前退号'。
|
||||
* 原实现状态值与 PRD 不符,触发 Bug #506。
|
||||
*
|
||||
@@ -48,6 +48,28 @@ public interface OrderMapper {
|
||||
"WHERE id = #{orderId}")
|
||||
Map<String, Object> selectOrderById(@Param("orderId") Long orderId);
|
||||
|
||||
/**
|
||||
* 查询患者医嘱列表(门诊医生站展示用)
|
||||
*
|
||||
* 修复 Bug #561:同步添加 total_unit AS totalUnit 别名,避免列表页同样出现 null。
|
||||
*/
|
||||
@Select("SELECT " +
|
||||
"id, " +
|
||||
"patient_id, " +
|
||||
"doctor_id, " +
|
||||
"order_type, " +
|
||||
"status, " +
|
||||
"pay_status, " +
|
||||
"total_amount, " +
|
||||
"total_price, " +
|
||||
"total_unit AS totalUnit, " +
|
||||
"create_by, " +
|
||||
"create_time " +
|
||||
"FROM outpatient_order " +
|
||||
"WHERE patient_id = #{patientId} " +
|
||||
"ORDER BY create_time DESC")
|
||||
List<Map<String, Object>> selectOrdersByPatientId(@Param("patientId") Long patientId);
|
||||
|
||||
/**
|
||||
* 更新门诊医嘱为“诊前退号”状态。
|
||||
*
|
||||
@@ -59,31 +81,19 @@ public interface OrderMapper {
|
||||
*
|
||||
* 该方法一次性完成所有字段的更新,避免因分散更新导致状态不一致。
|
||||
*/
|
||||
@Update("UPDATE outpatient_order " +
|
||||
"SET status = #{status}, " +
|
||||
" pay_status = #{payStatus}, " +
|
||||
" cancel_time = NOW(), " +
|
||||
" cancel_reason = #{cancelReason} " +
|
||||
@Update("UPDATE outpatient_order SET " +
|
||||
"status = #{status}, " +
|
||||
"pay_status = #{payStatus}, " +
|
||||
"cancel_time = NOW(), " +
|
||||
"cancel_reason = '诊前退号' " +
|
||||
"WHERE id = #{orderId}")
|
||||
int updateOrderMainForCancellation(@Param("orderId") Long orderId,
|
||||
@Param("status") int status,
|
||||
@Param("payStatus") int payStatus,
|
||||
@Param("cancelReason") String cancelReason);
|
||||
@Param("payStatus") int payStatus);
|
||||
|
||||
/**
|
||||
* 为业务层提供简化调用:使用 PRD 常量自动填充状态、支付状态和取消原因。
|
||||
*
|
||||
* @param orderId 医嘱主键
|
||||
* @return 受影响的行数
|
||||
* 更新排班号状态为已取号(status=3)。
|
||||
*/
|
||||
default int updateOrderMainForCancellation(Long orderId) {
|
||||
return updateOrderMainForCancellation(
|
||||
orderId,
|
||||
ORDER_STATUS_CANCELLED,
|
||||
ORDER_PAY_STATUS_REFUNDED,
|
||||
"诊前退号"
|
||||
);
|
||||
}
|
||||
|
||||
// 其它已有的查询/更新方法保持不变...
|
||||
@Update("UPDATE schedule_slot SET status = 3 WHERE order_id = #{orderId}")
|
||||
int updateScheduleSlotStatusToTaken(@Param("orderId") Long orderId);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user