From 1c277111a9cb61bdbbadd204fb84c7265e09d5c2 Mon Sep 17 00:00:00 2001 From: Salman Manoe Date: Sat, 8 Jul 2023 21:56:28 +0700 Subject: [PATCH] Create task controller Pembuatan api untuk cron job --- .../asynctask/CalendarSystemGenerating.java | 40 +++++++-------- .../asynctask/InitiateSlipGaji.java | 36 ++++++-------- .../PegawaiJadwalKerjaGenerating.java | 40 +++++++-------- .../controller/TaskController.java | 49 +++++++++++++++++++ 4 files changed, 98 insertions(+), 67 deletions(-) create mode 100644 jasamedika-sdm/src/main/java/com/jasamedika/medifirst2000/controller/TaskController.java diff --git a/jasamedika-sdm/src/main/java/com/jasamedika/medifirst2000/asynctask/CalendarSystemGenerating.java b/jasamedika-sdm/src/main/java/com/jasamedika/medifirst2000/asynctask/CalendarSystemGenerating.java index 87ad24da..937b2910 100644 --- a/jasamedika-sdm/src/main/java/com/jasamedika/medifirst2000/asynctask/CalendarSystemGenerating.java +++ b/jasamedika-sdm/src/main/java/com/jasamedika/medifirst2000/asynctask/CalendarSystemGenerating.java @@ -1,16 +1,13 @@ package com.jasamedika.medifirst2000.asynctask; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.scheduling.annotation.Async; -import org.springframework.stereotype.Component; - -import com.jasamedika.medifirst2000.asynctask.timer.KalenderTimer; import com.jasamedika.medifirst2000.controller.base.LocaleController; import com.jasamedika.medifirst2000.service.KalenderService; import com.jasamedika.medifirst2000.util.CommonUtil; import com.jasamedika.medifirst2000.vo.KalenderVO; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; @Component public class CalendarSystemGenerating extends LocaleController { @@ -20,24 +17,21 @@ public class CalendarSystemGenerating extends LocaleController { private KalenderService kalenderService; public CalendarSystemGenerating() { - int the1st = 1; - int at0hrs = 0; - KalenderTimer.schedule(new Runnable() { - @Override - public void run() { - try { - LOGGER.info("Task Sistem Kalender : Running Task Sistem Kalender"); - genSistemKalender(); - } catch (Exception ex) { - LOGGER.error("Task Sistem Kalender : Task Sistem Kalender " + ex.getMessage()); - } finally { - LOGGER.info("Task Sistem Kalender : Finishing Task Sistem Kalender"); - } - } - }, the1st, at0hrs); +// int the1st = 1; +// int at0hrs = 0; +// KalenderTimer.schedule(() -> { +// try { +// LOGGER.info("Task Sistem Kalender : Running Task Sistem Kalender"); +// genSistemKalender(); +// } catch (Exception ex) { +// LOGGER.error("Task Sistem Kalender : Task Sistem Kalender " + ex.getMessage()); +// } finally { +// LOGGER.info("Task Sistem Kalender : Finishing Task Sistem Kalender"); +// } +// }, the1st, at0hrs); } - @Async +// @Async public void genSistemKalender() { try { if (CommonUtil.isNotNullOrEmpty(kalenderService)) { diff --git a/jasamedika-sdm/src/main/java/com/jasamedika/medifirst2000/asynctask/InitiateSlipGaji.java b/jasamedika-sdm/src/main/java/com/jasamedika/medifirst2000/asynctask/InitiateSlipGaji.java index 4e3e64de..69cfbb99 100644 --- a/jasamedika-sdm/src/main/java/com/jasamedika/medifirst2000/asynctask/InitiateSlipGaji.java +++ b/jasamedika-sdm/src/main/java/com/jasamedika/medifirst2000/asynctask/InitiateSlipGaji.java @@ -1,15 +1,12 @@ package com.jasamedika.medifirst2000.asynctask; +import com.jasamedika.medifirst2000.service.SlipGajiService; +import com.jasamedika.medifirst2000.util.CommonUtil; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Component; -import com.jasamedika.medifirst2000.asynctask.timer.InitiateSlipGajiTimer; -import com.jasamedika.medifirst2000.service.SlipGajiService; -import com.jasamedika.medifirst2000.util.CommonUtil; - /** * @author Salman * @@ -22,24 +19,21 @@ public class InitiateSlipGaji { private SlipGajiService slipGajiService; public InitiateSlipGaji() { - int the1st = 1; - int at0hrs = 0; - InitiateSlipGajiTimer.schedule(new Runnable() { - @Override - public void run() { - try { - LOGGER.info("Slip Gaji : Call initiate data"); - initiateData(); - } catch (Exception ex) { - LOGGER.error("Slip Gaji : Error when initiate data " + ex.getMessage()); - } finally { - LOGGER.info("Slip Gaji : Finishing call initiate data"); - } - } - }, the1st, at0hrs); +// int the1st = 1; +// int at0hrs = 0; +// InitiateSlipGajiTimer.schedule(() -> { +// try { +// LOGGER.info("Slip Gaji : Call initiate data"); +// initiateData(); +// } catch (Exception ex) { +// LOGGER.error("Slip Gaji : Error when initiate data " + ex.getMessage()); +// } finally { +// LOGGER.info("Slip Gaji : Finishing call initiate data"); +// } +// }, the1st, at0hrs); } - @Async +// @Async public void initiateData() { try { if (CommonUtil.isNotNullOrEmpty(slipGajiService)) { diff --git a/jasamedika-sdm/src/main/java/com/jasamedika/medifirst2000/asynctask/PegawaiJadwalKerjaGenerating.java b/jasamedika-sdm/src/main/java/com/jasamedika/medifirst2000/asynctask/PegawaiJadwalKerjaGenerating.java index 76021436..c51f28ae 100644 --- a/jasamedika-sdm/src/main/java/com/jasamedika/medifirst2000/asynctask/PegawaiJadwalKerjaGenerating.java +++ b/jasamedika-sdm/src/main/java/com/jasamedika/medifirst2000/asynctask/PegawaiJadwalKerjaGenerating.java @@ -1,16 +1,13 @@ package com.jasamedika.medifirst2000.asynctask; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.scheduling.annotation.Async; -import org.springframework.stereotype.Component; - -import com.jasamedika.medifirst2000.asynctask.timer.JadwalKerjaTimer; import com.jasamedika.medifirst2000.controller.base.LocaleController; import com.jasamedika.medifirst2000.service.PegawaiJadwalKerjaService; import com.jasamedika.medifirst2000.util.CommonUtil; import com.jasamedika.medifirst2000.vo.PegawaiJadwalKerjaVO; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; @Component public class PegawaiJadwalKerjaGenerating extends LocaleController { @@ -20,24 +17,21 @@ public class PegawaiJadwalKerjaGenerating extends LocaleController { +// try { +// LOGGER.info("Task Jadwal Kerja : Running Task Jadwal Kerja"); +// genJadwalKerja(); +// } catch (Exception ex) { +// LOGGER.error("Task Jadwal Kerja : Task Jadwal Kerja " + ex.getMessage()); +// } finally { +// LOGGER.info("Task Jadwal Kerja : Finishing Task Jadwal Kerja"); +// } +// }, the1st, at0hrs); } - @Async +// @Async public void genJadwalKerja() { try { if (CommonUtil.isNotNullOrEmpty(pegawaiJadwalKerjaService)) { diff --git a/jasamedika-sdm/src/main/java/com/jasamedika/medifirst2000/controller/TaskController.java b/jasamedika-sdm/src/main/java/com/jasamedika/medifirst2000/controller/TaskController.java new file mode 100644 index 00000000..1f1f776f --- /dev/null +++ b/jasamedika-sdm/src/main/java/com/jasamedika/medifirst2000/controller/TaskController.java @@ -0,0 +1,49 @@ +package com.jasamedika.medifirst2000.controller; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RestController; + +import com.jasamedika.medifirst2000.service.KalenderService; +import com.jasamedika.medifirst2000.service.PegawaiJadwalKerjaService; +import com.jasamedika.medifirst2000.service.SlipGajiService; + +/** + * @author Salman + * @since 08/07/2023 + */ +@RestController +@RequestMapping("/task") +public class TaskController { + + @Autowired + private KalenderService kalenderService; + + @Autowired + private PegawaiJadwalKerjaService pegawaiJadwalKerjaService; + + @Autowired + private SlipGajiService slipGajiService; + + @RequestMapping(value = "/generate/kalender", method = RequestMethod.GET) + public ResponseEntity generateKalender() { + kalenderService.generateAndSaveKalender(); + return new ResponseEntity<>(HttpStatus.OK); + } + + @RequestMapping(value = "/generate/pegawai/jadwal", method = RequestMethod.GET) + public ResponseEntity generateJadwalPegawai() { + pegawaiJadwalKerjaService.scheduledSaveJadwalKerjaNonShift(); + return new ResponseEntity<>(HttpStatus.OK); + } + + @RequestMapping(value = "/initiate/pegawai/slip", method = RequestMethod.GET) + public ResponseEntity initiateSlipGajiPegawai() { + slipGajiService.init(); + return new ResponseEntity<>(HttpStatus.OK); + } + +}