eight
2024-10-12 e86481b3a32200d83fdcdbca826b72e3776ae5cd
jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/queue/QueueServiceTxFunctions.java
@@ -237,11 +237,12 @@
        return GlobalErrorCodeConstants.SUCCESS;
    }
    // 常规 或者 领用 时 医生 取下一位患者
    public ErrorCode nextPatient(Long roomId, String bedNo) {
        // 从 DB 把 序号最小的 就诊准备中的人 设置为就诊中
        Integer updateNum = queueMapper.updateQueueStatus(roomId, bedNo,
        // 从 DB 把 序号最小的 [就诊准备中] 的人 设置为 [就诊中] (或领用中)
        Integer updateNum = queueMapper.updateBedQueueStatus(roomId, bedNo,
                QueueStatusEnum.READY.getStatus(), QueueStatusEnum.ONSTAGE.getStatus());
        // 该工位 没有 就诊准备中 人员
        // 该工位 没有 [就诊准备中] 人员
        if (null == updateNum || 0 == updateNum) {
            return QUEUE_NOT_READY_PATIENT;
        }
@@ -251,6 +252,25 @@
        bo.queueNum.getAndDecrement(); // 可能已经【并发的】在 hurry-up 中改变了值
        refreshPriorityQueue(bo);
        return GlobalErrorCodeConstants.SUCCESS;
    }
    // 装机时 医生 取下一位患者
    public ErrorCode nextInstallPatient(Long roomId, String bedNo) {
        // 从 DB 把 序号最小的 [已领用] 的人 设置为 [安装中]
        Integer updateNum = queueMapper.preemptReceivedPatient(roomId, bedNo,
                QueueStatusEnum.RECEIVED.getStatus(), QueueStatusEnum.INSTALLING.getStatus());
        // 该工位 没有 [已领用] 人员
        if (null == updateNum || 0 == updateNum) {
            return QUEUE_NOT_READY_PATIENT;
        }
        // 装机工位 无优先队列
        // 优先队列中 该工位 [已领用]人的数量 减一
        //BedQueueBO bo = mapBedVsQueue.get(String.format("%09d%s", roomId, bedNo));
        //bo.queueNum.getAndDecrement(); // 可能已经【并发的】在 hurry-up 中改变了值
        //refreshPriorityQueue(bo);
        return GlobalErrorCodeConstants.SUCCESS;
    }
@@ -377,7 +397,7 @@
                return;
            // 查看 是否有排队中的患者
            Integer updateNum = queueMapper.preemptPatient(
            Integer updateNum = queueMapper.preemptWaitingPatient(
                    bedQueueBO.getRoomId(),
                    bedQueueBO.getRoomName(),
                    bedQueueBO.getBedNo(),