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) @Column(name = "kelompokpasienfk", insertable = false, updatable = false, nullable = false)
private Integer kelompokPasienId; private Integer kelompokPasienId;
@Column(length = 8)
@Size(max = 8, message = "Bulan pulang ibu maksimal {max} karaketer")
private String bulanPulangIbu;
@Column(nullable = false) @Column(nullable = false)
@NotNull(message = "Bulan logbook tidak boleh kosong") @NotNull(message = "Bulan logbook tidak boleh kosong")
@Temporal(DATE) @Temporal(DATE)

View File

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

View File

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