yxh
5 天以前 68ff33beff11310e830b0615b5a81f83fad0f683
jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/queue/QueueService.java
@@ -57,6 +57,14 @@
     * 一个工位 可能支持多个检查类型,
     */
    void startHurryUpOneBed(Long roomId, String bedNo);
    /**
     * 立即补人(现场自救 + 自助诊断):手动触发一次该工位的自动分流,
     * 并返回「系统开诊状态 / 是否停止候诊 / 候诊上限 / 补人前后人数 / 结论」。
     *
     * <p>调用方必须保证"当前登录人是该工位主人"(Controller 上用 {@code @RequireBedOwner})。
     */
    java.util.Map<String, Object> hurryUpNow(Long roomId, String bedNo);
    void startHurryUpOneCheckType(Integer checkType);
    void startBedReload();
@@ -67,8 +75,35 @@
    ErrorCode startBedClose(Long roomId, String bedNo);
    ErrorCode startBedDoctorPause(Long roomId, String bedNo, Long docId, String docName);
    ErrorCode startBedDoctorResume(Long roomId, String bedNo, Long docId, String docName);
    ErrorCode startBedDoctorOn(Long roomId, String bedNo, Long docId, String docName);
    /**
     * 医生入座(把工位主人设为该医生)。
     *
     * @param bedId 工位主键(可选):传入时**优先按它定位**,避免 bed_no 与请求值存在
     *              肉眼难辨差异(结尾空格/大小写/全角)导致"明明空闲却入座失败"
     */
    ErrorCode startBedDoctorOn(Long roomId, String bedNo, Long docId, String docName, Integer bedId);
    /**
     * 「本诊室排队中(未分配工位)」的患者列表(工作台"本诊室排队中(未分配)"分区用)。
     *
     * <p>候诊列表按 {@code room_id + bed_no} 查,只含**已分流到本工位**的患者;
     * 排队中(10) 的患者 {@code bed_no} 为空(大屏会显示、工作台看不到),这里按本工位
     * 开展的检查项目单独查出来,供医生手工拉入。
     */
    List<cn.lihu.jh.module.ecg.dal.dataobject.queue.QueueDO> getUnassignedWaitingPatient(Long roomId, String bedNo);
    /**
     * 手工把某位「排队中」患者拉入本工位(→ 准备中)。
     *
     * <p>调用方必须保证"当前登录人是该工位主人"(Controller 上用 {@code @RequireBedOwner})。
     */
    ErrorCode pullWaitingPatient(Long roomId, String bedNo, Integer queueId);
    ErrorCode startBedDoctorOff(Long roomId, String bedNo, Long docId, String docName);
    /**
     * 【本次需求】管理员强制清空工位(不要求是本人)—— 医生下班忘离座 / 换人使用同一工位时用。
     */
    ErrorCode startBedDoctorOffByAdmin(Long roomId, String bedNo);
    ErrorCode startNextPatient(Long roomId, String bedNo);
    ErrorCode startNextInstallPatient(Long roomId, String bedNo);
@@ -96,7 +131,11 @@
     */
    void queue(QueueSaveReqVO queueSaveReqVO);
    List<QueueDO> selectBookSeqNumByAppointIdList(List<Long> appointIdList);
    /**
     * 按预约单 id 批量取 queue 行(预约签到前回填「已排队 + 排队号 seq_num」用)。
     * <p>原方法名为 {@code selectBookSeqNumByAppointIdList},号统一到 seq_num 后改名。
     */
    List<QueueDO> selectQueueByAppointIdList(List<Long> appointIdList);
    /**
     * 常规检查 医生叫下一位患者