From 6a7f481d975f94984602b15c90904090f30b9b67 Mon Sep 17 00:00:00 2001
From: eight <641137800@qq.com>
Date: 星期六, 12 十月 2024 10:15:17 +0800
Subject: [PATCH] 叫号分 领用叫号、安装叫号、常规叫号

---
 jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/doctor/DoctorController.java   |   60 +++++++++++++++++++++++++++++
 jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/queue/QueueServiceImpl.java             |   22 +++++++++++
 jh-module-ecg/jh-module-ecg-api/src/main/java/cn/lihu/jh/module/ecg/enums/QueueStatusEnum.java                      |    7 ++-
 jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/queue/QueueService.java                 |   12 +++++
 jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/devrent/DevRentController.java |    1 
 jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/devrent/DevRentServiceImpl.java         |    8 ----
 jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/queue/QueueServiceTxFunctions.java      |    2 
 7 files changed, 97 insertions(+), 15 deletions(-)

diff --git a/jh-module-ecg/jh-module-ecg-api/src/main/java/cn/lihu/jh/module/ecg/enums/QueueStatusEnum.java b/jh-module-ecg/jh-module-ecg-api/src/main/java/cn/lihu/jh/module/ecg/enums/QueueStatusEnum.java
index 74e6c76..d44dc55 100644
--- a/jh-module-ecg/jh-module-ecg-api/src/main/java/cn/lihu/jh/module/ecg/enums/QueueStatusEnum.java
+++ b/jh-module-ecg/jh-module-ecg-api/src/main/java/cn/lihu/jh/module/ecg/enums/QueueStatusEnum.java
@@ -20,9 +20,10 @@
     WAITING((byte)10, "鎺掗槦涓�"),
     RECALLED((byte)15, "宸插彫鍥�"),
     READY((byte)20, "鍊欒瘖涓�"),
-    ONSTAGE((byte)30, "灏辫瘖涓�"),
-    RECEIVED((byte)40, "宸查鐢�"),
-    FINISH((byte)50, "宸插氨璇�");
+    ONSTAGE((byte)30, "灏辫瘖涓�"),  // 鎴� 棰嗙敤涓�
+    RECEIVED((byte)33, "宸查鐢�"),
+    INSTALLING((byte)36, "瀹夎涓�"),
+    FINISH((byte)40, "宸插氨璇�");
 
     public static final int[] ARRAYS = Arrays.stream(values()).mapToInt(QueueStatusEnum::getStatus).toArray();
 
diff --git a/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/devrent/DevRentController.java b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/devrent/DevRentController.java
index 738f5c4..bfe957c 100644
--- a/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/devrent/DevRentController.java
+++ b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/devrent/DevRentController.java
@@ -56,7 +56,6 @@
     public CommonResult<Long> devReady(@Valid @RequestBody DevRentSaveReqVO createReqVO) {
         try {
             CommonResult<Long> result = devRentService.readyOperation(createReqVO);
-            queueService.startHurryUpOneBed(createReqVO.getRoomId(), createReqVO.getBedNo());
             return result;
         } catch ( RuntimeException runtimeException ) {
             String err = ExceptionUtils.formatException( runtimeException );
diff --git a/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/doctor/DoctorController.java b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/doctor/DoctorController.java
index ea70ee0..a54333b 100644
--- a/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/doctor/DoctorController.java
+++ b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/doctor/DoctorController.java
@@ -126,7 +126,7 @@
     }
 
     @GetMapping("/finish-next-patient")
-    @Operation(summary = "瀹屾垚銆佷笅涓�浣嶆偅鑰�")
+    @Operation(summary = "甯歌鍙彿銆佷笅涓�浣嶆偅鑰�")
     @Parameter(name = "roomId", description = "璇婂缂栧彿", required = true, example = "116")
     @Parameter(name = "bedNo", description = "宸ヤ綅缂栧彿", required = true, example = "B2")
     @PreAuthorize("@ss.hasPermission('ecg:doctor:task')")
@@ -154,6 +154,64 @@
         return success(BeanUtils.toBean(queueDOList, QueueRespVO.class));
     }
 
