Clean all scheduler server testing

This commit is contained in:
Salman Manoe 2023-11-08 13:09:11 +07:00
parent 2c5548a21e
commit bd4aad38d7
4 changed files with 0 additions and 285 deletions

View File

@ -1,164 +0,0 @@
package com.jasamedika.medifirst2000.task.schedule;
import com.jasamedika.medifirst2000.dao.PelayananPasienPetugasDao;
import com.jasamedika.medifirst2000.dao.RekapLogbookDokterDao;
import com.jasamedika.medifirst2000.entities.KelompokPasien;
import com.jasamedika.medifirst2000.entities.Pegawai;
import com.jasamedika.medifirst2000.entities.RekapLogbookDokter;
import com.jasamedika.medifirst2000.service.PelayananPasienService;
import com.jasamedika.medifirst2000.util.DateUtil;
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 java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.time.ZoneId;
import java.util.*;
/**
* @author salmanoe
* @version 1.0.0
* @since 07/11/2023
*/
@Component
public class LogbookTask {
private static final Logger LOGGER = LoggerFactory.getLogger(PasienTask.class);
@Autowired
private PelayananPasienPetugasDao pelayananPasienPetugasDao;
@Autowired
private RekapLogbookDokterDao rekapLogbookDokterDao;
@Autowired
private PelayananPasienService pelayananPasienService;
@Scheduled(cron = "0 0 0 6 * ?")
public void saveRekapLogbookDokter() {
LOGGER.info("Simpan rekapitulasi logbook dokter");
LocalDate localDate = LocalDate.now().minusMonths(1);
Date date = Date.from(localDate.atStartOfDay(ZoneId.systemDefault()).toInstant());
Date tglAwal = DateUtil.startMonth(date);
Date tglAkhir = DateUtil.endMonth(date);
Set<Integer> idPegawaiByTglPelayanan = pelayananPasienPetugasDao.findPegawaiByTglPelayanan(tglAwal, tglAkhir);
DateFormat df = new SimpleDateFormat("yyyy-MM");
String bulan = df.format(date);
List<RekapLogbookDokter> models = new ArrayList<>();
idPegawaiByTglPelayanan.forEach(idPegawai -> {
{
Map<String, Object> kinerjaDokter = pelayananPasienService.logbookRemunTarifDokter(idPegawai, bulan);
List<Map<String, Object>> remun = (List<Map<String, Object>>) kinerjaDokter.get("data");
List<Integer> listIdKelompokPasien = new ArrayList<>();
remun.forEach(r -> {
if (!listIdKelompokPasien.contains(Integer.parseInt(r.get("idKelompokPasien").toString())))
listIdKelompokPasien.add(Integer.parseInt(r.get("idKelompokPasien").toString()));
});
listIdKelompokPasien.forEach(idKelompokPasien -> {
double jumlah = remun.stream().filter(r -> idKelompokPasien.equals(r.get("idKelompokPasien")))
.mapToDouble(r -> Double.parseDouble(r.get("jumlah").toString())).sum();
double hargaJasa = remun.stream().filter(r -> idKelompokPasien.equals(r.get("idKelompokPasien")))
.mapToDouble(r -> Double.parseDouble(r.get("jumlahHargaJasa").toString())).sum();
RekapLogbookDokter rekapLogbookDokter = new RekapLogbookDokter();
rekapLogbookDokter.setKdProfile((short) 0);
rekapLogbookDokter.setStatusEnabled(true);
Pegawai pegawai = new Pegawai();
pegawai.setId(idPegawai);
rekapLogbookDokter.setPegawai(pegawai);
rekapLogbookDokter.setJenisLogbook("JKN");
KelompokPasien kelompokPasien = new KelompokPasien();
kelompokPasien.setId(idKelompokPasien);
rekapLogbookDokter.setKelompokPasien(kelompokPasien);
rekapLogbookDokter.setBulan(date);
rekapLogbookDokter.setJumlah(jumlah);
rekapLogbookDokter.setCapaian(hargaJasa);
models.add(rekapLogbookDokter);
});
}
{
List<Map<String, Object>> ffs = pelayananPasienService.logbookFfsTarifDokter(idPegawai, bulan);
List<String> listJenisRuangan = new ArrayList<>();
List<Integer> listIdKelompokPasien = new ArrayList<>();
ffs.forEach(r -> {
if (!listJenisRuangan.contains(r.get("jenisRuangan").toString()))
listJenisRuangan.add(r.get("jenisRuangan").toString());
if (!listIdKelompokPasien.contains(Integer.parseInt(r.get("idKelompokPasien").toString())))
listIdKelompokPasien.add(Integer.parseInt(r.get("idKelompokPasien").toString()));
});
listJenisRuangan.forEach(jenisRuangan -> listIdKelompokPasien.forEach(idKelompokPasien -> {
double jumlah = ffs.stream()
.filter(r -> jenisRuangan.equals(r.get("jenisRuangan"))
&& idKelompokPasien.equals(r.get("idKelompokPasien")))
.mapToDouble(r -> Double.parseDouble(r.get("jumlah").toString())).sum();
double hargaJasa = ffs.stream()
.filter(r -> jenisRuangan.equals(r.get("jenisRuangan"))
&& idKelompokPasien.equals(r.get("idKelompokPasien")))
.mapToDouble(r -> Double.parseDouble(r.get("jumlahHargaJasa").toString())).sum();
RekapLogbookDokter rekapLogbookDokter = new RekapLogbookDokter();
rekapLogbookDokter.setKdProfile((short) 0);
rekapLogbookDokter.setStatusEnabled(true);
Pegawai pegawai = new Pegawai();
pegawai.setId(idPegawai);
rekapLogbookDokter.setPegawai(pegawai);
rekapLogbookDokter.setJenisLogbook("NON_JKN");
rekapLogbookDokter.setJenisRuangan(jenisRuangan);
KelompokPasien kelompokPasien = new KelompokPasien();
kelompokPasien.setId(idKelompokPasien);
rekapLogbookDokter.setKelompokPasien(kelompokPasien);
rekapLogbookDokter.setBulan(date);
rekapLogbookDokter.setJumlah(jumlah);
rekapLogbookDokter.setCapaian(hargaJasa);
models.add(rekapLogbookDokter);
}));
}
{
List<Map<String, Object>> fixedPay = pelayananPasienService.logbookFixedPayDokter(idPegawai, bulan);
List<String> listJenisRuangan = new ArrayList<>();
List<Integer> listIdKelompokPasien = new ArrayList<>();
List<String> listBulanIbuPulangRanap = new ArrayList<>();
fixedPay.forEach(r -> {
if (!listJenisRuangan.contains(r.get("jenisRuangan").toString()))
listJenisRuangan.add(r.get("jenisRuangan").toString());
if (!listIdKelompokPasien.contains(Integer.parseInt(r.get("idKelompokPasien").toString())))
listIdKelompokPasien.add(Integer.parseInt(r.get("idKelompokPasien").toString()));
if (!listBulanIbuPulangRanap.contains(r.get("bulanPulangIbu").toString()))
listBulanIbuPulangRanap.add(r.get("bulanPulangIbu").toString());
});
listJenisRuangan.forEach(jenisRuangan -> listIdKelompokPasien
.forEach(idKelompokPasien -> listBulanIbuPulangRanap.forEach(bulanIbuPulangRanap -> {
double jumlah = fixedPay.stream()
.filter(r -> jenisRuangan.equals(r.get("jenisRuangan"))
&& idKelompokPasien.equals(r.get("idKelompokPasien"))
&& bulanIbuPulangRanap.equals(r.get("bulanIbuPulang")))
.mapToDouble(r -> Double.parseDouble(r.get("jumlah").toString())).sum();
double hargaJasa = fixedPay.stream()
.filter(r -> jenisRuangan.equals(r.get("jenisRuangan"))
&& idKelompokPasien.equals(r.get("idKelompokPasien"))
&& bulanIbuPulangRanap.equals(r.get("bulanIbuPulang")))
.mapToDouble(r -> Double.parseDouble(r.get("jumlahHargaJasa").toString())).sum();
RekapLogbookDokter rekapLogbookDokter = new RekapLogbookDokter();
rekapLogbookDokter.setKdProfile((short) 0);
rekapLogbookDokter.setStatusEnabled(true);
Pegawai pegawai = new Pegawai();
pegawai.setId(idPegawai);
rekapLogbookDokter.setPegawai(pegawai);
rekapLogbookDokter.setJenisLogbook("FIXED_PAY");
rekapLogbookDokter.setJenisRuangan(jenisRuangan);
KelompokPasien kelompokPasien = new KelompokPasien();
kelompokPasien.setId(idKelompokPasien);
rekapLogbookDokter.setKelompokPasien(kelompokPasien);
rekapLogbookDokter.setBulanPulangIbu(bulanIbuPulangRanap);
rekapLogbookDokter.setBulan(date);
rekapLogbookDokter.setJumlah(jumlah);
rekapLogbookDokter.setCapaian(hargaJasa);
models.add(rekapLogbookDokter);
})));
}
});
rekapLogbookDokterDao.save(models);
}
}

