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 404af4b4..96e49dae 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 @@ -334,6 +334,8 @@ public class Master { public static final Integer[] PENUNJANG_MURNI = { 39, 276 }; public static final Integer[] PERISTI = { 45, 75, 76, 463, 464 }; public static final Integer[] TANJUNG = { 72, 551 }; + + public static final Integer ICU = 328; public static final int KLINIK_FALSE_EMERGENCY = 309; public static final int KLINIK_GIGI_KARYAWAN = 702; @@ -398,6 +400,7 @@ public class Master { public static final Integer KK_FARMAKOLOGI = 205; 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_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 70d3842f..0c5862ac 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 @@ -2710,6 +2710,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 laboranRadiologList = mapPegawaiLaboratRadiologiDao.findPegawaiLaboranRadiolog(); List idsRegDJPAdminNonPK = splitDataSettingDatafixed("admin_nonpk"); @@ -2737,6 +2738,7 @@ public class IndekKinerjaServiceImpl extends BaseVoServiceImpl implements IndekK Master.JenisPetugasPelaksana.PETUGAS_PELAKSANA, periode); List idsDokterUmumIGD = splitDataSettingDatafixed("pr_dokter_umum_igd"); + List idsDokterPediatrikGD = splitDataSettingDatafixed("pr_dokter_pediatrik_gd"); List idsPenunjangBukanAnestesi = splitDataSettingDatafixed("pr_penunjang_nonanestesi"); Double komponenDasar = Double.parseDouble(GetSettingDataFixed("ld_komponen_dasar")); Double persenOperator = Double.parseDouble(GetSettingDataFixed("ld_persen_operator")); @@ -2771,93 +2773,100 @@ public class IndekKinerjaServiceImpl extends BaseVoServiceImpl implements IndekK if (idsRegDJPPenunjangPA.contains(Integer.parseInt(map.get("detailId").toString())) || idsRegDJPPenunjangPK.contains(Integer.parseInt(map.get("detailId").toString()))) { rawResult.add(map); - } else 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()))) { + } else if ((drKkPediatrikGDList.contains(idPegawai) + && idsDokterPediatrikGD.contains(Integer.parseInt(map.get("idProduk").toString())) + && Master.Ruangan.ICU.equals(map.get("ruanganId"))) + || (drKkPediatrikGDList.contains(idPegawai) && Arrays.stream(Master.KONSUL_VISIT) + .anyMatch(map.get("namaProduk").toString().toLowerCase()::contains))) { 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)) - && dateTimePelayanan.isBefore(datePulang))) { + } else if (!drKkPediatrikGDList.contains(idPegawai)) { + 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 (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)) + } 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))) { + 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 (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())) && map.get("departemenId").equals(Master.Departemen.IGD) && drKsmUmumList.contains(idPegawai) @@ -2954,93 +2963,100 @@ public class IndekKinerjaServiceImpl extends BaseVoServiceImpl implements IndekK if (idsRegDJPPenunjangPA.contains(Integer.parseInt(map.get("detailId").toString())) || idsRegDJPPenunjangPK.contains(Integer.parseInt(map.get("detailId").toString()))) { rawResult.add(map); - } else 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()))) { + } else if ((drKkPediatrikGDList.contains(idPegawai) + && idsDokterPediatrikGD.contains(Integer.parseInt(map.get("idProduk").toString())) + && Master.Ruangan.ICU.equals(map.get("ruanganId"))) + || (drKkPediatrikGDList.contains(idPegawai) && Arrays.stream(Master.KONSUL_VISIT) + .anyMatch(map.get("namaProduk").toString().toLowerCase()::contains))) { 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)) - && dateTimePelayanan.isBefore(datePulang))) { + } else if (!drKkPediatrikGDList.contains(idPegawai)) { + 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 (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)) + } 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))) { + 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 (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); } } } @@ -3240,31 +3256,39 @@ public class IndekKinerjaServiceImpl extends BaseVoServiceImpl implements IndekK pointQty = point * totalProduk1.doubleValue(); formatPointQty = Double.parseDouble(df.format(pointQty)); -// if (Master.JenisPetugasPelaksana.DOKTER_PEMERIKSA -// .equals(mapResult1.get("idJenisPelaksana"))) { -// Optional nettoKomponen = detailHargaNettoDao.findHargetNetto1Komponen( -// Master.KomponenHarga.JASA_DOKTER, -// Integer.parseInt(mapResult1.get("idProduk").toString()), -// Integer.parseInt(mapResult1.get("idKelas").toString())); -// formatRpKontribusi = totalProduk1 -// * (nettoKomponen != null ? nettoKomponen.orElse(0.0) : 0.0); -// } else if (Master.JenisPetugasPelaksana.DOKTER_ANASTESI -// .equals(mapResult1.get("idJenisPelaksana"))) { -// Optional nettoKomponen = detailHargaNettoDao.findHargetNetto1Komponen( -// Master.KomponenHarga.JASA_DOKTER_ANASTESI, -// Integer.parseInt(mapResult1.get("idProduk").toString()), -// Integer.parseInt(mapResult1.get("idKelas").toString())); -// formatRpKontribusi = totalProduk1 -// * (nettoKomponen != null ? nettoKomponen.orElse(0.0) : 0.0); -// } else if (Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS -// .equals(mapResult1.get("idJenisPelaksana"))) { -// Optional nettoKomponen = detailHargaNettoDao.findHargetNetto1Komponen( -// Master.KomponenHarga.JASA_ASISTEN_SPESIALIS, -// Integer.parseInt(mapResult1.get("idProduk").toString()), -// Integer.parseInt(mapResult1.get("idKelas").toString())); -// formatRpKontribusi = totalProduk1 -// * (nettoKomponen != null ? nettoKomponen.orElse(0.0) : 0.0); -// } + // if (Master.JenisPetugasPelaksana.DOKTER_PEMERIKSA + // .equals(mapResult1.get("idJenisPelaksana"))) { + // Optional nettoKomponen = + // detailHargaNettoDao.findHargetNetto1Komponen( + // Master.KomponenHarga.JASA_DOKTER, + // Integer.parseInt(mapResult1.get("idProduk").toString()), + // Integer.parseInt(mapResult1.get("idKelas").toString())); + // formatRpKontribusi = totalProduk1 + // * (nettoKomponen != null ? + // nettoKomponen.orElse(0.0) : 0.0); + // } else if + // (Master.JenisPetugasPelaksana.DOKTER_ANASTESI + // .equals(mapResult1.get("idJenisPelaksana"))) { + // Optional nettoKomponen = + // detailHargaNettoDao.findHargetNetto1Komponen( + // Master.KomponenHarga.JASA_DOKTER_ANASTESI, + // Integer.parseInt(mapResult1.get("idProduk").toString()), + // Integer.parseInt(mapResult1.get("idKelas").toString())); + // formatRpKontribusi = totalProduk1 + // * (nettoKomponen != null ? + // nettoKomponen.orElse(0.0) : 0.0); + // } else if + // (Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS + // .equals(mapResult1.get("idJenisPelaksana"))) { + // Optional nettoKomponen = + // detailHargaNettoDao.findHargetNetto1Komponen( + // Master.KomponenHarga.JASA_ASISTEN_SPESIALIS, + // Integer.parseInt(mapResult1.get("idProduk").toString()), + // Integer.parseInt(mapResult1.get("idKelas").toString())); + // formatRpKontribusi = totalProduk1 + // * (nettoKomponen != null ? + // nettoKomponen.orElse(0.0) : 0.0); + // } mapResult1.put("totalKonsul", totalKonsul1.longValue()); mapResult1.put("totalVisit", totalVisit1.longValue()); @@ -3332,31 +3356,39 @@ public class IndekKinerjaServiceImpl extends BaseVoServiceImpl implements IndekK pointQty = point * totalProduk2.doubleValue(); formatPointQty = Double.parseDouble(df.format(pointQty)); -// if (Master.JenisPetugasPelaksana.DOKTER_PEMERIKSA -// .equals(mapResult2.get("idJenisPelaksana"))) { -// Optional nettoKomponen = detailHargaNettoDao.findHargetNetto1Komponen( -// Master.KomponenHarga.JASA_DOKTER, -// Integer.parseInt(mapResult2.get("idProduk").toString()), -// Integer.parseInt(mapResult2.get("idKelas").toString())); -// formatRpKontribusi = totalProduk2 -// * (nettoKomponen != null ? nettoKomponen.orElse(0.0) : 0.0); -// } else if (Master.JenisPetugasPelaksana.DOKTER_ANASTESI -// .equals(mapResult2.get("idJenisPelaksana"))) { -// Optional nettoKomponen = detailHargaNettoDao.findHargetNetto1Komponen( -// Master.KomponenHarga.JASA_DOKTER_ANASTESI, -// Integer.parseInt(mapResult2.get("idProduk").toString()), -// Integer.parseInt(mapResult2.get("idKelas").toString())); -// formatRpKontribusi = totalProduk2 -// * (nettoKomponen != null ? nettoKomponen.orElse(0.0) : 0.0); -// } else if (Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS -// .equals(mapResult2.get("idJenisPelaksana"))) { -// Optional nettoKomponen = detailHargaNettoDao.findHargetNetto1Komponen( -// Master.KomponenHarga.JASA_ASISTEN_SPESIALIS, -// Integer.parseInt(mapResult2.get("idProduk").toString()), -// Integer.parseInt(mapResult2.get("idKelas").toString())); -// formatRpKontribusi = totalProduk2 -// * (nettoKomponen != null ? nettoKomponen.orElse(0.0) : 0.0); -// } + // if (Master.JenisPetugasPelaksana.DOKTER_PEMERIKSA + // .equals(mapResult2.get("idJenisPelaksana"))) { + // Optional nettoKomponen = + // detailHargaNettoDao.findHargetNetto1Komponen( + // Master.KomponenHarga.JASA_DOKTER, + // Integer.parseInt(mapResult2.get("idProduk").toString()), + // Integer.parseInt(mapResult2.get("idKelas").toString())); + // formatRpKontribusi = totalProduk2 + // * (nettoKomponen != null ? + // nettoKomponen.orElse(0.0) : 0.0); + // } else if + // (Master.JenisPetugasPelaksana.DOKTER_ANASTESI + // .equals(mapResult2.get("idJenisPelaksana"))) { + // Optional nettoKomponen = + // detailHargaNettoDao.findHargetNetto1Komponen( + // Master.KomponenHarga.JASA_DOKTER_ANASTESI, + // Integer.parseInt(mapResult2.get("idProduk").toString()), + // Integer.parseInt(mapResult2.get("idKelas").toString())); + // formatRpKontribusi = totalProduk2 + // * (nettoKomponen != null ? + // nettoKomponen.orElse(0.0) : 0.0); + // } else if + // (Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS + // .equals(mapResult2.get("idJenisPelaksana"))) { + // Optional nettoKomponen = + // detailHargaNettoDao.findHargetNetto1Komponen( + // Master.KomponenHarga.JASA_ASISTEN_SPESIALIS, + // Integer.parseInt(mapResult2.get("idProduk").toString()), + // Integer.parseInt(mapResult2.get("idKelas").toString())); + // formatRpKontribusi = totalProduk2 + // * (nettoKomponen != null ? + // nettoKomponen.orElse(0.0) : 0.0); + // } mapResult2.put("totalKonsul", totalKonsul2.longValue()); mapResult2.put("totalVisit", totalVisit2.longValue()); @@ -3893,6 +3925,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 laboranRadiologList = mapPegawaiLaboratRadiologiDao.findPegawaiLaboranRadiolog(); List idsRegDJPAdminNonPK = splitDataSettingDatafixed("admin_nonpk"); @@ -3920,6 +3953,7 @@ public class IndekKinerjaServiceImpl extends BaseVoServiceImpl implements IndekK Master.JenisPetugasPelaksana.PETUGAS_PELAKSANA, periode); List idsDokterUmumIGD = splitDataSettingDatafixed("pr_dokter_umum_igd"); + List idsDokterPediatrikGD = splitDataSettingDatafixed("pr_dokter_pediatrik_gd"); List idsPenunjangBukanAnestesi = splitDataSettingDatafixed("pr_penunjang_nonanestesi"); Double komponenDasar = Double.parseDouble(GetSettingDataFixed("ld_komponen_dasar")); Double persenOperator = Double.parseDouble(GetSettingDataFixed("ld_persen_operator")); @@ -3947,100 +3981,108 @@ public class IndekKinerjaServiceImpl extends BaseVoServiceImpl implements IndekK persenCooperator = 20.0; } + // LOGIC_RULES_REMUN if (CommonUtil.isNotNullOrEmpty(listData)) { for (Map map : listData) { if (listDetailJenisProduk.contains(Integer.parseInt(map.get("detailId").toString()))) { if (idsRegDJPPenunjangPA.contains(Integer.parseInt(map.get("detailId").toString())) || idsRegDJPPenunjangPK.contains(Integer.parseInt(map.get("detailId").toString()))) { rawResult.add(map); - } else 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()))) { + } else if ((drKkPediatrikGDList.contains(idPegawai) + && idsDokterPediatrikGD.contains(Integer.parseInt(map.get("idProduk").toString())) + && Master.Ruangan.ICU.equals(map.get("ruanganId"))) + || (drKkPediatrikGDList.contains(idPegawai) && Arrays.stream(Master.KONSUL_VISIT) + .anyMatch(map.get("namaProduk").toString().toLowerCase()::contains))) { 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)) - && dateTimePelayanan.isBefore(datePulang))) { + } else if (!drKkPediatrikGDList.contains(idPegawai)) { + 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 (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)) + } 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))) { + 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) + || dateTimePelayanan.isEqual(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 (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) - || dateTimePelayanan.isEqual(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())) && map.get("departemenId").equals(Master.Departemen.IGD) && drKsmUmumList.contains(idPegawai) @@ -4137,93 +4179,100 @@ public class IndekKinerjaServiceImpl extends BaseVoServiceImpl implements IndekK if (idsRegDJPPenunjangPA.contains(Integer.parseInt(map.get("detailId").toString())) || idsRegDJPPenunjangPK.contains(Integer.parseInt(map.get("detailId").toString()))) { rawResult.add(map); - } else 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()))) { + } else if ((drKkPediatrikGDList.contains(idPegawai) + && idsDokterPediatrikGD.contains(Integer.parseInt(map.get("idProduk").toString())) + && Master.Ruangan.ICU.equals(map.get("ruanganId"))) + || (drKkPediatrikGDList.contains(idPegawai) && Arrays.stream(Master.KONSUL_VISIT) + .anyMatch(map.get("namaProduk").toString().toLowerCase()::contains))) { 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)) - && dateTimePelayanan.isBefore(datePulang))) { + } else if (!drKkPediatrikGDList.contains(idPegawai)) { + 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 (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.isAfter(datePulang) - || dateTimePelayanan.isAfter(datePulang)) + } 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))) { + 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.isAfter(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 (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); } } } @@ -4996,6 +5045,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 idsRegDJPAdminNonPK = splitDataSettingDatafixed("admin_nonpk"); List idsRegDJPMedisUtama = splitDataSettingDatafixed("medis_utama"); @@ -5027,6 +5077,7 @@ public class IndekKinerjaServiceImpl extends BaseVoServiceImpl implements IndekK } List idsDokterUmumIGD = splitDataSettingDatafixed("pr_dokter_umum_igd"); + List idsDokterPediatrikGD = splitDataSettingDatafixed("pr_dokter_pediatrik_gd"); if (!ffs) { if (CommonUtil.isNotNullOrEmpty(listData)) { @@ -5048,70 +5099,19 @@ public class IndekKinerjaServiceImpl extends BaseVoServiceImpl implements IndekK result.add(map); } } - } else 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))) { + } else if ((drKkPediatrikGDList.contains(idPegawai) + && idsDokterPediatrikGD.contains(Integer.parseInt(map.get("idProduk").toString())) + && Master.Ruangan.ICU.equals(map.get("ruanganId"))) + || (drKkPediatrikGDList.contains(idPegawai) && Arrays.stream(Master.KONSUL_VISIT) + .anyMatch(map.get("namaProduk").toString().toLowerCase()::contains))) { + result.add(map); + } else if (!drKkPediatrikGDList.contains(idPegawai)) { + 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")) @@ -5126,53 +5126,143 @@ public class IndekKinerjaServiceImpl extends BaseVoServiceImpl implements IndekK 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 (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 { - 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); - } + datePulangPSBB = LocalDateTime.of(datePelayanan, timePulang); } - } 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); - } + + if (map.get("namaShift").toString().contains("Malam")) { + datePulang = datePulang.plusDays(1); } - } 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 (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 @@ -5190,10 +5280,11 @@ public class IndekKinerjaServiceImpl extends BaseVoServiceImpl implements IndekK } } } - } 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))) { + } 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")) @@ -5209,25 +5300,6 @@ public class IndekKinerjaServiceImpl extends BaseVoServiceImpl implements IndekK } } } - } 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 (!listDetailJenisProduk.contains(Integer.parseInt(map.get("detailId").toString())) && map.get("departemenId").equals(Master.Departemen.IGD) @@ -5432,70 +5504,19 @@ public class IndekKinerjaServiceImpl extends BaseVoServiceImpl implements IndekK result.add(map); } } - } else 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))) { + } else if ((drKkPediatrikGDList.contains(idPegawai) + && idsDokterPediatrikGD.contains(Integer.parseInt(map.get("idProduk").toString())) + && Master.Ruangan.ICU.equals(map.get("ruanganId"))) + || (drKkPediatrikGDList.contains(idPegawai) && Arrays.stream(Master.KONSUL_VISIT) + .anyMatch(map.get("namaProduk").toString().toLowerCase()::contains))) { + result.add(map); + } else if (!drKkPediatrikGDList.contains(idPegawai)) { + 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")) @@ -5510,53 +5531,143 @@ public class IndekKinerjaServiceImpl extends BaseVoServiceImpl implements IndekK 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 (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 { - 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); - } + datePulangPSBB = LocalDateTime.of(datePelayanan, timePulang); } - } 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); - } + + if (map.get("namaShift").toString().contains("Malam")) { + datePulang = datePulang.plusDays(1); } - } 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 (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 @@ -5574,10 +5685,11 @@ public class IndekKinerjaServiceImpl extends BaseVoServiceImpl implements IndekK } } } - } 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))) { + } 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")) @@ -5593,25 +5705,6 @@ public class IndekKinerjaServiceImpl extends BaseVoServiceImpl implements IndekK } } } - } 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); - } - } } } }