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 5e7dcf30..70f8620a 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 @@ -113,9 +113,9 @@ public interface IkiDanRemunerasiDao extends PagingAndSortingRepository listIdNonjadwal, @Param("jenisPegawaiId") Integer idJenisPegawai, @Param("listDepartemenId") List listIdDepartemen, - @Param("listKategoriRemun") List listKategoriRemun, @Param("listKsmId") List listIdKsm, + @Param("listKategoriRemun") List listKategoriRemun, + @Param("listInactiveId") List listIdInactive, @Param("listKsmId") List listIdKsm, @Param("listNontindakanId") List listIdNontindakan, @Param("listBpjsId") List listIdBpjs, @Param("asuransiLainId") Integer idAsuransiLain, @Param("jaminanKemenkesId") Integer idJaminanKemenkes, @Param("karcisId") Integer idKarcis); @@ -156,12 +157,13 @@ public interface IkiDanRemunerasiDao extends PagingAndSortingRepository :karcisId " - + "order by pg.namaLengkap, pr.id") + + "and pg.jenisPegawaiId = :jenisPegawaiId " + "and pg.kedudukanId not in (:listInactiveId) " + + "and jb.kelompokJabatanId in (3,4) " + "and djp.jenisProdukId not in (:listNontindakanId) " + + "and pr.id <> :karcisId " + "order by pg.namaLengkap, pr.id") public List> getDataLayananLuarJamKerja(@Param("tglAwal") Date tglAwal, @Param("tglAkhir") Date tglAkhir, @Param("psbbAwal") Date psbbAwal, @Param("psbbAkhir") Date psbbAkhir, @Param("listNonjadwalId") List listIdNonjadwal, @Param("jenisPegawaiId") Integer idJenisPegawai, + @Param("listInactiveId") List listIdInactive, @Param("listDepartemenId") List listIdDepartemen, @Param("listKsmId") List listIdKsm, @Param("listNontindakanId") List listIdNontindakan, @Param("listBpjsId") List listIdBpjs, @Param("asuransiLainId") Integer idAsuransiLain, @Param("jaminanKemenkesId") Integer idJaminanKemenkes, diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/IndikatorKinerjaDetailDao.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/IndikatorKinerjaDetailDao.java index 20e91b42..dcbcbc0d 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/IndikatorKinerjaDetailDao.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/IndikatorKinerjaDetailDao.java @@ -16,7 +16,11 @@ public interface IndikatorKinerjaDetailDao extends PagingAndSortingRepository> findByListId(@Param("listDetailId") List listIdDetail); - + + @Query("select ikd " + "from IndikatorKinerjaDetail ikd " + "where ikd.statusEnabled is true " + + "and ikd.indikatorKinerjaId = :indikatorId") + public List findByIndikator(@Param("indikatorId") Integer idIndikator); + @Query("select ikd.detailIndikator from IndikatorKinerjaDetail ikd where ikd.id = :indikatorId") public String findNamaIndikator(@Param("indikatorId") Integer idIndikator); diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/MapPegawaiJabatanToUnitKerjaDao.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/MapPegawaiJabatanToUnitKerjaDao.java index e092a056..86905a4a 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/MapPegawaiJabatanToUnitKerjaDao.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/MapPegawaiJabatanToUnitKerjaDao.java @@ -479,9 +479,13 @@ public interface MapPegawaiJabatanToUnitKerjaDao extends CrudRepository> findNilaiJabatanByPegawai(@Param("pegawaiId") Integer idPegawai); - @Query("select new Map(mj.pegawaiId as pegawaiId,mj.jabatanId as jabatanId) " - + "from MapPegawaiJabatanToUnitKerja mj " + "where mj.statusEnabled is true " - + "and mj.subUnitKerjaPegawaiId = :subunitKerjaId") - List> findPegawaiJabatanBySubunitKerja(@Param("subunitKerjaId") Integer idSubunitKerja); + @Query("select distinct new Map(mj.pegawaiId as pegawaiId,mj.jabatanId as jabatanId) " + + "from MapPegawaiJabatanToUnitKerja mj " + "inner join mj.pegawai pg " + "where mj.statusEnabled is true " + + "and pg.statusEnabled is true " + "and mj.subUnitKerjaPegawaiId = :kelompokKerja " + + "and pg.kategoryPegawaiId in (:remun) " + "and pg.jenisPegawaiId = :dokter " + + "and pg.kedudukanId not in (:nonAktif)") + List> findPegawaiJabatanByKelompokKerja(@Param("kelompokKerja") Integer idKK, + @Param("remun") List listIdRemun, @Param("dokter") Integer idDokter, + @Param("nonAktif") List listIdNonAktif); } 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 d4334057..6b251a91 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 @@ -546,9 +546,9 @@ public class IkiDanRemunerasiServiceImpl extends BaseVoServiceImpl implements Ik List> dataRaw = ikiDanRemunerasiDao.getDataLayananJamKerja(calTglAwal.getTime(), bulan.getTime(), pssbAwal, pssbAkhir, listIdNonjadwal, Master.JenisPegawai.DOKTER, Arrays.asList(Master.Departemen.GRUP_RAWAT_JALAN), Arrays.asList(Master.KategoryPegawai.REMUN), - Arrays.asList(Master.UnitKerja.KSM), Arrays.asList(Master.JenisProduk.NONTINDAKAN), - Arrays.asList(Master.KelompokPasien.KELOMPOK_BPJS), Master.KelompokPasien.ASURANSI_LAIN, - Master.Rekanan.JAMINAN_KEMENKES, Master.Produk.KARCIS); + Arrays.asList(Master.KedudukanPegawai.INACTIVE_LOGIN), Arrays.asList(Master.UnitKerja.KSM), + Arrays.asList(Master.JenisProduk.NONTINDAKAN), Arrays.asList(Master.KelompokPasien.KELOMPOK_BPJS), + Master.KelompokPasien.ASURANSI_LAIN, Master.Rekanan.JAMINAN_KEMENKES, Master.Produk.KARCIS); // filter detail jenis produk for (Map map : dataRaw) { @@ -970,7 +970,9 @@ public class IkiDanRemunerasiServiceImpl extends BaseVoServiceImpl implements Ik targetLayananDao.save(targetLayanan); if (sdf.format(targetLayanan.getPeriode()).equals(sdf.format(periodeHitung))) { List> dataPegawai = mapPegawaiJabatanToUnitKerjaDao - .findPegawaiJabatanBySubunitKerja(targetLayanan.getSubUnitKerjaPegawai().getId()); + .findPegawaiJabatanByKelompokKerja(targetLayanan.getSubUnitKerjaPegawai().getId(), + Arrays.asList(Master.KategoryPegawai.REMUN), Master.JenisPegawai.DOKTER, + Arrays.asList(Master.KedudukanPegawai.INACTIVE_LOGIN)); Double detailTarget = Math.floor(targetLayanan.getTarget() / dataPegawai.size()); if (detailTarget < 1.0) { @@ -1060,6 +1062,7 @@ public class IkiDanRemunerasiServiceImpl extends BaseVoServiceImpl implements Ik List> dataRaw = ikiDanRemunerasiDao.getDataLayananLuarJamKerja(calTglAwal.getTime(), bulan.getTime(), pssbAwal, pssbAkhir, listIdNonjadwal, Master.JenisPegawai.DOKTER, + Arrays.asList(Master.KedudukanPegawai.INACTIVE_LOGIN), Arrays.asList(Master.Departemen.GRUP_RAWAT_JALAN), Arrays.asList(Master.UnitKerja.KSM), Arrays.asList(Master.JenisProduk.NONTINDAKAN), Arrays.asList(Master.KelompokPasien.KELOMPOK_BPJS), Master.KelompokPasien.ASURANSI_LAIN, Master.Rekanan.JAMINAN_KEMENKES, Master.Produk.KARCIS); 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 441845a8..f0c50250 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 @@ -422,21 +422,26 @@ public class LogbookKinerjaServiceImpl extends BaseVoServiceImpl implements Logb if (CommonUtil.isNotNullOrEmpty(detailIndikator2)) { map.put("detail", detailIndikator2); } else { - IndikatorKinerjaDetail ikd = indikatorKinerjaDetailDao.findOne(17); - Jabatan jb = jabatanDao.findOne(idJabatan); - Pegawai pg = pegawaiDao.findOne(idPegawai); + List ikds = indikatorKinerjaDetailDao + .findByIndikator(Integer.valueOf(map.get("indikatorId").toString())); + List lkds = new ArrayList<>(); + for (IndikatorKinerjaDetail ikd : ikds) { + Jabatan jb = jabatanDao.findOne(idJabatan); + Pegawai pg = pegawaiDao.findOne(idPegawai); - LogbookKinerjaDokter lkd = new LogbookKinerjaDokter(); - lkd.setBulan(new Date(bulan)); - lkd.setDetailTarget(70.0); - lkd.setKdProfile((short) 0); - lkd.setStatusEnabled(true); - lkd.setTglHitung(new Date()); - lkd.setIndikatorDetail(ikd); - lkd.setJabatan(jb); - lkd.setPegawai(pg); - LogbookKinerjaDokter model = logbookKinerjaDokterDao.save(lkd); - if (CommonUtil.isNotNullOrEmpty(model)) { + LogbookKinerjaDokter lkd = new LogbookKinerjaDokter(); + lkd.setBulan(new Date(bulan)); + lkd.setDetailTarget(70.0); + lkd.setKdProfile((short) 0); + lkd.setStatusEnabled(true); + lkd.setTglHitung(new Date()); + lkd.setIndikatorDetail(ikd); + lkd.setJabatan(jb); + lkd.setPegawai(pg); + lkds.add(lkd); + } + Iterable models = logbookKinerjaDokterDao.save(lkds); + if (CommonUtil.isNotNullOrEmpty(models)) { List> detailIndikator3 = logbookKinerjaDokterDao .findDetailKontrakKinerja(df.format(new Date(bulan)), idJabatan, idPegawai, Integer.valueOf(map.get("indikatorId").toString())); @@ -644,9 +649,17 @@ public class LogbookKinerjaServiceImpl extends BaseVoServiceImpl implements Logb } Double iki = 0.0; - Map acuanIndeks = tabelAcuanIndeksIKIDao.findIKI(totAllPersen); - if (CommonUtil.isNotNullOrEmpty(acuanIndeks)) { - iki = Double.valueOf(acuanIndeks.get("indeks").toString()); + List> acuanIndeks = tabelAcuanIndeksIKIDao.findAllAcuanIndeks(); + for (Map aiki : acuanIndeks) { + if ((Double.valueOf(aiki.get("nilaiBawah").toString()) < Double.parseDouble(df.format(totAllPersen)) + && Double.parseDouble(df.format(totAllPersen)) <= Double + .valueOf(aiki.get("nilaiAtas").toString())) + || (Double.parseDouble(df.format(totAllPersen)) > 1000 + && Double.valueOf(aiki.get("nilaiAtas").toString()) == 1000)) { + iki = Double.valueOf(aiki.get("iki").toString()); + + break; + } } double targetRupiahP1 = nilaiJabatan * Master.Remunerasi.IKI_STANDAR * pir * Master.Remunerasi.PERSEN_P1; @@ -2049,10 +2062,17 @@ public class LogbookKinerjaServiceImpl extends BaseVoServiceImpl implements Logb Double iki = 0.0; String kriteria = "-"; - Map acuanIndeks = tabelAcuanIndeksIKIDao.findIKI(Double.parseDouble(df.format(tHasil))); - if (CommonUtil.isNotNullOrEmpty(acuanIndeks)) { - iki = Double.valueOf(acuanIndeks.get("indeks").toString()); - kriteria = acuanIndeks.get("kriteria").toString(); + List> acuanIndeks = tabelAcuanIndeksIKIDao.findAllAcuanIndeks(); + for (Map aiki : acuanIndeks) { + if ((Double.valueOf(aiki.get("nilaiBawah").toString()) < Double.parseDouble(df.format(tHasil)) + && Double.parseDouble(df.format(tHasil)) <= Double.valueOf(aiki.get("nilaiAtas").toString())) + || (Double.parseDouble(df.format(tHasil)) > 1000 + && Double.valueOf(aiki.get("nilaiAtas").toString()) == 1000)) { + iki = Double.valueOf(aiki.get("iki").toString()); + kriteria = aiki.get("kriteria").toString(); + + break; + } } result.put("tBobot", tBobot); @@ -2178,7 +2198,7 @@ public class LogbookKinerjaServiceImpl extends BaseVoServiceImpl implements Logb Double iki = 0.00; String kriteria = ""; for (Map aiki : acuanIndeks) { - if ((Double.valueOf(aiki.get("nilaiBawah").toString()) <= Double + if ((Double.valueOf(aiki.get("nilaiBawah").toString()) < Double .parseDouble(df.format(tHasil)) && Double.parseDouble(df.format(tHasil)) <= Double .valueOf(aiki.get("nilaiAtas").toString()))