Create task controller

Pembuatan api untuk cron job
This commit is contained in:
Salman Manoe 2023-07-08 21:56:28 +07:00
parent a0009a803c
commit 1c277111a9
4 changed files with 98 additions and 67 deletions

View File

@ -1,16 +1,13 @@
package com.jasamedika.medifirst2000.asynctask; 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.controller.base.LocaleController;
import com.jasamedika.medifirst2000.service.KalenderService; import com.jasamedika.medifirst2000.service.KalenderService;
import com.jasamedika.medifirst2000.util.CommonUtil; import com.jasamedika.medifirst2000.util.CommonUtil;
import com.jasamedika.medifirst2000.vo.KalenderVO; 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 @Component
public class CalendarSystemGenerating extends LocaleController<KalenderVO> { public class CalendarSystemGenerating extends LocaleController<KalenderVO> {
@ -20,24 +17,21 @@ public class CalendarSystemGenerating extends LocaleController<KalenderVO> {
private KalenderService kalenderService; private KalenderService kalenderService;
public CalendarSystemGenerating() { public CalendarSystemGenerating() {
int the1st = 1; // int the1st = 1;
int at0hrs = 0; // int at0hrs = 0;
KalenderTimer.schedule(new Runnable() { // KalenderTimer.schedule(() -> {
@Override // try {
public void run() { // LOGGER.info("Task Sistem Kalender : Running Task Sistem Kalender");
try { // genSistemKalender();
LOGGER.info("Task Sistem Kalender : Running Task Sistem Kalender"); // } catch (Exception ex) {
genSistemKalender(); // LOGGER.error("Task Sistem Kalender : Task Sistem Kalender " + ex.getMessage());
} catch (Exception ex) { // } finally {
LOGGER.error("Task Sistem Kalender : Task Sistem Kalender " + ex.getMessage()); // LOGGER.info("Task Sistem Kalender : Finishing Task Sistem Kalender");
} finally { // }
LOGGER.info("Task Sistem Kalender : Finishing Task Sistem Kalender"); // }, the1st, at0hrs);
}
}
}, the1st, at0hrs);
} }
@Async // @Async
public void genSistemKalender() { public void genSistemKalender() {
try { try {
if (CommonUtil.isNotNullOrEmpty(kalenderService)) { if (CommonUtil.isNotNullOrEmpty(kalenderService)) {

View File

@ -1,15 +1,12 @@
package com.jasamedika.medifirst2000.asynctask; package com.jasamedika.medifirst2000.asynctask;
import com.jasamedika.medifirst2000.service.SlipGajiService;
import com.jasamedika.medifirst2000.util.CommonUtil;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Component; 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 * @author Salman
* *
@ -22,24 +19,21 @@ public class InitiateSlipGaji {
private SlipGajiService slipGajiService; private SlipGajiService slipGajiService;
public InitiateSlipGaji() { public InitiateSlipGaji() {
int the1st = 1; // int the1st = 1;
int at0hrs = 0; // int at0hrs = 0;
InitiateSlipGajiTimer.schedule(new Runnable() { // InitiateSlipGajiTimer.schedule(() -> {
@Override // try {
public void run() { // LOGGER.info("Slip Gaji : Call initiate data");
try { // initiateData();
LOGGER.info("Slip Gaji : Call initiate data"); // } catch (Exception ex) {
initiateData(); // LOGGER.error("Slip Gaji : Error when initiate data " + ex.getMessage());
} catch (Exception ex) { // } finally {
LOGGER.error("Slip Gaji : Error when initiate data " + ex.getMessage()); // LOGGER.info("Slip Gaji : Finishing call initiate data");
} finally { // }
LOGGER.info("Slip Gaji : Finishing call initiate data"); // }, the1st, at0hrs);
}
}
}, the1st, at0hrs);
} }
@Async // @Async
public void initiateData() { public void initiateData() {
try { try {
if (CommonUtil.isNotNullOrEmpty(slipGajiService)) { if (CommonUtil.isNotNullOrEmpty(slipGajiService)) {

View File

@ -1,16 +1,13 @@
package com.jasamedika.medifirst2000.asynctask; 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.controller.base.LocaleController;
import com.jasamedika.medifirst2000.service.PegawaiJadwalKerjaService; import com.jasamedika.medifirst2000.service.PegawaiJadwalKerjaService;
import com.jasamedika.medifirst2000.util.CommonUtil; import com.jasamedika.medifirst2000.util.CommonUtil;
import com.jasamedika.medifirst2000.vo.PegawaiJadwalKerjaVO; 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 @Component
public class PegawaiJadwalKerjaGenerating extends LocaleController<PegawaiJadwalKerjaVO> { public class PegawaiJadwalKerjaGenerating extends LocaleController<PegawaiJadwalKerjaVO> {
@ -20,24 +17,21 @@ public class PegawaiJadwalKerjaGenerating extends LocaleController<PegawaiJadwal
private PegawaiJadwalKerjaService pegawaiJadwalKerjaService; private PegawaiJadwalKerjaService pegawaiJadwalKerjaService;
public PegawaiJadwalKerjaGenerating() { public PegawaiJadwalKerjaGenerating() {
int the1st = 1; // int the1st = 1;
int at0hrs = 0; // int at0hrs = 0;
JadwalKerjaTimer.schedule(new Runnable() { // JadwalKerjaTimer.schedule(() -> {
@Override // try {
public void run() { // LOGGER.info("Task Jadwal Kerja : Running Task Jadwal Kerja");
try { // genJadwalKerja();
LOGGER.info("Task Jadwal Kerja : Running Task Jadwal Kerja"); // } catch (Exception ex) {
genJadwalKerja(); // LOGGER.error("Task Jadwal Kerja : Task Jadwal Kerja " + ex.getMessage());
} catch (Exception ex) { // } finally {
LOGGER.error("Task Jadwal Kerja : Task Jadwal Kerja " + ex.getMessage()); // LOGGER.info("Task Jadwal Kerja : Finishing Task Jadwal Kerja");
} finally { // }
LOGGER.info("Task Jadwal Kerja : Finishing Task Jadwal Kerja"); // }, the1st, at0hrs);
}
}
}, the1st, at0hrs);
} }
@Async // @Async
public void genJadwalKerja() { public void genJadwalKerja() {
try { try {
if (CommonUtil.isNotNullOrEmpty(pegawaiJadwalKerjaService)) { if (CommonUtil.isNotNullOrEmpty(pegawaiJadwalKerjaService)) {

View File

@ -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<String> generateKalender() {
kalenderService.generateAndSaveKalender();
return new ResponseEntity<>(HttpStatus.OK);
}
@RequestMapping(value = "/generate/pegawai/jadwal", method = RequestMethod.GET)
public ResponseEntity<String> generateJadwalPegawai() {
pegawaiJadwalKerjaService.scheduledSaveJadwalKerjaNonShift();
return new ResponseEntity<>(HttpStatus.OK);
}
@RequestMapping(value = "/initiate/pegawai/slip", method = RequestMethod.GET)
public ResponseEntity<String> initiateSlipGajiPegawai() {
slipGajiService.init();
return new ResponseEntity<>(HttpStatus.OK);
}
}