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 8e83492a..f4e8bca8 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 @@ -125,7 +125,8 @@ public interface RevIndekKinerjaDao extends PagingAndSortingRepository :idPetugasPelaksana "; + + "and pasienDaftar.kelompokPasienId = :idKelompokPasien " + "and jenisPetugas.id <> :idPetugasPelaksana "; String detailPasienQueryBundled = "select new Map(pelayananPasienPetugas.noRec as norecPetugas," + "ruangan.namaRuangan as ruangan," + "pelayananPasien.noRec as noRecPelayananPasien," @@ -273,14 +274,14 @@ public interface RevIndekKinerjaDao extends PagingAndSortingRepository> getDetailPasienTindakanDokter(@Param("idKelasSatu") Integer idKelasSatu, @Param("idKelas") Integer idKelas, @Param("idPegawai") Integer idPegawai, - @Param("idProduk") Integer idProduk, @Param("idPetugasPelaksana") int idPetugasPelaksana, - @Param("tgl") String tgl); + @Param("idProduk") Integer idProduk, @Param("idKelompokPasien") Integer idKelompokPasien, + @Param("idPetugasPelaksana") int idPetugasPelaksana, @Param("tgl") String tgl); @Query(detailPasienQuery + bulan + orderTanggal) public List> getDetailPasienTindakanDokterPerPeriode(@Param("idKelasSatu") Integer idKelasSatu, @Param("idKelas") Integer idKelas, @Param("idPegawai") Integer idPegawai, - @Param("idProduk") Integer idProduk, @Param("idPetugasPelaksana") int idPetugasPelaksana, - @Param("periode") String periode); + @Param("idProduk") Integer idProduk, @Param("idKelompokPasien") Integer idKelompokPasien, + @Param("idPetugasPelaksana") int idPetugasPelaksana, @Param("periode") String periode); @Query(detailPasienQueryBundled + tanggal + orderTanggal) public List> getDetailPasienTindakanDokter(@Param("idKelasSatu") Integer idKelasSatu, 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 ae5c0412..58844556 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 @@ -93,7 +93,7 @@ public interface IndekKinerjaService { List> findPatientDetailForEveryTindakan(Integer idProduk, Integer idKelas, Integer idPegawai, String tgl, Boolean ffs); - List> findPatientDetailForEveryTindakanReview(Integer idProduk, Integer idKelas, + List> findPatientDetailForEveryTindakanReview(Integer idProduk, Integer idKelompokPasien, Integer idKelas, Integer idPegawai, String tgl, Boolean ffs, Double diskon, Integer statusDiskon); List> findPatientDetailForEveryTindakanReview(Integer idPegawai, String tgl, Boolean ffs); 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 53a73bf7..36b3a8be 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> countResult = new ArrayList<>(); List listProdukId = new ArrayList<>(); + List listKelompokPasienId = new ArrayList<>(); List listKelasId = new ArrayList<>(); List listPelaksanaId = new ArrayList<>(); List listDetailJenisProduk = new ArrayList<>(); @@ -3201,6 +3202,9 @@ public class IndekKinerjaServiceImpl extends BaseVoServiceImpl implements IndekK if (!listProdukId.contains(Integer.parseInt(map.get("idProduk").toString()))) { listProdukId.add(Integer.parseInt(map.get("idProduk").toString())); } + if (!listKelompokPasienId.contains(Integer.parseInt(map.get("kelompokPasienId").toString()))) { + listKelompokPasienId.add(Integer.parseInt(map.get("kelompokPasienId").toString())); + } if (!listKelasId.contains(Integer.parseInt(map.get("idKelas").toString()))) { listKelasId.add(Integer.parseInt(map.get("idKelas").toString())); } @@ -3212,48 +3216,55 @@ public class IndekKinerjaServiceImpl extends BaseVoServiceImpl implements IndekK } } + Collections.sort(listKelompokPasienId, Collections.reverseOrder()); 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 (Integer idKelompokPasien : listKelompokPasienId) { + 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("kelompokPasienId").toString()) == idKelompokPasien + && 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("kelompokPasienId").toString()) == idKelompokPasien + && 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); + } } } } @@ -3261,268 +3272,278 @@ 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 (Integer idKelompokPasien : listKelompokPasienId) { + 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("kelompokPasienId").toString()) == idKelompokPasien + && 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("kelompokPasienId").toString()) == idKelompokPasien + && 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()); + 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()); + } } else { harga = Double.parseDouble(mapResult1.get("harga").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; + 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 { - 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 ((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())); + formatRpJasamedis = nettoKomponen != null ? nettoKomponen.orElse(0.0) : 0.0; + 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())); + formatRpJasamedis = nettoKomponen != null ? nettoKomponen.orElse(0.0) : 0.0; + 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())); + formatRpJasamedis = nettoKomponen != null ? nettoKomponen.orElse(0.0) : 0.0; + 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("jasamedis", formatRpJasamedis); + mapResult1.put("kontribusi", formatRpKontribusi); + mapResult1.put("isSatuTarif", isSatuTarif); + + result.add(mapResult1); } - - 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())); - formatRpJasamedis = nettoKomponen != null ? nettoKomponen.orElse(0.0) : 0.0; - 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())); - formatRpJasamedis = nettoKomponen != null ? nettoKomponen.orElse(0.0) : 0.0; - 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())); - formatRpJasamedis = nettoKomponen != null ? nettoKomponen.orElse(0.0) : 0.0; - 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("jasamedis", formatRpJasamedis); - mapResult1.put("kontribusi", formatRpKontribusi); - mapResult1.put("isSatuTarif", isSatuTarif); - - 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 (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; + 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 { - 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 ((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())); + formatRpJasamedis = nettoKomponen != null ? nettoKomponen.orElse(0.0) : 0.0; + 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())); + formatRpJasamedis = nettoKomponen != null ? nettoKomponen.orElse(0.0) : 0.0; + 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())); + formatRpJasamedis = nettoKomponen != null ? nettoKomponen.orElse(0.0) : 0.0; + 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("jasamedis", formatRpJasamedis); + mapResult2.put("konstribusi", formatRpKontribusi); + mapResult2.put("isSatuTarif", isSatuTarif); + + result.add(mapResult2); } - - 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())); - formatRpJasamedis = nettoKomponen != null ? nettoKomponen.orElse(0.0) : 0.0; - 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())); - formatRpJasamedis = nettoKomponen != null ? nettoKomponen.orElse(0.0) : 0.0; - 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())); - formatRpJasamedis = nettoKomponen != null ? nettoKomponen.orElse(0.0) : 0.0; - 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("jasamedis", formatRpJasamedis); - mapResult2.put("konstribusi", formatRpKontribusi); - mapResult2.put("isSatuTarif", isSatuTarif); - - result.add(mapResult2); } } } @@ -5275,8 +5296,8 @@ public class IndekKinerjaServiceImpl extends BaseVoServiceImpl implements IndekK } @Override - public List> findPatientDetailForEveryTindakanReview(Integer idProduk, Integer idKelas, - Integer idPegawai, String tgl, Boolean ffs, Double diskon, Integer statusDiskon) { + public List> findPatientDetailForEveryTindakanReview(Integer idProduk, Integer idKelompokPasien, + Integer idKelas, Integer idPegawai, String tgl, Boolean ffs, Double diskon, Integer statusDiskon) { List> result = new ArrayList<>(); List> listData = new ArrayList<>(); @@ -5321,10 +5342,10 @@ public class IndekKinerjaServiceImpl extends BaseVoServiceImpl implements IndekK if (CommonUtil.isNotNullOrEmpty(tgl) && tgl.equals(month)) { listData = revIndekKinerjaDao.getDetailPasienTindakanDokterPerPeriode(Master.Kelas.KELAS_SATU, idKelas, - idPegawai, idProduk, Master.JenisPetugasPelaksana.PETUGAS_PELAKSANA, tgl); + idPegawai, idProduk, idKelompokPasien, Master.JenisPetugasPelaksana.PETUGAS_PELAKSANA, tgl); } else { listData = revIndekKinerjaDao.getDetailPasienTindakanDokter(Master.Kelas.KELAS_SATU, idKelas, idPegawai, - idProduk, Master.JenisPetugasPelaksana.PETUGAS_PELAKSANA, tgl); + idProduk, idKelompokPasien, Master.JenisPetugasPelaksana.PETUGAS_PELAKSANA, tgl); } List idsDokterUmumIGD = splitDataSettingDatafixed("pr_dokter_umum_igd"); 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 fc45b8d7..5a02389a 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 @@ -4889,16 +4889,16 @@ public class SdmController extends LocaleController { } } - @RequestMapping(value = "/get-detail-pasien/{idProduk}/{idKelas}/{idPegawai}/{tgl}/{ffs}", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE) + @RequestMapping(value = "/get-detail-pasien/{idProduk}/{idKelompokPasien}/{idKelas}/{idPegawai}/{tgl}/{ffs}", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE) public ResponseEntity>> getDetailPasien(HttpServletRequest request, - @PathVariable("idProduk") Integer idProduk, @PathVariable("idKelas") Integer idKelas, - @PathVariable("tgl") String tgl, @PathVariable("ffs") Boolean ffs, + @PathVariable("idProduk") Integer idProduk, @PathVariable("idKelompokPasien") Integer idKelompokPasien, + @PathVariable("idKelas") Integer idKelas, @PathVariable("tgl") String tgl, @PathVariable("ffs") Boolean ffs, @PathVariable("idPegawai") Integer idPegawai, @RequestParam(value = "diskon", required = true) Double diskon, @RequestParam(value = "statusDiskon", required = true) Integer statusDiskon) { List> result = null; try { - result = indekKinerjaService.findPatientDetailForEveryTindakanReview(idProduk, idKelas, idPegawai, tgl, ffs, + result = indekKinerjaService.findPatientDetailForEveryTindakanReview(idProduk, idKelompokPasien, idKelas, idPegawai, tgl, ffs, diskon, statusDiskon); mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_SUCCESS, getMessage(MessageResource.LABEL_SUCCESS, request));