+    @GetMapping("/finish-receive-next-patient")
+    @Operation(summary = "棰嗙敤鍙彿銆佷笅涓�浣嶆偅鑰�")
+    @Parameter(name = "roomId", description = "璇婂缂栧彿", required = true, example = "116")
+    @Parameter(name = "bedNo", description = "宸ヤ綅缂栧彿", required = true, example = "B2")
+    @PreAuthorize("@ss.hasPermission('ecg:doctor:task')")
+    public CommonResult<List<QueueRespVO>> finishReceiveNextPatient(
+            @RequestParam("roomId") Long roomId,
+            @RequestParam("bedNo") String bedNo)
+    {
+        queueService.finishReceiveNextPatient(roomId, bedNo);
+
+        List<Byte> queueStatusList = new ArrayList<>();
+        queueStatusList.add(QueueStatusEnum.RECALLED.getStatus());
+        queueStatusList.add(QueueStatusEnum.READY.getStatus());
+        queueStatusList.add(QueueStatusEnum.ONSTAGE.getStatus());
+        queueStatusList.add(QueueStatusEnum.PASSED.getStatus());
+        List<QueueDO> queueDOList = queueService.getDoctorQueueByStatus(roomId, bedNo, queueStatusList);
+
+        // 杩囨护鍑�  灏辫瘖涓殑锛屽噯澶囧彨鍙�
+        QueueDO onStageItem = queueDOList.stream().filter(item -> Objects.equals(item.getStatus(), QueueStatusEnum.ONSTAGE.getStatus())).findFirst().orElse(null);
+        if (null != onStageItem) {
+            CallSaveReqVO callSaveReqVO = BeanUtils.toBean(onStageItem, CallSaveReqVO.class);
+            callSaveReqVO.setId(null);
+            callService.createCall(callSaveReqVO);
+        }
+
+        return success(BeanUtils.toBean(queueDOList, QueueRespVO.class));
+    }
+
+    @GetMapping("/finish-install-next-patient")
+    @Operation(summary = "瑁呮満鍙彿銆佷笅涓�浣嶆偅鑰�")
+    @Parameter(name = "roomId", description = "璇婂缂栧彿", required = true, example = "116")
+    @Parameter(name = "bedNo", description = "宸ヤ綅缂栧彿", required = true, example = "B2")
+    @PreAuthorize("@ss.hasPermission('ecg:doctor:task')")
+    public CommonResult<List<QueueRespVO>> finishInstallNextPatient(
+            @RequestParam("roomId") Long roomId,
+            @RequestParam("bedNo") String bedNo)
+    {
+        queueService.finishInstallNextPatient(roomId, bedNo);
+
+        List<Byte> queueStatusList = new ArrayList<>();
+        queueStatusList.add(QueueStatusEnum.RECALLED.getStatus());
+        queueStatusList.add(QueueStatusEnum.READY.getStatus());
+        queueStatusList.add(QueueStatusEnum.ONSTAGE.getStatus());
+        queueStatusList.add(QueueStatusEnum.PASSED.getStatus());
+        List<QueueDO> queueDOList = queueService.getDoctorQueueByStatus(roomId, bedNo, queueStatusList);
+
+        // 杩囨护鍑�  灏辫瘖涓殑锛屽噯澶囧彨鍙�
+        QueueDO onStageItem = queueDOList.stream().filter(item -> Objects.equals(item.getStatus(), QueueStatusEnum.ONSTAGE.getStatus())).findFirst().orElse(null);
+        if (null != onStageItem) {
+            CallSaveReqVO callSaveReqVO = BeanUtils.toBean(onStageItem, CallSaveReqVO.class);
+            callSaveReqVO.setId(null);
+            callService.createCall(callSaveReqVO);
+        }
+
+        return success(BeanUtils.toBean(queueDOList, QueueRespVO.class));
+    }
+
     @GetMapping("/pass-next-patient")
     @Operation(summary = "杩囧彿銆佷笅涓�浣嶆偅鑰�")
     @Parameter(name = "roomId", description = "璇婂缂栧彿", required = true, example = "116")
diff --git a/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/devrent/DevRentServiceImpl.java b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/devrent/DevRentServiceImpl.java
index 980551d..a59f286 100644
--- a/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/devrent/DevRentServiceImpl.java
+++ b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/devrent/DevRentServiceImpl.java
@@ -120,10 +120,6 @@
             }
         }
 
