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 | 55 +++++++++++++++++++++++++++++++++++++++++++++++++------ 1 files changed, 49 insertions(+), 6 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 a97f08e..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,34 +1,75 @@ 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.ECG_OPENING_TIME_KEY; -import static cn.lihu.jh.module.ecg.Constants.ECG_QUEUE_READY_MAX_KEY; +import static cn.lihu.jh.module.ecg.Constants.*; @Component +@Slf4j public class MySpringEventListener { @Resource private ConfigApi configApi; @Resource - private QueueService queueService; + private DictDataApi dictDataApi; + + @Resource + private EcgConfigService ecgConfigService; + + @Resource + QueueService queueService; + + @Resource + CallingScreenService callingScreenService; @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)); + Integer passedSize = Integer.valueOf(configApi.getConfigValueByKey(ECG_SCREEN_PANE_PASSED_KEY)); + bigScreenConfig.setWaitingSize( waitingSize); + bigScreenConfig.setPassedSize( passedSize); + callingScreenService.setBigScreenConfig(bigScreenConfig); String strOpenCloseTime = configApi.getConfigValueByKey(ECG_OPENING_TIME_KEY); List<LocalTime> list = Utils.parseOpeningTime(strOpenCloseTime); @@ -44,5 +85,7 @@ } else { queueService.startBiz(); } + + ecgConfigService.resetScheduler(); } } -- Gitblit v1.9.3