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 32802252..37c89aec 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 @@ -71,8 +71,6 @@ public interface IndekKinerjaService { List> getAllTindakanByDokter(String periode, Integer idPegawai); List> getAllTindakanByDokterReview(String periode, Integer idPegawai); - - List> getAllPelayananByDokterReview(String periode, Integer idPegawai); List> getAllTindakanByDokterReviewForReport(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 1020c34a..eeeae4d6 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 @@ -390,7 +390,8 @@ public class IndekKinerjaServiceImpl extends BaseVoServiceImpl implements IndekK int idPegawai = pegawai.getId(); Long totalPerTanggal; if (CommonUtil.isNullOrEmpty(listDetailException)) { - result = indekKinerjaDao.findTindakanByIdUserAndPeriod(idPegawai, start, end, splitIdProdukAdministrasi()); + result = indekKinerjaDao.findTindakanByIdUserAndPeriod(idPegawai, start, end, + splitIdProdukAdministrasi()); totalPerTanggal = indekKinerjaDao.findTotalTindakanPerTanggal(idPegawai, date, splitIdProdukAdministrasi()); } else { @@ -3320,665 +3321,6 @@ public class IndekKinerjaServiceImpl extends BaseVoServiceImpl implements IndekK return result; } - @Override - public List> getAllPelayananByDokterReview(String periode, Integer idPegawai) { - if (pegawaiDao.getPegawaiByKategoryPegawai(Arrays.asList(Master.KategoryPegawai.DOKTER_LUAR)) - .contains(idPegawai)) { - return new ArrayList<>(); - } - - List> result = new ArrayList<>(); - List> rawResult = new ArrayList<>(); - List> countResult = new ArrayList<>(); - - List listProdukId = new ArrayList<>(); - List listKelasId = new ArrayList<>(); - List listPelaksanaId = new ArrayList<>(); - List listDetailJenisProduk = new ArrayList<>(); - List listDetailJenisProdukException = new ArrayList<>(); - List listTanggalPelayanan = new ArrayList<>(); - - Double harga = 0.0; - Double point = 0.0; - Double pointQty = 0.0; - Double formatPointQty = 0.0; - Double formatRpKontribusi = 0.0; - Double percentage = 0.0; - - DecimalFormat df = new DecimalFormat("#.##"); - DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); - - LocalDateTime PSBBDate = LocalDateTime.of(2020, 9, 14, 0, 0, 0); - LocalDateTime PSBBEnd = LocalDateTime.parse(GetSettingDataFixed("psbbperiod"), dtf); - - List drAnastesiList = pegawaiDao.getDokterByKelompokKerja(Master.SubUnitKerja.KK_ANESTESI); - List drKsmUmumList = pegawaiDao.getDokterByKelompokKerja(Master.SubUnitKerja.KK_UMUM); - List laboranRadiologList = mapPegawaiLaboratRadiologiDao.findPegawaiLaboranRadiolog(); - - if (pegawaiDao.getDokterByKelompokKerja(Master.SubUnitKerja.KK_PATOLOGI_ANATOMI).contains(idPegawai)) { - listDetailJenisProduk = new ArrayList<>(Arrays.asList(Master.DetailJenisProduk.PENUNJANG_PATOLOGI_ANATOMI)); - } else if (pegawaiDao.getDokterByKelompokKerja(Master.SubUnitKerja.KK_PATOLOGI_KLINIK).contains(idPegawai)) { - listDetailJenisProduk = new ArrayList<>(Arrays.asList(Master.DetailJenisProduk.PENUNJANG_PATOLOGI_KLINIK)); - } else if (pegawaiDao.getDokterByKelompokKerja(Master.SubUnitKerja.KK_RADIOLOGI).contains(idPegawai)) { - listDetailJenisProduk = new ArrayList<>(Arrays.asList(Master.DetailJenisProduk.PENUNJANG_RADIOLOGI)); - } else { - listDetailJenisProduk = new ArrayList<>(Arrays.asList(Master.DetailJenisProduk.MEDIS_UTAMA)); - } - - if (laboranRadiologList.contains(idPegawai)) { - listDetailJenisProdukException = new ArrayList<>( - Arrays.asList(Master.DetailJenisProduk.ADMINISTRASI_PATOLOGI_KLINIK_EXCEPTION)); - listDetailJenisProdukException.removeAll(listDetailJenisProduk); - } - - List> listData = revIndekKinerjaDao.getAllTindakanDokter(Master.Kelas.KELAS_SATU, idPegawai, - Master.JenisPetugasPelaksana.PETUGAS_PELAKSANA, periode); - - // LOGIC_RULES_REMUN - if (CommonUtil.isNotNullOrEmpty(listData)) { - for (Map map : listData) { - if (listDetailJenisProduk.contains(Integer.parseInt(map.get("detailId").toString()))) { - if (Arrays.asList(Master.DetailJenisProduk.PENUNJANG_PATOLOGI_ANATOMI) - .contains(Integer.parseInt(map.get("detailId").toString())) - || Arrays.asList(Master.DetailJenisProduk.PENUNJANG_PATOLOGI_KLINIK) - .contains(Integer.parseInt(map.get("detailId").toString()))) { - rawResult.add(map); - } else if (Master.KelompokPasien.BPJS - .equals(Integer.parseInt(map.get("kelompokPasienId").toString())) - || Master.KelompokPasien.KEMENKES - .equals(Integer.parseInt(map.get("kelompokPasienId").toString())) - || Master.KelompokPasien.JAMKESDA - .equals(Integer.parseInt(map.get("kelompokPasienId").toString()))) { - rawResult.add(map); - } else if (CommonUtil.isNotNullOrEmpty(map.get("jamMasuk"))) { - Date tanggalPelayanan = (Date) map.get("tanggalPelayanan"); - String tglPelayanan = new SimpleDateFormat("yyyy-MM-dd").format(tanggalPelayanan); - String waktuPelayanan = new SimpleDateFormat("HH:mm:ss").format(tanggalPelayanan); - LocalDate datePelayanan = LocalDate.parse(tglPelayanan); - LocalTime timePelayanan = LocalTime.parse(waktuPelayanan); - LocalDateTime dateTimePelayanan = LocalDateTime.of(datePelayanan, timePelayanan); - - String jamMasuk = map.get("jamMasuk").toString().substring(0, 2) + ":" - + map.get("jamMasuk").toString().substring(3) + ":00"; - LocalTime timeMasuk = LocalTime.parse(jamMasuk); - LocalDateTime dateMasuk = LocalDateTime.of(datePelayanan, timeMasuk); - - String jamPulang = map.get("jamPulang").toString().substring(0, 2) + ":" - + map.get("jamPulang").toString().substring(3) + ":00"; - LocalTime timePulang = LocalTime.parse(jamPulang); - LocalDateTime datePulang = LocalDateTime.of(datePelayanan, timePulang); - - String jamPulangPSBB = ""; - LocalTime timePulangPSBB = LocalTime.now(); - LocalDateTime datePulangPSBB = LocalDateTime.now(); - if (getDayOfWeek((Date) map.get("tanggalPelayanan")) == 1 - || getDayOfWeek((Date) map.get("tanggalPelayanan")) == 2 - || getDayOfWeek((Date) map.get("tanggalPelayanan")) == 3 - || getDayOfWeek((Date) map.get("tanggalPelayanan")) == 4) { - jamPulangPSBB = "14:00:00"; - timePulangPSBB = LocalTime.parse(jamPulangPSBB); - datePulangPSBB = LocalDateTime.of(datePelayanan, timePulangPSBB); - } else if (getDayOfWeek((Date) map.get("tanggalPelayanan")) == 5) { - jamPulangPSBB = "14:30:00"; - timePulangPSBB = LocalTime.parse(jamPulangPSBB); - datePulangPSBB = LocalDateTime.of(datePelayanan, timePulangPSBB); - } else { - datePulangPSBB = LocalDateTime.of(datePelayanan, timePulang); - } - - if (map.get("namaShift").toString().contains("Malam")) { - datePulang = datePulang.plusDays(1); - } - - if (Arrays.asList(Master.Departemen.GRUP_RAWAT_INAP) - .contains(Integer.parseInt(map.get("departemenId").toString())) - && ((dateTimePelayanan.isEqual(dateMasuk) || dateTimePelayanan.isAfter(dateMasuk)) - && dateTimePelayanan.isBefore(datePulang))) { - rawResult.add(map); - } else if (map.get("departemenId").equals(Master.Departemen.RAWAT_INAP) - && !Arrays.asList(Master.Ruangan.NONRANAP).contains(map.get("ruanganId")) - && Arrays.stream(Master.KONSUL_VISIT) - .anyMatch(map.get("namaProduk").toString().toLowerCase()::contains) - && (dateTimePelayanan.isBefore(dateMasuk) || dateTimePelayanan.isEqual(datePulang) - || dateTimePelayanan.isAfter(datePulang))) { - rawResult.add(map); - } else if (Arrays.asList(Master.Departemen.GRUP_RAWAT_INAP) - .contains(Integer.parseInt(map.get("departemenId").toString())) - && (dateTimePelayanan.isBefore(dateMasuk) || dateTimePelayanan.isEqual(datePulang) - || dateTimePelayanan.isAfter(datePulang)) - && Arrays.asList(Master.Kelas.KELAS_DUA_TIGA_NONKELAS) - .contains(Integer.parseInt(map.get("idKelas").toString()))) { - rawResult.add(map); - } else if (map.get("departemenId").equals(Master.Departemen.RAWAT_JALAN) - && map.get("namaShift").toString().equals("Non Shift") - && CommonUtil.isNotNullOrEmpty(jamPulangPSBB) - && (dateTimePelayanan.isEqual(PSBBDate) || dateTimePelayanan.isAfter(PSBBDate)) - && (dateTimePelayanan.isBefore(PSBBEnd) || dateTimePelayanan.isEqual(PSBBEnd))) { - if (((dateTimePelayanan.isEqual(dateMasuk) || dateTimePelayanan.isAfter(dateMasuk)) - && dateTimePelayanan.isBefore(datePulangPSBB))) { - rawResult.add(map); - } - } else if (Arrays.asList(Master.Departemen.GRUP_RAWAT_JALAN) - .contains(Integer.parseInt(map.get("departemenId").toString())) - && ((dateTimePelayanan.isEqual(dateMasuk) || dateTimePelayanan.isAfter(dateMasuk)) - && dateTimePelayanan.isBefore(datePulang))) { - rawResult.add(map); - } - } else if (CommonUtil.isNullOrEmpty(map.get("jamMasuk")) - && Arrays.asList(Master.Departemen.GRUP_RAWAT_INAP) - .contains(Integer.parseInt(map.get("departemenId").toString())) - && Arrays.asList(Master.Kelas.KELAS_DUA_TIGA_NONKELAS) - .contains(Integer.parseInt(map.get("idKelas").toString()))) { - rawResult.add(map); - } - } else if (!listDetailJenisProduk.contains(Integer.parseInt(map.get("detailId").toString())) - && map.get("departemenId").equals(Master.Departemen.IGD) && drKsmUmumList.contains(idPegawai) - && Arrays.asList(Master.Produk.DOKTER_UMUM_IGD) - .contains(Integer.parseInt(map.get("idProduk").toString()))) { - if (Master.KelompokPasien.BPJS.equals(Integer.parseInt(map.get("kelompokPasienId").toString())) - || Master.KelompokPasien.KEMENKES - .equals(Integer.parseInt(map.get("kelompokPasienId").toString())) - || Master.KelompokPasien.JAMKESDA - .equals(Integer.parseInt(map.get("kelompokPasienId").toString()))) { - rawResult.add(map); - } else if (CommonUtil.isNotNullOrEmpty(map.get("jamMasuk"))) { - Date tanggalPelayanan = (Date) map.get("tanggalPelayanan"); - String tglPelayanan = new SimpleDateFormat("yyyy-MM-dd").format(tanggalPelayanan); - String waktuPelayanan = new SimpleDateFormat("HH:mm:ss").format(tanggalPelayanan); - LocalDate datePelayanan = LocalDate.parse(tglPelayanan); - LocalTime timePelayanan = LocalTime.parse(waktuPelayanan); - LocalDateTime dateTimePelayanan = LocalDateTime.of(datePelayanan, timePelayanan); - - String jamMasuk = map.get("jamMasuk").toString().substring(0, 2) + ":" - + map.get("jamMasuk").toString().substring(3) + ":00"; - LocalTime timeMasuk = LocalTime.parse(jamMasuk); - LocalDateTime dateMasuk = LocalDateTime.of(datePelayanan, timeMasuk); - - String jamPulang = map.get("jamPulang").toString().substring(0, 2) + ":" - + map.get("jamPulang").toString().substring(3) + ":00"; - LocalTime timePulang = LocalTime.parse(jamPulang); - LocalDateTime datePulang = LocalDateTime.of(datePelayanan, timePulang); - - String jamPulangPSBB = ""; - LocalTime timePulangPSBB = LocalTime.now(); - LocalDateTime datePulangPSBB = LocalDateTime.now(); - if (getDayOfWeek((Date) map.get("tanggalPelayanan")) == 1 - || getDayOfWeek((Date) map.get("tanggalPelayanan")) == 2 - || getDayOfWeek((Date) map.get("tanggalPelayanan")) == 3 - || getDayOfWeek((Date) map.get("tanggalPelayanan")) == 4) { - jamPulangPSBB = "14:00:00"; - timePulangPSBB = LocalTime.parse(jamPulangPSBB); - datePulangPSBB = LocalDateTime.of(datePelayanan, timePulangPSBB); - } else if (getDayOfWeek((Date) map.get("tanggalPelayanan")) == 5) { - jamPulangPSBB = "14:30:00"; - timePulangPSBB = LocalTime.parse(jamPulangPSBB); - datePulangPSBB = LocalDateTime.of(datePelayanan, timePulangPSBB); - } else { - datePulangPSBB = LocalDateTime.of(datePelayanan, timePulang); - } - - if (map.get("namaShift").toString().contains("Malam")) { - datePulang = datePulang.plusDays(1); - } - - if (Arrays.asList(Master.Departemen.GRUP_RAWAT_INAP) - .contains(Integer.parseInt(map.get("departemenId").toString())) - && ((dateTimePelayanan.isEqual(dateMasuk) || dateTimePelayanan.isAfter(dateMasuk)) - && dateTimePelayanan.isBefore(datePulang))) { - rawResult.add(map); - } else if (map.get("departemenId").equals(Master.Departemen.RAWAT_INAP) - && !Arrays.asList(Master.Ruangan.NONRANAP).contains(map.get("ruanganId")) - && Arrays.stream(Master.KONSUL_VISIT) - .anyMatch(map.get("namaProduk").toString().toLowerCase()::contains) - && (dateTimePelayanan.isBefore(dateMasuk) || dateTimePelayanan.isEqual(datePulang) - || dateTimePelayanan.isAfter(datePulang))) { - rawResult.add(map); - } else if (Arrays.asList(Master.Departemen.GRUP_RAWAT_INAP) - .contains(Integer.parseInt(map.get("departemenId").toString())) - && (dateTimePelayanan.isBefore(dateMasuk) || dateTimePelayanan.isEqual(datePulang) - || dateTimePelayanan.isAfter(datePulang)) - && Arrays.asList(Master.Kelas.KELAS_DUA_TIGA_NONKELAS) - .contains(Integer.parseInt(map.get("idKelas").toString()))) { - rawResult.add(map); - } else if (map.get("departemenId").equals(Master.Departemen.RAWAT_JALAN) - && map.get("namaShift").toString().equals("Non Shift") - && CommonUtil.isNotNullOrEmpty(jamPulangPSBB) - && (dateTimePelayanan.isEqual(PSBBDate) || dateTimePelayanan.isAfter(PSBBDate)) - && (dateTimePelayanan.isBefore(PSBBEnd) || dateTimePelayanan.isEqual(PSBBEnd))) { - if (((dateTimePelayanan.isEqual(dateMasuk) || dateTimePelayanan.isAfter(dateMasuk)) - && dateTimePelayanan.isBefore(datePulangPSBB))) { - rawResult.add(map); - } - } else if (Arrays.asList(Master.Departemen.GRUP_RAWAT_JALAN) - .contains(Integer.parseInt(map.get("departemenId").toString())) - && ((dateTimePelayanan.isEqual(dateMasuk) || dateTimePelayanan.isAfter(dateMasuk)) - && dateTimePelayanan.isBefore(datePulang))) { - rawResult.add(map); - } - } else if (CommonUtil.isNullOrEmpty(map.get("jamMasuk")) - && Arrays.asList(Master.Departemen.GRUP_RAWAT_INAP) - .contains(Integer.parseInt(map.get("departemenId").toString())) - && Arrays.asList(Master.Kelas.KELAS_DUA_TIGA_NONKELAS) - .contains(Integer.parseInt(map.get("idKelas").toString()))) { - rawResult.add(map); - } - } else if (CommonUtil.isNotNullOrEmpty(listDetailJenisProdukException) - && listDetailJenisProdukException.contains(Integer.parseInt(map.get("detailId").toString()))) { - if (Arrays.asList(Master.DetailJenisProduk.PENUNJANG_PATOLOGI_ANATOMI) - .contains(Integer.parseInt(map.get("detailId").toString())) - || Arrays.asList(Master.DetailJenisProduk.PENUNJANG_PATOLOGI_KLINIK) - .contains(Integer.parseInt(map.get("detailId").toString()))) { - rawResult.add(map); - } else if (Master.KelompokPasien.BPJS - .equals(Integer.parseInt(map.get("kelompokPasienId").toString())) - || Master.KelompokPasien.KEMENKES - .equals(Integer.parseInt(map.get("kelompokPasienId").toString())) - || Master.KelompokPasien.JAMKESDA - .equals(Integer.parseInt(map.get("kelompokPasienId").toString()))) { - rawResult.add(map); - } else if (CommonUtil.isNotNullOrEmpty(map.get("jamMasuk"))) { - Date tanggalPelayanan = (Date) map.get("tanggalPelayanan"); - String tglPelayanan = new SimpleDateFormat("yyyy-MM-dd").format(tanggalPelayanan); - String waktuPelayanan = new SimpleDateFormat("HH:mm:ss").format(tanggalPelayanan); - LocalDate datePelayanan = LocalDate.parse(tglPelayanan); - LocalTime timePelayanan = LocalTime.parse(waktuPelayanan); - LocalDateTime dateTimePelayanan = LocalDateTime.of(datePelayanan, timePelayanan); - - String jamMasuk = map.get("jamMasuk").toString().substring(0, 2) + ":" - + map.get("jamMasuk").toString().substring(3) + ":00"; - LocalTime timeMasuk = LocalTime.parse(jamMasuk); - LocalDateTime dateMasuk = LocalDateTime.of(datePelayanan, timeMasuk); - - String jamPulang = map.get("jamPulang").toString().substring(0, 2) + ":" - + map.get("jamPulang").toString().substring(3) + ":00"; - LocalTime timePulang = LocalTime.parse(jamPulang); - LocalDateTime datePulang = LocalDateTime.of(datePelayanan, timePulang); - - String jamPulangPSBB = ""; - LocalTime timePulangPSBB = LocalTime.now(); - LocalDateTime datePulangPSBB = LocalDateTime.now(); - if (getDayOfWeek((Date) map.get("tanggalPelayanan")) == 1 - || getDayOfWeek((Date) map.get("tanggalPelayanan")) == 2 - || getDayOfWeek((Date) map.get("tanggalPelayanan")) == 3 - || getDayOfWeek((Date) map.get("tanggalPelayanan")) == 4) { - jamPulangPSBB = "14:00:00"; - timePulangPSBB = LocalTime.parse(jamPulangPSBB); - datePulangPSBB = LocalDateTime.of(datePelayanan, timePulangPSBB); - } else if (getDayOfWeek((Date) map.get("tanggalPelayanan")) == 5) { - jamPulangPSBB = "14:30:00"; - timePulangPSBB = LocalTime.parse(jamPulangPSBB); - datePulangPSBB = LocalDateTime.of(datePelayanan, timePulangPSBB); - } else { - datePulangPSBB = LocalDateTime.of(datePelayanan, timePulang); - } - - if (map.get("namaShift").toString().contains("Malam")) { - datePulang = datePulang.plusDays(1); - } - - if (Arrays.asList(Master.Departemen.GRUP_RAWAT_INAP) - .contains(Integer.parseInt(map.get("departemenId").toString())) - && ((dateTimePelayanan.isEqual(dateMasuk) || dateTimePelayanan.isAfter(dateMasuk)) - && dateTimePelayanan.isBefore(datePulang))) { - rawResult.add(map); - } else if (map.get("departemenId").equals(Master.Departemen.RAWAT_INAP) - && !Arrays.asList(Master.Ruangan.NONRANAP).contains(map.get("ruanganId")) - && Arrays.stream(Master.KONSUL_VISIT) - .anyMatch(map.get("namaProduk").toString().toLowerCase()::contains) - && (dateTimePelayanan.isBefore(dateMasuk) || dateTimePelayanan.isEqual(datePulang) - || dateTimePelayanan.isAfter(datePulang))) { - rawResult.add(map); - } else if (Arrays.asList(Master.Departemen.GRUP_RAWAT_INAP) - .contains(Integer.parseInt(map.get("departemenId").toString())) - && (dateTimePelayanan.isBefore(dateMasuk) || dateTimePelayanan.isEqual(datePulang) - || dateTimePelayanan.isAfter(datePulang)) - && Arrays.asList(Master.Kelas.KELAS_DUA_TIGA_NONKELAS) - .contains(Integer.parseInt(map.get("idKelas").toString()))) { - rawResult.add(map); - } else if (map.get("departemenId").equals(Master.Departemen.RAWAT_JALAN) - && map.get("namaShift").toString().equals("Non Shift") - && CommonUtil.isNotNullOrEmpty(jamPulangPSBB) - && (dateTimePelayanan.isEqual(PSBBDate) || dateTimePelayanan.isAfter(PSBBDate)) - && (dateTimePelayanan.isBefore(PSBBEnd) || dateTimePelayanan.isEqual(PSBBEnd))) { - if (((dateTimePelayanan.isEqual(dateMasuk) || dateTimePelayanan.isAfter(dateMasuk)) - && dateTimePelayanan.isBefore(datePulangPSBB))) { - rawResult.add(map); - } - } else if (Arrays.asList(Master.Departemen.GRUP_RAWAT_JALAN) - .contains(Integer.parseInt(map.get("departemenId").toString())) - && ((dateTimePelayanan.isEqual(dateMasuk) || dateTimePelayanan.isAfter(dateMasuk)) - && dateTimePelayanan.isBefore(datePulang))) { - rawResult.add(map); - } - } else if (CommonUtil.isNullOrEmpty(map.get("jamMasuk")) - && Arrays.asList(Master.Departemen.GRUP_RAWAT_INAP) - .contains(Integer.parseInt(map.get("departemenId").toString())) - && Arrays.asList(Master.Kelas.KELAS_DUA_TIGA_NONKELAS) - .contains(Integer.parseInt(map.get("idKelas").toString()))) { - rawResult.add(map); - } - } - } - } - - if (CommonUtil.isNotNullOrEmpty(rawResult)) { - for (Map map : rawResult) { - if (!Arrays.asList(Master.JenisPetugasPelaksana.DOKTER_ANASTESI_OR_ASISTEN_SPESIALIS) - .contains(Integer.parseInt(map.get("idJenisPelaksana").toString()))) { - map.put("idJenisPelaksana", Master.JenisPetugasPelaksana.DOKTER_PEMERIKSA); - } - if (!listProdukId.contains(Integer.parseInt(map.get("idProduk").toString()))) { - listProdukId.add(Integer.parseInt(map.get("idProduk").toString())); - } - if (!listKelasId.contains(Integer.parseInt(map.get("idKelas").toString()))) { - listKelasId.add(Integer.parseInt(map.get("idKelas").toString())); - } - if (!listTanggalPelayanan.contains(map.get("tanggal").toString())) { - listTanggalPelayanan.add(map.get("tanggal").toString()); - } - if (!listPelaksanaId.contains(Integer.parseInt(map.get("idJenisPelaksana").toString()))) { - listPelaksanaId.add(Integer.parseInt(map.get("idJenisPelaksana").toString())); - } - } - - 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); - } - } - } - 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); - } - } - } - } - } - - 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 (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 (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"))) { - 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; - } - } - } 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; - } - } - } - } - - 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"))) { - 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; - } - } - } 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; - } - } - } - } - - 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); - } - } - } - } - } - - return result; - } - @Override public List> getAllTindakanByDokterReviewForReport(String periode, Integer idPegawai) { if (pegawaiDao.getPegawaiByKategoryPegawai(Arrays.asList(Master.KategoryPegawai.DOKTER_LUAR)) 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 3fd9d859..2a2f367f 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 @@ -4823,21 +4823,6 @@ public class SdmController extends LocaleController { } } - @RequestMapping(value = "/get-all-pelayanan-dokter/{month}/{idPegawai}", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE) - public ResponseEntity>> getAllPelayananDokter(@PathVariable("month") String month, - @PathVariable("idPegawai") Integer idPegawai, HttpServletRequest request) { - try { - List> result = indekKinerjaService.getAllPelayananByDokterReview(month, idPegawai); - mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_SUCCESS, - getMessage(MessageResource.LABEL_SUCCESS, request)); - - return RestUtil.getJsonResponse(result, HttpStatus.OK, mapHeaderMessage); - } catch (Exception e) { - e.printStackTrace(); - return RestUtil.getJsonHttptatus(HttpStatus.INTERNAL_SERVER_ERROR, mapHeaderMessage); - } - } - @RequestMapping(value = "/get-all-tindakan-dokter/{month}/{idPegawai}", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE) public ResponseEntity>> getAllTindakan(@PathVariable("month") String month, @PathVariable("idPegawai") Integer idPegawai, HttpServletRequest request) {