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 cdb2daaa..826bec47 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 @@ -12,6 +12,7 @@ import org.springframework.stereotype.Repository; import java.util.Date; import java.util.List; import java.util.Map; +import java.util.Set; /** * Repository class for PelayananPasien @@ -279,9 +280,10 @@ public interface PelayananPasienDao extends JpaRepository> findPelayananPasienByTagihanPendaftaran(@Param("noRegistrasi") String noRegistrasi); List findByPasienDaftarPasienDaftarNoRecIn(List idDaftarList); @@ -292,6 +294,6 @@ public interface PelayananPasienDao extends JpaRepository> findPasienPaketDiRanapByDokter(@Param("listIdSpog") List listIdSpog, + Set> findPasienPaketDiRanapByDokter(@Param("listIdSpog") List listIdSpog, @Param("listProdukEntriId") List listProdukEntriId); } 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 cff247e0..b7ee6022 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 @@ -1572,15 +1572,7 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel private List> transformPelayananPaket(Integer idPegawai, String bulan, List> listData) { List drKsmObgyn = pegawaiDao.getDokterByKsm(KSM_OBGYN); - DateFormat df = new SimpleDateFormat("yyyy-MM"); SimpleDateFormat month = new SimpleDateFormat("MMM-yyyy", new Locale("in", "ID")); - Date date; - try { - date = df.parse(bulan); - } catch (ParseException e) { - throw new ServiceVOException(e.getMessage()); - } - Date tglAwal = DateUtil.startMonth(date); listData.forEach(d -> { if (CommonUtil.isNotNullOrEmpty(d.get("idSayatan"))) d.put("keterangan", "Dari " + (100.0 - Double.parseDouble(d.get("persenSayatan").toString())) @@ -1627,12 +1619,16 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel .map(d -> d.get("idProduk").toString() + NON_KELAS).collect(Collectors.toList())); List tarifDetailNonKelas = hargaNettoProdukByKelasDDao .findByConcateProdukKelas(allConcatProdukNonkelas); - List> ibuPaketDiRanapByDokter = pelayananPasienDao - .findPasienPaketDiRanapByDokter(drKsmObgyn, allProdukEntriId); + Set> ibuPaketDiRanapByDokter = pelayananPasienDao.findPasienPaketDiRanapByDokter(drKsmObgyn, + allProdukEntriId); Set setIdIbu = ibuPaketDiRanapByDokter.stream() .map(pasien -> Integer.parseInt(pasien.get("pasienId").toString())).collect(Collectors.toSet()); List> ibuAnak = pasienDao.findIdByIdOfIbu(setIdIbu); listData.forEach(d -> { + List listIdIbu = ibuAnak.stream().filter(bn -> Integer + .parseInt(d.get("pasienId").toString()) == Integer.parseInt(bn.get("idIbu").toString()) + || Integer.parseInt(d.get("pasienId").toString()) == Integer.parseInt(bn.get("idAnak").toString())) + .map(bn -> Integer.parseInt(bn.get("idIbu").toString())).collect(Collectors.toList()); List listIdAnak = ibuAnak.stream().filter(bn -> Integer .parseInt(d.get("pasienId").toString()) == Integer.parseInt(bn.get("idIbu").toString()) || Integer.parseInt(d.get("pasienId").toString()) == Integer.parseInt(bn.get("idAnak").toString())) @@ -1640,7 +1636,8 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel Optional> first = ibuPaketDiRanapByDokter.stream() .filter(paket -> Integer.parseInt(d.get("pasienId").toString()) == Integer .parseInt(paket.get("pasienId").toString()) - || listIdAnak.contains(Integer.parseInt(d.get("pasienId").toString()))) + || (listIdAnak.contains(Integer.parseInt(d.get("pasienId").toString())) + && listIdIbu.contains(Integer.parseInt(paket.get("pasienId").toString())))) .filter(paket -> CommonUtil.isNotNullOrEmpty(d.get("paketId")) && Integer .parseInt(d.get("paketId").toString()) == Integer.parseInt(paket.get("paketId").toString())) .findFirst(); @@ -1652,8 +1649,6 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel d.put("bulanPulangIbu", month.format((Date) first.get().get("tglKeluar"))); first.ifPresent(f -> d.put("isBatalPaket", f.get("isBatal"))); if (first.isPresent() && CommonUtil.isNotNullOrEmpty(first.get().get("tglKeluar")) - && (tglAwal.equals(first.get().get("tglKeluar")) - || ((Date) first.get().get("tglKeluar")).after(tglAwal)) && !PERAWAT.name().equals(d.get("paketType")) && !Boolean.parseBoolean(d.get("isBatalPaket").toString())) { d.put("tglPulangIbu", first.get().get("tglKeluar"));