diff --git a/jasamedika-pelayanan/src/main/java/com/jasamedika/medifirst2000/task/schedule/LogbookTask.java b/jasamedika-pelayanan/src/main/java/com/jasamedika/medifirst2000/task/schedule/LogbookTask.java deleted file mode 100644 index e4383a88..00000000 --- a/jasamedika-pelayanan/src/main/java/com/jasamedika/medifirst2000/task/schedule/LogbookTask.java +++ /dev/null @@ -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 idPegawaiByTglPelayanan = pelayananPasienPetugasDao.findPegawaiByTglPelayanan(tglAwal, tglAkhir); - DateFormat df = new SimpleDateFormat("yyyy-MM"); - String bulan = df.format(date); - List models = new ArrayList<>(); - idPegawaiByTglPelayanan.forEach(idPegawai -> { - { - Map kinerjaDokter = pelayananPasienService.logbookRemunTarifDokter(idPegawai, bulan); - List> remun = (List>) kinerjaDokter.get("data"); - List 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> ffs = pelayananPasienService.logbookFfsTarifDokter(idPegawai, bulan); - List listJenisRuangan = new ArrayList<>(); - List 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> fixedPay = pelayananPasienService.logbookFixedPayDokter(idPegawai, bulan); - List listJenisRuangan = new ArrayList<>(); - List listIdKelompokPasien = new ArrayList<>(); - List 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); - } -} diff --git a/jasamedika-pelayanan/src/main/java/com/jasamedika/medifirst2000/task/schedule/config/ScheduleTaskConfig.java b/jasamedika-pelayanan/src/main/java/com/jasamedika/medifirst2000/task/schedule/config/ScheduleTaskConfig.java deleted file mode 100644 index 6b593109..00000000 --- a/jasamedika-pelayanan/src/main/java/com/jasamedika/medifirst2000/task/schedule/config/ScheduleTaskConfig.java +++ /dev/null @@ -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(); - } - -} 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 deleted file mode 100644 index 3d778ab9..00000000 --- a/jasamedika-sdm/src/main/java/com/jasamedika/medifirst2000/task/schedule/ScheduleTask.java +++ /dev/null @@ -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(); - } -} diff --git a/jasamedika-sdm/src/main/java/com/jasamedika/medifirst2000/task/schedule/config/ScheduleTaskConfig.java b/jasamedika-sdm/src/main/java/com/jasamedika/medifirst2000/task/schedule/config/ScheduleTaskConfig.java deleted file mode 100644 index c96cd166..00000000 --- a/jasamedika-sdm/src/main/java/com/jasamedika/medifirst2000/task/schedule/config/ScheduleTaskConfig.java +++ /dev/null @@ -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; - } - -}