From 3fa04cb2aff24925cddf7d2009738137bdcc5c31 Mon Sep 17 00:00:00 2001
From: eight <641137800@qq.com>
Date: 星期二, 12 十一月 2024 17:56:46 +0800
Subject: [PATCH] update
---
jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/queue/QueueServiceImpl.java | 2 ++
jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/dal/mysql/queue/QueueMapper.java | 11 ++++++++++-
jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/queue/QueueServiceTxFunctions.java | 25 +++++++++++++++++++------
3 files changed, 31 insertions(+), 7 deletions(-)
diff --git a/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/dal/mysql/queue/QueueMapper.java b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/dal/mysql/queue/QueueMapper.java
index ba35dd8..2b6d132 100644
--- a/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/dal/mysql/queue/QueueMapper.java
+++ b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/dal/mysql/queue/QueueMapper.java
@@ -160,9 +160,18 @@
"</script>")
List<QueueDO> getBedQueueByStatus(@Param("roomId")Long roomId, @Param("bedNo")String bedNo, @Param("statusList")List<Integer> statusList);
- @Select("SELECT * from lihu.queue where room_id = #{roomId} and bed_no = #{bedNo} and status = #{curStatus} order by seq_num limit 1")
+ @Select("SELECT * from lihu.queue where room_id = #{roomId} and bed_no = #{bedNo} and status = #{curStatus} order by seq_num, create_time limit 1")
QueueDO getFirstItemByBedAndStatus(@Param("roomId")Long roomId, @Param("bedNo")String bedNo, @Param("curStatus")Integer curStatus);
+ // 鏌愪釜璇婂鑼冨洿鍐� [宸查鐢╙ [宸插彫鍥�-瀹夎] 浜哄憳 鎶㈠崰, 浼氭洿鏂� [宸ヤ綅鍙穄
+ // 娌℃湁闄愬畾妫�鏌ョ被鍨嬶紝涓嶈浣跨敤鏃堕棿妲�
+ @Select("select * from lihu.queue where room_id = #{roomId} and status in ( " +
+ " <foreach collection='curStatusList' separator=',' item='status'>" +
+ " #{status} " +
+ " </foreach> )" +
+ " order by seq_num, create_time limit 1 " )
+ QueueDO getFirstItemByRoomAndStatus(@Param("roomId")Long roomId, @Param("curStatusList")List<Integer> curStatusList);
+
@Update("update lihu.queue set status = #{newStatus} where status = #{curStatus} and seq_num = \n" +
"(select a.min_seq_num from \n" +
" (select min(seq_num) as min_seq_num from lihu.queue where room_id = #{roomId} and bed_no = #{bedNo} and status = #{curStatus}) a )")
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 4f8ec89..ba39948 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
@@ -566,6 +566,7 @@
queueStatusList.add(QueueStatusEnum.READY.getStatus());
queueStatusList.add(QueueStatusEnum.ONSTAGE.getStatus());
queueStatusList.add(QueueStatusEnum.PASSED.getStatus());
+ queueStatusList.add(QueueStatusEnum.AFFINITY_WAITING.getStatus());
List<QueueDO> queueDOList = getBedQueueByStatus(roomId, bedNo, queueStatusList);
return queueDOList;
}
@@ -575,6 +576,7 @@
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.clear();
diff --git a/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/queue/QueueServiceTxFunctions.java b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/queue/QueueServiceTxFunctions.java
index 166034f..8a38c87 100644
--- a/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/queue/QueueServiceTxFunctions.java
+++ b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/queue/QueueServiceTxFunctions.java
@@ -296,15 +296,28 @@
// 瑁呮満鏃� 鍖荤敓 鍙栦笅涓�浣嶆偅鑰�
public ErrorCode nextInstallPatient(Long roomId, String bedNo) {
- // 浠� DB 鎶� 搴忓彿鏈�灏忕殑 [宸查鐢╙ 鐨勪汉 璁剧疆涓� [瀹夎涓璢
- Integer updateNum = queueMapper.preemptToBeInstalledPatient(roomId, bedNo,
- List.of(QueueStatusEnum.RECEIVED.getStatus(), QueueStatusEnum.RECALLED_INSTALL.getStatus()),
- QueueStatusEnum.INSTALLING.getStatus());
- // 璇ュ伐浣� 娌℃湁 [宸查鐢╙ 浜哄憳
- if (null == updateNum || 0 == updateNum) {
+ // 浠� DB 鎶� 搴忓彿鏈�灏忕殑 [宸查鐢╙ [宸插彫鍥�-瀹夎] 鐨勪汉 璁剧疆涓� [瀹夎涓璢
+ QueueDO firstItem = queueMapper.getFirstItemByRoomAndStatus(roomId, List.of(QueueStatusEnum.RECEIVED.getStatus(), QueueStatusEnum.RECALLED_INSTALL.getStatus()));
+ // 璇ュ伐浣� 娌℃湁 [宸查鐢╙ [宸插彫鍥�-瀹夎] 浜哄憳
+ if (null == firstItem) {
return QUEUE_NOT_READY_PATIENT;
}
+ firstItem.setStatus( QueueStatusEnum.INSTALLING.getStatus() );
+ queueMapper.updateById( firstItem );
+
+ // 妫�鏌ラ」鐩�.浜插拰鎬� 澶勭悊閫昏緫
+ CheckTypeDO checkTypeDO = getCheckTypeItem( firstItem.getBookCheckType() );
+ if (checkTypeDO.getAffinityCheckTypes().length > 0) {
+ List<QueueDO> affinityItems = queueMapper.getCurPatGivenCheckTypesAndStatus(firstItem.getPatId(),
+ checkTypeDO.getAffinityCheckTypes(), QueueStatusEnum.RECEIVED.getStatus());
+ for (int i = 0; i < affinityItems.size(); i++) {
+ QueueDO queueItem = affinityItems.get(i);
+ queueItem.setStatus(QueueStatusEnum.AFFINITY_RECEIVED.getStatus()); //鏀瑰彉 鎺掗槦鐘舵��
+ queueMapper.updateById(queueItem);
+ }
+ }
+
// 瑁呮満宸ヤ綅 鏃犱紭鍏堥槦鍒�
// 浼樺厛闃熷垪涓� 璇ュ伐浣� [宸查鐢╙浜虹殑鏁伴噺 鍑忎竴
//BedQueueBO bo = mapBedVsQueue.get( Utils.formatRoomBed( roomId, bedNo ) );
--
Gitblit v1.9.3