| | |
| | | @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()); |
| | | } |
| | | } |
| | | |