From faa29f93383d4f125cf4af3cc3ff8e29cd785e7a Mon Sep 17 00:00:00 2001 From: salmanoe Date: Tue, 15 Nov 2022 22:41:32 +0700 Subject: [PATCH] Update remunerasi services Pembuatan logbook poin analisis acuan konsultasi eksekutif --- .../medifirst2000/dao/RevIndekKinerjaDao.java | 8 - .../service/IndekKinerjaService.java | 8 +- .../service/impl/IndekKinerjaServiceImpl.java | 1213 ++++++++--------- .../controller/ReportingController.java | 3 +- .../jrxml/logbookKinerjaStaffMedis.jrxml | 1 - .../controller/SdmController.java | 6 +- 6 files changed, 593 insertions(+), 646 deletions(-) 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 9727c37e..57a43a40 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 @@ -132,14 +132,6 @@ public interface RevIndekKinerjaDao extends PagingAndSortingRepository 'tarif_2022_Nov')) " + "and harga.kelasId = :idKelasSatu) as hargaKelas1, " + "pelayananPasien.noRec as noRec, " + "coalesce(pelayananPasien.hargaSatuan, 0) as harga, " - + "coalesce((select coalesce(ppd.hargaJual,0) from PelayananPasienDetail ppd " - + "where ppd.pelayananPasienId = pelayananPasien.noRec " - + "and ((ppd.komponenHargaId = 35 and jenisPetugas.id = 4) " - + "or (ppd.komponenHargaId = 22 and jenisPetugas.id = 13) " - + "or (ppd.komponenHargaId = 21 and jenisPetugas.id = 6)))," - + "(select coalesce(ppd.hargaJual,0) from PelayananPasienDetail ppd " - + "where ppd.pelayananPasienId = pelayananPasien.noRec " - + "and ppd.komponenHargaId = 21 and jenisPetugas.id = 4),0) as hargaKomponen, " + "coalesce(pelayananPasien.hargaDiscount,0) as diskon, " + "pelayananPasien.jumlah as count, " + "to_char(pelayananPasien.tglPelayanan,'yyyy-MM-dd') as tanggal, " + "cast(pelayananPasien.tglPelayanan as timestamp) as tanggalPelayanan, " diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/IndekKinerjaService.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/IndekKinerjaService.java index a66aa80a..ae5c0412 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/IndekKinerjaService.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/IndekKinerjaService.java @@ -70,7 +70,11 @@ public interface IndekKinerjaService { List> getAllTindakanByDokter(String periode, Integer idPegawai); - List> getAllTindakanByDokterReview(String periode, Integer idPegawai); + /** + * @param idAlternatif + * = 1-Reguler, 2-Eksekutif + */ + List> getAllTindakanByDokterReview(String periode, Integer idPegawai, Integer idAlternatif); List> getAllTindakanByDokterReviewForReport(String periode, Integer idPegawai); @@ -80,7 +84,7 @@ public interface IndekKinerjaService { List> getAllTindakanByDokterReport(String periode, Integer idPegawai); - List> getAllTindakanByDokterReportReview(String periode, Integer idPegawai); + List> getAllTindakanByDokterReportReview(String periode, Integer idPegawai, Integer idAlternatif); List> getAllTindakanDokter(String periode, Integer idPegawai); 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 6ab1bb39..e0d59567 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 @@ -2667,7 +2667,8 @@ public class IndekKinerjaServiceImpl extends BaseVoServiceImpl implements IndekK } @Override - public List> getAllTindakanByDokterReview(String periode, Integer idPegawai) { + public List> getAllTindakanByDokterReview(String periode, Integer idPegawai, + Integer idAlternatif) { if (pegawaiDao.getPegawaiByKategoryPegawai(Arrays.asList(Master.KategoryPegawai.DOKTER_LUAR)) .contains(idPegawai)) { return new ArrayList<>(); @@ -2679,7 +2680,6 @@ public class IndekKinerjaServiceImpl extends BaseVoServiceImpl implements IndekK List listProdukId = new ArrayList<>(); List listKelasId = new ArrayList<>(); - List listHargaKomponen = new ArrayList<>(); List listPelaksanaId = new ArrayList<>(); List listDetailJenisProduk = new ArrayList<>(); List listDetailJenisProdukException = new ArrayList<>(); @@ -2694,16 +2694,13 @@ public class IndekKinerjaServiceImpl extends BaseVoServiceImpl implements IndekK DateFormat dateFormat = new SimpleDateFormat("yyyy-MM"); Date datePeriode = new Date(); - Date dateAkhirTarifLama = batasAkhirTarifLama(); - boolean isSatuTarif = true; try { datePeriode = dateFormat.parse(periode); - if (dateAkhirTarifLama != null && datePeriode.after(dateAkhirTarifLama)) { - isSatuTarif = false; - } } catch (ParseException e) { e.printStackTrace(); } + Date dateAkhirTarifLama = batasAkhirTarifLama(); + boolean isSatuTarif = false; DecimalFormat df = new DecimalFormat("#.##"); DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); @@ -2738,12 +2735,25 @@ public class IndekKinerjaServiceImpl extends BaseVoServiceImpl implements IndekK List> listData = revIndekKinerjaDao.getAllTindakanDokter(Master.Kelas.KELAS_SATU, idPegawai, Master.JenisPetugasPelaksana.PETUGAS_PELAKSANA, periode); - + List idsDokterUmumIGD = splitDataSettingDatafixed("pr_dokter_umum_igd"); List idsPenunjangBukanAnestesi = splitDataSettingDatafixed("pr_penunjang_nonanestesi"); Double komponenDasar = Double.parseDouble(GetSettingDataFixed("ld_komponen_dasar")); Double persenOperator = Double.parseDouble(GetSettingDataFixed("ld_persen_operator")); Double persenCooperator = Double.parseDouble(GetSettingDataFixed("ld_persen_cooperator")); + if (idAlternatif == 1 && (datePeriode.before(dateAkhirTarifLama) || datePeriode.equals(dateAkhirTarifLama))) { + komponenDasar = 45_000.0; + persenOperator = 30.0; + persenCooperator = 15.0; + } else if (idAlternatif == 1 && datePeriode.after(dateAkhirTarifLama)) { + komponenDasar = 120_000.0; + persenOperator = 60.0; + persenCooperator = 30.0; + } else if (idAlternatif == 2 && datePeriode.after(dateAkhirTarifLama)) { + komponenDasar = 210_000.0; + persenOperator = 70.0; + persenCooperator = 35.0; + } // LOGIC_RULES_REMUN if (CommonUtil.isNotNullOrEmpty(listData)) { @@ -2842,8 +2852,7 @@ public class IndekKinerjaServiceImpl extends BaseVoServiceImpl implements IndekK } } 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()))) { + && 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())) @@ -3040,9 +3049,6 @@ public class IndekKinerjaServiceImpl extends BaseVoServiceImpl implements IndekK if (!listKelasId.contains(Integer.parseInt(map.get("idKelas").toString()))) { listKelasId.add(Integer.parseInt(map.get("idKelas").toString())); } - if (!listHargaKomponen.contains(Double.parseDouble(map.get("hargaKomponen").toString()))) { - listHargaKomponen.add(Double.parseDouble(map.get("hargaKomponen").toString())); - } if (!listTanggalPelayanan.contains(map.get("tanggal").toString())) { listTanggalPelayanan.add(map.get("tanggal").toString()); } @@ -3054,49 +3060,45 @@ public class IndekKinerjaServiceImpl extends BaseVoServiceImpl implements IndekK Collections.sort(listKelasId, Collections.reverseOrder()); for (Integer idProduk : listProdukId) { for (Integer idKelas : listKelasId) { - for (Double hargaKomponen : listHargaKomponen) { - for (Integer idPelaksana : listPelaksanaId) { - for (String tanggal : listTanggalPelayanan) { - Map mapResult1 = new HashMap<>(); - Map mapResult2 = new HashMap<>(); - double count1 = 0.0; - double count2 = 0.0; - int dataCount1 = 0; - int dataCount2 = 0; - for (Map map : rawResult) { - if (Integer.parseInt(map.get("idProduk").toString()) == idProduk - && Integer.parseInt(map.get("idKelas").toString()) == idKelas - && Double.parseDouble(map.get("hargaKomponen").toString()) == hargaKomponen - && Integer.parseInt(map.get("idJenisPelaksana").toString()) == idPelaksana - && map.get("tanggal").toString().equals(tanggal) - && (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()); - dataCount1 = dataCount1 + 1; - if (dataCount1 == 1) { - mapResult1.putAll(map); - } - } else if (Integer.parseInt(map.get("idProduk").toString()) == idProduk - && Integer.parseInt(map.get("idKelas").toString()) == idKelas - && Double.parseDouble(map.get("hargaKomponen").toString()) == hargaKomponen - && Integer.parseInt(map.get("idJenisPelaksana").toString()) == idPelaksana - && map.get("tanggal").toString().equals(tanggal)) { - count2 = count2 + Double.parseDouble(map.get("count").toString()); - dataCount2 = dataCount2 + 1; - if (dataCount2 == 1) { - mapResult2.putAll(map); - } + for (Integer idPelaksana : listPelaksanaId) { + for (String tanggal : listTanggalPelayanan) { + Map mapResult1 = new HashMap<>(); + Map mapResult2 = new HashMap<>(); + double count1 = 0.0; + double count2 = 0.0; + int dataCount1 = 0; + int dataCount2 = 0; + for (Map map : rawResult) { + if (Integer.parseInt(map.get("idProduk").toString()) == idProduk + && Integer.parseInt(map.get("idKelas").toString()) == idKelas + && Integer.parseInt(map.get("idJenisPelaksana").toString()) == idPelaksana + && map.get("tanggal").toString().equals(tanggal) + && (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()); + dataCount1 = dataCount1 + 1; + if (dataCount1 == 1) { + mapResult1.putAll(map); + } + } else if (Integer.parseInt(map.get("idProduk").toString()) == idProduk + && 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()); + dataCount2 = dataCount2 + 1; + if (dataCount2 == 1) { + mapResult2.putAll(map); } } - if (CommonUtil.isNotNullOrEmpty(mapResult1.get("count"))) { - mapResult1.put("count", count1); - countResult.add(mapResult1); - } - if (CommonUtil.isNotNullOrEmpty(mapResult2.get("count"))) { - mapResult2.put("count", count2); - countResult.add(mapResult2); - } + } + if (CommonUtil.isNotNullOrEmpty(mapResult1.get("count"))) { + mapResult1.put("count", count1); + countResult.add(mapResult1); + } + if (CommonUtil.isNotNullOrEmpty(mapResult2.get("count"))) { + mapResult2.put("count", count2); + countResult.add(mapResult2); } } } @@ -3105,285 +3107,257 @@ public class IndekKinerjaServiceImpl extends BaseVoServiceImpl implements IndekK for (Integer idProduk : listProdukId) { for (Integer idKelas : listKelasId) { - for (Double hargaKomponen : listHargaKomponen) { - for (Integer idPelaksana : listPelaksanaId) { - Map mapResult1 = new HashMap<>(); - Map mapResult2 = new HashMap<>(); - List> datas1 = new ArrayList<>(); - List> datas2 = new ArrayList<>(); - Double totalKonsul1 = 0.0; - Double totalKonsul2 = 0.0; - Double totalVisit1 = 0.0; - Double totalVisit2 = 0.0; - Double totalTindakan1 = 0.0; - Double totalTindakan2 = 0.0; - Double totalProduk1 = 0.0; - Double totalProduk2 = 0.0; - int counter1 = 0; - int counter2 = 0; - boolean isDiskonJasamedis1 = false; - boolean isDiskonJasamedis2 = false; - for (Map map : countResult) { - Map countMap = new HashMap<>(); - if (Integer.parseInt(map.get("idProduk").toString()) == idProduk - && Integer.parseInt(map.get("idKelas").toString()) == idKelas - && Double.parseDouble(map.get("hargaKomponen").toString()) == hargaKomponen - && Integer.parseInt(map.get("idJenisPelaksana").toString()) == idPelaksana - && (Double.parseDouble(map.get("diskon").toString()) > 0 - && (CommonUtil.isNullOrEmpty(map.get("statusDiskon")) || Integer - .valueOf(map.get("statusDiskon").toString()).equals(0)))) { - countMap.put("count", map.get("count")); - if (isSatuTarif && CommonUtil.isNotNullOrEmpty(map.get("hargaKelas1"))) { - countMap.put("harga", map.get("hargaKelas1")); - } else { - countMap.put("harga", map.get("harga")); - } - countMap.put("tanggal", map.get("tanggal")); - datas1.add(countMap); - if (map.get("namaProduk").toString().toLowerCase().contains("konsul")) { - totalKonsul1 = totalKonsul1 + Double.parseDouble(map.get("count").toString()); - } else if (map.get("namaProduk").toString().toLowerCase().contains("visit")) { - totalVisit1 = totalVisit1 + Double.parseDouble(map.get("count").toString()); - } else { - totalTindakan1 = totalTindakan1 - + Double.parseDouble(map.get("count").toString()); - } - totalProduk1 = totalProduk1 + Double.parseDouble(map.get("count").toString()); - counter1 = counter1 + 1; - if (counter1 == 1) { - mapResult1.putAll(map); - } - } else if (Integer.parseInt(map.get("idProduk").toString()) == idProduk - && Integer.parseInt(map.get("idKelas").toString()) == idKelas - && Double.parseDouble(map.get("hargaKomponen").toString()) == hargaKomponen - && Integer.parseInt(map.get("idJenisPelaksana").toString()) == idPelaksana) { - countMap.put("count", map.get("count")); - if (isSatuTarif && CommonUtil.isNotNullOrEmpty(map.get("hargaKelas1"))) { - countMap.put("harga", map.get("hargaKelas1")); - } else { - countMap.put("harga", map.get("harga")); - } - countMap.put("tanggal", map.get("tanggal")); - datas2.add(countMap); - if (map.get("namaProduk").toString().toLowerCase().contains("konsul")) { - totalKonsul2 = totalKonsul2 + Double.parseDouble(map.get("count").toString()); - } else if (map.get("namaProduk").toString().toLowerCase().contains("visit")) { - totalVisit2 = totalVisit2 + Double.parseDouble(map.get("count").toString()); - } else { - totalTindakan2 = totalTindakan2 - + Double.parseDouble(map.get("count").toString()); - } - totalProduk2 = totalProduk2 + Double.parseDouble(map.get("count").toString()); - counter2 = counter2 + 1; - if (counter2 == 1) { - mapResult2.putAll(map); - } + for (Integer idPelaksana : listPelaksanaId) { + Map mapResult1 = new HashMap<>(); + Map mapResult2 = new HashMap<>(); + List> datas1 = new ArrayList<>(); + List> datas2 = new ArrayList<>(); + Double totalKonsul1 = 0.0; + Double totalKonsul2 = 0.0; + Double totalVisit1 = 0.0; + Double totalVisit2 = 0.0; + Double totalTindakan1 = 0.0; + Double totalTindakan2 = 0.0; + Double totalProduk1 = 0.0; + Double totalProduk2 = 0.0; + int counter1 = 0; + int counter2 = 0; + boolean isDiskonJasamedis1 = false; + boolean isDiskonJasamedis2 = false; + for (Map map : countResult) { + Map countMap = new HashMap<>(); + if (Integer.parseInt(map.get("idProduk").toString()) == idProduk + && Integer.parseInt(map.get("idKelas").toString()) == idKelas + && Integer.parseInt(map.get("idJenisPelaksana").toString()) == idPelaksana + && (Double.parseDouble(map.get("diskon").toString()) > 0 + && (CommonUtil.isNullOrEmpty(map.get("statusDiskon")) || Integer + .valueOf(map.get("statusDiskon").toString()).equals(0)))) { + countMap.put("count", map.get("count")); + if (isSatuTarif && CommonUtil.isNotNullOrEmpty(map.get("hargaKelas1"))) { + countMap.put("harga", map.get("hargaKelas1")); + } else { + countMap.put("harga", map.get("harga")); + } + countMap.put("tanggal", map.get("tanggal")); + datas1.add(countMap); + if (map.get("namaProduk").toString().toLowerCase().contains("konsul")) { + totalKonsul1 = totalKonsul1 + Double.parseDouble(map.get("count").toString()); + } else if (map.get("namaProduk").toString().toLowerCase().contains("visit")) { + totalVisit1 = totalVisit1 + Double.parseDouble(map.get("count").toString()); + } else { + totalTindakan1 = totalTindakan1 + Double.parseDouble(map.get("count").toString()); + } + totalProduk1 = totalProduk1 + Double.parseDouble(map.get("count").toString()); + counter1 = counter1 + 1; + if (counter1 == 1) { + mapResult1.putAll(map); + } + } else if (Integer.parseInt(map.get("idProduk").toString()) == idProduk + && Integer.parseInt(map.get("idKelas").toString()) == idKelas + && Integer.parseInt(map.get("idJenisPelaksana").toString()) == idPelaksana) { + countMap.put("count", map.get("count")); + if (isSatuTarif && CommonUtil.isNotNullOrEmpty(map.get("hargaKelas1"))) { + countMap.put("harga", map.get("hargaKelas1")); + } else { + countMap.put("harga", map.get("harga")); + } + countMap.put("tanggal", map.get("tanggal")); + datas2.add(countMap); + if (map.get("namaProduk").toString().toLowerCase().contains("konsul")) { + totalKonsul2 = totalKonsul2 + Double.parseDouble(map.get("count").toString()); + } else if (map.get("namaProduk").toString().toLowerCase().contains("visit")) { + totalVisit2 = totalVisit2 + Double.parseDouble(map.get("count").toString()); + } else { + totalTindakan2 = totalTindakan2 + Double.parseDouble(map.get("count").toString()); + } + totalProduk2 = totalProduk2 + Double.parseDouble(map.get("count").toString()); + counter2 = counter2 + 1; + if (counter2 == 1) { + mapResult2.putAll(map); } } - if (CommonUtil.isNotNullOrEmpty(mapResult1.get("count"))) { - if (isSatuTarif) { - if (isSatuTarif && CommonUtil.isNotNullOrEmpty(mapResult1.get("hargaKelas1"))) { - harga = Double.parseDouble(mapResult1.get("hargaKelas1").toString()); - } else { - harga = Double.parseDouble(mapResult1.get("harga").toString()); - } + } + if (CommonUtil.isNotNullOrEmpty(mapResult1.get("count"))) { + if (isSatuTarif) { + if (isSatuTarif && CommonUtil.isNotNullOrEmpty(mapResult1.get("hargaKelas1"))) { + harga = Double.parseDouble(mapResult1.get("hargaKelas1").toString()); } else { harga = Double.parseDouble(mapResult1.get("harga").toString()); } - - if (drAnastesiList.contains(idPegawai)) { - if (idsPenunjangBukanAnestesi - .contains(mapResult1.get("idProduk"))) { - percentage = persenOperator; - } else if ((Integer) mapResult1 - .get("idJenisPelaksana") == Master.JenisPetugasPelaksana.DOKTER_PEMERIKSA) { - percentage = persenOperator; - if (Double.parseDouble(mapResult1.get("diskon").toString()) > 0 - && (CommonUtil.isNullOrEmpty(mapResult1.get("statusDiskon")) - || Integer.valueOf(mapResult1.get("statusDiskon").toString()) - .equals(0))) { - Double totalDiskonJasamedis = pelayananPasienDetailDao - .totalDiskonJasamedis(mapResult1.get("noRec").toString()); - if (CommonUtil.isNotNullOrEmpty(totalDiskonJasamedis) - && totalDiskonJasamedis > 0.0) { - isDiskonJasamedis1 = true; - } - } - } else { - percentage = persenCooperator; - } - } else { - if ((Integer) mapResult1.get( - "idJenisPelaksana") == Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS) { - percentage = persenCooperator; - } else { - percentage = persenOperator; - if (Double.parseDouble(mapResult1.get("diskon").toString()) > 0 - && (CommonUtil.isNullOrEmpty(mapResult1.get("statusDiskon")) - || Integer.valueOf(mapResult1.get("statusDiskon").toString()) - .equals(0))) { - Double totalDiskonJasamedis = pelayananPasienDetailDao - .totalDiskonJasamedis(mapResult1.get("noRec").toString()); - if (CommonUtil.isNotNullOrEmpty(totalDiskonJasamedis) - && totalDiskonJasamedis > 0.0) { - isDiskonJasamedis1 = true; - } - } - } - } - - if (datePeriode.after(dateAkhirTarifLama)) { - point = getPoinLogbookDokter( - Double.parseDouble(mapResult1.get("hargaKomponen").toString()), - isDiskonJasamedis1); - } else { - percentage = percentage / 100; - point = getPoinLogbookDokter(harga, percentage, - komponenDasar, isDiskonJasamedis1); - } - - pointQty = point * totalProduk1.doubleValue(); - formatPointQty = Double.parseDouble(df.format(pointQty)); - - if (Master.JenisPetugasPelaksana.DOKTER_PEMERIKSA - .equals(mapResult1.get("idJenisPelaksana"))) { - Optional nettoKomponen = detailHargaNettoDao.findHargetNetto1Komponen( - Master.KomponenHarga.JASA_DOKTER, - Integer.parseInt(mapResult1.get("idProduk").toString()), - Integer.parseInt(mapResult1.get("idKelas").toString())); - formatRpKontribusi = totalProduk1 - * (nettoKomponen != null ? nettoKomponen.orElse(0.0) : 0.0); - } else if (Master.JenisPetugasPelaksana.DOKTER_ANASTESI - .equals(mapResult1.get("idJenisPelaksana"))) { - Optional nettoKomponen = detailHargaNettoDao.findHargetNetto1Komponen( - Master.KomponenHarga.JASA_DOKTER_ANASTESI, - Integer.parseInt(mapResult1.get("idProduk").toString()), - Integer.parseInt(mapResult1.get("idKelas").toString())); - formatRpKontribusi = totalProduk1 - * (nettoKomponen != null ? nettoKomponen.orElse(0.0) : 0.0); - } else if (Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS - .equals(mapResult1.get("idJenisPelaksana"))) { - Optional nettoKomponen = detailHargaNettoDao.findHargetNetto1Komponen( - Master.KomponenHarga.JASA_ASISTEN_SPESIALIS, - Integer.parseInt(mapResult1.get("idProduk").toString()), - Integer.parseInt(mapResult1.get("idKelas").toString())); - formatRpKontribusi = totalProduk1 - * (nettoKomponen != null ? nettoKomponen.orElse(0.0) : 0.0); - } - - mapResult1.put("totalKonsul", totalKonsul1.longValue()); - mapResult1.put("totalVisit", totalVisit1.longValue()); - mapResult1.put("totalTindakan", totalTindakan1.longValue()); - mapResult1.put("totalProduk", totalProduk1.longValue()); - mapResult1.put("datas", datas1); - mapResult1.put("poin", point); - mapResult1.put("pointQty", formatPointQty); - mapResult1.put("kontribusi", formatRpKontribusi); - - result.add(mapResult1); + } else { + harga = Double.parseDouble(mapResult1.get("harga").toString()); } - if (CommonUtil.isNotNullOrEmpty(mapResult2.get("count"))) { - if (isSatuTarif) { - if (CommonUtil.isNotNullOrEmpty(mapResult2.get("hargaKelas1"))) { - harga = Double.parseDouble(mapResult2.get("hargaKelas1").toString()); - } else { - harga = Double.parseDouble(mapResult2.get("harga").toString()); + + if (drAnastesiList.contains(idPegawai)) { + if (idsPenunjangBukanAnestesi.contains(mapResult1.get("idProduk"))) { + percentage = persenOperator; + } else if ((Integer) mapResult1 + .get("idJenisPelaksana") == Master.JenisPetugasPelaksana.DOKTER_PEMERIKSA) { + percentage = persenOperator; + if (Double.parseDouble(mapResult1.get("diskon").toString()) > 0 + && (CommonUtil.isNullOrEmpty(mapResult1.get("statusDiskon")) || Integer + .valueOf(mapResult1.get("statusDiskon").toString()).equals(0))) { + Double totalDiskonJasamedis = pelayananPasienDetailDao + .totalDiskonJasamedis(mapResult1.get("noRec").toString()); + if (CommonUtil.isNotNullOrEmpty(totalDiskonJasamedis) + && totalDiskonJasamedis > 0.0) { + isDiskonJasamedis1 = true; + } } + } else { + percentage = persenCooperator; + } + } else { + if ((Integer) mapResult1 + .get("idJenisPelaksana") == Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS) { + percentage = persenCooperator; + } else { + percentage = persenOperator; + if (Double.parseDouble(mapResult1.get("diskon").toString()) > 0 + && (CommonUtil.isNullOrEmpty(mapResult1.get("statusDiskon")) || Integer + .valueOf(mapResult1.get("statusDiskon").toString()).equals(0))) { + Double totalDiskonJasamedis = pelayananPasienDetailDao + .totalDiskonJasamedis(mapResult1.get("noRec").toString()); + if (CommonUtil.isNotNullOrEmpty(totalDiskonJasamedis) + && totalDiskonJasamedis > 0.0) { + isDiskonJasamedis1 = true; + } + } + } + } + + percentage = percentage / 100; + point = getPoinLogbookDokter(harga, percentage, komponenDasar, isDiskonJasamedis1); + pointQty = point * totalProduk1.doubleValue(); + formatPointQty = Double.parseDouble(df.format(pointQty)); + + if (Master.JenisPetugasPelaksana.DOKTER_PEMERIKSA + .equals(mapResult1.get("idJenisPelaksana"))) { + Optional nettoKomponen = detailHargaNettoDao.findHargetNetto1Komponen( + Master.KomponenHarga.JASA_DOKTER, + Integer.parseInt(mapResult1.get("idProduk").toString()), + Integer.parseInt(mapResult1.get("idKelas").toString())); + formatRpKontribusi = totalProduk1 + * (nettoKomponen != null ? nettoKomponen.orElse(0.0) : 0.0); + } else if (Master.JenisPetugasPelaksana.DOKTER_ANASTESI + .equals(mapResult1.get("idJenisPelaksana"))) { + Optional nettoKomponen = detailHargaNettoDao.findHargetNetto1Komponen( + Master.KomponenHarga.JASA_DOKTER_ANASTESI, + Integer.parseInt(mapResult1.get("idProduk").toString()), + Integer.parseInt(mapResult1.get("idKelas").toString())); + formatRpKontribusi = totalProduk1 + * (nettoKomponen != null ? nettoKomponen.orElse(0.0) : 0.0); + } else if (Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS + .equals(mapResult1.get("idJenisPelaksana"))) { + Optional nettoKomponen = detailHargaNettoDao.findHargetNetto1Komponen( + Master.KomponenHarga.JASA_ASISTEN_SPESIALIS, + Integer.parseInt(mapResult1.get("idProduk").toString()), + Integer.parseInt(mapResult1.get("idKelas").toString())); + formatRpKontribusi = totalProduk1 + * (nettoKomponen != null ? nettoKomponen.orElse(0.0) : 0.0); + } + + mapResult1.put("totalKonsul", totalKonsul1.longValue()); + mapResult1.put("totalVisit", totalVisit1.longValue()); + mapResult1.put("totalTindakan", totalTindakan1.longValue()); + mapResult1.put("totalProduk", totalProduk1.longValue()); + mapResult1.put("datas", datas1); + mapResult1.put("poin", point); + mapResult1.put("pointQty", formatPointQty); + mapResult1.put("kontribusi", formatRpKontribusi); + + result.add(mapResult1); + } + if (CommonUtil.isNotNullOrEmpty(mapResult2.get("count"))) { + if (isSatuTarif) { + if (CommonUtil.isNotNullOrEmpty(mapResult2.get("hargaKelas1"))) { + harga = Double.parseDouble(mapResult2.get("hargaKelas1").toString()); } else { harga = Double.parseDouble(mapResult2.get("harga").toString()); } - - if (drAnastesiList.contains(idPegawai)) { - if (idsPenunjangBukanAnestesi - .contains(mapResult2.get("idProduk"))) { - percentage = persenOperator; - } else if ((Integer) mapResult2 - .get("idJenisPelaksana") == Master.JenisPetugasPelaksana.DOKTER_PEMERIKSA) { - percentage = persenOperator; - if (Double.parseDouble(mapResult2.get("diskon").toString()) > 0 - && (CommonUtil.isNullOrEmpty(mapResult2.get("statusDiskon")) - || Integer.valueOf(mapResult2.get("statusDiskon").toString()) - .equals(0))) { - Double totalDiskonJasamedis = pelayananPasienDetailDao - .totalDiskonJasamedis(mapResult2.get("noRec").toString()); - if (CommonUtil.isNotNullOrEmpty(totalDiskonJasamedis) - && totalDiskonJasamedis > 0.0) { - isDiskonJasamedis2 = true; - } - } - } else { - percentage = persenCooperator; - } - } else { - if ((Integer) mapResult2.get( - "idJenisPelaksana") == Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS) { - percentage = persenCooperator; - } else { - percentage = persenOperator; - if (Double.parseDouble(mapResult2.get("diskon").toString()) > 0 - && (CommonUtil.isNullOrEmpty(mapResult2.get("statusDiskon")) - || Integer.valueOf(mapResult2.get("statusDiskon").toString()) - .equals(0))) { - Double totalDiskonJasamedis = pelayananPasienDetailDao - .totalDiskonJasamedis(mapResult2.get("noRec").toString()); - if (CommonUtil.isNotNullOrEmpty(totalDiskonJasamedis) - && totalDiskonJasamedis > 0.0) { - isDiskonJasamedis2 = true; - } - } - } - } - - if (datePeriode.after(dateAkhirTarifLama)) { - point = getPoinLogbookDokter( - Double.parseDouble(mapResult2.get("hargaKomponen").toString()), - isDiskonJasamedis2); - } else { - percentage = percentage / 100; - point = getPoinLogbookDokter(harga, percentage, - komponenDasar, isDiskonJasamedis2); - } - - pointQty = point * totalProduk2.doubleValue(); - formatPointQty = Double.parseDouble(df.format(pointQty)); - - if (Master.JenisPetugasPelaksana.DOKTER_PEMERIKSA - .equals(mapResult2.get("idJenisPelaksana"))) { - Optional nettoKomponen = detailHargaNettoDao.findHargetNetto1Komponen( - Master.KomponenHarga.JASA_DOKTER, - Integer.parseInt(mapResult2.get("idProduk").toString()), - Integer.parseInt(mapResult2.get("idKelas").toString())); - formatRpKontribusi = totalProduk2 - * (nettoKomponen != null ? nettoKomponen.orElse(0.0) : 0.0); - } else if (Master.JenisPetugasPelaksana.DOKTER_ANASTESI - .equals(mapResult2.get("idJenisPelaksana"))) { - Optional nettoKomponen = detailHargaNettoDao.findHargetNetto1Komponen( - Master.KomponenHarga.JASA_DOKTER_ANASTESI, - Integer.parseInt(mapResult2.get("idProduk").toString()), - Integer.parseInt(mapResult2.get("idKelas").toString())); - formatRpKontribusi = totalProduk2 - * (nettoKomponen != null ? nettoKomponen.orElse(0.0) : 0.0); - } else if (Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS - .equals(mapResult2.get("idJenisPelaksana"))) { - Optional nettoKomponen = detailHargaNettoDao.findHargetNetto1Komponen( - Master.KomponenHarga.JASA_ASISTEN_SPESIALIS, - Integer.parseInt(mapResult2.get("idProduk").toString()), - Integer.parseInt(mapResult2.get("idKelas").toString())); - formatRpKontribusi = totalProduk2 - * (nettoKomponen != null ? nettoKomponen.orElse(0.0) : 0.0); - } - - mapResult2.put("totalKonsul", totalKonsul2.longValue()); - mapResult2.put("totalVisit", totalVisit2.longValue()); - mapResult2.put("totalTindakan", totalTindakan2.longValue()); - mapResult2.put("totalProduk", totalProduk2.longValue()); - mapResult2.put("datas", datas2); - mapResult2.put("poin", point); - mapResult2.put("pointQty", formatPointQty); - mapResult2.put("kontribusi", formatRpKontribusi); - - result.add(mapResult2); + } else { + harga = Double.parseDouble(mapResult2.get("harga").toString()); } + + if (drAnastesiList.contains(idPegawai)) { + if (idsPenunjangBukanAnestesi.contains(mapResult2.get("idProduk"))) { + percentage = persenOperator; + } else if ((Integer) mapResult2 + .get("idJenisPelaksana") == Master.JenisPetugasPelaksana.DOKTER_PEMERIKSA) { + percentage = persenOperator; + if (Double.parseDouble(mapResult2.get("diskon").toString()) > 0 + && (CommonUtil.isNullOrEmpty(mapResult2.get("statusDiskon")) || Integer + .valueOf(mapResult2.get("statusDiskon").toString()).equals(0))) { + Double totalDiskonJasamedis = pelayananPasienDetailDao + .totalDiskonJasamedis(mapResult2.get("noRec").toString()); + if (CommonUtil.isNotNullOrEmpty(totalDiskonJasamedis) + && totalDiskonJasamedis > 0.0) { + isDiskonJasamedis2 = true; + } + } + } else { + percentage = persenCooperator; + } + } else { + if ((Integer) mapResult2 + .get("idJenisPelaksana") == Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS) { + percentage = persenCooperator; + } else { + percentage = persenOperator; + if (Double.parseDouble(mapResult2.get("diskon").toString()) > 0 + && (CommonUtil.isNullOrEmpty(mapResult2.get("statusDiskon")) || Integer + .valueOf(mapResult2.get("statusDiskon").toString()).equals(0))) { + Double totalDiskonJasamedis = pelayananPasienDetailDao + .totalDiskonJasamedis(mapResult2.get("noRec").toString()); + if (CommonUtil.isNotNullOrEmpty(totalDiskonJasamedis) + && totalDiskonJasamedis > 0.0) { + isDiskonJasamedis2 = true; + } + } + } + } + + percentage = percentage / 100; + point = getPoinLogbookDokter(harga, percentage, komponenDasar, isDiskonJasamedis2); + pointQty = point * totalProduk2.doubleValue(); + formatPointQty = Double.parseDouble(df.format(pointQty)); + + if (Master.JenisPetugasPelaksana.DOKTER_PEMERIKSA + .equals(mapResult2.get("idJenisPelaksana"))) { + Optional nettoKomponen = detailHargaNettoDao.findHargetNetto1Komponen( + Master.KomponenHarga.JASA_DOKTER, + Integer.parseInt(mapResult2.get("idProduk").toString()), + Integer.parseInt(mapResult2.get("idKelas").toString())); + formatRpKontribusi = totalProduk2 + * (nettoKomponen != null ? nettoKomponen.orElse(0.0) : 0.0); + } else if (Master.JenisPetugasPelaksana.DOKTER_ANASTESI + .equals(mapResult2.get("idJenisPelaksana"))) { + Optional nettoKomponen = detailHargaNettoDao.findHargetNetto1Komponen( + Master.KomponenHarga.JASA_DOKTER_ANASTESI, + Integer.parseInt(mapResult2.get("idProduk").toString()), + Integer.parseInt(mapResult2.get("idKelas").toString())); + formatRpKontribusi = totalProduk2 + * (nettoKomponen != null ? nettoKomponen.orElse(0.0) : 0.0); + } else if (Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS + .equals(mapResult2.get("idJenisPelaksana"))) { + Optional nettoKomponen = detailHargaNettoDao.findHargetNetto1Komponen( + Master.KomponenHarga.JASA_ASISTEN_SPESIALIS, + Integer.parseInt(mapResult2.get("idProduk").toString()), + Integer.parseInt(mapResult2.get("idKelas").toString())); + formatRpKontribusi = totalProduk2 + * (nettoKomponen != null ? nettoKomponen.orElse(0.0) : 0.0); + } + + mapResult2.put("totalKonsul", totalKonsul2.longValue()); + mapResult2.put("totalVisit", totalVisit2.longValue()); + mapResult2.put("totalTindakan", totalTindakan2.longValue()); + mapResult2.put("totalProduk", totalProduk2.longValue()); + mapResult2.put("datas", datas2); + mapResult2.put("poin", point); + mapResult2.put("pointQty", formatPointQty); + mapResult2.put("kontribusi", formatRpKontribusi); + + result.add(mapResult2); } } } @@ -3449,7 +3423,7 @@ public class IndekKinerjaServiceImpl extends BaseVoServiceImpl implements IndekK List> listData = revIndekKinerjaDao.getAllTindakanDokter(Master.Kelas.KELAS_SATU, idPegawai, Master.JenisPetugasPelaksana.PETUGAS_PELAKSANA, periode); - + List idsDokterUmumIGD = splitDataSettingDatafixed("pr_dokter_umum_igd"); List idsPenunjangBukanAnestesi = splitDataSettingDatafixed("pr_penunjang_nonanestesi"); Double komponenDasar = Double.parseDouble(GetSettingDataFixed("ld_komponen_dasar")); @@ -3553,8 +3527,7 @@ public class IndekKinerjaServiceImpl extends BaseVoServiceImpl implements IndekK } } 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()))) { + && 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())) @@ -3829,8 +3802,7 @@ public class IndekKinerjaServiceImpl extends BaseVoServiceImpl implements IndekK } if (drAnastesiList.contains(idPegawai)) { - if (idsPenunjangBukanAnestesi - .contains(mapResult.get("idProduk"))) { + if (idsPenunjangBukanAnestesi.contains(mapResult.get("idProduk"))) { percentage = persenOperator; } else if ((Integer) mapResult .get("idJenisPelaksana") == Master.JenisPetugasPelaksana.DOKTER_PEMERIKSA) { @@ -3870,14 +3842,13 @@ public class IndekKinerjaServiceImpl extends BaseVoServiceImpl implements IndekK } @Override - public List> getAllTindakanByDokterReportReview(String periode, Integer idPegawai) { + public List> getAllTindakanByDokterReportReview(String periode, Integer idPegawai, Integer idAlternatif) { List> result = new ArrayList<>(); List> rawResult = new ArrayList<>(); List> countResult = new ArrayList<>(); List listProdukId = new ArrayList<>(); List listKelasId = new ArrayList<>(); - List listHargaKomponen = new ArrayList<>(); List listPelaksanaId = new ArrayList<>(); List listDetailJenisProduk = new ArrayList<>(); List listDetailJenisProdukException = new ArrayList<>(); @@ -3898,16 +3869,13 @@ public class IndekKinerjaServiceImpl extends BaseVoServiceImpl implements IndekK DateFormat dateFormat = new SimpleDateFormat("yyyy-MM"); Date datePeriode = new Date(); - Date dateAkhirTarifLama = batasAkhirTarifLama(); - boolean isSatuTarif = true; try { datePeriode = dateFormat.parse(periode); - if (dateAkhirTarifLama != null && datePeriode.after(dateAkhirTarifLama)) { - isSatuTarif = false; - } } catch (ParseException e) { e.printStackTrace(); } + Date dateAkhirTarifLama = batasAkhirTarifLama(); + boolean isSatuTarif = false; int maxday = monitoringAbsenService.iterateDate(periode + "-01"); @@ -3938,12 +3906,25 @@ public class IndekKinerjaServiceImpl extends BaseVoServiceImpl implements IndekK List> listData = revIndekKinerjaDao.getAllTindakanDokter(Master.Kelas.KELAS_SATU, idPegawai, Master.JenisPetugasPelaksana.PETUGAS_PELAKSANA, periode); - + List idsDokterUmumIGD = splitDataSettingDatafixed("pr_dokter_umum_igd"); List idsPenunjangBukanAnestesi = splitDataSettingDatafixed("pr_penunjang_nonanestesi"); Double komponenDasar = Double.parseDouble(GetSettingDataFixed("ld_komponen_dasar")); Double persenOperator = Double.parseDouble(GetSettingDataFixed("ld_persen_operator")); Double persenCooperator = Double.parseDouble(GetSettingDataFixed("ld_persen_cooperator")); + if (idAlternatif == 1 && (datePeriode.before(dateAkhirTarifLama) || datePeriode.equals(dateAkhirTarifLama))) { + komponenDasar = 45_000.0; + persenOperator = 30.0; + persenCooperator = 15.0; + } else if (idAlternatif == 1 && datePeriode.after(dateAkhirTarifLama)) { + komponenDasar = 120_000.0; + persenOperator = 60.0; + persenCooperator = 30.0; + } else if (idAlternatif == 2 && datePeriode.after(dateAkhirTarifLama)) { + komponenDasar = 210_000.0; + persenOperator = 70.0; + persenCooperator = 35.0; + } if (CommonUtil.isNotNullOrEmpty(listData)) { for (Map map : listData) { @@ -4042,8 +4023,7 @@ public class IndekKinerjaServiceImpl extends BaseVoServiceImpl implements IndekK } } 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()))) { + && 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())) @@ -4240,9 +4220,6 @@ public class IndekKinerjaServiceImpl extends BaseVoServiceImpl implements IndekK if (!listKelasId.contains(Integer.parseInt(map.get("idKelas").toString()))) { listKelasId.add(Integer.parseInt(map.get("idKelas").toString())); } - if (!listHargaKomponen.contains(Double.parseDouble(map.get("hargaKomponen").toString()))) { - listHargaKomponen.add(Double.parseDouble(map.get("hargaKomponen").toString())); - } if (!listTanggalPelayanan.contains(map.get("tanggal").toString())) { listTanggalPelayanan.add(map.get("tanggal").toString()); } @@ -4254,49 +4231,45 @@ public class IndekKinerjaServiceImpl extends BaseVoServiceImpl implements IndekK Collections.sort(listKelasId, Collections.reverseOrder()); for (Integer idProduk : listProdukId) { for (Integer idKelas : listKelasId) { - for (Double hargaKomponen : listHargaKomponen) { - for (Integer idPelaksana : listPelaksanaId) { - for (String tanggal : listTanggalPelayanan) { - Map mapResult1 = new HashMap<>(); - Map mapResult2 = new HashMap<>(); - double count1 = 0.0; - double count2 = 0.0; - int dataCount1 = 0; - int dataCount2 = 0; - for (Map map : rawResult) { - if (Integer.parseInt(map.get("idProduk").toString()) == idProduk - && Integer.parseInt(map.get("idKelas").toString()) == idKelas - && Double.parseDouble(map.get("hargaKomponen").toString()) == hargaKomponen - && Integer.parseInt(map.get("idJenisPelaksana").toString()) == idPelaksana - && map.get("tanggal").toString().equals(tanggal) - && (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()); - dataCount1 = dataCount1 + 1; - if (dataCount1 == 1) { - mapResult1.putAll(map); - } - } else if (Integer.parseInt(map.get("idProduk").toString()) == idProduk - && Integer.parseInt(map.get("idKelas").toString()) == idKelas - && Double.parseDouble(map.get("hargaKomponen").toString()) == hargaKomponen - && Integer.parseInt(map.get("idJenisPelaksana").toString()) == idPelaksana - && map.get("tanggal").toString().equals(tanggal)) { - count2 = count2 + Double.parseDouble(map.get("count").toString()); - dataCount2 = dataCount2 + 1; - if (dataCount2 == 1) { - mapResult2.putAll(map); - } + for (Integer idPelaksana : listPelaksanaId) { + for (String tanggal : listTanggalPelayanan) { + Map mapResult1 = new HashMap<>(); + Map mapResult2 = new HashMap<>(); + double count1 = 0.0; + double count2 = 0.0; + int dataCount1 = 0; + int dataCount2 = 0; + for (Map map : rawResult) { + if (Integer.parseInt(map.get("idProduk").toString()) == idProduk + && Integer.parseInt(map.get("idKelas").toString()) == idKelas + && Integer.parseInt(map.get("idJenisPelaksana").toString()) == idPelaksana + && map.get("tanggal").toString().equals(tanggal) + && (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()); + dataCount1 = dataCount1 + 1; + if (dataCount1 == 1) { + mapResult1.putAll(map); + } + } else if (Integer.parseInt(map.get("idProduk").toString()) == idProduk + && 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()); + dataCount2 = dataCount2 + 1; + if (dataCount2 == 1) { + mapResult2.putAll(map); } } - if (CommonUtil.isNotNullOrEmpty(mapResult1.get("count"))) { - mapResult1.put("count", count1); - countResult.add(mapResult1); - } - if (CommonUtil.isNotNullOrEmpty(mapResult2.get("count"))) { - mapResult2.put("count", count2); - countResult.add(mapResult2); - } + } + if (CommonUtil.isNotNullOrEmpty(mapResult1.get("count"))) { + mapResult1.put("count", count1); + countResult.add(mapResult1); + } + if (CommonUtil.isNotNullOrEmpty(mapResult2.get("count"))) { + mapResult2.put("count", count2); + countResult.add(mapResult2); } } } @@ -4305,237 +4278,211 @@ public class IndekKinerjaServiceImpl extends BaseVoServiceImpl implements IndekK for (Integer idProduk : listProdukId) { for (Integer idKelas : listKelasId) { - for (Double hargaKomponen : listHargaKomponen) { - for (Integer idPelaksana : listPelaksanaId) { - Map mapResult1 = new HashMap<>(); - Map mapResult2 = new HashMap<>(); - List> datas1 = new ArrayList<>(); - List> datas2 = new ArrayList<>(); - Double totalTindakan1 = 0.0; - Double totalTindakan2 = 0.0; - int counter1 = 0; - int counter2 = 0; - boolean isDiskonJasamedis1 = false; - boolean isDiskonJasamedis2 = false; - for (Map map : countResult) { - Map countMap = new HashMap<>(); - if (Integer.parseInt(map.get("idProduk").toString()) == idProduk - && Integer.parseInt(map.get("idKelas").toString()) == idKelas - && Double.parseDouble(map.get("hargaKomponen").toString()) == hargaKomponen - && Integer.parseInt(map.get("idJenisPelaksana").toString()) == idPelaksana - && (Double.valueOf(map.get("diskon").toString()) > 0 - && (CommonUtil.isNullOrEmpty(map.get("statusDiskon")) || Integer - .valueOf(map.get("statusDiskon").toString()).equals(0)))) { - countMap.put("count", map.get("count")); - if (isSatuTarif && CommonUtil.isNotNullOrEmpty(map.get("hargaKelas1"))) { - countMap.put("harga", map.get("hargaKelas1")); - } else { - countMap.put("harga", map.get("harga")); - } - countMap.put("tanggal", map.get("tanggal")); - datas1.add(countMap); - totalTindakan1 = totalTindakan1 + Double.parseDouble(map.get("count").toString()); + for (Integer idPelaksana : listPelaksanaId) { + Map mapResult1 = new HashMap<>(); + Map mapResult2 = new HashMap<>(); + List> datas1 = new ArrayList<>(); + List> datas2 = new ArrayList<>(); + Double totalTindakan1 = 0.0; + Double totalTindakan2 = 0.0; + int counter1 = 0; + int counter2 = 0; + boolean isDiskonJasamedis1 = false; + boolean isDiskonJasamedis2 = false; + for (Map map : countResult) { + Map countMap = new HashMap<>(); + if (Integer.parseInt(map.get("idProduk").toString()) == idProduk + && Integer.parseInt(map.get("idKelas").toString()) == idKelas + && Integer.parseInt(map.get("idJenisPelaksana").toString()) == idPelaksana + && (Double.valueOf(map.get("diskon").toString()) > 0 + && (CommonUtil.isNullOrEmpty(map.get("statusDiskon")) || Integer + .valueOf(map.get("statusDiskon").toString()).equals(0)))) { + countMap.put("count", map.get("count")); + if (isSatuTarif && CommonUtil.isNotNullOrEmpty(map.get("hargaKelas1"))) { + countMap.put("harga", map.get("hargaKelas1")); + } else { + countMap.put("harga", map.get("harga")); + } + countMap.put("tanggal", map.get("tanggal")); + datas1.add(countMap); + totalTindakan1 = totalTindakan1 + Double.parseDouble(map.get("count").toString()); - String tgl = map.get("tanggal").toString().substring(8, 10); - Long count = (new Double(Double.parseDouble(map.get("count").toString()))) - .longValue(); - mapResult1.put(tgl, count.toString()); + String tgl = map.get("tanggal").toString().substring(8, 10); + Long count = (new Double(Double.parseDouble(map.get("count").toString()))) + .longValue(); + mapResult1.put(tgl, count.toString()); - counter1 = counter1 + 1; - if (counter1 == 1) { - mapResult1.putAll(map); - } - } else if (Integer.parseInt(map.get("idProduk").toString()) == idProduk - && Integer.parseInt(map.get("idKelas").toString()) == idKelas - && Double.parseDouble(map.get("hargaKomponen").toString()) == hargaKomponen - && Integer.parseInt(map.get("idJenisPelaksana").toString()) == idPelaksana) { - countMap.put("count", map.get("count")); - if (isSatuTarif && CommonUtil.isNotNullOrEmpty(map.get("hargaKelas1"))) { - countMap.put("harga", map.get("hargaKelas1")); - } else { - countMap.put("harga", map.get("harga")); - } - countMap.put("tanggal", map.get("tanggal")); - datas2.add(countMap); - totalTindakan2 = totalTindakan2 + Double.parseDouble(map.get("count").toString()); + counter1 = counter1 + 1; + if (counter1 == 1) { + mapResult1.putAll(map); + } + } else if (Integer.parseInt(map.get("idProduk").toString()) == idProduk + && Integer.parseInt(map.get("idKelas").toString()) == idKelas + && Integer.parseInt(map.get("idJenisPelaksana").toString()) == idPelaksana) { + countMap.put("count", map.get("count")); + if (isSatuTarif && CommonUtil.isNotNullOrEmpty(map.get("hargaKelas1"))) { + countMap.put("harga", map.get("hargaKelas1")); + } else { + countMap.put("harga", map.get("harga")); + } + countMap.put("tanggal", map.get("tanggal")); + datas2.add(countMap); + totalTindakan2 = totalTindakan2 + Double.parseDouble(map.get("count").toString()); - String tgl = map.get("tanggal").toString().substring(8, 10); - Long count = (new Double(Double.parseDouble(map.get("count").toString()))) - .longValue(); - mapResult2.put(tgl, count.toString()); + String tgl = map.get("tanggal").toString().substring(8, 10); + Long count = (new Double(Double.parseDouble(map.get("count").toString()))) + .longValue(); + mapResult2.put(tgl, count.toString()); - counter2 = counter2 + 1; - if (counter2 == 1) { - mapResult2.putAll(map); - } + counter2 = counter2 + 1; + if (counter2 == 1) { + mapResult2.putAll(map); } } - if (CommonUtil.isNotNullOrEmpty(mapResult1.get("count"))) { - if (isSatuTarif) { - if (CommonUtil.isNotNullOrEmpty(mapResult1.get("hargaKelas1"))) { - harga = Double.parseDouble(mapResult1.get("hargaKelas1").toString()); - } else { - harga = Double.parseDouble(mapResult1.get("harga").toString()); - } + } + if (CommonUtil.isNotNullOrEmpty(mapResult1.get("count"))) { + if (isSatuTarif) { + if (CommonUtil.isNotNullOrEmpty(mapResult1.get("hargaKelas1"))) { + harga = Double.parseDouble(mapResult1.get("hargaKelas1").toString()); } else { harga = Double.parseDouble(mapResult1.get("harga").toString()); } - - if (drAnastesiList.contains(idPegawai)) { - if (idsPenunjangBukanAnestesi - .contains(mapResult1.get("idProduk"))) { - percentage = persenOperator; - } else if ((Integer) mapResult1 - .get("idJenisPelaksana") == Master.JenisPetugasPelaksana.DOKTER_PEMERIKSA) { - percentage = persenOperator; - if (Double.parseDouble(mapResult1.get("diskon").toString()) > 0 - && (CommonUtil.isNullOrEmpty(mapResult1.get("statusDiskon")) - || Integer.valueOf(mapResult1.get("statusDiskon").toString()) - .equals(0))) { - Double totalDiskonJasamedis = pelayananPasienDetailDao - .totalDiskonJasamedis(mapResult1.get("noRec").toString()); - if (CommonUtil.isNotNullOrEmpty(totalDiskonJasamedis) - && totalDiskonJasamedis > 0.0) { - isDiskonJasamedis1 = true; - } - } - } else { - percentage = persenCooperator; - } - } else { - if ((Integer) mapResult1.get( - "idJenisPelaksana") == Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS) { - percentage = persenCooperator; - } else { - percentage = persenOperator; - if (Double.parseDouble(mapResult1.get("diskon").toString()) > 0 - && (CommonUtil.isNullOrEmpty(mapResult1.get("statusDiskon")) - || Integer.valueOf(mapResult1.get("statusDiskon").toString()) - .equals(0))) { - Double totalDiskonJasamedis = pelayananPasienDetailDao - .totalDiskonJasamedis(mapResult1.get("noRec").toString()); - if (CommonUtil.isNotNullOrEmpty(totalDiskonJasamedis) - && totalDiskonJasamedis > 0.0) { - isDiskonJasamedis1 = true; - } - } - } - } - - if (datePeriode.after(dateAkhirTarifLama)) { - point = getPoinLogbookDokter( - Double.parseDouble(mapResult1.get("hargaKomponen").toString()), - isDiskonJasamedis1); - } else { - percentage = percentage / 100; - point = getPoinLogbookDokter(harga, percentage, - komponenDasar, isDiskonJasamedis1); - } - - pointQty = point * totalTindakan1.doubleValue(); - - tindakanTotal += totalTindakan1.longValue(); - totalPoint += pointQty; - - mapResult1.put("totalTindakan", totalTindakan1.longValue()); - mapResult1.put("tindakanTotal", tindakanTotal); - mapResult1.put("datas", datas1); - mapResult1.put("poin", point); - mapResult1.put("poins", df.format(point)); - mapResult1.put("pointQty", pointQty); - mapResult1.put("pointQtys", df.format(pointQty)); - mapResult1.put("totalPoin", totalPoint); - mapResult1.put("totalPoint", df.format(totalPoint)); - mapResult1.put("hargas", CurrencyUtil.getPriceInINA(harga).replace("Rp.", "")); - Double komponens = Double.parseDouble(mapResult1.get("hargaKomponen").toString()); - mapResult1.put("komponens", CurrencyUtil.getPriceInINA(komponens).replace("Rp.", "")); - mapResult1.put("maxDay", maxday); - - result.add(mapResult1); + } else { + harga = Double.parseDouble(mapResult1.get("harga").toString()); } - if (CommonUtil.isNotNullOrEmpty(mapResult2.get("count"))) { - if (isSatuTarif) { - if (CommonUtil.isNotNullOrEmpty(mapResult2.get("hargaKelas1"))) { - harga = Double.parseDouble(mapResult2.get("hargaKelas1").toString()); - } else { - harga = Double.parseDouble(mapResult2.get("harga").toString()); + + if (drAnastesiList.contains(idPegawai)) { + if (idsPenunjangBukanAnestesi.contains(mapResult1.get("idProduk"))) { + percentage = persenOperator; + } else if ((Integer) mapResult1 + .get("idJenisPelaksana") == Master.JenisPetugasPelaksana.DOKTER_PEMERIKSA) { + percentage = persenOperator; + if (Double.parseDouble(mapResult1.get("diskon").toString()) > 0 + && (CommonUtil.isNullOrEmpty(mapResult1.get("statusDiskon")) + || Integer.valueOf(mapResult1.get("statusDiskon").toString()) + .equals(0))) { + Double totalDiskonJasamedis = pelayananPasienDetailDao + .totalDiskonJasamedis(mapResult1.get("noRec").toString()); + if (CommonUtil.isNotNullOrEmpty(totalDiskonJasamedis) + && totalDiskonJasamedis > 0.0) { + isDiskonJasamedis1 = true; + } } + } else { + percentage = persenCooperator; + } + } else { + if ((Integer) mapResult1.get( + "idJenisPelaksana") == Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS) { + percentage = persenCooperator; + } else { + percentage = persenOperator; + if (Double.parseDouble(mapResult1.get("diskon").toString()) > 0 + && (CommonUtil.isNullOrEmpty(mapResult1.get("statusDiskon")) + || Integer.valueOf(mapResult1.get("statusDiskon").toString()) + .equals(0))) { + Double totalDiskonJasamedis = pelayananPasienDetailDao + .totalDiskonJasamedis(mapResult1.get("noRec").toString()); + if (CommonUtil.isNotNullOrEmpty(totalDiskonJasamedis) + && totalDiskonJasamedis > 0.0) { + isDiskonJasamedis1 = true; + } + } + } + } + + percentage = percentage / 100; + point = getPoinLogbookDokter(harga, percentage, komponenDasar, isDiskonJasamedis1); + pointQty = point * totalTindakan1.doubleValue(); + + tindakanTotal += totalTindakan1.longValue(); + totalPoint += pointQty; + + mapResult1.put("totalTindakan", totalTindakan1.longValue()); + mapResult1.put("tindakanTotal", tindakanTotal); + mapResult1.put("datas", datas1); + mapResult1.put("poin", point); + mapResult1.put("poins", df.format(point)); + mapResult1.put("pointQty", pointQty); + mapResult1.put("pointQtys", df.format(pointQty)); + mapResult1.put("totalPoin", totalPoint); + mapResult1.put("totalPoint", df.format(totalPoint)); + mapResult1.put("hargas", CurrencyUtil.getPriceInINA(harga).replace("Rp.", "")); + mapResult1.put("maxDay", maxday); + + result.add(mapResult1); + } + if (CommonUtil.isNotNullOrEmpty(mapResult2.get("count"))) { + if (isSatuTarif) { + if (CommonUtil.isNotNullOrEmpty(mapResult2.get("hargaKelas1"))) { + harga = Double.parseDouble(mapResult2.get("hargaKelas1").toString()); } else { harga = Double.parseDouble(mapResult2.get("harga").toString()); } - - if (drAnastesiList.contains(idPegawai)) { - if (idsPenunjangBukanAnestesi - .contains(mapResult2.get("idProduk"))) { - percentage = persenOperator; - } else if ((Integer) mapResult2 - .get("idJenisPelaksana") == Master.JenisPetugasPelaksana.DOKTER_PEMERIKSA) { - percentage = persenOperator; - if (Double.parseDouble(mapResult2.get("diskon").toString()) > 0 - && (CommonUtil.isNullOrEmpty(mapResult2.get("statusDiskon")) - || Integer.valueOf(mapResult2.get("statusDiskon").toString()) - .equals(0))) { - Double totalDiskonJasamedis = pelayananPasienDetailDao - .totalDiskonJasamedis(mapResult2.get("noRec").toString()); - if (CommonUtil.isNotNullOrEmpty(totalDiskonJasamedis) - && totalDiskonJasamedis > 0.0) { - isDiskonJasamedis2 = true; - } - } - } else { - percentage = persenCooperator; - } - } else { - if ((Integer) mapResult2.get( - "idJenisPelaksana") == Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS) { - percentage = persenCooperator; - } else { - percentage = persenOperator; - if (Double.parseDouble(mapResult2.get("diskon").toString()) > 0 - && (CommonUtil.isNullOrEmpty(mapResult2.get("statusDiskon")) - || Integer.valueOf(mapResult2.get("statusDiskon").toString()) - .equals(0))) { - Double totalDiskonJasamedis = pelayananPasienDetailDao - .totalDiskonJasamedis(mapResult2.get("noRec").toString()); - if (CommonUtil.isNotNullOrEmpty(totalDiskonJasamedis) - && totalDiskonJasamedis > 0.0) { - isDiskonJasamedis2 = true; - } - } - } - } - - if (datePeriode.after(dateAkhirTarifLama)) { - point = getPoinLogbookDokter( - Double.parseDouble(mapResult2.get("hargaKomponen").toString()), - isDiskonJasamedis2); - } else { - percentage = percentage / 100; - point = getPoinLogbookDokter(harga, percentage, - komponenDasar, isDiskonJasamedis2); - } - - pointQty = point * totalTindakan2.doubleValue(); - - tindakanTotal += totalTindakan2.longValue(); - totalPoint += pointQty; - - mapResult2.put("totalTindakan", totalTindakan2.longValue()); - mapResult2.put("tindakanTotal", tindakanTotal); - mapResult2.put("datas", datas2); - mapResult2.put("poin", point); - mapResult2.put("poins", df.format(point)); - mapResult2.put("pointQty", pointQty); - mapResult2.put("pointQtys", df.format(pointQty)); - mapResult2.put("totalPoin", totalPoint); - mapResult2.put("totalPoint", df.format(totalPoint)); - mapResult2.put("hargas", CurrencyUtil.getPriceInINA(harga).replace("Rp.", "")); - Double komponens = Double.parseDouble(mapResult2.get("hargaKomponen").toString()); - mapResult2.put("komponens", CurrencyUtil.getPriceInINA(komponens).replace("Rp.", "")); - mapResult2.put("maxDay", maxday); - - result.add(mapResult2); + } else { + harga = Double.parseDouble(mapResult2.get("harga").toString()); } + + if (drAnastesiList.contains(idPegawai)) { + if (idsPenunjangBukanAnestesi.contains(mapResult2.get("idProduk"))) { + percentage = persenOperator; + } else if ((Integer) mapResult2 + .get("idJenisPelaksana") == Master.JenisPetugasPelaksana.DOKTER_PEMERIKSA) { + percentage = persenOperator; + if (Double.parseDouble(mapResult2.get("diskon").toString()) > 0 + && (CommonUtil.isNullOrEmpty(mapResult2.get("statusDiskon")) + || Integer.valueOf(mapResult2.get("statusDiskon").toString()) + .equals(0))) { + Double totalDiskonJasamedis = pelayananPasienDetailDao + .totalDiskonJasamedis(mapResult2.get("noRec").toString()); + if (CommonUtil.isNotNullOrEmpty(totalDiskonJasamedis) + && totalDiskonJasamedis > 0.0) { + isDiskonJasamedis2 = true; + } + } + } else { + percentage = persenCooperator; + } + } else { + if ((Integer) mapResult2.get( + "idJenisPelaksana") == Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS) { + percentage = persenCooperator; + } else { + percentage = persenOperator; + if (Double.parseDouble(mapResult2.get("diskon").toString()) > 0 + && (CommonUtil.isNullOrEmpty(mapResult2.get("statusDiskon")) + || Integer.valueOf(mapResult2.get("statusDiskon").toString()) + .equals(0))) { + Double totalDiskonJasamedis = pelayananPasienDetailDao + .totalDiskonJasamedis(mapResult2.get("noRec").toString()); + if (CommonUtil.isNotNullOrEmpty(totalDiskonJasamedis) + && totalDiskonJasamedis > 0.0) { + isDiskonJasamedis2 = true; + } + } + } + } + + percentage = percentage / 100; + point = getPoinLogbookDokter(harga, percentage, komponenDasar, isDiskonJasamedis2); + pointQty = point * totalTindakan2.doubleValue(); + + tindakanTotal += totalTindakan2.longValue(); + totalPoint += pointQty; + + mapResult2.put("totalTindakan", totalTindakan2.longValue()); + mapResult2.put("tindakanTotal", tindakanTotal); + mapResult2.put("datas", datas2); + mapResult2.put("poin", point); + mapResult2.put("poins", df.format(point)); + mapResult2.put("pointQty", pointQty); + mapResult2.put("pointQtys", df.format(pointQty)); + mapResult2.put("totalPoin", totalPoint); + mapResult2.put("totalPoint", df.format(totalPoint)); + mapResult2.put("hargas", CurrencyUtil.getPriceInINA(harga).replace("Rp.", "")); + mapResult2.put("maxDay", maxday); + + result.add(mapResult2); } } } @@ -4596,7 +4543,7 @@ public class IndekKinerjaServiceImpl extends BaseVoServiceImpl implements IndekK List> listData = revIndekKinerjaDao.getAllTindakanDokter(Master.Kelas.KELAS_SATU, idPegawai, Master.JenisPetugasPelaksana.PETUGAS_PELAKSANA, periode); - + List idsDokterUmumIGD = splitDataSettingDatafixed("pr_dokter_umum_igd"); List idsPenunjangBukanAnestesi = splitDataSettingDatafixed("pr_penunjang_nonanestesi"); Double komponenDasar = Double.parseDouble(GetSettingDataFixed("ld_komponen_dasar")); @@ -4612,8 +4559,8 @@ public class IndekKinerjaServiceImpl extends BaseVoServiceImpl implements IndekK 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()))) { + && drKsmUmumList.contains(idPegawai) + && idsDokterUmumIGD.contains(Integer.parseInt(map.get("idProduk").toString()))) { rawResult.add(map); } else if (CommonUtil.isNotNullOrEmpty(listDetailJenisProdukException) && listDetailJenisProdukException @@ -4714,8 +4661,8 @@ public class IndekKinerjaServiceImpl extends BaseVoServiceImpl implements IndekK } } 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()))) { + && drKsmUmumList.contains(idPegawai) + && idsDokterUmumIGD.contains(Integer.parseInt(map.get("idProduk").toString()))) { if (CommonUtil.isNotNullOrEmpty(map.get("jamMasuk"))) { Date tanggalPelayanan = (Date) map.get("tanggalPelayanan"); String tglPelayanan = new SimpleDateFormat("yyyy-MM-dd").format(tanggalPelayanan); @@ -4975,8 +4922,7 @@ public class IndekKinerjaServiceImpl extends BaseVoServiceImpl implements IndekK } if (drAnastesiList.contains(idPegawai)) { - if (idsPenunjangBukanAnestesi - .contains(mapResult.get("idProduk"))) { + if (idsPenunjangBukanAnestesi.contains(mapResult.get("idProduk"))) { percentage = persenOperator; } else if ((Integer) mapResult .get("idJenisPelaksana") == Master.JenisPetugasPelaksana.DOKTER_PEMERIKSA) { @@ -5062,7 +5008,7 @@ public class IndekKinerjaServiceImpl extends BaseVoServiceImpl implements IndekK listData = revIndekKinerjaDao.getDetailPasienTindakanDokter(Master.Kelas.KELAS_SATU, idKelas, idPegawai, idProduk, Master.JenisPetugasPelaksana.PETUGAS_PELAKSANA, tgl); } - + List idsDokterUmumIGD = splitDataSettingDatafixed("pr_dokter_umum_igd"); if (!ffs) { @@ -5268,8 +5214,8 @@ public class IndekKinerjaServiceImpl extends BaseVoServiceImpl implements IndekK } } 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()))) { + && 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())) @@ -5665,8 +5611,8 @@ public class IndekKinerjaServiceImpl extends BaseVoServiceImpl implements IndekK 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()))) { + && drKsmUmumList.contains(idPegawai) + && idsDokterUmumIGD.contains(Integer.parseInt(map.get("idProduk").toString()))) { result.add(map); } else if (CommonUtil.isNotNullOrEmpty(listDetailJenisProdukException) && listDetailJenisProdukException @@ -5868,8 +5814,8 @@ public class IndekKinerjaServiceImpl extends BaseVoServiceImpl implements IndekK } } 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()))) { + && drKsmUmumList.contains(idPegawai) + && idsDokterUmumIGD.contains(Integer.parseInt(map.get("idProduk").toString()))) { if (CommonUtil.isNotNullOrEmpty(map.get("jamMasuk"))) { Date tanggalPelayanan = (Date) map.get("tanggalPelayanan"); String tglPelayanan = new SimpleDateFormat("yyyy-MM-dd").format(tanggalPelayanan); @@ -6289,7 +6235,7 @@ public class IndekKinerjaServiceImpl extends BaseVoServiceImpl implements IndekK List> listData = revIndekKinerjaDao.getAllTindakanDokterCetak(Master.Kelas.KELAS_SATU, idPegawai, Master.JenisPetugasPelaksana.PETUGAS_PELAKSANA, periode); - + List idsDokterUmumIGD = splitDataSettingDatafixed("pr_dokter_umum_igd"); if (CommonUtil.isNotNullOrEmpty(listData)) { @@ -6388,8 +6334,7 @@ public class IndekKinerjaServiceImpl extends BaseVoServiceImpl implements IndekK } } 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()))) { + && 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())) @@ -6668,7 +6613,7 @@ public class IndekKinerjaServiceImpl extends BaseVoServiceImpl implements IndekK List> data = revIndekKinerjaDao.getAllTindakanDokterCetak(Master.Kelas.KELAS_SATU, idPegawai, Master.JenisPetugasPelaksana.PETUGAS_PELAKSANA, periode); - + List idsKonsultasiDokterJaga = splitDataSettingDatafixed("pr_konsultasi_dokter_jaga"); // RULES_NOTE_SK_FFS_2015_DI_2019 @@ -7481,7 +7426,7 @@ public class IndekKinerjaServiceImpl extends BaseVoServiceImpl implements IndekK List> listData = revIndekKinerjaDao.getAllTindakanDokter(Master.Kelas.KELAS_SATU, idPegawai, Master.JenisPetugasPelaksana.PETUGAS_PELAKSANA, periode); - + List idsDokterUmumIGD = splitDataSettingDatafixed("pr_dokter_umum_igd"); List idsKonsultasiDokterJaga = splitDataSettingDatafixed("pr_konsultasi_dokter_jaga"); @@ -7731,7 +7676,8 @@ public class IndekKinerjaServiceImpl extends BaseVoServiceImpl implements IndekK Integer.parseInt(map.get("departemenId").toString()))) { if (map.get("ruanganId") .equals(Master.Ruangan.KLINIK_FALSE_EMERGENCY) - && idsKonsultasiDokterJaga.contains(map.get("idProduk"))) { + && idsKonsultasiDokterJaga + .contains(map.get("idProduk"))) { ffs = ffs + (new Double(Double .parseDouble(map.get("count").toString()))) .longValue(); @@ -7774,7 +7720,8 @@ public class IndekKinerjaServiceImpl extends BaseVoServiceImpl implements IndekK Integer.parseInt(map.get("departemenId").toString()))) { if (map.get("ruanganId") .equals(Master.Ruangan.KLINIK_FALSE_EMERGENCY) - && idsKonsultasiDokterJaga.contains(map.get("idProduk"))) { + && idsKonsultasiDokterJaga + .contains(map.get("idProduk"))) { ffs = ffs + (new Double(Double .parseDouble(map.get("count").toString()))) .longValue(); @@ -7930,8 +7877,8 @@ public class IndekKinerjaServiceImpl extends BaseVoServiceImpl implements IndekK } } 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()))) { + && drKsmUmumList.contains(idPegawai) + && idsDokterUmumIGD.contains(Integer.parseInt(map.get("idProduk").toString()))) { if (Integer.parseInt(map.get("idProduk").toString()) == idProduk && Integer.parseInt(map.get("idKelas").toString()) == idKelas) { if (!dokterLuar.contains(idPegawai)) { @@ -8145,7 +8092,8 @@ public class IndekKinerjaServiceImpl extends BaseVoServiceImpl implements IndekK Integer.parseInt(map.get("departemenId").toString()))) { if (map.get("ruanganId") .equals(Master.Ruangan.KLINIK_FALSE_EMERGENCY) - && idsKonsultasiDokterJaga.contains(map.get("idProduk"))) { + && idsKonsultasiDokterJaga + .contains(map.get("idProduk"))) { ffs = ffs + (new Double( Double.parseDouble(map.get("count").toString()))) .longValue(); @@ -8182,7 +8130,8 @@ public class IndekKinerjaServiceImpl extends BaseVoServiceImpl implements IndekK Integer.parseInt(map.get("departemenId").toString()))) { if (map.get("ruanganId") .equals(Master.Ruangan.KLINIK_FALSE_EMERGENCY) - && idsKonsultasiDokterJaga.contains(map.get("idProduk"))) { + && idsKonsultasiDokterJaga + .contains(map.get("idProduk"))) { ffs = ffs + (new Double( Double.parseDouble(map.get("count").toString()))) .longValue(); @@ -8546,7 +8495,8 @@ public class IndekKinerjaServiceImpl extends BaseVoServiceImpl implements IndekK Integer.parseInt(map.get("departemenId").toString()))) { if (map.get("ruanganId") .equals(Master.Ruangan.KLINIK_FALSE_EMERGENCY) - && idsKonsultasiDokterJaga.contains(map.get("idProduk"))) { + && idsKonsultasiDokterJaga + .contains(map.get("idProduk"))) { ffs = ffs + (new Double(Double .parseDouble(map.get("count").toString()))) .longValue(); @@ -8589,7 +8539,8 @@ public class IndekKinerjaServiceImpl extends BaseVoServiceImpl implements IndekK Integer.parseInt(map.get("departemenId").toString()))) { if (map.get("ruanganId") .equals(Master.Ruangan.KLINIK_FALSE_EMERGENCY) - && idsKonsultasiDokterJaga.contains(map.get("idProduk"))) { + && idsKonsultasiDokterJaga + .contains(map.get("idProduk"))) { ffs = ffs + (new Double(Double .parseDouble(map.get("count").toString()))) .longValue(); @@ -8802,7 +8753,7 @@ public class IndekKinerjaServiceImpl extends BaseVoServiceImpl implements IndekK listData = revIndekKinerjaDao.getDetailPasienTindakanDokter(Master.Kelas.KELAS_SATU, idPegawai, Master.JenisPetugasPelaksana.PETUGAS_PELAKSANA, tgl); } - + List idsDokterUmumIGD = splitDataSettingDatafixed("pr_dokter_umum_igd"); if (!ffs) { @@ -8902,8 +8853,8 @@ public class IndekKinerjaServiceImpl extends BaseVoServiceImpl implements IndekK } } 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()))) { + && 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())) @@ -9100,8 +9051,8 @@ public class IndekKinerjaServiceImpl extends BaseVoServiceImpl implements IndekK 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()))) { + && drKsmUmumList.contains(idPegawai) + && idsDokterUmumIGD.contains(Integer.parseInt(map.get("idProduk").toString()))) { result.add(map); } else if (CommonUtil.isNotNullOrEmpty(listDetailJenisProdukException) && listDetailJenisProdukException @@ -9203,8 +9154,8 @@ public class IndekKinerjaServiceImpl extends BaseVoServiceImpl implements IndekK } } 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()))) { + && drKsmUmumList.contains(idPegawai) + && idsDokterUmumIGD.contains(Integer.parseInt(map.get("idProduk").toString()))) { if (CommonUtil.isNotNullOrEmpty(map.get("jamMasuk"))) { Date tanggalPelayanan = (Date) map.get("tanggalPelayanan"); String tglPelayanan = new SimpleDateFormat("yyyy-MM-dd").format(tanggalPelayanan); 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 49aa0e1e..a0286e40 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 @@ -7056,13 +7056,14 @@ public class ReportingController extends LocaleController @RequestParam(value = "format", required = false) String format, @RequestParam(value = "periode", required = true) String periode, @RequestParam(value = "idDokter", required = false) Integer idDokter, + @RequestParam(value = "idAlternatif", required = false) Integer idAlternatif, @RequestParam(value = "idJabatan", required = false) Integer idJabatan) { List> datas = new ArrayList<>(); if (!pegawaiDao.getPegawaiByKategoryPegawai(Arrays.asList(Master.KategoryPegawai.DOKTER_LUAR)) .contains(idDokter)) { - datas = indekKinerjaService.getAllTindakanByDokterReportReview(periode, idDokter); + datas = indekKinerjaService.getAllTindakanByDokterReportReview(periode, idDokter, idAlternatif); } String[] splitData = periode.split("-"); periode = periode.substring(5, 7); diff --git a/jasamedika-reporting/src/main/webapp/WEB-INF/templates/jrxml/logbookKinerjaStaffMedis.jrxml b/jasamedika-reporting/src/main/webapp/WEB-INF/templates/jrxml/logbookKinerjaStaffMedis.jrxml index b57b3138..c444b8f6 100644 --- a/jasamedika-reporting/src/main/webapp/WEB-INF/templates/jrxml/logbookKinerjaStaffMedis.jrxml +++ b/jasamedika-reporting/src/main/webapp/WEB-INF/templates/jrxml/logbookKinerjaStaffMedis.jrxml @@ -63,7 +63,6 @@ - diff --git a/jasamedika-sdm/src/main/java/com/jasamedika/medifirst2000/controller/SdmController.java b/jasamedika-sdm/src/main/java/com/jasamedika/medifirst2000/controller/SdmController.java index 80d45739..5584ae10 100644 --- a/jasamedika-sdm/src/main/java/com/jasamedika/medifirst2000/controller/SdmController.java +++ b/jasamedika-sdm/src/main/java/com/jasamedika/medifirst2000/controller/SdmController.java @@ -4808,11 +4808,11 @@ public class SdmController extends LocaleController { return RestUtil.getJsonResponse(result, HttpStatus.OK); } - @RequestMapping(value = "/get-all-tindakan-dokter-rescored/{month}/{idPegawai}", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE) + @RequestMapping(value = "/get-all-tindakan-dokter-rescored/{month}/{idPegawai}/{idAlternatif}", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE) public ResponseEntity>> getAllTindakanReview(@PathVariable("month") String month, - @PathVariable("idPegawai") Integer idPegawai, HttpServletRequest request) { + @PathVariable("idPegawai") Integer idPegawai, @PathVariable("idAlternatif") Integer idAlternatif, HttpServletRequest request) { try { - List> result = indekKinerjaService.getAllTindakanByDokterReview(month, idPegawai); + List> result = indekKinerjaService.getAllTindakanByDokterReview(month, idPegawai, idAlternatif); mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_SUCCESS, getMessage(MessageResource.LABEL_SUCCESS, request));