diff --git a/com/openhis/web/outpatient/mapper/OrderMapper.java b/com/openhis/web/outpatient/mapper/OrderMapper.java index 5f0055de6..dda511ddd 100644 --- a/com/openhis/web/outpatient/mapper/OrderMapper.java +++ b/com/openhis/web/outpatient/mapper/OrderMapper.java @@ -51,67 +51,65 @@ public interface OrderMapper { Map selectOrderById(@Param("orderId") Long orderId); /** - * 更新医嘱状态为已退号(CANCELLED)。 + * 根据医嘱 ID 查询医嘱明细,包括诊疗目录配置的总量单位(total_quantity_unit)。 + * 该方法专门用于门诊医生站‑医嘱录入后展示总量单位,防止出现 null。 + * + * @param orderId 医嘱主键 + * @return 包含医嘱明细及 total_quantity_unit 的 Map,若不存在返回 null + */ + @Select({ + "SELECT o.id,", + " o.patient_id,", + " o.doctor_id,", + " o.status,", + " od.item_id,", + " od.quantity,", + " od.total_quantity,", + " -- 诊疗目录表(his_item)中保存的总量单位字段", + " i.total_quantity_unit,", + " od.create_time", + "FROM his_order o", + " JOIN his_order_detail od ON o.id = od.order_id", + " JOIN his_item i ON od.item_id = i.id", + "WHERE o.id = #{orderId}" + }) + Map selectOrderDetailById(@Param("orderId") Long orderId); + + /** + * 将医嘱状态更新为已取消(CANCELLED)。 * * @param orderId 医嘱主键 * @param operator 操作人姓名 - * @param remark 备注信息 + * @param remark 备注 */ - @Update({ - "" - }) + @Update("UPDATE his_order SET status = #{status}, updated_by = #{operator}, remark = #{remark}, update_time = NOW() " + + "WHERE id = #{orderId}") void updateOrderStatusToCancelled(@Param("orderId") Long orderId, - @Param("operator") String operator, - @Param("remark") String remark, - @Param("cancelStatus") String cancelStatus); + @Param("status") String status, + @Param("operator") String operator, + @Param("remark") String remark); /** - * 更新医嘱状态为已支付(PAID)。 + * 将医嘱状态更新为已支付(PAID)。 * * @param orderId 医嘱主键 * @param operator 操作人姓名 - * @param remark 备注信息 + * @param remark 备注 */ - @Update({ - "" - }) + @Update("UPDATE his_order SET status = #{status}, updated_by = #{operator}, remark = #{remark}, update_time = NOW() " + + "WHERE id = #{orderId}") void updateOrderStatusToPaid(@Param("orderId") Long orderId, + @Param("status") String status, @Param("operator") String operator, - @Param("remark") String remark, - @Param("paidStatus") String paidStatus); + @Param("remark") String remark); /** - * 根据医嘱明细 ID 查询明细信息(包括总量单位)。 + * 将排班号状态更新为已取号(3)。 * - * @param detailId 明细主键 - * @return 明细记录 Map + * @param scheduleSlotId 排班号主键 */ - @Select("SELECT d.*, c.total_quantity_unit FROM his_order_detail d " + - "LEFT JOIN his_catalog c ON d.catalog_id = c.id " + - "WHERE d.id = #{detailId}") - Map selectOrderDetailById(@Param("detailId") Long detailId); + @Update("UPDATE adm_schedule_slot SET status = 3, update_time = NOW() WHERE id = #{scheduleSlotId}") + void updateScheduleSlotStatusToFinished(@Param("scheduleSlotId") Long scheduleSlotId); - /** - * 更新排班号状态为已取号(3)。 - * - * @param slotId 排班号主键 - */ - @Update("UPDATE adm_schedule_slot SET status = 3, updated_time = NOW() WHERE id = #{slotId}") - void updateScheduleSlotStatusToFinished(@Param("slotId") Long slotId); - - // 其它已存在的方法保持不变... + // 其它已有方法(如分页查询待写病历等)保持不变 }