Perbaikan kondisi query hanya melibatkan timestamp datatype untuk peningkatan performance
40 lines
1.8 KiB
Java
40 lines
1.8 KiB
Java
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<Kalender, Integer> {
|
|
|
|
@Query("select k.tanggal from Kalender k where to_char(k.tanggal,'yyyy-MM-dd') between :startDate and :endDate")
|
|
List<Date> 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<Map<String, Object>> 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<Map<String, Object>> 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<Kalender> getTargetKerja(@Param("start") Date start, @Param("end") Date end);
|
|
|
|
}
|