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

133 lines
8.4 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.JadwalDokter;
@Repository("JadwalDokterDao")
public interface JadwalDokterDao extends PagingAndSortingRepository<JadwalDokter, Integer> {
@Query("select model from JadwalDokter model where date(model.tanggalJadwal)=date(:tanggalJadwal)")
public List<JadwalDokter> findJadwalByTanggal(@Param("tanggalJadwal") Date tanggalJadwal);
@Query("select model from JadwalDokter model where model.ruangan.id=:id and to_char(model.tanggalJadwal,'yyyy-MM-dd') >= :date")
public List<JadwalDokter> findJadwalByRuangan(@Param("id") Integer id,@Param("date") String date);
@Query("select model from JadwalDokter model where model.ruangan.id=:idRuangan and date(model.tanggalJadwal)=date(:tanggalJadwal)")
public List<JadwalDokter> findJadwalByTanggalRuangan(@Param("idRuangan") Integer idRuangan,
@Param("tanggalJadwal") Date tanggalJadwal);
@Query("select count(model) from JadwalDokter model where model.dokter.id=:id and date(model.tanggalJadwal)=date(:date)")
public Integer CheckJadwalDokter(@Param("date") Date date, @Param("id") Integer id);
@Query("select model from JadwalDokter model where model.ruangan.id=:idRuangan and date(model.tanggalJadwal)=date(:tanggalJadwal) and model.dokter.qPegawai=:kdPegawai")
public JadwalDokter findJadwalByTanggalRuanganAndKdPegawai(@Param("idRuangan") Integer idRuangan,
@Param("tanggalJadwal") Date tanggalJadwal, @Param("kdPegawai") short kdPegawai);
@Query("select model from JadwalDokter model order by model.tanggalJadwal desc,model.dokter.namaLengkap desc,model.ruangan.namaRuangan")
public List<JadwalDokter> findJadwalAll();
@Query("select model from JadwalDokter model where model.ruangan.id=:idRuangan and date(model.tanggalJadwal)=date(:tanggalJadwal) and model.dokter.qPegawai=:kdPegawai")
public List<JadwalDokter> findJadwalByTanggalRuanganAndKdPegawaiList(@Param("idRuangan") Integer idRuangan,
@Param("tanggalJadwal") Date tanggalJadwal, @Param("kdPegawai") short kdPegawai);
@Query("select model from JadwalDokter model where model.ruangan.id=:idRuangan and date(model.tanggalJadwal)=date(:tanggalJadwal)")
public List<JadwalDokter> findJadwalByTanggalRuanganList(@Param("idRuangan") Integer idRuangan,
@Param("tanggalJadwal") Date tanggalJadwal);
@Query("select p from JadwalDokter p where p.dokter.id=:idDokter ")
public List<JadwalDokter> getJadwalDokterByIdDokter(@Param("idDokter") Integer idDokter);
@Query("select p from JadwalDokter p where p.dokter.id=:idDokter and p.tanggalJadwal between :now and :nextWeek")
public List<JadwalDokter> getJadwalDokterMingguanByIdDokter(@Param("idDokter") Integer idDokter,
@Param("now") Date now, @Param("nextWeek") Date nextWeek);
@Query("select Distinct NEW com.jasamedika.medifirst2000.entities.JadwalDokter(p.ruangan,p.tanggalJadwal,p.dokter,p.jadwalPraktek) from JadwalDokter p where p.dokter.id=:idDokter and p.tanggalJadwal between :now and :nextWeek")
public List<JadwalDokter> getJadwalDokterMingguanByIdDokter2(@Param("idDokter") Integer idDokter,
@Param("now") Date now, @Param("nextWeek") Date nextWeek);
@Query("select NEW Map(pg.id as id,pg.namaLengkap as namaLengkap) from Pegawai pg left join pg.jabatanFungsional jf "
+ "where jf.id in (24,58)")
public List<Map<String, Object>> getSupirAmbulances();
@Query("select distinct NEW Map(dkt.id as id,dkt.namaLengkap as namaLengkap,jd.tanggalJadwal as tglJadwal,jp.id as jadwalPraktekId,"
+ "jp.reportDisplay as reportDisplay) from JadwalDokter jd left join jd.jadwalPraktek jp left join jd.dokter dkt "
+ "where jd.dokter.id=:id and month(jd.tanggalJadwal)=:bulan and year(jd.tanggalJadwal)=:tahun order by jd.tanggalJadwal")
public List<Map<String, Object>> getJadwalSupirAmbulanceByIdPegawaiAndPeriode(@Param("id") Integer id,
@Param("bulan") Integer bulan, @Param("tahun") Integer tahun);
@Query("select p from JadwalDokter p where p.tanggalJadwal between :dateFrom and :dateTo and ( p.dokter.jabatanFungsional.id in (24,58) or p.dokter.jabatanStruktural.id in (24,58) ) ")
public List<JadwalDokter> getJadwalSupirAmbulanceByDate(@Param("dateFrom") Date dateFrom,
@Param("dateTo") Date dateTo);
@Query("select model from JadwalDokter model where model.ruangan.id=:ruangan and month(model.tanggalJadwal)=:bulan and year(model.tanggalJadwal) = :tahun and model.dokter.id = (:pegawai)")
public List<JadwalDokter> findJadwalByTanggalRuangan(@Param("ruangan") Integer ruangan,
@Param("tahun") Integer tahun, @Param("bulan") Integer bulan, @Param("pegawai") Integer pegawai);
@Query("select model from JadwalDokter model, MapPegawaiJabatanToUnitKerja mapPegawai inner join model.dokter dokter "
+ "where mapPegawai.pegawaiId = dokter.id and mapPegawai.isPrimary is true and mapPegawai.statusEnabled is true and mapPegawai.unitKerjaPegawaiId = :unitKerja "
+ "and month(model.tanggalJadwal) = :bulan and year(model.tanggalJadwal) = :tahun and dokter.id = (:pegawai)")
public List<JadwalDokter> findJadwalByTanggalUnitKerja(@Param("unitKerja") Integer unitKerja,
@Param("tahun") Integer tahun, @Param("bulan") Integer bulan, @Param("pegawai") Integer pegawai);
@Query("select model from JadwalDokter model where model.ruangan.headRuangan.id=:idRuangan and date(model.tanggalJadwal)=date(:tanggalJadwal)")
public List<JadwalDokter> findJadwalByTanggalRuanganBilik(@Param("idRuangan") Integer idRuangan,
@Param("tanggalJadwal") Date tanggalJadwal);
@Query("select model from JadwalDokter model where model.ruangan.id=:idRuangan and date(model.tanggalJadwal)=date(:tanggalJadwal)")
public List<JadwalDokter> findJadwalByTanggalRuanganBilik3(@Param("idRuangan") Integer idRuangan,
@Param("tanggalJadwal") Date tanggalJadwal);
@Query("select model from JadwalDokter model where model.dokter.id=:pegawai and date(model.tanggalJadwal)=date(:jamMasuk)")
public JadwalDokter findByTanggalAndPegawai(@Param("jamMasuk") Date jamMasuk, @Param("pegawai") Integer pegawai);
@Query("select model from JadwalDokter model where model.ruangan.headRuangan.id=:idRuangan and to_char(date(model.tanggalJadwal),'yyyy-mm-dd')=to_char(date(:tanggalJadwal),'yyyy-mm-dd')")
public List<JadwalDokter> findJadwalByTanggalRuanganBilik2(@Param("idRuangan") Integer idRuangan,
@Param("tanggalJadwal") Date tanggalJadwal);
//add by iwankasan 210417
@Query("select distinct new map(j.dokter.id as idDokter, " +
" j.dokter.namaLengkap as nmDokter, j.ruangan.id as idRuangan, " +
" j.ruangan.namaRuangan as namaRuangan, to_char(j.tanggalJadwal,'yyyy-mm-dd') as tglJadwal, " +
" j.jadwalPraktek.id as idPraktek, j.jadwalPraktek.jamPraktek as jamPraktek) from " +
" JadwalDokter j where j.dokter.id=:idDokter and j.ruangan.id=:idRuangan and to_char(date(j.tanggalJadwal),'yyyy-mm-dd') between to_char(date(:from),'yyyy-mm-dd') and to_char(date(:to),'yyyy-mm-dd')")
public List<JadwalDokter> findJadwalDokterByKisaranTglRuangan(
@Param("idDokter") int idDokter,
@Param("idRuangan") int idRuangan,
@Param("from") Date from,
@Param("to") Date to);
@Query("select distinct new map(j.dokter.id as idDokter, " +
" j.dokter.namaLengkap as nmDokter, j.ruangan.id as idRuangan, " +
" j.ruangan.namaRuangan as namaRuangan, to_char(j.tanggalJadwal,'yyyy-mm-dd') as tglJadwal, " +
" j.jadwalPraktek.id as idPraktek, j.jadwalPraktek.jamPraktek as jamPraktek) from " +
" JadwalDokter j where j.dokter.id=:idDokter and to_char(date(j.tanggalJadwal),'yyyy-mm-dd') between to_char(date(:from),'yyyy-mm-dd') and to_char(date(:to),'yyyy-mm-dd')")
public List<JadwalDokter> findJadwalDokterByKisaranTglRuanganAll(
@Param("idDokter") int idDokter,
@Param("from") Date from,
@Param("to") Date to);
/*@Query("select NEW Map ("
+ "a.quota as quota, "
+ "b.id as ruanganId, "
+ "b.namaRuangan as namaRuangan, "
+ "c.id as kamarId, "
+ "c.namaKamar as namaKamar) "
+ "from JadwalDokter a "
+ "left join a.ruangan b "
+ "left join b.kamarSet c "
+ "where b.id=:idRuangan and "
+ "date(a.tanggalJadwal)=date(:tanggalJadwal)")
public List<Map<String, Object>> findJadwalByTanggalRuangan(
@Param("idRuangan") Integer idRuangan,
@Param("tanggalJadwal") Date tanggalJadwal);*/
}