diff --git a/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/entities/RekapLogbookDokter.java b/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/entities/RekapLogbookDokter.java index 92eda524..c711cbbe 100644 --- a/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/entities/RekapLogbookDokter.java +++ b/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/entities/RekapLogbookDokter.java @@ -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) diff --git a/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/vo/RekapLogbookDokterVO.java b/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/vo/RekapLogbookDokterVO.java index b4a3b446..76de63f4 100644 --- a/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/vo/RekapLogbookDokterVO.java +++ b/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/vo/RekapLogbookDokterVO.java @@ -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; diff --git a/jasamedika-pelayanan/src/main/java/com/jasamedika/medifirst2000/task/schedule/LogbookTask.java b/jasamedika-pelayanan/src/main/java/com/jasamedika/medifirst2000/task/schedule/LogbookTask.java index ff9be624..e4383a88 100644 --- a/jasamedika-pelayanan/src/main/java/com/jasamedika/medifirst2000/task/schedule/LogbookTask.java +++ b/jasamedika-pelayanan/src/main/java/com/jasamedika/medifirst2000/task/schedule/LogbookTask.java @@ -49,9 +49,9 @@ public class LogbookTask { DateFormat df = new SimpleDateFormat("yyyy-MM"); String bulan = df.format(date); List models = new ArrayList<>(); - idPegawaiByTglPelayanan.forEach(id -> { + idPegawaiByTglPelayanan.forEach(idPegawai -> { { - Map kinerjaDokter = pelayananPasienService.logbookRemunTarifDokter(id, bulan); + Map kinerjaDokter = pelayananPasienService.logbookRemunTarifDokter(idPegawai, bulan); List> remun = (List>) kinerjaDokter.get("data"); List 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> ffs = pelayananPasienService.logbookFfsTarifDokter(id, bulan); + List> ffs = pelayananPasienService.logbookFfsTarifDokter(idPegawai, bulan); List listJenisRuangan = new ArrayList<>(); List 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> fixedPay = pelayananPasienService.logbookFixedPayDokter(id, bulan); + List> fixedPay = pelayananPasienService.logbookFixedPayDokter(idPegawai, bulan); List listJenisRuangan = new ArrayList<>(); List listIdKelompokPasien = new ArrayList<>(); + List 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);