Update LogbookTask.java

Penyesuaian cut-off tarif baru untuk scheduler rekap logbook dokter
This commit is contained in:
Salman Manoe 2024-10-02 20:48:19 +07:00
parent f7fb78722d
commit eccbc161f5

View File

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