package com.jasamedika.medifirst2000.dao; import java.util.List; import java.util.Map; import org.springframework.data.jpa.repository.Query; import org.springframework.data.repository.PagingAndSortingRepository; import org.springframework.data.repository.query.Param; import org.springframework.stereotype.Repository; import com.jasamedika.medifirst2000.entities.LogbookKinerjaDetail; @Repository("logbookKinerjaDetailDao") public interface LogbookKinerjaDetailDao extends PagingAndSortingRepository { @Query("select new Map(lkh.noRec as logbookNoRec," + "lkd.noRec as noRec," + "ikm.id as indikatorId,ikm.namaIndikator as namaIndikator," + "lkd.namaKegiatan as namaKegiatan,lkd.capaian as hasil," + "si.id as satuanId,si.satuanIndikator as satuanIndikator," + "lkd.catatan as catatan," + "lkd.tanggalKegiatan as tglKegiatan," + "to_char(lkd.tanggalKegiatan,'dd-MM-yyyy HH24:MI:SS') as tglKegiatanFormat," + "lkd.statusVerifikasi as isStatusVerifikasi," + "(case when lkd.statusVerifikasi is true then 'Terverifikasi' " + "else 'Belum Terverifikasi' end) as statusVerifikasi) " + "from LogbookKinerjaDetail lkd " + "inner join lkd.logbookKinerja lkh " + "inner join lkh.indikatorKinerja ikm " + "inner join ikm.satuanIndikator si " + "where lkh.statusEnabled is true and lkh.statusVerifikasi is true " + "and lkd.statusEnabled is true " + "and ikm.statusEnabled is true and ikm.statusVerifikasi is true " + "and si.statusEnabled is true " + "and lkh.pegawaiId = :pegawaiId " + "and lkh.jabatanId = :jabatanId " + "and to_char(lkd.tanggalKegiatan,'yyyy-MM') = :bulan " + "order by lkd.statusVerifikasi, lkd.tanggalKegiatan") List> findWorkingRecord(@Param("pegawaiId") Integer idPegawai, @Param("jabatanId") Integer idJabatan, @Param("bulan") String bulan); @Query("select new Map(lkd.logbookIndikatorId as logbookId,avg(lkd.capaian) as avgCapaian,ikm.satuanIndikatorId as satuanId) " + "from LogbookKinerjaDetail lkd " + "inner join lkd.logbookKinerja lk " + "inner join lk.indikatorKinerja ikm " + "where lkd.statusEnabled is true " + "and lkd.statusVerifikasi is true " + "and lk.statusEnabled is true " + "and ikm.statusEnabled is true " + "and lk.noRec = :noRec " + "and ikm.satuanIndikatorId in (:listSatuanId) " + "group by lkd.logbookIndikatorId, ikm.satuanIndikatorId") List> findAvgCapaianByKontrak(@Param("noRec") String noRec, @Param("listSatuanId") List listIdSatuan); }