diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/LogbookKinerjaDao.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/LogbookKinerjaDao.java index 71c2f3c1..0b12bf9d 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/LogbookKinerjaDao.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/LogbookKinerjaDao.java @@ -117,17 +117,17 @@ public interface LogbookKinerjaDao extends PagingAndSortingRepository> findAksesPegawaiByStaf(@Param("pegawaiId") Integer idPegawai, @Param("listKategoryPegawaiId") List listIdKategoriPegawai, - @Param("listKelompokJabatabId") List listIdKelompokJabatan); + @Param("listKelompokJabatanId") List listIdKelompokJabatan); @Query("select distinct new Map(pg.id as id,pg.namaLengkap as namaLengkap," + "pg.tglMasuk as tglMasuk," + "pg.jenisPegawaiId as jenisPegawaiId) " + "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 jb.kelompokJabatanId in (:KelompokJabatabId)") - List> findAksesPegawaiNakesLain(@Param("KelompokJabatabId") Integer IdKelompokJabatan); + + "and jb.kelompokJabatanId in (:kelompokJabatanId)") + List> findAksesPegawaiNakesLain(@Param("kelompokJabatanId") Integer IdKelompokJabatan); @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 " @@ -147,10 +147,10 @@ public interface LogbookKinerjaDao extends PagingAndSortingRepository> findAksesPegawaiByAtasan(@Param("pegawaiId") Integer idPegawai, @Param("listKategoryPegawaiId") List listIdKategoriPegawai, - @Param("listKelompokJabatabId") List listIdKelompokJabatan); + @Param("listKelompokJabatanId") List listIdKelompokJabatan); @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 " @@ -170,10 +170,10 @@ public interface LogbookKinerjaDao extends PagingAndSortingRepository> findAksesPegawaiByPenilai(@Param("pegawaiId") Integer idPegawai, @Param("listKategoryPegawaiId") List listIdKategoriPegawai, - @Param("listKelompokJabatabId") List listIdKelompokJabatan); + @Param("listKelompokJabatanId") List listIdKelompokJabatan); @Query("select new Map(lk.noRec as noRec,lk.pegawaiId as pegawaiId) " + "from LogbookKinerja lk where lk.indikatorKinerjaId = :indikatorId " + "and lk.jabatanId = :jabatanId " diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/MapPegawaiJabatanToUnitKerjaDao.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/MapPegawaiJabatanToUnitKerjaDao.java index b19688af..6f3b6497 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/MapPegawaiJabatanToUnitKerjaDao.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/MapPegawaiJabatanToUnitKerjaDao.java @@ -246,8 +246,8 @@ public interface MapPegawaiJabatanToUnitKerjaDao extends JpaRepository> getMapUnitKerjaByKelompokJabatan(@Param("KelompokJabatabId") Integer IdKelompokJabatan); + + "and jb.kelompokJabatanId = :kelompokJabatanId " + "and uk.id is not null " + "order by uk.name") + List> getMapUnitKerjaByKelompokJabatan(@Param("kelompokJabatanId") Integer IdKelompokJabatan); @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 " @@ -261,6 +261,13 @@ public interface MapPegawaiJabatanToUnitKerjaDao extends JpaRepository> getMapSubunitKerjaMonitoringByUnitPegawai(@Param("idPegawai") Integer idPegawai, @Param("idUnitKerja") Integer idUnitKerja); + @Query("select distinct new Map(subunit.id as id, subunit.name as name) " + "from MapPegawaiJabatanToUnitKerja map " + + "left join map.jabatan jab " + "left join map.subUnitKerjaPegawai subunit " + "where map.statusEnabled is true " + + "and map.unitKerjaPegawaiId = :idUnitKerja " + "and jab.kelompokJabatanId = :kelompokJabatanId " + + "order by subunit.name") + List> getMapSubunitKerjaMonitoringByKelompokJabatan(@Param("idUnitKerja") Integer idUnitKerja, + @Param("kelompokJabatanId") Integer IdKelompokJabatan); + @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); diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/MonitoringAbsenDao.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/MonitoringAbsenDao.java index 5a0f7aee..183f33ac 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/MonitoringAbsenDao.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/MonitoringAbsenDao.java @@ -17,7 +17,7 @@ public interface MonitoringAbsenDao extends PagingAndSortingRepository> findJadwalPegawai(@Param("idFinger") String idFinger, + List> findJadwalPegawai(@Param("idFinger") String idFinger, @Param("startDate") String startDate, @Param("endDate") String endDate); @Query("select new map(shift.kodeExternal as kodeShift, " + "shift.namaShift as namaShift, " @@ -47,7 +47,7 @@ public interface MonitoringAbsenDao extends PagingAndSortingRepository findJadwalPegawai(@Param("idFinger") String idFinger, @Param("tanggal") String tanggal); + Map findJadwalPegawai(@Param("idFinger") String idFinger, @Param("tanggal") String tanggal); @Query("select new map(shift.kodeExternal as kodeShift, " + "shift.namaShift as namaShift, " + "shift.jamMasuk as jamMasuk, " + "shift.jamPulang as jamPulang, " @@ -58,8 +58,7 @@ public interface MonitoringAbsenDao extends PagingAndSortingRepository> getJadwalPegawai(@Param("idFinger") String idFinger, - @Param("tanggal") String tanggal); + List> getJadwalPegawai(@Param("idFinger") String idFinger, @Param("tanggal") String tanggal); @Query("select new map(shift.kodeExternal as kodeShift, " + "shift.namaShift as namaShift, " + "shift.jamMasuk as jamMasuk, " + "shift.jamPulang as jamPulang, " @@ -71,16 +70,15 @@ public interface MonitoringAbsenDao extends PagingAndSortingRepository> getJadwalPegawai(@Param("idFinger") String idFinger, - @Param("startDate") String startDate, @Param("endDate") String endDate); + List> getJadwalPegawai(@Param("idFinger") String idFinger, @Param("startDate") String startDate, + @Param("endDate") String endDate); @Query("select new map(tanggal.namaHari as namaHari, " + "tanggal.hariKeDlmBulan as hari, " + "tanggal.namaBulan as bulan, " + "tanggal.tahunKalender as tahun, " + "tanggal.hariKeDlmBulan as tgl, " + "tanggal.tanggal as tanggal,to_char(tanggal.tanggal,'yyyy-MM-dd') as tanggal2) " + "from Kalender tanggal " + "where to_char(tanggal.tanggal,'yyyy-MM-dd') between :startDate and :endDate " + "order by tanggal.tanggal asc") - public List> findKalender(@Param("startDate") String startDate, - @Param("endDate") String endDate); + List> findKalender(@Param("startDate") String startDate, @Param("endDate") String endDate); @Query("select new Map(pegawai.nipPns as nip," + "pegawai.namaLengkap as nama," + "pegawai.idFinger as idFinger," + "pegawai.shiftKerjaId as idKelompokShiftKerja," + "jabatan.namaJabatan as jabatanInternal," @@ -99,7 +97,7 @@ public interface MonitoringAbsenDao extends PagingAndSortingRepository> getDataKomponenJadwal(@Param("idPegawai") Integer idPegawai, + List> getDataKomponenJadwal(@Param("idPegawai") Integer idPegawai, @Param("startDate") String startDate, @Param("endDate") String endDate); @Query(" select new map(pegawai.nipPns as nip, pegawai.namaLengkap as nama,shift.kodeExternal as kodeShift, shift.namaShift as namaShift," @@ -116,7 +114,7 @@ public interface MonitoringAbsenDao extends PagingAndSortingRepository findJadwalPegawaiToday(@Param("idFinger") String idFinger, @Param("date") String date); + Map findJadwalPegawaiToday(@Param("idFinger") String idFinger, @Param("date") String date); @Query("select pegawai.id " + "from MapPegawaiJabatanToUnitKerja mapPegawai " + "left join mapPegawai.pegawai pegawai " + "left join pegawai.shiftKerja shiftKerja " @@ -124,7 +122,7 @@ public interface MonitoringAbsenDao extends PagingAndSortingRepository findPegawaiaAktifDanKaryawanByRuangan(@Param("idUnitKerja") Integer idUnitKerja); + List findPegawaiaAktifDanKaryawanByRuangan(@Param("idUnitKerja") Integer idUnitKerja); @Query("select new Map(pegawai.id as idPegawai," + "pegawai.namaLengkap as nama," + "pegawai.nipPns as nipPns," + "golongan.golonganPegawai as namaGolongan," + "jabatanInternal.namaJabatan as jabatanInternal," @@ -137,8 +135,7 @@ public interface MonitoringAbsenDao extends PagingAndSortingRepository> getDataPegawaiaAktifDanKaryawanByRuangan( - @Param("idUnitKerja") Integer idUnitKerja); + List> getDataPegawaiaAktifDanKaryawanByRuangan(@Param("idUnitKerja") Integer idUnitKerja); @Query("select new Map(pegawai.id as id, pegawai.idFinger as idFinger) " + "from MapPegawaiJabatanToUnitKerja mapPegawai " + "left join mapPegawai.pegawai pegawai " @@ -146,7 +143,7 @@ public interface MonitoringAbsenDao extends PagingAndSortingRepository> findPegawaiDanIdFingeraAktifDanKaryawanByRuangan( + List> findPegawaiDanIdFingeraAktifDanKaryawanByRuangan( @Param("idUnitKerja") Integer idUnitKerja); @Query("select new map(pegawai.id as pegawaiId," + "pegawai.nipPns as nip, " + "pegawai.namaLengkap as nama, " @@ -158,7 +155,7 @@ public interface MonitoringAbsenDao extends PagingAndSortingRepository> findPegawaiAktifDanKaryawan(@Param("pegawaiId") Integer idPegawai); + List> findPegawaiAktifDanKaryawan(@Param("pegawaiId") Integer idPegawai); @Query("select pegawai.id " + "from MapPegawaiJabatanToUnitKerja mapPegawai " + "left join mapPegawai.pegawai pegawai " + "left join pegawai.shiftKerja shiftKerja " @@ -166,7 +163,7 @@ public interface MonitoringAbsenDao extends PagingAndSortingRepository findPegawaiAktifDanKaryawanByUnitKerja(@Param("idUnitKerja") Integer idUnitKerja); + List findPegawaiAktifDanKaryawanByUnitKerja(@Param("idUnitKerja") Integer idUnitKerja); @Query("select pegawai.id " + "from MapPegawaiJabatanToUnitKerja mapPegawai " + "left join mapPegawai.pegawai pegawai " + "left join pegawai.shiftKerja shiftKerja " @@ -174,12 +171,12 @@ public interface MonitoringAbsenDao extends PagingAndSortingRepository findPegawaiAktifDanKaryawanByUnitKerjaAndSubUnitKerja( - @Param("idUnitKerja") Integer idUnitKerja, @Param("idSubUnitKerja") Integer idSubUnitKerja); + List findPegawaiAktifDanKaryawanByUnitKerjaAndSubUnitKerja(@Param("idUnitKerja") Integer idUnitKerja, + @Param("idSubUnitKerja") Integer idSubUnitKerja); @Query(" select pegawai.id" + " from Pegawai pegawai" + " left join pegawai.ruangan ruangan" + " where ruangan.id = :ruanganId order by pegawai.nama asc ") - public List findByIdPegawaiByRuangan(@Param("ruanganId") Integer ruanganId); + List findByIdPegawaiByRuangan(@Param("ruanganId") Integer ruanganId); @Query("select new map(shiftKerja.id as idShiftKerja, " + "shiftKerja.namaShift as namaShift, " + "komponenIndex.factorRate as factorRate, " + "komponenIndex.komponenIndex as namaKomponenIndex, " @@ -189,13 +186,13 @@ public interface MonitoringAbsenDao extends PagingAndSortingRepository> findShiftpegawai(@Param("idKelompokShift") Integer idKelompokShift); + List> findShiftpegawai(@Param("idKelompokShift") Integer idKelompokShift); @Query("select new map(kelompokShift.id as idKelompokShift, " + "kelompokShift.name as nama, " + "kelompokShift.operatorFactorRate as headOperatorFactorRate, " + "kelompokShift.factorRate as headFactorRate) " + "from KelompokShift kelompokShift " + "where kelompokShift.id = :idKelompokShift") - public Map findKelompokShiftpegawai(@Param("idKelompokShift") Integer idKelompokShift); + Map findKelompokShiftpegawai(@Param("idKelompokShift") Integer idKelompokShift); @Query("select new map(shiftKerja.id as idShiftKerja, " + "shiftKerja.namaShift as namaShift, " + "shiftKerja.factorRate as factorRate, " + "komponenIndex.komponenIndex as namaKomponenIndex, " @@ -206,7 +203,7 @@ public interface MonitoringAbsenDao extends PagingAndSortingRepository findShiftpegawaiDetail(@Param("idKelompokShift") Integer idKelompokShift, + Map findShiftpegawaiDetail(@Param("idKelompokShift") Integer idKelompokShift, @Param("idShift") Integer idShift); @Query("select new map(shiftKerja.jamMasuk as jamMasuk, " + "shiftKerja.jamPulang as jamPulang, " @@ -216,7 +213,7 @@ public interface MonitoringAbsenDao extends PagingAndSortingRepository findShiftPMDetail(@Param("idKelompokShift") Integer idKelompokShift, + Map findShiftPMDetail(@Param("idKelompokShift") Integer idKelompokShift, @Param("namaShift") String namaShift, @Param("kodeExternal") String kodeExternal); @Query("select distinct new map(pegawaiHistoriRekapIndex.nilaiIndex as nilaiIndex, " @@ -231,8 +228,8 @@ public interface MonitoringAbsenDao extends PagingAndSortingRepository> findKomponenIndex(@Param("tglAwal") String tglAwal, - @Param("tglAkhir") String tglAkhir, @Param("idPegawai") Integer idPegawai); + List> findKomponenIndex(@Param("tglAwal") String tglAwal, @Param("tglAkhir") String tglAkhir, + @Param("idPegawai") Integer idPegawai); @Query("select distinct new map(count(listTanggal.tgl) as nilaiIndex, " + "pegawaiHistoriRekapIndex.nilaiIndex as nilaiIndexPembanding, " @@ -252,8 +249,8 @@ public interface MonitoringAbsenDao extends PagingAndSortingRepository> countKomponenIndex(@Param("tglAwal") String tglAwal, - @Param("tglAkhir") String tglAkhir, @Param("idPegawai") Integer idPegawai); + List> countKomponenIndex(@Param("tglAwal") String tglAwal, @Param("tglAkhir") String tglAkhir, + @Param("idPegawai") Integer idPegawai); @Query("select new map(pegawaiHistoriRekapIndex.nilaiIndex as nilaiIndex, " + "pegawaiHistoriRekapIndex.nilaiIndexTotal as nilaiIndexTotal, " @@ -266,57 +263,56 @@ public interface MonitoringAbsenDao extends PagingAndSortingRepository> findKomponenIndexIjin(@Param("idPegawai") Integer idPegawai, + List> findKomponenIndexIjin(@Param("idPegawai") Integer idPegawai, @Param("tahun") String tahun); @Query("select distinct verifSDM.keteranganlainnya " + "from MonitoringAbsen monitoring " + "join monitoring.strukVerifikasiSdm verifSDM " + "left join monitoring.pegawai pegawai " + "where pegawai.id = :idPegawai and monitoring.tanggal = :tgl ") - public String findLemburVerifiedbySDM(@Param("idPegawai") Integer idPegawai, @Param("tgl") String tgl); + String findLemburVerifiedbySDM(@Param("idPegawai") Integer idPegawai, @Param("tgl") String tgl); - // @Query("select new map(kelompokShift.name as name, " + "kelompokShift.id as id, " + "factoRateKelompokShift.noRec as noRec, " + "factoRateKelompokShift.factorRate as factorRate, " + "factoRateKelompokShift.hari as hari, " + "factoRateKelompokShift.periode as periode) " + "from FactoRateKelompokShift factoRateKelompokShift " + "left join factoRateKelompokShift.kelompokShift kelompokShift " + "where factoRateKelompokShift.factorRate is not null and factoRateKelompokShift.periode = :periode") - public List> findFactorRateIndekkehadiran(@Param("periode") String periode); + List> findFactorRateIndekkehadiran(@Param("periode") String periode); @Query("select new map(komponenIndex.factorRate as factorRate, " + "komponenIndex.operatorFactorRate as operatorFactorRate) " + "from KomponenIndex komponenIndex " + "where komponenIndex.id=12") - public Map findFactorRateTerlambat(); + Map findFactorRateTerlambat(); @Query(" select monitoringAbsen" + " from MonitoringAbsen monitoringAbsen" + " left join monitoringAbsen.pegawai pegawai" + " where pegawai.id = :idPegawai and monitoringAbsen.tanggal = :date") - public MonitoringAbsen findByIdPegawaiAndTanggalMonitoringAbsen(@Param("idPegawai") Integer idPegawai, + MonitoringAbsen findByIdPegawaiAndTanggalMonitoringAbsen(@Param("idPegawai") Integer idPegawai, @Param("date") String date); @Query(" SELECT distinct new Pegawai(pegawai.id,pegawai.namaLengkap) FROM " + " MonitoringAbsen monitoringAbsen" + " LEFT JOIN monitoringAbsen.pegawai pegawai " + " WHERE monitoringAbsen.verifikasiUnitKerjaFK IS NOT NULL " + " AND pegawai.statusPegawai.kdStatusPegawai=2") - public List findPegawaiAktifAndVerifiedByUnitKerja(); + List findPegawaiAktifAndVerifiedByUnitKerja(); @Query(" SELECT new Map(count(monitoringAbsen.verifikasiUnitKerjaFK),monitoringAbsen.verifikasiSdmFK,monitoringAbsen.pegawaiId ) " + " FROM MonitoringAbsen monitoringAbsen " + " WHERE monitoringAbsen.tanggal like :bulan" + " GROUP BY monitoringAbsen.verifikasiSdmFK,monitoringAbsen.pegawaiId ") - public List> findLemburByPeriodApprovedBySdm(@Param("bulan") String bulan); + List> findLemburByPeriodApprovedBySdm(@Param("bulan") String bulan); @Query("SELECT new map(min(model.tanggal) as tglAwal,max(model.tanggal) as tglAkhir) from Kalender model where model.tahunKalender=:tahun and model.namaBulan=:bulan") - public Map findPeriodeKalenderS(@Param("tahun") short tahun, @Param("bulan") String bulan); + Map findPeriodeKalenderS(@Param("tahun") short tahun, @Param("bulan") String bulan); @Query("SELECT distinct model.bulanKeDlmTahun from Kalender model where model.tahunKalender=:tahun and model.namaBulan=:bulan") - public Integer findBulan(@Param("tahun") short tahun, @Param("bulan") String bulan); + Integer findBulan(@Param("tahun") short tahun, @Param("bulan") String bulan); @Query("select new Map(mapPegawai.isMonitoring as isMonitoring, " + "mapPegawai.isPrimary as isPrimary) " + "from MapPegawaiJabatanToUnitKerja mapPegawai " + "left join mapPegawai.pegawai pegawai " + "where mapPegawai.statusEnabled is true " + "and mapPegawai.unitKerjaPegawaiId = :idUnitKerja " + "and mapPegawai.subUnitKerjaPegawaiId = :idSubUnitKerja " + "and mapPegawai.pegawaiId = :idPegawaiLogin " + "and pegawai.kedudukanId not in (:listException) " + "order by pegawai.namaLengkap") - public List> checkAuthMonitoring(@Param("idUnitKerja") Integer idUnitKerja, + List> checkAuthMonitoring(@Param("idUnitKerja") Integer idUnitKerja, @Param("idSubUnitKerja") Integer idSubUnitKerja, @Param("idPegawaiLogin") Integer idPegawaiLogin, @Param("listException") List listException); @@ -326,7 +322,7 @@ public interface MonitoringAbsenDao extends PagingAndSortingRepository> checkAuthMonitoring(@Param("idUnitKerja") Integer idUnitKerja, + List> checkAuthMonitoring(@Param("idUnitKerja") Integer idUnitKerja, @Param("idPegawaiLogin") Integer idPegawaiLogin, @Param("listException") List listException); @Query("select new Map(pegawai.id as id, " + "pegawai.namaLengkap as namaLengkap) " @@ -335,7 +331,7 @@ public interface MonitoringAbsenDao extends PagingAndSortingRepository> getDataPegawaiRev(@Param("idUnitKerja") Integer idUnitKerja, + List> getDataPegawaiRev(@Param("idUnitKerja") Integer idUnitKerja, @Param("idSubUnitKerja") Integer idSubUnitKerja, @Param("idPegawaiLogin") Integer idPegawaiLogin, @Param("listException") List listException); @@ -346,9 +342,20 @@ public interface MonitoringAbsenDao extends PagingAndSortingRepository> getDataPegawaiRev(@Param("idUnitKerja") Integer idUnitKerja, + List> getDataPegawaiRev(@Param("idUnitKerja") Integer idUnitKerja, @Param("idSubUnitKerja") Integer idSubUnitKerja, @Param("listException") List listException); + @Query("select distinct new Map(pegawai.id as id, " + "pegawai.namaLengkap as namaLengkap) " + + "from MapPegawaiJabatanToUnitKerja mapPegawai " + "inner join mapPegawai.jabatan jabatan " + + "left join mapPegawai.pegawai pegawai " + "where mapPegawai.statusEnabled is true " + + "and pegawai.statusEnabled is true " + "and mapPegawai.unitKerjaPegawaiId = :idUnitKerja " + + "and mapPegawai.subUnitKerjaPegawaiId = :idSubUnitKerja " + + "and jabatan.kelompokJabatanId = :kelompokJabatanId " + "and pegawai.kedudukanId not in (:listException) " + + "order by namaLengkap") + List> getDataPegawaiRevByKelompokJabatan(@Param("idUnitKerja") Integer idUnitKerja, + @Param("idSubUnitKerja") Integer idSubUnitKerja, @Param("kelompokJabatanId") Integer idKelompokJabatan, + @Param("listException") List listException); + @Query("select distinct new Map(pegawai.id as id, " + "pegawai.namaLengkap as namaLengkap) " + "from MapPegawaiJabatanToUnitKerja mapPegawai " + "left join mapPegawai.pegawai pegawai " + "where mapPegawai.statusEnabled is true " + "and pegawai.statusEnabled is true " @@ -356,7 +363,7 @@ public interface MonitoringAbsenDao extends PagingAndSortingRepository> getDataPegawaiRev(@Param("idUnitKerja") Integer idUnitKerja, + List> getDataPegawaiRev(@Param("idUnitKerja") Integer idUnitKerja, @Param("listException") List listException); @Query("select distinct new Map(pg.id as id,pg.namaLengkap as namaLengkap) " @@ -366,7 +373,7 @@ public interface MonitoringAbsenDao extends PagingAndSortingRepository> getDataPegawaiDirektur(@Param("idUnitKerja") Integer idUnitKerja, + List> getDataPegawaiDirektur(@Param("idUnitKerja") Integer idUnitKerja, @Param("levelJabatan") Integer levelJabatan, @Param("sublevelJabatan") Integer sublevelJabatan, @Param("listException") List listException); @@ -386,14 +393,14 @@ public interface MonitoringAbsenDao extends PagingAndSortingRepository> getDataPegawaiPresensiSubunitKerja(@Param("unitKerjaId") Integer idUnitKerja, + List> getDataPegawaiPresensiSubunitKerja(@Param("unitKerjaId") Integer idUnitKerja, @Param("subunitKerjaId") Integer idSubunitKerja); @Query(jumPresDP + jumPresDPUnitKerja + sortJumPresDP) - public List> getDataPegawaiPresensiUnitKerja(@Param("unitKerjaId") Integer idUnitKerja); + List> getDataPegawaiPresensiUnitKerja(@Param("unitKerjaId") Integer idUnitKerja); @Query(jumPresDP + jumPresDPPegawai + sortJumPresDP) - public List> getDataPegawaiPresensiPegawai(@Param("pegawaiId") Integer idPegawai); + List> getDataPegawaiPresensiPegawai(@Param("pegawaiId") Integer idPegawai); String jumPresDJb = "select new Map(mj.unitKerjaPegawaiId as unitKerjaId," + "mj.subUnitKerjaPegawaiId as subunitKerjaId," + "mj.pegawaiId as pegawaiId," @@ -410,14 +417,14 @@ public interface MonitoringAbsenDao extends PagingAndSortingRepository> getDataJabatanPresensiSubunitKerja(@Param("unitKerjaId") Integer idUnitKerja, + List> getDataJabatanPresensiSubunitKerja(@Param("unitKerjaId") Integer idUnitKerja, @Param("subunitKerjaId") Integer idSubunitKerja); @Query(jumPresDJb + jumPresDJbUnitKerja + sortJumPresDJb) - public List> getDataJabatanPresensiUnitKerja(@Param("unitKerjaId") Integer idUnitKerja); + List> getDataJabatanPresensiUnitKerja(@Param("unitKerjaId") Integer idUnitKerja); @Query(jumPresDJb + jumPresDJbPegawai + sortJumPresDJb) - public List> getDataJabatanPresensiPegawai(@Param("pegawaiId") Integer idPegawai); + List> getDataJabatanPresensiPegawai(@Param("pegawaiId") Integer idPegawai); String jumPresDJd = "select new Map(kl.tanggal as date," + "mj.unitKerjaPegawaiId as unitKerjaId," + "mj.subUnitKerjaPegawaiId as subunitKerjaId," + "mj.pegawaiId as pegawaiId," + "sk.id as shiftId," @@ -437,25 +444,26 @@ public interface MonitoringAbsenDao extends PagingAndSortingRepository> getDataJadwalPresensiSubunitKerja(@Param("startDate") String startDate, + List> getDataJadwalPresensiSubunitKerja(@Param("startDate") String startDate, @Param("endDate") String endDate, @Param("unitKerjaId") Integer idUnitKerja, @Param("subunitKerjaId") Integer idSubunitKerja); @Query(jumPresDJd + jumPresDJdUnitKerja + sortJumPresDJd) - public List> getDataJadwalPresensiUnitKerja(@Param("startDate") String startDate, + List> getDataJadwalPresensiUnitKerja(@Param("startDate") String startDate, @Param("endDate") String endDate, @Param("unitKerjaId") Integer idUnitKerja); @Query(jumPresDJd + jumPresDJdPegawai + sortJumPresDJd) - public List> getDataJadwalPresensiPegawai(@Param("startDate") String startDate, + List> getDataJadwalPresensiPegawai(@Param("startDate") String startDate, @Param("endDate") String endDate, @Param("pegawaiId") Integer idPegawai); String jumPresHab = "select new Map(kl.tanggal as date," + "mj.unitKerjaPegawaiId as unitKerjaId," + "mj.subUnitKerjaPegawaiId as subunitKerjaId," + "mj.pegawaiId as pegawaiId," + "hab.tr_no as trNo," - + "hab.tr_time as trTime," + "hab.processtatus as procesStatus," + "hab.ip_addr as ipAddr," + "hab.clientIPAddress as client_ip_addr) " - + "from MapPegawaiJabatanToUnitKerja mj, " + "Kalender kl, " + "Habsen hab " + "left join mj.pegawai pg " - + "where kl.tanggal = hab.tr_date " + "and hab.empl_code = pg.idFinger " + "and mj.statusEnabled is true " - + "and pg.statusEnabled is true " + "and pg.idFinger is not null " + "and hab.loc_code = '99999' " - + "and hab.remoteno = '99' " + "and to_char(kl.tanggal,'yyyy-MM-dd') between :startDate and :endDate "; + + "hab.tr_time as trTime," + "hab.processtatus as procesStatus," + "hab.ip_addr as ipAddr," + + "hab.clientIPAddress as client_ip_addr) " + "from MapPegawaiJabatanToUnitKerja mj, " + "Kalender kl, " + + "Habsen hab " + "left join mj.pegawai pg " + "where kl.tanggal = hab.tr_date " + + "and hab.empl_code = pg.idFinger " + "and mj.statusEnabled is true " + "and pg.statusEnabled is true " + + "and pg.idFinger is not null " + "and hab.loc_code = '99999' " + "and hab.remoteno = '99' " + + "and to_char(kl.tanggal,'yyyy-MM-dd') between :startDate and :endDate "; String jumPresHabUnitKerja = "and mj.unitKerjaPegawaiId = :unitKerjaId "; @@ -466,16 +474,16 @@ public interface MonitoringAbsenDao extends PagingAndSortingRepository> getDataPresensiSubunitKerja(@Param("startDate") String startDate, + List> getDataPresensiSubunitKerja(@Param("startDate") String startDate, @Param("endDate") String endDate, @Param("unitKerjaId") Integer idUnitKerja, @Param("subunitKerjaId") Integer idSubunitKerja); @Query(jumPresHab + jumPresHabUnitKerja + sortJumPresHab) - public List> getDataPresensiUnitKerja(@Param("startDate") String startDate, + List> getDataPresensiUnitKerja(@Param("startDate") String startDate, @Param("endDate") String endDate, @Param("unitKerjaId") Integer idUnitKerja); @Query(jumPresHab + jumPresHabPegawai + sortJumPresHab) - public List> getDataPresensiPegawai(@Param("startDate") String startDate, + List> getDataPresensiPegawai(@Param("startDate") String startDate, @Param("endDate") String endDate, @Param("pegawaiId") Integer idPegawai); } diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/MapPegawaiJabatanToUnitKerjaServiceImpl.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/MapPegawaiJabatanToUnitKerjaServiceImpl.java index 3bb946e9..697a2903 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/MapPegawaiJabatanToUnitKerjaServiceImpl.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/MapPegawaiJabatanToUnitKerjaServiceImpl.java @@ -1447,10 +1447,11 @@ public class MapPegawaiJabatanToUnitKerjaServiceImpl extends BaseVoServiceImpl } @Override - public List> getMapSubunitKerjaByUnitPegawai(Integer idPegawai, Integer idUnitKerja) { + public List> getMapSubunitKerjaByUnitPegawai(Integer idPegawaiLogin, Integer idUnitKerja) { int lvlJabatan = 0; + List listIdJabatanKetuaKomiteNakesLain = splitDataSettingDatafixed("idJabatanKetuaKomiteNakesLain"); List> listLevelJabatanAndMonitoring = mapPegawaiJabatanToUnitKerjaDao - .getMappLevelJabatanAndMonitoring(idPegawai, idUnitKerja); + .getMappLevelJabatanAndMonitoring(idPegawaiLogin, idUnitKerja); if (CommonUtil.isNotNullOrEmpty(listLevelJabatanAndMonitoring)) { for (Map mapLj : listLevelJabatanAndMonitoring) { lvlJabatan = Integer.parseInt(mapLj.get("levelJabatan").toString()); @@ -1464,7 +1465,20 @@ public class MapPegawaiJabatanToUnitKerjaServiceImpl extends BaseVoServiceImpl if (lvlJabatan <= 3) { result = subUnitKerjaDao.getSubUnitKerjaCustomByUnitKerja(idUnitKerja); } else { - result = mapPegawaiJabatanToUnitKerjaDao.getMapSubunitKerjaMonitoringByUnitPegawai(idPegawai, idUnitKerja); + result = mapPegawaiJabatanToUnitKerjaDao.getMapSubunitKerjaMonitoringByUnitPegawai(idPegawaiLogin, + idUnitKerja); + } + + if (mapPegawaiJabatanToUnitKerjaDao.existsByPegawaiIdAndJabatanIdIn(idPegawaiLogin, + listIdJabatanKetuaKomiteNakesLain)) { + List> listSubUnitKerjaNakesLain = mapPegawaiJabatanToUnitKerjaDao + .getMapSubunitKerjaMonitoringByKelompokJabatan(idUnitKerja, + PENUNJANG_MEDIK); + List alreadyAdded = result.stream().map(rs -> Integer.parseInt(rs.get("id").toString())) + .collect(Collectors.toList()); + result.addAll(listSubUnitKerjaNakesLain.stream() + .filter(sk -> !alreadyAdded.contains(Integer.parseInt(sk.get("id").toString()))) + .collect(Collectors.toList())); } return result; diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/MonitoringAbsenServiceImpl.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/MonitoringAbsenServiceImpl.java index e472888e..b5ff274c 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/MonitoringAbsenServiceImpl.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/MonitoringAbsenServiceImpl.java @@ -23,6 +23,9 @@ import java.time.Month; import java.time.ZoneId; import java.util.*; import java.util.concurrent.TimeUnit; +import java.util.stream.Collectors; + +import static com.jasamedika.medifirst2000.constants.Master.KelompokJabatan.PENUNJANG_MEDIK; @Service("monitoringAbsenService") public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements MonitoringAbsenService { @@ -4406,8 +4409,13 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon List listIdJabatanKetuaKomiteNakesLain = splitDataSettingDatafixed("idJabatanKetuaKomiteNakesLain"); if (mapPegawaiJabatanToUnitKerjaDao.existsByPegawaiIdAndJabatanIdIn(idPegawaiLogin, listIdJabatanKetuaKomiteNakesLain)) { - result.addAll(monitoringAbsenDao.getDataPegawaiRev(idUnitKerja, idSubUnitKerja, - splitDataSettingDatafixed("idMeninggalKeluarPindah"))); + List alreadyAdded = result.stream().map(rs -> Integer.parseInt(rs.get("id").toString())) + .collect(Collectors.toList()); + List> listPegawaiNakesLain = monitoringAbsenDao.getDataPegawaiRevByKelompokJabatan( + idUnitKerja, idSubUnitKerja, PENUNJANG_MEDIK, splitDataSettingDatafixed("idMeninggalKeluarPindah")); + result.addAll(listPegawaiNakesLain.stream() + .filter(pg -> !alreadyAdded.contains(Integer.parseInt(pg.get("id").toString()))) + .collect(Collectors.toList())); } return result;