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 1421faef..5d5a8121 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 @@ -160,8 +160,9 @@ public class Master { public static final Integer LAB_KLINIK = 36; // laboratorium_klinik public static final Integer OBAT_ALKES = 97; // barang_farmasi - public static final Integer[] NONTINDAKAN = { 97, 283 }; // barang_farmasi,vaksin public static final Integer[] NONKONSULTASI = { 116, 277 }; // reagensia,barang_umum + public static final Integer[] NONLOGBOOK = { 97, 277, 283 }; // barang_farmasi,barang_umum,vaksin + public static final Integer[] NONTINDAKAN = { 97, 283 }; // barang_farmasi,vaksin } public static final class KategoryPegawai { @@ -246,6 +247,7 @@ public class Master { public static final Integer BIAYA_OBAT_ALKES = 16; public static final Integer BIAYA_RAWAT_INAP = 17; public static final Integer BIAYA_RAWAT_JALAN = 18; + public static final Integer POTONGAN_TOKO_KOPERASI = 19; } public static final class KomponenHarga { diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/RevIndekKinerjaDao.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/RevIndekKinerjaDao.java index f4e8bca8..4997b660 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/RevIndekKinerjaDao.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/RevIndekKinerjaDao.java @@ -196,9 +196,9 @@ public interface RevIndekKinerjaDao extends PagingAndSortingRepository { + "inner join sg.pegawai pg where sg.bulan between :start and :end") List findPegawaiKomponenByBulan(@Param("start") Date start, @Param("end") Date end); - @Query("select new Map(sg.id as id,pg.id as idPegawai,pg.namaLengkap as namaPegawai) " + "from SlipGaji sg " - + "inner join sg.pegawai pg " + "where sg.bulan between :start and :end " + "order by pg.namaLengkap") + @Query("select new Map(sg.id as id,pg.id as idPegawai,pg.namaLengkap as namaPegawai," + + "coalesce(pg.nipPns,'-') as nip) " + "from SlipGaji sg " + "inner join sg.pegawai pg " + + "where sg.bulan between :start and :end " + "order by pg.namaLengkap") List> findAllByBulan(@Param("start") Date start, @Param("end") Date end); } diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/SlipGajiService.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/SlipGajiService.java index 11d2551e..dd0a128e 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/SlipGajiService.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/SlipGajiService.java @@ -4,6 +4,7 @@ import java.io.IOException; import java.util.List; import java.util.Map; +import com.jasamedika.medifirst2000.dto.KomponenGajiDto; import com.jasamedika.medifirst2000.dto.SlipGajiDto; /** @@ -24,4 +25,6 @@ public interface SlipGajiService { String writeExcel(Long bulan) throws IOException; Map previewPdf(Integer pegawaiId, Long bulan); + + List listKomponen(); } 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 679d9202..f3b23889 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 @@ -3053,6 +3053,99 @@ 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_ALL) + .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 (drAnastesiList.contains(idPegawai) + && (idsPenunjangBukanAnestesi.contains(Integer.parseInt(map.get("idProduk").toString())) + || (Master.JenisPetugasPelaksana.DOKTER_PEMERIKSA + .equals(Integer.parseInt(map.get("idJenisPelaksana").toString())) + && Master.Departemen.RADIOLOGI + .equals(Integer.parseInt(map.get("departemenId").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)) @@ -3584,6 +3677,8 @@ 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"); @@ -3611,6 +3706,8 @@ 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 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")); @@ -3619,16 +3716,8 @@ public class IndekKinerjaServiceImpl extends BaseVoServiceImpl implements IndekK // 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()))) { + if (drKkPediatrikGDList.contains(map.get("idPegawai"))) { + if (idsDokterPediatrikGD.contains(map.get("idProduk"))) { rawResult.add(map); } else if (CommonUtil.isNotNullOrEmpty(map.get("jamMasuk"))) { Date tanggalPelayanan = (Date) map.get("tanggalPelayanan"); @@ -3648,251 +3737,484 @@ public class IndekKinerjaServiceImpl extends BaseVoServiceImpl implements IndekK 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_ALL) + if (Arrays.asList(Master.Departemen.GRUP_RAWAT_JALAN_ALL) .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 (Arrays.asList(Master.Departemen.GRUP_RAWAT_INAP) + .contains(Integer.parseInt(map.get("departemenId").toString()))) { + if (map.get("namaProduk").toString().toLowerCase().contains(Master.VISIT) + && map.get("idPegawai").toString().equals(map.get("idDPJP"))) { + rawResult.add(map); + } } - } else if (!listDetailJenisProduk.contains(Integer.parseInt(map.get("detailId").toString())) - && map.get("departemenId").equals(Master.Departemen.IGD) && drKsmUmumList.contains(idPegawai) - && idsDokterUmumIGD.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)) - && dateTimePelayanan.isBefore(datePulang))) { + } else if (!drKkPediatrikGDList.contains(map.get("idPegawai"))) { + 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 (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))) { + } 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()))) { 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_ALL) + .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))) { + } + } else if (!listDetailJenisProduk.contains(Integer.parseInt(map.get("detailId").toString())) + && map.get("departemenId").equals(Master.Departemen.IGD) + && drKsmUmumList.contains(idPegawai) + && idsDokterUmumIGD.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)) + && 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_ALL) + .contains(Integer.parseInt(map.get("departemenId").toString())) + && ((dateTimePelayanan.isEqual(dateMasuk) || dateTimePelayanan.isAfter(dateMasuk)) + && dateTimePelayanan.isBefore(datePulang))) { rawResult.add(map); } - } else if (Arrays.asList(Master.Departemen.GRUP_RAWAT_JALAN_ALL) - .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 (CommonUtil.isNotNullOrEmpty(listDetailJenisProdukException) - && listDetailJenisProdukException.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()))) { - 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))) { - 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.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))) { + } + } 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)) + && 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_ALL) + .contains(Integer.parseInt(map.get("departemenId").toString())) + && ((dateTimePelayanan.isEqual(dateMasuk) || dateTimePelayanan.isAfter(dateMasuk)) + && dateTimePelayanan.isBefore(datePulang))) { rawResult.add(map); } - } else if (Arrays.asList(Master.Departemen.GRUP_RAWAT_JALAN_ALL) - .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()))) { rawResult.add(map); } - } else if (CommonUtil.isNullOrEmpty(map.get("jamMasuk")) - && Arrays.asList(Master.Departemen.GRUP_RAWAT_INAP) + } else if (drAnastesiList.contains(idPegawai) + && (idsPenunjangBukanAnestesi.contains(Integer.parseInt(map.get("idProduk").toString())) + || (Master.JenisPetugasPelaksana.DOKTER_PEMERIKSA + .equals(Integer.parseInt(map.get("idJenisPelaksana").toString())) + && Master.Departemen.RADIOLOGI + .equals(Integer.parseInt(map.get("departemenId").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())) - && Arrays.asList(Master.Kelas.KELAS_DUA_TIGA_NONKELAS) - .contains(Integer.parseInt(map.get("idKelas").toString()))) { - rawResult.add(map); + && ((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_ALL) + .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 (CommonUtil.isNotNullOrEmpty(listDetailJenisProdukException) + && listDetailJenisProdukException + .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()))) { + 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))) { + 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_ALL) + .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); + } } } } @@ -4409,6 +4731,99 @@ 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_ALL) + .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 (drAnastesiList.contains(idPegawai) + && (idsPenunjangBukanAnestesi.contains(Integer.parseInt(map.get("idProduk").toString())) + || (Master.JenisPetugasPelaksana.DOKTER_PEMERIKSA + .equals(Integer.parseInt(map.get("idJenisPelaksana").toString())) + && Master.Departemen.RADIOLOGI + .equals(Integer.parseInt(map.get("departemenId").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)) @@ -5318,12 +5733,14 @@ public class IndekKinerjaServiceImpl extends BaseVoServiceImpl implements IndekK 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 drAnastesiList = pegawaiDao.getDokterByKelompokKerja(Master.SubUnitKerja.KK_ANESTESI); List idsRegDJPAdminNonPK = splitDataSettingDatafixed("admin_nonpk"); List idsRegDJPMedisUtama = splitDataSettingDatafixed("medis_utama"); List idsRegDJPPenunjangPA = splitDataSettingDatafixed("penunjang_pa"); List idsRegDJPPenunjangPK = splitDataSettingDatafixed("penunjang_pk"); List idsRegDJPPenunjangRad = splitDataSettingDatafixed("penunjang_radiologi"); + List idsPenunjangBukanAnestesi = splitDataSettingDatafixed("pr_penunjang_nonanestesi"); if (pegawaiDao.getDokterByKelompokKerja(Master.SubUnitKerja.KK_PATOLOGI_ANATOMI).contains(idPegawai)) { listDetailJenisProduk = idsRegDJPPenunjangPA; @@ -6001,6 +6418,206 @@ public class IndekKinerjaServiceImpl extends BaseVoServiceImpl implements IndekK } } } + } else if (drAnastesiList.contains(idPegawai) && (idsPenunjangBukanAnestesi + .contains(Integer.parseInt(map.get("idProduk").toString())) + || (Master.JenisPetugasPelaksana.DOKTER_PEMERIKSA + .equals(Integer.parseInt(map.get("idJenisPetugas").toString())) + && Master.Departemen.RADIOLOGI + .equals(Integer.parseInt(map.get("departemenId").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_ALL) + .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()))) { @@ -6829,7 +7446,10 @@ public class IndekKinerjaServiceImpl extends BaseVoServiceImpl implements IndekK LocalDateTime PSBBDate = LocalDateTime.of(2020, 9, 14, 0, 0, 0); LocalDateTime PSBBEnd = LocalDateTime.parse(GetSettingDataFixed("psbbperiod"), dtf); + 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"); @@ -6857,19 +7477,14 @@ public class IndekKinerjaServiceImpl extends BaseVoServiceImpl implements IndekK idPegawai, Master.JenisPetugasPelaksana.PETUGAS_PELAKSANA, periode); 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"); 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()))) { + if (drKkPediatrikGDList.contains(map.get("idPegawai"))) { + if (idsDokterPediatrikGD.contains(map.get("idProduk"))) { rawResult.add(map); } else if (CommonUtil.isNotNullOrEmpty(map.get("jamMasuk"))) { Date tanggalPelayanan = (Date) map.get("tanggalPelayanan"); @@ -6889,251 +7504,484 @@ public class IndekKinerjaServiceImpl extends BaseVoServiceImpl implements IndekK 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_ALL) + if (Arrays.asList(Master.Departemen.GRUP_RAWAT_JALAN_ALL) .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 (Arrays.asList(Master.Departemen.GRUP_RAWAT_INAP) + .contains(Integer.parseInt(map.get("departemenId").toString()))) { + if (map.get("namaProduk").toString().toLowerCase().contains(Master.VISIT) + && map.get("idPegawai").toString().equals(map.get("idDPJP"))) { + rawResult.add(map); + } } - } else if (!listDetailJenisProduk.contains(Integer.parseInt(map.get("detailId").toString())) - && map.get("departemenId").equals(Master.Departemen.IGD) && drKsmUmumList.contains(idPegawai) - && idsDokterUmumIGD.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)) - && dateTimePelayanan.isBefore(datePulang))) { + } else if (!drKkPediatrikGDList.contains(map.get("idPegawai"))) { + 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 (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))) { + } 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()))) { 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_ALL) + .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))) { + } + } else if (!listDetailJenisProduk.contains(Integer.parseInt(map.get("detailId").toString())) + && map.get("departemenId").equals(Master.Departemen.IGD) + && drKsmUmumList.contains(idPegawai) + && idsDokterUmumIGD.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)) + && 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_ALL) + .contains(Integer.parseInt(map.get("departemenId").toString())) + && ((dateTimePelayanan.isEqual(dateMasuk) || dateTimePelayanan.isAfter(dateMasuk)) + && dateTimePelayanan.isBefore(datePulang))) { rawResult.add(map); } - } else if (Arrays.asList(Master.Departemen.GRUP_RAWAT_JALAN_ALL) - .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 (CommonUtil.isNotNullOrEmpty(listDetailJenisProdukException) - && listDetailJenisProdukException.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()))) { - 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))) { - 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.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))) { + } + } 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)) + && 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_ALL) + .contains(Integer.parseInt(map.get("departemenId").toString())) + && ((dateTimePelayanan.isEqual(dateMasuk) || dateTimePelayanan.isAfter(dateMasuk)) + && dateTimePelayanan.isBefore(datePulang))) { rawResult.add(map); } - } else if (Arrays.asList(Master.Departemen.GRUP_RAWAT_JALAN_ALL) - .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()))) { rawResult.add(map); } - } else if (CommonUtil.isNullOrEmpty(map.get("jamMasuk")) - && Arrays.asList(Master.Departemen.GRUP_RAWAT_INAP) + } else if (drAnastesiList.contains(idPegawai) + && (idsPenunjangBukanAnestesi.contains(Integer.parseInt(map.get("idProduk").toString())) + || (Master.JenisPetugasPelaksana.DOKTER_PEMERIKSA + .equals(Integer.parseInt(map.get("idJenisPelaksana").toString())) + && Master.Departemen.RADIOLOGI + .equals(Integer.parseInt(map.get("departemenId").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())) - && Arrays.asList(Master.Kelas.KELAS_DUA_TIGA_NONKELAS) - .contains(Integer.parseInt(map.get("idKelas").toString()))) { - rawResult.add(map); + && ((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_ALL) + .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 (CommonUtil.isNotNullOrEmpty(listDetailJenisProdukException) + && listDetailJenisProdukException + .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()))) { + 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))) { + 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_ALL) + .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); + } } } } @@ -8292,8 +9140,9 @@ public class IndekKinerjaServiceImpl extends BaseVoServiceImpl implements IndekK .contains(Integer.parseInt(map.get("detailId").toString())) && !idsRegDJPPenunjangPK.contains( Integer.parseInt(map.get("detailId").toString()))) { - if (Arrays.asList(Master.Departemen.GRUP_RAWAT_JALAN_ALL).contains( - Integer.parseInt(map.get("departemenId").toString()))) { + if (Arrays.asList(Master.Departemen.GRUP_RAWAT_JALAN_ALL) + .contains(Integer.parseInt( + map.get("departemenId").toString()))) { if (map.get("ruanganId") .equals(Master.Ruangan.KLINIK_FALSE_EMERGENCY) && idsKonsultasiDokterJaga @@ -8336,8 +9185,9 @@ public class IndekKinerjaServiceImpl extends BaseVoServiceImpl implements IndekK .contains(Integer.parseInt(map.get("detailId").toString())) && !idsRegDJPPenunjangPK.contains( Integer.parseInt(map.get("detailId").toString()))) { - if (Arrays.asList(Master.Departemen.GRUP_RAWAT_JALAN_ALL).contains( - Integer.parseInt(map.get("departemenId").toString()))) { + if (Arrays.asList(Master.Departemen.GRUP_RAWAT_JALAN_ALL) + .contains(Integer.parseInt( + map.get("departemenId").toString()))) { if (map.get("ruanganId") .equals(Master.Ruangan.KLINIK_FALSE_EMERGENCY) && idsKonsultasiDokterJaga @@ -9111,8 +9961,9 @@ public class IndekKinerjaServiceImpl extends BaseVoServiceImpl implements IndekK .contains(Integer.parseInt(map.get("detailId").toString())) && !idsRegDJPPenunjangPK.contains( Integer.parseInt(map.get("detailId").toString()))) { - if (Arrays.asList(Master.Departemen.GRUP_RAWAT_JALAN_ALL).contains( - Integer.parseInt(map.get("departemenId").toString()))) { + if (Arrays.asList(Master.Departemen.GRUP_RAWAT_JALAN_ALL) + .contains(Integer.parseInt( + map.get("departemenId").toString()))) { if (map.get("ruanganId") .equals(Master.Ruangan.KLINIK_FALSE_EMERGENCY) && idsKonsultasiDokterJaga @@ -9155,8 +10006,9 @@ public class IndekKinerjaServiceImpl extends BaseVoServiceImpl implements IndekK .contains(Integer.parseInt(map.get("detailId").toString())) && !idsRegDJPPenunjangPK.contains( Integer.parseInt(map.get("detailId").toString()))) { - if (Arrays.asList(Master.Departemen.GRUP_RAWAT_JALAN_ALL).contains( - Integer.parseInt(map.get("departemenId").toString()))) { + if (Arrays.asList(Master.Departemen.GRUP_RAWAT_JALAN_ALL) + .contains(Integer.parseInt( + map.get("departemenId").toString()))) { if (map.get("ruanganId") .equals(Master.Ruangan.KLINIK_FALSE_EMERGENCY) && idsKonsultasiDokterJaga @@ -9342,7 +10194,10 @@ public class IndekKinerjaServiceImpl extends BaseVoServiceImpl implements IndekK LocalDateTime PSBBDate = LocalDateTime.of(2020, 9, 14, 0, 0, 0); LocalDateTime PSBBEnd = LocalDateTime.parse(GetSettingDataFixed("psbbperiod"), dtf); + 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"); @@ -9375,20 +10230,15 @@ 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"); if (!ffs) { 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()))) { - 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 (drKkPediatrikGDList.contains(map.get("idPegawai"))) { + if (idsDokterPediatrikGD.contains(map.get("idProduk"))) { result.add(map); } else if (CommonUtil.isNotNullOrEmpty(map.get("jamMasuk"))) { Date tanggalPelayanan = (Date) map.get("tanggalPelayanan"); @@ -9408,261 +10258,523 @@ public class IndekKinerjaServiceImpl extends BaseVoServiceImpl implements IndekK 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) + if (Arrays.asList(Master.Departemen.GRUP_RAWAT_JALAN_ALL) .contains(Integer.parseInt(map.get("departemenId").toString())) && ((dateTimePelayanan.isEqual(dateMasuk) || dateTimePelayanan.isAfter(dateMasuk)) && dateTimePelayanan.isBefore(datePulang))) { 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))) { + } + } else if (Arrays.asList(Master.Departemen.GRUP_RAWAT_INAP) + .contains(Integer.parseInt(map.get("departemenId").toString()))) { + if (map.get("namaProduk").toString().toLowerCase().contains(Master.VISIT) + && map.get("idPegawai").toString().equals(map.get("idDPJP"))) { 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)) + } + } + } else if (!drKkPediatrikGDList.contains(map.get("idPegawai"))) { + 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()))) { + 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()))) { + 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))) { + 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))) { + 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()))) { + 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))) { + result.add(map); + } + } else if (Arrays.asList(Master.Departemen.GRUP_RAWAT_JALAN_ALL) + .contains(Integer.parseInt(map.get("departemenId").toString())) + && ((dateTimePelayanan.isEqual(dateMasuk) + || dateTimePelayanan.isAfter(dateMasuk)) + && dateTimePelayanan.isBefore(datePulang))) { + 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()))) { 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))) { + } + } else if (!listDetailJenisProduk.contains(Integer.parseInt(map.get("detailId").toString())) + && map.get("departemenId").equals(Master.Departemen.IGD) + && drKsmUmumList.contains(idPegawai) + && idsDokterUmumIGD.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()))) { + 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))) { + 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))) { + 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()))) { + 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))) { + result.add(map); + } + } else if (Arrays.asList(Master.Departemen.GRUP_RAWAT_JALAN_ALL) + .contains(Integer.parseInt(map.get("departemenId").toString())) + && ((dateTimePelayanan.isEqual(dateMasuk) + || dateTimePelayanan.isAfter(dateMasuk)) + && dateTimePelayanan.isBefore(datePulang))) { result.add(map); } - } else if (Arrays.asList(Master.Departemen.GRUP_RAWAT_JALAN_ALL) - .contains(Integer.parseInt(map.get("departemenId").toString())) - && ((dateTimePelayanan.isEqual(dateMasuk) || dateTimePelayanan.isAfter(dateMasuk)) - && dateTimePelayanan.isBefore(datePulang))) { - 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()))) { - result.add(map); - } - } else if (!listDetailJenisProduk.contains(Integer.parseInt(map.get("detailId").toString())) - && map.get("departemenId").equals(Master.Departemen.IGD) - && drKsmUmumList.contains(idPegawai) - && idsDokterUmumIGD.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()))) { - 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))) { - 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))) { - 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)) + } 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()))) { 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))) { + } + } 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()))) { + 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))) { + 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))) { + 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()))) { + 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))) { + result.add(map); + } + } else if (Arrays.asList(Master.Departemen.GRUP_RAWAT_JALAN_ALL) + .contains(Integer.parseInt(map.get("departemenId").toString())) + && ((dateTimePelayanan.isEqual(dateMasuk) + || dateTimePelayanan.isAfter(dateMasuk)) + && dateTimePelayanan.isBefore(datePulang))) { result.add(map); } - } else if (Arrays.asList(Master.Departemen.GRUP_RAWAT_JALAN_ALL) - .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()))) { result.add(map); } - } else if (CommonUtil.isNullOrEmpty(map.get("jamMasuk")) - && Arrays.asList(Master.Departemen.GRUP_RAWAT_INAP) + } else if (drAnastesiList.contains(idPegawai) && (idsPenunjangBukanAnestesi + .contains(Integer.parseInt(map.get("idProduk").toString())) + || (Master.JenisPetugasPelaksana.DOKTER_PEMERIKSA + .equals(Integer.parseInt(map.get("idJenisPetugas").toString())) + && Master.Departemen.RADIOLOGI + .equals(Integer.parseInt(map.get("departemenId").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()))) { + 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())) - && Arrays.asList(Master.Kelas.KELAS_DUA_TIGA_NONKELAS) - .contains(Integer.parseInt(map.get("idKelas").toString()))) { - result.add(map); - } - } else if (CommonUtil.isNotNullOrEmpty(listDetailJenisProdukException) - && listDetailJenisProdukException - .contains(Integer.parseInt(map.get("detailId").toString()))) { - if (Arrays.asList(Master.DetailJenisProduk.PENUNJANG_PATOLOGI_ANATOMI) - .contains(Integer.parseInt(map.get("detailId").toString())) - || Arrays.asList(Master.DetailJenisProduk.PENUNJANG_PATOLOGI_KLINIK) + && ((dateTimePelayanan.isEqual(dateMasuk) + || dateTimePelayanan.isAfter(dateMasuk)) + && dateTimePelayanan.isBefore(datePulang))) { + 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))) { + 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()))) { + 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))) { + result.add(map); + } + } else if (Arrays.asList(Master.Departemen.GRUP_RAWAT_JALAN_ALL) + .contains(Integer.parseInt(map.get("departemenId").toString())) + && ((dateTimePelayanan.isEqual(dateMasuk) + || dateTimePelayanan.isAfter(dateMasuk)) + && dateTimePelayanan.isBefore(datePulang))) { + 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()))) { + result.add(map); + } + } else if (CommonUtil.isNotNullOrEmpty(listDetailJenisProdukException) + && listDetailJenisProdukException .contains(Integer.parseInt(map.get("detailId").toString()))) { - 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()))) { - 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 (Arrays.asList(Master.DetailJenisProduk.PENUNJANG_PATOLOGI_ANATOMI) + .contains(Integer.parseInt(map.get("detailId").toString())) + || Arrays.asList(Master.DetailJenisProduk.PENUNJANG_PATOLOGI_KLINIK) + .contains(Integer.parseInt(map.get("detailId").toString()))) { 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))) { + } 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()))) { 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)) + } 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))) { + 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))) { + 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()))) { + 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))) { + result.add(map); + } + } else if (Arrays.asList(Master.Departemen.GRUP_RAWAT_JALAN_ALL) + .contains(Integer.parseInt(map.get("departemenId").toString())) + && ((dateTimePelayanan.isEqual(dateMasuk) + || dateTimePelayanan.isAfter(dateMasuk)) + && dateTimePelayanan.isBefore(datePulang))) { + 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()))) { 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))) { - result.add(map); - } - } else if (Arrays.asList(Master.Departemen.GRUP_RAWAT_JALAN_ALL) - .contains(Integer.parseInt(map.get("departemenId").toString())) - && ((dateTimePelayanan.isEqual(dateMasuk) || dateTimePelayanan.isAfter(dateMasuk)) - && dateTimePelayanan.isBefore(datePulang))) { - 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()))) { - result.add(map); } } } } } else { - // FFS : sudah tidak dipakai + /** + * @deprecated unused conditions + */ if (CommonUtil.isNotNullOrEmpty(listData)) { if (pegawaiDao.getPegawaiByKategoryPegawai(Arrays.asList(Master.KategoryPegawai.DOKTER_LUAR)) .contains(idPegawai)) { diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/PelayananPasienServiceImpl.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/PelayananPasienServiceImpl.java index 4b75af41..0d79e25b 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/PelayananPasienServiceImpl.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/PelayananPasienServiceImpl.java @@ -1122,7 +1122,7 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel * dokter-dokter tertentu yang hanya dapat pasien bpjs */ listPelayananFfs.add(next); - } else if (!Arrays.asList(Master.JenisProduk.NONTINDAKAN).contains(next.get("idJenisProduk"))) { + } else if (!Arrays.asList(Master.JenisProduk.NONLOGBOOK).contains(next.get("idJenisProduk"))) { listPelayananFfs.add(next); } } else { @@ -1144,7 +1144,7 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel } else if ((Arrays.asList(Master.Departemen.GRUP_RAWAT_JALAN_UTAMA) .contains(next.get("idDepartemen")) || Master.GolonganProduk.VISIT.equals(next.get("idGolonganProduk"))) - && !Arrays.asList(Master.JenisProduk.NONTINDAKAN).contains(next.get("idJenisProduk"))) { + && !Arrays.asList(Master.JenisProduk.NONLOGBOOK).contains(next.get("idJenisProduk"))) { /* * Dibatasi hanya di rawat jalan atau visite saja */ @@ -1167,7 +1167,7 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel */ listPelayananRemun.add(next); capaianRemun += Double.valueOf(next.get("hargaJasa").toString()); - } else if (!Arrays.asList(Master.JenisProduk.NONTINDAKAN) + } else if (!Arrays.asList(Master.JenisProduk.NONLOGBOOK) .contains(next.get("idJenisProduk"))) { listPelayananRemun.add(next); capaianRemun += Double.valueOf(next.get("hargaJasa").toString()); @@ -1217,7 +1217,7 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel */ listPelayananRemun.add(next); capaianRemun += Double.valueOf(next.get("hargaJasa").toString()); - } else if (!Arrays.asList(Master.JenisProduk.NONTINDAKAN) + } else if (!Arrays.asList(Master.JenisProduk.NONLOGBOOK) .contains(next.get("idJenisProduk"))) { listPelayananRemun.add(next); capaianRemun += Double.valueOf(next.get("hargaJasa").toString()); @@ -1242,7 +1242,7 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel } else if ((Arrays.asList(Master.Departemen.GRUP_RAWAT_JALAN_UTAMA) .contains(next.get("idDepartemen")) || Master.GolonganProduk.VISIT.equals(next.get("idGolonganProduk"))) - && !Arrays.asList(Master.JenisProduk.NONTINDAKAN).contains(next.get("idJenisProduk"))) { + && !Arrays.asList(Master.JenisProduk.NONLOGBOOK).contains(next.get("idJenisProduk"))) { /* * Dibatasi hanya di rawat jalan atau visite saja */ @@ -1265,7 +1265,7 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel */ listPelayananRemun.add(next); capaianRemun += Double.valueOf(next.get("hargaJasa").toString()); - } else if (!Arrays.asList(Master.JenisProduk.NONTINDAKAN) + } else if (!Arrays.asList(Master.JenisProduk.NONLOGBOOK) .contains(next.get("idJenisProduk"))) { listPelayananRemun.add(next); capaianRemun += Double.valueOf(next.get("hargaJasa").toString()); @@ -1315,7 +1315,7 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel */ listPelayananRemun.add(next); capaianRemun += Double.valueOf(next.get("hargaJasa").toString()); - } else if (!Arrays.asList(Master.JenisProduk.NONTINDAKAN) + } else if (!Arrays.asList(Master.JenisProduk.NONLOGBOOK) .contains(next.get("idJenisProduk"))) { listPelayananRemun.add(next); capaianRemun += Double.valueOf(next.get("hargaJasa").toString()); @@ -1338,7 +1338,7 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel } else if ((Arrays.asList(Master.Departemen.GRUP_RAWAT_JALAN_UTAMA) .contains(next.get("idDepartemen")) || Master.GolonganProduk.VISIT.equals(next.get("idGolonganProduk"))) - && !Arrays.asList(Master.JenisProduk.NONTINDAKAN).contains(next.get("idJenisProduk"))) { + && !Arrays.asList(Master.JenisProduk.NONLOGBOOK).contains(next.get("idJenisProduk"))) { /* * Dibatasi hanya di rawat jalan atau visite saja */ @@ -1359,7 +1359,7 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel * bebas klaim */ listPelayananFfs.add(next); - } else if (!Arrays.asList(Master.JenisProduk.NONTINDAKAN) + } else if (!Arrays.asList(Master.JenisProduk.NONLOGBOOK) .contains(next.get("idJenisProduk"))) { listPelayananFfs.add(next); } @@ -1405,7 +1405,7 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel * bebas klaim */ listPelayananFfs.add(next); - } else if (!Arrays.asList(Master.JenisProduk.NONTINDAKAN) + } else if (!Arrays.asList(Master.JenisProduk.NONLOGBOOK) .contains(next.get("idJenisProduk"))) { listPelayananFfs.add(next); } diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/ReportServiceImpl.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/ReportServiceImpl.java index 1780a909..e72f7e32 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/ReportServiceImpl.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/ReportServiceImpl.java @@ -3480,6 +3480,7 @@ public class ReportServiceImpl extends BaseVoServiceImpl implements ReportServic result.put("biayaObatAlkes", "-"); result.put("biayaRawatInap", "-"); result.put("biayaRawatJalan", "-"); + result.put("potonganTokoKoperasi", "-"); BigDecimal jumlahPenerimaan = BigDecimal.ZERO; BigDecimal jumlahPemotongan = BigDecimal.ZERO; BigDecimal jumlahPenerimaanBersih = BigDecimal.ZERO; @@ -3528,6 +3529,8 @@ public class ReportServiceImpl extends BaseVoServiceImpl implements ReportServic result.put("biayaRawatInap", nf.format(k.getNominal())); } else if (Master.KomponenGaji.BIAYA_RAWAT_JALAN == k.getIdKomponen()) { result.put("biayaRawatJalan", nf.format(k.getNominal())); + } else if (Master.KomponenGaji.POTONGAN_TOKO_KOPERASI == k.getIdKomponen()) { + result.put("potonganTokoKoperasi", nf.format(k.getNominal())); } } result.put("jumlahPenerimaan", nf.format(jumlahPenerimaan)); @@ -3624,6 +3627,8 @@ public class ReportServiceImpl extends BaseVoServiceImpl implements ReportServic potonganDtoBuilder.biaya_ri(nf.format(k.getNominal())); } else if (Master.KomponenGaji.BIAYA_RAWAT_JALAN == k.getIdKomponen()) { potonganDtoBuilder.biaya_rj(nf.format(k.getNominal())); + } else if (Master.KomponenGaji.POTONGAN_TOKO_KOPERASI == k.getIdKomponen()) { + potonganDtoBuilder.potongan_koperasi(nf.format(k.getNominal())); } } jumlahDtoBuilder.jumlah_gross(nf.format(jumlahPenerimaan)); diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/SlipGajiServiceImpl.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/SlipGajiServiceImpl.java index 1915fdbd..93ac0ae0 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/SlipGajiServiceImpl.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/SlipGajiServiceImpl.java @@ -34,6 +34,7 @@ import com.jasamedika.medifirst2000.dao.PegawaiDao; import com.jasamedika.medifirst2000.dao.SlipGajiDao; import com.jasamedika.medifirst2000.dao.SlipGajiDetailDao; import com.jasamedika.medifirst2000.dao.SlipGajiKomponenDao; +import com.jasamedika.medifirst2000.dto.KomponenGajiDto; import com.jasamedika.medifirst2000.dto.SlipGajiDto; import com.jasamedika.medifirst2000.dto.SlipGajiKomponenDto; import com.jasamedika.medifirst2000.entities.Jabatan; @@ -328,9 +329,11 @@ public class SlipGajiServiceImpl implements SlipGajiService { row1.add("ID"); row1.add(""); row1.add(String.valueOf(month.getTime())); + row1.add(""); row2.add(""); row2.add("ID PEGAWAI"); - row2.add("NAMA PEGAWAI / KOMPONEN"); + row2.add("NAMA PEGAWAI"); + row2.add("NIP / KOMPONEN"); allKomponen.forEach(k -> { row1.add(k.get("id")); row2.add(k.get("namaKomponen")); @@ -345,10 +348,10 @@ public class SlipGajiServiceImpl implements SlipGajiService { data.put(i++, arrkd); for (Map d : listAllKomponen) { data.put(i++, - new Object[] { d.get("id"), d.get("idPegawai"), d.get("namaPegawai"), d.get("1"), d.get("2"), - d.get("3"), d.get("4"), d.get("5"), d.get("6"), d.get("7"), d.get("8"), d.get("9"), - d.get("10"), d.get("11"), d.get("12"), d.get("13"), d.get("14"), d.get("15"), d.get("16"), - d.get("17"), d.get("18") }); + new Object[] { d.get("id"), d.get("idPegawai"), d.get("namaPegawai"), d.get("nip"), d.get("1"), + d.get("2"), d.get("3"), d.get("4"), d.get("5"), d.get("6"), d.get("7"), d.get("8"), + d.get("9"), d.get("10"), d.get("11"), d.get("12"), d.get("13"), d.get("14"), d.get("15"), + d.get("16"), d.get("17"), d.get("18"), d.get("19") }); } TreeMap sorted = new TreeMap<>(); sorted.putAll(data); @@ -376,8 +379,9 @@ public class SlipGajiServiceImpl implements SlipGajiService { sheet.setColumnHidden(0, true); sheet.setColumnHidden(1, true); sheet.autoSizeColumn(2); + sheet.autoSizeColumn(3); sheet.setDefaultColumnWidth(25); - sheet.createFreezePane(3, 2); + sheet.createFreezePane(4, 2); DateFormat df = new SimpleDateFormat("yyyyMMdd_HHmmss"); String timestampToString = df.format(new Date()); String filename = "Template_Slip_Gaji_" + timestampToString + ".xls"; @@ -427,4 +431,15 @@ public class SlipGajiServiceImpl implements SlipGajiService { } return result; } + + @Override + public List listKomponen() { + List result = new ArrayList<>(); + Sort sort = new Sort(Sort.Direction.ASC, "id"); + List listKomponenGaji = komponenGajiDao.findAll(sort); + listKomponenGaji.forEach(k -> { + result.add(new KomponenGajiDto(k.getId(), k.getNamaKomponen(), k.getJenisKomponen())); + }); + return result; + } } diff --git a/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/dto/KomponenGajiDto.java b/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/dto/KomponenGajiDto.java new file mode 100644 index 00000000..4a5b552f --- /dev/null +++ b/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/dto/KomponenGajiDto.java @@ -0,0 +1,51 @@ +package com.jasamedika.medifirst2000.dto; + +import com.jasamedika.medifirst2000.helper.Caption; + +/** + * @author Salman + * + */ +public class KomponenGajiDto { + @Caption(value = "ID") + protected Integer id; + + @Caption(value = "Nama Komponen") + private String namaKomponen; + + @Caption(value = "Jenis Komponen") + private Integer jenisKomponen; + + public KomponenGajiDto() { + } + + public KomponenGajiDto(Integer id, String namaKomponen, Integer jenisKomponen) { + this.id = id; + this.namaKomponen = namaKomponen; + this.jenisKomponen = jenisKomponen; + } + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public String getNamaKomponen() { + return namaKomponen; + } + + public void setNamaKomponen(String namaKomponen) { + this.namaKomponen = namaKomponen; + } + + public Integer getJenisKomponen() { + return jenisKomponen; + } + + public void setJenisKomponen(Integer jenisKomponen) { + this.jenisKomponen = jenisKomponen; + } +} diff --git a/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/dto/SlipPotonganDto.java b/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/dto/SlipPotonganDto.java index 427f22cd..45f05f03 100644 --- a/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/dto/SlipPotonganDto.java +++ b/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/dto/SlipPotonganDto.java @@ -43,12 +43,15 @@ public class SlipPotonganDto { @Caption(value = "Biaya Rawat Jalan") private String biaya_rj; + @Caption(value = "Potongan Toko Koperasi") + private String potongan_koperasi; + public SlipPotonganDto() { } public SlipPotonganDto(String pph_gaji, String pph_remun, String pph_ffs, String pph_ffo, String pph_um, String pph_ul, String iuran_koperasi, String pinjam_koperasi, String biaya_obat, String biaya_ri, - String biaya_rj) { + String biaya_rj, String potongan_koperasi) { super(); this.pph_gaji = pph_gaji; this.pph_remun = pph_remun; @@ -61,6 +64,7 @@ public class SlipPotonganDto { this.biaya_obat = biaya_obat; this.biaya_ri = biaya_ri; this.biaya_rj = biaya_rj; + this.potongan_koperasi = potongan_koperasi; } public String getPph_gaji() { @@ -150,7 +154,15 @@ public class SlipPotonganDto { public void setBiaya_rj(String biaya_rj) { this.biaya_rj = biaya_rj; } - + + public String getPotongan_koperasi() { + return potongan_koperasi; + } + + public void setPotongan_koperasi(String potongan_koperasi) { + this.potongan_koperasi = potongan_koperasi; + } + public static SlipPotonganDtoBuilder builder() { return new SlipPotonganDtoBuilder(); } @@ -167,6 +179,7 @@ public class SlipPotonganDto { private String biaya_obat = "-"; private String biaya_ri = "-"; private String biaya_rj = "-"; + private String potongan_koperasi = "-"; public SlipPotonganDtoBuilder() { } @@ -226,10 +239,15 @@ public class SlipPotonganDto { return this; } + public SlipPotonganDtoBuilder potongan_koperasi(final String potongan_koperasi) { + this.potongan_koperasi = potongan_koperasi; + return this; + } + public SlipPotonganDto build() { return new SlipPotonganDto(this.pph_gaji, this.pph_remun, this.pph_ffs, this.pph_ffo, this.pph_um, this.pph_ul, this.iuran_koperasi, this.pinjam_koperasi, this.biaya_obat, this.biaya_ri, - this.biaya_rj); + this.biaya_rj, this.potongan_koperasi); } } } diff --git a/jasamedika-reporting/src/main/java/com/jasamedika/medifirst2000/controller/ReportingController.java b/jasamedika-reporting/src/main/java/com/jasamedika/medifirst2000/controller/ReportingController.java index fab3f9c6..bb0e5b2b 100644 --- a/jasamedika-reporting/src/main/java/com/jasamedika/medifirst2000/controller/ReportingController.java +++ b/jasamedika-reporting/src/main/java/com/jasamedika/medifirst2000/controller/ReportingController.java @@ -6561,8 +6561,6 @@ public class ReportingController extends LocaleController @RequestParam(value = "idJabatanAtasan", required = true) Integer idJabatanAtasan, @RequestParam(value = "ffs", required = true) Boolean ffs) { - // List> result = new ArrayList>(); List> resultFFS = new ArrayList>(); List> allDetailTindakan = new ArrayList<>(); @@ -6575,9 +6573,6 @@ public class ReportingController extends LocaleController bulan = bulanArray[Integer.parseInt(splitData[1]) - 1]; } - // Pegawai pegawaiLoggedIn = - // indekKinerjaService.getPegawaiByUserLogin(); - // Jabatan jabatan = jabatanDao.findOne(idJabatanAtasan); Map mapJabatan = mapPegawaiJabatanToUnitKerjaService.findAtasanDanUnitKerja(idPegawai, idJabatan); Map atasan = mapPegawaiJabatanToUnitKerjaService.findAtasanDanUnitKerja(idAtasan, @@ -6586,7 +6581,9 @@ public class ReportingController extends LocaleController Map pegawai = pegawaiDao.findPegawaiById(idPegawai); if (ffs) { - // FFS : sudah tidak dipakai + /** + * @deprecated Unused services + */ resultFFS = indekKinerjaService.getAllTindakanByDokterForfeeForServiceReview(periode, idPegawai); allDetailTindakan = indekKinerjaService.findPatientDetailForEveryTindakanReview(idPegawai, periode, ffs); } else { diff --git a/jasamedika-reporting/src/main/webapp/WEB-INF/templates/jrxml/slipGaji.jrxml b/jasamedika-reporting/src/main/webapp/WEB-INF/templates/jrxml/slipGaji.jrxml index e8c4225a..a7548dd4 100644 --- a/jasamedika-reporting/src/main/webapp/WEB-INF/templates/jrxml/slipGaji.jrxml +++ b/jasamedika-reporting/src/main/webapp/WEB-INF/templates/jrxml/slipGaji.jrxml @@ -31,6 +31,7 @@ + @@ -66,7 +67,7 @@ - + @@ -168,6 +169,20 @@ + + + + + + + + + + + + + + @@ -213,7 +228,9 @@ - + + + @@ -238,7 +255,9 @@ - + + + @@ -266,7 +285,9 @@ - + + + @@ -291,7 +312,9 @@ - + + + @@ -317,7 +340,9 @@ - + + + @@ -342,7 +367,9 @@ - + + + @@ -368,7 +395,9 @@ - + + + @@ -393,7 +422,9 @@ - + + + @@ -420,7 +451,9 @@ - + + + @@ -445,7 +478,9 @@ - + + + @@ -472,7 +507,9 @@ - + + + @@ -497,7 +534,9 @@ - + + + @@ -524,7 +563,9 @@ - + + + @@ -549,7 +590,9 @@ - + + + @@ -576,7 +619,9 @@ - + + + @@ -603,7 +648,9 @@ - + + + @@ -630,7 +677,9 @@ - + + + @@ -657,7 +706,9 @@ - + + + @@ -671,7 +722,31 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + @@ -686,7 +761,7 @@ - + @@ -695,11 +770,13 @@ - + + + - + @@ -714,7 +791,7 @@ - + @@ -729,7 +806,7 @@ - + @@ -738,11 +815,13 @@ - + + + - + @@ -757,7 +836,7 @@ - + @@ -772,7 +851,7 @@ - + @@ -781,11 +860,13 @@ - + + + - + @@ -802,7 +883,7 @@ - + @@ -811,20 +892,6 @@ - - - - - - - - - - - - - - diff --git a/jasamedika-sdm/src/main/java/com/jasamedika/medifirst2000/controller/SlipGajiController.java b/jasamedika-sdm/src/main/java/com/jasamedika/medifirst2000/controller/SlipGajiController.java index 800b1a1d..1c6baf21 100644 --- a/jasamedika-sdm/src/main/java/com/jasamedika/medifirst2000/controller/SlipGajiController.java +++ b/jasamedika-sdm/src/main/java/com/jasamedika/medifirst2000/controller/SlipGajiController.java @@ -22,6 +22,7 @@ import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import com.jasamedika.medifirst2000.constants.Constants; +import com.jasamedika.medifirst2000.dto.KomponenGajiDto; import com.jasamedika.medifirst2000.dto.SlipGajiDto; import com.jasamedika.medifirst2000.service.SlipGajiService; import com.jasamedika.medifirst2000.util.CommonUtil; @@ -128,4 +129,10 @@ public class SlipGajiController { return RestUtil.getJsonHttptatus(HttpStatus.INTERNAL_SERVER_ERROR, mapHeaderMessage); } } + + @RequestMapping(value = "/komponen/list", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE) + public ResponseEntity get() { + List entity = slipGajiService.listKomponen(); + return new ResponseEntity<>(entity, HttpStatus.OK); + } }