package com.jasamedika.medifirst2000.dao; import java.util.Date; 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.Kalender; @Repository("KalenderDao") public interface KalenderDao extends PagingAndSortingRepository { @Query("select k.tanggal from Kalender k where to_char(k.tanggal,'yyyy-MM-dd') between :startDate and :endDate") List getDateFromPeriodicParameter(@Param("startDate") String tglAwal, @Param("endDate") String tglAkhir); @Query("select new Map(k.id as kalendarId," + "k.tanggal as date," + "to_char(k.tanggal,'yyyy-MM-dd') as strDate," + "concat(k.hariKeDlmBulan,' ',k.namaBulan,' ',k.tahunKalender) as tanggal) " + "from Kalender k where to_char(k.tanggal,'yyyy-MM-dd') between :tglAwal and :tglAkhir") List> getTanggalFromPeriodicParameter(@Param("tglAwal") String tglAwal, @Param("tglAkhir") String tglAkhir); @Query("select new Map(k.id as id,to_char(k.tanggal,'dd') as tanggal) " + "from Kalender k where k.tanggal between :start and :end") List> getKalenderBulanan(@Param("start") Date start, @Param("end") Date end); @Query(nativeQuery = true, value = "select kal.tanggal from kalender_s kal order by kal.tanggal desc limit 1") Date getLastDateData(); @Query(nativeQuery = true, value = "select kl.* from kalender_s kl " + "left join mapkalendertoharilibur_m mkl on kl.id = mkl.objecttanggalfk " + "where kl.tanggal between :start and :end " + "and kl.namahari not in ('Sabtu', 'Minggu') and mkl.id is null") List getTargetKerja(@Param("start") Date start, @Param("end") Date end); }