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.Pegawai; import com.jasamedika.medifirst2000.entities.PlanningRekrutmenSeleksi; import com.jasamedika.medifirst2000.entities.StrukPlanning; @Repository("RekrutmenDao") public interface RekrutmenDao extends PagingAndSortingRepository{ @Query("select new Map (model.id as pelamarId," + "model.namaLengkap as namaPelamar," + "jabatanLamar.id as posisiLamarId," +"jabatanLamar.namaJabatan as posisiLamar," + "jenisKelamin.id as jenisKelaminId," + "jenisKelamin.jenisKelamin as jenisKelamin," + "jenisPegawai.id as jenisPegawaiId," + "model.email as email," +"jenisPegawai.jenisPegawai as jenisPegawai) " +"from Pegawai model " +"left join model.jabatanLamar jabatanLamar " +"left join model.jenisPegawai jenisPegawai " + "left join model.jenisKelamin jenisKelamin " +"where jenisPegawai.id=12") List> getDaftarPelamar(); @Query("select new Map ( " +"pegawai.id as pelamarId, " +"to_char(strukHistori.tglAwal,'yyyy-mm-dd') as tglAwal, " +"pegawai.namaLengkap as namaLengkap, " + "pegawai.email as email," + "pegawai.noHandphone as noHandphone," +"model.institusiPendidikan as institusiPendidikan, " +"pendidikan.id as pendidikanId, " +"pendidikan.namaPendidikan as namaPendidikan, " +"model.kualifikasiJurusan as kualifikasiJurusan, " +"model.ipkNilai as ipkNilai, " +"jabatanLamar.id as posisiLamarId, " +"jabatanLamar.namaJabatan as posisiLamar) " +"from PegawaiHistoriPendidikan model " +"left join model.pegawai pegawai " +"left join pegawai.jabatanLamar jabatanLamar " +"left join pegawai.jenisPegawai jenisPegawai " +"left join pegawai.jenisKelamin jenisKelamin " +"left join model.pendidikan pendidikan " +"left join model.strukHistori strukHistori " +"where jenisPegawai.id=12 and pegawai.id=:pegawaiId") List> getHistoriPendidikanPelamar(@Param("pegawaiId")Integer pegawaiId); @Query("select new Map (pegawai.id as pelamarId, " +"dokumen.id as dokumenId, " + "dokumen.namaJudulDokumen as namaDokumen," + "dokumen.pathFile as pathFile) " +"from PegawaiRekrutmenDokumen model " +"left join model.dokumen dokumen " +"left join model.pegawai pegawai " + "where pegawai.id=:pegawaiId") List> getDokumenPelamar(@Param("pegawaiId")Integer pegawaiId); @Query("select new Map (model.id as id, " +"model.kategoryPegawai as kategoryPegawai) " +"from KategoryPegawai model where id in (1,10)") List> getPNSNonPNS(); @Query("select new Map(dokumen.id as dokumenId, " +"dokumen.namaJudulDokumen as namaJudulDokumen) " +"from ProfileHistoriLowonganD model " +"left join model.kategoryPegawai kategoryPegawai " +"left join model.jabatan jabatan " +"left join model.dokumen dokumen " +"where kategoryPegawai.id=:kategoryPegawaiId and jabatan.id=:jabatanId ") List> getBerkasLowongan(@Param("kategoryPegawaiId")Integer kategoryPegawaiId, @Param("jabatanId")Integer jabatanId); @Query("select new Map (model.id as id, model.namaProduk as namaProduk) " + "from Produk model " + "left join model.detailJenisProduk detailJenisProduk " + "where detailJenisProduk.id=1333") List> getProdukJenisTest(); @Query("select new Map (model.id as id, model.namaLengkap as namaLengkap) from Pegawai model") List> getPetugasSdm(); @Query("select model from StrukPlanning model " +"where to_char(model.tglplanning,'mm-yyyy')=:tglPlanning") List getStrukPlanningByTglPlanning(@Param("tglPlanning")String tglPlanning); @Query("select new Map (model.id as id, model.jenisKelamin as jenisKelamin) from JenisKelamin model") List> getJenisKelamin(); @Query("select new Map (model.id as id, model.agama as agama) from Agama model") List> getAgama(); @Query("select new Map (model.id as id, model.statusPerkawinan as statusPerkawinan) from StatusPerkawinan model") List> getStatusPerkawinan(); @Query("select new Map (model.id as id, model.namaJabatan as posisiLamar) from Jabatan model") List> getPosisiLamar(); @Query("select new Map (model.id as id, model.namaPendidikan as namaPendidikan) from Pendidikan model") List> getPendidikan(); @Query("select new Map (model.id as id, model.jenisOrganisasi as jenisOrganisasi) from JenisOrganisasi model") List> getjenisOrganisasi(); @Query("select new Map (model.id as pelamarId," + "model.namaLengkap as namaPelamar," + "jabatanLamar.id as posisiLamarId," +"jabatanLamar.namaJabatan as posisiLamar," + "jenisKelamin.id as jenisKelaminId," + "jenisKelamin.jenisKelamin as jenisKelamin," + "jenisPegawai.id as jenisPegawaiId," + "model.email as email," +"jenisPegawai.jenisPegawai as jenisPegawai) " +"from Pegawai model " +"left join model.jabatanLamar jabatanLamar " +"left join model.jenisPegawai jenisPegawai " + "left join model.jenisKelamin jenisKelamin " +"where jenisPegawai.id=12") List> getDaftarPelamarJadwalSeleksi(); @Query("select new Map (noPlanning.noRec as noRecStrukPlanning) " +"from PlanningRekrutmenSeleksi model " +"left join model.noPlanning noPlanning " +"where to_char(model.tglPlanning,'mm-yyyy')=:tglPlanning") List> getStrukPlanningByTglPlanningRekrutmentSeleksi(@Param("tglPlanning")String tglPlanning); @Query("select new Map (noPlanning.noRec as noRecStrukPlanning," + "noPlanning.noplanning as noPlanning," + "to_char(noPlanning.tglplanning,'yyyy-mm-dd') as tglPlanning," + "to_char(noPlanning.tglpegajuan,'yyyy-mm-dd') as tglPengajuan," + "to_char(noPlanning.tglplanning,'mm-yyyy') as periodeLowongan," +"jenisKelamin.id as jenisKelaminId," + "jenisKelamin.jenisKelamin as jenisKelamin," +"pegawai.id as pelamarId," + "pegawai.email as email," + "pegawai.noHandphone as noHandphone," + "pegawai.namaLengkap as namaPelamar," +"produkRs.id as produkRsId," + "produkRs.namaProduk as namaProdukRs) " +"from PlanningRekrutmenSeleksiD model " +"left join model.noPlanning noPlanning " +"left join model.produkRs produkRs " +"left join model.pegawai pegawai " + "left join pegawai.jenisKelamin jenisKelamin " + "where noPlanning.noRec=:noRecStrukPlanning") List> getJadwalSeleksiByNoRecStrukPelayanan(@Param("noRecStrukPlanning")String noRecStrukPlanning); @Query("select new Map(model.noRec as noRecRekrutmenSeleksi, " +"noPlanning.noRec as noRecStrukPlanning, " +"to_char(noPlanning.tglplanning,'yyyy-mm-dd') as tglPlanning, " +"to_char(noPlanning.tglpegajuan,'yyyy-mm-dd') as tglPengajuan, " +"ruangan.id as ruanganId, " +"ruangan.namaRuangan as namaRuangan, " + "to_char(model.tglPlanning,'mm-yyyy') as periodeLowongan, " +"model.qtyPeserta as qtyPeserta) " +"from PlanningRekrutmenSeleksi model " +"left join model.noPlanning noPlanning " +"left join model.ruangan ruangan " + "where noPlanning.noRec =:noRecStrukPlanning") List> findRekrutmenSeleksi(@Param("noRecStrukPlanning")String noRecStrukPlanning); @Query("select new Map (model.noRec as noRecRekrutmenSeleksiD," +"noPlanning.noRec as noRecStrukPlanning, " +"to_char(noPlanning.tglplanning,'yyyy-mm-dd') as tglPlanning, " +"to_char(noPlanning.tglpegajuan,'yyyy-mm-dd') as tglPengajuan, " +"produkRs.id as produkRsId, " +"produkRs.namaProduk as namaProdukRs, " +"pegawai.id as pelamarId, " +"pegawai.namaLengkap as namaPelamar, " +"pegawai.email as email, " +"pegawai.noHandphone as noHandphone, " +"jabatanLamar.id as posisiLamarId, " +"jabatanLamar.namaJabatan as posisiLamar, " + "to_char(model.tglPlanning,'mm-yyyy') as periodeLowongan) " +"from PlanningRekrutmenSeleksiD model " +"left join model.noPlanning noPlanning " +"left join model.produkRs produkRs " +"left join model.pegawai pegawai " +"left join model.jabatanLamar jabatanLamar " +"where noPlanning.noRec =:noRecStrukPlanning and produkRs.id =:jenisTestId") List> findRekrutmenSeleksiD(@Param("noRecStrukPlanning")String noRecStrukPlanning, @Param("jenisTestId")Integer jenisTestId); @Query("select new Map (model.noRec as noRecRekrutmenSeleksiD," +"noPlanning.noRec as noRecStrukPlanning, " +"to_char(noPlanning.tglplanning,'yyyy-mm-dd') as tglPlanning, " +"to_char(noPlanning.tglpegajuan,'yyyy-mm-dd') as tglPengajuan, " +"produkRs.id as produkRsId, " +"produkRs.namaProduk as namaProdukRs, " +"pegawai.id as pelamarId, " +"pegawai.namaLengkap as namaPelamar, " +"pegawai.email as email, " +"pegawai.noHandphone as noHandphone, " +"jabatanLamar.id as posisiLamarId, " +"jabatanLamar.namaJabatan as posisiLamar, " + "to_char(model.tglPlanning,'mm-yyyy') as periodeLowongan) " +"from PlanningRekrutmenSeleksiD model " +"left join model.noPlanning noPlanning " +"left join model.produkRs produkRs " +"left join model.pegawai pegawai " +"left join model.jabatanLamar jabatanLamar " +"where to_char(model.tglPlanning,'mm-yyyy') =:periode " + "and pegawai.id=:pegawaiId") List> findRekrutmenSeleksiD2(@Param("periode")String periode, @Param("pegawaiId")Integer pegawaiId); @Query("select model from StrukPlanning model " + "left join model.kdkelompoktransaksi kelompokTransaksi " + "where to_char(model.tglplanning,'yyyy-mm-dd')=:newAwalTgl " + "and kelompokTransaksi.id =:kelompokTransaksiId") List findStrukPlanningByPeriodeAndKelompokTransaksi( @Param("newAwalTgl")String newAwalTgl, @Param("kelompokTransaksiId")Integer kelompokTransaksiId); @Query("select model from PlanningRekrutmenSeleksi model " + "left join model.noPlanning noPlanning " + "where noPlanning.noRec=:noRecStrukPlanning") List findRekrutmenSeleksiByNoRecStrukPlanning( @Param("noRecStrukPlanning")String noRecStrukPlanning); @Query("select distinct new Map(to_char(model.tglPlanning,'yyyy-mm-dd') as tglPlanning," +"pegawai.id as pelamarId, " +"pegawai.namaLengkap as namaPelamar, " +"jenisKelamin.id as jenisKelaminId, " +"jenisKelamin.jenisKelamin as jenisKelamin, " +"pegawai.email as email, " +"pegawai.noHandphone as noHandphone, " +"jabatanLamar.id as posisiLamarId, " +"jabatanLamar.namaJabatan as posisiLamar, " +"model.nilaiScore as nilai, " +"model.statusLulus as statusLulus) " +"from PlanningRekrutmenSeleksiD model " +"left join model.produkRs produkRs " +"left join model.noPlanning noPlanning " +"left join model.pegawai pegawai " +"left join pegawai.jenisKelamin jenisKelamin " +"left join pegawai.jabatanLamar jabatanLamar " +"where produkRs.id = :jenisTestId and " + "to_char(model.tglPlanning,'mm-yyyy')=:periode and model.statusLulus=1") List> findDaftarPemalarByJenisTestId(@Param("jenisTestId")Integer jenisTestId, @Param("periode")String periode); @Query("select new Map (" +"dokumen.id as dokumenId, " + "dokumen.namaJudulDokumen as namaDokumen," + "dokumen.pathFile as pathFile) " +"from Dokumen dokumen " + "where dokumen.id=:dokumenId") Map getPelamarByDokumenId(@Param("dokumenId")Integer dokumenId); }