2021-01-07 11:34:56 +07:00

63 lines
3.3 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.UraianTugasFlexible;
@Repository("UraianTugasFlexibleDao")
public interface UraianTugasFlexibleDao extends PagingAndSortingRepository<UraianTugasFlexible, String>{
@Query(" select new map (uraianTugas.rincianKegiatan as rincianKegiatan,uraianTugas.noRec as noRec, uraianTugas.tgl as tgl,uraianTugas.approvalStatus as approvalStatus, "+
"uraianTugas.satuan as satuan, uraianTugas.volume as volume, uraianTugas.waktu as waktu, "+
"atasan.namaLengkap as namaAtasan, atasan.id as idAtasan, pegawai.namaLengkap as namaPegawai, "+
"pegawai.id as idPegawai) "+
"from UraianTugasFlexible uraianTugas "+
"left join uraianTugas.atasan atasan "+
"left join uraianTugas.pegawai pegawai "+
"where uraianTugas.statusEnabled is true and pegawai.id = :id "+
"and to_char(uraianTugas.tgl, 'yyyy-MM-dd') = :date")
public List<Map<String,Object>> findByIdPegawaiAndByDate(@Param("id") Integer id,@Param("date") String date);
@Query(" select new map (uraianTugas.rincianKegiatan as rincianKegiatan,uraianTugas.noRec as noRec, uraianTugas.tgl as tgl,uraianTugas.approvalStatus as approvalStatus, "+
"uraianTugas.satuan as satuan, uraianTugas.volume as volume, uraianTugas.waktu as waktu, "+
"atasan.namaLengkap as namaAtasan, atasan.id as idAtasan, pegawai.namaLengkap as namaPegawai, "+
"pegawai.id as idPegawai) "+
"from UraianTugasFlexible uraianTugas "+
"left join uraianTugas.atasan atasan "+
"left join uraianTugas.pegawai pegawai "+
"where uraianTugas.statusEnabled is true and uraianTugas.approvalStatus is true and pegawai.id = :id "+
"and to_char(uraianTugas.tgl, 'yyyy-MM') = :period "+
" order by uraianTugas.tgl")
public List<Map<String,Object>> findMonthlyAndverified(@Param("id") Integer id,@Param("period") String period);
@Query(" select new map (uraianTugas.rincianKegiatan as rincianKegiatan,uraianTugas.noRec as noRec, uraianTugas.tgl as tgl,uraianTugas.approvalStatus as approvalStatus, "+
"uraianTugas.satuan as satuan, uraianTugas.volume as volume, uraianTugas.waktu as waktu, "+
"atasan.namaLengkap as namaAtasan, atasan.id as idAtasan, pegawai.namaLengkap as namaPegawai, "+
"pegawai.id as idPegawai) "+
"from UraianTugasFlexible uraianTugas "+
"left join uraianTugas.atasan atasan "+
"left join uraianTugas.pegawai pegawai "+
"where uraianTugas.statusEnabled is true and pegawai.id in (:id) "+
"and uraianTugas.tgl > :date"+
" order by pegawai.id, uraianTugas.tgl")
public List<Map<String,Object>> findByListIdPegawaiAndDate(@Param("id") List<Integer> id,@Param("date") Date date);
@Query(" select coalesce(sum( uraianTugas.waktu),0) "+
"from UraianTugasFlexible uraianTugas "+
"left join uraianTugas.atasan atasan "+
"left join uraianTugas.pegawai pegawai "+
"where uraianTugas.statusEnabled is true and uraianTugas.approvalStatus is true and pegawai.id = :id "+
"and to_char(uraianTugas.tgl, 'yyyy-MM') = :period ")
public Integer findSumMonthlyAndverified(@Param("id") Integer id,@Param("period") String period);
}