SC-be-java/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/MapPegawaiJabatanToUnitKerjaDao.java
Salman Manoe 14872c79c4 Update service remunerasi
Pembuatan API authorization integrasi get data pegawai by email pengguna superapp
2024-07-03 10:20:01 +07:00

511 lines
36 KiB
Java

package com.jasamedika.medifirst2000.dao;
import com.jasamedika.medifirst2000.entities.MapPegawaiJabatanToUnitKerja;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
import org.springframework.stereotype.Repository;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import java.util.Set;
/**
* Repository class for AbsensiPegawai
*
* @author Gunandi ft Salman
*/
@Repository("mapPegawaiJabatanToUnitKerjaDao")
public interface MapPegawaiJabatanToUnitKerjaDao extends JpaRepository<MapPegawaiJabatanToUnitKerja, Integer> {
@Modifying
@Query("update MapPegawaiJabatanToUnitKerja m set m.isPrimary=false where m.pegawaiId=:pegawaiId and m.id!=:id and m.statusEnabled is true")
void changeIsNotPrimary(@Param("pegawaiId") Integer pegawaiId, @Param("id") Integer id);
@Modifying
@Query("update MapPegawaiJabatanToUnitKerja m set m.isPrimary=true where m.pegawaiId=:pegawaiId and m.id=:id and m.statusEnabled is true")
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")
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<Map<String, Object>> findAllByPegawai(@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.nilaiJabatan as nilaiJabatan,m.gradeId as gradeId,"
+ "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.sumberData as sumberDataId," + "case when m.sumberData = 1 then 'Internal' "
+ "when m.sumberData = 2 then 'Fungsional' " + "when m.sumberData = 3 then 'Struktural' end as sumberData,"
+ "m.statusEnabled as statusEnabled) " + "from MapPegawaiJabatanToUnitKerja m "
+ "where m.statusEnabled is true " + "and m.pegawaiId=:pegawaiId " + "order by m.id")
List<Map<String, Object>> 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<Map<String, Object>> findMappDirutByLevelJabatan(@Param("levelJabatan") Integer levelJabatan,
@Param("listRestrictedId") List<Integer> listRestrictedId, @Param("listNonsdm") List<Integer> 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<Map<String, Object>> findMappDirekturByLevelJabatan(@Param("levelJabatan") Integer levelJabatan,
@Param("subLevelJabatan") Integer subLevelJabatan,
@Param("listRestrictedId") List<Integer> listRestrictedId, @Param("listNonsdm") List<Integer> 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<Map<String, Object>> findMappByLevelJabatan(@Param("unitId") Integer unitId,
@Param("pegawaiId") Integer pegawaiId, @Param("listRestrictedId") List<Integer> listRestrictedId,
@Param("listNonsdm") List<Integer> 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<Map<String, Object>> findUndefinedMapp(@Param("listRestrictedId") List<Integer> listRestrictedId,
@Param("listNonsdm") List<Integer> 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<String, Object> 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<Map<String, Object>> 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<Map<String, Object>> 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<Map<String, Object>> 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<Map<String, Object>> 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<Map<String, Object>> getMappLevelJabatanAndMonitoring(@Param("pegawaiId") Integer pegawaiId,
@Param("idUnit") Integer idUnit);
@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 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<Map<String, Object>> getJabatanInternalStrukturalByPegawai(@Param("idPegawai") Integer idPegawai);
@Query("select distinct new Map(jb.id as id,jb.namaJabatan as namaJabatan,jb.levelJabatan as levelJabatan,"
+ "mj.unitKerjaPegawaiId as idUnitKerja," + "mj.atasanLangsungId as atasanId,"
+ "mj.pejabatPenilaiId as penilaiId) " + "from MapPegawaiJabatanToUnitKerja mj "
+ "left join mj.jabatan jb " + "where mj.statusEnabled is true " + "and jb.statusEnabled is true "
+ "and mj.pegawaiId = :idPegawai")
List<Map<String, Object>> findJabLvlUkAtasan(@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<String, Object> getMapJabatanUtamaByPegawai(@Param("idPegawai") Integer idPegawai);
@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<String, Object> 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<Integer> getPegawaiBySubunitKerja(@Param("idSubunitKerja") Integer idSubunitKerja,
@Param("levelJabatan") Integer levelJabatan);
@Query("select mapp.jabatanId from MapPegawaiJabatanToUnitKerja mapp " + "left join mapp.jabatan jb "
+ "where mapp.statusEnabled is true " + "and mapp.pegawaiId=:idPegawai "
+ "and mapp.unitKerjaPegawaiId=:idUnitKerja " + "order by jb.levelJabatan desc")
List<Integer> 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<Map<String, Object>> 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<Map<String, Object>> 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<Map<String, Object>> 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<Map<String, Object>> 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<Map<String, Object>> 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<Integer> 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<String, Object> 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<Map<String, Object>> 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<Map<String, Object>> 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<String, Object> getAtasanDanUnitKerjaByPegawai(@Param("idPegawai") Integer idPegawai,
@Param("idJabatan") Integer idJabatan);
@Query("select model from MapPegawaiJabatanToUnitKerja model where model.statusEnabled is true")
List<MapPegawaiJabatanToUnitKerja> getAllMapping();
@Query("select model from MapPegawaiJabatanToUnitKerja model " + "where model.statusEnabled is true "
+ "and model.pegawaiId = :pegawaiId")
List<MapPegawaiJabatanToUnitKerja> findByPegawaiId(@Param("pegawaiId") Integer pegawaiId);
@Query("select model from MapPegawaiJabatanToUnitKerja model " + "where model.statusEnabled is true")
List<MapPegawaiJabatanToUnitKerja> findAllEnabled();
@Query("select model from MapPegawaiJabatanToUnitKerja model " + "inner join model.pegawai pg "
+ "where model.statusEnabled is true " + "and pg.statusEnabled is true " + "and pg.namaLengkap <> '-' "
+ "and lower(pg.namaLengkap) not like '%administrator%'")
List<MapPegawaiJabatanToUnitKerja> getAll();
@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<Map<String, Object>> getMappingJabatanDanAtasan(@Param("listAtasan") List<Integer> listAtasan,
@Param("listPenilai") List<Integer> 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<Integer> listAtasanLangsung();
@Query("select distinct mapp.pejabatPenilaiId from MapPegawaiJabatanToUnitKerja mapp where mapp.statusEnabled is true and mapp.pejabatPenilaiId is not null")
List<Integer> listPejabatPenilai();
@Query("select mapp.id from MapPegawaiJabatanToUnitKerja mapp where mapp.statusEnabled is true and mapp.pegawaiId = :pegawaiId")
List<Integer> 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<Map<String, Object>> findFormasiJabatan(@Param("listKedudukanId") List<Integer> listKedudukanId,
@Param("listKategoriId") List<Integer> listKategoriId, @Param("listPegawaiId") List<Integer> 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<Map<String, Object>> 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<Map<String, Object>> getPegawaiByUnitKerja(@Param("idUnitKerja") Integer idUnitKerja,
@Param("idSubunitKerja") Integer idSubunitKerja);
@Query("select distinct new Map(pg.id as id,pg.namaLengkap as namaLengkap,pg.tglMasuk as tglMasuk) "
+ "from MapPegawaiJabatanToUnitKerja mp " + "left join mp.pegawai pg "
+ "where mp.unitKerjaPegawaiId = :unitKerjaId " + "and pg.kategoryPegawaiId in (:listKategoriId) "
+ "and mp.statusEnabled is true " + "and pg.statusEnabled is true " + "order by pg.namaLengkap")
List<Map<String, Object>> getPegawaiByUnitKerja(@Param("unitKerjaId") Integer idUnitKerja,
@Param("listKategoriId") List<Integer> listIdKategori);
@Query("select distinct new Map(pg.id as id,pg.namaLengkap as namaLengkap,pg.tglMasuk as tglMasuk) "
+ "from MapPegawaiJabatanToUnitKerja mp " + "left join mp.pegawai pg "
+ "where pg.kategoryPegawaiId in (:listKategoriId) " + "and mp.subUnitKerjaPegawaiId = :idSubunitKerja "
+ "and mp.statusEnabled is true " + "and pg.statusEnabled is true " + "order by pg.namaLengkap")
List<Map<String, Object>> getPegawaiByUnitKerja(@Param("listKategoriId") List<Integer> listIdKategori,
@Param("idSubunitKerja") Integer idSubunitKerja);
@Query("select new Map(ej.tglHitung as tglHitung,ej.bulan as bulan,ej.tahun as tahun,"
+ "nj.id as idDetailKelompokJabatan,nj.gradeDesc as grade,nj.detailKelompokJabatan as detailKelompokJabatan,"
+ "j.id as idJabatan,j.namaJabatan as namaJabatan," + "ej.totalNilai as nilaiJabatan) "
+ "from MapPegawaiJabatanToUnitKerja mj, EvaluasiJabatan ej " + "inner join mj.jabatan j "
+ "inner join ej.grade nj " + "where mj.jabatanId = ej.jabatanId " + "and ej.jabatanId = j.id "
+ "and mj.statusEnabled is true " + "and ej.statusEnabled is true " + "and mj.pegawaiId = :pegawaiId "
+ "order by ej.tglHitung desc")
List<Map<String, Object>> findEvaluasiJabatanByPegawai(@Param("pegawaiId") Integer idPegawai);
@Query("select new Map(ej.tglHitung as tglHitung,ej.bulan as bulan,ej.tahun as tahun,"
+ "nj.id as idDetailKelompokJabatan,nj.gradeDesc as grade,nj.detailKelompokJabatan as detailKelompokJabatan,"
+ "j.id as idJabatan,j.namaJabatan as namaJabatan,ej.totalNilai as nilaiJabatan) "
+ "from EvaluasiJabatan ej " + "inner join ej.jabatan j " + "inner join ej.grade nj "
+ "where ej.statusEnabled is true " + "and j.id in (:listJabatanId) "
+ "order by ej.totalNilai desc, ej.tglHitung desc")
List<Map<String, Object>> findEvaluasiJabatanByAllJabatanPegawaiBaru(
@Param("listJabatanId") List<Integer> listIdJabatan);
String strAksesPegawaiStaf = "select new Map(mjp.unitKerjaPegawaiId as unitKerjaId,pg.id as pegawaiId) "
+ "from MapPegawaiJabatanToUnitKerja mjp " + "inner join mjp.pegawai pg " + "inner join mjp.jabatan jb "
+ "where mjp.statusEnabled is true " + "and pg.statusEnabled is true " + "and jb.statusEnabled is true "
+ "and pg.id = :pegawaiId " + "and jb.levelJabatan in (5) ";
String strAksesPegawaiAtasan = "select distinct new Map(mjp.unitKerjaPegawaiId as unitKerjaId,pg.id as pegawaiId) "
+ "from MapPegawaiJabatanToUnitKerja mjp, MapPegawaiJabatanToUnitKerja mja "
+ "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 pg.statusEnabled is true "
+ "and jb.statusEnabled is true " + "and pg.id = :pegawaiId " + "and jb.levelJabatan in (4,3) ";
String strAksesPegawaiPenilai = "select distinct new Map(mjp.unitKerjaPegawaiId as unitKerjaId,pg.id as pegawaiId) "
+ "from MapPegawaiJabatanToUnitKerja mjp, MapPegawaiJabatanToUnitKerja mjn "
+ "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 pg.statusEnabled is true "
+ "and jb.statusEnabled is true " + "and pg.id = :pegawaiId " + "and jb.levelJabatan in (2,1) ";
String unitKerja = "and mjp.unitKerjaPegawaiId in (:listUnitKerjaId) ";
String sortUnitKerja = "order by mjp.unitKerjaPegawaiId";
@Query(strAksesPegawaiStaf + unitKerja + sortUnitKerja)
List<Map<String, Object>> findAksesPegawaiStaf(@Param("listUnitKerjaId") List<Integer> listIdUnitKerja,
@Param("pegawaiId") Integer idPegawai);
@Query(strAksesPegawaiAtasan + unitKerja + sortUnitKerja)
List<Map<String, Object>> findAksesPegawaiAtasan(@Param("listUnitKerjaId") List<Integer> listIdUnitKerja,
@Param("pegawaiId") Integer idPegawai);
@Query(strAksesPegawaiPenilai + unitKerja + sortUnitKerja)
List<Map<String, Object>> findAksesPegawaiPenilai(@Param("listUnitKerjaId") List<Integer> listIdUnitKerja,
@Param("pegawaiId") Integer idPegawai);
@Query(strAksesPegawaiStaf + sortUnitKerja)
List<Map<String, Object>> findAksesPegawaiStaf(@Param("pegawaiId") Integer idPegawai);
@Query(strAksesPegawaiAtasan + sortUnitKerja)
List<Map<String, Object>> findAksesPegawaiAtasan(@Param("pegawaiId") Integer idPegawai);
@Query(strAksesPegawaiPenilai + sortUnitKerja)
List<Map<String, Object>> findAksesPegawaiPenilai(@Param("pegawaiId") Integer idPegawai);
@Query("select new Map(mj.id as id," + "pg.id as pegawaiId,pg.namaLengkap as namaPegawai) "
+ "from MapPegawaiJabatanToUnitKerja mj " + "inner join mj.pegawai pg " + "where mj.statusEnabled is true "
+ "and pg.statusEnabled is true " + "and mj.jabatanId = :jabatanId")
List<Map<String, Object>> findPegawaiByJabatan(@Param("jabatanId") Integer idJabatan);
@Query("select new Map(mj.id as id,mj.nilaiJabatan as nilaiJabatan,mj.isPrimary as isPrimary) "
+ "from MapPegawaiJabatanToUnitKerja mj " + "where mj.statusEnabled is true "
+ "and mj.pegawaiId = :pegawaiId " + "order by mj.nilaiJabatan desc, " + "mj.isPrimary desc")
List<Map<String, Object>> findNilaiJabatanByPegawai(@Param("pegawaiId") Integer idPegawai);
@Query("select distinct new Map(mj.pegawaiId as pegawaiId,mj.jabatanId as jabatanId) "
+ "from MapPegawaiJabatanToUnitKerja mj " + "inner join mj.pegawai pg " + "where mj.statusEnabled is true "
+ "and pg.statusEnabled is true " + "and mj.subUnitKerjaPegawaiId = :kelompokKerja "
+ "and pg.kategoryPegawaiId in (:remun) " + "and pg.jenisPegawaiId = :dokter "
+ "and pg.kedudukanId not in (:nonAktif)")
List<Map<String, Object>> findPegawaiJabatanByKelompokKerja(@Param("kelompokKerja") Integer idKK,
@Param("remun") List<Integer> listIdRemun, @Param("dokter") Integer idDokter,
@Param("nonAktif") List<Integer> listIdNonAktif);
@Query("select distinct mj.pegawaiId " + "from MapPegawaiJabatanToUnitKerja mj " + "inner join mj.pegawai pg "
+ "inner join mj.jabatan jb " + "where mj.unitKerjaPegawaiId in (:listKsmId) "
+ "and pg.jenisPegawaiId = 1 " + "and jb.levelJabatan = 5")
List<Integer> findAllDokterKelompokStafMedik(@Param("listKsmId") List<Integer> listIdKsm);
String strDokter = "select distinct new Map(pg.id as pegawaiId,pg.nama as nama,pg.namaLengkap as namaLengkap,"
+ "mj.unitKerjaPegawaiId as ksmId) " + "from MapPegawaiJabatanToUnitKerja mj " + "inner join mj.pegawai pg "
+ "inner join mj.jabatan jb " + "where mj.statusEnabled is true " + "and pg.statusEnabled is true "
+ "and pg.jenisPegawaiId = 1 " + "and jb.levelJabatan = 5 ";
String remun = "and mj.unitKerjaPegawaiId in (:ksmListId) and pg.kategoryPegawaiId in (1,10,14) ";
String ksm = "and mj.unitKerjaPegawaiId = :ksmId ";
String kk = "and mj.subUnitKerjaPegawaiId = :kkId ";
String dr = "and mj.pegawaiId = :drId ";
String sortDr = "order by pg.nama";
@Query(strDokter + sortDr)
List<Map<String, Object>> findDokter();
@Query(strDokter + ksm + sortDr)
List<Map<String, Object>> findDokterByKsm(@Param("ksmId") Integer idKsm);
@Query(strDokter + ksm + kk + sortDr)
List<Map<String, Object>> findDokterByKk(@Param("ksmId") Integer idKsm, @Param("kkId") Integer idKk);
@Query(strDokter + ksm + kk + dr + sortDr)
List<Map<String, Object>> findDokterById(@Param("ksmId") Integer idKsm, @Param("kkId") Integer idKk,
@Param("drId") Integer idDr);
@Query(strDokter + dr + sortDr)
List<Map<String, Object>> findDokterById(@Param("drId") Integer idDr);
@Query(strDokter + remun + dr + sortDr)
List<Map<String, Object>> findDokterByRemun(@Param("ksmListId") List<Integer> ksmListId,
@Param("drId") Integer idPegawai);
@Query("select mj.nilaiJabatan " + "from MapPegawaiJabatanToUnitKerja mj " + "where mj.statusEnabled is true "
+ "and mj.pegawaiId = :pegawaiId " + "and mj.jabatanId = :jabatanId")
Optional<Double> findByPegawaiAndJabatan(@Param("pegawaiId") Integer idPegawai,
@Param("jabatanId") Integer idJabatan);
@Query("select distinct new Map(mj.pegawaiId as pegawaiId,mj.jabatanId as jabatanId) "
+ "from MapPegawaiJabatanToUnitKerja mj " + "where mj.jabatanId in (:listIdJabatan)")
List<Map<String, Object>> findAllPegawaiByJabatan(@Param("listIdJabatan") List<Integer> listIdJabatan);
@Query("select new Map(pg.id as id,pg.namaLengkap as namaLengkap) " + "from MapPegawaiJabatanToUnitKerja mj "
+ "inner join mj.pegawai pg " + "where mj.statusEnabled is true " + "and pg.statusEnabled is true "
+ "and pg.namaLengkap <> '-' " + "and lower(pg.namaLengkap) not like '%admin%' "
+ "and mj.unitKerjaPegawaiId = :unitKerjaPegawaiId " + "order by pg.namaLengkap")
List<Map<String, Object>> findPegawaiByUnitKerja(@Param("unitKerjaPegawaiId") Integer unitKerjaPegawaiId);
@Query("select pg.id from MapPegawaiJabatanToUnitKerja mj " + "inner join mj.pegawai pg "
+ "where mj.statusEnabled is true " + "and pg.statusEnabled is true "
+ "and mj.unitKerjaPegawaiId in (:unitKerjaId) " + "and mj.jabatanId in (:jabatanId)")
List<Integer> findPegawaiIdByUnitKerjaIdAndJabatanId(@Param("unitKerjaId") List<Integer> unitKerjaId,
@Param("jabatanId") List<Integer> jabatanId);
@Query("select mj.pegawaiId from MapPegawaiJabatanToUnitKerja mj " + "where mj.statusEnabled is true "
+ "and mj.subUnitKerjaPegawaiId in (:subUnitKerjaIdIn)")
Set<Integer> findPegawaiIdBySubUnitKerjaIn(@Param("subUnitKerjaIdIn") List<Integer> subUnitKerjaIdIn);
}