View File

@ -1,39 +0,0 @@
package com.jasamedika.medifirst2000.task.schedule.config;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.TaskScheduler;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler;
import org.springframework.web.client.RestTemplate;
/**
* @author Salman
* @since 12 Jul 2023
*/
@Configuration
@EnableScheduling
@ComponentScan("com.jasamedika.medifirst2000.task")
public class ScheduleTaskConfig {
@Bean
public TaskScheduler taskScheduler() {
ThreadPoolTaskScheduler threadPoolTaskScheduler = new ThreadPoolTaskScheduler();
threadPoolTaskScheduler.setPoolSize(5);
threadPoolTaskScheduler.setThreadNamePrefix("ThreadPoolTaskScheduler");
return threadPoolTaskScheduler;
}
@Bean
public ObjectMapper objectMapper() {
return new ObjectMapper();
}
@Bean
public RestTemplate restTemplate() {
return new RestTemplate();
}
}

View File

@ -1,55 +0,0 @@
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();
}
}

View File

@ -1,27 +0,0 @@
package com.jasamedika.medifirst2000.task.schedule.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.TaskScheduler;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler;
/**
* @author Salman
* @since 12 Jul 2023
*/
@Configuration
@EnableScheduling
@ComponentScan("com.jasamedika.medifirst2000.task")
public class ScheduleTaskConfig {
@Bean
public TaskScheduler taskScheduler() {
ThreadPoolTaskScheduler threadPoolTaskScheduler = new ThreadPoolTaskScheduler();
threadPoolTaskScheduler.setPoolSize(5);
threadPoolTaskScheduler.setThreadNamePrefix("ThreadPoolTaskScheduler");
return threadPoolTaskScheduler;
}
}