From a2281d165cbec26d5baaa18bba5155dcb61bb5b0 Mon Sep 17 00:00:00 2001 From: salmanoe Date: Fri, 6 Jan 2023 10:34:47 +0700 Subject: [PATCH 1/9] Update resep.jrxml Perbaikan bold untuk acc persetujuan perubahan resep --- .../src/main/webapp/WEB-INF/templates/jrxml/resep.jrxml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/jasamedika-reporting/src/main/webapp/WEB-INF/templates/jrxml/resep.jrxml b/jasamedika-reporting/src/main/webapp/WEB-INF/templates/jrxml/resep.jrxml index 6a9559a2..6cf8d72e 100644 --- a/jasamedika-reporting/src/main/webapp/WEB-INF/templates/jrxml/resep.jrxml +++ b/jasamedika-reporting/src/main/webapp/WEB-INF/templates/jrxml/resep.jrxml @@ -1800,7 +1800,7 @@ - + @@ -1855,7 +1855,7 @@ - + @@ -1910,7 +1910,7 @@ - + From 760bf4a517e25f369479c451d4bcd1407903131a Mon Sep 17 00:00:00 2001 From: salmanoe Date: Fri, 6 Jan 2023 10:47:07 +0700 Subject: [PATCH 2/9] Update resep.jrxml Perbaikan length static text --- .../WEB-INF/templates/jrxml/resep.jrxml | 42 +++++++++---------- 1 file changed, 20 insertions(+), 22 deletions(-) diff --git a/jasamedika-reporting/src/main/webapp/WEB-INF/templates/jrxml/resep.jrxml b/jasamedika-reporting/src/main/webapp/WEB-INF/templates/jrxml/resep.jrxml index 6cf8d72e..74768564 100644 --- a/jasamedika-reporting/src/main/webapp/WEB-INF/templates/jrxml/resep.jrxml +++ b/jasamedika-reporting/src/main/webapp/WEB-INF/templates/jrxml/resep.jrxml @@ -1717,9 +1717,7 @@ - - - + @@ -1732,7 +1730,7 @@ - + @@ -1748,7 +1746,7 @@ - + @@ -1764,7 +1762,7 @@ - + @@ -1777,7 +1775,7 @@ - + @@ -1792,7 +1790,7 @@ - + @@ -1805,7 +1803,7 @@ - + @@ -1815,7 +1813,7 @@ - + @@ -1825,7 +1823,7 @@ - + @@ -1835,7 +1833,7 @@ - + @@ -1847,7 +1845,7 @@ - + @@ -1860,7 +1858,7 @@ - + @@ -1870,7 +1868,7 @@ - + @@ -1880,7 +1878,7 @@ - + @@ -1890,7 +1888,7 @@ - + @@ -1902,7 +1900,7 @@ - + @@ -1915,7 +1913,7 @@ - + @@ -1925,7 +1923,7 @@ - + @@ -1935,7 +1933,7 @@ - + @@ -1945,7 +1943,7 @@ - + From 72ead6395bf65c140c5928be6dad191d20036c4c Mon Sep 17 00:00:00 2001 From: salmanoe Date: Fri, 6 Jan 2023 13:33:01 +0700 Subject: [PATCH 3/9] Update resep.jrxml Perbaikan height static text acc perubahan resep --- .../WEB-INF/templates/jrxml/resep.jrxml | 67 ++++++++++--------- 1 file changed, 34 insertions(+), 33 deletions(-) diff --git a/jasamedika-reporting/src/main/webapp/WEB-INF/templates/jrxml/resep.jrxml b/jasamedika-reporting/src/main/webapp/WEB-INF/templates/jrxml/resep.jrxml index 74768564..138df36b 100644 --- a/jasamedika-reporting/src/main/webapp/WEB-INF/templates/jrxml/resep.jrxml +++ b/jasamedika-reporting/src/main/webapp/WEB-INF/templates/jrxml/resep.jrxml @@ -619,7 +619,7 @@ - + @@ -1616,7 +1616,7 @@ - + @@ -1629,7 +1629,7 @@ - + @@ -1641,7 +1641,7 @@ - + @@ -1651,7 +1651,7 @@ - + @@ -1662,7 +1662,7 @@ - + @@ -1672,7 +1672,7 @@ - + @@ -1682,7 +1682,7 @@ - + @@ -1692,7 +1692,7 @@ - + @@ -1705,7 +1705,7 @@ - + @@ -1717,8 +1717,10 @@ - - + + + + @@ -1730,7 +1732,7 @@ - + @@ -1746,9 +1748,8 @@ - + - @@ -1762,8 +1763,8 @@ - - + + @@ -1775,7 +1776,7 @@ - + @@ -1790,7 +1791,7 @@ - + @@ -1803,7 +1804,7 @@ - + @@ -1813,7 +1814,7 @@ - + @@ -1823,7 +1824,7 @@ - + @@ -1833,7 +1834,7 @@ - + @@ -1845,7 +1846,7 @@ - + @@ -1858,7 +1859,7 @@ - + @@ -1868,7 +1869,7 @@ - + @@ -1878,7 +1879,7 @@ - + @@ -1888,7 +1889,7 @@ - + @@ -1900,7 +1901,7 @@ - + @@ -1913,7 +1914,7 @@ - + @@ -1923,7 +1924,7 @@ - + @@ -1933,7 +1934,7 @@ - + @@ -1943,7 +1944,7 @@ - + From 45140a909d62c1094cc81d8d586a6a34bfaa78fa Mon Sep 17 00:00:00 2001 From: salmanoe Date: Mon, 9 Jan 2023 13:20:01 +0700 Subject: [PATCH 4/9] Update IndekKinerjaServiceImpl.java Penambahan aturan remunerasi dokter kk perinatologi --- .../medifirst2000/constants/Master.java | 1 + .../service/impl/IndekKinerjaServiceImpl.java | 384 ++++++++++++++++++ 2 files changed, 385 insertions(+) diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/constants/Master.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/constants/Master.java index 96e49dae..18fcbc73 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/constants/Master.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/constants/Master.java @@ -401,6 +401,7 @@ public class Master { public static final Integer KK_PATOLOGI_ANATOMI = 197; public static final Integer KK_PATOLOGI_KLINIK = 199; public static final Integer KK_PEDIATRIK_GD = 244; + public static final Integer KK_PERINATOLOGI = 217; public static final Integer KK_RADIOLOGI = 203; public static final Integer KK_UMUM = 222; public static final Integer SUBBAG_KESEJAHTERAAN = 26; diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/IndekKinerjaServiceImpl.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/IndekKinerjaServiceImpl.java index 89fbdfbc..de8cc54f 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/IndekKinerjaServiceImpl.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/IndekKinerjaServiceImpl.java @@ -2706,6 +2706,7 @@ public class IndekKinerjaServiceImpl extends BaseVoServiceImpl implements IndekK List drAnastesiList = pegawaiDao.getDokterByKelompokKerja(Master.SubUnitKerja.KK_ANESTESI); List drKsmUmumList = pegawaiDao.getDokterByKelompokKerja(Master.SubUnitKerja.KK_UMUM); List drKkPediatrikGDList = pegawaiDao.getDokterByKelompokKerja(Master.SubUnitKerja.KK_PEDIATRIK_GD); + List drKkPerinatologiList = pegawaiDao.getDokterByKelompokKerja(Master.SubUnitKerja.KK_PERINATOLOGI); List laboranRadiologList = mapPegawaiLaboratRadiologiDao.findPegawaiLaboranRadiolog(); List idsRegDJPAdminNonPK = splitDataSettingDatafixed("admin_nonpk"); @@ -2734,6 +2735,7 @@ public class IndekKinerjaServiceImpl extends BaseVoServiceImpl implements IndekK List idsDokterUmumIGD = splitDataSettingDatafixed("pr_dokter_umum_igd"); List idsDokterPediatrikGD = splitDataSettingDatafixed("pr_dokter_pediatrik_gd"); + List idsDokterPerinatologi = splitDataSettingDatafixed("pr_dokter_perinatologi"); List idsPenunjangBukanAnestesi = splitDataSettingDatafixed("pr_penunjang_nonanestesi"); Double komponenDasar = Double.parseDouble(GetSettingDataFixed("ld_komponen_dasar")); Double persenOperator = Double.parseDouble(GetSettingDataFixed("ld_persen_operator")); @@ -2953,6 +2955,97 @@ public class IndekKinerjaServiceImpl extends BaseVoServiceImpl implements IndekK datePulang = datePulang.plusDays(1); } + if (Arrays.asList(Master.Departemen.GRUP_RAWAT_INAP) + .contains(Integer.parseInt(map.get("departemenId").toString())) + && ((dateTimePelayanan.isEqual(dateMasuk) || dateTimePelayanan.isAfter(dateMasuk)) + && dateTimePelayanan.isBefore(datePulang))) { + rawResult.add(map); + } else if (map.get("departemenId").equals(Master.Departemen.RAWAT_INAP) + && !Arrays.asList(Master.Ruangan.NONRANAP).contains(map.get("ruanganId")) + && Arrays.stream(Master.KONSUL_VISIT) + .anyMatch(map.get("namaProduk").toString().toLowerCase()::contains) + && (dateTimePelayanan.isBefore(dateMasuk) || dateTimePelayanan.isEqual(datePulang) + || dateTimePelayanan.isAfter(datePulang))) { + rawResult.add(map); + } else if (Arrays.asList(Master.Departemen.GRUP_RAWAT_INAP) + .contains(Integer.parseInt(map.get("departemenId").toString())) + && (dateTimePelayanan.isBefore(dateMasuk) || dateTimePelayanan.isEqual(datePulang) + || dateTimePelayanan.isAfter(datePulang)) + && Arrays.asList(Master.Kelas.KELAS_DUA_TIGA_NONKELAS) + .contains(Integer.parseInt(map.get("idKelas").toString()))) { + rawResult.add(map); + } else if (map.get("departemenId").equals(Master.Departemen.RAWAT_JALAN) + && map.get("namaShift").toString().equals("Non Shift") + && CommonUtil.isNotNullOrEmpty(jamPulangPSBB) + && (dateTimePelayanan.isEqual(PSBBDate) || dateTimePelayanan.isAfter(PSBBDate)) + && (dateTimePelayanan.isBefore(PSBBEnd) || dateTimePelayanan.isEqual(PSBBEnd))) { + if (((dateTimePelayanan.isEqual(dateMasuk) || dateTimePelayanan.isAfter(dateMasuk)) + && dateTimePelayanan.isBefore(datePulangPSBB))) { + rawResult.add(map); + } + } else if (Arrays.asList(Master.Departemen.GRUP_RAWAT_JALAN) + .contains(Integer.parseInt(map.get("departemenId").toString())) + && ((dateTimePelayanan.isEqual(dateMasuk) || dateTimePelayanan.isAfter(dateMasuk)) + && dateTimePelayanan.isBefore(datePulang))) { + rawResult.add(map); + } + } else if (CommonUtil.isNullOrEmpty(map.get("jamMasuk")) + && Arrays.asList(Master.Departemen.GRUP_RAWAT_INAP) + .contains(Integer.parseInt(map.get("departemenId").toString())) + && Arrays.asList(Master.Kelas.KELAS_DUA_TIGA_NONKELAS) + .contains(Integer.parseInt(map.get("idKelas").toString()))) { + rawResult.add(map); + } + + } else if (!listDetailJenisProduk.contains(Integer.parseInt(map.get("detailId").toString())) + && drKkPerinatologiList.contains(idPegawai) + && idsDokterPerinatologi.contains(Integer.parseInt(map.get("idProduk").toString()))) { + if (Master.KelompokPasien.BPJS.equals(Integer.parseInt(map.get("kelompokPasienId").toString())) + || Master.KelompokPasien.KEMENKES + .equals(Integer.parseInt(map.get("kelompokPasienId").toString())) + || Master.KelompokPasien.JAMKESDA + .equals(Integer.parseInt(map.get("kelompokPasienId").toString()))) { + rawResult.add(map); + } else if (CommonUtil.isNotNullOrEmpty(map.get("jamMasuk"))) { + Date tanggalPelayanan = (Date) map.get("tanggalPelayanan"); + String tglPelayanan = new SimpleDateFormat("yyyy-MM-dd").format(tanggalPelayanan); + String waktuPelayanan = new SimpleDateFormat("HH:mm:ss").format(tanggalPelayanan); + LocalDate datePelayanan = LocalDate.parse(tglPelayanan); + LocalTime timePelayanan = LocalTime.parse(waktuPelayanan); + LocalDateTime dateTimePelayanan = LocalDateTime.of(datePelayanan, timePelayanan); + + String jamMasuk = map.get("jamMasuk").toString().substring(0, 2) + ":" + + map.get("jamMasuk").toString().substring(3) + ":00"; + LocalTime timeMasuk = LocalTime.parse(jamMasuk); + LocalDateTime dateMasuk = LocalDateTime.of(datePelayanan, timeMasuk); + + String jamPulang = map.get("jamPulang").toString().substring(0, 2) + ":" + + map.get("jamPulang").toString().substring(3) + ":00"; + LocalTime timePulang = LocalTime.parse(jamPulang); + LocalDateTime datePulang = LocalDateTime.of(datePelayanan, timePulang); + + String jamPulangPSBB = ""; + LocalTime timePulangPSBB = LocalTime.now(); + LocalDateTime datePulangPSBB = LocalDateTime.now(); + if (getDayOfWeek((Date) map.get("tanggalPelayanan")) == 1 + || getDayOfWeek((Date) map.get("tanggalPelayanan")) == 2 + || getDayOfWeek((Date) map.get("tanggalPelayanan")) == 3 + || getDayOfWeek((Date) map.get("tanggalPelayanan")) == 4) { + jamPulangPSBB = "14:00:00"; + timePulangPSBB = LocalTime.parse(jamPulangPSBB); + datePulangPSBB = LocalDateTime.of(datePelayanan, timePulangPSBB); + } else if (getDayOfWeek((Date) map.get("tanggalPelayanan")) == 5) { + jamPulangPSBB = "14:30:00"; + timePulangPSBB = LocalTime.parse(jamPulangPSBB); + datePulangPSBB = LocalDateTime.of(datePelayanan, timePulangPSBB); + } else { + datePulangPSBB = LocalDateTime.of(datePelayanan, timePulang); + } + + if (map.get("namaShift").toString().contains("Malam")) { + datePulang = datePulang.plusDays(1); + } + if (Arrays.asList(Master.Departemen.GRUP_RAWAT_INAP) .contains(Integer.parseInt(map.get("departemenId").toString())) && ((dateTimePelayanan.isEqual(dateMasuk) || dateTimePelayanan.isAfter(dateMasuk)) @@ -3957,6 +4050,7 @@ public class IndekKinerjaServiceImpl extends BaseVoServiceImpl implements IndekK List drAnastesiList = pegawaiDao.getDokterByKelompokKerja(Master.SubUnitKerja.KK_ANESTESI); List drKsmUmumList = pegawaiDao.getDokterByKelompokKerja(Master.SubUnitKerja.KK_UMUM); List drKkPediatrikGDList = pegawaiDao.getDokterByKelompokKerja(Master.SubUnitKerja.KK_PEDIATRIK_GD); + List drKkPerinatologiList = pegawaiDao.getDokterByKelompokKerja(Master.SubUnitKerja.KK_PERINATOLOGI); List laboranRadiologList = mapPegawaiLaboratRadiologiDao.findPegawaiLaboranRadiolog(); List idsRegDJPAdminNonPK = splitDataSettingDatafixed("admin_nonpk"); @@ -3985,6 +4079,7 @@ public class IndekKinerjaServiceImpl extends BaseVoServiceImpl implements IndekK List idsDokterUmumIGD = splitDataSettingDatafixed("pr_dokter_umum_igd"); List idsDokterPediatrikGD = splitDataSettingDatafixed("pr_dokter_pediatrik_gd"); + List idsDokterPerinatologi = splitDataSettingDatafixed("pr_dokter_perinatologi"); List idsPenunjangBukanAnestesi = splitDataSettingDatafixed("pr_penunjang_nonanestesi"); Double komponenDasar = Double.parseDouble(GetSettingDataFixed("ld_komponen_dasar")); Double persenOperator = Double.parseDouble(GetSettingDataFixed("ld_persen_operator")); @@ -4205,6 +4300,96 @@ public class IndekKinerjaServiceImpl extends BaseVoServiceImpl implements IndekK datePulang = datePulang.plusDays(1); } + if (Arrays.asList(Master.Departemen.GRUP_RAWAT_INAP) + .contains(Integer.parseInt(map.get("departemenId").toString())) + && ((dateTimePelayanan.isEqual(dateMasuk) || dateTimePelayanan.isAfter(dateMasuk)) + && dateTimePelayanan.isBefore(datePulang))) { + rawResult.add(map); + } else if (map.get("departemenId").equals(Master.Departemen.RAWAT_INAP) + && !Arrays.asList(Master.Ruangan.NONRANAP).contains(map.get("ruanganId")) + && Arrays.stream(Master.KONSUL_VISIT) + .anyMatch(map.get("namaProduk").toString().toLowerCase()::contains) + && (dateTimePelayanan.isBefore(dateMasuk) || dateTimePelayanan.isEqual(datePulang) + || dateTimePelayanan.isAfter(datePulang))) { + rawResult.add(map); + } else if (Arrays.asList(Master.Departemen.GRUP_RAWAT_INAP) + .contains(Integer.parseInt(map.get("departemenId").toString())) + && (dateTimePelayanan.isBefore(dateMasuk) || dateTimePelayanan.isEqual(datePulang) + || dateTimePelayanan.isAfter(datePulang)) + && Arrays.asList(Master.Kelas.KELAS_DUA_TIGA_NONKELAS) + .contains(Integer.parseInt(map.get("idKelas").toString()))) { + rawResult.add(map); + } else if (map.get("departemenId").equals(Master.Departemen.RAWAT_JALAN) + && map.get("namaShift").toString().equals("Non Shift") + && CommonUtil.isNotNullOrEmpty(jamPulangPSBB) + && (dateTimePelayanan.isEqual(PSBBDate) || dateTimePelayanan.isAfter(PSBBDate)) + && (dateTimePelayanan.isBefore(PSBBEnd) || dateTimePelayanan.isEqual(PSBBEnd))) { + if (((dateTimePelayanan.isEqual(dateMasuk) || dateTimePelayanan.isAfter(dateMasuk)) + && dateTimePelayanan.isBefore(datePulangPSBB))) { + rawResult.add(map); + } + } else if (Arrays.asList(Master.Departemen.GRUP_RAWAT_JALAN) + .contains(Integer.parseInt(map.get("departemenId").toString())) + && ((dateTimePelayanan.isEqual(dateMasuk) || dateTimePelayanan.isAfter(dateMasuk)) + && dateTimePelayanan.isBefore(datePulang))) { + rawResult.add(map); + } + } else if (CommonUtil.isNullOrEmpty(map.get("jamMasuk")) + && Arrays.asList(Master.Departemen.GRUP_RAWAT_INAP) + .contains(Integer.parseInt(map.get("departemenId").toString())) + && Arrays.asList(Master.Kelas.KELAS_DUA_TIGA_NONKELAS) + .contains(Integer.parseInt(map.get("idKelas").toString()))) { + rawResult.add(map); + } + } else if (!listDetailJenisProduk.contains(Integer.parseInt(map.get("detailId").toString())) + && drKkPerinatologiList.contains(idPegawai) + && idsDokterPerinatologi.contains(Integer.parseInt(map.get("idProduk").toString()))) { + if (Master.KelompokPasien.BPJS.equals(Integer.parseInt(map.get("kelompokPasienId").toString())) + || Master.KelompokPasien.KEMENKES + .equals(Integer.parseInt(map.get("kelompokPasienId").toString())) + || Master.KelompokPasien.JAMKESDA + .equals(Integer.parseInt(map.get("kelompokPasienId").toString()))) { + rawResult.add(map); + } else if (CommonUtil.isNotNullOrEmpty(map.get("jamMasuk"))) { + Date tanggalPelayanan = (Date) map.get("tanggalPelayanan"); + String tglPelayanan = new SimpleDateFormat("yyyy-MM-dd").format(tanggalPelayanan); + String waktuPelayanan = new SimpleDateFormat("HH:mm:ss").format(tanggalPelayanan); + LocalDate datePelayanan = LocalDate.parse(tglPelayanan); + LocalTime timePelayanan = LocalTime.parse(waktuPelayanan); + LocalDateTime dateTimePelayanan = LocalDateTime.of(datePelayanan, timePelayanan); + + String jamMasuk = map.get("jamMasuk").toString().substring(0, 2) + ":" + + map.get("jamMasuk").toString().substring(3) + ":00"; + LocalTime timeMasuk = LocalTime.parse(jamMasuk); + LocalDateTime dateMasuk = LocalDateTime.of(datePelayanan, timeMasuk); + + String jamPulang = map.get("jamPulang").toString().substring(0, 2) + ":" + + map.get("jamPulang").toString().substring(3) + ":00"; + LocalTime timePulang = LocalTime.parse(jamPulang); + LocalDateTime datePulang = LocalDateTime.of(datePelayanan, timePulang); + + String jamPulangPSBB = ""; + LocalTime timePulangPSBB = LocalTime.now(); + LocalDateTime datePulangPSBB = LocalDateTime.now(); + if (getDayOfWeek((Date) map.get("tanggalPelayanan")) == 1 + || getDayOfWeek((Date) map.get("tanggalPelayanan")) == 2 + || getDayOfWeek((Date) map.get("tanggalPelayanan")) == 3 + || getDayOfWeek((Date) map.get("tanggalPelayanan")) == 4) { + jamPulangPSBB = "14:00:00"; + timePulangPSBB = LocalTime.parse(jamPulangPSBB); + datePulangPSBB = LocalDateTime.of(datePelayanan, timePulangPSBB); + } else if (getDayOfWeek((Date) map.get("tanggalPelayanan")) == 5) { + jamPulangPSBB = "14:30:00"; + timePulangPSBB = LocalTime.parse(jamPulangPSBB); + datePulangPSBB = LocalDateTime.of(datePelayanan, timePulangPSBB); + } else { + datePulangPSBB = LocalDateTime.of(datePelayanan, timePulang); + } + + if (map.get("namaShift").toString().contains("Malam")) { + datePulang = datePulang.plusDays(1); + } + if (Arrays.asList(Master.Departemen.GRUP_RAWAT_INAP) .contains(Integer.parseInt(map.get("departemenId").toString())) && ((dateTimePelayanan.isEqual(dateMasuk) || dateTimePelayanan.isAfter(dateMasuk)) @@ -5113,6 +5298,7 @@ public class IndekKinerjaServiceImpl extends BaseVoServiceImpl implements IndekK List laboranRadiologList = mapPegawaiLaboratRadiologiDao.findPegawaiLaboranRadiolog(); List drKsmUmumList = pegawaiDao.getDokterByKelompokKerja(Master.SubUnitKerja.KK_UMUM); List drKkPediatrikGDList = pegawaiDao.getDokterByKelompokKerja(Master.SubUnitKerja.KK_PEDIATRIK_GD); + List drKkPerinatologiList = pegawaiDao.getDokterByKelompokKerja(Master.SubUnitKerja.KK_PERINATOLOGI); List idsRegDJPAdminNonPK = splitDataSettingDatafixed("admin_nonpk"); List idsRegDJPMedisUtama = splitDataSettingDatafixed("medis_utama"); @@ -5145,6 +5331,7 @@ public class IndekKinerjaServiceImpl extends BaseVoServiceImpl implements IndekK List idsDokterUmumIGD = splitDataSettingDatafixed("pr_dokter_umum_igd"); List idsDokterPediatrikGD = splitDataSettingDatafixed("pr_dokter_pediatrik_gd"); + List idsDokterPerinatologi = splitDataSettingDatafixed("pr_dokter_perinatologi"); if (!ffs) { if (CommonUtil.isNotNullOrEmpty(listData)) { @@ -5598,6 +5785,203 @@ public class IndekKinerjaServiceImpl extends BaseVoServiceImpl implements IndekK } } } + } else if (!listDetailJenisProduk.contains(Integer.parseInt(map.get("detailId").toString())) + && drKkPerinatologiList.contains(idPegawai) + && idsDokterPerinatologi.contains(Integer.parseInt(map.get("idProduk").toString()))) { + if (Master.KelompokPasien.BPJS + .equals(Integer.parseInt(map.get("kelompokPasienId").toString())) + || Master.KelompokPasien.KEMENKES + .equals(Integer.parseInt(map.get("kelompokPasienId").toString())) + || Master.KelompokPasien.JAMKESDA + .equals(Integer.parseInt(map.get("kelompokPasienId").toString()))) { + if (diskon > 0 && (CommonUtil.isNullOrEmpty(statusDiskon) || statusDiskon.equals(0))) { + if (Double.valueOf(map.get("diskon").toString()) > 0 + && (CommonUtil.isNullOrEmpty(map.get("statusDiskon")) + || Integer.valueOf(map.get("statusDiskon").toString()).equals(0))) { + result.add(map); + } + } else { + if (Double.valueOf(map.get("diskon").toString()) == 0 + || (Double.valueOf(map.get("diskon").toString()) > 0 + && CommonUtil.isNotNullOrEmpty(map.get("statusDiskon")) && !Integer + .valueOf(map.get("statusDiskon").toString()).equals(0))) { + result.add(map); + } + } + } else if (CommonUtil.isNotNullOrEmpty(map.get("jamMasuk"))) { + Date tanggalPelayanan = (Date) map.get("tanggalPelayanan"); + String tglPelayanan = new SimpleDateFormat("yyyy-MM-dd").format(tanggalPelayanan); + String waktuPelayanan = new SimpleDateFormat("HH:mm:ss").format(tanggalPelayanan); + LocalDate datePelayanan = LocalDate.parse(tglPelayanan); + LocalTime timePelayanan = LocalTime.parse(waktuPelayanan); + LocalDateTime dateTimePelayanan = LocalDateTime.of(datePelayanan, timePelayanan); + + String jamMasuk = map.get("jamMasuk").toString().substring(0, 2) + ":" + + map.get("jamMasuk").toString().substring(3) + ":00"; + LocalTime timeMasuk = LocalTime.parse(jamMasuk); + LocalDateTime dateMasuk = LocalDateTime.of(datePelayanan, timeMasuk); + + String jamPulang = map.get("jamPulang").toString().substring(0, 2) + ":" + + map.get("jamPulang").toString().substring(3) + ":00"; + LocalTime timePulang = LocalTime.parse(jamPulang); + LocalDateTime datePulang = LocalDateTime.of(datePelayanan, timePulang); + + String jamPulangPSBB = ""; + LocalTime timePulangPSBB = LocalTime.now(); + LocalDateTime datePulangPSBB = LocalDateTime.now(); + if (getDayOfWeek((Date) map.get("tanggalPelayanan")) == 1 + || getDayOfWeek((Date) map.get("tanggalPelayanan")) == 2 + || getDayOfWeek((Date) map.get("tanggalPelayanan")) == 3 + || getDayOfWeek((Date) map.get("tanggalPelayanan")) == 4) { + jamPulangPSBB = "14:00:00"; + timePulangPSBB = LocalTime.parse(jamPulangPSBB); + datePulangPSBB = LocalDateTime.of(datePelayanan, timePulangPSBB); + } else if (getDayOfWeek((Date) map.get("tanggalPelayanan")) == 5) { + jamPulangPSBB = "14:30:00"; + timePulangPSBB = LocalTime.parse(jamPulangPSBB); + datePulangPSBB = LocalDateTime.of(datePelayanan, timePulangPSBB); + } else { + datePulangPSBB = LocalDateTime.of(datePelayanan, timePulang); + } + + if (map.get("namaShift").toString().contains("Malam")) { + datePulang = datePulang.plusDays(1); + } + + if (Arrays.asList(Master.Departemen.GRUP_RAWAT_INAP) + .contains(Integer.parseInt(map.get("departemenId").toString())) + && ((dateTimePelayanan.isEqual(dateMasuk) + || dateTimePelayanan.isAfter(dateMasuk)) + && dateTimePelayanan.isBefore(datePulang))) { + if (diskon > 0 + && (CommonUtil.isNullOrEmpty(statusDiskon) || statusDiskon.equals(0))) { + if (Double.valueOf(map.get("diskon").toString()) > 0 + && (CommonUtil.isNullOrEmpty(map.get("statusDiskon")) || Integer + .valueOf(map.get("statusDiskon").toString()).equals(0))) { + result.add(map); + } + } else { + if (Double.valueOf(map.get("diskon").toString()) == 0 + || (Double.valueOf(map.get("diskon").toString()) > 0 + && CommonUtil.isNotNullOrEmpty(map.get("statusDiskon")) + && !Integer.valueOf(map.get("statusDiskon").toString()) + .equals(0))) { + result.add(map); + } + } + } else if (map.get("departemenId").equals(Master.Departemen.RAWAT_INAP) + && !Arrays.asList(Master.Ruangan.NONRANAP).contains(map.get("ruanganId")) + && Arrays.stream(Master.KONSUL_VISIT) + .anyMatch(map.get("namaProduk").toString().toLowerCase()::contains) + && (dateTimePelayanan.isBefore(dateMasuk) + || dateTimePelayanan.isEqual(datePulang) + || dateTimePelayanan.isAfter(datePulang))) { + if (diskon > 0 + && (CommonUtil.isNullOrEmpty(statusDiskon) || statusDiskon.equals(0))) { + if (Double.valueOf(map.get("diskon").toString()) > 0 + && (CommonUtil.isNullOrEmpty(map.get("statusDiskon")) || Integer + .valueOf(map.get("statusDiskon").toString()).equals(0))) { + result.add(map); + } + } else { + if (Double.valueOf(map.get("diskon").toString()) == 0 + || (Double.valueOf(map.get("diskon").toString()) > 0 + && CommonUtil.isNotNullOrEmpty(map.get("statusDiskon")) + && !Integer.valueOf(map.get("statusDiskon").toString()) + .equals(0))) { + result.add(map); + } + } + } else if (Arrays.asList(Master.Departemen.GRUP_RAWAT_INAP) + .contains(Integer.parseInt(map.get("departemenId").toString())) + && (dateTimePelayanan.isBefore(dateMasuk) + || dateTimePelayanan.isEqual(datePulang) + || dateTimePelayanan.isAfter(datePulang)) + && Arrays.asList(Master.Kelas.KELAS_DUA_TIGA_NONKELAS) + .contains(Integer.parseInt(map.get("idKelas").toString()))) { + if (diskon > 0 + && (CommonUtil.isNullOrEmpty(statusDiskon) || statusDiskon.equals(0))) { + if (Double.valueOf(map.get("diskon").toString()) > 0 + && (CommonUtil.isNullOrEmpty(map.get("statusDiskon")) || Integer + .valueOf(map.get("statusDiskon").toString()).equals(0))) { + result.add(map); + } + } else { + if (Double.valueOf(map.get("diskon").toString()) == 0 + || (Double.valueOf(map.get("diskon").toString()) > 0 + && CommonUtil.isNotNullOrEmpty(map.get("statusDiskon")) + && !Integer.valueOf(map.get("statusDiskon").toString()) + .equals(0))) { + result.add(map); + } + } + } else if (map.get("departemenId").equals(Master.Departemen.RAWAT_JALAN) + && map.get("namaShift").toString().equals("Non Shift") + && CommonUtil.isNotNullOrEmpty(jamPulangPSBB) + && (dateTimePelayanan.isEqual(PSBBDate) || dateTimePelayanan.isAfter(PSBBDate)) + && (dateTimePelayanan.isBefore(PSBBEnd) + || dateTimePelayanan.isEqual(PSBBEnd))) { + if (((dateTimePelayanan.isEqual(dateMasuk) || dateTimePelayanan.isAfter(dateMasuk)) + && dateTimePelayanan.isBefore(datePulangPSBB))) { + if (diskon > 0 + && (CommonUtil.isNullOrEmpty(statusDiskon) || statusDiskon.equals(0))) { + if (Double.valueOf(map.get("diskon").toString()) > 0 + && (CommonUtil.isNullOrEmpty(map.get("statusDiskon")) || Integer + .valueOf(map.get("statusDiskon").toString()).equals(0))) { + result.add(map); + } + } else { + if (Double.valueOf(map.get("diskon").toString()) == 0 + || (Double.valueOf(map.get("diskon").toString()) > 0 + && CommonUtil.isNotNullOrEmpty(map.get("statusDiskon")) + && !Integer.valueOf(map.get("statusDiskon").toString()) + .equals(0))) { + result.add(map); + } + } + } + } else if (Arrays.asList(Master.Departemen.GRUP_RAWAT_JALAN) + .contains(Integer.parseInt(map.get("departemenId").toString())) + && ((dateTimePelayanan.isEqual(dateMasuk) + || dateTimePelayanan.isAfter(dateMasuk)) + && dateTimePelayanan.isBefore(datePulang))) { + if (diskon > 0 + && (CommonUtil.isNullOrEmpty(statusDiskon) || statusDiskon.equals(0))) { + if (Double.valueOf(map.get("diskon").toString()) > 0 + && (CommonUtil.isNullOrEmpty(map.get("statusDiskon")) || Integer + .valueOf(map.get("statusDiskon").toString()).equals(0))) { + result.add(map); + } + } else { + if (Double.valueOf(map.get("diskon").toString()) == 0 + || (Double.valueOf(map.get("diskon").toString()) > 0 + && CommonUtil.isNotNullOrEmpty(map.get("statusDiskon")) + && !Integer.valueOf(map.get("statusDiskon").toString()) + .equals(0))) { + result.add(map); + } + } + } + } else if (CommonUtil.isNullOrEmpty(map.get("jamMasuk")) + && Arrays.asList(Master.Departemen.GRUP_RAWAT_INAP) + .contains(Integer.parseInt(map.get("departemenId").toString())) + && Arrays.asList(Master.Kelas.KELAS_DUA_TIGA_NONKELAS) + .contains(Integer.parseInt(map.get("idKelas").toString()))) { + if (diskon > 0 && (CommonUtil.isNullOrEmpty(statusDiskon) || statusDiskon.equals(0))) { + if (Double.valueOf(map.get("diskon").toString()) > 0 + && (CommonUtil.isNullOrEmpty(map.get("statusDiskon")) + || Integer.valueOf(map.get("statusDiskon").toString()).equals(0))) { + result.add(map); + } + } else { + if (Double.valueOf(map.get("diskon").toString()) == 0 + || (Double.valueOf(map.get("diskon").toString()) > 0 + && CommonUtil.isNotNullOrEmpty(map.get("statusDiskon")) && !Integer + .valueOf(map.get("statusDiskon").toString()).equals(0))) { + result.add(map); + } + } + } } else if (CommonUtil.isNotNullOrEmpty(listDetailJenisProdukException) && listDetailJenisProdukException .contains(Integer.parseInt(map.get("detailId").toString()))) { From d7f6f4ba5664846ab95a6b23d4526547df5f4e96 Mon Sep 17 00:00:00 2001 From: salmanoe Date: Mon, 9 Jan 2023 20:05:23 +0700 Subject: [PATCH 5/9] Update RegistrasiPelayananController.java Clean code --- .../controller/RegistrasiPelayananController.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/jasamedika-web/src/main/java/com/jasamedika/medifirst2000/controller/RegistrasiPelayananController.java b/jasamedika-web/src/main/java/com/jasamedika/medifirst2000/controller/RegistrasiPelayananController.java index f34e3a7c..db41b935 100644 --- a/jasamedika-web/src/main/java/com/jasamedika/medifirst2000/controller/RegistrasiPelayananController.java +++ b/jasamedika-web/src/main/java/com/jasamedika/medifirst2000/controller/RegistrasiPelayananController.java @@ -47,6 +47,7 @@ import com.jasamedika.medifirst2000.dao.StrukOrderDao; import com.jasamedika.medifirst2000.dto.EtiketPersetujuanUmum; import com.jasamedika.medifirst2000.dto.HasilLaboratoriumDto; import com.jasamedika.medifirst2000.dto.Antrian; +import com.jasamedika.medifirst2000.dto.AntrianPasienDiperiksaDto; import com.jasamedika.medifirst2000.dto.OrderPelayananGiziDto; import com.jasamedika.medifirst2000.dto.SuratEligibilitasAsuransi; import com.jasamedika.medifirst2000.entities.Alamat; @@ -741,12 +742,11 @@ public class RegistrasiPelayananController extends LocaleController { @RequestMapping(value = "/get-antrian-pasien/", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE) public ResponseEntity> getAntrianPasien( @RequestParam(value = "noRec", required = false) String noRec) { - AntrianPasienDiPeriksa resultPageMap = (AntrianPasienDiPeriksa) antrianPasienDiperiksaService.findAntrian(noRec) - .get(0); + AntrianPasienDiperiksaDto resultPageMap = antrianPasienDiperiksaService.findAntrian(noRec).get(0); try { - return RestUtil.getJsonResponse(resultPageMap.ToMap(), HttpStatus.OK, mapHeaderMessage); - } catch (IllegalArgumentException | IllegalAccessException e) { + return RestUtil.getJsonResponse(resultPageMap, HttpStatus.OK, mapHeaderMessage); + } catch (IllegalArgumentException e) { e.printStackTrace(); } return RestUtil.getJsonResponse(null, HttpStatus.NOT_FOUND, mapHeaderMessage); From f3183adbb3644d7a2503fad2b4c3804482427b3d Mon Sep 17 00:00:00 2001 From: salmanoe Date: Mon, 9 Jan 2023 20:08:17 +0700 Subject: [PATCH 6/9] Update MonitoringAbsenServiceImpl.java Perbaikan Monitoring absensi tidak tampil karena duplikat pengajuan cuti --- .../medifirst2000/dao/PegawaiHistoriRekapIndexDao.java | 2 +- .../service/impl/MonitoringAbsenServiceImpl.java | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/PegawaiHistoriRekapIndexDao.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/PegawaiHistoriRekapIndexDao.java index 2da48285..54f0f71a 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/PegawaiHistoriRekapIndexDao.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/PegawaiHistoriRekapIndexDao.java @@ -45,7 +45,7 @@ public interface PegawaiHistoriRekapIndexDao extends PagingAndSortingRepository< + "where planning.noRec = pegawaiHistori.noRecPlanningPerubahanStatus " + "and komponenIndex.id in (:listKomponenIndex) " + "and pegawai.id = :idPegawai " + "and to_char(listTanggal.tgl,'yyyy-MM-dd') = :date " + "and listTanggal.approvalStatus is true") - public Map getPegawaiHistoriRekapIndexByDate(@Param("idPegawai") Integer idPegawai, + public List> getPegawaiHistoriRekapIndexByDate(@Param("idPegawai") Integer idPegawai, @Param("listKomponenIndex") List listKomponenIndex, @Param("date") String date); @Query("select count(distinct rekInd.noRec) " + "from PegawaiHistoriRekapIndex rekInd, " diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/MonitoringAbsenServiceImpl.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/MonitoringAbsenServiceImpl.java index bba77de4..8ee0994b 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/MonitoringAbsenServiceImpl.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/MonitoringAbsenServiceImpl.java @@ -2231,7 +2231,7 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon @Transactional(readOnly = true) public String cuti(Integer idPegawai, String tgl) { - Map alasanKetidakhadiran = pegawaiHistoriRekapIndexDao.getPegawaiHistoriRekapIndexByDate( + List> alasanKetidakhadiran = pegawaiHistoriRekapIndexDao.getPegawaiHistoriRekapIndexByDate( idPegawai, splitDataSettingDatafixed("komponenIndeksKetidakhadiran"), tgl); if (CommonUtil.isNullOrEmpty(alasanKetidakhadiran)) { alasanKetidakhadiran = pegawaiHistoriRekapIndexDao.getPegawaiHistoriRekapIndexByDate(idPegawai, @@ -2239,8 +2239,8 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon } String cuti = ""; if (CommonUtil.isNotNullOrEmpty(alasanKetidakhadiran)) { - if (CommonUtil.isNotNullOrEmpty(alasanKetidakhadiran.get("noRecHistory"))) { - cuti = alasanKetidakhadiran.get("alasan").toString(); + if (CommonUtil.isNotNullOrEmpty(alasanKetidakhadiran.get(0).get("noRecHistory"))) { + cuti = alasanKetidakhadiran.get(0).get("alasan").toString(); } } From 35d4e991eb348b5db8a5c7d55b5af13d733b95a7 Mon Sep 17 00:00:00 2001 From: salmanoe Date: Tue, 10 Jan 2023 08:32:50 +0700 Subject: [PATCH 7/9] Update IndekKinerjaServiceImpl.java Pembuatan fitur restriksi poin dokter perinatologi 2 poin per-hari untuk visite dan monitoring intervensi --- .../medifirst2000/constants/Master.java | 7 +- .../service/impl/IndekKinerjaServiceImpl.java | 70 +++++++++++++++++-- .../resources/jdbc.development.properties | 4 +- 3 files changed, 71 insertions(+), 10 deletions(-) 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 18fcbc73..6528d282 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 @@ -235,8 +235,8 @@ public class Master { /** * Komponen operator dari tarif konsultasi dokter spesialis */ - public static final Double KOMPONEN_DASAR = 120000.0; - + public static final Double KOMPONEN_DASAR = 120000.0; + public static final Double PERSENTASE_TINDAKAN_ASISTEN_SPESIALIS = 15.0; public static final Double PERSENTASE_TINDAKAN_DOKTER_PEMERIKSA = 30.0; public static final Double PERSENTASE_TINDAKAN_DOKTER_ANASTESI = 15.0; @@ -289,6 +289,7 @@ public class Master { public static final Integer[] DOKTER_UMUM_IGD = { 783, 401333, 402413, 402414, 402449, 402484 }; public static final Integer[] KONSULTASI_EKSEKUTIF = { 401092, 401093 }; + public static final Integer[] MONITORING_INTERVENSI = { 10666, 4037948 }; public static final Integer[] PENUNJANG_BUKAN_ANASTESI = { 13409, 15208, 19325, 19346, 19371, 19405, 19406, 19535, 19599, 402009, 10009835, 10012269, 1002117344, 1002117938, 1002117963, 1002117964, 1002117965, 1002117966 }; @@ -334,7 +335,7 @@ public class Master { public static final Integer[] PENUNJANG_MURNI = { 39, 276 }; public static final Integer[] PERISTI = { 45, 75, 76, 463, 464 }; public static final Integer[] TANJUNG = { 72, 551 }; - + public static final Integer ICU = 328; public static final int KLINIK_FALSE_EMERGENCY = 309; 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 de8cc54f..684db3bb 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 @@ -2996,7 +2996,7 @@ public class IndekKinerjaServiceImpl extends BaseVoServiceImpl implements IndekK .contains(Integer.parseInt(map.get("idKelas").toString()))) { rawResult.add(map); } - + } else if (!listDetailJenisProduk.contains(Integer.parseInt(map.get("detailId").toString())) && drKkPerinatologiList.contains(idPegawai) && idsDokterPerinatologi.contains(Integer.parseInt(map.get("idProduk").toString()))) { @@ -3225,7 +3225,22 @@ public class IndekKinerjaServiceImpl extends BaseVoServiceImpl implements IndekK && (Double.parseDouble(map.get("diskon").toString()) > 0 && (CommonUtil.isNullOrEmpty(map.get("statusDiskon")) || Integer .valueOf(map.get("statusDiskon").toString()).equals(0)))) { - count1 = count1 + Double.parseDouble(map.get("count").toString()); + if (drKkPerinatologiList.contains(idPegawai)) { + if ((Arrays.asList(Master.Produk.MONITORING_INTERVENSI) + .contains(map.get("idProduk")) + || map.get("namaProduk").toString().toLowerCase() + .contains(Master.VISIT)) + && count1 < 2) { + count1 = count1 + Double.parseDouble(map.get("count").toString()); + } else if (!Arrays.asList(Master.Produk.MONITORING_INTERVENSI) + .contains(map.get("idProduk")) + && !map.get("namaProduk").toString().toLowerCase() + .contains(Master.VISIT)) { + count1 = count1 + Double.parseDouble(map.get("count").toString()); + } + } else { + count1 = count1 + Double.parseDouble(map.get("count").toString()); + } dataCount1 = dataCount1 + 1; if (dataCount1 == 1) { mapResult1.putAll(map); @@ -3234,7 +3249,22 @@ public class IndekKinerjaServiceImpl extends BaseVoServiceImpl implements IndekK && Integer.parseInt(map.get("idKelas").toString()) == idKelas && Integer.parseInt(map.get("idJenisPelaksana").toString()) == idPelaksana && map.get("tanggal").toString().equals(tanggal)) { - count2 = count2 + Double.parseDouble(map.get("count").toString()); + if (drKkPerinatologiList.contains(idPegawai)) { + if ((Arrays.asList(Master.Produk.MONITORING_INTERVENSI) + .contains(map.get("idProduk")) + || map.get("namaProduk").toString().toLowerCase() + .contains(Master.VISIT)) + && count2 < 2) { + count2 = count2 + Double.parseDouble(map.get("count").toString()); + } else if (!Arrays.asList(Master.Produk.MONITORING_INTERVENSI) + .contains(map.get("idProduk")) + && !map.get("namaProduk").toString().toLowerCase() + .contains(Master.VISIT)) { + count2 = count2 + Double.parseDouble(map.get("count").toString()); + } + } else { + count2 = count2 + Double.parseDouble(map.get("count").toString()); + } dataCount2 = dataCount2 + 1; if (dataCount2 == 1) { mapResult2.putAll(map); @@ -4569,7 +4599,22 @@ public class IndekKinerjaServiceImpl extends BaseVoServiceImpl implements IndekK && (Double.valueOf(map.get("diskon").toString()) > 0 && (CommonUtil.isNullOrEmpty(map.get("statusDiskon")) || Integer .valueOf(map.get("statusDiskon").toString()).equals(0)))) { - count1 = count1 + Double.parseDouble(map.get("count").toString()); + if (drKkPerinatologiList.contains(idPegawai)) { + if ((Arrays.asList(Master.Produk.MONITORING_INTERVENSI) + .contains(map.get("idProduk")) + || map.get("namaProduk").toString().toLowerCase() + .contains(Master.VISIT)) + && count1 < 2) { + count1 = count1 + Double.parseDouble(map.get("count").toString()); + } else if (!Arrays.asList(Master.Produk.MONITORING_INTERVENSI) + .contains(map.get("idProduk")) + && !map.get("namaProduk").toString().toLowerCase() + .contains(Master.VISIT)) { + count1 = count1 + Double.parseDouble(map.get("count").toString()); + } + } else { + count1 = count1 + Double.parseDouble(map.get("count").toString()); + } dataCount1 = dataCount1 + 1; if (dataCount1 == 1) { mapResult1.putAll(map); @@ -4578,7 +4623,22 @@ public class IndekKinerjaServiceImpl extends BaseVoServiceImpl implements IndekK && Integer.parseInt(map.get("idKelas").toString()) == idKelas && Integer.parseInt(map.get("idJenisPelaksana").toString()) == idPelaksana && map.get("tanggal").toString().equals(tanggal)) { - count2 = count2 + Double.parseDouble(map.get("count").toString()); + if (drKkPerinatologiList.contains(idPegawai)) { + if ((Arrays.asList(Master.Produk.MONITORING_INTERVENSI) + .contains(map.get("idProduk")) + || map.get("namaProduk").toString().toLowerCase() + .contains(Master.VISIT)) + && count2 < 2) { + count2 = count2 + Double.parseDouble(map.get("count").toString()); + } else if (!Arrays.asList(Master.Produk.MONITORING_INTERVENSI) + .contains(map.get("idProduk")) + && !map.get("namaProduk").toString().toLowerCase() + .contains(Master.VISIT)) { + count2 = count2 + Double.parseDouble(map.get("count").toString()); + } + } else { + count2 = count2 + Double.parseDouble(map.get("count").toString()); + } dataCount2 = dataCount2 + 1; if (dataCount2 == 1) { mapResult2.putAll(map); diff --git a/jasamedika-config/src/main/resources/jdbc.development.properties b/jasamedika-config/src/main/resources/jdbc.development.properties index 1d9ca0b9..b51392ca 100644 --- a/jasamedika-config/src/main/resources/jdbc.development.properties +++ b/jasamedika-config/src/main/resources/jdbc.development.properties @@ -8,11 +8,11 @@ hibernate.show_sql = true hikari.config.maximum.pool.size = 5 # DB Development -jdbc.url = jdbc:postgresql://192.168.12.3:5432/production_backup_18_06_2022 +jdbc.url = jdbc:postgresql://192.168.12.3:5432/backup_20230104 jdbc.username = postgres jdbc.password = root jdbc.serverName = 192.168.12.3 -jdbc.databaseName = production_backup_18_06_2022 +jdbc.databaseName = backup_20230104 jdbc.portNumber = 5432 corePoolSizeAsyncConfigurer = 5 From c197f2c381b847d5e2c885dc45ef97db72eb1d2f Mon Sep 17 00:00:00 2001 From: salmanoe Date: Tue, 10 Jan 2023 09:42:14 +0700 Subject: [PATCH 8/9] Update IndekKinerjaServiceImpl.java Rollback aturan pembatasan 2 kali visite di hari dan pasien yang sama --- .../service/impl/IndekKinerjaServiceImpl.java | 68 ++----------------- 1 file changed, 4 insertions(+), 64 deletions(-) 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 684db3bb..8b423667 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 @@ -3225,22 +3225,7 @@ public class IndekKinerjaServiceImpl extends BaseVoServiceImpl implements IndekK && (Double.parseDouble(map.get("diskon").toString()) > 0 && (CommonUtil.isNullOrEmpty(map.get("statusDiskon")) || Integer .valueOf(map.get("statusDiskon").toString()).equals(0)))) { - if (drKkPerinatologiList.contains(idPegawai)) { - if ((Arrays.asList(Master.Produk.MONITORING_INTERVENSI) - .contains(map.get("idProduk")) - || map.get("namaProduk").toString().toLowerCase() - .contains(Master.VISIT)) - && count1 < 2) { - count1 = count1 + Double.parseDouble(map.get("count").toString()); - } else if (!Arrays.asList(Master.Produk.MONITORING_INTERVENSI) - .contains(map.get("idProduk")) - && !map.get("namaProduk").toString().toLowerCase() - .contains(Master.VISIT)) { - count1 = count1 + Double.parseDouble(map.get("count").toString()); - } - } else { - count1 = count1 + Double.parseDouble(map.get("count").toString()); - } + count1 = count1 + Double.parseDouble(map.get("count").toString()); dataCount1 = dataCount1 + 1; if (dataCount1 == 1) { mapResult1.putAll(map); @@ -3249,22 +3234,7 @@ public class IndekKinerjaServiceImpl extends BaseVoServiceImpl implements IndekK && Integer.parseInt(map.get("idKelas").toString()) == idKelas && Integer.parseInt(map.get("idJenisPelaksana").toString()) == idPelaksana && map.get("tanggal").toString().equals(tanggal)) { - if (drKkPerinatologiList.contains(idPegawai)) { - if ((Arrays.asList(Master.Produk.MONITORING_INTERVENSI) - .contains(map.get("idProduk")) - || map.get("namaProduk").toString().toLowerCase() - .contains(Master.VISIT)) - && count2 < 2) { - count2 = count2 + Double.parseDouble(map.get("count").toString()); - } else if (!Arrays.asList(Master.Produk.MONITORING_INTERVENSI) - .contains(map.get("idProduk")) - && !map.get("namaProduk").toString().toLowerCase() - .contains(Master.VISIT)) { - count2 = count2 + Double.parseDouble(map.get("count").toString()); - } - } else { - count2 = count2 + Double.parseDouble(map.get("count").toString()); - } + count2 = count2 + Double.parseDouble(map.get("count").toString()); dataCount2 = dataCount2 + 1; if (dataCount2 == 1) { mapResult2.putAll(map); @@ -4599,22 +4569,7 @@ public class IndekKinerjaServiceImpl extends BaseVoServiceImpl implements IndekK && (Double.valueOf(map.get("diskon").toString()) > 0 && (CommonUtil.isNullOrEmpty(map.get("statusDiskon")) || Integer .valueOf(map.get("statusDiskon").toString()).equals(0)))) { - if (drKkPerinatologiList.contains(idPegawai)) { - if ((Arrays.asList(Master.Produk.MONITORING_INTERVENSI) - .contains(map.get("idProduk")) - || map.get("namaProduk").toString().toLowerCase() - .contains(Master.VISIT)) - && count1 < 2) { - count1 = count1 + Double.parseDouble(map.get("count").toString()); - } else if (!Arrays.asList(Master.Produk.MONITORING_INTERVENSI) - .contains(map.get("idProduk")) - && !map.get("namaProduk").toString().toLowerCase() - .contains(Master.VISIT)) { - count1 = count1 + Double.parseDouble(map.get("count").toString()); - } - } else { - count1 = count1 + Double.parseDouble(map.get("count").toString()); - } + count1 = count1 + Double.parseDouble(map.get("count").toString()); dataCount1 = dataCount1 + 1; if (dataCount1 == 1) { mapResult1.putAll(map); @@ -4623,22 +4578,7 @@ public class IndekKinerjaServiceImpl extends BaseVoServiceImpl implements IndekK && Integer.parseInt(map.get("idKelas").toString()) == idKelas && Integer.parseInt(map.get("idJenisPelaksana").toString()) == idPelaksana && map.get("tanggal").toString().equals(tanggal)) { - if (drKkPerinatologiList.contains(idPegawai)) { - if ((Arrays.asList(Master.Produk.MONITORING_INTERVENSI) - .contains(map.get("idProduk")) - || map.get("namaProduk").toString().toLowerCase() - .contains(Master.VISIT)) - && count2 < 2) { - count2 = count2 + Double.parseDouble(map.get("count").toString()); - } else if (!Arrays.asList(Master.Produk.MONITORING_INTERVENSI) - .contains(map.get("idProduk")) - && !map.get("namaProduk").toString().toLowerCase() - .contains(Master.VISIT)) { - count2 = count2 + Double.parseDouble(map.get("count").toString()); - } - } else { - count2 = count2 + Double.parseDouble(map.get("count").toString()); - } + count2 = count2 + Double.parseDouble(map.get("count").toString()); dataCount2 = dataCount2 + 1; if (dataCount2 == 1) { mapResult2.putAll(map); From 2d7667861a1a89e967054941bbb867d4d0e3f0d2 Mon Sep 17 00:00:00 2001 From: salmanoe Date: Wed, 11 Jan 2023 20:52:32 +0700 Subject: [PATCH 9/9] Update MonitoringAbsenService Penyesuaian informasi presensi pegawai dengan VPN --- .../medifirst2000/constants/Master.java | 1 + .../medifirst2000/dao/HabsenDao.java | 6 ++-- .../medifirst2000/dao/IndekKinerjaDao.java | 16 +++++----- .../medifirst2000/dao/MonitoringAbsenDao.java | 2 +- .../impl/AbsensiPegawaiServiceImpl.java | 21 +++++++++---- .../impl/MonitoringAbsenServiceImpl.java | 30 ++++++++++++------- 6 files changed, 48 insertions(+), 28 deletions(-) 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 6528d282..102cb37b 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 @@ -279,6 +279,7 @@ public class Master { public static final String DEFAULT_ACC_CODE = "x"; public static final String SMART_LOC_CODE = "99999"; public static final Integer SMART_REMOTE_NO = 99; + public static final String VPN = "103.144.126.78"; public static final String[] INET_PROVIDERS = { "103.116.203.91", "103.116.203.92", "103.116.203.93", "43.225.67.209" }; diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/HabsenDao.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/HabsenDao.java index ad4db63a..06889941 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/HabsenDao.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/HabsenDao.java @@ -42,8 +42,8 @@ public interface HabsenDao extends PagingAndSortingRepository { + "where jk.pegawaiId = :idPegawai " + "and to_char(kd.tanggal, 'yyyy-MM-dd') = :tanggalJadwal") String getPegawaiJadwal(@Param("idPegawai") Integer idPegawai, @Param("tanggalJadwal") String tanggalJadwal); - @Query("select new Map(to_char(hb.tr_time, 'HH24:MI:SS') as tr_time," - + "hb.processtatus as processtatus,hb.ip_addr as ip_addr," + "hb.tag as tag," + @Query("select new Map(to_char(hb.tr_time, 'HH24:MI:SS') as tr_time," + "hb.processtatus as processtatus," + + "hb.ip_addr as ip_addr," + "hb.clientIPAddress as client_ip_addr," + "hb.tag as tag," + "(case when hb.tag = 1 then 'Presensi masuk' " + "when hb.tag = 0 then 'Presensi keluar/pulang' end) as tagDesc) " + "from Habsen hb, Pegawai pg " + "where hb.empl_code = pg.idFinger " + "and pg.id = :idPegawai " @@ -81,7 +81,7 @@ public interface HabsenDao extends PagingAndSortingRepository { String strQryHabsen = "select new Map(pg.id as id,pg.namaLengkap as namaLengkap," + "hb.tr_no as tr_no,to_char(hb.tr_date,'dd-MM-yyyy') as tr_date,to_char(hb.tr_time,'HH24:MI:ss') as tr_time," - + "hb.processtatus as processtatus,hb.ip_addr as ip_addr," + + "hb.processtatus as processtatus,hb.ip_addr as ip_addr,hb.clientIPAddress as client_ip_addr," + "hb.latitude as latitude,hb.longitude as longitude,hb.akurasi as akurasi,hb.lokasi as lokasi) " + "from Habsen hb, Pegawai pg " + "where hb.empl_code = pg.idFinger " + "and pg.statusEnabled is true"; diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/IndekKinerjaDao.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/IndekKinerjaDao.java index 77988942..b73052cb 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/IndekKinerjaDao.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/IndekKinerjaDao.java @@ -56,8 +56,8 @@ public interface IndekKinerjaDao extends PagingAndSortingRepository 'tarif_2022_Nov')) " - + "and harga.kelasId = 3) as hargaKelas1, " - + " dokter.id as idPegawai) " + " from PelayananPasienPetugas pelayananPasienPetugas" + + "and harga.kelasId = 3) as hargaKelas1, " + " dokter.id as idPegawai) " + + " from PelayananPasienPetugas pelayananPasienPetugas" + " left join pelayananPasienPetugas.kdpegawai dokter" + " left join pelayananPasienPetugas.pelayananPasien pelayananPasien" + " left join pelayananPasien.produk produk " + " left join pelayananPasien.kelas kelas " @@ -74,8 +74,8 @@ public interface IndekKinerjaDao extends PagingAndSortingRepository 'tarif_2022_Nov')) " - + "and harga.kelasId = 3) as hargaKelas1, " - + " dokter.id as idPegawai) " + " from PelayananPasienPetugas pelayananPasienPetugas" + + "and harga.kelasId = 3) as hargaKelas1, " + " dokter.id as idPegawai) " + + " from PelayananPasienPetugas pelayananPasienPetugas" + " left join pelayananPasienPetugas.kdpegawai dokter" + " left join pelayananPasienPetugas.pelayananPasien pelayananPasien" + " left join pelayananPasien.produk produk " + " left join pelayananPasien.kelas kelas " @@ -368,16 +368,16 @@ public interface IndekKinerjaDao extends PagingAndSortingRepository> findAbsensiAplikasiPegawai(@Param("idFinger") String idFinger, @Param("date") String date); @Query(" select new map (absen.tr_no as tr_no," + "absen.tr_date as date," + "absen.tr_time as time," - + "absen.empl_code as employee," + "absen.ip_addr as ip_addr," + "absen.processtatus as processtatus)" - + " from Habsen absen" + " where absen.empl_code = :idFinger" + + "absen.empl_code as employee," + "absen.ip_addr as ip_addr," + "absen.clientIPAddress as client_ip_addr," + + "absen.processtatus as processtatus)" + " from Habsen absen" + " where absen.empl_code = :idFinger" + " and to_char(absen.tr_date,'yyyy-MM-dd') = :date" + " and loc_code <> '99999'" + " and remoteno <> '99'" + " order by absen.tr_date, absen.tr_time asc") public List> findAbsensiPegawai(@Param("idFinger") String idFinger, @Param("date") String date); diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/MonitoringAbsenDao.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/MonitoringAbsenDao.java index 148a5479..5a0f7aee 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/MonitoringAbsenDao.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/MonitoringAbsenDao.java @@ -451,7 +451,7 @@ public interface MonitoringAbsenDao extends PagingAndSortingRepository listIp = stringSplitDataSettingDatafixed("ip_addr"); if (CommonUtil.isNotNullOrEmpty(listIp)) { if (processStatus.equals(1) && listIp.contains(ipAddress)) { @@ -2278,7 +2284,11 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon && !listIp.contains(ipAddress)) { return "T"; } else { - return "Y"; + if (ipAddress.equals(Master.PresensiPegawai.VPN) && clientIPAddress.startsWith("172.16.198")) { + return "T"; + } else { + return "Y"; + } } } else { return "";