From 22b0761897d0959d0a3dc34c68efc27705b17526 Mon Sep 17 00:00:00 2001
From: eight <641137800@qq.com>
Date: 星期三, 09 十月 2024 17:10:00 +0800
Subject: [PATCH] 1. 根据检查类型,配置 准备中 人数  2. 医生入座,才允许 患者 进入 准备中

---
 jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/config/MySpringEventListener.java |   32 +++++++++++++++++++++++++++++---
 1 files changed, 29 insertions(+), 3 deletions(-)

diff --git a/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/config/MySpringEventListener.java b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/config/MySpringEventListener.java
index fe02bbf..f9fab35 100644
--- a/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/config/MySpringEventListener.java
+++ b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/config/MySpringEventListener.java
@@ -1,26 +1,39 @@
 package cn.lihu.jh.module.ecg.config;
 
+import cn.lihu.jh.framework.common.exception.ServiceException;
+import cn.lihu.jh.framework.common.exception.enums.GlobalErrorCodeConstants;
 import cn.lihu.jh.module.ecg.Utils;
+import cn.lihu.jh.module.ecg.enums.ErrorCodeConstants;
 import cn.lihu.jh.module.ecg.service.callingscreen.BigScreenConfig;
 import cn.lihu.jh.module.ecg.service.callingscreen.CallingScreenService;
 import cn.lihu.jh.module.ecg.service.config.EcgConfigService;
 import cn.lihu.jh.module.ecg.service.queue.QueueService;
 import cn.lihu.jh.module.infra.api.config.ConfigApi;
+import cn.lihu.jh.module.system.api.dict.DictDataApi;
+import cn.lihu.jh.module.system.api.dict.dto.DictDataRespDTO;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.boot.context.event.ApplicationStartedEvent;
 import org.springframework.context.event.EventListener;
 import org.springframework.stereotype.Component;
 
 import javax.annotation.Resource;
 import java.time.LocalTime;
+import java.util.Arrays;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 import static cn.lihu.jh.module.ecg.Constants.*;
 
 @Component
+@Slf4j
 public class MySpringEventListener {
 
     @Resource
     private ConfigApi configApi;
+
+    @Resource
+    private DictDataApi dictDataApi;
 
     @Resource
     private EcgConfigService ecgConfigService;
@@ -33,10 +46,23 @@
 
     @EventListener
     public void onApplicationEvent(ApplicationStartedEvent event) {
-        System.out.println("搴旂敤鍚姩瀹屾垚锛岀郴缁熷垵濮嬨�傘�傘��");
+        log.info("搴旂敤鍚姩瀹屾垚锛岀郴缁熷垵濮嬨�傘�傘��");
 
-        Integer queueReadyMax = Integer.valueOf(configApi.getConfigValueByKey(ECG_QUEUE_READY_MAX_KEY));
-        queueService.setQueueReadyMax( queueReadyMax );
+        String strQueueReadyMax = configApi.getConfigValueByKey(ECG_QUEUE_READY_MAX_KEY);
+        int[] queueReadyMax = Arrays.stream(strQueueReadyMax.split(","))
+                .mapToInt(Integer::parseInt)
+                .toArray();
+        List<DictDataRespDTO> dictDataRespDTOList = dictDataApi.getDictDataList("ecg_check_type");
+        if ( dictDataRespDTOList.size() != queueReadyMax.length) {
+            log.error(ErrorCodeConstants.ECG_CONFIG_ERROR.getMsg());
+        }
+
+        Integer checkTypeNum = dictDataRespDTOList.size() < queueReadyMax.length ? dictDataRespDTOList.size() : queueReadyMax.length;
+        Map max = new HashMap<Integer, Integer>();
+        for (int i=0; i<checkTypeNum; i++) {
+            max.put( Integer.valueOf(dictDataRespDTOList.get(i).getValue()), queueReadyMax[i]);
+        }
+        queueService.setCheckTypeReadyMax( max );
 
         BigScreenConfig bigScreenConfig = new BigScreenConfig();
         Integer waitingSize = Integer.valueOf(configApi.getConfigValueByKey(ECG_SCREEN_PANE_WAITING_KEY));

--
Gitblit v1.9.3