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 index 8520c089..7b5d3673 100644 --- 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 @@ -5,6 +5,7 @@ import com.jasamedika.medifirst2000.entities.*; import com.jasamedika.medifirst2000.service.LogbookRemunService; import com.jasamedika.medifirst2000.service.PelayananPasienService; import com.jasamedika.medifirst2000.service.RekapLogbookDokterService; +import com.jasamedika.medifirst2000.service.RemunerasiService; import com.jasamedika.medifirst2000.util.DateUtil; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -16,7 +17,9 @@ import java.math.BigDecimal; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.time.LocalDate; +import java.time.YearMonth; import java.time.ZoneId; +import java.time.format.DateTimeFormatter; import java.util.*; import java.util.concurrent.CountDownLatch; import java.util.concurrent.ExecutorService; @@ -31,7 +34,7 @@ import static com.jasamedika.medifirst2000.constants.Master.Profesi.TERAPI; */ @Component public class LogbookTask { - private static final Logger LOGGER = LoggerFactory.getLogger(PasienTask.class); + private static final Logger LOGGER = LoggerFactory.getLogger(LogbookTask.class); @Autowired private PelayananPasienPetugasDao pelayananPasienPetugasDao; @@ -42,6 +45,9 @@ public class LogbookTask { @Autowired private PelayananPasienService pelayananPasienService; + @Autowired + private RemunerasiService remunerasiService; + @Autowired private RekapLogbookDokterService rekapLogbookDokterService; @@ -81,11 +87,18 @@ public class LogbookTask { Set idPegawaiByTglPelayanan = pelayananPasienPetugasDao.findPegawaiByTglPelayanan(tglAwal, tglAkhir); DateFormat df = new SimpleDateFormat("yyyy-MM"); String bulan = df.format(date); + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM"); + YearMonth oct24 = YearMonth.parse("2024-10", formatter); + YearMonth month = YearMonth.parse(bulan, formatter); List models = new ArrayList<>(); idPegawaiByTglPelayanan.forEach(idPegawai -> { { - Map kinerjaDokter = pelayananPasienService.logbookRemunTarifDokter(idPegawai, bulan, - null); + Map kinerjaDokter; + if (month.isBefore(oct24)) { + kinerjaDokter = pelayananPasienService.logbookRemunTarifDokter(idPegawai, bulan, null); + } else { + kinerjaDokter = remunerasiService.logbookRemunTarifDokter(idPegawai, bulan, null); + } List> remun = (List>) kinerjaDokter.get("data"); List listIdKelompokPasien = new ArrayList<>(); remun.forEach(r -> { @@ -114,7 +127,12 @@ public class LogbookTask { }); } { - List> ffs = pelayananPasienService.logbookFfsTarifDokter(idPegawai, bulan, null); + List> ffs; + if (month.isBefore(oct24)) { + ffs = pelayananPasienService.logbookFfsTarifDokter(idPegawai, bulan, null); + } else { + ffs = remunerasiService.logbookFfsTarifDokter(idPegawai, bulan, null); + } List listJenisRuangan = new ArrayList<>(); List listIdKelompokPasien = new ArrayList<>(); ffs.forEach(r -> { @@ -150,8 +168,12 @@ public class LogbookTask { })); } { - List> fixedPay = pelayananPasienService.logbookFixedPayDokter(idPegawai, bulan, - null); + List> fixedPay; + if (month.isBefore(oct24)) { + fixedPay = pelayananPasienService.logbookFixedPayDokter(idPegawai, bulan, null); + } else { + fixedPay = remunerasiService.logbookFixedPayDokter(idPegawai, bulan, null); + } List listJenisRuangan = new ArrayList<>(); List listIdKelompokPasien = new ArrayList<>(); List listBulanIbuPulangRanap = new ArrayList<>(); @@ -222,6 +244,9 @@ public class LogbookTask { private void saveRekapDetailLogbookDokter(Set idPegawaiKelompokKerja, Date date) { DateFormat df = new SimpleDateFormat("yyyy-MM"); String bulan = df.format(date); + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM"); + YearMonth oct24 = YearMonth.parse("2024-09", formatter); + YearMonth month = YearMonth.parse(bulan, formatter); ExecutorService executorService = Executors.newFixedThreadPool(50); CountDownLatch latch = new CountDownLatch(50); try { @@ -237,8 +262,12 @@ public class LogbookTask { logbookRemun.setTanggalTarikData(new Date()); LogbookRemun savedRemun = logbookRemunDao.save(logbookRemun); { - Map kinerjaDokter = pelayananPasienService.logbookRemunTarifDokter(idPegawai, - bulan, null); + Map kinerjaDokter; + if (month.isBefore(oct24)) { + kinerjaDokter = pelayananPasienService.logbookRemunTarifDokter(idPegawai, bulan, null); + } else { + kinerjaDokter = remunerasiService.logbookRemunTarifDokter(idPegawai, bulan, null); + } List> remun = (List>) kinerjaDokter.get("data"); for (Map map : remun) { List listNorecPelayananPasienPetugas = new ArrayList<>(); @@ -296,8 +325,12 @@ public class LogbookTask { } } { - List> ffs = pelayananPasienService.logbookFfsTarifDokter(idPegawai, bulan, - null); + List> ffs; + if (month.isBefore(oct24)) { + ffs = pelayananPasienService.logbookFfsTarifDokter(idPegawai, bulan, null); + } else { + ffs = remunerasiService.logbookFfsTarifDokter(idPegawai, bulan, null); + } for (Map fee : ffs) { List listNorecPelayananPasienPetugas = new ArrayList<>(); { @@ -355,8 +388,12 @@ public class LogbookTask { } } { - List> ffs = pelayananPasienService.logbookFfsLuarTarifDokter(idPegawai, - bulan, null); + List> ffs; + if (month.isBefore(oct24)) { + ffs = pelayananPasienService.logbookFfsLuarTarifDokter(idPegawai, bulan, null); + } else { + ffs = remunerasiService.logbookFfsLuarTarifDokter(idPegawai, bulan, null); + } for (Map fee : ffs) { List listNorecPelayananPasienPetugas = new ArrayList<>(); { @@ -414,8 +451,12 @@ public class LogbookTask { } } { - List> fixedPay = pelayananPasienService.logbookFixedPayDokter(idPegawai, - bulan, null); + List> fixedPay; + if (month.isBefore(oct24)) { + fixedPay = pelayananPasienService.logbookFixedPayDokter(idPegawai, bulan, null); + } else { + fixedPay = remunerasiService.logbookFixedPayDokter(idPegawai, bulan, null); + } for (Map pay : fixedPay) { List listNorecPelayananPasienPetugas = new ArrayList<>(); { @@ -471,8 +512,12 @@ public class LogbookTask { } } { - List> klaimMpp = pelayananPasienService.logbookKlaimMppDokter(idPegawai, - bulan); + List> klaimMpp; + if (month.isBefore(oct24)) { + klaimMpp = pelayananPasienService.logbookKlaimMppDokter(idPegawai, bulan); + } else { + klaimMpp = remunerasiService.logbookKlaimMppDokter(idPegawai, bulan); + } for (Map mpp : klaimMpp) { List listNorecPelayananPasienPetugas = new ArrayList<>(); {