-        // 鎮h�呮帓闃熺姸鎬� 鏇存柊涓� 宸查鐢�
-        queueMapper.updatePatientQueueStatus( createReqVO.getPatId(),
-                QueueStatusEnum.ONSTAGE.getStatus(), QueueStatusEnum.RECEIVED.getStatus());
-
         return CommonResult.success(rent_id);
     }
 
@@ -188,10 +184,6 @@
             jobRecordDO.setUpdateTime(LocalDateTime.now());
             jobRecordMapper.updateById(jobRecordDO);
         }
-
-        // 鎮h�呮帓闃熺姸鎬� 鏇存柊涓� 宸插氨璇�
-        queueMapper.updatePatientQueueStatus( createReqVO.getPatId(),
-                QueueStatusEnum.RECEIVED.getStatus(), QueueStatusEnum.FINISH.getStatus());
 
         return CommonResult.success(rent_id);
     }
diff --git a/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/queue/QueueService.java b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/queue/QueueService.java
index 6d62b73..d9d9805 100644
--- a/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/queue/QueueService.java
+++ b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/queue/QueueService.java
@@ -90,11 +90,21 @@
     void queue(QueueSaveReqVO queueSaveReqVO);
 
     /**
-     * 鍖荤敓鍙笅涓�浣嶆偅鑰�
+     * 甯歌妫�鏌� 鍖荤敓鍙笅涓�浣嶆偅鑰�
      */
     void finishNextPatient(Long roomId, String bedNo);
 
     /**
+     * 棰嗙敤 鍖荤敓鍙笅涓�浣嶆偅鑰�
+     */
+    void finishReceiveNextPatient(Long roomId, String bedNo);
+
+    /**
+     * 瑁呮満 鍖荤敓鍙笅涓�浣嶆偅鑰�
+     */
+    void finishInstallNextPatient(Long roomId, String bedNo);
+
+    /**
      * 鍖荤敓鐪嬪畬鎮h��
      */
     void passNextPatient(Long roomId, String bedNo);
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 f26af26..7a960a4 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
@@ -306,6 +306,8 @@
         startHurryUpOneCheckType( queue.getBookCheckType() );
     }
 
+    // 甯歌妫�鏌� 鍙彿
+    @Override
     public void finishNextPatient(Long roomId, String bedNo) {
         // 浠� DB 鎶� 灏辫瘖涓殑浜� 璁剧疆涓哄氨璇婂畬鎴�
         Integer ret =  queueMapper.updateQueueStatus(roomId, bedNo,
@@ -314,6 +316,26 @@
         startNextPatient(roomId, bedNo);
     }
 
+    // 棰嗙敤 鍙彿
+    @Override
+    public void finishReceiveNextPatient(Long roomId, String bedNo) {
+        // 浠� DB 鎶� 灏辫瘖涓殑浜� 璁剧疆涓哄氨璇婂畬鎴�
+        Integer ret =  queueMapper.updateQueueStatus(roomId, bedNo,
+                QueueStatusEnum.ONSTAGE.getStatus(), QueueStatusEnum.RECEIVED.getStatus());
+
+        startNextPatient(roomId, bedNo);
+    }
+
+    // 瑁呮満 鍙彿
+    @Override
+    public void finishInstallNextPatient(Long roomId, String bedNo) {
+        // 浠� DB 鎶� 灏辫瘖涓殑浜� 璁剧疆涓哄氨璇婂畬鎴�
+        Integer ret =  queueMapper.updateQueueStatus(roomId, bedNo,
+                QueueStatusEnum.ONSTAGE.getStatus(), QueueStatusEnum.FINISH.getStatus());
+
+        startNextPatient(roomId, bedNo);
+    }
+
     public void passNextPatient(Long roomId, String bedNo) {
         // 浠� DB 鎶� 灏辫瘖涓殑浜� 璁剧疆涓鸿繃鍙�
         Integer ret =  queueMapper.updateQueueStatus(roomId, bedNo,
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 fef9abe..6ef229c 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
@@ -250,7 +250,7 @@
         BedQueueBO bo = mapBedVsQueue.get(String.format("%09d%s", roomId, bedNo));
         bo.queueNum.getAndDecrement(); // 鍙兘宸茬粡銆愬苟鍙戠殑銆戝湪 hurry-up 涓敼鍙樹簡鍊�
 
-        removePriorityQueue(bo);
+        refreshPriorityQueue(bo);
         return GlobalErrorCodeConstants.SUCCESS;
     }
 

--
Gitblit v1.9.3