Update PelayananPasienServiceImpl.java

Perbaikan data exist untuk paket dan daftar paket di logbook fixed-pay
This commit is contained in:
Salman Manoe 2023-10-04 15:52:25 +07:00
parent e7367e9114
commit 4ddd3446b6

View File

@ -1651,138 +1651,151 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
} }
Set<String> setIdVoucherExcludeUndone = dataExcludeUndone.stream().map(d -> d.get("idVoucherDaftar").toString()) Set<String> setIdVoucherExcludeUndone = dataExcludeUndone.stream().map(d -> d.get("idVoucherDaftar").toString())
.collect(Collectors.toSet()); .collect(Collectors.toSet());
List<VoucherPaket> listVoucherExcludeUndone = voucherPaketDao.findAllByNoRecIn(setIdVoucherExcludeUndone);
List<Integer> listIdPaketExcludeUndone = listVoucherExcludeUndone.stream().map(VoucherPaket::getPaketId)
.collect(Collectors.toList());
List<Map<String, Object>> result = new ArrayList<>(); List<Map<String, Object>> result = new ArrayList<>();
{ if (CommonUtil.isNotNullOrEmpty(setIdVoucherExcludeUndone)) {
/* List<VoucherPaket> listVoucherExcludeUndone = voucherPaketDao.findAllByNoRecIn(setIdVoucherExcludeUndone);
* Transformasi data tindakan utama dan reduce visite utama List<Integer> listIdPaketExcludeUndone = listVoucherExcludeUndone.stream().map(VoucherPaket::getPaketId)
*/ .collect(Collectors.toList());
List<Map<String, Object>> layananKepalaPaket = pelayananPasienDao if (CommonUtil.isNotNullOrEmpty(listIdPaketExcludeUndone)) {
.findPelayananPasienByPaket(setIdVoucherExcludeUndone, listIdPaketExcludeUndone); {
List<String> concatIdProdukKelas = layananKepalaPaket.stream() /*
.map(l -> l.get("idProduk").toString() + l.get("idKelas").toString()).collect(Collectors.toList()); * Transformasi data tindakan utama dan reduce visite utama
List<HargaNettoProdukByKelas> listTarif = hargaNettoProdukByKelasDao */
.findByConcateProdukKelas(concatIdProdukKelas); List<Map<String, Object>> layananKepalaPaket = pelayananPasienDao
layananKepalaPaket.forEach(l -> { .findPelayananPasienByPaket(setIdVoucherExcludeUndone, listIdPaketExcludeUndone);
Optional<HargaNettoProdukByKelas> first = listTarif.stream().filter( List<String> concatIdProdukKelas = layananKepalaPaket.stream()
t -> t.getProdukId().equals(l.get("idProduk")) && t.getKelasId().equals(l.get("idKelas"))) .map(l -> l.get("idProduk").toString() + l.get("idKelas").toString())
.findFirst(); .collect(Collectors.toList());
if (first.isPresent() && CommonUtil.isNotNullOrEmpty(first.get().getHargaNetto1()) List<HargaNettoProdukByKelas> listTarif = hargaNettoProdukByKelasDao
&& first.get().getHargaNetto1() > 0.0) { .findByConcateProdukKelas(concatIdProdukKelas);
l.put("hargaJual", first.get().getHargaNetto1()); layananKepalaPaket.forEach(l -> {
} else if (first.isPresent() && CommonUtil.isNotNullOrEmpty(first.get().getHargaSatuan()) Optional<HargaNettoProdukByKelas> first = listTarif.stream()
&& first.get().getHargaSatuan() > 0.0) { .filter(t -> t.getProdukId().equals(l.get("idProduk"))
l.put("hargaJual", first.get().getHargaSatuan()); && 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<HargaNettoProdukByKelasD> listDetailTarif = hargaNettoProdukByKelasDDao
.findByConcateProdukKelas(concatIdProdukKelas);
layananKepalaPaket.forEach(l -> {
Optional<HargaNettoProdukByKelasD> 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<HargaNettoProdukByKelasD> listDetailTarif = hargaNettoProdukByKelasDDao /*
.findByConcateProdukKelas(concatIdProdukKelas); * Transformasi data tindakan lain-lain
layananKepalaPaket.forEach(l -> { */
Optional<HargaNettoProdukByKelasD> first = listDetailTarif.stream() List<MapProdukPaket> listPaketUtama = listMapPaket.stream()
.filter(t -> t.getProdukId().equals(l.get("idProduk")) .filter(mpaket -> listIdPaketExcludeUndone.contains(mpaket.getPaketId())
&& t.getKelasId().equals(l.get("idKelas")) && (TINDAKAN_UTAMA.equals(mpaket.getJenisMapping())
&& JASA_DOKTER_OBGYN.equals(t.getKomponenHargaId())) || VISITE_UTAMA.equals(mpaket.getJenisMapping())))
.findFirst(); .collect(Collectors.toList());
if (first.isPresent() && CommonUtil.isNotNullOrEmpty(first.get().getHargaNetto1()) List<String> listIdMapPaket = listPaketUtama.stream().map(MapProdukPaket::getNoRec)
&& first.get().getHargaNetto1() > 0.0) { .collect(Collectors.toList());
l.put("hargaJasa", first.get().getHargaNetto1()); List<Integer> listIdEntri = listMapProduk.stream()
} else if (first.isPresent() && CommonUtil.isNotNullOrEmpty(first.get().getHargaSatuan()) .filter(mproduk -> listIdMapPaket.contains(mproduk.getMapProdukPaketId()))
&& first.get().getHargaSatuan() > 0.0) { .map(MapProdukPaketToProduk::getProdukId).collect(Collectors.toList());
l.put("hargaJasa", first.get().getHargaSatuan()); List<Map<String, Object>> listDataUtama = dataExcludeUndone.stream()
} else { .filter(d -> CommonUtil.isNotNullOrEmpty(d.get("idVoucherDaftar"))
l.put("hargaJasa", 0.0); && setIdVoucherExcludeUndone.contains(d.get("idVoucherDaftar").toString())
} && listIdEntri.contains(Integer.parseInt(d.get("idProduk").toString())))
}); .collect(Collectors.toList());
result.addAll(layananKepalaPaket); Set<String> setIdPelayananUtama = listDataUtama.stream()
} .map(d -> d.get("idPelayananPasien").toString()).collect(Collectors.toSet());
{ List<Map<String, Object>> layananBadanPaket = dataExcludeUndone.stream()
/* .filter(d -> !setIdPelayananUtama.contains(d.get("idPelayananPasien").toString()))
* Transformasi data tindakan lain-lain .collect(Collectors.toList());
*/ List<String> concatIdProdukKelas = layananBadanPaket.stream()
List<MapProdukPaket> listPaketUtama = listMapPaket.stream() .map(l -> l.get("idProduk").toString() + l.get("idKelas").toString())
.filter(mpaket -> listIdPaketExcludeUndone.contains(mpaket.getPaketId()) .collect(Collectors.toList());
&& (TINDAKAN_UTAMA.equals(mpaket.getJenisMapping()) if (CommonUtil.isNotNullOrEmpty(concatIdProdukKelas)) {
|| VISITE_UTAMA.equals(mpaket.getJenisMapping()))) List<HargaNettoProdukByKelasD> listDetailTarif = hargaNettoProdukByKelasDDao
.collect(Collectors.toList()); .findByConcateProdukKelas(concatIdProdukKelas);
List<String> listIdMapPaket = listPaketUtama.stream().map(MapProdukPaket::getNoRec) Set<String> setNorecs = layananBadanPaket.stream()
.collect(Collectors.toList()); .map(l -> l.get("idPelayananPasien").toString()).collect(Collectors.toSet());
List<Integer> listIdEntri = listMapProduk.stream() List<Map<String, Object>> mappingBadanPaket = pelayananPasienDao.findByNorecs(setNorecs);
.filter(mproduk -> listIdMapPaket.contains(mproduk.getMapProdukPaketId())) layananBadanPaket.forEach(l -> {
.map(MapProdukPaketToProduk::getProdukId).collect(Collectors.toList()); Optional<Map<String, Object>> firstMap = mappingBadanPaket.stream()
List<Map<String, Object>> listDataUtama = dataExcludeUndone.stream() .filter(m -> l.get("idPelayananPasien").toString().equals(m.get("norec")))
.filter(d -> CommonUtil.isNotNullOrEmpty(d.get("idVoucherDaftar")) .findFirst();
&& setIdVoucherExcludeUndone.contains(d.get("idVoucherDaftar").toString()) if (firstMap.isPresent()) {
&& listIdEntri.contains(Integer.parseInt(d.get("idProduk").toString()))) if (DOKTER_PEMERIKSA.equals(l.get("idJenisPelaksana"))) {
.collect(Collectors.toList()); Optional<HargaNettoProdukByKelasD> first = listDetailTarif.stream()
Set<String> setIdPelayananUtama = listDataUtama.stream().map(d -> d.get("idPelayananPasien").toString()) .filter(t -> t.getProdukId().equals(firstMap.get().get("produkPaketId"))
.collect(Collectors.toSet()); && t.getKelasId().equals(l.get("idKelas"))
List<Map<String, Object>> layananBadanPaket = dataExcludeUndone.stream() && JASA_DOKTER.equals(t.getKomponenHargaId()))
.filter(d -> !setIdPelayananUtama.contains(d.get("idPelayananPasien").toString())) .findFirst();
.collect(Collectors.toList()); if (first.isPresent() && CommonUtil.isNotNullOrEmpty(first.get().getHargaNetto1())
List<String> concatIdProdukKelas = layananBadanPaket.stream() && first.get().getHargaNetto1() > 0.0) {
.map(l -> l.get("idProduk").toString() + l.get("idKelas").toString()).collect(Collectors.toList()); l.put("hargaJasa", first.get().getHargaNetto1());
List<HargaNettoProdukByKelasD> listDetailTarif = hargaNettoProdukByKelasDDao } else if (first.isPresent()
.findByConcateProdukKelas(concatIdProdukKelas); && CommonUtil.isNotNullOrEmpty(first.get().getHargaSatuan())
Set<String> setNorecs = layananBadanPaket.stream().map(l -> l.get("idPelayananPasien").toString()) && first.get().getHargaSatuan() > 0.0) {
.collect(Collectors.toSet()); l.put("hargaJasa", first.get().getHargaSatuan());
List<Map<String, Object>> mappingBadanPaket = pelayananPasienDao.findByNorecs(setNorecs); } else {
layananBadanPaket.forEach(l -> { l.put("hargaJasa", 0.0);
Optional<Map<String, Object>> firstMap = mappingBadanPaket.stream() }
.filter(m -> l.get("idPelayananPasien").toString().equals(m.get("norec"))).findFirst(); } else if (ASISTEN_SPESIALIS.equals(l.get("idJenisPelaksana"))) {
if (firstMap.isPresent()) { Optional<HargaNettoProdukByKelasD> first = listDetailTarif.stream()
if (DOKTER_PEMERIKSA.equals(l.get("idJenisPelaksana"))) { .filter(t -> t.getProdukId().equals(firstMap.get().get("produkPaketId"))
Optional<HargaNettoProdukByKelasD> first = listDetailTarif.stream() && t.getKelasId().equals(l.get("idKelas"))
.filter(t -> t.getProdukId().equals(firstMap.get().get("produkPaketId")) && JASA_ASISTEN_SPESIALIS.equals(t.getKomponenHargaId()))
&& t.getKelasId().equals(l.get("idKelas")) .findFirst();
&& JASA_DOKTER.equals(t.getKomponenHargaId())) if (first.isPresent() && CommonUtil.isNotNullOrEmpty(first.get().getHargaNetto1())
.findFirst(); && first.get().getHargaNetto1() > 0.0) {
if (first.isPresent() && CommonUtil.isNotNullOrEmpty(first.get().getHargaNetto1()) l.put("hargaJasa", first.get().getHargaNetto1());
&& first.get().getHargaNetto1() > 0.0) { } else if (first.isPresent()
l.put("hargaJasa", first.get().getHargaNetto1()); && CommonUtil.isNotNullOrEmpty(first.get().getHargaSatuan())
} else if (first.isPresent() && CommonUtil.isNotNullOrEmpty(first.get().getHargaSatuan()) && first.get().getHargaSatuan() > 0.0) {
&& first.get().getHargaSatuan() > 0.0) { l.put("hargaJasa", first.get().getHargaSatuan());
l.put("hargaJasa", first.get().getHargaSatuan()); } else {
} else { l.put("hargaJasa", 0.0);
l.put("hargaJasa", 0.0); }
} } else if (DOKTER_ANASTESI.equals(l.get("idJenisPelaksana"))) {
} else if (ASISTEN_SPESIALIS.equals(l.get("idJenisPelaksana"))) { Optional<HargaNettoProdukByKelasD> first = listDetailTarif.stream()
Optional<HargaNettoProdukByKelasD> first = listDetailTarif.stream() .filter(t -> t.getProdukId().equals(firstMap.get().get("produkPaketId"))
.filter(t -> t.getProdukId().equals(firstMap.get().get("produkPaketId")) && t.getKelasId().equals(l.get("idKelas"))
&& t.getKelasId().equals(l.get("idKelas")) && JASA_DOKTER_ANASTESI.equals(t.getKomponenHargaId()))
&& JASA_ASISTEN_SPESIALIS.equals(t.getKomponenHargaId())) .findFirst();
.findFirst(); if (first.isPresent() && CommonUtil.isNotNullOrEmpty(first.get().getHargaNetto1())
if (first.isPresent() && CommonUtil.isNotNullOrEmpty(first.get().getHargaNetto1()) && first.get().getHargaNetto1() > 0.0) {
&& first.get().getHargaNetto1() > 0.0) { l.put("hargaJasa", first.get().getHargaNetto1());
l.put("hargaJasa", first.get().getHargaNetto1()); } else if (first.isPresent()
} else if (first.isPresent() && CommonUtil.isNotNullOrEmpty(first.get().getHargaSatuan()) && CommonUtil.isNotNullOrEmpty(first.get().getHargaSatuan())
&& first.get().getHargaSatuan() > 0.0) { && first.get().getHargaSatuan() > 0.0) {
l.put("hargaJasa", first.get().getHargaSatuan()); l.put("hargaJasa", first.get().getHargaSatuan());
} else { } else {
l.put("hargaJasa", 0.0); l.put("hargaJasa", 0.0);
} }
} else if (DOKTER_ANASTESI.equals(l.get("idJenisPelaksana"))) { }
Optional<HargaNettoProdukByKelasD> first = listDetailTarif.stream() } else {
.filter(t -> t.getProdukId().equals(firstMap.get().get("produkPaketId")) l.put("hargaJasa", 0.0);
&& 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 { result.addAll(layananBadanPaket);
l.put("hargaJasa", 0.0);
} }
}); }
result.addAll(layananBadanPaket);
} }
return result; return result;
} }