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.SubUnitKerjaPegawai; @Repository public interface SubUnitKerjaDao extends PagingAndSortingRepository { @Query("select model from SubUnitKerjaPegawai model where model.statusEnabled is true and model.id != 0 order by model.name") List getAllSubUnitKerja(); @Query("select model from SubUnitKerjaPegawai model where model.statusEnabled is true and lower(model.name) like lower(:name) order by model.name") List getSubUnitKerjaByName(@Param("name") String name); @Query("select model from SubUnitKerjaPegawai model where model.statusEnabled is true and model.unitKerjaId = :id order by model.name") List getSubUnitKerjaByUnitkerja(@Param("id") Integer id); @Query("select distinct new Map(sk.id as subId,sk.name as subName," + "uk.id as unitId,uk.name as unitName) " + "from SubUnitKerjaPegawai sk " + "inner join sk.unitKerja uk " + "where sk.statusEnabled is true " + "and sk.id in (:listSubunitKerjaId) " + "order by sk.name") List> findSubunitKerjaById(@Param("listSubunitKerjaId") List listIdSubunitKerja); @Query("select new Map(model.id as subunitKerjaId,model.unitKerjaId as unitKerjaId) " + "from SubUnitKerjaPegawai model " + "where model.statusEnabled is true " + "and model.id in (:listSubunitKerjaId) " + "order by model.name") List> findSubDanUnitKerjaById(@Param("listSubunitKerjaId") List listIdSubunitKerja); @Query("select subUnitKerja.id " + "from MapPegawaiJabatanToUnitKerja mappeg " + "left join mappeg.pegawai p " + "inner join mappeg.subUnitKerjaPegawai subUnitKerja " + "where mappeg.statusEnabled is true " + "and mappeg.isPrimary is true " + "and mappeg.statusEnabled is true " + "and p.statusEnabled is true " + "and p.id = :idPegawai") Integer getByIdPegawai(@Param("idPegawai") Integer idPegawai); @Query("select new Map(model.id as id, model.name as name, model.unitKerjaId as unitKerjaId) " + "from SubUnitKerjaPegawai model " + "where model.statusEnabled is true " + "and model.id in (:listSubunitKerjaId) " + "order by model.name") List> findSubunitKerja(@Param("listSubunitKerjaId") List listIdSubunitKerja); @Query("select new Map(model.id as id, model.name as namaSubunitKerja) " + "from SubUnitKerjaPegawai model " + "where model.statusEnabled is true and model.unitKerjaId=:idUnitKerjaPegawai " + "order by model.name") List> getSubunitKerjaByUnitKerja(@Param("idUnitKerjaPegawai") Integer idUnitKerjaPegawai); @Query("select model.id " + "from SubUnitKerjaPegawai model " + "where model.statusEnabled is true " + "and model.unitKerjaId in (:listUnitKerjaId) " + "order by model.id") List getSubunitKerjaByUnitKerja(@Param("listUnitKerjaId") List listIdUnitKerja); @Query("select new Map(model.id as id, model.name as name) " + "from SubUnitKerjaPegawai model " + "where model.id=:id and model.statusEnabled is true") Map getSubunitKerjaById(@Param("id") Integer id); @Query("select new Map(subunit.id as id, subunit.name as name, subunit.name as names) " + "from SubUnitKerjaPegawai subunit " + "where subunit.statusEnabled is true " + "and subunit.unitKerjaId = :idUnitKerja " + "order by subunit.name") List> getSubUnitKerjaCustomByUnitKerja(@Param("idUnitKerja") Integer idUnitKerja); }