From be5e5dd019c89cf586b9b4c8aa07954065d80b0c Mon Sep 17 00:00:00 2001
From: eight <641137800@qq.com>
Date: 星期一, 14 十月 2024 18:52:44 +0800
Subject: [PATCH] 装机 过号 召回

---
 jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/doctor/DoctorController.java |   58 +++++++++++++++++++++++++++-
 jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/queue/QueueServiceImpl.java           |   17 ++++++++
 jh-module-ecg/jh-module-ecg-api/src/main/java/cn/lihu/jh/module/ecg/enums/QueueStatusEnum.java                    |    1 
 jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/queue/QueueService.java               |    9 ++++
 4 files changed, 81 insertions(+), 4 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 d44dc55..d6b1275 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
@@ -17,6 +17,7 @@
 
     //5:杩囧彿 10:鎺掗槦涓� 15:宸插彫鍥� 20:鍊欒瘖鍑嗗 30:灏辫瘖涓� 40:灏辫瘖瀹屾垚
     PASSED((byte)5, "宸茶繃鍙�"),
+    PASSED_INSTALL((byte)7, "宸茶繃鍙�-瀹夎"),
     WAITING((byte)10, "鎺掗槦涓�"),
     RECALLED((byte)15, "宸插彫鍥�"),
     READY((byte)20, "鍊欒瘖涓�"),
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 9ce1e5b..fc67401 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
@@ -243,6 +243,39 @@
         return success(BeanUtils.toBean(queueDOList, QueueRespVO.class));
     }
 
+    @GetMapping("/pass-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>> passInstallNextPatient(
+            @RequestParam("roomId") Long roomId,
+            @RequestParam("bedNo") String bedNo)
+    {
+        queueService.passInstallNextPatient(roomId, bedNo);
+
+        List<Byte> queueStatusList = new ArrayList<>();
+        queueStatusList.add(QueueStatusEnum.RECEIVED.getStatus());
+        queueStatusList.add(QueueStatusEnum.PASSED_INSTALL.getStatus());
+        List<QueueDO> queueDOList = queueService.getRoomQueueByStatus(roomId, queueStatusList);
+
+        queueStatusList.clear();
+        queueStatusList.add(QueueStatusEnum.INSTALLING.getStatus());
+        queueDOList.addAll(0, queueService.getBedQueueByStatus(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("/call-again")
     @Operation(summary = "閲嶅彨銆佹偅鑰�")
     @Parameter(name = "roomId", description = "璇婂缂栧彿", required = true, example = "116")
@@ -290,17 +323,18 @@
         return success(BeanUtils.toBean(queueDOList, QueueRespVO.class));
     }
 
-    @GetMapping("/get-received-patient-list")
-    @Operation(summary = "鍙栧凡棰嗙敤鎮h�呭垪琛�")
+    @GetMapping("/get-to-be-installed-list")
+    @Operation(summary = "鍙� [寰呭畨瑁匽 鎮h�呭垪琛�")
     @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>> getReceivedPatientList(
+    public CommonResult<List<QueueRespVO>> getToBeInstalledPatientList(
             @RequestParam("roomId") Long roomId,
             @RequestParam("bedNo") String bedNo)
     {
         List<Byte> queueStatusList = new ArrayList<>();
         queueStatusList.add(QueueStatusEnum.RECEIVED.getStatus());
+        queueStatusList.add(QueueStatusEnum.PASSED_INSTALL.getStatus());
         List<QueueDO> queueDOList = queueService.getRoomQueueByStatus(roomId, queueStatusList);
 
         queueStatusList.clear();
@@ -367,4 +401,22 @@
         return success("鎿嶄綔鎴愬姛");
     }
 
+    @GetMapping("/recall-install-patient")
+    @Operation(summary = "杩囧彿瀹夎鐥呬汉鍙洖")
+    @Parameter(name = "roomId", description = "璇婂缂栧彿", required = true, example = "116")
+    @Parameter(name = "bedNo", description = "宸ヤ綅缂栧彿", required = true, example = "B2")
+    @Parameter(name = "patId", description = "鎮h�呯紪鍙�", required = true, example = "B2")
+    @PreAuthorize("@ss.hasPermission('ecg:doctor:task')")
+    public CommonResult<String> recallInstallPatient(
+            @RequestParam("roomId") Long roomId,
+            @RequestParam("bedNo") String bedNo,
+            @RequestParam("patId") String patId )
+    {
+        Integer result = queueService.recallInstallPatient(roomId, bedNo, patId);
+        if (null == result || 0 == result)
+            return error(PATIENT_NOT_EXISTS);
+
+        return success("鎿嶄綔鎴愬姛");
+    }
+
 }
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 c528bae..36ee3e8 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
@@ -105,9 +105,14 @@
     void finishInstallNextPatient(Long roomId, String bedNo);
 
     /**
-     * 鍖荤敓鐪嬪畬鎮h��
+     * 甯歌杩囧彿銆侀鐢ㄨ繃鍙�
      */
     void passNextPatient(Long roomId, String bedNo);
+
+    /**
+     * 瑁呮満杩囧彿
+     */
+    void passInstallNextPatient(Long roomId, String bedNo);
 
     List<QueueDO> getBedQueueByStatus(Long roomId, String bedNo, List<Byte> statusList);
 
@@ -121,6 +126,8 @@
 
     Integer recallPatient(Long roomId, String bedNo, String patId);
 
+    Integer recallInstallPatient(Long roomId, String bedNo, String patId);
+
     Integer patientJump(String patId, Byte jumped );
 
     RoomDO getDocRoomInfo(Long docId);
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 5101e3a..85cd522 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
@@ -387,6 +387,15 @@
         startNextPatient(roomId, bedNo);
     }
 
+    @Override
+    public void passInstallNextPatient(Long roomId, String bedNo) {
+        // 浠� DB 鎶� [瀹夎涓璢鐨勪汉 璁剧疆涓� [杩囧彿-瀹夎]
+        Integer ret =  queueMapper.updateBedQueueStatus(roomId, bedNo,
+                QueueStatusEnum.INSTALLING.getStatus(), QueueStatusEnum.PASSED_INSTALL.getStatus());
+
+        startNextPatient(roomId, bedNo);
+    }
+
     public List<QueueDO> getBedQueueByStatus(Long roomId, String bedNo, List<Byte> statusList) {
         List<QueueDO> queueDOList = queueMapper.getBedQueueByStatus(roomId, bedNo, statusList);
         return queueDOList;
@@ -507,6 +516,14 @@
     }
 
     @Override
+    public Integer recallInstallPatient(Long roomId, String bedNo, String patId) {
+        Integer updateNum = queueMapper.recallPassedPatient(roomId, bedNo, patId,
+                QueueStatusEnum.PASSED_INSTALL.getStatus(), QueueStatusEnum.RECEIVED.getStatus());
+        startHurryUpOneBed(roomId, bedNo);
+        return updateNum;
+    }
+
+    @Override
     public Integer patientJump(String patId, Byte jumped) {
         Integer updateNum = queueMapper.queueJump(patId, QueueStatusEnum.WAITING.getStatus(), jumped);
 

--
Gitblit v1.9.3