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; @Resource QueueService queueService; @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 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(); for (int i=0; i list = Utils.parseOpeningTime(strOpenCloseTime); LocalTime openingTime = list.get(0); LocalTime closeTime = list.get(1); // 获取当前时间 LocalTime currentTime = LocalTime.now(); // 比较时间 if (currentTime.isBefore(openingTime) || currentTime.isAfter(closeTime)) { queueService.closeBiz(); } else { queueService.startBiz(); } ecgConfigService.resetScheduler(); } }