From ed22e187ce89c0c82d1cb5019fbc7e9d82cd8858 Mon Sep 17 00:00:00 2001 From: Salman Manoe Date: Wed, 20 Sep 2023 15:52:20 +0700 Subject: [PATCH] Update service pelayanan pasien Pembuatan logbook fixed pay untuk capaian remunerasi dokter --- .../dao/HargaNettoProdukByKelasDao.java | 2 + .../medifirst2000/dao/PelayananPasienDao.java | 2 +- .../impl/PelayananPasienServiceImpl.java | 44 ++++++++++++------- 3 files changed, 31 insertions(+), 17 deletions(-) diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/HargaNettoProdukByKelasDao.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/HargaNettoProdukByKelasDao.java index eed9a174..57255bfb 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/HargaNettoProdukByKelasDao.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/HargaNettoProdukByKelasDao.java @@ -41,4 +41,6 @@ public interface HargaNettoProdukByKelasDao extends JpaRepository> findTarifTindakan(@Param("produkId") Integer idProduk, @Param("listKelasId") List listIdKelas); + + List findAllByProdukIdAndKelasId(Integer produkId, Integer kelasId); } diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/PelayananPasienDao.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/PelayananPasienDao.java index 6ee9f81d..6bf11d5a 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/PelayananPasienDao.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/PelayananPasienDao.java @@ -198,7 +198,7 @@ public interface PelayananPasienDao extends JpaRepository> listFixedPay = listData.stream() .filter(d -> (CommonUtil.isNotNullOrEmpty(d.get("idVoucherDaftar")) && !Boolean.parseBoolean(d.get("isPaket").toString()) + && CommonUtil.isNotNullOrEmpty(d.get("idPaketLayanan")) && Integer.valueOf(d.get("idProduk").toString()).equals(d.get("idPaketLayanan"))) || (CommonUtil.isNotNullOrEmpty(d.get("idVoucherLayanan")) - && Boolean.parseBoolean(d.get("isPaket").toString()) && !Integer + && Boolean.parseBoolean(d.get("isPaket").toString()) + && CommonUtil.isNotNullOrEmpty(d.get("idPaketLayanan")) && !Integer .valueOf(d.get("idProduk").toString()).equals(d.get("idPaketLayanan")))) .collect(Collectors.toList()); /* @@ -1499,22 +1501,32 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel List listIdKelompokPasien = new ArrayList<>(); List listTanggal = new ArrayList<>(); List listJenisRuangan = new ArrayList<>(); - List> listKepalaPaket = listData.stream() - .filter(d -> (CommonUtil.isNotNullOrEmpty(d.get("idVoucherDaftar")) - && !Boolean.parseBoolean(d.get("isPaket").toString()) - && Integer.valueOf(d.get("idProduk").toString()).equals(d.get("idPaketLayanan")))) - .collect(Collectors.toList()); - List listIdVoucherKepalaPaket = listKepalaPaket.stream().map(p -> p.get("idVoucherLayanan").toString()) - .collect(Collectors.toList()); - List> pelayananKepalaPaket = voucherPaketDao.findPelayananPaket(listIdVoucherKepalaPaket); - List listIdEntri = pelayananKepalaPaket.stream() - .filter(kp -> TINDAKAN_UTAMA.name().equals(kp.get("jenisMapping").toString())) - .map(kp -> Integer.valueOf(kp.get("idProduk").toString())) - .collect(Collectors.toList()); - List> listDataUtama = listData.stream() - .filter(d -> listIdEntri.contains(Integer.parseInt(d.get("idProduk").toString()))) - .collect(Collectors.toList()); List> listFixedPay = new ArrayList<>(); + { + List> listKepalaPaket = listData.stream() + .filter(d -> (CommonUtil.isNotNullOrEmpty(d.get("idVoucherDaftar")) + && !Boolean.parseBoolean(d.get("isPaket").toString()) + && CommonUtil.isNotNullOrEmpty(d.get("idPaketLayanan")) + && Integer.valueOf(d.get("idProduk").toString()).equals(d.get("idPaketLayanan")))) + .collect(Collectors.toList()); + Set listIdVoucherKepalaPaket = listKepalaPaket.stream().map(p -> p.get("idVoucherLayanan").toString()) + .collect(Collectors.toSet()); + List> pelayananKepalaPaket = voucherPaketDao + .findPelayananPaket(new ArrayList<>(listIdVoucherKepalaPaket)); + List listIdEntri = pelayananKepalaPaket.stream() + .filter(kp -> TINDAKAN_UTAMA.name().equals(kp.get("jenisMapping").toString())) + .map(kp -> Integer.valueOf(kp.get("idProduk").toString())) + .collect(Collectors.toList()); + List> listDataUtama = listData.stream() + .filter(d -> listIdEntri.contains(Integer.parseInt(d.get("idProduk").toString()))) + .collect(Collectors.toList()); + listIdVoucherKepalaPaket.forEach(idVoucher -> { + List> dataUtama = listDataUtama.stream() + .filter(d -> idVoucher.equals(d.get("idVoucherLayanan"))) + .collect(Collectors.toList()); + + }); + } /* * Populate data filter */