eight
2024-11-14 3f3ec086fc73102dd2473fd2e197c3c9a16d4231
jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/queue/QueueServiceImpl.java
@@ -318,24 +318,22 @@
    @Override
    @Transactional
    public void queue(QueueSaveReqVO queueSaveReqVO) {
        queueSaveReqVO.setStatus(QueueStatusEnum.WAITING.getStatus()); //默认状态: 排队中
        // 默认以 [排队中] 状态 进入 queue 表
        queueSaveReqVO.setStatus(QueueStatusEnum.WAITING.getStatus());
        // 处理 检查项目.亲和性 逻辑
        // 如果存在 处于 [就诊准备中] | [就诊中] 的亲和项,则跟随其中一个亲和项
        CheckTypeDO checkTypeDO = queueServiceTxFunctions.getCheckTypeItem( queueSaveReqVO.getBookCheckType() );
        if ( checkTypeDO.getAffinityCheckTypes().length > 0) {
            List<QueueDO> affinityItems = queueMapper.getCurPatGivenCheckTypes(queueSaveReqVO.getPatId(), checkTypeDO.getAffinityCheckTypes());
            for (int i=0; i < affinityItems.size(); i++) {
                QueueDO queueItem = affinityItems.get(i);
                if (QueueStatusEnum.READY.getStatus() == queueItem.getStatus()
                    || QueueStatusEnum.ONSTAGE.getStatus() == queueItem.getStatus()) {
                    queueSaveReqVO.setStatus(QueueStatusEnum.AFFINITY_WAITING.getStatus()); //改变 排队状态
                    queueSaveReqVO.setRoomId(queueItem.getRoomId());
                    queueSaveReqVO.setRoomName(queueItem.getRoomName());
                    queueSaveReqVO.setBedNo(queueItem.getBedNo());
                    queueSaveReqVO.setSeqNum(queueItem.getSeqNum());
                    break;
                }
            List<QueueDO> affinityItems = queueMapper.getCurPatGivenCheckTypesAndStatusList( queueSaveReqVO.getPatId(), checkTypeDO.getAffinityCheckTypes(),
                    List.of(QueueStatusEnum.READY.getStatus(), QueueStatusEnum.ONSTAGE.getStatus()));
            if (!affinityItems.isEmpty()) {
                QueueDO queueItem = affinityItems.get(0);
                queueSaveReqVO.setStatus(QueueStatusEnum.AFFINITY_WAITING.getStatus()); // [亲和-排队] 状态
                queueSaveReqVO.setRoomId(queueItem.getRoomId());
                queueSaveReqVO.setRoomName(queueItem.getRoomName());
                queueSaveReqVO.setBedNo(queueItem.getBedNo());
                queueSaveReqVO.setSeqNum(queueItem.getSeqNum());
            }
        }