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.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<Integer> 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<RekapLogbookDokter> models = new ArrayList<>();
idPegawaiByTglPelayanan.forEach(idPegawai -> {
{
Map<String, Object> kinerjaDokter = pelayananPasienService.logbookRemunTarifDokter(idPegawai, bulan,
null);
Map<String, Object> kinerjaDokter;
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<Integer> listIdKelompokPasien = new ArrayList<>();
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<Integer> listIdKelompokPasien = new ArrayList<>();
ffs.forEach(r -> {
@ -150,8 +168,12 @@ public class LogbookTask {
}));
}
{
List<Map<String, Object>> fixedPay = pelayananPasienService.logbookFixedPayDokter(idPegawai, bulan,
null);
List<Map<String, Object>> fixedPay;
if (month.isBefore(oct24)) {
fixedPay = pelayananPasienService.logbookFixedPayDokter(idPegawai, bulan, null);
} else {
fixedPay = remunerasiService.logbookFixedPayDokter(idPegawai, bulan, null);
}
List<String> listJenisRuangan = new ArrayList<>();
List<Integer> listIdKelompokPasien = new ArrayList<>();
List<String> listBulanIbuPulangRanap = new ArrayList<>();
@ -222,6 +244,9 @@ public class LogbookTask {
private void saveRekapDetailLogbookDokter(Set<Integer> 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<String, Object> kinerjaDokter = pelayananPasienService.logbookRemunTarifDokter(idPegawai,
bulan, null);
Map<String, Object> kinerjaDokter;
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");
for (Map<String, Object> map : remun) {
List<String> listNorecPelayananPasienPetugas = new ArrayList<>();
@ -296,8 +325,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);
}
for (Map<String, Object> fee : ffs) {
List<String> listNorecPelayananPasienPetugas = new ArrayList<>();
{
@ -355,8 +388,12 @@ public class LogbookTask {
}
}
{
List<Map<String, Object>> ffs = pelayananPasienService.logbookFfsLuarTarifDokter(idPegawai,
bulan, null);
List<Map<String, Object>> ffs;
if (month.isBefore(oct24)) {
ffs = pelayananPasienService.logbookFfsLuarTarifDokter(idPegawai, bulan, null);
} else {
ffs = remunerasiService.logbookFfsLuarTarifDokter(idPegawai, bulan, null);
}
for (Map<String, Object> fee : ffs) {
List<String> listNorecPelayananPasienPetugas = new ArrayList<>();
{
@ -414,8 +451,12 @@ public class LogbookTask {
}
}
{
List<Map<String, Object>> fixedPay = pelayananPasienService.logbookFixedPayDokter(idPegawai,
bulan, null);
List<Map<String, Object>> fixedPay;
if (month.isBefore(oct24)) {
fixedPay = pelayananPasienService.logbookFixedPayDokter(idPegawai, bulan, null);
} else {
fixedPay = remunerasiService.logbookFixedPayDokter(idPegawai, bulan, null);
}
for (Map<String, Object> pay : fixedPay) {
List<String> listNorecPelayananPasienPetugas = new ArrayList<>();
{
@ -471,8 +512,12 @@ public class LogbookTask {
}
}
{
List<Map<String, Object>> klaimMpp = pelayananPasienService.logbookKlaimMppDokter(idPegawai,
bulan);
List<Map<String, Object>> klaimMpp;
if (month.isBefore(oct24)) {
klaimMpp = pelayananPasienService.logbookKlaimMppDokter(idPegawai, bulan);
} else {
klaimMpp = remunerasiService.logbookKlaimMppDokter(idPegawai, bulan);
}
for (Map<String, Object> mpp : klaimMpp) {
List<String> listNorecPelayananPasienPetugas = new ArrayList<>();
{