Update scheduler rekap logbook dokter

Penambahan informasi bulan ibu pulang ranap untuk jenis logbook fixed-pay
This commit is contained in:
Salman Manoe 2023-11-08 12:50:56 +07:00
parent 7e2335f3fe
commit a598fa4e8e
3 changed files with 47 additions and 32 deletions

View File

@ -53,6 +53,10 @@ public class RekapLogbookDokter extends BaseTransaction {
@Column(name = "kelompokpasienfk", insertable = false, updatable = false, nullable = false)
private Integer kelompokPasienId;
@Column(length = 8)
@Size(max = 8, message = "Bulan pulang ibu maksimal {max} karaketer")
private String bulanPulangIbu;
@Column(nullable = false)
@NotNull(message = "Bulan logbook tidak boleh kosong")
@Temporal(DATE)

View File

@ -2,7 +2,8 @@ package com.jasamedika.medifirst2000.vo;
import com.jasamedika.medifirst2000.base.vo.BaseTransactionVO;
import com.jasamedika.medifirst2000.helper.Caption;
import lombok.*;
import lombok.Getter;
import lombok.Setter;
import org.hibernate.validator.constraints.NotBlank;
import javax.validation.constraints.NotNull;
@ -36,6 +37,9 @@ public class RekapLogbookDokterVO extends BaseTransactionVO {
private Integer kelompokPasienId;
@Size(max = 8, message = "Bulan pulang ibu maksimal {max} karaketer")
private String bulanPulangIbu;
private Date bulan;
private Double jumlah;

View File

@ -49,9 +49,9 @@ public class LogbookTask {
DateFormat df = new SimpleDateFormat("yyyy-MM");
String bulan = df.format(date);
List<RekapLogbookDokter> models = new ArrayList<>();
idPegawaiByTglPelayanan.forEach(id -> {
idPegawaiByTglPelayanan.forEach(idPegawai -> {
{
Map<String, Object> kinerjaDokter = pelayananPasienService.logbookRemunTarifDokter(id, bulan);
Map<String, Object> kinerjaDokter = pelayananPasienService.logbookRemunTarifDokter(idPegawai, bulan);
List<Map<String, Object>> remun = (List<Map<String, Object>>) kinerjaDokter.get("data");
List<Integer> listIdKelompokPasien = new ArrayList<>();
remun.forEach(r -> {
@ -67,7 +67,7 @@ public class LogbookTask {
rekapLogbookDokter.setKdProfile((short) 0);
rekapLogbookDokter.setStatusEnabled(true);
Pegawai pegawai = new Pegawai();
pegawai.setId(id);
pegawai.setId(idPegawai);
rekapLogbookDokter.setPegawai(pegawai);
rekapLogbookDokter.setJenisLogbook("JKN");
KelompokPasien kelompokPasien = new KelompokPasien();
@ -80,7 +80,7 @@ public class LogbookTask {
});
}
{
List<Map<String, Object>> ffs = pelayananPasienService.logbookFfsTarifDokter(id, bulan);
List<Map<String, Object>> ffs = pelayananPasienService.logbookFfsTarifDokter(idPegawai, bulan);
List<String> listJenisRuangan = new ArrayList<>();
List<Integer> listIdKelompokPasien = new ArrayList<>();
ffs.forEach(r -> {
@ -102,7 +102,7 @@ public class LogbookTask {
rekapLogbookDokter.setKdProfile((short) 0);
rekapLogbookDokter.setStatusEnabled(true);
Pegawai pegawai = new Pegawai();
pegawai.setId(id);
pegawai.setId(idPegawai);
rekapLogbookDokter.setPegawai(pegawai);
rekapLogbookDokter.setJenisLogbook("NON_JKN");
rekapLogbookDokter.setJenisRuangan(jenisRuangan);
@ -116,40 +116,47 @@ public class LogbookTask {
}));
}
{
List<Map<String, Object>> fixedPay = pelayananPasienService.logbookFixedPayDokter(id, bulan);
List<Map<String, Object>> fixedPay = pelayananPasienService.logbookFixedPayDokter(idPegawai, bulan);
List<String> listJenisRuangan = new ArrayList<>();
List<Integer> listIdKelompokPasien = new ArrayList<>();
List<String> listBulanIbuPulangRanap = new ArrayList<>();
fixedPay.forEach(r -> {
if (!listJenisRuangan.contains(r.get("jenisRuangan").toString()))
listJenisRuangan.add(r.get("jenisRuangan").toString());
if (!listIdKelompokPasien.contains(Integer.parseInt(r.get("idKelompokPasien").toString())))
listIdKelompokPasien.add(Integer.parseInt(r.get("idKelompokPasien").toString()));
if (!listBulanIbuPulangRanap.contains(r.get("bulanPulangIbu").toString()))
listBulanIbuPulangRanap.add(r.get("bulanPulangIbu").toString());
});
listJenisRuangan.forEach(jenisRuangan -> listIdKelompokPasien.forEach(idKelompokPasien -> {
double jumlah = fixedPay.stream()
.filter(r -> jenisRuangan.equals(r.get("jenisRuangan"))
&& idKelompokPasien.equals(r.get("idKelompokPasien")))
.mapToDouble(r -> Double.parseDouble(r.get("jumlah").toString())).sum();
double hargaJasa = fixedPay.stream()
.filter(r -> jenisRuangan.equals(r.get("jenisRuangan"))
&& idKelompokPasien.equals(r.get("idKelompokPasien")))
.mapToDouble(r -> Double.parseDouble(r.get("jumlahHargaJasa").toString())).sum();
RekapLogbookDokter rekapLogbookDokter = new RekapLogbookDokter();
rekapLogbookDokter.setKdProfile((short) 0);
rekapLogbookDokter.setStatusEnabled(true);
Pegawai pegawai = new Pegawai();
pegawai.setId(id);
rekapLogbookDokter.setPegawai(pegawai);
rekapLogbookDokter.setJenisLogbook("FIXED_PAY");
rekapLogbookDokter.setJenisRuangan(jenisRuangan);
KelompokPasien kelompokPasien = new KelompokPasien();
kelompokPasien.setId(idKelompokPasien);
rekapLogbookDokter.setKelompokPasien(kelompokPasien);
rekapLogbookDokter.setBulan(date);
rekapLogbookDokter.setJumlah(jumlah);
rekapLogbookDokter.setCapaian(hargaJasa);
models.add(rekapLogbookDokter);
}));
listJenisRuangan.forEach(jenisRuangan -> listIdKelompokPasien
.forEach(idKelompokPasien -> listBulanIbuPulangRanap.forEach(bulanIbuPulangRanap -> {
double jumlah = fixedPay.stream()
.filter(r -> jenisRuangan.equals(r.get("jenisRuangan"))
&& idKelompokPasien.equals(r.get("idKelompokPasien"))
&& bulanIbuPulangRanap.equals(r.get("bulanIbuPulang")))
.mapToDouble(r -> Double.parseDouble(r.get("jumlah").toString())).sum();
double hargaJasa = fixedPay.stream()
.filter(r -> jenisRuangan.equals(r.get("jenisRuangan"))
&& idKelompokPasien.equals(r.get("idKelompokPasien"))
&& bulanIbuPulangRanap.equals(r.get("bulanIbuPulang")))
.mapToDouble(r -> Double.parseDouble(r.get("jumlahHargaJasa").toString())).sum();
RekapLogbookDokter rekapLogbookDokter = new RekapLogbookDokter();
rekapLogbookDokter.setKdProfile((short) 0);
rekapLogbookDokter.setStatusEnabled(true);
Pegawai pegawai = new Pegawai();
pegawai.setId(idPegawai);
rekapLogbookDokter.setPegawai(pegawai);
rekapLogbookDokter.setJenisLogbook("FIXED_PAY");
rekapLogbookDokter.setJenisRuangan(jenisRuangan);
KelompokPasien kelompokPasien = new KelompokPasien();
kelompokPasien.setId(idKelompokPasien);
rekapLogbookDokter.setKelompokPasien(kelompokPasien);
rekapLogbookDokter.setBulanPulangIbu(bulanIbuPulangRanap);
rekapLogbookDokter.setBulan(date);
rekapLogbookDokter.setJumlah(jumlah);
rekapLogbookDokter.setCapaian(hargaJasa);
models.add(rekapLogbookDokter);
})));
}
});
rekapLogbookDokterDao.save(models);