diff --git a/jasamedika-sdm/src/main/java/com/jasamedika/medifirst2000/task/schedule/ScheduleTask.java b/jasamedika-sdm/src/main/java/com/jasamedika/medifirst2000/task/schedule/ScheduleTask.java new file mode 100644 index 00000000..3d778ab9 --- /dev/null +++ b/jasamedika-sdm/src/main/java/com/jasamedika/medifirst2000/task/schedule/ScheduleTask.java @@ -0,0 +1,55 @@ +package com.jasamedika.medifirst2000.task.schedule; + +import java.time.LocalDate; +import java.time.format.DateTimeFormatter; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.scheduling.annotation.Scheduled; +import org.springframework.stereotype.Component; + +import com.jasamedika.medifirst2000.service.KalenderService; +import com.jasamedika.medifirst2000.service.PegawaiJadwalKerjaService; +import com.jasamedika.medifirst2000.service.SlipGajiService; + +/** + * @author Salman + * @since 12 Jul 2023 + */ +@Component +public class ScheduleTask { + private static final Logger LOGGER = LoggerFactory.getLogger(ScheduleTask.class); + + @Autowired + private KalenderService kalenderService; + + @Autowired + private PegawaiJadwalKerjaService pegawaiJadwalKerjaService; + + @Autowired + private SlipGajiService slipGajiService; + + @Scheduled(cron = "0 0 23 30 6 ?") + public void generateKalender() { + LOGGER.info("Generate kalender tahun {}", + LocalDate.now().plusYears(1).format(DateTimeFormatter.ofPattern("yyyy"))); + + kalenderService.generateAndSaveKalender(); + } + + @Scheduled(cron = "0 0 0 1 * ?") + public void genarateJadwalPegawaiNonShift() { + LOGGER.info("Generate jadwal pegawai bulan {}", LocalDate.now().format(DateTimeFormatter.ofPattern("MM-yyyy"))); + + pegawaiJadwalKerjaService.autoSaveJadwalKerjaNonShift(); + } + + @Scheduled(cron = "0 0 0 1 * ?") + public void templateSlipGajiTask() { + LOGGER.info("Initiate template slip gaji bulan {}", + LocalDate.now().format(DateTimeFormatter.ofPattern("MM-yyyy"))); + + slipGajiService.init(); + } +}