package com.xiang; import com.google.common.collect.Lists; import com.google.common.collect.Maps; import com.xiang.common.enums.ScheduleEnums; import com.xiang.common.pojo.schedule.ScheduleOpeningConfigDO; import com.xiang.common.service.IScheduleOpeningConfigService; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.ArrayUtils; import org.springframework.boot.ApplicationArguments; import org.springframework.boot.ApplicationRunner; import org.springframework.stereotype.Component; import java.util.List; import java.util.Map; import java.util.function.Function; import java.util.stream.Collectors; /** * @Author: xiang * @Date: 2026-05-08 14:32 */ @Slf4j @Component @RequiredArgsConstructor public class ApplicationInit implements ApplicationRunner { private final IScheduleOpeningConfigService scheduleOpeningConfigService; @Override public void run(ApplicationArguments args) throws Exception { log.info("开始加载任务配置!"); loadScheduleTask(); log.info("任务配置加载完成!"); } private void loadScheduleTask() { List allSchedules = scheduleOpeningConfigService.getAll(); Map map = Maps.newHashMap(); if (CollectionUtils.isNotEmpty(allSchedules)) { map.putAll(allSchedules.stream().collect(Collectors.toMap(ScheduleOpeningConfigDO::getBeanName, Function.identity(), (a, b) -> a))); } ScheduleEnums[] enums = ScheduleEnums.values(); if (ArrayUtils.isEmpty(enums)) { log.info("暂无需要配置的"); return; } List list = Lists.newArrayList(); for (ScheduleEnums scheduleEnum : enums) { if (map.containsKey(scheduleEnum.getTaskName())) { continue; } ScheduleOpeningConfigDO scheduleOpeningConfigDO = new ScheduleOpeningConfigDO(); scheduleOpeningConfigDO.setModule(scheduleEnum.getModeleCode()); scheduleOpeningConfigDO.setBeanName(scheduleEnum.getTaskName()); scheduleOpeningConfigDO.setStatus(1); list.add(scheduleOpeningConfigDO); } if (CollectionUtils.isNotEmpty(list)) { scheduleOpeningConfigService.saveBatch(list); } } }