From 45140a909d62c1094cc81d8d586a6a34bfaa78fa Mon Sep 17 00:00:00 2001 From: salmanoe Date: Mon, 9 Jan 2023 13:20:01 +0700 Subject: [PATCH] Update IndekKinerjaServiceImpl.java Penambahan aturan remunerasi dokter kk perinatologi --- .../medifirst2000/constants/Master.java | 1 + .../service/impl/IndekKinerjaServiceImpl.java | 384 ++++++++++++++++++ 2 files changed, 385 insertions(+) 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 96e49dae..18fcbc73 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 @@ -401,6 +401,7 @@ public class Master { public static final Integer KK_PATOLOGI_ANATOMI = 197; public static final Integer KK_PATOLOGI_KLINIK = 199; public static final Integer KK_PEDIATRIK_GD = 244; + public static final Integer KK_PERINATOLOGI = 217; public static final Integer KK_RADIOLOGI = 203; public static final Integer KK_UMUM = 222; public static final Integer SUBBAG_KESEJAHTERAAN = 26; diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/IndekKinerjaServiceImpl.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/IndekKinerjaServiceImpl.java index 89fbdfbc..de8cc54f 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/IndekKinerjaServiceImpl.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/IndekKinerjaServiceImpl.java @@ -2706,6 +2706,7 @@ public class IndekKinerjaServiceImpl extends BaseVoServiceImpl implements IndekK List drAnastesiList = pegawaiDao.getDokterByKelompokKerja(Master.SubUnitKerja.KK_ANESTESI); List drKsmUmumList = pegawaiDao.getDokterByKelompokKerja(Master.SubUnitKerja.KK_UMUM); List drKkPediatrikGDList = pegawaiDao.getDokterByKelompokKerja(Master.SubUnitKerja.KK_PEDIATRIK_GD); + List drKkPerinatologiList = pegawaiDao.getDokterByKelompokKerja(Master.SubUnitKerja.KK_PERINATOLOGI); List laboranRadiologList = mapPegawaiLaboratRadiologiDao.findPegawaiLaboranRadiolog(); List idsRegDJPAdminNonPK = splitDataSettingDatafixed("admin_nonpk"); @@ -2734,6 +2735,7 @@ public class IndekKinerjaServiceImpl extends BaseVoServiceImpl implements IndekK List idsDokterUmumIGD = splitDataSettingDatafixed("pr_dokter_umum_igd"); List idsDokterPediatrikGD = splitDataSettingDatafixed("pr_dokter_pediatrik_gd"); + List idsDokterPerinatologi = splitDataSettingDatafixed("pr_dokter_perinatologi"); List idsPenunjangBukanAnestesi = splitDataSettingDatafixed("pr_penunjang_nonanestesi"); Double komponenDasar = Double.parseDouble(GetSettingDataFixed("ld_komponen_dasar")); Double persenOperator = Double.parseDouble(GetSettingDataFixed("ld_persen_operator")); @@ -2953,6 +2955,97 @@ public class IndekKinerjaServiceImpl extends BaseVoServiceImpl implements IndekK datePulang = datePulang.plusDays(1); } + if (Arrays.asList(Master.Departemen.GRUP_RAWAT_INAP) + .contains(Integer.parseInt(map.get("departemenId").toString())) + && ((dateTimePelayanan.isEqual(dateMasuk) || dateTimePelayanan.isAfter(dateMasuk)) + && dateTimePelayanan.isBefore(datePulang))) { + rawResult.add(map); + } else if (map.get("departemenId").equals(Master.Departemen.RAWAT_INAP) + && !Arrays.asList(Master.Ruangan.NONRANAP).contains(map.get("ruanganId")) + && Arrays.stream(Master.KONSUL_VISIT) + .anyMatch(map.get("namaProduk").toString().toLowerCase()::contains) + && (dateTimePelayanan.isBefore(dateMasuk) || dateTimePelayanan.isEqual(datePulang) + || dateTimePelayanan.isAfter(datePulang))) { + rawResult.add(map); + } else if (Arrays.asList(Master.Departemen.GRUP_RAWAT_INAP) + .contains(Integer.parseInt(map.get("departemenId").toString())) + && (dateTimePelayanan.isBefore(dateMasuk) || dateTimePelayanan.isEqual(datePulang) + || dateTimePelayanan.isAfter(datePulang)) + && Arrays.asList(Master.Kelas.KELAS_DUA_TIGA_NONKELAS) + .contains(Integer.parseInt(map.get("idKelas").toString()))) { + rawResult.add(map); + } else if (map.get("departemenId").equals(Master.Departemen.RAWAT_JALAN) + && map.get("namaShift").toString().equals("Non Shift") + && CommonUtil.isNotNullOrEmpty(jamPulangPSBB) + && (dateTimePelayanan.isEqual(PSBBDate) || dateTimePelayanan.isAfter(PSBBDate)) + && (dateTimePelayanan.isBefore(PSBBEnd) || dateTimePelayanan.isEqual(PSBBEnd))) { + if (((dateTimePelayanan.isEqual(dateMasuk) || dateTimePelayanan.isAfter(dateMasuk)) + && dateTimePelayanan.isBefore(datePulangPSBB))) { + rawResult.add(map); + } + } else if (Arrays.asList(Master.Departemen.GRUP_RAWAT_JALAN) + .contains(Integer.parseInt(map.get("departemenId").toString())) + && ((dateTimePelayanan.isEqual(dateMasuk) || dateTimePelayanan.isAfter(dateMasuk)) + && dateTimePelayanan.isBefore(datePulang))) { + rawResult.add(map); + } + } else if (CommonUtil.isNullOrEmpty(map.get("jamMasuk")) + && Arrays.asList(Master.Departemen.GRUP_RAWAT_INAP) + .contains(Integer.parseInt(map.get("departemenId").toString())) + && Arrays.asList(Master.Kelas.KELAS_DUA_TIGA_NONKELAS) + .contains(Integer.parseInt(map.get("idKelas").toString()))) { + rawResult.add(map); + } + + } else if (!listDetailJenisProduk.contains(Integer.parseInt(map.get("detailId").toString())) + && drKkPerinatologiList.contains(idPegawai) + && idsDokterPerinatologi.contains(Integer.parseInt(map.get("idProduk").toString()))) { + if (Master.KelompokPasien.BPJS.equals(Integer.parseInt(map.get("kelompokPasienId").toString())) + || Master.KelompokPasien.KEMENKES + .equals(Integer.parseInt(map.get("kelompokPasienId").toString())) + || Master.KelompokPasien.JAMKESDA + .equals(Integer.parseInt(map.get("kelompokPasienId").toString()))) { + rawResult.add(map); + } else if (CommonUtil.isNotNullOrEmpty(map.get("jamMasuk"))) { + Date tanggalPelayanan = (Date) map.get("tanggalPelayanan"); + String tglPelayanan = new SimpleDateFormat("yyyy-MM-dd").format(tanggalPelayanan); + String waktuPelayanan = new SimpleDateFormat("HH:mm:ss").format(tanggalPelayanan); + LocalDate datePelayanan = LocalDate.parse(tglPelayanan); + LocalTime timePelayanan = LocalTime.parse(waktuPelayanan); + LocalDateTime dateTimePelayanan = LocalDateTime.of(datePelayanan, timePelayanan); + + String jamMasuk = map.get("jamMasuk").toString().substring(0, 2) + ":" + + map.get("jamMasuk").toString().substring(3) + ":00"; + LocalTime timeMasuk = LocalTime.parse(jamMasuk); + LocalDateTime dateMasuk = LocalDateTime.of(datePelayanan, timeMasuk); + + String jamPulang = map.get("jamPulang").toString().substring(0, 2) + ":" + + map.get("jamPulang").toString().substring(3) + ":00"; + LocalTime timePulang = LocalTime.parse(jamPulang); + LocalDateTime datePulang = LocalDateTime.of(datePelayanan, timePulang); + + String jamPulangPSBB = ""; + LocalTime timePulangPSBB = LocalTime.now(); + LocalDateTime datePulangPSBB = LocalDateTime.now(); + if (getDayOfWeek((Date) map.get("tanggalPelayanan")) == 1 + || getDayOfWeek((Date) map.get("tanggalPelayanan")) == 2 + || getDayOfWeek((Date) map.get("tanggalPelayanan")) == 3 + || getDayOfWeek((Date) map.get("tanggalPelayanan")) == 4) { + jamPulangPSBB = "14:00:00"; + timePulangPSBB = LocalTime.parse(jamPulangPSBB); + datePulangPSBB = LocalDateTime.of(datePelayanan, timePulangPSBB); + } else if (getDayOfWeek((Date) map.get("tanggalPelayanan")) == 5) { + jamPulangPSBB = "14:30:00"; + timePulangPSBB = LocalTime.parse(jamPulangPSBB); + datePulangPSBB = LocalDateTime.of(datePelayanan, timePulangPSBB); + } else { + datePulangPSBB = LocalDateTime.of(datePelayanan, timePulang); + } + + if (map.get("namaShift").toString().contains("Malam")) { + datePulang = datePulang.plusDays(1); + } + if (Arrays.asList(Master.Departemen.GRUP_RAWAT_INAP) .contains(Integer.parseInt(map.get("departemenId").toString())) && ((dateTimePelayanan.isEqual(dateMasuk) || dateTimePelayanan.isAfter(dateMasuk)) @@ -3957,6 +4050,7 @@ public class IndekKinerjaServiceImpl extends BaseVoServiceImpl implements IndekK List drAnastesiList = pegawaiDao.getDokterByKelompokKerja(Master.SubUnitKerja.KK_ANESTESI); List drKsmUmumList = pegawaiDao.getDokterByKelompokKerja(Master.SubUnitKerja.KK_UMUM); List drKkPediatrikGDList = pegawaiDao.getDokterByKelompokKerja(Master.SubUnitKerja.KK_PEDIATRIK_GD); + List drKkPerinatologiList = pegawaiDao.getDokterByKelompokKerja(Master.SubUnitKerja.KK_PERINATOLOGI); List laboranRadiologList = mapPegawaiLaboratRadiologiDao.findPegawaiLaboranRadiolog(); List idsRegDJPAdminNonPK = splitDataSettingDatafixed("admin_nonpk"); @@ -3985,6 +4079,7 @@ public class IndekKinerjaServiceImpl extends BaseVoServiceImpl implements IndekK List idsDokterUmumIGD = splitDataSettingDatafixed("pr_dokter_umum_igd"); List idsDokterPediatrikGD = splitDataSettingDatafixed("pr_dokter_pediatrik_gd"); + List idsDokterPerinatologi = splitDataSettingDatafixed("pr_dokter_perinatologi"); List idsPenunjangBukanAnestesi = splitDataSettingDatafixed("pr_penunjang_nonanestesi"); Double komponenDasar = Double.parseDouble(GetSettingDataFixed("ld_komponen_dasar")); Double persenOperator = Double.parseDouble(GetSettingDataFixed("ld_persen_operator")); @@ -4205,6 +4300,96 @@ public class IndekKinerjaServiceImpl extends BaseVoServiceImpl implements IndekK datePulang = datePulang.plusDays(1); } + if (Arrays.asList(Master.Departemen.GRUP_RAWAT_INAP) + .contains(Integer.parseInt(map.get("departemenId").toString())) + && ((dateTimePelayanan.isEqual(dateMasuk) || dateTimePelayanan.isAfter(dateMasuk)) + && dateTimePelayanan.isBefore(datePulang))) { + rawResult.add(map); + } else if (map.get("departemenId").equals(Master.Departemen.RAWAT_INAP) + && !Arrays.asList(Master.Ruangan.NONRANAP).contains(map.get("ruanganId")) + && Arrays.stream(Master.KONSUL_VISIT) + .anyMatch(map.get("namaProduk").toString().toLowerCase()::contains) + && (dateTimePelayanan.isBefore(dateMasuk) || dateTimePelayanan.isEqual(datePulang) + || dateTimePelayanan.isAfter(datePulang))) { + rawResult.add(map); + } else if (Arrays.asList(Master.Departemen.GRUP_RAWAT_INAP) + .contains(Integer.parseInt(map.get("departemenId").toString())) + && (dateTimePelayanan.isBefore(dateMasuk) || dateTimePelayanan.isEqual(datePulang) + || dateTimePelayanan.isAfter(datePulang)) + && Arrays.asList(Master.Kelas.KELAS_DUA_TIGA_NONKELAS) + .contains(Integer.parseInt(map.get("idKelas").toString()))) { + rawResult.add(map); + } else if (map.get("departemenId").equals(Master.Departemen.RAWAT_JALAN) + && map.get("namaShift").toString().equals("Non Shift") + && CommonUtil.isNotNullOrEmpty(jamPulangPSBB) + && (dateTimePelayanan.isEqual(PSBBDate) || dateTimePelayanan.isAfter(PSBBDate)) + && (dateTimePelayanan.isBefore(PSBBEnd) || dateTimePelayanan.isEqual(PSBBEnd))) { + if (((dateTimePelayanan.isEqual(dateMasuk) || dateTimePelayanan.isAfter(dateMasuk)) + && dateTimePelayanan.isBefore(datePulangPSBB))) { + rawResult.add(map); + } + } else if (Arrays.asList(Master.Departemen.GRUP_RAWAT_JALAN) + .contains(Integer.parseInt(map.get("departemenId").toString())) + && ((dateTimePelayanan.isEqual(dateMasuk) || dateTimePelayanan.isAfter(dateMasuk)) + && dateTimePelayanan.isBefore(datePulang))) { + rawResult.add(map); + } + } else if (CommonUtil.isNullOrEmpty(map.get("jamMasuk")) + && Arrays.asList(Master.Departemen.GRUP_RAWAT_INAP) + .contains(Integer.parseInt(map.get("departemenId").toString())) + && Arrays.asList(Master.Kelas.KELAS_DUA_TIGA_NONKELAS) + .contains(Integer.parseInt(map.get("idKelas").toString()))) { + rawResult.add(map); + } + } else if (!listDetailJenisProduk.contains(Integer.parseInt(map.get("detailId").toString())) + && drKkPerinatologiList.contains(idPegawai) + && idsDokterPerinatologi.contains(Integer.parseInt(map.get("idProduk").toString()))) { + if (Master.KelompokPasien.BPJS.equals(Integer.parseInt(map.get("kelompokPasienId").toString())) + || Master.KelompokPasien.KEMENKES + .equals(Integer.parseInt(map.get("kelompokPasienId").toString())) + || Master.KelompokPasien.JAMKESDA + .equals(Integer.parseInt(map.get("kelompokPasienId").toString()))) { + rawResult.add(map); + } else if (CommonUtil.isNotNullOrEmpty(map.get("jamMasuk"))) { + Date tanggalPelayanan = (Date) map.get("tanggalPelayanan"); + String tglPelayanan = new SimpleDateFormat("yyyy-MM-dd").format(tanggalPelayanan); + String waktuPelayanan = new SimpleDateFormat("HH:mm:ss").format(tanggalPelayanan); + LocalDate datePelayanan = LocalDate.parse(tglPelayanan); + LocalTime timePelayanan = LocalTime.parse(waktuPelayanan); + LocalDateTime dateTimePelayanan = LocalDateTime.of(datePelayanan, timePelayanan); + + String jamMasuk = map.get("jamMasuk").toString().substring(0, 2) + ":" + + map.get("jamMasuk").toString().substring(3) + ":00"; + LocalTime timeMasuk = LocalTime.parse(jamMasuk); + LocalDateTime dateMasuk = LocalDateTime.of(datePelayanan, timeMasuk); + + String jamPulang = map.get("jamPulang").toString().substring(0, 2) + ":" + + map.get("jamPulang").toString().substring(3) + ":00"; + LocalTime timePulang = LocalTime.parse(jamPulang); + LocalDateTime datePulang = LocalDateTime.of(datePelayanan, timePulang); + + String jamPulangPSBB = ""; + LocalTime timePulangPSBB = LocalTime.now(); + LocalDateTime datePulangPSBB = LocalDateTime.now(); + if (getDayOfWeek((Date) map.get("tanggalPelayanan")) == 1 + || getDayOfWeek((Date) map.get("tanggalPelayanan")) == 2 + || getDayOfWeek((Date) map.get("tanggalPelayanan")) == 3 + || getDayOfWeek((Date) map.get("tanggalPelayanan")) == 4) { + jamPulangPSBB = "14:00:00"; + timePulangPSBB = LocalTime.parse(jamPulangPSBB); + datePulangPSBB = LocalDateTime.of(datePelayanan, timePulangPSBB); + } else if (getDayOfWeek((Date) map.get("tanggalPelayanan")) == 5) { + jamPulangPSBB = "14:30:00"; + timePulangPSBB = LocalTime.parse(jamPulangPSBB); + datePulangPSBB = LocalDateTime.of(datePelayanan, timePulangPSBB); + } else { + datePulangPSBB = LocalDateTime.of(datePelayanan, timePulang); + } + + if (map.get("namaShift").toString().contains("Malam")) { + datePulang = datePulang.plusDays(1); + } + if (Arrays.asList(Master.Departemen.GRUP_RAWAT_INAP) .contains(Integer.parseInt(map.get("departemenId").toString())) && ((dateTimePelayanan.isEqual(dateMasuk) || dateTimePelayanan.isAfter(dateMasuk)) @@ -5113,6 +5298,7 @@ public class IndekKinerjaServiceImpl extends BaseVoServiceImpl implements IndekK List laboranRadiologList = mapPegawaiLaboratRadiologiDao.findPegawaiLaboranRadiolog(); List drKsmUmumList = pegawaiDao.getDokterByKelompokKerja(Master.SubUnitKerja.KK_UMUM); List drKkPediatrikGDList = pegawaiDao.getDokterByKelompokKerja(Master.SubUnitKerja.KK_PEDIATRIK_GD); + List drKkPerinatologiList = pegawaiDao.getDokterByKelompokKerja(Master.SubUnitKerja.KK_PERINATOLOGI); List idsRegDJPAdminNonPK = splitDataSettingDatafixed("admin_nonpk"); List idsRegDJPMedisUtama = splitDataSettingDatafixed("medis_utama"); @@ -5145,6 +5331,7 @@ public class IndekKinerjaServiceImpl extends BaseVoServiceImpl implements IndekK List idsDokterUmumIGD = splitDataSettingDatafixed("pr_dokter_umum_igd"); List idsDokterPediatrikGD = splitDataSettingDatafixed("pr_dokter_pediatrik_gd"); + List idsDokterPerinatologi = splitDataSettingDatafixed("pr_dokter_perinatologi"); if (!ffs) { if (CommonUtil.isNotNullOrEmpty(listData)) { @@ -5598,6 +5785,203 @@ public class IndekKinerjaServiceImpl extends BaseVoServiceImpl implements IndekK } } } + } else if (!listDetailJenisProduk.contains(Integer.parseInt(map.get("detailId").toString())) + && drKkPerinatologiList.contains(idPegawai) + && idsDokterPerinatologi.contains(Integer.parseInt(map.get("idProduk").toString()))) { + if (Master.KelompokPasien.BPJS + .equals(Integer.parseInt(map.get("kelompokPasienId").toString())) + || Master.KelompokPasien.KEMENKES + .equals(Integer.parseInt(map.get("kelompokPasienId").toString())) + || Master.KelompokPasien.JAMKESDA + .equals(Integer.parseInt(map.get("kelompokPasienId").toString()))) { + if (diskon > 0 && (CommonUtil.isNullOrEmpty(statusDiskon) || statusDiskon.equals(0))) { + if (Double.valueOf(map.get("diskon").toString()) > 0 + && (CommonUtil.isNullOrEmpty(map.get("statusDiskon")) + || Integer.valueOf(map.get("statusDiskon").toString()).equals(0))) { + result.add(map); + } + } else { + if (Double.valueOf(map.get("diskon").toString()) == 0 + || (Double.valueOf(map.get("diskon").toString()) > 0 + && CommonUtil.isNotNullOrEmpty(map.get("statusDiskon")) && !Integer + .valueOf(map.get("statusDiskon").toString()).equals(0))) { + result.add(map); + } + } + } else if (CommonUtil.isNotNullOrEmpty(map.get("jamMasuk"))) { + Date tanggalPelayanan = (Date) map.get("tanggalPelayanan"); + String tglPelayanan = new SimpleDateFormat("yyyy-MM-dd").format(tanggalPelayanan); + String waktuPelayanan = new SimpleDateFormat("HH:mm:ss").format(tanggalPelayanan); + LocalDate datePelayanan = LocalDate.parse(tglPelayanan); + LocalTime timePelayanan = LocalTime.parse(waktuPelayanan); + LocalDateTime dateTimePelayanan = LocalDateTime.of(datePelayanan, timePelayanan); + + String jamMasuk = map.get("jamMasuk").toString().substring(0, 2) + ":" + + map.get("jamMasuk").toString().substring(3) + ":00"; + LocalTime timeMasuk = LocalTime.parse(jamMasuk); + LocalDateTime dateMasuk = LocalDateTime.of(datePelayanan, timeMasuk); + + String jamPulang = map.get("jamPulang").toString().substring(0, 2) + ":" + + map.get("jamPulang").toString().substring(3) + ":00"; + LocalTime timePulang = LocalTime.parse(jamPulang); + LocalDateTime datePulang = LocalDateTime.of(datePelayanan, timePulang); + + String jamPulangPSBB = ""; + LocalTime timePulangPSBB = LocalTime.now(); + LocalDateTime datePulangPSBB = LocalDateTime.now(); + if (getDayOfWeek((Date) map.get("tanggalPelayanan")) == 1 + || getDayOfWeek((Date) map.get("tanggalPelayanan")) == 2 + || getDayOfWeek((Date) map.get("tanggalPelayanan")) == 3 + || getDayOfWeek((Date) map.get("tanggalPelayanan")) == 4) { + jamPulangPSBB = "14:00:00"; + timePulangPSBB = LocalTime.parse(jamPulangPSBB); + datePulangPSBB = LocalDateTime.of(datePelayanan, timePulangPSBB); + } else if (getDayOfWeek((Date) map.get("tanggalPelayanan")) == 5) { + jamPulangPSBB = "14:30:00"; + timePulangPSBB = LocalTime.parse(jamPulangPSBB); + datePulangPSBB = LocalDateTime.of(datePelayanan, timePulangPSBB); + } else { + datePulangPSBB = LocalDateTime.of(datePelayanan, timePulang); + } + + if (map.get("namaShift").toString().contains("Malam")) { + datePulang = datePulang.plusDays(1); + } + + if (Arrays.asList(Master.Departemen.GRUP_RAWAT_INAP) + .contains(Integer.parseInt(map.get("departemenId").toString())) + && ((dateTimePelayanan.isEqual(dateMasuk) + || dateTimePelayanan.isAfter(dateMasuk)) + && dateTimePelayanan.isBefore(datePulang))) { + if (diskon > 0 + && (CommonUtil.isNullOrEmpty(statusDiskon) || statusDiskon.equals(0))) { + if (Double.valueOf(map.get("diskon").toString()) > 0 + && (CommonUtil.isNullOrEmpty(map.get("statusDiskon")) || Integer + .valueOf(map.get("statusDiskon").toString()).equals(0))) { + result.add(map); + } + } else { + if (Double.valueOf(map.get("diskon").toString()) == 0 + || (Double.valueOf(map.get("diskon").toString()) > 0 + && CommonUtil.isNotNullOrEmpty(map.get("statusDiskon")) + && !Integer.valueOf(map.get("statusDiskon").toString()) + .equals(0))) { + result.add(map); + } + } + } else if (map.get("departemenId").equals(Master.Departemen.RAWAT_INAP) + && !Arrays.asList(Master.Ruangan.NONRANAP).contains(map.get("ruanganId")) + && Arrays.stream(Master.KONSUL_VISIT) + .anyMatch(map.get("namaProduk").toString().toLowerCase()::contains) + && (dateTimePelayanan.isBefore(dateMasuk) + || dateTimePelayanan.isEqual(datePulang) + || dateTimePelayanan.isAfter(datePulang))) { + if (diskon > 0 + && (CommonUtil.isNullOrEmpty(statusDiskon) || statusDiskon.equals(0))) { + if (Double.valueOf(map.get("diskon").toString()) > 0 + && (CommonUtil.isNullOrEmpty(map.get("statusDiskon")) || Integer + .valueOf(map.get("statusDiskon").toString()).equals(0))) { + result.add(map); + } + } else { + if (Double.valueOf(map.get("diskon").toString()) == 0 + || (Double.valueOf(map.get("diskon").toString()) > 0 + && CommonUtil.isNotNullOrEmpty(map.get("statusDiskon")) + && !Integer.valueOf(map.get("statusDiskon").toString()) + .equals(0))) { + result.add(map); + } + } + } else if (Arrays.asList(Master.Departemen.GRUP_RAWAT_INAP) + .contains(Integer.parseInt(map.get("departemenId").toString())) + && (dateTimePelayanan.isBefore(dateMasuk) + || dateTimePelayanan.isEqual(datePulang) + || dateTimePelayanan.isAfter(datePulang)) + && Arrays.asList(Master.Kelas.KELAS_DUA_TIGA_NONKELAS) + .contains(Integer.parseInt(map.get("idKelas").toString()))) { + if (diskon > 0 + && (CommonUtil.isNullOrEmpty(statusDiskon) || statusDiskon.equals(0))) { + if (Double.valueOf(map.get("diskon").toString()) > 0 + && (CommonUtil.isNullOrEmpty(map.get("statusDiskon")) || Integer + .valueOf(map.get("statusDiskon").toString()).equals(0))) { + result.add(map); + } + } else { + if (Double.valueOf(map.get("diskon").toString()) == 0 + || (Double.valueOf(map.get("diskon").toString()) > 0 + && CommonUtil.isNotNullOrEmpty(map.get("statusDiskon")) + && !Integer.valueOf(map.get("statusDiskon").toString()) + .equals(0))) { + result.add(map); + } + } + } else if (map.get("departemenId").equals(Master.Departemen.RAWAT_JALAN) + && map.get("namaShift").toString().equals("Non Shift") + && CommonUtil.isNotNullOrEmpty(jamPulangPSBB) + && (dateTimePelayanan.isEqual(PSBBDate) || dateTimePelayanan.isAfter(PSBBDate)) + && (dateTimePelayanan.isBefore(PSBBEnd) + || dateTimePelayanan.isEqual(PSBBEnd))) { + if (((dateTimePelayanan.isEqual(dateMasuk) || dateTimePelayanan.isAfter(dateMasuk)) + && dateTimePelayanan.isBefore(datePulangPSBB))) { + if (diskon > 0 + && (CommonUtil.isNullOrEmpty(statusDiskon) || statusDiskon.equals(0))) { + if (Double.valueOf(map.get("diskon").toString()) > 0 + && (CommonUtil.isNullOrEmpty(map.get("statusDiskon")) || Integer + .valueOf(map.get("statusDiskon").toString()).equals(0))) { + result.add(map); + } + } else { + if (Double.valueOf(map.get("diskon").toString()) == 0 + || (Double.valueOf(map.get("diskon").toString()) > 0 + && CommonUtil.isNotNullOrEmpty(map.get("statusDiskon")) + && !Integer.valueOf(map.get("statusDiskon").toString()) + .equals(0))) { + result.add(map); + } + } + } + } else if (Arrays.asList(Master.Departemen.GRUP_RAWAT_JALAN) + .contains(Integer.parseInt(map.get("departemenId").toString())) + && ((dateTimePelayanan.isEqual(dateMasuk) + || dateTimePelayanan.isAfter(dateMasuk)) + && dateTimePelayanan.isBefore(datePulang))) { + if (diskon > 0 + && (CommonUtil.isNullOrEmpty(statusDiskon) || statusDiskon.equals(0))) { + if (Double.valueOf(map.get("diskon").toString()) > 0 + && (CommonUtil.isNullOrEmpty(map.get("statusDiskon")) || Integer + .valueOf(map.get("statusDiskon").toString()).equals(0))) { + result.add(map); + } + } else { + if (Double.valueOf(map.get("diskon").toString()) == 0 + || (Double.valueOf(map.get("diskon").toString()) > 0 + && CommonUtil.isNotNullOrEmpty(map.get("statusDiskon")) + && !Integer.valueOf(map.get("statusDiskon").toString()) + .equals(0))) { + result.add(map); + } + } + } + } else if (CommonUtil.isNullOrEmpty(map.get("jamMasuk")) + && Arrays.asList(Master.Departemen.GRUP_RAWAT_INAP) + .contains(Integer.parseInt(map.get("departemenId").toString())) + && Arrays.asList(Master.Kelas.KELAS_DUA_TIGA_NONKELAS) + .contains(Integer.parseInt(map.get("idKelas").toString()))) { + if (diskon > 0 && (CommonUtil.isNullOrEmpty(statusDiskon) || statusDiskon.equals(0))) { + if (Double.valueOf(map.get("diskon").toString()) > 0 + && (CommonUtil.isNullOrEmpty(map.get("statusDiskon")) + || Integer.valueOf(map.get("statusDiskon").toString()).equals(0))) { + result.add(map); + } + } else { + if (Double.valueOf(map.get("diskon").toString()) == 0 + || (Double.valueOf(map.get("diskon").toString()) > 0 + && CommonUtil.isNotNullOrEmpty(map.get("statusDiskon")) && !Integer + .valueOf(map.get("statusDiskon").toString()).equals(0))) { + result.add(map); + } + } + } } else if (CommonUtil.isNotNullOrEmpty(listDetailJenisProdukException) && listDetailJenisProdukException .contains(Integer.parseInt(map.get("detailId").toString()))) {