79 lines
3.7 KiB
Java

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<Jabatan, Integer> {
@Query("SELECT new map (model.id as id) from Jabatan model where lower(model.namaJabatan) like lower('dokter%') ")
List<Map<String, Object>> findIdJabatanInternalDokterOnly();
@Query("SELECT new map (model.id as id,model.namaJabatan as namaJabatan) "
+ "from Jabatan model where model.statusEnabled is true")
List<Map<String, Object>> 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<String, Object> 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<Jabatan> 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<Map<String, Object>> getJabatanByJenisJabatanAnjab(@Param("jenisJabatanId") Integer jenisJabatanId,
@Param("kdJabatan") String kdJabatan);
@Query(strQryJabatanByJenis + kdJabatanNonanjab + sortNamaJabatan)
List<Map<String, Object>> 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<Map<String, Object>> 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<Map<String, Object>> 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<Map<String, Object>> 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<String> findUnitKerjaAnjab();
}