|  |  | 
 |  |  | 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.ecg.service.queuesequence.QueueSequenceService; | 
 |  |  | 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 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.*; | 
 |  |  |  | 
 |  |  | 
 |  |  |     QueueService queueService; | 
 |  |  |  | 
 |  |  |     @Resource | 
 |  |  |     QueueSequenceService queueSequenceService; | 
 |  |  |  | 
 |  |  |     @Resource | 
 |  |  |     CallingScreenService callingScreenService; | 
 |  |  |  | 
 |  |  |     @EventListener | 
 |  |  |     public void onApplicationEvent(ApplicationStartedEvent event) { | 
 |  |  |         log.info("应用启动完成,系统初始。。。"); | 
 |  |  |  | 
 |  |  |         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()); | 
 |  |  |         } | 
 |  |  |         queueService.initCheckType(); | 
 |  |  |  | 
 |  |  |         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 ); | 
 |  |  |         ecgConfigService.readTimeSlotConfig(); | 
 |  |  |  | 
 |  |  |         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); | 
 |  |  | //        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); | 
 |  |  |         callingScreenService.getDisplayColInfo(); | 
 |  |  |  | 
 |  |  |         // 预约序号表 处理逻辑 | 
 |  |  |         queueSequenceService.initQueueSequenceTable(); | 
 |  |  |  | 
 |  |  |         String strOpenCloseTime = configApi.getConfigValueByKey(ECG_OPENING_TIME_KEY); | 
 |  |  |         List<LocalTime> list = Utils.parseOpeningTime(strOpenCloseTime); |