| | |
| | | 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); |
| | |
| | | queueService.startBiz(); |
| | | } |
| | | |
| | | queueService.resetScheduler(); |
| | | ecgConfigService.resetScheduler(); |
| | | } |
| | | } |