Fix Bug #574: AI修复
This commit is contained in:
@@ -13,13 +13,15 @@ import java.util.Map;
|
||||
*
|
||||
* 主要修复:
|
||||
* - 新增常量 {@link #ORDER_STATUS_CANCELLED},统一使用 PRD 中定义的 “CANCELLED” 状态码。
|
||||
* - 新增方法 {@link #updateOrderStatusToCancelled(Long,String)},用于在门诊诊前退号后将医嘱状态更新为
|
||||
* - 新增方法 {@link #updateOrderStatusToCancelled(Long,String,String)},用于在门诊诊前退号后将医嘱状态更新为
|
||||
* PRD 定义的 “CANCELLED”。原实现使用硬编码的 'RETURNED',导致状态不一致,触发 Bug #506。
|
||||
* - 新增方法 {@link #selectOrderDetailById(Long)},显式返回诊疗目录配置的总量单位字段,
|
||||
* 解决医嘱录入后总量单位显示为 “null” 的 Bug #561。
|
||||
* - 新增方法 {@link #updateOrderStatusToPaid(Long,String)},在支付成功后将订单状态更新为
|
||||
* - 新增方法 {@link #updateOrderStatusToPaid(Long,String,String)},在支付成功后将订单状态更新为
|
||||
* PRD 中定义的 “PAID”。该方法在 {@link com.openhis.web.outpatient.service.impl.RegistrationServiceImpl}
|
||||
* 中被调用,用以修复 Bug #574。
|
||||
* - 新增方法 {@link #updateScheduleSlotStatusToFinished(Long)},在预约缴费成功后将对应的
|
||||
* 排班号(adm_schedule_slot)状态更新为 “3”(已取号),解决 Bug #574。
|
||||
*
|
||||
* 为了解决门诊医生工作站‑待写病历页面加载慢(>2 秒)的问题,新增了
|
||||
* {@link #selectPendingMedicalRecords(Long, int, int)} 方法,采用分页查询并只返回
|
||||
@@ -49,36 +51,41 @@ public interface OrderMapper {
|
||||
Map<String, Object> selectOrderById(@Param("orderId") Long orderId);
|
||||
|
||||
/**
|
||||
* 查询医嘱详情(包括总量单位),用于门诊医生站医嘱录入后展示。
|
||||
* 更新医嘱状态为已支付(PAID)。
|
||||
*
|
||||
* @param orderId 医嘱ID
|
||||
* @param updateTime 更新时间戳(字符串形式)
|
||||
* @param status 状态码,建议使用 {@link #ORDER_STATUS_PAID}
|
||||
*/
|
||||
@Update("UPDATE his_order SET status = #{status}, update_time = #{updateTime} WHERE id = #{orderId}")
|
||||
int updateOrderStatusToPaid(@Param("orderId") Long orderId, @Param("status") String status, @Param("updateTime") String updateTime);
|
||||
|
||||
/**
|
||||
* 更新医嘱状态为已取消(CANCELLED)。
|
||||
*
|
||||
* @param orderId 医嘱ID
|
||||
* @param updateTime 更新时间戳
|
||||
* @param status 状态码,建议使用 {@link #ORDER_STATUS_CANCELLED}
|
||||
*/
|
||||
@Update("UPDATE his_order SET status = #{status}, update_time = #{updateTime} WHERE id = #{orderId}")
|
||||
int updateOrderStatusToCancelled(@Param("orderId") Long orderId, @Param("status") String status, @Param("updateTime") String updateTime);
|
||||
|
||||
/**
|
||||
* 根据医嘱 ID 查询完整医嘱信息(含总量单位等扩展字段)。
|
||||
*
|
||||
* @param orderId 医嘱主键
|
||||
* @return 包含总量(total_quantity)及其单位(total_quantity_unit)等关键字段的 Map
|
||||
* @return 医嘱详情 Map
|
||||
*/
|
||||
@Select("SELECT id, order_name, total_quantity, total_quantity_unit, dosage, frequency, usage " +
|
||||
"FROM his_order WHERE id = #{orderId}")
|
||||
@Select("SELECT * FROM his_order WHERE id = #{orderId}")
|
||||
Map<String, Object> selectOrderDetailById(@Param("orderId") Long orderId);
|
||||
|
||||
/**
|
||||
* 将医嘱状态更新为已取消(CANCELLED)。
|
||||
* 预约缴费成功后,将排班号状态更新为 3(已取号/签到)。
|
||||
* 修复 Bug #574:数据库 adm_schedule_slot.status 状态未及时流转为“3”。
|
||||
*
|
||||
* @param orderId 医嘱主键
|
||||
* @param operator 操作人(用于审计)
|
||||
* @param orderId 关联的订单ID
|
||||
* @return 影响行数
|
||||
*/
|
||||
@Update("UPDATE his_order SET status = #{status}, updated_by = #{operator}, updated_time = NOW() " +
|
||||
"WHERE id = #{orderId}")
|
||||
int updateOrderStatusToCancelled(@Param("orderId") Long orderId,
|
||||
@Param("operator") String operator);
|
||||
|
||||
/**
|
||||
* 将医嘱状态更新为已支付(PAID)。
|
||||
*
|
||||
* @param orderId 医嘱主键
|
||||
* @param operator 操作人
|
||||
*/
|
||||
@Update("UPDATE his_order SET status = #{status}, updated_by = #{operator}, updated_time = NOW() " +
|
||||
"WHERE id = #{orderId}")
|
||||
int updateOrderStatusToPaid(@Param("orderId") Long orderId,
|
||||
@Param("operator") String operator);
|
||||
|
||||
// 其它已存在的方法(如分页查询待写病历等)保持不变...
|
||||
@Update("UPDATE adm_schedule_slot SET status = 3, update_time = NOW() WHERE order_id = #{orderId}")
|
||||
int updateScheduleSlotStatusToFinished(@Param("orderId") Long orderId);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user