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 c358b59f9d
2 changed files with 72 additions and 17 deletions

View File

@ -3170,6 +3170,7 @@ public class RemunerasiServiceImpl extends BaseVoServiceImpl implements Remunera
}
return builder.build();
}
double hargaDiskon = Double.parseDouble(d.get("hargaDiskon").toString());
double persenDiskonPegawai = Double.parseDouble(d.get("persenDiskonPegawai").toString());
double persenDiskonJasa = 0.0;
if (DOKTER_PEMERIKSA.equals(d.get("idJenisPelaksana"))) {
@ -3179,7 +3180,12 @@ public class RemunerasiServiceImpl extends BaseVoServiceImpl implements Remunera
} else if (DOKTER_ANASTESI.equals(d.get("idJenisPelaksana"))) {
persenDiskonJasa = Double.parseDouble(d.get("persenDiskonAn").toString());
}
builder.nilai(persenRemunerasi * hargaJual * (1 - persenDiskonPegawai / 100) * (1 - persenDiskonJasa / 100));
if (Boolean.parseBoolean(d.get("isSelisihPaket").toString())) {
builder.nilai(persenRemunerasi * (hargaJual - hargaDiskon));
} else {
builder.nilai(
persenRemunerasi * hargaJual * (1 - persenDiskonPegawai / 100) * (1 - persenDiskonJasa / 100));
}
if (Boolean.parseBoolean(d.get("isSelisihPaket").toString())) {
if (persenDiskonPegawai > 0.0 && persenDiskonJasa > 0.0) {
if (isFrontNote) {
@ -3201,6 +3207,8 @@ public class RemunerasiServiceImpl extends BaseVoServiceImpl implements Remunera
} else {
builder.keterangan(" + Selisih Paket + Diskon Jasa Medis Dokter (" + persenDiskonJasa + "%)");
}
} else {
builder.keterangan("");
}
} else {
if (persenDiskonPegawai > 0.0 && persenDiskonJasa > 0.0) {
@ -3223,6 +3231,8 @@ public class RemunerasiServiceImpl extends BaseVoServiceImpl implements Remunera
} else {
builder.keterangan(" + Diskon Jasa Medis Dokter (" + persenDiskonJasa + "%)");
}
} else {
builder.keterangan("");
}
}
return builder.build();

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<>();
{