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.LogbookKinerja; @Repository("logbookKinerjaDao") public interface LogbookKinerjaDao extends PagingAndSortingRepository { @Query("select new Map(lk.noRec as noRec," + "pg.id as pegawaiId,pg.namaLengkap as namaPegawai," + "jb.id as jabatanId,jb.namaJabatan as namaJabatan," + "ik.id as indikatorId,ik.namaIndikator as namaIndikator," + "si.id as satuanIndikatorId,si.satuanIndikator as satuanIndikator," + "ik.jenisIndikator as jenisIndikatorId," + "(case when ik.jenisIndikator = 1 then 'Kuantitas' " + "when ik.jenisIndikator = 2 then 'Kualitas' " + "when ik.jenisIndikator = 3 then 'Perilaku' end) as jenisIndikator," + "lk.target as target," + "lk.bobot as bobot," + "lk.bulan as bulan) " + "from LogbookKinerja lk " + "inner join lk.indikatorKinerja ik " + "inner join lk.pegawai pg " + "inner join lk.jabatan jb " + "inner join ik.satuanIndikator si " + "where lk.statusEnabled is true " + "and ik.statusEnabled is true " + "and pg.statusEnabled is true " + "and lk.statusVerifikasi is false " + "and ik.statusVerifikasi is false " + "and pg.id = :pegawaiId " + "and jb.id = :jabatanId") List> findPengajuanIndikatorByPegawaiJabatan(@Param("pegawaiId") Integer pegawaiId, @Param("jabatanId") Integer jabatanId); @Query("select new Map(lk.noRec as noRec,ik.namaIndikator as namaIndikator) " + "from LogbookKinerja lk " + "inner join lk.indikatorKinerja ik " + "where lk.statusEnabled is true and ik.statusEnabled is true " + "and lk.statusVerifikasi is true and ik.statusVerifikasi is true " + "and lk.pegawaiId = :pegawaiId " + "and lk.jabatanId = :jabatanId " + "and to_char(lk.bulan,'yyyy-MM') = :bulan " + "and ik.id = :indikatorId") List> findDupKontrakKinerja(@Param("pegawaiId") Integer idPegawai, @Param("jabatanId") Integer idJabatan, @Param("bulan") String bulan, @Param("indikatorId") Integer idIndikator); @Query("select new Map(lk.noRec as noRec," + "pg.id as idPegawai,pg.namaLengkap as namaPegawai," + "jb.id as idJabatan,jb.namaJabatan as namaJabatan," + "ik.id as idIndikator,ik.namaIndikator as namaIndikator," + "ik.jenisIndikator as idJenisIndikator," + "(case when ik.jenisIndikator = 1 then 'Kuantitas' " + "when ik.jenisIndikator = 2 then 'Kualitas' " + "when ik.jenisIndikator = 3 then 'Perilaku' end) as jenisIndikator," + "lk.target as target," + "lk.bobot as bobot," + "lk.bulan as bulan," + "lk.statusVerifikasi as isStatusVerifikasi," + "(case when lk.statusVerifikasi is false then 'Belum Terverifikasi' " + "when lk.statusVerifikasi is true then 'Terverifikasi' end) as statusVerifikasi) " + "from LogbookKinerja lk " + "inner join lk.indikatorKinerja ik " + "inner join lk.pegawai pg " + "inner join lk.jabatan jb " + "where lk.statusEnabled is true and ik.statusEnabled is true " + "and ik.statusVerifikasi is true " + "and lk.pegawaiId = :pegawaiId " + "and lk.jabatanId = :jabatanId " + "and to_char(lk.bulan,'yyyy-MM') = :bulan " + "order by ik.jenisIndikator, ik.namaIndikator") List> findKontrakKinerja(@Param("pegawaiId") Integer idPegawai, @Param("jabatanId") Integer idJabatan, @Param("bulan") String bulan); @Query("select new Map(lk.noRec as noRec," + "pg.id as idPegawai,pg.namaLengkap as namaPegawai," + "jb.id as idJabatan,jb.namaJabatan as namaJabatan," + "ik.id as idIndikator,ik.namaIndikator as namaIndikator," + "ik.jenisIndikator as idJenisIndikator,(case when ik.jenisIndikator = 1 then 'Kuantitas' " + "when ik.jenisIndikator = 2 then 'Kualitas' " + "when ik.jenisIndikator = 3 then 'Perilaku' end) as jenisIndikator," + "lk.capaian/lk.target*100 as persenCapaian) " + "from LogbookKinerja lk " + "inner join lk.indikatorKinerja ik " + "inner join lk.pegawai pg " + "inner join lk.jabatan jb " + "where lk.statusEnabled is true and ik.statusEnabled is true " + "and lk.statusVerifikasi is true and ik.statusVerifikasi is true " + "and lk.pegawaiId = :pegawaiId " + "and lk.jabatanId = :jabatanId " + "and to_char(lk.bulan,'yyyy-MM') = :bulan") List> findLogbookKinerja(@Param("pegawaiId") Integer idPegawai, @Param("jabatanId") Integer idJabatan, @Param("bulan") String bulan); }