From 4ec8c306229e53951c7cb445f027d3b37f47f742 Mon Sep 17 00:00:00 2001
From: eight <641137800@qq.com>
Date: 星期四, 22 八月 2024 14:32:25 +0800
Subject: [PATCH] update

---
 jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/queue/queueServiceImpl.java |   25 ++++++++++++++++++-------
 1 files changed, 18 insertions(+), 7 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 b280271..b961cb3 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
@@ -35,6 +35,14 @@
 
     final static Integer MAX_QUEUE_NUM = 3;
 
+    @Resource
+    private queueMapper queueMapper;
+
+    @Resource
+    private RoomMapper roomMapper;
+
+    AtomicInteger openingFlag = new AtomicInteger(0);
+
     AtomicInteger curSeqNum = new AtomicInteger(0);
 
     PriorityBlockingQueue<BedQueueBO> priorityQueue = new PriorityBlockingQueue<>();
@@ -42,11 +50,6 @@
 
     ExecutorService singleThreadExecutor = Executors.newSingleThreadExecutor();
 
-    @Resource
-    private queueMapper queueMapper;
-
-    @Resource
-    private RoomMapper roomMapper;
 
     @Override
     public Integer createqueue(QueueSaveReqVO createReqVO) {
@@ -91,7 +94,7 @@
     }
 
     /**
-     * 绯荤粺閲嶅惎鏃讹紝浠嶥B鍚屾闃熷垪鏁版嵁鍒� 宸ヤ綅浼樺厛闃熷垪
+     * 绯荤粺閲嶅惎鏃讹紝浠嶥B鍚屾宸ヤ綅鐨勬偅鑰呴槦鍒楁暟鎹埌 宸ヤ綅浼樺厛闃熷垪
      */
     public void initQueue() {
         priorityQueue.clear();
@@ -145,7 +148,7 @@
      * 绛夊埌鍙栦笅涓�涓� 鎺掗槦涓汉鍛� 鐨勯�昏緫瀹屾垚鍚庯紝鍐嶅洖鏉ヤ笉閿�
      */
     public void hurryup() {
-        while (true) {
+        while (1 == openingFlag.get()) {
             BedQueueBO bedQueueBO = priorityQueue.peek();
             if (null == bedQueueBO)
                 return;
@@ -190,6 +193,9 @@
         queueSaveReqVO.setStatus(QueueStatusEnum.WAITING.getStatus()); //鎺掗槦涓�
         QueueDO queue = BeanUtils.toBean(queueSaveReqVO, QueueDO.class);
         queueMapper.insert(queue);
+
+        if (0 == openingFlag.get())
+            return;
 
         singleThreadExecutor.execute( () -> {
             hurryup();
@@ -259,4 +265,9 @@
         return patientStatisticVO;
     }
 
+    public void startBiz() {
+        openingFlag.set(1);
+        hurryup();
+    }
+
 }

--
Gitblit v1.9.3