| | |
| | | } |
| | | |
| | | /** |
| | | * 这个逻辑 不需要了 |
| | | */ |
| | | public void reorderQueue() { |
| | | // 根据预约前后,从DB 获取 队列中 就诊准备中人员 列表 |
| | | List<Byte> queueStatusList = new ArrayList<>(); |
| | | queueStatusList.add(QueueStatusEnum.READY.getStatus()); |
| | | List<QueueDO> queueDOList = queueMapper.getOrderedQueue(queueStatusList); |
| | | if (queueDOList.isEmpty()) |
| | | return; |
| | | |
| | | AtomicInteger seqNum = new AtomicInteger(1); |
| | | queueDOList.forEach(item -> {item.setSeqNum(seqNum.getAndIncrement());}); |
| | | queueMapper.updateBatch(queueDOList); |
| | | |
| | | curSeqNum.set( seqNum.get() ); |
| | | } |
| | | |
| | | /** |
| | | * TODO 新开队列时,需要把排队中的人 转到 就诊准备 状态 |
| | | * 等到取下一个 排队中人员 的逻辑完成后,再回来不错 |
| | | */ |
| | |
| | | if (0 == openingFlag.get()) |
| | | return; |
| | | |
| | | singleThreadExecutor.execute( () -> { |
| | | hurryup(); |
| | | }); |
| | | startHurryUp(); |
| | | } |
| | | |
| | | private void nextPatient(Long roomId, String bedNo) { |
| | |
| | | priorityQueue.remove(bo); |
| | | priorityQueue.offer(bo); |
| | | |
| | | singleThreadExecutor.execute( () -> { |
| | | hurryup(); |
| | | }); |
| | | startHurryUp(); |
| | | } |
| | | |
| | | public void finishNextPatient(Long roomId, String bedNo) { |
| | |
| | | } |
| | | |
| | | @Override |
| | | public Integer passedPatientReturn(Long roomId, String bedNo, String patId) { |
| | | public Integer recallPatient(Long roomId, String bedNo, String patId) { |
| | | Integer updateNum = queueMapper.passedPatientReturn(roomId, bedNo, patId, |
| | | QueueStatusEnum.PASSED.getStatus(), QueueStatusEnum.PASSED_RETURN.getStatus()); |
| | | startHurryUp(); |
| | | return updateNum; |
| | | } |
| | | |
| | | @Override |
| | | public Integer queueJump(String patId, Byte jumped) { |
| | | public Integer patientJump(String patId, Byte jumped) { |
| | | Integer updateNum = queueMapper.queueJump(patId, QueueStatusEnum.WAITING.getStatus(), jumped); |
| | | return null; |
| | | startHurryUp(); |
| | | return updateNum; |
| | | } |
| | | |
| | | private void startHurryUp() { |
| | | singleThreadExecutor.execute( () -> { |
| | | hurryup(); |
| | | }); |
| | | } |
| | | |
| | | } |
| | | |