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 strJabatanByJenis = "SELECT new Map(jb.id as idJabatan, jb.namaJabatan as namaJabatan) from Jabatan jb " + "where jb.statusEnabled is true " + "and jb.jenisJabatanId = :jenisJabatanId"; String byUnitKerja = " and jb.unitKerjaId = :unitKerjaId"; String sortNamaJabatan = " order by jb.namaJabatan"; @Query(strJabatanByJenis + sortNamaJabatan) List> getJabatanByJenisJabatan(@Param("jenisJabatanId") Integer jenisJabatanId); @Query(strJabatanByJenis + byUnitKerja + sortNamaJabatan) List> findModelJabatanByJenisUnit(@Param("jenisJabatanId") Integer jenisJabatanId, @Param("unitKerjaId") Integer idUnitKerja); @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(); String strDuplikatJabatan = "select new Map(jb.id as id, jb.namaJabatan as namaJabatan) " + "from Jabatan jb where jb.statusEnabled is true " + "and lower(regexp_replace(jb.namaJabatan,'[^0-9a-zA-Z]+', '', 'g')) = :namaJabatan " + "and jb.jenisJabatanId = :jenisJabatanId"; String unitKerjaId = " and jb.unitKerjaId = :unitKerjaId"; String notJabatanId = " and jb.id <> :jabatanId"; @Query(strDuplikatJabatan) List> checkNamaJabatan(@Param("namaJabatan") String namaJabatan, @Param("jenisJabatanId") Integer jenisJabatanId); @Query(strDuplikatJabatan + notJabatanId) List> checkNamaJabatan(@Param("jabatanId") Integer idJabatan, @Param("namaJabatan") String namaJabatan, @Param("jenisJabatanId") Integer idJenisJabatan); @Query(strDuplikatJabatan + unitKerjaId) List> checkNamaJabatan(@Param("namaJabatan") String namaJabatan, @Param("jenisJabatanId") Integer idJenisJabatan, @Param("unitKerjaId") Integer idUnitKerja); @Query(strDuplikatJabatan + notJabatanId + unitKerjaId) List> checkNamaJabatan(@Param("jabatanId") Integer idJabatan, @Param("namaJabatan") String namaJabatan, @Param("jenisJabatanId") Integer idJenisJabatan, @Param("unitKerjaId") Integer idUnitKerja); String strJabatan = "select new Map(jb.id as id,jb.namaJabatan as namaJabatan," + "jb.levelJabatan as levelJabatan,jb.subLevelJabatan as levelDireksi," + "jj.id as jenisJabatanId,jj.jenisJabatan as jenisJabatan," + "uk.id as unitKerjaId,uk.name as unitKerja," + "el.id as eselonId,el.eselon as eselon," + "kj.id as kelompokJabatanId,kj.namaKelompokJabatan as kelompokJabatan) " + "from Jabatan jb " + "inner join jb.jenisJabatan jj " + "left join jb.unitKerja uk with (uk.id <> 0 and uk.statusEnabled is true) " + "left join jb.eselon el with (el.id <> 0 and el.statusEnabled is true) " + "left join jb.kelompokJabatan kj with (kj.id between 1 and 10 and kj.statusEnabled is true) " + "where jb.statusEnabled is true " + "and jj.statusEnabled is true "; String namaJabatan = " and lower(jb.namaJabatan) like %:namaJabatan%"; String jenisJabatan = " and jj.id = :jenisJabatanId"; String unitKerja = " and uk.id = :unitKerjaId"; String sortMasterJabatan = " order by jb.namaJabatan, uk.name, jj.jenisJabatan"; @Query(strJabatan + sortMasterJabatan) List> findJabatan(); @Query(strJabatan + namaJabatan + sortMasterJabatan) List> findJabatanByNama(@Param("namaJabatan") String namaJabatan); @Query(strJabatan + jenisJabatan + sortMasterJabatan) List> findJabatanByJenis(@Param("jenisJabatanId") Integer idJenisJabatan); @Query(strJabatan + unitKerja + sortMasterJabatan) List> findJabatanByUnit(@Param("unitKerjaId") Integer idUnitKerja); @Query(strJabatan + namaJabatan + jenisJabatan + sortMasterJabatan) List> findJabatanByNamaJenis(@Param("namaJabatan") String namaJabatan, @Param("jenisJabatanId") Integer idJenisJabatan); @Query(strJabatan + namaJabatan + unitKerja + sortMasterJabatan) List> findJabatanByNamaUnit(@Param("namaJabatan") String namaJabatan, @Param("unitKerjaId") Integer idUnitKerja); @Query(strJabatan + jenisJabatan + unitKerja + sortMasterJabatan) List> findJabatanByJenisUnit(@Param("jenisJabatanId") Integer idJenisJabatan, @Param("unitKerjaId") Integer idUnitKerja); @Query(strJabatan + namaJabatan + jenisJabatan + unitKerja + sortMasterJabatan) List> findJabatanByNamaJenisUnit(@Param("namaJabatan") String namaJabatan, @Param("jenisJabatanId") Integer idJenisJabatan, @Param("unitKerjaId") Integer idUnitKerja); @Query("select new Map(jb.id as id,jb.namaJabatan as namaJabatan," + "jb.kelompokJabatanId as kelompokJabatanId) " + "from Jabatan jb " + "where jb.statusEnabled is true " + "and jb.unitKerjaId = :unitKerjaId " + "and jb.jenisJabatanId = :jenisJabatanId " + "group by jb.id, jb.namaJabatan " + "order by jb.namaJabatan") List> findJabatan(@Param("jenisJabatanId") Integer idJenisJabatan, @Param("unitKerjaId") Integer idUnitKerja); @Query("select new Map(nj.kelompokJabatanId as kelompokJabatanId," + "min(nj.nilaiTerendah) as nilaiTerendah," + "max(nj.nilaiTertinggi) as nilaiTertinggi) " + "from NilaiKelompokJabatan nj " + "where nj.statusEnabled is true " + "and nj.kelompokJabatanId in (:listKelompokJabatanId) " + "group by nj.kelompokJabatanId " + "order by min(nj.nilaiTerendah)") List> findPeringkatJabatan(@Param("listKelompokJabatanId") List listIdKelompokJabatan); @Query("select new Map(jb.id as jabatanId,jb.namaJabatan as namaJabatan) " + "from Jabatan jb " + "where id in (:listJabatanId) " + "and jb.kelompokJabatanId in (3,4) " + "and jb.statusEnabled is true " + "order by jb.namaJabatan") List> findJabatanByListId(@Param("listJabatanId") List listIdJabatan); @Query("select distinct new Map(jb.id as id, jb.namaJabatan as jabatan, (jb.id || ' - ' || jb.namaJabatan) as namaJabatan) " + "from Jabatan jb " + "where jb.statusEnabled is true " + "and jb.unitKerjaId = :unitKerjaId " + "order by jb.namaJabatan, jb.id") List> findByUnitKerja(@Param("unitKerjaId") Integer idUnitKerja); }