From 4ddd3446b6c92b39147d25224054a40cc8b9faa8 Mon Sep 17 00:00:00 2001 From: Salman Manoe Date: Wed, 4 Oct 2023 15:52:25 +0700 Subject: [PATCH] Update PelayananPasienServiceImpl.java Perbaikan data exist untuk paket dan daftar paket di logbook fixed-pay --- .../impl/PelayananPasienServiceImpl.java | 269 +++++++++--------- 1 file changed, 141 insertions(+), 128 deletions(-) diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/PelayananPasienServiceImpl.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/PelayananPasienServiceImpl.java index 66c805fe..1c7d8c59 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/PelayananPasienServiceImpl.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/PelayananPasienServiceImpl.java @@ -1651,138 +1651,151 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel } Set setIdVoucherExcludeUndone = dataExcludeUndone.stream().map(d -> d.get("idVoucherDaftar").toString()) .collect(Collectors.toSet()); - List listVoucherExcludeUndone = voucherPaketDao.findAllByNoRecIn(setIdVoucherExcludeUndone); - List listIdPaketExcludeUndone = listVoucherExcludeUndone.stream().map(VoucherPaket::getPaketId) - .collect(Collectors.toList()); List> result = new ArrayList<>(); - { - /* - * Transformasi data tindakan utama dan reduce visite utama - */ - List> layananKepalaPaket = pelayananPasienDao - .findPelayananPasienByPaket(setIdVoucherExcludeUndone, listIdPaketExcludeUndone); - List concatIdProdukKelas = layananKepalaPaket.stream() - .map(l -> l.get("idProduk").toString() + l.get("idKelas").toString()).collect(Collectors.toList()); - List listTarif = hargaNettoProdukByKelasDao - .findByConcateProdukKelas(concatIdProdukKelas); - layananKepalaPaket.forEach(l -> { - Optional first = listTarif.stream().filter( - t -> t.getProdukId().equals(l.get("idProduk")) && t.getKelasId().equals(l.get("idKelas"))) - .findFirst(); - if (first.isPresent() && CommonUtil.isNotNullOrEmpty(first.get().getHargaNetto1()) - && first.get().getHargaNetto1() > 0.0) { - l.put("hargaJual", first.get().getHargaNetto1()); - } else if (first.isPresent() && CommonUtil.isNotNullOrEmpty(first.get().getHargaSatuan()) - && first.get().getHargaSatuan() > 0.0) { - l.put("hargaJual", first.get().getHargaSatuan()); + if (CommonUtil.isNotNullOrEmpty(setIdVoucherExcludeUndone)) { + List listVoucherExcludeUndone = voucherPaketDao.findAllByNoRecIn(setIdVoucherExcludeUndone); + List listIdPaketExcludeUndone = listVoucherExcludeUndone.stream().map(VoucherPaket::getPaketId) + .collect(Collectors.toList()); + if (CommonUtil.isNotNullOrEmpty(listIdPaketExcludeUndone)) { + { + /* + * Transformasi data tindakan utama dan reduce visite utama + */ + List> layananKepalaPaket = pelayananPasienDao + .findPelayananPasienByPaket(setIdVoucherExcludeUndone, listIdPaketExcludeUndone); + List concatIdProdukKelas = layananKepalaPaket.stream() + .map(l -> l.get("idProduk").toString() + l.get("idKelas").toString()) + .collect(Collectors.toList()); + List listTarif = hargaNettoProdukByKelasDao + .findByConcateProdukKelas(concatIdProdukKelas); + layananKepalaPaket.forEach(l -> { + Optional first = listTarif.stream() + .filter(t -> t.getProdukId().equals(l.get("idProduk")) + && t.getKelasId().equals(l.get("idKelas"))) + .findFirst(); + if (first.isPresent() && CommonUtil.isNotNullOrEmpty(first.get().getHargaNetto1()) + && first.get().getHargaNetto1() > 0.0) { + l.put("hargaJual", first.get().getHargaNetto1()); + } else if (first.isPresent() && CommonUtil.isNotNullOrEmpty(first.get().getHargaSatuan()) + && first.get().getHargaSatuan() > 0.0) { + l.put("hargaJual", first.get().getHargaSatuan()); + } + }); + List listDetailTarif = hargaNettoProdukByKelasDDao + .findByConcateProdukKelas(concatIdProdukKelas); + layananKepalaPaket.forEach(l -> { + Optional first = listDetailTarif.stream() + .filter(t -> t.getProdukId().equals(l.get("idProduk")) + && t.getKelasId().equals(l.get("idKelas")) + && JASA_DOKTER_OBGYN.equals(t.getKomponenHargaId())) + .findFirst(); + if (first.isPresent() && CommonUtil.isNotNullOrEmpty(first.get().getHargaNetto1()) + && first.get().getHargaNetto1() > 0.0) { + l.put("hargaJasa", first.get().getHargaNetto1()); + } else if (first.isPresent() && CommonUtil.isNotNullOrEmpty(first.get().getHargaSatuan()) + && first.get().getHargaSatuan() > 0.0) { + l.put("hargaJasa", first.get().getHargaSatuan()); + } else { + l.put("hargaJasa", 0.0); + } + }); + result.addAll(layananKepalaPaket); } - }); - List listDetailTarif = hargaNettoProdukByKelasDDao - .findByConcateProdukKelas(concatIdProdukKelas); - layananKepalaPaket.forEach(l -> { - Optional first = listDetailTarif.stream() - .filter(t -> t.getProdukId().equals(l.get("idProduk")) - && t.getKelasId().equals(l.get("idKelas")) - && JASA_DOKTER_OBGYN.equals(t.getKomponenHargaId())) - .findFirst(); - if (first.isPresent() && CommonUtil.isNotNullOrEmpty(first.get().getHargaNetto1()) - && first.get().getHargaNetto1() > 0.0) { - l.put("hargaJasa", first.get().getHargaNetto1()); - } else if (first.isPresent() && CommonUtil.isNotNullOrEmpty(first.get().getHargaSatuan()) - && first.get().getHargaSatuan() > 0.0) { - l.put("hargaJasa", first.get().getHargaSatuan()); - } else { - l.put("hargaJasa", 0.0); - } - }); - result.addAll(layananKepalaPaket); - } - { - /* - * Transformasi data tindakan lain-lain - */ - List listPaketUtama = listMapPaket.stream() - .filter(mpaket -> listIdPaketExcludeUndone.contains(mpaket.getPaketId()) - && (TINDAKAN_UTAMA.equals(mpaket.getJenisMapping()) - || VISITE_UTAMA.equals(mpaket.getJenisMapping()))) - .collect(Collectors.toList()); - List listIdMapPaket = listPaketUtama.stream().map(MapProdukPaket::getNoRec) - .collect(Collectors.toList()); - List listIdEntri = listMapProduk.stream() - .filter(mproduk -> listIdMapPaket.contains(mproduk.getMapProdukPaketId())) - .map(MapProdukPaketToProduk::getProdukId).collect(Collectors.toList()); - List> listDataUtama = dataExcludeUndone.stream() - .filter(d -> CommonUtil.isNotNullOrEmpty(d.get("idVoucherDaftar")) - && setIdVoucherExcludeUndone.contains(d.get("idVoucherDaftar").toString()) - && listIdEntri.contains(Integer.parseInt(d.get("idProduk").toString()))) - .collect(Collectors.toList()); - Set setIdPelayananUtama = listDataUtama.stream().map(d -> d.get("idPelayananPasien").toString()) - .collect(Collectors.toSet()); - List> layananBadanPaket = dataExcludeUndone.stream() - .filter(d -> !setIdPelayananUtama.contains(d.get("idPelayananPasien").toString())) - .collect(Collectors.toList()); - List concatIdProdukKelas = layananBadanPaket.stream() - .map(l -> l.get("idProduk").toString() + l.get("idKelas").toString()).collect(Collectors.toList()); - List listDetailTarif = hargaNettoProdukByKelasDDao - .findByConcateProdukKelas(concatIdProdukKelas); - Set setNorecs = layananBadanPaket.stream().map(l -> l.get("idPelayananPasien").toString()) - .collect(Collectors.toSet()); - List> mappingBadanPaket = pelayananPasienDao.findByNorecs(setNorecs); - layananBadanPaket.forEach(l -> { - Optional> firstMap = mappingBadanPaket.stream() - .filter(m -> l.get("idPelayananPasien").toString().equals(m.get("norec"))).findFirst(); - if (firstMap.isPresent()) { - if (DOKTER_PEMERIKSA.equals(l.get("idJenisPelaksana"))) { - Optional first = listDetailTarif.stream() - .filter(t -> t.getProdukId().equals(firstMap.get().get("produkPaketId")) - && t.getKelasId().equals(l.get("idKelas")) - && JASA_DOKTER.equals(t.getKomponenHargaId())) - .findFirst(); - if (first.isPresent() && CommonUtil.isNotNullOrEmpty(first.get().getHargaNetto1()) - && first.get().getHargaNetto1() > 0.0) { - l.put("hargaJasa", first.get().getHargaNetto1()); - } else if (first.isPresent() && CommonUtil.isNotNullOrEmpty(first.get().getHargaSatuan()) - && first.get().getHargaSatuan() > 0.0) { - l.put("hargaJasa", first.get().getHargaSatuan()); - } else { - l.put("hargaJasa", 0.0); - } - } else if (ASISTEN_SPESIALIS.equals(l.get("idJenisPelaksana"))) { - Optional first = listDetailTarif.stream() - .filter(t -> t.getProdukId().equals(firstMap.get().get("produkPaketId")) - && t.getKelasId().equals(l.get("idKelas")) - && JASA_ASISTEN_SPESIALIS.equals(t.getKomponenHargaId())) - .findFirst(); - if (first.isPresent() && CommonUtil.isNotNullOrEmpty(first.get().getHargaNetto1()) - && first.get().getHargaNetto1() > 0.0) { - l.put("hargaJasa", first.get().getHargaNetto1()); - } else if (first.isPresent() && CommonUtil.isNotNullOrEmpty(first.get().getHargaSatuan()) - && first.get().getHargaSatuan() > 0.0) { - l.put("hargaJasa", first.get().getHargaSatuan()); - } else { - l.put("hargaJasa", 0.0); - } - } else if (DOKTER_ANASTESI.equals(l.get("idJenisPelaksana"))) { - Optional first = listDetailTarif.stream() - .filter(t -> t.getProdukId().equals(firstMap.get().get("produkPaketId")) - && t.getKelasId().equals(l.get("idKelas")) - && JASA_DOKTER_ANASTESI.equals(t.getKomponenHargaId())) - .findFirst(); - if (first.isPresent() && CommonUtil.isNotNullOrEmpty(first.get().getHargaNetto1()) - && first.get().getHargaNetto1() > 0.0) { - l.put("hargaJasa", first.get().getHargaNetto1()); - } else if (first.isPresent() && CommonUtil.isNotNullOrEmpty(first.get().getHargaSatuan()) - && first.get().getHargaSatuan() > 0.0) { - l.put("hargaJasa", first.get().getHargaSatuan()); - } else { - l.put("hargaJasa", 0.0); - } + { + /* + * Transformasi data tindakan lain-lain + */ + List listPaketUtama = listMapPaket.stream() + .filter(mpaket -> listIdPaketExcludeUndone.contains(mpaket.getPaketId()) + && (TINDAKAN_UTAMA.equals(mpaket.getJenisMapping()) + || VISITE_UTAMA.equals(mpaket.getJenisMapping()))) + .collect(Collectors.toList()); + List listIdMapPaket = listPaketUtama.stream().map(MapProdukPaket::getNoRec) + .collect(Collectors.toList()); + List listIdEntri = listMapProduk.stream() + .filter(mproduk -> listIdMapPaket.contains(mproduk.getMapProdukPaketId())) + .map(MapProdukPaketToProduk::getProdukId).collect(Collectors.toList()); + List> listDataUtama = dataExcludeUndone.stream() + .filter(d -> CommonUtil.isNotNullOrEmpty(d.get("idVoucherDaftar")) + && setIdVoucherExcludeUndone.contains(d.get("idVoucherDaftar").toString()) + && listIdEntri.contains(Integer.parseInt(d.get("idProduk").toString()))) + .collect(Collectors.toList()); + Set setIdPelayananUtama = listDataUtama.stream() + .map(d -> d.get("idPelayananPasien").toString()).collect(Collectors.toSet()); + List> layananBadanPaket = dataExcludeUndone.stream() + .filter(d -> !setIdPelayananUtama.contains(d.get("idPelayananPasien").toString())) + .collect(Collectors.toList()); + List concatIdProdukKelas = layananBadanPaket.stream() + .map(l -> l.get("idProduk").toString() + l.get("idKelas").toString()) + .collect(Collectors.toList()); + if (CommonUtil.isNotNullOrEmpty(concatIdProdukKelas)) { + List listDetailTarif = hargaNettoProdukByKelasDDao + .findByConcateProdukKelas(concatIdProdukKelas); + Set setNorecs = layananBadanPaket.stream() + .map(l -> l.get("idPelayananPasien").toString()).collect(Collectors.toSet()); + List> mappingBadanPaket = pelayananPasienDao.findByNorecs(setNorecs); + layananBadanPaket.forEach(l -> { + Optional> firstMap = mappingBadanPaket.stream() + .filter(m -> l.get("idPelayananPasien").toString().equals(m.get("norec"))) + .findFirst(); + if (firstMap.isPresent()) { + if (DOKTER_PEMERIKSA.equals(l.get("idJenisPelaksana"))) { + Optional first = listDetailTarif.stream() + .filter(t -> t.getProdukId().equals(firstMap.get().get("produkPaketId")) + && t.getKelasId().equals(l.get("idKelas")) + && JASA_DOKTER.equals(t.getKomponenHargaId())) + .findFirst(); + if (first.isPresent() && CommonUtil.isNotNullOrEmpty(first.get().getHargaNetto1()) + && first.get().getHargaNetto1() > 0.0) { + l.put("hargaJasa", first.get().getHargaNetto1()); + } else if (first.isPresent() + && CommonUtil.isNotNullOrEmpty(first.get().getHargaSatuan()) + && first.get().getHargaSatuan() > 0.0) { + l.put("hargaJasa", first.get().getHargaSatuan()); + } else { + l.put("hargaJasa", 0.0); + } + } else if (ASISTEN_SPESIALIS.equals(l.get("idJenisPelaksana"))) { + Optional first = listDetailTarif.stream() + .filter(t -> t.getProdukId().equals(firstMap.get().get("produkPaketId")) + && t.getKelasId().equals(l.get("idKelas")) + && JASA_ASISTEN_SPESIALIS.equals(t.getKomponenHargaId())) + .findFirst(); + if (first.isPresent() && CommonUtil.isNotNullOrEmpty(first.get().getHargaNetto1()) + && first.get().getHargaNetto1() > 0.0) { + l.put("hargaJasa", first.get().getHargaNetto1()); + } else if (first.isPresent() + && CommonUtil.isNotNullOrEmpty(first.get().getHargaSatuan()) + && first.get().getHargaSatuan() > 0.0) { + l.put("hargaJasa", first.get().getHargaSatuan()); + } else { + l.put("hargaJasa", 0.0); + } + } else if (DOKTER_ANASTESI.equals(l.get("idJenisPelaksana"))) { + Optional first = listDetailTarif.stream() + .filter(t -> t.getProdukId().equals(firstMap.get().get("produkPaketId")) + && t.getKelasId().equals(l.get("idKelas")) + && JASA_DOKTER_ANASTESI.equals(t.getKomponenHargaId())) + .findFirst(); + if (first.isPresent() && CommonUtil.isNotNullOrEmpty(first.get().getHargaNetto1()) + && first.get().getHargaNetto1() > 0.0) { + l.put("hargaJasa", first.get().getHargaNetto1()); + } else if (first.isPresent() + && CommonUtil.isNotNullOrEmpty(first.get().getHargaSatuan()) + && first.get().getHargaSatuan() > 0.0) { + l.put("hargaJasa", first.get().getHargaSatuan()); + } else { + l.put("hargaJasa", 0.0); + } + } + } else { + l.put("hargaJasa", 0.0); + } + }); } - } else { - l.put("hargaJasa", 0.0); + result.addAll(layananBadanPaket); } - }); - result.addAll(layananBadanPaket); + } } return result; }