208 lines
15 KiB
Java
208 lines
15 KiB
Java
package com.jasamedika.medifirst2000.dao;
|
|
|
|
import com.jasamedika.medifirst2000.entities.Pegawai;
|
|
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 java.util.Date;
|
|
import java.util.List;
|
|
import java.util.Map;
|
|
|
|
@Repository("PayRollPegawaiDao")
|
|
public interface PayRollPegawaiDao extends PagingAndSortingRepository<Pegawai, Integer> {
|
|
|
|
@Query("select new Map(model.id as id," + "detailkategoripegawai.id as detailKatogoriId,"
|
|
+ "rangemasakerja.id as rangeMasaKerjaId," + "pendidikan.id as pendidikanId,"
|
|
+ "komponenharga.id as komponenHargaId," + "model.hargaSatuan as hargaSatuan,"
|
|
+ "model.factorRate as factorRate) " + "from PegawaiStrukturGajiByMaKaPe model "
|
|
+ "left join model.detailKategoriPegawai detailkategoripegawai " + "left join model.pendidikan pendidikan "
|
|
+ "left join model.komponenHarga komponenharga " + "left join model.rangeMasaKerja rangemasakerja "
|
|
+ "where model.detailKategoriPegawai.id=:idDetailKategoriPegawai and "
|
|
+ "model.rangeMasaKerja.id=:idRangeMasaKerja and model.pendidikan.id=:idPendidikan")
|
|
List<Map<String, Object>> findGajiByMakape(@Param("idDetailKategoriPegawai") Integer idDetailKategoriPegawai,
|
|
@Param("idRangeMasaKerja") Integer idRangeMasaKerja, @Param("idPendidikan") Integer idPendidikan);
|
|
|
|
@Query("select new Map(model.id as id," + "detailkategoripegawai.id as detailKatogoriId,"
|
|
+ "rangemasakerja.id as rangeMasaKerjaId," + "pendidikan.id as pendidikanId,"
|
|
+ "komponenharga.id as komponenHargaId," + "model.hargaSatuan as hargaSatuan,"
|
|
+ "model.factorRate as factorRate) " + "from PegawaiStrukturGajiByMaKaPe model "
|
|
+ "left join model.detailKategoriPegawai detailkategoripegawai " + "left join model.pendidikan pendidikan "
|
|
+ "left join model.komponenHarga komponenharga " + "left join model.rangeMasaKerja rangemasakerja "
|
|
+ "where model.detailKategoriPegawai.id=:idDetailKategoriPegawai "
|
|
+ "and model.pendidikan.id=:idPendidikan")
|
|
List<Map<String, Object>> findGajiByMakape(@Param("idDetailKategoriPegawai") Integer idDetailKategoriPegawai,
|
|
@Param("idPendidikan") Integer idPendidikan);
|
|
|
|
@Query("select new Map(model.id as id," + "jabatan.id as jabatanId," + "komponenharga.id as komponenHargaId,"
|
|
+ "model.hargaSatuan as hargaSatuan," + "model.factorRate as factorRate) "
|
|
+ "from PegawaiStrukturGajiByJa model " + "left join model.jabatan jabatan "
|
|
+ "left join model.komponenHarga komponenharga " + "where jabatan.id=:idJabatan and komponenharga.id=57")
|
|
List<Map<String, Object>> findGajiByJa(@Param("idJabatan") Integer idJabatan);
|
|
|
|
@Query("select new Map(model.id as id," + "jabatan.id as jabatanId," + "pendidikan.id as pendidikanId,"
|
|
+ "komponenHarga.id as komponenHargaId," + "model.hargaSatuan as hargaSatuan,"
|
|
+ "model.factorRate as factorRate) " + "from PegawaiStrukturGajiByJaPe model "
|
|
+ "left join model.jabatan jabatan " + "left join model.pendidikan pendidikan "
|
|
+ "left join model.komponenHarga komponenharga "
|
|
+ "where jabatan.id=:idJabatan and pendidikan.id=:idPendidikan")
|
|
List<Map<String, Object>> findGajiByJaPe(@Param("idJabatan") Integer idJabatan,
|
|
@Param("idPendidikan") Integer idPendidikan);
|
|
|
|
@Query("select new Map(model.id as id," + "leveltingkat.id as levelTingkatId," + "jabatan.id as jabatanId,"
|
|
+ "komponenharga.id as komponenHargaId," + "model.hargaSatuan as hargaSatuan,"
|
|
+ "model.factorRate as factorRate) " + "from PegawaiStrukturGajiByLTJa model "
|
|
+ "left join model.levelTingkat leveltingkat " + "left join model.jabatan jabatan "
|
|
+ "left join model.komponenHarga komponenharga "
|
|
+ "where jabatan.id=:idJabatan and leveltingkat.id=:idLevelTingkat")
|
|
List<Map<String, Object>> findGajiByLTJa(@Param("idJabatan") Integer idJabatan,
|
|
@Param("idLevelTingkat") Integer idLevelTingkat);
|
|
|
|
@Query("select new Map(model.id as id," + "rekanan.id as rekananId," + "rekanan.namaRekanan as namaRekanan,"
|
|
+ "komponenharga.id as komponenHargaId," + "komponenharga.komponenHarga as namaKomponenHarga,"
|
|
+ "model.hargaSatuanPremi as hargaSatuanPremi," + "model.persenHargaSatuanPremi as persenHargaSatuanPremi,"
|
|
+ "model.factorRate as factorRate," + "model.totalFactorRatePremi as totalFactorRatePremi,"
|
|
+ "model.isByMonth as isByMonth," + "model.isByYear as isByYear,"
|
|
+ "model.keteranganLainnya as keteranganLainnya) " + "from PegawaiSKAsuransi model "
|
|
+ "left join model.rekanan rekanan " + "left join model.komponenHarga komponenharga "
|
|
+ "where model.rekanan.id=:idRekananPenjamin and komponenharga.id=:idKomponenHarga "
|
|
+ "and model.statusEnabled=true")
|
|
List<Map<String, Object>> findGajiByAsuransi(@Param("idRekananPenjamin") Integer idRekananPenjamin,
|
|
@Param("idKomponenHarga") Integer idKomponenHarga);
|
|
|
|
@Query("select new Map(model.id as id," + "golonganpegawai.id as golonganPegawaiId,"
|
|
+ "komponenharga.id as komponenHargaId," + "model.hargaSatuan as hargaSatuan,"
|
|
+ "model.factorRate as factorRate) " + "from PegawaiStrukturGajiByGolongan model "
|
|
+ "left join model.golonganPegawai golonganpegawai " + "left join model.komponenHarga komponenharga "
|
|
+ "where golonganpegawai.id=:idGolonganPegawai and komponenharga.id=:idKomponenHarga")
|
|
List<Map<String, Object>> findGajiByGolongan(@Param("idGolonganPegawai") Integer idGolonganPegawai,
|
|
@Param("idKomponenHarga") Integer idKomponenHarga);
|
|
|
|
@Query("select new Map(model.id as id," + "golonganpegawai.id as golonganPegawaiId,"
|
|
+ "objekpajak.id as objekPajakId," + "objekpajak.objekPajak as objekPajak," + "range.id as rangeId,"
|
|
+ "model.persenPajak as persenPajak," + "model.keteranganLainnya as keteranganLainnya) "
|
|
+ "from PegawaiSKPajak model " + "left join model.objekPajak objekpajak "
|
|
+ "left join model.golonganPegawai golonganpegawai " + "left join model.range range "
|
|
+ "where :idObjekPajak=:idObjekPajak and golonganpegawai.id=:idGolongaPegawai and " + "range.id=:idRange")
|
|
List<Map<String, Object>> findGajiByPajak(@Param("idObjekPajak") Integer idObjekPajak,
|
|
@Param("idGolongaPegawai") Integer idGolongaPegawai, @Param("idRange") Integer idRange);
|
|
|
|
@Query("select new Map(model.id," + "model.golonganPegawai.id," + "model.objekPajak.id," + "model.range.id,"
|
|
+ "model.persenPajak," + "model.keteranganLainnya) " + "from PegawaiSKPajak model "
|
|
+ "where model.objekPajak.id=:idObjekPajak and model.golonganPegawai.id=:idGolongaPegawai and "
|
|
+ "model.range.id=:idRange")
|
|
List<Map<String, Object>> findPegawaiByDetailKategory(@Param("idObjekPajak") Integer idObjekPajak,
|
|
@Param("idGolongaPegawai") Integer idGolongaPegawai, @Param("idRange") Integer idRange);
|
|
|
|
@Query("select new Map (model.namaLengkap as namaLengkap," + "golonganpegawai.golonganPegawai as golonganPegawai,"
|
|
+ "golonganpegawai.id as golonganPegawaiId," + "golonganPPPK.namaGolongan as golonganPPPK,"
|
|
+ "golonganPPPK.id as golonganPPPKId," + "pendidikan.namaPendidikan as pendidikan,"
|
|
+ "pendidikan.id as pendidikanId," + "jabatanfungsional.id as jabatanId,"
|
|
+ "jabatanfungsional.namaJabatan as namaJabatan," + "detailkategoripegawai.id as detailKategoriPegawaiId,"
|
|
+ "detailkategoripegawai.detailKategoryPegawai as detailKategoriPegawai," + "model.nipPns as nipPns,"
|
|
+ "statuspegawai.statusPegawai as statusPegawai," + "kategoripegawai.kategoryPegawai as kategoriPegawai,"
|
|
+ "model.tglMasuk as tglMasuk," + "model.id as pegawaiId," + "kelompokshift.id as kelompokShiftId,"
|
|
+ "ruangan.id as ruanganId," + "ruangan.namaRuangan as namaRuangan) " + "from Pegawai model "
|
|
+ "left join model.golonganPegawai golonganpegawai " + "left join model.golonganPPPK golonganPPPK "
|
|
+ "left join model.pendidikan pendidikan " + "left join model.jabatanFungsional jabatanfungsional "
|
|
+ "left join model.detailKategoryPegawai detailkategoripegawai "
|
|
+ "left join detailkategoripegawai.kategoryPegawai kategoripegawai "
|
|
+ "left join model.statusPegawai statuspegawai " + "left join model.shiftKerja kelompokshift "
|
|
+ "left join model.ruangan ruangan "
|
|
+ "where detailkategoripegawai.id = :idDetailKategoriPegawai and statuspegawai.id=2 "
|
|
+ "order by model.namaLengkap")
|
|
List<Map<String, Object>> findPegawaiByDetailKategori(
|
|
@Param("idDetailKategoriPegawai") Integer idDetailKategoriPegawai);
|
|
|
|
@Query("select new Map(model.id as id, " + "model.komponenHarga as komponenHarga) " + "from KomponenHarga model "
|
|
+ "where model.id=:idKomponenHarga")
|
|
Map<String, Object> findKomponenHargaNameById(@Param("idKomponenHarga") Integer idKomponenHarga);
|
|
|
|
@Query("select new Map(model.id as id, " + "model.objekPajak as objekPajak) " + "from ObjekPajak model "
|
|
+ "where model.id=:idObjekPajak")
|
|
Map<String, Object> findObjekPajakById(@Param("idObjekPajak") Integer idObjekPajak);
|
|
|
|
@Query("select new Map(model.id as id) from Range model where namarange='Range Masa Kerja' and (rangemin<=:umur and rangemax>=:umur)")
|
|
Map<String, Object> findRangeId(@Param("umur") Integer umur);
|
|
|
|
@Query("select new Map(model.id as id,model.detailKategoryPegawai as detailKategoryPegawai) from DetailKategoryPegawai model where model.id in (:ids)")
|
|
List<Map<String, Object>> findDetailKategoryPegawaiBluPkwt(@Param("ids") List<Integer> ids);
|
|
|
|
@Query("select new Map(model.id as id,model.name as name) from JenisGaji model")
|
|
List<Map<String, Object>> findAllJenisGaji();
|
|
|
|
@Query("select new Map(kelompokshift.id as kelompokShifId,kelompokshift.kelompokShiftKerja as kelompokShiftKerja,"
|
|
+ "shiftkerja.id as shiftKerjaId,shiftkerja.namaShift as shiftKerja,"
|
|
+ "komponenindex.id as komponenIndexId," + "komponenindex.komponenIndex as komponenIndex) "
|
|
+ "from MapKelompokShiftToShift model " + "left join model.kelompokShift kelompokshift "
|
|
+ "left join model.shiftKerja shiftkerja " + "left join shiftkerja.komponenIndex komponenindex "
|
|
+ "where kelompokshift.id = :idKelompokShift")
|
|
List<Map<String, Object>> findKomponenIndexByIdKelompokShift(@Param("idKelompokShift") Integer idKelompokShift);
|
|
|
|
@Query("select new Map(sum(model.nilaiIndex) as sumNilaiIndex," + "pegawai.id as pegawaiId,"
|
|
+ "ruangan.id as ruaganId ) " + "from PegawaiHistoriRekapIndex model "
|
|
+ "left join model.komponenIndex komponenindex " + "left join model.strukHistory strukhistory "
|
|
+ "left join model.pegawai pegawai " + "left join strukhistory.ruangan ruangan "
|
|
+ "where komponenindex.id in (:listKomponenIndex) and ruangan.id=:idRuangan and pegawai.id=:idPegawai "
|
|
+ "and to_char(strukhistory.tglAwal,'mm-yyyy')=:periodeBulan " + "group by pegawai.id,ruangan.id")
|
|
Map<String, Object> getJumlahHari(@Param("listKomponenIndex") List<Integer> listKomponenIndex,
|
|
@Param("idRuangan") Integer idRuangan, @Param("idPegawai") Integer idPegawai,
|
|
@Param("periodeBulan") String periodeBulan);
|
|
|
|
@Query("select new Map(model.id as id," + "golonganpegawai.id as golonganPegawaiId,"
|
|
+ "komponenharga.id as komponenHargaId," + "model.hargaSatuan as hargaSatuan,"
|
|
+ "model.factorRate as factorRate) " + "from PegawaiStrukturGajiByGolongan model "
|
|
+ "left join model.golonganPegawai golonganpegawai " + "left join model.komponenHarga komponenharga "
|
|
+ "where komponenharga.id=:idKomponenHarga")
|
|
List<Map<String, Object>> findGajiHarianLepas(@Param("idKomponenHarga") Integer idKomponenHarga);
|
|
|
|
@Query("select new Map (model.namaLengkap as namaLengkap," + "golonganpegawai.golonganPegawai as golonganPegawai,"
|
|
+ "golonganpegawai.id as golonganPegawaiId," + "golonganPPPK.namaGolongan as golonganPPPK,"
|
|
+ "golonganPPPK.id as golonganPPPKId," + "pendidikan.namaPendidikan as pendidikan,"
|
|
+ "pendidikan.id as pendidikanId," + "jabatanfungsional.id as jabatanId,"
|
|
+ "jabatanfungsional.namaJabatan as namaJabatan," + "detailkategoripegawai.id as detailKategoriPegawaiId,"
|
|
+ "detailkategoripegawai.detailKategoryPegawai as detailKategoriPegawai," + "model.nipPns as nipPns,"
|
|
+ "statuspegawai.statusPegawai as statusPegawai," + "kategoripegawai.kategoryPegawai as kategoriPegawai,"
|
|
+ "model.tglMasuk as tglMasuk," + "model.id as pegawaiId," + "kelompokshift.id as kelompokshiftId,"
|
|
+ "ruangan.id as ruanganId," + "ruangan.namaRuangan as namaRuangan) " + "from Pegawai model "
|
|
+ "left join model.golonganPegawai golonganpegawai " + "left join model.golonganPPPK golonganPPPK "
|
|
+ "left join model.pendidikan pendidikan " + "left join model.jabatanFungsional jabatanfungsional "
|
|
+ "left join model.detailKategoryPegawai detailkategoripegawai "
|
|
+ "left join detailkategoripegawai.kategoryPegawai kategoripegawai "
|
|
+ "left join model.statusPegawai statuspegawai " + "left join model.shiftKerja kelompokshift "
|
|
+ "left join model.jenisPegawai jenispegawai " + "left join model.ruangan ruangan "
|
|
+ "where detailkategoripegawai.id = :idDetailKategoriPegawai and statuspegawai.id=2 "
|
|
+ "and jenispegawai.id = 1 " + "order by model.namaLengkap")
|
|
List<Map<String, Object>> findPegawaiByDetailKategoriDokterPsikologi(
|
|
@Param("idDetailKategoriPegawai") Integer idDetailKategoriPegawai);
|
|
|
|
@Query("select new Map (model.namaLengkap as namaLengkap," + "golonganpegawai.golonganPegawai as golonganPegawai,"
|
|
+ "golonganpegawai.id as golonganPegawaiId," + "golonganPPPK.namaGolongan as golonganPPPK,"
|
|
+ "golonganPPPK.id as golonganPPPKId," + "pendidikan.namaPendidikan as pendidikan,"
|
|
+ "pendidikan.id as pendidikanId," + "jabatanfungsional.id as jabatanId,"
|
|
+ "jabatanfungsional.namaJabatan as namaJabatan," + "detailkategoripegawai.id as detailKategoriPegawaiId,"
|
|
+ "detailkategoripegawai.detailKategoryPegawai as detailKategoriPegawai," + "model.nipPns as nipPns,"
|
|
+ "statuspegawai.statusPegawai as statusPegawai," + "kategoripegawai.kategoryPegawai as kategoriPegawai,"
|
|
+ "model.tglMasuk as tglMasuk," + "model.id as pegawaiId," + "kelompokshift.id as kelompokshiftId,"
|
|
+ "ruangan.id as ruanganId," + "ruangan.namaRuangan as namaRuangan," + "model.tglLahir as tglLahir,"
|
|
+ "asuransiPasien.noAsuransi as noAsuransi," + "rekanan.id as rekananId,"
|
|
+ "rekanan.namaRekanan as namaRekanan) " + "from AsuransiPasien asuransiPasien "
|
|
+ "left join asuransiPasien.pegawai model " + "left join model.golonganPegawai golonganpegawai "
|
|
+ "left join model.golonganPPPK golonganPPPK " + "left join model.pendidikan pendidikan "
|
|
+ "left join model.jabatanFungsional jabatanfungsional "
|
|
+ "left join model.detailKategoryPegawai detailkategoripegawai "
|
|
+ "left join detailkategoripegawai.kategoryPegawai kategoripegawai "
|
|
+ "left join model.statusPegawai statuspegawai " + "left join model.shiftKerja kelompokshift "
|
|
+ "left join model.ruangan ruangan " + "left join asuransiPasien.rekanan rekanan "
|
|
+ "where rekanan.id is not null and statuspegawai.id=2 " + "and rekanan.id = :idRekanan "
|
|
+ "order by model.namaLengkap")
|
|
List<Map<String, Object>> findPegawaiByAsuransi(@Param("idRekanan") Integer idRekanan);
|
|
|
|
@Query("select new Map(model.totalFactorRatePremi as umr, " + "to_char(nosk.tglBerlakuAkhir,'yyyy') as tahun ) "
|
|
+ "from PegawaiSKAsuransi model " + "left join model.noSK nosk " + "where nosk.tglBerlakuAwal <= :periode "
|
|
+ "and nosk.tglBerlakuAkhir >= :periode " + "and model.statusEnabled=true")
|
|
public List<Map<String, Object>> findUmr(@Param("periode") Date periode);
|
|
|
|
}
|