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.Jabatan; /** * Repository class for Jabatan * * @author Generator */ @Repository("JabatanDao") public interface JabatanDao extends PagingAndSortingRepository { @Query("SELECT new map (model.id as id) from Jabatan model where lower(model.namaJabatan) like lower('dokter%') ") List> findIdJabatanInternalDokterOnly(); @Query("SELECT new map (model.id as id,model.namaJabatan as namaJabatan) " + "from Jabatan model where model.statusEnabled is true") List> findAllJabatan(); @Query("SELECT new Map (model.id as id,model.namaJabatan as namaJabatan,model.kdJabatan as kdJabatan) " + "from Jabatan model where model.id =:id and model.statusEnabled is true") Map getJabatanById(@Param("id") Integer id); @Query("SELECT jenisJabatanId from Jabatan model where model.id =:id and model.statusEnabled is true") Integer getIdJenisJabatanByJabatan(@Param("id") Integer id); @Query("SELECT model from Jabatan model where model.jenisJabatanId = :jenisJabatanId ") List getJabatanStruktural(@Param("jenisJabatanId") Integer jenisJabatanId); String strQryJabatanByJenis = "SELECT new Map(model.id as idJabatan, model.namaJabatan as namaJabatan) from Jabatan model " + "where model.statusEnabled is true " + "and model.jenisJabatanId = :jenisJabatanId "; String kdJabatanAnjab = "and model.kdJabatan = :kdJabatan "; String kdJabatanNonanjab = "and model.kdJabatan <> 'ANJAB' "; String sortNamaJabatan = "order by namaJabatan"; @Query(strQryJabatanByJenis + kdJabatanAnjab + sortNamaJabatan) List> getJabatanByJenisJabatanAnjab(@Param("jenisJabatanId") Integer jenisJabatanId, @Param("kdJabatan") String kdJabatan); @Query(strQryJabatanByJenis + kdJabatanNonanjab + sortNamaJabatan) List> getJabatanByJenisJabatanNonanjab(@Param("jenisJabatanId") Integer jenisJabatanId); @Query("select new Map(jab.id as id, jab.namaJabatan as namaJabatan) " + "from Jabatan jab where jab.statusEnabled is true " + "and jab.jenisJabatanId in (1,5) " + "and lower(jab.namaJabatan) not like ('plh%')") List> getListJabatanFungsionalStruktural(); @Query("select new Map(jab.id as id, jab.namaJabatan as namaJabatan) " + "from Jabatan jab where jab.statusEnabled is true " + "and lower(regexp_replace(jab.namaJabatan,'[^0-9a-zA-Z]+', '', 'g')) = :namaJabatan " + "and jab.jenisJabatanId = :jenisJabatanId") List> checkNamaJabatan(@Param("namaJabatan") String namaJabatan, @Param("jenisJabatanId") Integer jenisJabatanId); @Query("select new Map(j.id as id,j.namaJabatan as namaJabatan," + "min(nj.nilaiTerendah) as nilaiTerendah,max(nj.nilaiTertinggi) as nilaiTertinggi) " + "from Jabatan j, NilaiKelompokJabatan nj " + "left join nj.kelompokJabatan kj " + "where j.kelompokJabatanId = kj.id " + "and j.statusEnabled is true " + "and kj.statusEnabled is true " + "and nj.statusEnabled is true " + "and j.kdJabatan = 'ANJAB' " + "and j.namaExternal = :unitKerja " + "group by j.id, j.namaJabatan " + "order by j.namaJabatan") List> findJabatanAnjabByUnitKerja(@Param("unitKerja") String unitKerja); @Query("select distinct j.namaExternal from Jabatan j " + "where j.statusEnabled is true and j.kdJabatan = 'ANJAB' order by j.namaExternal") List findUnitKerjaAnjab(); }