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 95113b82..0e58c28c 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 @@ -2679,6 +2679,7 @@ 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<>(); @@ -3032,6 +3033,9 @@ 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()); } @@ -3043,45 +3047,49 @@ public class IndekKinerjaServiceImpl extends BaseVoServiceImpl implements IndekK Collections.sort(listKelasId, Collections.reverseOrder()); for (Integer idProduk : listProdukId) { for (Integer idKelas : listKelasId) { - 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); + 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); + } } } - } - 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); + } } } } @@ -3090,275 +3098,285 @@ public class IndekKinerjaServiceImpl extends BaseVoServiceImpl implements IndekK for (Integer idProduk : listProdukId) { for (Integer idKelas : listKelasId) { - 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); + 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); + } } } - } - if (CommonUtil.isNotNullOrEmpty(mapResult1.get("count"))) { - if (Master.LogbookDokter.IS_TARIF_SATU_HARGA) { - if (isSatuTarif && CommonUtil.isNotNullOrEmpty(mapResult1.get("hargaKelas1"))) { - harga = Double.parseDouble(mapResult1.get("hargaKelas1").toString()); + if (CommonUtil.isNotNullOrEmpty(mapResult1.get("count"))) { + if (Master.LogbookDokter.IS_TARIF_SATU_HARGA) { + if (isSatuTarif && CommonUtil.isNotNullOrEmpty(mapResult1.get("hargaKelas1"))) { + harga = Double.parseDouble(mapResult1.get("hargaKelas1").toString()); + } else { + harga = Double.parseDouble(mapResult1.get("harga").toString()); + } } else { harga = Double.parseDouble(mapResult1.get("harga").toString()); } - } else { - harga = Double.parseDouble(mapResult1.get("harga").toString()); - } - if (drAnastesiList.contains(idPegawai)) { - if (Arrays.asList(Master.Produk.PENUNJANG_BUKAN_ANASTESI) - .contains(mapResult1.get("idProduk"))) { - percentage = Master.LogbookDokter.PERSENTASE_TINDAKAN_PENUNJANG_BUKAN_ANASTESI; - } else if ((Integer) mapResult1 - .get("idJenisPelaksana") == Master.JenisPetugasPelaksana.DOKTER_PEMERIKSA) { - percentage = Master.LogbookDokter.PERSENTASE_TINDAKAN_DOKTER_PEMERIKSA; - 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 (drAnastesiList.contains(idPegawai)) { + if (Arrays.asList(Master.Produk.PENUNJANG_BUKAN_ANASTESI) + .contains(mapResult1.get("idProduk"))) { + percentage = Master.LogbookDokter.PERSENTASE_TINDAKAN_PENUNJANG_BUKAN_ANASTESI; + } else if ((Integer) mapResult1 + .get("idJenisPelaksana") == Master.JenisPetugasPelaksana.DOKTER_PEMERIKSA) { + percentage = Master.LogbookDokter.PERSENTASE_TINDAKAN_DOKTER_PEMERIKSA; + 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 = Master.LogbookDokter.PERSENTASE_TINDAKAN_DOKTER_ANASTESI; } } else { - percentage = Master.LogbookDokter.PERSENTASE_TINDAKAN_DOKTER_ANASTESI; - } - } else { - if ((Integer) mapResult1 - .get("idJenisPelaksana") == Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS) { - percentage = Master.LogbookDokter.PERSENTASE_TINDAKAN_ASISTEN_SPESIALIS; - } else { - percentage = Master.LogbookDokter.PERSENTASE_TINDAKAN_DOKTER_PEMERIKSA; - 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 ((Integer) mapResult1.get( + "idJenisPelaksana") == Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS) { + percentage = Master.LogbookDokter.PERSENTASE_TINDAKAN_ASISTEN_SPESIALIS; + } else { + percentage = Master.LogbookDokter.PERSENTASE_TINDAKAN_DOKTER_PEMERIKSA; + 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, + Master.LogbookDokter.TARIF_REMUNERASI, 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 (datePeriode.after(dateAkhirTarifLama)) { - point = getPoinLogbookDokter( - Double.parseDouble(mapResult1.get("hargaKomponen").toString()), - isDiskonJasamedis1); - } else { - percentage = percentage / 100; - point = getPoinLogbookDokter(harga, percentage, Master.LogbookDokter.TARIF_REMUNERASI, - 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()); + 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()); + } } else { harga = Double.parseDouble(mapResult2.get("harga").toString()); } - } else { - harga = Double.parseDouble(mapResult2.get("harga").toString()); - } - if (drAnastesiList.contains(idPegawai)) { - if (Arrays.asList(Master.Produk.PENUNJANG_BUKAN_ANASTESI) - .contains(mapResult2.get("idProduk"))) { - percentage = Master.LogbookDokter.PERSENTASE_TINDAKAN_PENUNJANG_BUKAN_ANASTESI; - } else if ((Integer) mapResult2 - .get("idJenisPelaksana") == Master.JenisPetugasPelaksana.DOKTER_PEMERIKSA) { - percentage = Master.LogbookDokter.PERSENTASE_TINDAKAN_DOKTER_PEMERIKSA; - 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 (drAnastesiList.contains(idPegawai)) { + if (Arrays.asList(Master.Produk.PENUNJANG_BUKAN_ANASTESI) + .contains(mapResult2.get("idProduk"))) { + percentage = Master.LogbookDokter.PERSENTASE_TINDAKAN_PENUNJANG_BUKAN_ANASTESI; + } else if ((Integer) mapResult2 + .get("idJenisPelaksana") == Master.JenisPetugasPelaksana.DOKTER_PEMERIKSA) { + percentage = Master.LogbookDokter.PERSENTASE_TINDAKAN_DOKTER_PEMERIKSA; + 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 = Master.LogbookDokter.PERSENTASE_TINDAKAN_DOKTER_ANASTESI; } } else { - percentage = Master.LogbookDokter.PERSENTASE_TINDAKAN_DOKTER_ANASTESI; - } - } else { - if ((Integer) mapResult2 - .get("idJenisPelaksana") == Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS) { - percentage = Master.LogbookDokter.PERSENTASE_TINDAKAN_ASISTEN_SPESIALIS; - } else { - percentage = Master.LogbookDokter.PERSENTASE_TINDAKAN_DOKTER_PEMERIKSA; - 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 ((Integer) mapResult2.get( + "idJenisPelaksana") == Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS) { + percentage = Master.LogbookDokter.PERSENTASE_TINDAKAN_ASISTEN_SPESIALIS; + } else { + percentage = Master.LogbookDokter.PERSENTASE_TINDAKAN_DOKTER_PEMERIKSA; + 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, + Master.LogbookDokter.TARIF_REMUNERASI, 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); } - - if (datePeriode.after(dateAkhirTarifLama)) { - point = getPoinLogbookDokter( - Double.parseDouble(mapResult2.get("hargaKomponen").toString()), - isDiskonJasamedis2); - } else { - percentage = percentage / 100; - point = getPoinLogbookDokter(harga, percentage, Master.LogbookDokter.TARIF_REMUNERASI, - 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); } } } @@ -3845,6 +3863,7 @@ 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<>(); @@ -4200,6 +4219,9 @@ 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()); } @@ -4211,45 +4233,49 @@ public class IndekKinerjaServiceImpl extends BaseVoServiceImpl implements IndekK Collections.sort(listKelasId, Collections.reverseOrder()); for (Integer idProduk : listProdukId) { for (Integer idKelas : listKelasId) { - 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); + 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); + } } } - } - 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); + } } } } @@ -4258,223 +4284,233 @@ public class IndekKinerjaServiceImpl extends BaseVoServiceImpl implements IndekK for (Integer idProduk : listProdukId) { for (Integer idKelas : listKelasId) { - 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()); + 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()); - 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 - && 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 + && 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()); - 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()); + 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()); + } } else { harga = Double.parseDouble(mapResult1.get("harga").toString()); } - } else { - harga = Double.parseDouble(mapResult1.get("harga").toString()); - } - if (drAnastesiList.contains(idPegawai)) { - if (Arrays.asList(Master.Produk.PENUNJANG_BUKAN_ANASTESI) - .contains(mapResult1.get("idProduk"))) { - percentage = Master.LogbookDokter.PERSENTASE_TINDAKAN_PENUNJANG_BUKAN_ANASTESI; - } else if ((Integer) mapResult1 - .get("idJenisPelaksana") == Master.JenisPetugasPelaksana.DOKTER_PEMERIKSA) { - percentage = Master.LogbookDokter.PERSENTASE_TINDAKAN_DOKTER_PEMERIKSA; - 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 (drAnastesiList.contains(idPegawai)) { + if (Arrays.asList(Master.Produk.PENUNJANG_BUKAN_ANASTESI) + .contains(mapResult1.get("idProduk"))) { + percentage = Master.LogbookDokter.PERSENTASE_TINDAKAN_PENUNJANG_BUKAN_ANASTESI; + } else if ((Integer) mapResult1 + .get("idJenisPelaksana") == Master.JenisPetugasPelaksana.DOKTER_PEMERIKSA) { + percentage = Master.LogbookDokter.PERSENTASE_TINDAKAN_DOKTER_PEMERIKSA; + 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 = Master.LogbookDokter.PERSENTASE_TINDAKAN_DOKTER_ANASTESI; } } else { - percentage = Master.LogbookDokter.PERSENTASE_TINDAKAN_DOKTER_ANASTESI; - } - } else { - if ((Integer) mapResult1 - .get("idJenisPelaksana") == Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS) { - percentage = Master.LogbookDokter.PERSENTASE_TINDAKAN_ASISTEN_SPESIALIS; - } else { - percentage = Master.LogbookDokter.PERSENTASE_TINDAKAN_DOKTER_PEMERIKSA; - 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 ((Integer) mapResult1.get( + "idJenisPelaksana") == Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS) { + percentage = Master.LogbookDokter.PERSENTASE_TINDAKAN_ASISTEN_SPESIALIS; + } else { + percentage = Master.LogbookDokter.PERSENTASE_TINDAKAN_DOKTER_PEMERIKSA; + 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, + Master.LogbookDokter.TARIF_REMUNERASI, 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 (datePeriode.after(dateAkhirTarifLama)) { - point = getPoinLogbookDokter( - Double.parseDouble(mapResult1.get("hargaKomponen").toString()), - isDiskonJasamedis1); - } else { - percentage = percentage / 100; - point = getPoinLogbookDokter(harga, percentage, Master.LogbookDokter.TARIF_REMUNERASI, - 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()); + 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()); + } } else { harga = Double.parseDouble(mapResult2.get("harga").toString()); } - } else { - harga = Double.parseDouble(mapResult2.get("harga").toString()); - } - if (drAnastesiList.contains(idPegawai)) { - if (Arrays.asList(Master.Produk.PENUNJANG_BUKAN_ANASTESI) - .contains(mapResult2.get("idProduk"))) { - percentage = Master.LogbookDokter.PERSENTASE_TINDAKAN_PENUNJANG_BUKAN_ANASTESI; - } else if ((Integer) mapResult2 - .get("idJenisPelaksana") == Master.JenisPetugasPelaksana.DOKTER_PEMERIKSA) { - percentage = Master.LogbookDokter.PERSENTASE_TINDAKAN_DOKTER_PEMERIKSA; - 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 (drAnastesiList.contains(idPegawai)) { + if (Arrays.asList(Master.Produk.PENUNJANG_BUKAN_ANASTESI) + .contains(mapResult2.get("idProduk"))) { + percentage = Master.LogbookDokter.PERSENTASE_TINDAKAN_PENUNJANG_BUKAN_ANASTESI; + } else if ((Integer) mapResult2 + .get("idJenisPelaksana") == Master.JenisPetugasPelaksana.DOKTER_PEMERIKSA) { + percentage = Master.LogbookDokter.PERSENTASE_TINDAKAN_DOKTER_PEMERIKSA; + 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 = Master.LogbookDokter.PERSENTASE_TINDAKAN_DOKTER_ANASTESI; } } else { - percentage = Master.LogbookDokter.PERSENTASE_TINDAKAN_DOKTER_ANASTESI; - } - } else { - if ((Integer) mapResult2 - .get("idJenisPelaksana") == Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS) { - percentage = Master.LogbookDokter.PERSENTASE_TINDAKAN_ASISTEN_SPESIALIS; - } else { - percentage = Master.LogbookDokter.PERSENTASE_TINDAKAN_DOKTER_PEMERIKSA; - 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 ((Integer) mapResult2.get( + "idJenisPelaksana") == Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS) { + percentage = Master.LogbookDokter.PERSENTASE_TINDAKAN_ASISTEN_SPESIALIS; + } else { + percentage = Master.LogbookDokter.PERSENTASE_TINDAKAN_DOKTER_PEMERIKSA; + 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, + Master.LogbookDokter.TARIF_REMUNERASI, 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); } - - if (datePeriode.after(dateAkhirTarifLama)) { - point = getPoinLogbookDokter( - Double.parseDouble(mapResult2.get("hargaKomponen").toString()), - isDiskonJasamedis2); - } else { - percentage = percentage / 100; - point = getPoinLogbookDokter(harga, percentage, Master.LogbookDokter.TARIF_REMUNERASI, - 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); } } }