diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/constants/Master.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/constants/Master.java index c89efa51..da90dc53 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/constants/Master.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/constants/Master.java @@ -170,6 +170,7 @@ public final class Master { public static final Integer KELAS_SATU = 3; public static final Integer[] KELAS_SATU_VIP = { 3, 5, 8, 21 }; public static final Integer NON_KELAS = 6; + public static final Integer NON_KELAS_EKSEKUTIF = 22; public static final Integer[] REF_KELAS_KAMAR = { 1, 2, 3, 5, 6, 8 }; } 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 57337018..d1f64363 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 @@ -197,7 +197,7 @@ public interface PelayananPasienDao extends JpaRepository> findPelayananPasienByPetugasAndPelayananPasien(@Param("pegawaiId") Integer idPegawai, @Param("norecs") List norecs); 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 6e24482e..818ef96c 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 @@ -38,6 +38,7 @@ import static com.jasamedika.medifirst2000.constants.Master.JenisProduk.OBAT_ALK import static com.jasamedika.medifirst2000.constants.Master.KONSUL_VISIT; import static com.jasamedika.medifirst2000.constants.Master.KategoryPegawai.DOKTER_LUAR; import static com.jasamedika.medifirst2000.constants.Master.Kelas.NON_KELAS; +import static com.jasamedika.medifirst2000.constants.Master.Kelas.NON_KELAS_EKSEKUTIF; import static com.jasamedika.medifirst2000.constants.Master.KelompokPasien.KELOMPOK_BPJS; import static com.jasamedika.medifirst2000.constants.Master.KelompokUser.TATA_REKENING; import static com.jasamedika.medifirst2000.constants.Master.KomponenHarga.*; @@ -1996,8 +1997,10 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel .map(d -> d.get("paketId").toString() + d.get("idKelas").toString()).collect(Collectors.toList())); allConcatProdukKelas.addAll(listData.stream().filter(d -> CommonUtil.isNotNullOrEmpty(d.get("idProduk"))) .map(d -> d.get("idProduk").toString() + d.get("idKelas").toString()).collect(Collectors.toList())); + List tarifDetailReguler = hargaNettoProdukByKelasDDao .findByConcateProdukKelas(allConcatProdukKelas); + List allConcatProdukNonkelas = listData.stream() .filter(d -> CommonUtil.isNotNullOrEmpty(d.get("regRefId"))) .map(d -> d.get("regRefId").toString() + NON_KELAS).collect(Collectors.toList()); @@ -2005,6 +2008,18 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel .map(d -> d.get("paketId").toString() + NON_KELAS).collect(Collectors.toList())); allConcatProdukNonkelas.addAll(listData.stream().filter(d -> CommonUtil.isNotNullOrEmpty(d.get("idProduk"))) .map(d -> d.get("idProduk").toString() + NON_KELAS).collect(Collectors.toList())); + + List allConcatProdukNonkelasEksekutif = listData.stream() + .filter(d -> CommonUtil.isNotNullOrEmpty(d.get("regRefId"))) + .map(d -> d.get("regRefId").toString() + NON_KELAS_EKSEKUTIF).collect(Collectors.toList()); + allConcatProdukNonkelasEksekutif.addAll(listData.stream().filter(d -> CommonUtil.isNotNullOrEmpty(d.get("paketId"))) + .map(d -> d.get("paketId").toString() + NON_KELAS_EKSEKUTIF).collect(Collectors.toList())); + allConcatProdukNonkelasEksekutif.addAll(listData.stream().filter(d -> CommonUtil.isNotNullOrEmpty(d.get("idProduk"))) + .map(d -> d.get("idProduk").toString() + NON_KELAS_EKSEKUTIF).collect(Collectors.toList())); + + allConcatProdukNonkelas.addAll(allConcatProdukNonkelasEksekutif); + + List tarifDetailNonKelas = hargaNettoProdukByKelasDDao .findByConcateProdukKelas(allConcatProdukNonkelas); Set> ibuPaketDiRanapByDokter = pelayananPasienDao.findPasienPaketDiRanapByDokter(drKsmObgyn, @@ -2054,7 +2069,7 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel } else { Optional byDetailTarifNonKelas = tarifDetailNonKelas.stream() .filter(dt -> dt.getProdukId().equals(d.get("paketId"))) - .filter(dt -> dt.getKelasId().equals(NON_KELAS)) + .filter(dt -> dt.getKelasId().equals(NON_KELAS) || dt.getKelasId().equals(NON_KELAS_EKSEKUTIF)) .filter(dt -> dt.getKomponenHargaId().equals(SPOG_OPERATOR)).findFirst(); byDetailTarifNonKelas.ifPresent(hargaNettoProdukByKelasD -> d.put("hargaJasa", CommonUtil.isNotNullOrEmpty(byDetailTarifNonKelas.get().getHargaNetto1()) @@ -2073,7 +2088,7 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel } else { Optional byDetailTarifNonKelas = tarifDetailNonKelas.stream() .filter(dt -> dt.getProdukId().equals(d.get("paketId"))) - .filter(dt -> dt.getKelasId().equals(NON_KELAS)) + .filter(dt -> dt.getKelasId().equals(NON_KELAS) || dt.getKelasId().equals(NON_KELAS_EKSEKUTIF)) .filter(dt -> dt.getKomponenHargaId().equals(SPOG_ASISTEN)).findFirst(); byDetailTarifNonKelas.ifPresent(hargaNettoProdukByKelasD -> d.put("hargaJasa", CommonUtil.isNotNullOrEmpty(byDetailTarifNonKelas.get().getHargaNetto1()) @@ -2091,7 +2106,7 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel } else { Optional byDetailTarifNonKelas = tarifDetailNonKelas.stream() .filter(dt -> dt.getProdukId().equals(d.get("idProduk"))) - .filter(dt -> dt.getKelasId().equals(NON_KELAS)) + .filter(dt -> dt.getKelasId().equals(NON_KELAS) || dt.getKelasId().equals(NON_KELAS_EKSEKUTIF)) .filter(dt -> dt.getKomponenHargaId().equals(JASA_DOKTER)).findFirst(); byDetailTarifNonKelas.ifPresent(hargaNettoProdukByKelasD -> d.put("hargaJasa", CommonUtil.isNotNullOrEmpty(byDetailTarifNonKelas.get().getHargaNetto1()) @@ -2109,7 +2124,7 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel } else { Optional byDetailTarifNonKelas = tarifDetailNonKelas.stream() .filter(dt -> dt.getProdukId().equals(d.get("idProduk"))) - .filter(dt -> dt.getKelasId().equals(NON_KELAS)) + .filter(dt -> dt.getKelasId().equals(NON_KELAS) || dt.getKelasId().equals(NON_KELAS_EKSEKUTIF)) .filter(dt -> dt.getKomponenHargaId().equals(JASA_ASISTEN_SPESIALIS)).findFirst(); byDetailTarifNonKelas.ifPresent(hargaNettoProdukByKelasD -> d.put("hargaJasa", CommonUtil.isNotNullOrEmpty(byDetailTarifNonKelas.get().getHargaNetto1()) @@ -2127,7 +2142,7 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel } else { Optional byDetailTarifNonKelas = tarifDetailNonKelas.stream() .filter(dt -> dt.getProdukId().equals(d.get("idProduk"))) - .filter(dt -> dt.getKelasId().equals(NON_KELAS)) + .filter(dt -> dt.getKelasId().equals(NON_KELAS) || dt.getKelasId().equals(NON_KELAS_EKSEKUTIF)) .filter(dt -> dt.getKomponenHargaId().equals(JASA_DOKTER_ANASTESI)).findFirst(); byDetailTarifNonKelas.ifPresent(hargaNettoProdukByKelasD -> d.put("hargaJasa", CommonUtil.isNotNullOrEmpty(byDetailTarifNonKelas.get().getHargaNetto1()) diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/RemunerasiServiceImpl.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/RemunerasiServiceImpl.java index dfa937ad..4bc9af74 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/RemunerasiServiceImpl.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/RemunerasiServiceImpl.java @@ -33,6 +33,7 @@ import static com.jasamedika.medifirst2000.constants.Master.GolonganProduk.KONSU import static com.jasamedika.medifirst2000.constants.Master.GolonganProduk.VISIT; import static com.jasamedika.medifirst2000.constants.Master.JenisPetugasPelaksana.*; import static com.jasamedika.medifirst2000.constants.Master.Kelas.NON_KELAS; +import static com.jasamedika.medifirst2000.constants.Master.Kelas.NON_KELAS_EKSEKUTIF; import static com.jasamedika.medifirst2000.constants.Master.KelompokPasien.KELOMPOK_BPJS; import static com.jasamedika.medifirst2000.constants.Master.KomponenHarga.*; import static com.jasamedika.medifirst2000.constants.Master.Profesi.TERAPI; @@ -1895,8 +1896,18 @@ public class RemunerasiServiceImpl extends BaseVoServiceImpl implements Remunera .map(d -> d.get("paketId").toString() + NON_KELAS).collect(Collectors.toList())); allConcatProdukNonkelas.addAll(listData.stream().filter(d -> CommonUtil.isNotNullOrEmpty(d.get("idProduk"))) .map(d -> d.get("idProduk").toString() + NON_KELAS).collect(Collectors.toList())); + + List allConcatProdukNonkelasEksekutif = listData.stream() + .filter(d -> CommonUtil.isNotNullOrEmpty(d.get("regRefId"))) + .map(d -> d.get("regRefId").toString() + NON_KELAS_EKSEKUTIF).collect(Collectors.toList()); + allConcatProdukNonkelasEksekutif.addAll(listData.stream().filter(d -> CommonUtil.isNotNullOrEmpty(d.get("paketId"))) + .map(d -> d.get("paketId").toString() + NON_KELAS_EKSEKUTIF).collect(Collectors.toList())); + allConcatProdukNonkelasEksekutif.addAll(listData.stream().filter(d -> CommonUtil.isNotNullOrEmpty(d.get("idProduk"))) + .map(d -> d.get("idProduk").toString() + NON_KELAS_EKSEKUTIF).collect(Collectors.toList())); //List tarifDetailNonKelas = hargaNettoProdukByKelasDDao.findByConcateProdukKelas(allConcatProdukNonkelas); // Ganti Versi batching + allConcatProdukNonkelas.addAll(allConcatProdukNonkelasEksekutif); + final int BATCH_SIZE_NB = Master.AppDefaultVariabel.RECURSIVE_BATCH; int totalNB = allConcatProdukNonkelas.size(); List tarifDetailNonKelas = new ArrayList<>(); @@ -1953,7 +1964,7 @@ public class RemunerasiServiceImpl extends BaseVoServiceImpl implements Remunera } else { Optional byDetailTarifNonKelas = tarifDetailNonKelas.stream() .filter(dt -> dt.getProdukId().equals(d.get("paketId"))) - .filter(dt -> dt.getKelasId().equals(NON_KELAS)) + .filter(dt -> dt.getKelasId().equals(NON_KELAS) || dt.getKelasId().equals(NON_KELAS_EKSEKUTIF)) .filter(dt -> dt.getKomponenHargaId().equals(SPOG_OPERATOR)).findFirst(); byDetailTarifNonKelas.ifPresent(hargaNettoProdukByKelasD -> d.put("hargaJasa", CommonUtil.isNotNullOrEmpty(byDetailTarifNonKelas.get().getHargaNetto1()) @@ -1972,7 +1983,7 @@ public class RemunerasiServiceImpl extends BaseVoServiceImpl implements Remunera } else { Optional byDetailTarifNonKelas = tarifDetailNonKelas.stream() .filter(dt -> dt.getProdukId().equals(d.get("paketId"))) - .filter(dt -> dt.getKelasId().equals(NON_KELAS)) + .filter(dt -> dt.getKelasId().equals(NON_KELAS) || dt.getKelasId().equals(NON_KELAS_EKSEKUTIF)) .filter(dt -> dt.getKomponenHargaId().equals(SPOG_ASISTEN)).findFirst(); byDetailTarifNonKelas.ifPresent(hargaNettoProdukByKelasD -> d.put("hargaJasa", CommonUtil.isNotNullOrEmpty(byDetailTarifNonKelas.get().getHargaNetto1()) @@ -1994,7 +2005,7 @@ public class RemunerasiServiceImpl extends BaseVoServiceImpl implements Remunera } else { Optional byDetailTarifNonKelas = tarifDetailNonKelas.stream() .filter(dt -> dt.getProdukId().equals(d.get("idProduk"))) - .filter(dt -> dt.getKelasId().equals(NON_KELAS)) + .filter(dt -> dt.getKelasId().equals(NON_KELAS) || dt.getKelasId().equals(NON_KELAS_EKSEKUTIF)) .filter(dt -> dt.getKomponenHargaId().equals(JASA_DOKTER)).findFirst(); byDetailTarifNonKelas.ifPresent(hargaNettoProdukByKelasD -> d.put("hargaJasa", CommonUtil.isNotNullOrEmpty(byDetailTarifNonKelas.get().getHargaNetto1()) @@ -2016,7 +2027,7 @@ public class RemunerasiServiceImpl extends BaseVoServiceImpl implements Remunera } else { Optional byDetailTarifNonKelas = tarifDetailNonKelas.stream() .filter(dt -> dt.getProdukId().equals(d.get("idProduk"))) - .filter(dt -> dt.getKelasId().equals(NON_KELAS)) + .filter(dt -> dt.getKelasId().equals(NON_KELAS) || dt.getKelasId().equals(NON_KELAS_EKSEKUTIF)) .filter(dt -> dt.getKomponenHargaId().equals(JASA_ASISTEN_SPESIALIS)).findFirst(); byDetailTarifNonKelas.ifPresent(hargaNettoProdukByKelasD -> d.put("hargaJasa", CommonUtil.isNotNullOrEmpty(byDetailTarifNonKelas.get().getHargaNetto1()) @@ -2038,7 +2049,7 @@ public class RemunerasiServiceImpl extends BaseVoServiceImpl implements Remunera } else { Optional byDetailTarifNonKelas = tarifDetailNonKelas.stream() .filter(dt -> dt.getProdukId().equals(d.get("idProduk"))) - .filter(dt -> dt.getKelasId().equals(NON_KELAS)) + .filter(dt -> dt.getKelasId().equals(NON_KELAS) || dt.getKelasId().equals(NON_KELAS_EKSEKUTIF)) .filter(dt -> dt.getKomponenHargaId().equals(JASA_DOKTER_ANASTESI)).findFirst(); byDetailTarifNonKelas.ifPresent(hargaNettoProdukByKelasD -> d.put("hargaJasa", CommonUtil.isNotNullOrEmpty(byDetailTarifNonKelas.get().getHargaNetto1())