- perbaikan query untuk distinct daftar pegawai untuk login sdm di menu logbook kinerja dokter
82 lines
5.4 KiB
Java
82 lines
5.4 KiB
Java
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.LogbookKinerjaDokter;
|
|
|
|
@Repository("logbookKinerjaDokterDao")
|
|
public interface LogbookKinerjaDokterDao extends PagingAndSortingRepository<LogbookKinerjaDokter, String> {
|
|
|
|
@Query("select new Map(ikd.id as id,ikd.detailIndikator as detailIndikator,ld.detailTarget as detailTarget) "
|
|
+ "from LogbookKinerjaDokter ld " + "inner join ld.indikatorDetail ikd " + "where ld.statusEnabled is true "
|
|
+ "and ikd.statusEnabled is true " + "and to_char(ld.bulan,'yyyy-MM') = :bulan "
|
|
+ "and ld.jabatanId = :jabatanId " + "and ld.pegawaiId = :pegawaiId "
|
|
+ "and ikd.indikatorKinerjaId = :indikatorId")
|
|
public List<Map<String, Object>> findDetailKontrakKinerja(@Param("bulan") String bulan,
|
|
@Param("jabatanId") Integer idJabatan, @Param("pegawaiId") Integer idPegawai,
|
|
@Param("indikatorId") Integer idIndikator);
|
|
|
|
@Query("select new Map(pg.id as pegawaiId," + "jb.id as jabatanId," + "ikd.id as indikatorId,"
|
|
+ "lkd.detailTarget as target," + "to_char(lkd.bulan,'yyyy-MM') as periode,"
|
|
+ "lkd.tglHitung as tglHitung) " + "from LogbookKinerjaDokter lkd " + "inner join lkd.pegawai pg "
|
|
+ "inner join lkd.jabatan jb " + "inner join lkd.indikatorDetail ikd "
|
|
+ "inner join ikd.indikatorKinerja ikm " + "where pg.statusEnabled is true "
|
|
+ "and jb.statusEnabled is true " + "and ikd.statusEnabled is true " + "and ikm.statusEnabled is true "
|
|
+ "and ikm.statusVerifikasi is true " + "and to_char(lkd.bulan,'yyyy-MM') between :tglAwal and :tglAkhir "
|
|
+ "and ikd.id in (:listIndikatorId) " + "order by pg.namaLengkap, lkd.tglHitung desc")
|
|
public List<Map<String, Object>> getLastTargetLayananLuarJamKerja(@Param("tglAwal") String tglAwal,
|
|
@Param("tglAkhir") String tglAkhir, @Param("listIndikatorId") List<Integer> listIdIndikator);
|
|
|
|
@Query("select lkd from LogbookKinerjaDokter lkd " + "where lkd.statusEnabled is true "
|
|
+ "and to_char(lkd.bulan,'yyyy-MM') between :tglAwal and :tglAkhir "
|
|
+ "order by lkd.pegawaiId, lkd.jabatanId, lkd.indikatorDetailId, lkd.bulan, lkd.tglHitung desc")
|
|
public List<LogbookKinerjaDokter> findAllTargetLayanan(@Param("tglAwal") String tglAwal,
|
|
@Param("tglAkhir") String tglAkhir);
|
|
|
|
@Query("select distinct new Map (pg.id as id,pg.namaLengkap as namaLengkap,pg.tglMasuk as tglMasuk) "
|
|
+ "from MapPegawaiJabatanToUnitKerja mj " + "inner join mj.pegawai pg " + "inner join mj.jabatan jb "
|
|
+ "where mj.statusEnabled is true " + "and pg.statusEnabled is true " + "and jb.statusEnabled is true "
|
|
+ "and pg.kategoryPegawaiId in (:listKategoryPegawaiId) " + "and jb.kelompokJabatanId in (3,4)")
|
|
public List<Map<String, Object>> findPegawaiByListKategori(
|
|
@Param("listKategoryPegawaiId") List<Integer> listIdKategoriPegawai);
|
|
|
|
@Query("select distinct new Map(pg.id as id,pg.namaLengkap as namaLengkap,pg.tglMasuk as tglMasuk) "
|
|
+ "from MapPegawaiJabatanToUnitKerja mj " + "inner join mj.pegawai pg " + "inner join mj.jabatan jb "
|
|
+ "where mj.statusEnabled is true " + "and pg.statusEnabled is true " + "and jb.statusEnabled is true "
|
|
+ "and pg.id = :pegawaiId " + "and pg.kategoryPegawaiId in (:listKategoryPegawaiId) "
|
|
+ "and jb.unitKerjaId in (:listKsmId)")
|
|
List<Map<String, Object>> findAksesPegawaiByStaf(@Param("pegawaiId") Integer idPegawai,
|
|
@Param("listKategoryPegawaiId") List<Integer> listIdKategoriPegawai,
|
|
@Param("listKsmId") List<Integer> listIdKsm);
|
|
|
|
@Query("select distinct new Map(pgb.id as id,pgb.namaLengkap as namaLengkap,pgb.tglMasuk as tglMasuk) "
|
|
+ "from MapPegawaiJabatanToUnitKerja mjp, MapPegawaiJabatanToUnitKerja mja " + "inner join mjp.pegawai pgb "
|
|
+ "inner join mjp.atasanLangsung pg " + "inner join mja.jabatan jb "
|
|
+ "where mjp.atasanLangsungId = mja.pegawaiId " + "and mja.pegawaiId = pg.id "
|
|
+ "and mjp.statusEnabled is true " + "and mja.statusEnabled is true " + "and pgb.statusEnabled is true "
|
|
+ "and pg.statusEnabled is true " + "and jb.statusEnabled is true " + "and pg.id = :pegawaiId "
|
|
+ "and pgb.kategoryPegawaiId in (:listKategoryPegawaiId) " + "and pgb.jenisPegawaiId = 1 "
|
|
+ "and jb.unitKerjaId in (:listKsmId)")
|
|
List<Map<String, Object>> findAksesPegawaiByAtasan(@Param("pegawaiId") Integer idPegawai,
|
|
@Param("listKategoryPegawaiId") List<Integer> listIdKategoriPegawai,
|
|
@Param("listKsmId") List<Integer> listIdKsm);
|
|
|
|
@Query("select distinct new Map(pgb.id as id,pgb.namaLengkap as namaLengkap,pgb.tglMasuk as tglMasuk) "
|
|
+ "from MapPegawaiJabatanToUnitKerja mjp, MapPegawaiJabatanToUnitKerja mjn " + "inner join mjp.pegawai pgb "
|
|
+ "inner join mjp.pejabatPenilai pg " + "inner join mjn.jabatan jb "
|
|
+ "where mjp.pejabatPenilaiId = mjn.pegawaiId " + "and mjn.pegawaiId = pg.id "
|
|
+ "and mjp.statusEnabled is true " + "and mjn.statusEnabled is true " + "and pgb.statusEnabled is true "
|
|
+ "and pg.statusEnabled is true " + "and jb.statusEnabled is true " + "and pg.id = :pegawaiId "
|
|
+ "and pgb.kategoryPegawaiId in (:listKategoryPegawaiId) " + "and pgb.jenisPegawaiId = 1 "
|
|
+ "and jb.unitKerjaId = :direksiId")
|
|
List<Map<String, Object>> findAksesPegawaiByPenilai(@Param("pegawaiId") Integer idPegawai,
|
|
@Param("listKategoryPegawaiId") List<Integer> listIdKategoriPegawai, @Param("direksiId") Integer idDireksi);
|
|
|
|
}
|