From d14e741e49fb8f5fe2b825cb7dc1577c37cb6a66 Mon Sep 17 00:00:00 2001
From: eight <641137800@qq.com>
Date: 星期三, 28 八月 2024 10:14:25 +0800
Subject: [PATCH] update

---
 jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/Constants.java                      |    2 ++
 jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/listener/MySpringEventListener.java |    5 ++++-
 jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/queue/queueServiceImpl.java |   19 +++++++++++++++----
 jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/queue/queueService.java     |    3 +--
 jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/queue/BedOpenCallable.java  |   13 -------------
 5 files changed, 22 insertions(+), 20 deletions(-)

diff --git a/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/Constants.java b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/Constants.java
index b127159..2dbd8a4 100644
--- a/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/Constants.java
+++ b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/Constants.java
@@ -2,4 +2,6 @@
 
 public interface Constants {
     static final String ECG_OPENING_TIME_KEY = "ecg.openingtime";
+    static final String ECG_QUEUE_READY_MAX_KEY = "ecg.queue.ready.max";
+
 }
diff --git a/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/listener/MySpringEventListener.java b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/listener/MySpringEventListener.java
index 0b1026a..8cc325f 100644
--- a/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/listener/MySpringEventListener.java
+++ b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/listener/MySpringEventListener.java
@@ -12,6 +12,7 @@
 import java.util.List;
 
 import static cn.lihu.jh.module.ecg.Constants.ECG_OPENING_TIME_KEY;
+import static cn.lihu.jh.module.ecg.Constants.ECG_QUEUE_READY_MAX_KEY;
 
 @Component
 public class MySpringEventListener {
@@ -26,8 +27,10 @@
     public void onApplicationEvent(ApplicationStartedEvent event) {
         System.out.println("搴旂敤鍚姩瀹屾垚锛岀郴缁熷垵濮嬨�傘�傘��");
 
+        Integer queueReadyMax = Integer.valueOf(configApi.getConfigValueByKey(ECG_QUEUE_READY_MAX_KEY));
+        queueService.setQueueReadyMax( queueReadyMax );
+
         String strOpenCloseTime = configApi.getConfigValueByKey(ECG_OPENING_TIME_KEY);
-        strOpenCloseTime = "0:00~23:59";
         List<LocalTime> list = Utils.parseOpeningTime(strOpenCloseTime);
         LocalTime openingTime = list.get(0);
         LocalTime closeTime = list.get(1);
diff --git a/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/queue/BedOpenCallable.java b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/queue/BedOpenCallable.java
index ce858c6..2039592 100644
--- a/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/queue/BedOpenCallable.java
+++ b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/queue/BedOpenCallable.java
@@ -1,20 +1,7 @@
 package cn.lihu.jh.module.ecg.service.queue;
 
 import cn.lihu.jh.framework.common.exception.ErrorCode;
-import cn.lihu.jh.module.ecg.dal.dataobject.queue.QueueDO;
-import cn.lihu.jh.module.ecg.dal.mysql.queue.queueMapper;
-import cn.lihu.jh.module.ecg.dal.mysql.room.RoomMapper;
-import cn.lihu.jh.module.ecg.enums.BedStatusEnum;
-import cn.lihu.jh.module.ecg.enums.QueueStatusEnum;
-
-import java.util.ArrayList;
-import java.util.List;
 import java.util.concurrent.Callable;
-import java.util.concurrent.ConcurrentHashMap;
-import java.util.concurrent.PriorityBlockingQueue;
-import java.util.concurrent.atomic.AtomicInteger;
-
-import static cn.lihu.jh.module.ecg.service.queue.QueueService.MAX_QUEUE_NUM;
 
 public class BedOpenCallable implements Callable<ErrorCode> {
 
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 1170cf1..d5fc61d 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
@@ -15,8 +15,7 @@
  */
 public interface QueueService {
 
-    final static Integer MAX_QUEUE_NUM = 3;
-
+    void setQueueReadyMax(Integer max);
     void startBiz();
     void closeBiz();
 
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 eb40058..b63807c 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
@@ -8,6 +8,7 @@
 import cn.lihu.jh.module.ecg.enums.BedStatusEnum;
 import cn.lihu.jh.module.ecg.enums.ErrorCodeConstants;
 import cn.lihu.jh.module.ecg.enums.QueueStatusEnum;
+import cn.lihu.jh.module.infra.api.config.ConfigApi;
 import org.springframework.stereotype.Service;
 import org.springframework.validation.annotation.Validated;
 
@@ -26,6 +27,8 @@
 
 import static cn.lihu.jh.framework.common.exception.enums.GlobalErrorCodeConstants.SUCCESS;
 import static cn.lihu.jh.framework.common.exception.util.ServiceExceptionUtil.exception;
+import static cn.lihu.jh.module.ecg.Constants.ECG_OPENING_TIME_KEY;
+import static cn.lihu.jh.module.ecg.Constants.ECG_QUEUE_READY_MAX_KEY;
 import static cn.lihu.jh.module.ecg.enums.ErrorCodeConstants.*;
 
 /**
@@ -38,13 +41,15 @@
 public class QueueServiceImpl implements QueueService {
 
     @Resource
+    private ConfigApi configApi;
+
+    @Resource
     private queueMapper queueMapper;
 
     @Resource
     private RoomMapper roomMapper;
 
     AtomicInteger openingFlag = new AtomicInteger(0);
-
     AtomicInteger curSeqNum = new AtomicInteger(0);
 
     PriorityBlockingQueue<BedQueueBO> priorityQueue = new PriorityBlockingQueue<>();
@@ -52,6 +57,7 @@
 
     ExecutorService singleThreadExecutor = Executors.newSingleThreadExecutor();
 
+    Integer queueReadyMax = 0;
 
     @Override
     public Integer createqueue(QueueSaveReqVO createReqVO) {
@@ -208,7 +214,7 @@
         BedQueueBO bedQueueBO = new BedQueueBO();
         bedQueueBO.setRoomId(roomId);
         bedQueueBO.setBedNo(bedNo);
-        bedQueueBO.setMaxQueueNum(MAX_QUEUE_NUM);
+        bedQueueBO.setMaxQueueNum(queueReadyMax);
         bedQueueBO.setQueueNum(new AtomicInteger(queueDOList.size()));
         bedQueueBO.setStatusEnum(BedStatusEnum.OPENING);
         priorityQueue.offer(bedQueueBO);
@@ -358,10 +364,10 @@
         List<QueueStatisticDO> queueStatisticDOList = queueMapper.queueStatistic(queueStatusList);
 
         bedQueueBOList.forEach(item -> {
-            item.maxQueueNum = MAX_QUEUE_NUM;
+            item.maxQueueNum = queueReadyMax;
             Optional<QueueStatisticDO> queueStatisticDOOptional = queueStatisticDOList.stream().filter(it->it.getRoomId()==item.roomId && it.getBedNo().equals(item.getBedNo())).findFirst();
             int queueNum = queueStatisticDOOptional.isPresent() ? queueStatisticDOOptional.get().getTotalInStatus() : 0;
-            if ( MAX_QUEUE_NUM < queueNum )
+            if ( queueReadyMax < queueNum )
                 throw new RuntimeException("init: exceed max queue number!");
 
             item.queueNum.set( queueNum );
@@ -521,6 +527,11 @@
         return patientStatisticVO;
     }
 
+    @Override
+    public void setQueueReadyMax(Integer max) {
+        queueReadyMax = max;
+    }
+
     public void startBiz() {
         if (1 == openingFlag.get())
             return;

--
Gitblit v1.9.3