From db1ad1b67a55f005baea15a6d640df370a6c74a9 Mon Sep 17 00:00:00 2001 From: eight <641137800@qq.com> Date: 星期三, 09 四月 2025 08:39:04 +0800 Subject: [PATCH] 工位分流控制信息 设置逻辑调整 --- jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/queue/QueueServiceImpl.java | 75 ++++++++++++++++++++++++++++--------- 1 files changed, 56 insertions(+), 19 deletions(-) diff --git a/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/queue/QueueServiceImpl.java b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/queue/QueueServiceImpl.java index 96a4c0f..a4605d9 100644 --- a/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/queue/QueueServiceImpl.java +++ b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/queue/QueueServiceImpl.java @@ -284,8 +284,8 @@ return error(ROOM_NOT_SIT); } - BedQueueBO bedQueueBO = queueServiceTxFunctions.getBedQueueBO(roomId, bedNo); - if (null == bedQueueBO) { + BedBO bedBO = queueServiceTxFunctions.getBedQueueBO(roomId, bedNo); + if (null == bedBO) { log.error("getRoom mapBedVsQueue DONOT existed. " + roomId + " " + bedNo); return error(QUEUE_BED_NOT_EXIST); } @@ -331,6 +331,8 @@ queueMapper.insert(queue); DevRentDO devRent = BeanUtils.toBean(queueSaveReqVO, DevRentDO.class); + devRent.setApplyNo( queueSaveReqVO.getApplyNo() ); + devRent.setEpisodeId( queueSaveReqVO.getEpisodeId() ); devRent.setState( DevRentStateEnum.FREE.getState() ); devRent.setPatDetails( queueSaveReqVO.getPatDetails() ); devRent.setCheckType( queueSaveReqVO.getBookCheckType() ); @@ -385,6 +387,13 @@ return; startNextInstallPatient(roomId, bedNo); + } + + @Override + public void passWaitingPatient(String patId, Integer bookCheckType) { + // 浠� DB 鎶� 鎺掗槦涓殑浜� 璁剧疆涓� 杩囧彿-鎺掗槦涓� + Integer ret = queueMapper.updatePatientQueueStatus(patId, bookCheckType, + QueueStatusEnum.WAITING.getStatus(), QueueStatusEnum.PASSED_WAITING.getStatus()); } public void passNextPatient(Long roomId, String bedNo) { @@ -461,6 +470,15 @@ }); return patientStatisticVO; + } + + @Override + public Integer recallPassWaitingPatient(String patId, Integer bookCheckType) { + // 浠� DB 鎶� 杩囧彿-鎺掗槦涓殑浜� 璁剧疆涓� 鎺掗槦涓� + Integer ret = queueMapper.updatePatientQueueStatus(patId, bookCheckType, + QueueStatusEnum.PASSED_WAITING.getStatus(), QueueStatusEnum.WAITING.getStatus()); + + return ret; } public PatientStatisticVO getBedDevReadyStatistic(Long roomId, String bedNo) { @@ -545,34 +563,40 @@ return updateNum; } + /** + * 鍔犳�� + * @param patId + * @param jumped + * @return + */ @Override - public Integer patientJump(String patId, Byte jumped) { - Integer updateNum = queueMapper.queueJump(patId, QueueStatusEnum.WAITING.getStatus(), jumped); + public Integer patientJump(String patId, Integer bookCheckType, Byte jumped) { + Integer updateNum = queueMapper.queueJump(patId, bookCheckType, QueueStatusEnum.WAITING.getStatus(), jumped); - QueueDO queueDO = queueMapper.getQueueByPatId(patId); + QueueDO queueDO = queueMapper.getQueueByPatId(patId, bookCheckType); startHurryUpOneCheckType(Integer.valueOf(queueDO.getBookCheckType())); return updateNum; } @Override - public RoomDO getDocRoomInfo(Long docId) { + public List<RoomDO> getDocRoomInfo(Long docId) { return roomMapper.getRoomByDocId(docId); } /** - * 鑾峰彇 鎸囧畾宸ヤ綅 寰呮鏌寰呴鐢ㄧ殑浜� + * 鑾峰彇 鎸囧畾宸ヤ綅 銆愭鏌棰嗙敤銆戠浉鍏崇殑鎮h�� * @param roomId * @param bedNo * @return */ @Override - public List<QueueDO> getToBeCheckedPatient(Long roomId, String bedNo) { + public List<QueueDO> getCheckRelatedPatient(Long roomId, String bedNo) { List<Integer> queueStatusList = new ArrayList<>(); queueStatusList.add(QueueStatusEnum.RECALLED.getStatus()); queueStatusList.add(QueueStatusEnum.READY.getStatus()); queueStatusList.add(QueueStatusEnum.ONSTAGE.getStatus()); queueStatusList.add(QueueStatusEnum.PASSED.getStatus()); - queueStatusList.add(QueueStatusEnum.AFFINITY_WAITING.getStatus()); + queueStatusList.add(QueueStatusEnum.AFFINITY.getStatus()); List<QueueDO> queueDOList = getBedQueueByStatus(roomId, bedNo, queueStatusList); //鎶� [浜插拰鐨刔 鎸埌涓婚」鍚庨潰 @@ -580,7 +604,7 @@ ListIterator<QueueDO> iterator = queueDOList.listIterator(); while (iterator.hasNext()) { QueueDO item = iterator.next(); - if (item.getStatus() == QueueStatusEnum.AFFINITY_WAITING.getStatus()) { + if (item.getStatus() == QueueStatusEnum.AFFINITY.getStatus()) { iterator.remove(); affinityWaitingList.add(item); } @@ -597,25 +621,31 @@ return queueDOList; } + /** + * 鑾峰彇 鎸囧畾宸ヤ綅 銆愬畨瑁呫�戠浉鍏崇殑鎮h�� + * @param roomId + * @param bedNo + * @return + */ @Override - public List<QueueDO> getToBeInstalledPatient(Long roomId, String bedNo) { + public List<QueueDO> getInstallRelatedPatient(Long roomId, String bedNo) { List<Integer> queueStatusList = new ArrayList<>(); queueStatusList.add(QueueStatusEnum.RECEIVED.getStatus()); queueStatusList.add(QueueStatusEnum.PASSED_INSTALL.getStatus()); - queueStatusList.add(QueueStatusEnum.AFFINITY_RECEIVED.getStatus()); - List<QueueDO> queueDOList = getRoomQueueByStatus(roomId, queueStatusList); + queueStatusList.add(QueueStatusEnum.AFFINITY_INSTALL.getStatus()); + List<QueueDO> queueDOList = getRoomQueueByStatus(roomId, queueStatusList); // 鍙互鐪嬪埌鏈瘖瀹� 寰呭畨瑁呯殑鎮h�� queueStatusList.clear(); queueStatusList.add(QueueStatusEnum.INSTALLING.getStatus()); queueStatusList.add(QueueStatusEnum.RECALLED_INSTALL.getStatus()); - queueDOList.addAll(0, getBedQueueByStatus(roomId, bedNo, queueStatusList) ); + queueDOList.addAll(0, getBedQueueByStatus(roomId, bedNo, queueStatusList) ); // 褰撳墠宸ヤ綅鐨� //鎶� [浜插拰鐨刔 鎸埌涓婚」鍚庨潰 List<QueueDO> affinityReceivedList = new ArrayList<>(); ListIterator<QueueDO> iterator = queueDOList.listIterator(); while (iterator.hasNext()) { QueueDO item = iterator.next(); - if (item.getStatus() == QueueStatusEnum.AFFINITY_RECEIVED.getStatus()) { + if (item.getStatus() == QueueStatusEnum.AFFINITY_INSTALL.getStatus()) { iterator.remove(); affinityReceivedList.add(item); } @@ -640,9 +670,12 @@ return roomDO; } + /** + * 瑁呮満鍙洖锛屾槸鎶㈠崰寮忕殑锛屼細鏀瑰彉瑁呮満宸ヤ綅 + */ private void procAffinityWhenInstallRecall(String patId, Integer[] affinityCheckTypes, Long roomId_operator, String bedNo_operator) { List<QueueDO> affinityItems = queueMapper.getCurPatGivenCheckTypesAndStatus( - patId, affinityCheckTypes, QueueStatusEnum.AFFINITY_RECEIVED.getStatus()); + patId, affinityCheckTypes, QueueStatusEnum.AFFINITY_INSTALL.getStatus()); for (int i = 0; i < affinityItems.size(); i++) { QueueDO queueItem = affinityItems.get(i); queueItem.setRoomId( roomId_operator ); @@ -652,14 +685,18 @@ } } + /** + * 棰勭害纭鍚庯紝涓诲姩瀵绘眰渚濋檮 + */ private void procAffinityWhenQueue(/*IN, OUT*/QueueSaveReqVO queueSaveReqVO, Integer[] affinityCheckTypes) { - // 濡傛灉瀛樺湪 澶勪簬 [灏辫瘖鍑嗗涓璢 | [灏辫瘖涓璢 鐨勪翰鍜岄」锛屽垯璺熼殢鍏朵腑涓�涓翰鍜岄」 + // 濡傛灉瀛樺湪 [鍊欒瘖涓璢 [灏辫瘖涓璢 [杩囧彿] [宸插彫鍥瀅 鑳借渚濋檮鐨勬鏌ラ」锛屽垯渚濋檮鍒板叾涓竴涓� List<QueueDO> affinityItems = queueMapper.getCurPatGivenCheckTypesAndStatusList( queueSaveReqVO.getPatId(), affinityCheckTypes, - List.of(QueueStatusEnum.READY.getStatus(), QueueStatusEnum.ONSTAGE.getStatus())); + List.of(QueueStatusEnum.READY.getStatus(), QueueStatusEnum.ONSTAGE.getStatus(), + QueueStatusEnum.PASSED.getStatus(), QueueStatusEnum.RECALLED.getStatus())); if (!affinityItems.isEmpty()) { QueueDO queueItem = affinityItems.get(0); - queueSaveReqVO.setStatus(QueueStatusEnum.AFFINITY_WAITING.getStatus()); // [浜插拰-鎺掗槦] 鐘舵�� + queueSaveReqVO.setStatus(QueueStatusEnum.AFFINITY.getStatus()); // [浜插拰-鎺掗槦] 鐘舵�� queueSaveReqVO.setAffinityItem( 1 ); queueSaveReqVO.setRoomId(queueItem.getRoomId()); queueSaveReqVO.setRoomName(queueItem.getRoomName()); -- Gitblit v1.9.3