diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/IkiDanRemunerasiDao.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/IkiDanRemunerasiDao.java index c19a793f..cc11e2c1 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/IkiDanRemunerasiDao.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/IkiDanRemunerasiDao.java @@ -145,18 +145,21 @@ public interface IkiDanRemunerasiDao extends PagingAndSortingRepository listIdNontindakan, @Param("karcisId") Integer idKarcis); - @Query("select distinct new Map(ppp.ObjectJenisPetugasPeId as jenisPetugasId," + @Query("select distinct new Map(jpp.id as jenisPetugasId, jpp.jenisPetugasPe as jenisPetugas," + "pr.id as produkId,pr.namaProduk as namaProduk," + "pp.noRec as noRec," + "pp.tglPelayanan as tglPelayanan," + "to_char(pp.tglPelayanan,'dd-MM-yyyy HH:mi:ss') as tglPelayananFormatted," + "pp.jumlah as jumlah," - + "pp.hargaDiscount as hargaDiskon," + "ru.departemenId as departemenId,ru.id as ruanganId," - + "pd.noRegistrasi as noRegistrasi,pd.isDiskonPegawai as statusDiskon," + "ps.namaPasien as namaPasien) " + + "pp.hargaDiscount as hargaDiskon," + + "ru.departemenId as departemenId,ru.id as ruanganId,ru.namaRuangan as namaRuangan," + + "pd.noRegistrasi as noRegistrasi,pd.isDiskonPegawai as statusDiskon," + + "ps.namaPasien as namaPasien, ps.noCm as noCm) " + "from PelayananPasienPetugas ppp, MapRuanganToProduk mrtp " + "left join ppp.pelayananPasien pp " - + "left join ppp.kdpegawai pg " + "left join pp.produk pr " + "left join pp.pasienDaftar apd " - + "left join pr.detailJenisProduk djp " + "left join apd.pasienDaftar pd " + "left join apd.ruangan ru " - + "left join pd.pasien ps " + "where mrtp.produkId = pr.id " + "and mrtp.ruanganId = apd.ruanganId " - + "and mrtp.statusEnabled is true " + "and pg.statusEnabled is true " + "and pd.statusEnabled is true " - + "and pr.id = :produkId " + "and to_char(pp.tglPelayanan,'yyyy-MM-dd') = :tglPelayanan " + + "left join ppp.kdpegawai pg " + "left join ppp.kdjenispetugaspe jpp " + "left join pp.produk pr " + + "left join pp.pasienDaftar apd " + "left join pr.detailJenisProduk djp " + + "left join apd.pasienDaftar pd " + "left join apd.ruangan ru " + "left join pd.pasien ps " + + "where mrtp.produkId = pr.id " + "and mrtp.ruanganId = apd.ruanganId " + "and mrtp.statusEnabled is true " + + "and pg.statusEnabled is true " + "and pd.statusEnabled is true " + "and pr.id = :produkId " + + "and to_char(pp.tglPelayanan,'yyyy-MM-dd') = :tglPelayanan " + "and ((to_char(pp.tglPelayanan,'dy') in ('mon','tue','wed','thu') " + "and to_char(pp.tglPelayanan,'HH24:MM:ss') between '07:00:00' and '15:30:00') " + "or (to_char(pp.tglPelayanan,'dy') in ('fri') " diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/IkiDanRemunerasiServiceImpl.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/IkiDanRemunerasiServiceImpl.java index b6c0aa40..f719b24c 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/IkiDanRemunerasiServiceImpl.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/IkiDanRemunerasiServiceImpl.java @@ -488,6 +488,7 @@ public class IkiDanRemunerasiServiceImpl extends BaseVoServiceImpl implements Ik bulan.set(Calendar.DAY_OF_MONTH, bulan.getActualMaximum(Calendar.DAY_OF_MONTH)); List listRuangEks = splitDataSettingDatafixed("IdRuanganEksekutif"); + List listKonsulTapiVisit = splitDataSettingDatafixed("konsulTapiVisit"); List listIndikatorPelayanan = Arrays.asList(Master.IndikatorKinerjaDetail.INDIKATOR_PELAYANAN_MEDIS); @@ -652,7 +653,25 @@ public class IkiDanRemunerasiServiceImpl extends BaseVoServiceImpl implements Ik for (Map data : dataLayananScored) { if (kelompokKerja.get("subunitKerjaId").equals(data.get("idKelompokKerja")) && datePelayanan.equals(sdf.format(data.get("tglPelayanan")))) { - if (idIndikator.equals(Master.IndikatorKinerjaDetail.KONSUL_EKS) + if (idIndikator.equals(Master.IndikatorKinerjaDetail.VISITE) + && (listKonsulTapiVisit.contains(data.get("idTindakan")) || data.get("namaTindakan") + .toString().toLowerCase().contains(Master.VISIT))) { + capaianBulanan += Double.valueOf(data.get("jumlahTindakan").toString()); + if (i < listBulanPelayananSorted.size()) { + capaianTriwulanVI += Double.valueOf(data.get("jumlahTindakan").toString()); + for (Map target : dataTargetFiltered) { + if (kelompokKerja.get("subunitKerjaId").equals(target.get("kelompokKerjaId")) + && idIndikator.equals(target.get("indikatorId")) + && datePelayanan.equals(target.get("periode"))) { + targetBulanan = Double.valueOf(target.get("target").toString()); + break; + } + } + } else if (i == listBulanPelayananSorted.size()) { + targetBulanan = Math + .floor(capaianTriwulanVI / (listBulanPelayananSorted.size() - 1)); + } + } else if (idIndikator.equals(Master.IndikatorKinerjaDetail.KONSUL_EKS) && data.get("namaTindakan").toString().toLowerCase().contains(Master.KONSUL) && listRuangEks.contains(data.get("idRuangan"))) { capaianBulanan += Double.valueOf(data.get("jumlahTindakan").toString()); @@ -705,23 +724,6 @@ public class IkiDanRemunerasiServiceImpl extends BaseVoServiceImpl implements Ik targetBulanan = Math .floor(capaianTriwulanKR / (listBulanPelayananSorted.size() - 1)); } - } else if (idIndikator.equals(Master.IndikatorKinerjaDetail.VISITE) - && data.get("namaTindakan").toString().toLowerCase().contains(Master.VISIT)) { - capaianBulanan += Double.valueOf(data.get("jumlahTindakan").toString()); - if (i < listBulanPelayananSorted.size()) { - capaianTriwulanVI += Double.valueOf(data.get("jumlahTindakan").toString()); - for (Map target : dataTargetFiltered) { - if (kelompokKerja.get("subunitKerjaId").equals(target.get("kelompokKerjaId")) - && idIndikator.equals(target.get("indikatorId")) - && datePelayanan.equals(target.get("periode"))) { - targetBulanan = Double.valueOf(target.get("target").toString()); - break; - } - } - } else if (i == listBulanPelayananSorted.size()) { - targetBulanan = Math - .floor(capaianTriwulanVI / (listBulanPelayananSorted.size() - 1)); - } } else if (idIndikator.equals(Master.IndikatorKinerjaDetail.TINDAKAN_EKS) && listRuangEks.contains(data.get("idRuangan"))) { capaianBulanan += Double.valueOf(data.get("jumlahTindakan").toString()); diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/LogbookKinerjaServiceImpl.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/LogbookKinerjaServiceImpl.java index 5f0ee5c6..028e77c7 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/LogbookKinerjaServiceImpl.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/LogbookKinerjaServiceImpl.java @@ -568,6 +568,7 @@ public class LogbookKinerjaServiceImpl extends BaseVoServiceImpl implements Logb DateFormat df = new SimpleDateFormat("yyyy-MM-dd"); List listRuangEks = splitDataSettingDatafixed("IdRuanganEksekutif"); + List listKonsulTapiVisit = splitDataSettingDatafixed("konsulTapiVisit"); List> dataLayanan = ikiDanRemunerasiDao.getDataLogbookDokter(mf.format(new Date(bulan)), Master.JenisPegawai.DOKTER, idPegawai, Arrays.asList(Master.JenisProduk.NONTINDAKAN), @@ -620,7 +621,12 @@ public class LogbookKinerjaServiceImpl extends BaseVoServiceImpl implements Logb // GROUPING_INDIKATOR for (Map mapLayanan : dataLayanan) { - if (mapLayanan.get("namaProduk").toString().toLowerCase().contains(Master.KONSUL) + if (listKonsulTapiVisit.contains(mapLayanan.get("produkId")) + || mapLayanan.get("namaProduk").toString().toLowerCase().contains(Master.VISIT)) { + mapLayanan.put("indikatorId", Master.IndikatorKinerjaDetail.VISITE); + mapLayanan.put("namaIndikator", + indikatorKinerjaDetailDao.findNamaIndikator(Master.IndikatorKinerjaDetail.VISITE)); + } else if (mapLayanan.get("namaProduk").toString().toLowerCase().contains(Master.KONSUL) && listRuangEks.contains(mapLayanan.get("ruanganId"))) { mapLayanan.put("indikatorId", Master.IndikatorKinerjaDetail.KONSUL_EKS); mapLayanan.put("namaIndikator", @@ -634,10 +640,6 @@ public class LogbookKinerjaServiceImpl extends BaseVoServiceImpl implements Logb mapLayanan.put("indikatorId", Master.IndikatorKinerjaDetail.KONSUL_REG); mapLayanan.put("namaIndikator", indikatorKinerjaDetailDao.findNamaIndikator(Master.IndikatorKinerjaDetail.KONSUL_REG)); - } else if (mapLayanan.get("namaProduk").toString().toLowerCase().contains(Master.VISIT)) { - mapLayanan.put("indikatorId", Master.IndikatorKinerjaDetail.VISITE); - mapLayanan.put("namaIndikator", - indikatorKinerjaDetailDao.findNamaIndikator(Master.IndikatorKinerjaDetail.VISITE)); } else if (listRuangEks.contains(mapLayanan.get("ruanganId"))) { mapLayanan.put("indikatorId", Master.IndikatorKinerjaDetail.TINDAKAN_EKS); mapLayanan.put("namaIndikator", @@ -753,13 +755,56 @@ public class LogbookKinerjaServiceImpl extends BaseVoServiceImpl implements Logb List> result = new ArrayList<>(); List listRuangEks = splitDataSettingDatafixed("IdRuanganEksekutif"); + List listKonsulTapiVisit = splitDataSettingDatafixed("konsulTapiVisit"); List> dataLayanan = ikiDanRemunerasiDao.findDetailPasienLogbook(idProduk, tglPelayanan, Master.JenisPegawai.DOKTER, idPegawai, Arrays.asList(Master.JenisProduk.NONTINDAKAN), Master.Produk.KARCIS); for (Map mapLayanan : dataLayanan) { - if (idIndikator.equals(Master.IndikatorKinerjaDetail.KONSUL_EKS) + if (idIndikator.equals(Master.IndikatorKinerjaDetail.VISITE) + && (listKonsulTapiVisit.contains(mapLayanan.get("produkId")) + || mapLayanan.get("namaProduk").toString().toLowerCase().contains(Master.VISIT))) { + if (idJenisPetugas.equals(Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS) + && mapLayanan.get("jenisPetugasId").equals(Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS)) { + if (skor.equals(0.0) && Double.valueOf(mapLayanan.get("hargaDiskon").toString()) > 0.0 + && (CommonUtil.isNullOrEmpty(mapLayanan.get("statusDiskon")) + || !Boolean.valueOf(mapLayanan.get("statusDiskon").toString()))) { + mapLayanan.remove("noRec"); + mapLayanan.remove("statusDiskon"); + mapLayanan.remove("departemenId"); + mapLayanan.remove("ruanganId"); + mapLayanan.remove("hargaDiskon"); + result.add(mapLayanan); + } else if (!skor.equals(0.0) && Double.valueOf(mapLayanan.get("hargaDiskon").toString()) == 0.0) { + mapLayanan.remove("noRec"); + mapLayanan.remove("statusDiskon"); + mapLayanan.remove("departemenId"); + mapLayanan.remove("ruanganId"); + mapLayanan.remove("hargaDiskon"); + result.add(mapLayanan); + } + } else if (!idJenisPetugas.equals(Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS) + && !mapLayanan.get("jenisPetugasId").equals(Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS)) { + if (skor.equals(0.0) && Double.valueOf(mapLayanan.get("hargaDiskon").toString()) > 0.0 + && (CommonUtil.isNullOrEmpty(mapLayanan.get("statusDiskon")) + || !Boolean.valueOf(mapLayanan.get("statusDiskon").toString()))) { + mapLayanan.remove("noRec"); + mapLayanan.remove("statusDiskon"); + mapLayanan.remove("departemenId"); + mapLayanan.remove("ruanganId"); + mapLayanan.remove("hargaDiskon"); + result.add(mapLayanan); + } else if (!skor.equals(0.0) && Double.valueOf(mapLayanan.get("hargaDiskon").toString()) == 0.0) { + mapLayanan.remove("noRec"); + mapLayanan.remove("statusDiskon"); + mapLayanan.remove("departemenId"); + mapLayanan.remove("ruanganId"); + mapLayanan.remove("hargaDiskon"); + result.add(mapLayanan); + } + } + } else if (idIndikator.equals(Master.IndikatorKinerjaDetail.KONSUL_EKS) && mapLayanan.get("namaProduk").toString().toLowerCase().contains(Master.KONSUL) && listRuangEks.contains(mapLayanan.get("ruanganId"))) { if (idJenisPetugas.equals(Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS) @@ -884,47 +929,6 @@ public class LogbookKinerjaServiceImpl extends BaseVoServiceImpl implements Logb result.add(mapLayanan); } } - } else if (idIndikator.equals(Master.IndikatorKinerjaDetail.VISITE) - && mapLayanan.get("namaProduk").toString().toLowerCase().contains(Master.VISIT)) { - if (idJenisPetugas.equals(Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS) - && mapLayanan.get("jenisPetugasId").equals(Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS)) { - if (skor.equals(0.0) && Double.valueOf(mapLayanan.get("hargaDiskon").toString()) > 0.0 - && (CommonUtil.isNullOrEmpty(mapLayanan.get("statusDiskon")) - || !Boolean.valueOf(mapLayanan.get("statusDiskon").toString()))) { - mapLayanan.remove("noRec"); - mapLayanan.remove("statusDiskon"); - mapLayanan.remove("departemenId"); - mapLayanan.remove("ruanganId"); - mapLayanan.remove("hargaDiskon"); - result.add(mapLayanan); - } else if (!skor.equals(0.0) && Double.valueOf(mapLayanan.get("hargaDiskon").toString()) == 0.0) { - mapLayanan.remove("noRec"); - mapLayanan.remove("statusDiskon"); - mapLayanan.remove("departemenId"); - mapLayanan.remove("ruanganId"); - mapLayanan.remove("hargaDiskon"); - result.add(mapLayanan); - } - } else if (!idJenisPetugas.equals(Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS) - && !mapLayanan.get("jenisPetugasId").equals(Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS)) { - if (skor.equals(0.0) && Double.valueOf(mapLayanan.get("hargaDiskon").toString()) > 0.0 - && (CommonUtil.isNullOrEmpty(mapLayanan.get("statusDiskon")) - || !Boolean.valueOf(mapLayanan.get("statusDiskon").toString()))) { - mapLayanan.remove("noRec"); - mapLayanan.remove("statusDiskon"); - mapLayanan.remove("departemenId"); - mapLayanan.remove("ruanganId"); - mapLayanan.remove("hargaDiskon"); - result.add(mapLayanan); - } else if (!skor.equals(0.0) && Double.valueOf(mapLayanan.get("hargaDiskon").toString()) == 0.0) { - mapLayanan.remove("noRec"); - mapLayanan.remove("statusDiskon"); - mapLayanan.remove("departemenId"); - mapLayanan.remove("ruanganId"); - mapLayanan.remove("hargaDiskon"); - result.add(mapLayanan); - } - } } else if (idIndikator.equals(Master.IndikatorKinerjaDetail.TINDAKAN_EKS) && listRuangEks.contains(mapLayanan.get("ruanganId"))) { if (idJenisPetugas.equals(Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS)