1 package hu.user.mcvodsync.service.schedule;
3 import hu.user.mcvodsync.db.UploadFile;
4 import hu.user.mcvodsync.db.repository.UploadFileRepository;
5 import hu.user.mcvodsync.service.event.ImportCompletedEvent;
6 import hu.user.mcvodsync.service.event.ImportStartedEvent;
7 import hu.user.mcvodsync.service.in.ImportSummary;
8 import hu.user.mcvodsync.service.in.VodXlsProcessor;
9 import lombok.extern.log4j.Log4j2;
10 import org.springframework.beans.factory.annotation.Autowired;
11 import org.springframework.context.ApplicationEventPublisher;
12 import org.springframework.stereotype.Component;
14 import java.util.Optional;
18 public class ScheduledImport implements Runnable {
20 private ApplicationEventPublisher applicationEventPublisher;
23 private UploadFileRepository uploadFileRepository;
26 private VodXlsProcessor vodXlsProcessor;
30 applicationEventPublisher.publishEvent(new ImportStartedEvent(this));
31 ImportSummary summary = null;
33 log.info("ScheduledImport started");
34 Optional<UploadFile> opUploadFile = uploadFileRepository.findFirstByOrderByCreatedDesc();
35 if (opUploadFile.isPresent()) {
36 summary = vodXlsProcessor.process(opUploadFile.get().getName(), opUploadFile.get().getFile());
38 } catch (Exception e) {
39 log.error("ScheduledImport error!", e);
41 applicationEventPublisher.publishEvent(new ImportCompletedEvent(summary, this));
42 log.info("ScheduledImport finished");