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.IkiDanRemunerasi; @Repository("IkiDanRemunerasiDao") public interface IkiDanRemunerasiDao extends PagingAndSortingRepository { // Pegawai @Query("select NEW Map (" + "a.id as id, " + "a.namaLengkap as namaLengkap) " + "from Pegawai a") List> getPegawaiRemunerasi(); // grade_nilai_jabatan @Query("select NEW Map ( " + "jabatanInternal.namaJabatan as namaJabatan, " + "kelompokJabatan.id as kelompokJabatanId, " + "nilaiKelompokJabatan.id as nilaiKelompokJabatan, " + "nilaiKelompokJabatan.gradeDesc as grade, " + "pegawai.nipPns as nipPns, " + "pegawai.nipPns as nipPns, " + "pegawai.namaLengkap as namaLengkap, " + "pegawai.nilaiJabatan as nilaiJabatan, " + "golongan.id as idGolongan, " + "golongan.golonganPegawai as golongan, " + "unitKerja.name as unitKerja, " + "unitKerja.id as idUnitKerja, " + "subUnitKerja.id as idSubUnitKerja, " + "subUnitKerja.name as subUnitKerja, " + "pegawai.id as idPegawai) " + "from MapPegawaiJabatanToUnitKerja mapPegawai " + "left join mapPegawai.pegawai pegawai " + "left join pegawai.detailKelompokJabatan nilaiKelompokJabatan " + "left join mapPegawai.jabatan jabatanInternal " + "left join nilaiKelompokJabatan.kelompokJabatan kelompokJabatan " + "left join pegawai.golonganPegawai golongan " + "left join mapPegawai.subUnitKerjaPegawai subUnitKerja " + "left join mapPegawai.unitKerjaPegawai unitKerja " + "where mapPegawai.isPrimary is true " + "and mapPegawai.statusEnabled is true " + "and pegawai.id=:id") Map getEvaluasiJabatan(@Param("id") Integer id); // gaji_Total @Query("select NEW Map (" + "b.id as id, " + "a.hargaSatuan as hargaSatuan, " + "a.isByDay as isByDay, " + "a.isByWeek as isByWeek, " + "a.isByMonth as isByMonth, " + "a.isByYear as isByYear, " + "a.hargaSatuan as hargaSatuan) " + "from PegawaiSKGaji a " + "left join a.komponenHarga b " + "left join a.pegawai c " + "where c.id=:id") List> getTotalGaji(@Param("id") Integer id); // PIR_dan_IKU @Query("select NEW Map (" + "a.pir as pir, " + "a.iku as iku) " + "from SettingPirSdm a " + "where a.id=1") Map getPirDanIku(); // IKI @Query("select NEW Map ( coalesce (a.iki,0)as iki , " + "a.totalIKI as totalIKI) " + "from NilaiIndexKinerjaIndividu a " + "left join a.pegawai b " + "where b.id=:id and periode =:periode") Map getTotalIndexKinerjaIndividu(@Param("id") Integer id, @Param("periode") String periode); @Query("select NEW Map (" + "a.minimal as minimal," + "a.maximal as maximal) " + "from RangeKmk a " + "left join a.kelompokJabatan b " + "left join b.kelompokJabatan c " + "where b.id =:id") Map getRangeKmk(@Param("id") Integer id); @Query("select NEW Map (" + "count(a.loc_code) as count) " + "from Habsen a " + "where to_char(a.tr_date, 'yyyy')=:tahun and " + "to_char(a.tr_date, 'mm')=:bulan and " + "trim(a.empl_code)=:nip") Map getAbsen(@Param("tahun") String tahun, @Param("bulan") String bulan, @Param("nip") String nip); // getIndekskehadiran @Query("select pegawaiHistoriRekap.totalNilaiIndex " + "from PegawaiHistoriRekap pegawaiHistoriRekap " + "left join pegawaiHistoriRekap.pegawai pegawai " + " where pegawaiHistoriRekap.periode = :tanggal " + "and pegawai.id = :idPegawai") Double getIndeksKehadiran(@Param("tanggal") String tanggal, @Param("idPegawai") Integer idPegawai); @Query(" select setting.nilaiField as nilaiField " + " from SettingDataFixed setting" + " where setting.namaField = 'KdKategoryPegawai'") public List findIdKategoriPegawai(); @Query(" select setting.nilaiField as nilaiField " + " from SettingDataFixed setting" + " where setting.namaField = 'IdPetugasPelaksana'") public List findIdJeniPetugasPelaksana(); @Query(" select pegawai.id as idPegawai " + "from Pegawai pegawai " + "left join pegawai.kategoryPegawai kategoryPegawai " + " left join pegawai.statusPegawai statusPegawai " + "where kategoryPegawai.id =:kategoryPegawaiId and statusPegawai.id =2") public List findDetailKategoriPegawai(@Param("kategoryPegawaiId") Integer kategoryPegawaiId); @Query(" select new map (ikiDanRemunerasi.indekKehadiran as iki, " + "ikiDanRemunerasi.remunerasi as remun) " + "from IkiDanRemunerasi ikiDanRemunerasi " + "left join ikiDanRemunerasi.pegawai pegawai " + "where pegawai.id = :idPegawai and ikiDanRemunerasi.periode = :periode") public Map findRemun(@Param("idPegawai") Integer idPegawai, @Param("periode") String periode); @Query(" select new map (settingPirSdm.iku as iku, " + "settingPirSdm.pir as pir, " + "settingPirSdm.id as id, " + "to_char(settingPirSdm.tglAwal, 'yyyy') as tglAwal, " + "settingPirSdm.tglAkhir as tglAkhir) " + "from SettingPirSdm settingPirSdm " + "where to_char(settingPirSdm.tglAwal, 'yyyy-MM-dd') = :tglAwal " + "and to_char(settingPirSdm.tglAkhir, 'yyyy-MM-dd') = :tglAkhir") public Map findPirDanIku(@Param("tglAwal") String tglAwal, @Param("tglAkhir") String tglAkhir); @Query(" select coalesce(pegawaiSKPajak.persenPajak,0) " + " from PegawaiSKPajak pegawaiSKPajak " + " left join pegawaiSKPajak.golonganPegawai golongan " + " where golongan.id =:idGolongan") public Double findPersentasiPajak(@Param("idGolongan") Integer idGolongan); @Query(" select ikiDanRemunerasi.remunerasi " + "from IkiDanRemunerasi ikiDanRemunerasi " + " left join ikiDanRemunerasi.pegawai pegawai " + "left join ikiDanRemunerasi.strukHistory strukHistori " + "where to_char(strukHistori.tglHistori,'yyyy-MM') =:periode " + "and pegawai.id = :idPegawai") public Double findRemunerasi(@Param("periode") String periode, @Param("idPegawai") Integer idPegawai); // Target_Pelayanan @Query("select distinct new Map(pp.noRec as noRec,pp.tglPelayanan as tglPelayanan," + "uk.id as idKsm,uk.name as Ksm," + "su.id as idKelompokKerja,su.name as kelompokKerja," + "pr.id as idTindakan,pr.namaProduk as namaTindakan," + "ru.id as idRuangan, pp.jumlah as jumlahTindakan) " + "from PelayananPasienPetugas ppp, MapRuanganToProduk mrtp, MapPegawaiJabatanToUnitKerja mpju " + "left join ppp.pelayananPasien pp " + "left join ppp.kdpegawai pg " + "left join pp.produk pr " + "left join pp.pasienDaftar apd " + "left join pr.detailJenisProduk djp " + "left join apd.pasienDaftar pd " + "left join apd.ruangan ru " + "left join apd.kelas kl " + "left join pd.pasien ps " + "left join pd.kelompokPasien kps " + "left join mrtp.ruangan ru1 " + "left join mpju.unitKerjaPegawai uk " + "left join mpju.subUnitKerjaPegawai su " + "where mrtp.produkId = pr.id " + "and mrtp.ruanganId = apd.ruanganId " + "and ppp.kdpegawai = mpju.pegawai " + "and mpju.pegawaiId = pg.id " + "and mpju.unitKerjaPegawaiId in (:listKsmId)" + "and mrtp.statusEnabled is true " + "and mpju.statusEnabled is true " + "and pg.statusEnabled is true " + "and uk.statusEnabled is true " + "and su.statusEnabled is true " + "and pp.tglPelayanan between :tglAwal and :tglAkhir " + "and pg.jenisPegawaiId = :dokterId " + "and djp.jenisProdukId not in (:listNontindakanId) " + "and pr.id <> :karcisId") public List> getDataLayanan(@Param("tglAwal") Date tglAwal, @Param("tglAkhir") Date tglAkhir, @Param("dokterId") Integer dokterId, @Param("listKsmId") List listKsmId, @Param("listNontindakanId") List listNontindakanId, @Param("karcisId") Integer karcisId); }