Update LogbookTask.java
Penyesuaian cut-off tarif baru untuk scheduler rekap logbook dokter
This commit is contained in:
parent
f7fb78722d
commit
c358b59f9d
@ -3170,6 +3170,7 @@ public class RemunerasiServiceImpl extends BaseVoServiceImpl implements Remunera
|
|||||||
}
|
}
|
||||||
return builder.build();
|
return builder.build();
|
||||||
}
|
}
|
||||||
|
double hargaDiskon = Double.parseDouble(d.get("hargaDiskon").toString());
|
||||||
double persenDiskonPegawai = Double.parseDouble(d.get("persenDiskonPegawai").toString());
|
double persenDiskonPegawai = Double.parseDouble(d.get("persenDiskonPegawai").toString());
|
||||||
double persenDiskonJasa = 0.0;
|
double persenDiskonJasa = 0.0;
|
||||||
if (DOKTER_PEMERIKSA.equals(d.get("idJenisPelaksana"))) {
|
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"))) {
|
} else if (DOKTER_ANASTESI.equals(d.get("idJenisPelaksana"))) {
|
||||||
persenDiskonJasa = Double.parseDouble(d.get("persenDiskonAn").toString());
|
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 (Boolean.parseBoolean(d.get("isSelisihPaket").toString())) {
|
||||||
if (persenDiskonPegawai > 0.0 && persenDiskonJasa > 0.0) {
|
if (persenDiskonPegawai > 0.0 && persenDiskonJasa > 0.0) {
|
||||||
if (isFrontNote) {
|
if (isFrontNote) {
|
||||||
@ -3201,6 +3207,8 @@ public class RemunerasiServiceImpl extends BaseVoServiceImpl implements Remunera
|
|||||||
} else {
|
} else {
|
||||||
builder.keterangan(" + Selisih Paket + Diskon Jasa Medis Dokter (" + persenDiskonJasa + "%)");
|
builder.keterangan(" + Selisih Paket + Diskon Jasa Medis Dokter (" + persenDiskonJasa + "%)");
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
builder.keterangan("");
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (persenDiskonPegawai > 0.0 && persenDiskonJasa > 0.0) {
|
if (persenDiskonPegawai > 0.0 && persenDiskonJasa > 0.0) {
|
||||||
@ -3223,6 +3231,8 @@ public class RemunerasiServiceImpl extends BaseVoServiceImpl implements Remunera
|
|||||||
} else {
|
} else {
|
||||||
builder.keterangan(" + Diskon Jasa Medis Dokter (" + persenDiskonJasa + "%)");
|
builder.keterangan(" + Diskon Jasa Medis Dokter (" + persenDiskonJasa + "%)");
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
builder.keterangan("");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return builder.build();
|
return builder.build();
|
||||||
|
|||||||
@ -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<>();
|
||||||
{
|
{
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user