package com.jasamedika.medifirst2000.dao; import java.util.List; import java.util.Map; import org.springframework.data.jpa.repository.Modifying; import org.springframework.data.jpa.repository.Query; import org.springframework.data.repository.CrudRepository; import org.springframework.data.repository.query.Param; import org.springframework.stereotype.Repository; import com.jasamedika.medifirst2000.entities.MapPegawaiJabatanToUnitKerja; /** * Repository class for AbsensiPegawai * * @author Gunandi */ @Repository("mapPegawaiJabatanToUnitKerjaDao") public interface MapPegawaiJabatanToUnitKerjaDao extends CrudRepository { MapPegawaiJabatanToUnitKerja findOneByPegawaiIdAndUnitKerjaPegawaiIdAndSubUnitKerjaPegawaiIdAndJabatanId( Integer pegawaiId, Integer unitKerjaPegawaiId, Integer subUnitKerjaPegawaiFkId, Integer jabatanId); @Modifying @Query("update MapPegawaiJabatanToUnitKerja m set m.statusEnabled=false where m.pegawaiId=:pegawaiId ") public void changeStatusEnabled(@Param("pegawaiId") Integer pegawaiId); @Modifying @Query("update MapPegawaiJabatanToUnitKerja m set m.isPrimary=false where m.pegawaiId=:pegawaiId and m.id!=:id and m.statusEnabled is true") public void changeIsPrimary(@Param("pegawaiId") Integer pegawaiId, @Param("id") Integer id); @Modifying @Query("update MapPegawaiJabatanToUnitKerja m set m.isPrimary=false where m.pegawaiId=:pegawaiId and m.statusEnabled is true") public void changeIsPrimary(@Param("pegawaiId") Integer pegawaiId); @Query("select new map(m.id as id " + ", m.pegawaiId as pegawaiId " + ",m.unitKerjaPegawaiId as unitKerjaPegawaiId, unitKerjaPegawai.name as nameUnitKerjaPegawai " + ",m.subUnitKerjaPegawaiId as subUnitKerjaPegawaiId" + ",subUnitKerjaPegawai.name as nameSubUnitKerjaPegawai " + ", m.jabatanId as jabatanId,jabatan.namaJabatan as namaJabatan,m.isCanCreateJadwal as isCanCreateJadwal" + ", m.isPrimary as isPrimary, m.isMonitoring as isMonitoring, m.statusEnabled as statusEnabled) " + " from MapPegawaiJabatanToUnitKerja m " + " left join m.pegawai pegawai " + " left join m.unitKerjaPegawai unitKerjaPegawai " + " left join m.subUnitKerjaPegawai subUnitKerjaPegawai " + " left join m.jabatan jabatan " + " where m.pegawaiId=:pegawaiId and m.statusEnabled = true") List> findAllByPegawai(@Param("pegawaiId") Integer pegawaiId); @Query("select new Map(m.id as id,m.pegawaiId as pegawaiId," + "m.unitKerjaPegawaiId as unitKerjaPegawaiId,unitKerjaPegawai.name as nameUnitKerjaPegawai," + "m.subUnitKerjaPegawaiId as subUnitKerjaPegawaiId,subUnitKerjaPegawai.name as nameSubUnitKerjaPegawai," + "m.jabatanId as jabatanId,jabatan.namaJabatan as namaJabatan," + "m.isCanCreateJadwal as isCanCreateJadwal,m.isPrimary as isPrimary,m.isMonitoring as isMonitoring,m.statusEnabled as statusEnabled," + "m.atasanLangsungDireksi as atasanLangsungDireksi,m.pejabatPenilaiDireksi as pejabatPenilaiDireksi," + "al.id as idAtasanLangsung, al.namaLengkap as atasanLangsung," + "pp.id as idPejabatPenilai, pp.namaLengkap as pejabatPenilai," + "j.id as idJenisJabatan,j.jenisJabatan as jenisJabatan) " + "from MapPegawaiJabatanToUnitKerja m " + "left join m.pegawai pegawai " + "left join m.atasanLangsung al " + "left join m.pejabatPenilai pp " + "left join m.unitKerjaPegawai unitKerjaPegawai " + "left join m.subUnitKerjaPegawai subUnitKerjaPegawai " + "left join m.jabatan jabatan " + "left join jabatan.jenisJabatan j " + "where m.statusEnabled is true " // + "and al.statusEnabled is true " // + "and pp.statusEnabled is true " // + "and j.statusEnabled is true " + "and m.pegawaiId=:pegawaiId") List> findAllDetailByPegawai(@Param("pegawaiId") Integer pegawaiId); @Query("select new Map(m.id as id,m.pegawaiId as pegawaiId," + "m.unitKerjaPegawaiId as unitKerjaPegawaiId," + "m.subUnitKerjaPegawaiId as subUnitKerjaPegawaiId," + "m.jabatanId as jabatanId," + "m.atasanLangsungDireksi as atasanLangsungDireksi,m.pejabatPenilaiDireksi as pejabatPenilaiDireksi," + "m.atasanLangsungId as atasanLangsungId,m.pejabatPenilaiId as pejabatPenilaiId," + "m.isCanCreateJadwal as isCanCreateJadwal,m.isPrimary as isPrimary,m.isMonitoring as isMonitoring,m.statusEnabled as statusEnabled) " + "from MapPegawaiJabatanToUnitKerja m " + "where m.statusEnabled is true " + "and m.pegawaiId=:pegawaiId " + "order by m.id") List> findMappByPegawai(@Param("pegawaiId") Integer pegawaiId); @Query("select distinct new Map(mapPegawai.id as id,mapPegawai.pegawaiId as pegawaiId," + "mapPegawai.unitKerjaPegawaiId as unitKerjaPegawaiId," + "mapPegawai.subUnitKerjaPegawaiId as subUnitKerjaPegawaiId," + "mapPegawai.jabatanId as jabatanId," + "mapPegawai.atasanLangsungDireksi as atasanLangsungDireksi,mapPegawai.pejabatPenilaiDireksi as pejabatPenilaiDireksi," + "mapPegawai.atasanLangsungId as atasanLangsungId,mapPegawai.pejabatPenilaiId as pejabatPenilaiId," + "mapPegawai.isCanCreateJadwal as isCanCreateJadwal,mapPegawai.isPrimary as isPrimary,mapPegawai.isMonitoring as isMonitoring,mapPegawai.statusEnabled as statusEnabled) " + "from MapPegawaiJabatanToUnitKerja mapPegawai " + "inner join mapPegawai.pegawai peg with peg.statusEnabled is true and peg.id not in (:listRestrictedId) and peg.kategoryPegawaiId not in (:listNonsdm) " + "left join mapPegawai.jabatan jab with jab.statusEnabled is true " + "where mapPegawai.statusEnabled is true " + "and jab.levelJabatan between :levelJabatan+1 and :levelJabatan+2") List> findMappDirutByLevelJabatan(@Param("levelJabatan") Integer levelJabatan, @Param("listRestrictedId") List listRestrictedId, @Param("listNonsdm") List listNonsdm); @Query("select distinct new Map(mapPegawai.id as id,mapPegawai.pegawaiId as pegawaiId," + "mapPegawai.unitKerjaPegawaiId as unitKerjaPegawaiId," + "mapPegawai.subUnitKerjaPegawaiId as subUnitKerjaPegawaiId," + "mapPegawai.jabatanId as jabatanId," + "mapPegawai.atasanLangsungDireksi as atasanLangsungDireksi,mapPegawai.pejabatPenilaiDireksi as pejabatPenilaiDireksi," + "mapPegawai.atasanLangsungId as atasanLangsungId,mapPegawai.pejabatPenilaiId as pejabatPenilaiId," + "mapPegawai.isCanCreateJadwal as isCanCreateJadwal,mapPegawai.isPrimary as isPrimary,mapPegawai.isMonitoring as isMonitoring,mapPegawai.statusEnabled as statusEnabled) " + "from MapPegawaiJabatanToUnitKerja mapPegawai " + "inner join mapPegawai.pegawai peg with peg.statusEnabled is true and peg.id not in (:listRestrictedId) and peg.kategoryPegawaiId not in (:listNonsdm) " + "left join mapPegawai.jabatan jab with jab.statusEnabled is true " + "where mapPegawai.statusEnabled is true " + "and jab.levelJabatan between :levelJabatan+1 and :levelJabatan+2 " + "and jab.subLevelJabatan = :subLevelJabatan") List> findMappDirekturByLevelJabatan(@Param("levelJabatan") Integer levelJabatan, @Param("subLevelJabatan") Integer subLevelJabatan, @Param("listRestrictedId") List listRestrictedId, @Param("listNonsdm") List listNonsdm); @Query("select distinct new Map(mapPegawai.id as id,mapPegawai.pegawaiId as pegawaiId," + "mapPegawai.unitKerjaPegawaiId as unitKerjaPegawaiId," + "mapPegawai.subUnitKerjaPegawaiId as subUnitKerjaPegawaiId," + "mapPegawai.jabatanId as jabatanId," + "mapPegawai.atasanLangsungDireksi as atasanLangsungDireksi,mapPegawai.pejabatPenilaiDireksi as pejabatPenilaiDireksi," + "mapPegawai.atasanLangsungId as atasanLangsungId,mapPegawai.pejabatPenilaiId as pejabatPenilaiId," + "mapPegawai.isCanCreateJadwal as isCanCreateJadwal,mapPegawai.isPrimary as isPrimary,mapPegawai.isMonitoring as isMonitoring,mapPegawai.statusEnabled as statusEnabled) " + "from MapPegawaiJabatanToUnitKerja mapPegawai, MapPegawaiJabatanToUnitKerja mapAtasan, MapPegawaiJabatanToUnitKerja mapPenilai " + "inner join mapPegawai.pegawai peg with peg.statusEnabled is true and peg.id not in (:listRestrictedId) and peg.kategoryPegawaiId not in (:listNonsdm) " + "left join mapPegawai.jabatan jabPegawai with jabPegawai.statusEnabled is true " + "left join mapAtasan.jabatan jabAtasan with jabAtasan.statusEnabled is true " + "left join mapPenilai.jabatan jabPenilai with jabPenilai.statusEnabled is true " + "where mapPegawai.unitKerjaPegawaiId = mapAtasan.unitKerjaPegawaiId " + "and mapPegawai.unitKerjaPegawaiId = mapPenilai.unitKerjaPegawaiId " + "and mapPegawai.statusEnabled is true " + "and mapAtasan.statusEnabled is true " + "and mapPenilai.statusEnabled is true " + "and mapPegawai.unitKerjaPegawaiId = :unitId " + "and mapPegawai.pegawaiId <> :pegawaiId " + "and jabPegawai.levelJabatan between jabPenilai.levelJabatan+1 and jabPenilai.levelJabatan+3)") List> findMappByLevelJabatan(@Param("unitId") Integer unitId, @Param("pegawaiId") Integer pegawaiId, @Param("listRestrictedId") List listRestrictedId, @Param("listNonsdm") List listNonsdm); @Query("select distinct new Map(mapp.id as id,mapp.pegawaiId as pegawaiId,peg.kategoryPegawaiId as kategoryPegawaiId," + "mapp.unitKerjaPegawaiId as unitKerjaPegawaiId," + "mapp.subUnitKerjaPegawaiId as subUnitKerjaPegawaiId," + "mapp.jabatanId as jabatanId," + "mapp.atasanLangsungDireksi as atasanLangsungDireksi,mapp.pejabatPenilaiDireksi as pejabatPenilaiDireksi," + "mapp.atasanLangsungId as atasanLangsungId,mapp.pejabatPenilaiId as pejabatPenilaiId," + "mapp.isCanCreateJadwal as isCanCreateJadwal,mapp.isPrimary as isPrimary,mapp.isMonitoring as isMonitoring,mapp.statusEnabled as statusEnabled) " + "from MapPegawaiJabatanToUnitKerja mapp " + "inner join mapp.pegawai peg with peg.statusEnabled is true and peg.id not in (:listRestrictedId) and peg.kategoryPegawaiId not in (:listNonsdm) " + "left join mapp.jabatan jab " + "left join mapp.atasanLangsung al " + "left join mapp.pejabatPenilai pp " + "left join mapp.unitKerjaPegawai uk " + "left join mapp.subUnitKerjaPegawai sk " + "where mapp.statusEnabled is true " + "and ((mapp.atasanLangsungId is not null and mapp.pejabatPenilaiId is null and mapp.atasanLangsungDireksi is null and mapp.pejabatPenilaiDireksi is null) " + "or (mapp.atasanLangsungId is null and mapp.pejabatPenilaiId is not null and mapp.atasanLangsungDireksi is null and mapp.pejabatPenilaiDireksi is null) " + "or (mapp.atasanLangsungId is null and mapp.pejabatPenilaiId is null and mapp.atasanLangsungDireksi is not null and mapp.pejabatPenilaiDireksi is null) " + "or (mapp.atasanLangsungId is null and mapp.pejabatPenilaiId is null and mapp.atasanLangsungDireksi is null and mapp.pejabatPenilaiDireksi is not null) " + "or (mapp.atasanLangsungId is null and mapp.pejabatPenilaiId is null and mapp.atasanLangsungDireksi is null and mapp.pejabatPenilaiDireksi is null) " + "or mapp.unitKerjaPegawaiId is null " + "or mapp.subUnitKerjaPegawaiId is null " + "or mapp.jabatanId is null " + "or (mapp.atasanLangsungId is not null and al.statusEnabled is false) " + "or (mapp.pejabatPenilaiId is not null and pp.statusEnabled is false) " + "or (mapp.unitKerjaPegawaiId is not null and uk.statusEnabled is false) " + "or (mapp.subUnitKerjaPegawaiId is not null and sk.statusEnabled is false) " + "or (mapp.jabatanId is not null and jab.statusEnabled is false))") List> findUndefinedMapp(@Param("listRestrictedId") List listRestrictedId, @Param("listNonsdm") List listNonsdm); @Query("select new map(m.id as id " + ", m.pegawaiId as pegawaiId " + ",m.unitKerjaPegawaiId as unitKerjaPegawaiId, unitKerjaPegawai.name as nameUnitKerjaPegawai " + ",m.subUnitKerjaPegawaiId as subUnitKerjaPegawaiId" + ",subUnitKerjaPegawai.name as nameSubUnitKerjaPegawai " + ", m.jabatanId as jabatanId,jabatan.namaJabatan as namaJabatan,m.isCanCreateJadwal as isCanCreateJadwal" + ", m.isPrimary as isPrimary, m.isMonitoring as isMonitoring, m.statusEnabled as statusEnabled) " + " from MapPegawaiJabatanToUnitKerja m " + " left join m.pegawai pegawai " + " left join m.unitKerjaPegawai unitKerjaPegawai " + " left join m.subUnitKerjaPegawai subUnitKerjaPegawai " + " left join m.jabatan jabatan " + " where m.pegawaiId=:pegawaiId and m.isPrimary is true and m.statusEnabled = true") Map findAllByPegawaiPrimary(@Param("pegawaiId") Integer pegawaiId); @Query("select distinct new map(m.subUnitKerjaPegawaiId as subUnitKerjaPegawaiId" + ",subUnitKerjaPegawai.name as nameSubUnitKerjaPegawai) " + " from MapPegawaiJabatanToUnitKerja m " + " left join m.subUnitKerjaPegawai subUnitKerjaPegawai " + " where m.pegawaiId=:pegawaiId and m.unitKerjaPegawaiId=:idUnit and m.statusEnabled = true") List> findSubUnitByUnit(@Param("pegawaiId") Integer pegawaiId, @Param("idUnit") Integer idUnit); @Query("select distinct new map(m.unitKerjaPegawaiId as unitKerjaPegawaiId" + ",unitKerjaPegawai.name as nameUnitKerjaPegawai) " + " from MapPegawaiJabatanToUnitKerja m " + " left join m.unitKerjaPegawai unitKerjaPegawai " + " where m.pegawaiId=:pegawaiId and m.statusEnabled = true") List> findUnitByPgwId(@Param("pegawaiId") Integer pegawaiId); @Query("select distinct new map(m.unitKerjaPegawaiId as id,unitKerjaPegawai.name as name, m.isCanCreateJadwal as isCanCreateJadwal) " + " from MapPegawaiJabatanToUnitKerja m " + " left join m.unitKerjaPegawai unitKerjaPegawai " + " where m.pegawaiId=:pegawaiId and m.statusEnabled = true") List> findUnitByPgwId2(@Param("pegawaiId") Integer pegawaiId); @Query("select distinct new map(m.subUnitKerjaPegawaiId as id" + ",subUnitKerjaPegawai.name as name) " + " from MapPegawaiJabatanToUnitKerja m " + " left join m.subUnitKerjaPegawai subUnitKerjaPegawai " + " where m.pegawaiId=:pegawaiId and m.unitKerjaPegawaiId=:idUnit and m.statusEnabled = true") List> findSubUnitByUnit2(@Param("pegawaiId") Integer pegawaiId, @Param("idUnit") Integer idUnit); @Query("select new Map(j.levelJabatan as levelJabatan,m.isMonitoring as isMonitoring) " + " from MapPegawaiJabatanToUnitKerja m " + " left join m.jabatan j " + " where m.pegawaiId=:pegawaiId and m.unitKerjaPegawaiId=:idUnit and m.statusEnabled = true") List> getMappLevelJabatanAndMonitoring(@Param("pegawaiId") Integer pegawaiId, @Param("idUnit") Integer idUnit); @Query("select distinct mapp.subUnitKerjaPegawaiId " + "from MapPegawaiJabatanToUnitKerja mapp " + "inner join mapp.pegawai peg " + "inner join mapp.subUnitKerjaPegawai sub " + "where mapp.statusEnabled is true " + // "and mapp.isPrimary is true "+ "and peg.statusEnabled is true " + "and peg.shiftKerjaId in (1,2) " + "order by mapp.subUnitKerjaPegawaiId") List getSubUnitKerjaPegNonShift(); @Query("select mapp.jabatanId from MapPegawaiJabatanToUnitKerja mapp where mapp.statusEnabled is true and mapp.pegawaiId=:idPegawai") List getIdJabatanInternalByIdPegawai(@Param("idPegawai") Integer idPegawai); @Query("select mapp.jabatanId from MapPegawaiJabatanToUnitKerja mapp where mapp.statusEnabled is true and mapp.isPrimary is true and mapp.pegawaiId=:idPegawai") Integer getIdJabatanInternalUtamaByIdPegawai(@Param("idPegawai") Integer idPegawai); @Query("select mp.pegawaiId from MapPegawaiJabatanToUnitKerja mp where mp.statusEnabled is true and mp.jabatanId = :idJabatan") Integer getPegawaiByJabatanInternalUtama(@Param("idJabatan") Integer idJabatan); @Query("select distinct new Map(jab.id as id, jab.namaJabatan as namaJabatan, jab.levelJabatan as levelJabatan, " + "mapp.unitKerjaPegawaiId as idUnitKerja) " + "from MapPegawaiJabatanToUnitKerja mapp " + "left join mapp.jabatan jab " + "where mapp.statusEnabled is true " + "and jab.statusEnabled is true " + "and mapp.pegawaiId = :idPegawai") List> getJabatanInternalStrukturalByPegawai(@Param("idPegawai") Integer idPegawai); @Query("select new Map(jabatan.id as idJabatan,jabatan.namaJabatan as namaJabatan," + "unitKerja.id as idUnitKerja,unitKerja.name as namaUnitKerja," + "subUnitkerja.id as idSubunitKerja,subunitKerja.name as namaSubunitKerja) " + "from MapPegawaiJabatanToUnitKerja mapp " + "left join mapp.jabatan jabatan " + "left join mapp.unitKerjaPegawai unitKerja " + "left join mapp.subUnitKerjaPegawai subunitKerja " + "where mapp.statusEnabled is true " + "and mapp.pegawaiId = :idPegawai") List> getMapJabatanByPegawai(@Param("idPegawai") Integer idPegawai); @Query("select new Map(jabatan.id as idJabatan,jabatan.namaJabatan as namaJabatan," + "unitKerja.id as idUnitKerja,unitKerja.name as namaUnitKerja," + "subUnitkerja.id as idSubunitKerja,subunitKerja.name as namaSubunitKerja) " + "from MapPegawaiJabatanToUnitKerja mapp " + "left join mapp.jabatan jabatan " + "left join mapp.unitKerjaPegawai unitKerja " + "left join mapp.subUnitKerjaPegawai subunitKerja " + "where mapp.statusEnabled is true " + "and mapp.isPrimary is true " + "and mapp.pegawaiId = :idPegawai") Map getMapJabatanUtamaByPegawai(@Param("idPegawai") Integer idPegawai); @Query("select new Map(mapp.id, mapp.isCanCreateJadwal, mapp.isMonitoring, mapp.isPrimary, mapp.jabatanId, mapp.subUnitKerjaPegawaiId, mapp.unitKerjaPegawaiId) " + "from MapPegawaiJabatanToUnitKerja mapp where mapp.statusEnabled is true and mapp.pegawaiId = :idPegawai") List> getMappByPegawai(@Param("idPegawai") Integer idPegawai); @Query("select new Map(mapp.pegawaiId, mapp.isCanCreateJadwal, mapp.isMonitoring, mapp.isPrimary, mapp.jabatanId, mapp.subUnitKerjaPegawaiId, mapp.unitKerjaPegawaiId) " + "from MapPegawaiJabatanToUnitKerja mapp where mapp.statusEnabled is true and mapp.id = :id") Map getMappById(@Param("id") Integer id); @Query("select new Map(mapp.id, mapp.pegawaiId, mapp.isCanCreateJadwal, mapp.isMonitoring, mapp.isPrimary, jab.levelJabatan) " + "from MapPegawaiJabatanToUnitKerja mapp " + "left join mapp.jabatan jab " + "where mapp.statusEnabled is true and jab.statusEnabled is true and jab.levelJabatan is not null " + "and mapp.jabatanId = :idJabatan and mapp.subUnitKerjaPegawaiId = :idSubunitKerja and mapp.unitKerjaPegawaiId = :idUnitKerja") Map getMappByDetail(@Param("idJabatan") Integer idJabatan, @Param("idSubunitKerja") Integer idSubunitKerja, @Param("idUnitKerja") Integer idUnitKerja); @Query("select distinct mapp.pegawaiId " + "from MapPegawaiJabatanToUnitKerja mapp " + "inner join mapp.jabatan jab " + "where mapp.statusEnabled is true " + "and jab.statusEnabled is true " + "and jab.levelJabatan > :levelJabatan " + "and mapp.subUnitKerjaPegawaiId = :idSubunitKerja") List getPegawaiBySubunitKerja(@Param("idSubunitKerja") Integer idSubunitKerja, @Param("levelJabatan") Integer levelJabatan); @Query("select mapp.jabatanId from MapPegawaiJabatanToUnitKerja mapp where mapp.statusEnabled is true and mapp.pegawaiId=:idPegawai and mapp.unitKerjaPegawaiId=:idUnitKerja") Integer getIdJabatanByPegawaiUnitKerja(@Param("idPegawai") Integer idPegawai, @Param("idUnitKerja") Integer idUnitKerja); @Query("select mapp.jabatanId from MapPegawaiJabatanToUnitKerja mapp where mapp.statusEnabled is true and mapp.pegawaiId=:idPegawai and mapp.unitKerjaPegawaiId=:idUnitKerja") List getListIdJabatanByPegawaiUnitKerja(@Param("idPegawai") Integer idPegawai, @Param("idUnitKerja") Integer idUnitKerja); @Query("select count(mapp.id) from MapPegawaiJabatanToUnitKerja mapp where mapp.statusEnabled is true and mapp.pegawaiId = :idPegawai and mapp.isCanCreateJadwal is true") Integer countBuatJadwalDinasByPegawai(@Param("idPegawai") Integer idPegawai); @Query("select count(mapp.id) from MapPegawaiJabatanToUnitKerja mapp where mapp.statusEnabled is true and mapp.pegawaiId = :idPegawai and mapp.isPrimary is true and mapp.isMonitoring is true") Integer countMonitoringByPegawai(@Param("idPegawai") Integer idPegawai); @Query("select new Map(" + "subunit.id as idSub, subunit.name as nameSub, " + "unitkerja.id as idUnit, unitkerja.name as nameUnit, " + "pgw.id as idPgw, pgw.namaLengkap as namaLengkap) " + "from MapPegawaiJabatanToUnitKerja map " + "left join map.subUnitKerjaPegawai subunit " + "left join map.unitKerjaPegawai unitkerja " + "left join map.pegawai pgw " + "where map.statusEnabled is true " + "and map.pegawaiId = :idPegawai " + "and map.isPrimary is true") List> getDataMappingJabatanUtamaByPegawai(@Param("idPegawai") Integer idPegawai); @Query("select distinct new Map(unitkerja.id as id, unitkerja.name as name) " + "from MapPegawaiJabatanToUnitKerja map " + "left join map.unitKerjaPegawai unitkerja " + "where map.statusEnabled is true " + "and map.pegawaiId = :idPegawai " + "order by unitkerja.name") List> getMapUnitKerjaByPegawai(@Param("idPegawai") Integer idPegawai); @Query("select distinct new Map(uk.id as id,uk.name as name) " + "from MapPegawaiJabatanToUnitKerja mp " + "left join mp.jabatan jb with jb.statusEnabled is true " + "left join mp.unitKerjaPegawai uk with uk.statusEnabled is true " + "where mp.statusEnabled is true " + "and jb.levelJabatan = :levelJabatan+1 " // satu_level_dibawahnya + "and jb.subLevelJabatan = :sublevelJabatan " + "and uk.id is not null " + "order by uk.name") List> getMapUnitKerjaByLevelJabatan(@Param("levelJabatan") Integer levelJabatan, @Param("sublevelJabatan") Integer sublevelJabatan); @Query("select distinct new Map(mapp.unitKerjaPegawaiId as idUnit, jab.levelJabatan as levelJabatan, jab.subLevelJabatan as subLevelJabatan) " + "from MapPegawaiJabatanToUnitKerja mapp " + "left join mapp.jabatan jab with jab.statusEnabled is true " + "where mapp.statusEnabled is true " + "and mapp.pegawaiId = :pegawaiId ") List> getMappLevelByPegawai(@Param("pegawaiId") Integer pegawaiId); @Query("select distinct new Map(subunit.id as id, subunit.name as name) " + "from MapPegawaiJabatanToUnitKerja map " + "left join map.subUnitKerjaPegawai subunit " + "where map.statusEnabled is true " + "and map.pegawaiId = :idPegawai " + "and map.unitKerjaPegawaiId = :idUnitKerja " + "order by subunit.name") List> getMapSubunitKerjaMonitoringByUnitPegawai(@Param("idPegawai") Integer idPegawai, @Param("idUnitKerja") Integer idUnitKerja); @Query("select distinct mapp.pegawaiId from MapPegawaiJabatanToUnitKerja mapp " + "where mapp.statusEnabled is true and mapp.pegawaiId is not null and mapp.unitKerjaPegawaiId = :idUnitKerja") List getPegawaiByUnitKerja(@Param("idUnitKerja") Integer idUnitKerja); @Query("select new Map(pegawai.namaLengkap as namaLengkapDirut, " + "coalesce(pegawai.nipPns, pegawai.nip) as nipDirut, " + "jabatan.namaJabatan as namaJabatanDirut) " + "from MapPegawaiJabatanToUnitKerja mappingJabatan " + "left join mappingJabatan.pegawai pegawai " + "left join mappingJabatan.jabatan jabatan " + "where mappingJabatan.statusEnabled is true " + "and pegawai.statusEnabled is true " + "and jabatan.id = :idJabatan") Map getDirekturUtama(@Param("idJabatan") Integer idJabatan); @Query("select distinct new Map(al.id as id, al.namaLengkap as namaLengkap, coalesce(al.nipPns, al.nip) as nipPns, mp.atasanLangsungDireksi as atasanLangsung, " + "mp.unitKerjaPegawaiId as idUnitKerja, mp.jabatanId as idJabatan) " + "from MapPegawaiJabatanToUnitKerja mp " + "left join mp.atasanLangsung al with al.statusEnabled is true " + "where mp.statusEnabled is true " + "and mp.pegawaiId = :idPegawai") List> getAtasanLangsungByPegawai(@Param("idPegawai") Integer idPegawai); @Query("select distinct new Map(pp.id as id, pp.namaLengkap as namaLengkap, coalesce(pp.nipPns, pp.nip) as nipPns, mp.pejabatPenilaiDireksi as pejabatPenilai, " + "mp.unitKerjaPegawaiId as idUnitKerja, mp.jabatanId as idJabatan) " + "from MapPegawaiJabatanToUnitKerja mp " + "left join mp.pejabatPenilai pp with pp.statusEnabled is true " + "where mp.statusEnabled is true " + "and mp.pegawaiId = :idPegawai") List> getAtasanPejabatPenilaiByPegawai(@Param("idPegawai") Integer idPegawai); @Query("select distinct new Map(atasan.id as idAtasan, atasan.namaLengkap as namaAtasan, " + "jabatan.namaJabatan as jabatan, unitKerja.name as unitKerja, " + "coalesce(atasan.nipPns, atasan.nip) as nipAtasan) " + "from MapPegawaiJabatanToUnitKerja mapp " + "left join mapp.atasanLangsung atasan " + "left join mapp.unitKerjaPegawai unitKerja " + "left join mapp.jabatan jabatan " + "where mapp.statusEnabled is true " + "and mapp.pegawaiId = :idPegawai " + "and mapp.jabatanId = :idJabatan") Map getAtasanDanUnitKerjaByPegawai(@Param("idPegawai") Integer idPegawai, @Param("idJabatan") Integer idJabatan); @Query("select model from MapPegawaiJabatanToUnitKerja model where model.statusEnabled is true") List getAllMapping(); @Query("select new Map(mapp.id as idMapping, mapp.pegawaiId as idPegawai, mapp.atasanLangsungId as idAtasan, mapp.pejabatPenilaiId as idPenilai) " + "from MapPegawaiJabatanToUnitKerja mapp " + "where mapp.statusEnabled is true and mapp.jabatanId is not null and mapp.unitKerjaPegawaiId is not null and mapp.subUnitKerjaPegawaiId is not null " + "and (mapp.pegawaiId in (:listAtasan) or mapp.pegawaiId in (:listPenilai)) and mapp.jabatanId = :jabatanId " + "and mapp.unitKerjaPegawaiId = :unitId and mapp.subUnitKerjaPegawaiId = :subId") List> getMappingJabatanDanAtasan(@Param("listAtasan") List listAtasan, @Param("listPenilai") List listPenilai, @Param("jabatanId") Integer jabatanId, @Param("unitId") Integer unitId, @Param("subId") Integer subId); @Query("select distinct mapp.atasanLangsungId from MapPegawaiJabatanToUnitKerja mapp where mapp.statusEnabled is true and mapp.atasanLangsungId is not null") List listAtasanLangsung(); @Query("select distinct mapp.pejabatPenilaiId from MapPegawaiJabatanToUnitKerja mapp where mapp.statusEnabled is true and mapp.pejabatPenilaiId is not null") List listPejabatPenilai(); @Query("select mapp.id from MapPegawaiJabatanToUnitKerja mapp where mapp.statusEnabled is true and mapp.pegawaiId = :pegawaiId") List getMappingIdByPegawai(@Param("pegawaiId") Integer pegawaiId); @Query("select new Map(jab.id as idJabatan, jab.namaJabatan as namaJabatan, " + "peg.id as idPegawai, peg.namaLengkap as namaLengkap, coalesce(peg.nipPns,peg.nip,peg.nikIntern) as nipPns, " + "uk.id as idUnitKerja, uk.name as namaUnitKerja, " + "sk.id as idSubunitKerja, sk.name as namaSubunitKerja, " + "kat.id as idKategori, kat.kategoryPegawai as namaKategori) " + "from MapPegawaiJabatanToUnitKerja mapp " + "inner join mapp.pegawai peg " + "left join mapp.jabatan jab with jab.statusEnabled is true " + "left join mapp.unitKerjaPegawai uk with uk.statusEnabled is true " + "left join mapp.subUnitKerjaPegawai sk with sk.statusEnabled is true " + "left join peg.kategoryPegawai kat with kat.statusEnabled is true " + "where mapp.statusEnabled is true and peg.statusEnabled is true " + "and peg.kedudukanId not in (:listKedudukanId) " + "and kat.id not in (:listKategoriId) " + "and peg.id not in (:listPegawaiId) " + "order by jab.namaJabatan, uk.name, sk.name, kat.kategoryPegawai, peg.namaLengkap") List> findFormasiJabatan(@Param("listKedudukanId") List listKedudukanId, @Param("listKategoriId") List listKategoriId, @Param("listPegawaiId") List listPegawaiId); @Query("select new Map(jb.id as id,jb.namaJabatan as namaJabatan) " + "from MapPegawaiJabatanToUnitKerja mp " + "left join mp.jabatan jb with jb.statusEnabled is true " + "where mp.statusEnabled is true " + "and mp.pegawaiId = :idPegawai") List> getJabatanPegawai(@Param("idPegawai") Integer idPegawai); @Query("select new Map(pg.id as id,pg.namaLengkap as namaLengkap) " + "from MapPegawaiJabatanToUnitKerja mp " + "left join mp.pegawai pg " + "where mp.unitKerjaPegawaiId = :idUnitKerja " + "and mp.subUnitKerjaPegawaiId = :idSubunitKerja " + "and mp.statusEnabled is true " + "and pg.statusEnabled is true " + "order by pg.namaLengkap") List> getPegawaiByUnitKerja(@Param("idUnitKerja") Integer idUnitKerja, @Param("idSubunitKerja") Integer idSubunitKerja); }