From 9e54eac1f52f7ff1e0be8f43ca26f2b517c2e95c Mon Sep 17 00:00:00 2001 From: Salman Manoe Date: Thu, 22 Aug 2024 14:35:14 +0700 Subject: [PATCH] Update service monitoring absensi Penambahan hak akses view ketua komite nakes lain untuk monitoring presensi pegawai --- .../medifirst2000/dao/LogbookKinerjaDao.java | 16 +- .../dao/MapPegawaiJabatanToUnitKerjaDao.java | 11 +- .../medifirst2000/dao/MonitoringAbsenDao.java | 130 +-- ...pPegawaiJabatanToUnitKerjaServiceImpl.java | 51 +- .../impl/MonitoringAbsenServiceImpl.java | 869 ++++++++---------- 5 files changed, 508 insertions(+), 569 deletions(-) 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 b8ce72ec..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 @@ -18,9 +18,13 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.*; +import java.util.stream.Collectors; + +import static com.jasamedika.medifirst2000.constants.Master.KelompokJabatan.PENUNJANG_MEDIK; @Service("MapPegawaiJabatanToUnitKerjaService") -public class MapPegawaiJabatanToUnitKerjaServiceImpl implements MapPegawaiJabatanToUnitKerjaService { +public class MapPegawaiJabatanToUnitKerjaServiceImpl extends BaseVoServiceImpl + implements MapPegawaiJabatanToUnitKerjaService { @Autowired private MappingPegawaiToAtasanService mappingPegawaiToAtasanService; @@ -1412,36 +1416,42 @@ public class MapPegawaiJabatanToUnitKerjaServiceImpl implements MapPegawaiJabata @Override public List> getMapUnitKerjaByPegawai(Integer idPegawai) { boolean isDirektur = false; - int levelJabatan = 0; int sublevelJabatan = 0; + List listIdJabatanKetuaKomiteNakesLain = splitDataSettingDatafixed("idJabatanKetuaKomiteNakesLain"); List> mapLevel = mapPegawaiJabatanToUnitKerjaDao.getMappLevelByPegawai(idPegawai); - for (Map map : mapLevel) { + for (Map map : mapLevel) if (map.get("levelJabatan").equals(Master.Jabatan.LEVEL_DIREKTUR)) { isDirektur = true; levelJabatan = Integer.parseInt(map.get("levelJabatan").toString()); sublevelJabatan = Integer.parseInt(map.get("subLevelJabatan").toString()); break; } - } - List> result = mapPegawaiJabatanToUnitKerjaDao.getMapUnitKerjaByPegawai(idPegawai); - if (isDirektur) { + if (isDirektur) result.addAll(mapPegawaiJabatanToUnitKerjaDao.getMapUnitKerjaByLevelJabatan(levelJabatan, sublevelJabatan)); + if (mapPegawaiJabatanToUnitKerjaDao.existsByPegawaiIdAndJabatanIdIn(idPegawai, + listIdJabatanKetuaKomiteNakesLain)) { + List> listUnitKerja = mapPegawaiJabatanToUnitKerjaDao + .getMapUnitKerjaByKelompokJabatan(PENUNJANG_MEDIK); + List alreadyAdded = result.stream().map(rs -> Integer.parseInt(rs.get("id").toString())) + .collect(Collectors.toList()); + List> unitKerjaNakesLain = listUnitKerja.stream() + .filter(unitKerja -> !alreadyAdded.contains(Integer.parseInt(unitKerja.get("id").toString()))) + .collect(Collectors.toList()); + result.addAll(unitKerjaNakesLain); } - - if (CommonUtil.isNotNullOrEmpty(result)) { + if (CommonUtil.isNotNullOrEmpty(result)) return result; - } else { - return new ArrayList<>(); - } + return new ArrayList<>(); } @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()); @@ -1455,7 +1465,20 @@ public class MapPegawaiJabatanToUnitKerjaServiceImpl implements MapPegawaiJabata 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 5e5bfcfe..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 @@ -1,5 +1,18 @@ package com.jasamedika.medifirst2000.service.impl; +import com.jasamedika.medifirst2000.constants.Master; +import com.jasamedika.medifirst2000.converter.BaseConverterImpl; +import com.jasamedika.medifirst2000.dao.*; +import com.jasamedika.medifirst2000.dao.custom.PegawaiDaoCustom; +import com.jasamedika.medifirst2000.entities.*; +import com.jasamedika.medifirst2000.service.MonitoringAbsenService; +import com.jasamedika.medifirst2000.util.CommonUtil; +import com.jasamedika.medifirst2000.util.StringUtil; +import com.jasamedika.medifirst2000.vo.*; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + import java.math.BigDecimal; import java.math.RoundingMode; import java.text.DateFormat; @@ -8,93 +21,11 @@ import java.text.SimpleDateFormat; import java.time.LocalDateTime; import java.time.Month; import java.time.ZoneId; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.Date; -import java.util.HashMap; -import java.util.HashSet; -import java.util.List; -import java.util.Map; -import java.util.Set; +import java.util.*; import java.util.concurrent.TimeUnit; +import java.util.stream.Collectors; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; - -import com.jasamedika.medifirst2000.constants.Master; -import com.jasamedika.medifirst2000.converter.BaseConverterImpl; -import com.jasamedika.medifirst2000.dao.FactorRateKelompokShiftDao; -import com.jasamedika.medifirst2000.dao.HabsenDao; -import com.jasamedika.medifirst2000.dao.IndekKinerjaDao; -import com.jasamedika.medifirst2000.dao.JabatanDao; -import com.jasamedika.medifirst2000.dao.KalenderDao; -import com.jasamedika.medifirst2000.dao.KelompokTransaksiDao; -import com.jasamedika.medifirst2000.dao.KomponenHargaDao; -import com.jasamedika.medifirst2000.dao.KomponenIndexDao; -import com.jasamedika.medifirst2000.dao.LogbookKinerjaDao; -import com.jasamedika.medifirst2000.dao.LoginUserDao; -import com.jasamedika.medifirst2000.dao.MapPegawaiJabatanToUnitKerjaDao; -import com.jasamedika.medifirst2000.dao.MonitoringAbsenDao; -import com.jasamedika.medifirst2000.dao.PegawaiDao; -import com.jasamedika.medifirst2000.dao.PegawaiHistoriRekapDao; -import com.jasamedika.medifirst2000.dao.PegawaiHistoriRekapGajiDao; -import com.jasamedika.medifirst2000.dao.PegawaiHistoriRekapIndexDao; -import com.jasamedika.medifirst2000.dao.PegawaiJadwalKerjaDao; -import com.jasamedika.medifirst2000.dao.PegawaiSKPajakDao; -import com.jasamedika.medifirst2000.dao.PegawaiStrukturGajiByGolonganDao; -import com.jasamedika.medifirst2000.dao.RuanganDao; -import com.jasamedika.medifirst2000.dao.RunningNumberDao; -import com.jasamedika.medifirst2000.dao.SettingDataFixedDao; -import com.jasamedika.medifirst2000.dao.StrukHistoriDao; -import com.jasamedika.medifirst2000.dao.StrukPelayananDao; -import com.jasamedika.medifirst2000.dao.StrukPelayananDetailDao; -import com.jasamedika.medifirst2000.dao.StrukVerifikasiDao; -import com.jasamedika.medifirst2000.dao.custom.PegawaiDaoCustom; -import com.jasamedika.medifirst2000.entities.FactoRateKelompokShift; -import com.jasamedika.medifirst2000.entities.Habsen; -import com.jasamedika.medifirst2000.entities.JenisGaji; -import com.jasamedika.medifirst2000.entities.KelompokShift; -import com.jasamedika.medifirst2000.entities.KelompokTransaksi; -import com.jasamedika.medifirst2000.entities.KomponenHarga; -import com.jasamedika.medifirst2000.entities.KomponenIndex; -import com.jasamedika.medifirst2000.entities.LogbookKinerja; -import com.jasamedika.medifirst2000.entities.LoginUser; -import com.jasamedika.medifirst2000.entities.MonitoringAbsen; -import com.jasamedika.medifirst2000.entities.Pegawai; -import com.jasamedika.medifirst2000.entities.PegawaiHistoriRekap; -import com.jasamedika.medifirst2000.entities.PegawaiHistoriRekapGaji; -import com.jasamedika.medifirst2000.entities.PegawaiHistoriRekapIndex; -import com.jasamedika.medifirst2000.entities.PegawaiSKPajak; -import com.jasamedika.medifirst2000.entities.PegawaiStrukturGajiByGolongan; -import com.jasamedika.medifirst2000.entities.Ruangan; -import com.jasamedika.medifirst2000.entities.RunningNumber; -import com.jasamedika.medifirst2000.entities.ShiftKerja; -import com.jasamedika.medifirst2000.entities.StrukHistori; -import com.jasamedika.medifirst2000.entities.StrukPelayanan; -import com.jasamedika.medifirst2000.entities.StrukPelayananDetail; -import com.jasamedika.medifirst2000.entities.StrukVerifikasi; -import com.jasamedika.medifirst2000.service.MonitoringAbsenService; -import com.jasamedika.medifirst2000.util.CommonUtil; -import com.jasamedika.medifirst2000.util.StringUtil; -import com.jasamedika.medifirst2000.vo.FactoRateKelompokShiftVO; -import com.jasamedika.medifirst2000.vo.InputLemburSdmCustomVO; -import com.jasamedika.medifirst2000.vo.JenisGajiVO; -import com.jasamedika.medifirst2000.vo.KelompokShiftKerjaCustomVO; -import com.jasamedika.medifirst2000.vo.KelompokShiftVO; -import com.jasamedika.medifirst2000.vo.KelompokTransaksiVO; -import com.jasamedika.medifirst2000.vo.KomponenIndexVO; -import com.jasamedika.medifirst2000.vo.LoginUserVO; -import com.jasamedika.medifirst2000.vo.MonitoringAbsenCustomVO; -import com.jasamedika.medifirst2000.vo.MonitoringAbsenVO; -import com.jasamedika.medifirst2000.vo.PegawaiHistoriRekapIndexVO; -import com.jasamedika.medifirst2000.vo.PegawaiHistoriRekapVO; -import com.jasamedika.medifirst2000.vo.PegawaiVO; -import com.jasamedika.medifirst2000.vo.RuanganVO; -import com.jasamedika.medifirst2000.vo.ShiftKerjaVO; -import com.jasamedika.medifirst2000.vo.StrukHistoriVO; -import com.jasamedika.medifirst2000.vo.StrukVerifikasiVO; -import com.jasamedika.medifirst2000.vo.UangLemburVO; +import static com.jasamedika.medifirst2000.constants.Master.KelompokJabatan.PENUNJANG_MEDIK; @Service("monitoringAbsenService") public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements MonitoringAbsenService { @@ -138,9 +69,6 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon @Autowired private BaseConverterImpl jenisGajiConverter; - @Autowired - private BaseConverterImpl loginUserConverter; - @Autowired private IndekKinerjaDao indekKinerjaDao; @@ -224,15 +152,15 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon @Override public Long reduceTime(Date jamAbsensi, Date jamJadwal) { - Long diffMinutes = (long) 0; + long diffMinutes = 0; if (CommonUtil.isNotNullOrEmpty(jamAbsensi) && CommonUtil.isNotNullOrEmpty(jamJadwal)) { if (jamAbsensi.getTime() > jamJadwal.getTime()) { jamAbsensi.setSeconds(0); jamJadwal.setSeconds(0); - Long diff = jamAbsensi.getTime() - jamJadwal.getTime();// millisecond + long diff = jamAbsensi.getTime() - jamJadwal.getTime();// millisecond diffMinutes = diff / (60 * 1000) % 60; - Long diffHours = diff / (60 * 60 * 1000) % 24; - Long diffDays = diff / (24 * 60 * 60 * 1000); + long diffHours = diff / (60 * 60 * 1000) % 24; + long diffDays = diff / (24 * 60 * 60 * 1000); if (CommonUtil.isNotNullOrEmpty(diffHours)) { diffMinutes += diffHours * 60; if (CommonUtil.isNotNullOrEmpty(diffDays)) { @@ -246,9 +174,9 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon public Map jamEfektif(Date jamAbsensiPulang, Date jamAbsensiMasuk, Date jadwalPulang, Date jadwalMasuk, int idKelompokShift, long waktuIstirahat, String shift) { - Map result = new HashMap(); - String jam_efektif = ""; - Long minutes = (long) 0; + Map result = new HashMap<>(); + String jam_efektif; + long minutes; Long minutesAbsen = (long) 0; Long minutesJadwal = (long) 0; if (CommonUtil.isNotNullOrEmpty(jadwalMasuk) && CommonUtil.isNotNullOrEmpty(jadwalPulang)) { @@ -269,10 +197,10 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon } else { minutes = minutesAbsen; } - Long menit = minutes % 60;// menit + long menit = minutes % 60;// menit Long jam = minutes / 60;// jam - jam_efektif = jam.toString() + "."; - String minute = menit.toString(); + jam_efektif = jam + "."; + String minute = Long.toString(menit); if (minute.length() < 2) { minute = "0" + minute; } @@ -288,7 +216,7 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon } public Map countHariKerja(long minutes, String shift) { - Map result = new HashMap(); + Map result = new HashMap<>(); Integer p1 = 0; Integer pagi = 0; Integer sore = 0; @@ -409,18 +337,18 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon @Transactional(readOnly = true) public List> findKehadiran(Integer idPegawai, String startDate, String endDate) { String idFinger = pegawaiDao.getidFinger(idPegawai); - Map result = new HashMap(); - List> listkehadiran = new ArrayList>(); + Map result = new HashMap<>(); + List> listkehadiran = new ArrayList<>(); Integer harikerja = 0; DateFormat sdf = new SimpleDateFormat("HH.mm"); DateFormat df = new SimpleDateFormat("yyyy-MM-dd"); List> listJadwal = monitoringAbsenDao.findJadwalPegawai(idFinger, startDate, endDate); - Long jumlahJamLemburUnitKerja = (long) 0; - Long jumlahJamLemburUnitSdm = (long) 0; - Date tglRilisFiturPresensi = convertToDateViaInstant(LocalDateTime.of(2020, Month.MAY, 04, 00, 00, 00)); + long jumlahJamLemburUnitKerja = 0; + long jumlahJamLemburUnitSdm = 0; + Date tglRilisFiturPresensi = convertToDateViaInstant(LocalDateTime.of(2020, Month.MAY, 4, 0, 0, 0)); for (Map data : listJadwal) { - Map kehadiran = new HashMap(); + Map kehadiran = new HashMap<>(); Date tanggal = (Date) data.get("tanggal"); String jamMasuk = (String) data.get("jamMasuk"); String jamPulang = (String) data.get("jamPulang"); @@ -454,20 +382,19 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon kehadiran.put("jadwalPulang", jamPulang); kehadiran.put("idFinger", idFinger); - List> listAbsensi = new ArrayList<>(); + List> listAbsensi; if (tanggal.equals(tglRilisFiturPresensi) || tanggal.after(tglRilisFiturPresensi)) { listAbsensi = indekKinerjaDao.findAbsensiAplikasiPegawai(idFinger, tgl); } else { listAbsensi = indekKinerjaDao.findAbsensiPegawai(idFinger, tgl); } - if (CommonUtil.isNotNullOrEmpty(kehadiran.get("namaShift")) - && (((String) kehadiran.get("namaShift")).equals("Malam") - || ((String) kehadiran.get("namaShift")).equals("Pagi Sore Malam"))) { + if (CommonUtil.isNotNullOrEmpty(kehadiran.get("namaShift")) && (kehadiran.get("namaShift").equals("Malam") + || kehadiran.get("namaShift").equals("Pagi Sore Malam"))) { listAbsensi = absensiShiftMalam(idFinger, tanggal, kehadiran.get("namaShift").toString()); } if (CommonUtil.isNotNullOrEmpty(kehadiran.get("namaShift")) - && (((String) kehadiran.get("namaShift")).equals("Libur"))) { + && (kehadiran.get("namaShift").equals("Libur"))) { listAbsensi = this.yesterdayIsMalam(listAbsensi, tanggal, idFinger); } int index = listAbsensi.size(); @@ -548,7 +475,7 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon .parseLong(monitoringAbsen.getStrukVerifikasiSdm().getKeteranganlainnya()); } - Map pegawaiPenanggungJawab = new HashMap(); + Map pegawaiPenanggungJawab = new HashMap<>(); pegawaiPenanggungJawab.put("id", monitoringAbsen.getPegawai().getId()); pegawaiPenanggungJawab.put("namaLengkap", monitoringAbsen.getPegawai().getNamaLengkap()); kehadiran.put("penanggungJawab", pegawaiPenanggungJawab); @@ -591,18 +518,17 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon } catch (ParseException e) { e.printStackTrace(); } - int maxDay = c.getActualMaximum(Calendar.DAY_OF_MONTH); - return maxDay; + return c.getActualMaximum(Calendar.DAY_OF_MONTH); } @Transactional(readOnly = true) public List> absensiShiftMalam(String idFinger, Date tanggal, String namaShift) { - List> result = new ArrayList>(); + List> result = new ArrayList<>(); // get absen masuk pada shift malam String tgl = new SimpleDateFormat("yyyy-MM-dd").format(tanggal); - List> listAbsensi = new ArrayList<>(); - Date tglRilisFiturPresensi = convertToDateViaInstant(LocalDateTime.of(2020, Month.MAY, 04, 00, 00, 00)); + List> listAbsensi; + Date tglRilisFiturPresensi = convertToDateViaInstant(LocalDateTime.of(2020, Month.MAY, 4, 0, 0, 0)); if (tanggal.equals(tglRilisFiturPresensi) || tanggal.after(tglRilisFiturPresensi)) { listAbsensi = indekKinerjaDao.findAbsensiAplikasiPegawai(idFinger, tgl); } else { @@ -611,14 +537,10 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon int index = 0; for (Map data : listAbsensi) { index++; - if (!namaShift.contains("Pagi Sore Malam")) { - if (index == listAbsensi.size()) { - result.add(data); - } - } else if (namaShift.contains("Pagi Sore Malam")) { - if (index == 1) { - result.add(data); - } + if (namaShift.contains("Pagi Sore Malam") && index == 1) { + result.add(data); + } else if (index == listAbsensi.size()) { + result.add(data); } } // get absen pulang pada shift malam @@ -642,11 +564,11 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon } @Override - @Transactional(readOnly = false) + @Transactional public Map saveMonitoring(MonitoringAbsenCustomVO vo) { - Map result = new HashMap(); + Map result = new HashMap<>(); - LoginUser loginuser = loginUserConverter.transferVOToModel(vo.getLoginUser(), new LoginUser()); + LoginUser loginuser; KelompokTransaksi kelompokTransaksi = kelompokTransaksiDao .findById(Integer.parseInt(GetSettingDataFixed("kelompokTransasiLemburAbsensi"))); @@ -750,7 +672,7 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon if (CommonUtil.isNotNullOrEmpty(monitoringAbsen)) { MonitoringAbsen model = monitoringAbsenDao.save(monitoringAbsen); - result.put(model.getNoRec() + "", model.noRec); + result.put(model.getNoRec(), model.noRec); } try { @@ -767,8 +689,8 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon @Override @Transactional(readOnly = true) public Map jumlahKehadiranRev(Integer idPegawai, String startDate, String endDate) { - Map result = new HashMap(); - List> listkehadiran = new ArrayList>(); + Map result = new HashMap<>(); + List> listkehadiran = new ArrayList<>(); DateFormat sdf = new SimpleDateFormat("HH.mm"); DateFormat df = new SimpleDateFormat("yyyy-MM-dd"); @@ -786,16 +708,16 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon Integer dinasLuar = 0; Integer hariKerja = 0; Integer absenTunggal = 0; - Integer jumlahCountTerlambat = 0; - Integer jumlahCountPulangAwal = 0; - Integer jumlahCountKelebihanJamKerja = 0; + int jumlahCountTerlambat = 0; + int jumlahCountPulangAwal = 0; + int jumlahCountKelebihanJamKerja = 0; Long jumlahTerlambat = (long) 0; Long jumlahPulangAwal = (long) 0; Long jumlahJamEfektif = (long) 0; - Long jumlahJamLemburUnitSdm = (long) 0; + long jumlahJamLemburUnitSdm = 0; Long jumlahKelebihanJamKerja = (long) 0; - Long jumlahJamLemburUnitKerja = (long) 0; + long jumlahJamLemburUnitKerja = 0; Map pegawaiMonitoring = pegawaiDao.getPegawaiToMonitoringAbsen(idPegawai); List> listKomponenJadwal = monitoringAbsenDao.findKalender(startDate, endDate); @@ -814,14 +736,14 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon } } - Date tglRilisFiturPresensi = convertToDateViaInstant(LocalDateTime.of(2020, Month.MAY, 04, 00, 00, 00)); + Date tglRilisFiturPresensi = convertToDateViaInstant(LocalDateTime.of(2020, Month.MAY, 4, 0, 0, 0)); for (Map data : listKomponenJadwal) { String alasanCuti = ""; Date jadwalMasuk = null; Date jadwalPulang = null; - Date jam_masuk = null; - Date jam_pulang = null; + Date jam_masuk; + Date jam_pulang; Date tanggal = (Date) data.get("tanggal"); String tgl = df.format(tanggal); @@ -843,13 +765,13 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon } if (CommonUtil.isNotNullOrEmpty(data.get("namaShift"))) { - if (((String) data.get("namaShift")).equals("Izin")) { + if (data.get("namaShift").equals("Izin")) { izin++; } - if (((String) data.get("namaShift")).equals("Sakit")) { + if (data.get("namaShift").equals("Sakit")) { sakit++; } - if (!((String) data.get("namaShift")).equals("Libur")) { + if (!data.get("namaShift").equals("Libur")) { alasanCuti = this.cuti(idPegawai, tgl); } @@ -870,7 +792,7 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon data.put("jadwalPulang", jamPulang); data.put("idFinger", pegawaiMonitoring.get("idFinger").toString()); - List> listAbsensi = new ArrayList<>(); + List> listAbsensi; if (tanggal.equals(tglRilisFiturPresensi) || tanggal.after(tglRilisFiturPresensi)) { listAbsensi = indekKinerjaDao.findAbsensiAplikasiPegawai(pegawaiMonitoring.get("idFinger").toString(), tgl); @@ -880,15 +802,15 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon if (CommonUtil.isNullOrEmpty(listAbsensi) && CommonUtil.isNotNullOrEmpty(jamMasuk) && CommonUtil.isNotNullOrEmpty(jamPulang)) { - if (alasanCuti.equals("")) { + if (alasanCuti.isEmpty()) { mangkir++; } } // Purge abstaint list caused by multiple fingerprinted List> listAbsensiFilter = new ArrayList<>(); - Date checkTime1 = null; - Date checkTime2 = null; + Date checkTime1; + Date checkTime2; Integer batasMultiFingerPrint = Master.MonitoringAbsensi.BATAS_MULTI_FINGERPRINT; try { if (CommonUtil.isNotNullOrEmpty(listAbsensi) && listAbsensi.size() != 1) { @@ -928,22 +850,21 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon e.printStackTrace(); } - if (CommonUtil.isNotNullOrEmpty(data.get("namaShift")) - && ((((String) data.get("namaShift")).equals("Pagi Malam")) - || (((String) data.get("namaShift")).equals("Non Shift MOD")))) { + if (CommonUtil.isNotNullOrEmpty(data.get("namaShift")) && ((data.get("namaShift").equals("Pagi Malam")) + || (data.get("namaShift").equals("Non Shift MOD")))) { try { List> listAbsensiPagi = new ArrayList<>(); List> listAbsensiPM = new ArrayList<>(); - Map detailShiftPMPagi = new HashMap(); - Map detailShiftPMMalam = new HashMap(); + Map detailShiftPMPagi = new HashMap<>(); + Map detailShiftPMMalam = new HashMap<>(); - if ((((String) data.get("namaShift")).equals("Pagi Malam"))) { + if ((data.get("namaShift").equals("Pagi Malam"))) { detailShiftPMPagi = monitoringAbsenDao.findShiftPMDetail( Integer.parseInt(data.get("idKelompokShiftKerja").toString()), "Pagi", "P"); detailShiftPMMalam = monitoringAbsenDao.findShiftPMDetail( Integer.parseInt(data.get("idKelompokShiftKerja").toString()), "Malam", "M"); - } else if ((((String) data.get("namaShift")).equals("Non Shift MOD"))) { + } else if ((data.get("namaShift").equals("Non Shift MOD"))) { if (data.get("namaHari").equals("Senin") || data.get("namaHari").equals("Selasa") || data.get("namaHari").equals("Rabu") || data.get("namaHari").equals("Kamis")) { detailShiftPMPagi = monitoringAbsenDao.findShiftPMDetail( @@ -974,7 +895,7 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon if (listAbsensiFilter.size() == 3) { listAbsensiPagi.add(listAbsensiFilter.get(0)); listAbsensiPagi.add(listAbsensiFilter.get(1)); - } else if (listAbsensiFilter.size() < 3 && listAbsensiFilter.size() > 1) { + } else if (listAbsensiFilter.size() == 2) { long diff = TimeUnit.MILLISECONDS .toMinutes(jam_masuk2PM.getTime() - jam_masuk2PMActual.getTime()); if (Math.abs(diff) < batasMultiFingerPrint) { @@ -982,14 +903,10 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon listAbsensiPagi.add(listAbsensiFilter.get(j)); } } else { - for (int j = 0; j < listAbsensiFilter.size(); j++) { - listAbsensiPagi.add(listAbsensiFilter.get(j)); - } + listAbsensiPagi.addAll(listAbsensiFilter); } } else { - for (int j = 0; j < listAbsensiFilter.size(); j++) { - listAbsensiPagi.add(listAbsensiFilter.get(j)); - } + listAbsensiPagi.addAll(listAbsensiFilter); } } @@ -1020,7 +937,7 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon dataPM.put("waktuIstirahat", waktuIstirahatMalam); } if (CommonUtil.isNotNullOrEmpty(data.get("namaShift")) - && (((String) data.get("namaShift")).equals("Libur"))) { + && (data.get("namaShift").equals("Libur"))) { listAbsensiPM = this.yesterdayIsMalam(listAbsensiPM, tanggal, pegawaiMonitoring.get("idFinger").toString()); } @@ -1031,7 +948,7 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon String jamEf = ""; Long kelebihanJamKerja = (long) 0; - Long terlambat = (long) 0; + Long terlambat; for (Map temp : listAbsensiPM)// jamAbsensi { count++; @@ -1077,7 +994,7 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon pagi += (Integer) jamEfektif.get("pagi"); sore += (Integer) jamEfektif.get("sore"); malam += (Integer) jamEfektif.get("malam"); - dataPM.put("pulangAwal", (long) reduceTime(jadwalPulang, absensiDate)); + dataPM.put("pulangAwal", reduceTime(jadwalPulang, absensiDate)); dataPM.put("pulangCepat", (reduceTime(jadwalPulang, absensiDate)).toString()); jumlahPulangAwal += reduceTime(jadwalPulang, absensiDate); if (reduceTime(jadwalPulang, absensiDate) != 0L) { @@ -1160,13 +1077,10 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon } } else { // shift Malam - if (CommonUtil.isNotNullOrEmpty(data.get("namaShift")) - && (((String) data.get("namaShift")).contains("Malam") - || ((String) data.get("namaShift")).equals("Pagi Sore Malam") - || ((String) data.get("namaShift")).equals("Siang Malam") - || ((String) data.get("namaShift")).equals("Malam Pagi 2") - || ((String) data.get("namaShift")).equals("Malam Pagi") - || ((String) data.get("namaShift")).equals("Malam MOD"))) { + if (CommonUtil.isNotNullOrEmpty(data.get("namaShift")) && (((String) data.get("namaShift")) + .contains("Malam") || data.get("namaShift").equals("Pagi Sore Malam") + || data.get("namaShift").equals("Siang Malam") || data.get("namaShift").equals("Malam Pagi 2") + || data.get("namaShift").equals("Malam Pagi") || data.get("namaShift").equals("Malam MOD"))) { listAbsensiFilter = absensiShiftMalam(pegawaiMonitoring.get("idFinger").toString(), tanggal, data.get("namaShift").toString()); @@ -1175,8 +1089,7 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon c.add(Calendar.DATE, 1); jadwalPulang = c.getTime(); } - if (CommonUtil.isNotNullOrEmpty(data.get("namaShift")) - && (((String) data.get("namaShift")).equals("Libur"))) { + if (CommonUtil.isNotNullOrEmpty(data.get("namaShift")) && (data.get("namaShift").equals("Libur"))) { listAbsensiFilter = this.yesterdayIsMalam(listAbsensiFilter, tanggal, pegawaiMonitoring.get("idFinger").toString()); } @@ -1187,7 +1100,7 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon String jamEf = ""; Long kelebihanJamKerja = (long) 0; - Long terlambat = (long) 0; + Long terlambat; for (Map temp : listAbsensiFilter)// jamAbsensi { count++; @@ -1229,7 +1142,7 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon pagi += (Integer) jamEfektif.get("pagi"); sore += (Integer) jamEfektif.get("sore"); malam += (Integer) jamEfektif.get("malam"); - data.put("pulangAwal", (long) reduceTime(jadwalPulang, absensiDate)); + data.put("pulangAwal", reduceTime(jadwalPulang, absensiDate)); data.put("pulangCepat", (reduceTime(jadwalPulang, absensiDate)).toString()); jumlahPulangAwal += reduceTime(jadwalPulang, absensiDate); if (reduceTime(jadwalPulang, absensiDate) != 0L) { @@ -1339,13 +1252,13 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon public Date addOrMinDays(Long date, Integer param) { Date in = new Date(date); LocalDateTime ldt = LocalDateTime.ofInstant(in.toInstant(), ZoneId.systemDefault()); + LocalDateTime out; if (param < 0) { - LocalDateTime out = ldt.minusDays(Math.abs(param)); - return Date.from(out.atZone(ZoneId.systemDefault()).toInstant()); + out = ldt.minusDays(Math.abs(param)); } else { - LocalDateTime out = ldt.plusDays(param); - return Date.from(out.atZone(ZoneId.systemDefault()).toInstant()); + out = ldt.plusDays(param); } + return Date.from(out.atZone(ZoneId.systemDefault()).toInstant()); } @Override @@ -1353,7 +1266,7 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon public Map jumlahKehadiran(Integer idUnitKerja, Integer idSubunitKerja, Integer idPegawai, Long startDate, Long endDate) { - /** + /* * Unfinished development */ @@ -1366,9 +1279,6 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon List> rawDataPresensi = new ArrayList<>(); DateFormat df = new SimpleDateFormat("yyyy-MM-dd"); - // List listIdShiftMalam = - // splitDataSettingDatafixed("daftarShiftMalam"); - String prevTglAwal = df.format(addOrMinDays(startDate, -1)); String prevTglAkhir = df.format(addOrMinDays(endDate, 1)); if (CommonUtil.isNotNullOrEmpty(idUnitKerja) && CommonUtil.isNotNullOrEmpty(idSubunitKerja) @@ -1448,8 +1358,6 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon data.add(rawMap); } } - } else if (CommonUtil.isNullOrEmpty(rawDataPresensi)) { - } result.put("data", data); @@ -1462,7 +1370,7 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon public Map jumlahKehadiran(Integer unitKerjaId, Integer subUnitKerjaId, Integer idPegawai, String startDate, String endDate) { Map result = new HashMap<>(); - List> listRs = new ArrayList>(); + List> listRs = new ArrayList<>(); List listIdPegawaiFilter = new ArrayList<>(); List listIdPegawai = new ArrayList<>(); @@ -1483,8 +1391,8 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon for (Integer id : listIdPegawaiFilter) { String idFinger = pegawaiDao.getidFinger(id); - Map rsMap = new HashMap(); - List> listkehadiran = new ArrayList>(); + Map rsMap = new HashMap<>(); + List> listkehadiran = new ArrayList<>(); Integer harikerja = 0; Integer mangkir = 0; Integer izin = 0; @@ -1496,17 +1404,17 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon Integer cuti = 0; Integer sakit = 0; Integer absenTunggal = 0; - Integer jumlahCountTerlambat = 0; + int jumlahCountTerlambat = 0; Long jumlahTerlambat = (long) 0; - Integer jumlahCountKelebihanJamKerja = 0; + int jumlahCountKelebihanJamKerja = 0; Long jumlahKelebihanJamKerja = (long) 0; - Integer jumlahCountPulangAwal = 0; + int jumlahCountPulangAwal = 0; Long jumlahPulangAwal = (long) 0; Long jumlahJamEfektif = (long) 0; - Long jumlahJamLemburUnitKerja = (long) 0; - Long jumlahJamLemburUnitSdm = (long) 0; + long jumlahJamLemburUnitKerja = 0; + long jumlahJamLemburUnitSdm = 0; Integer hariKerja = 0; - Date tglRilisFiturPresensi = convertToDateViaInstant(LocalDateTime.of(2020, Month.MAY, 04, 00, 00, 00)); + Date tglRilisFiturPresensi = convertToDateViaInstant(LocalDateTime.of(2020, Month.MAY, 4, 0, 0, 0)); DateFormat sdf = new SimpleDateFormat("HH.mm"); DateFormat df = new SimpleDateFormat("yyyy-MM-dd"); DateFormat stf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); @@ -1547,13 +1455,13 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon + data.get("tahun").toString()); if (CommonUtil.isNotNullOrEmpty(data.get("namaShift"))) { - if (((String) data.get("namaShift")).equals("Izin")) { + if (data.get("namaShift").equals("Izin")) { izin++; } - if (((String) data.get("namaShift")).equals("Sakit")) { + if (data.get("namaShift").equals("Sakit")) { sakit++; } - if (!((String) data.get("namaShift")).equals("Libur")) { + if (!data.get("namaShift").equals("Libur")) { alasanCuti = this.wfh(id, tgl, tanggal, tglRilisFiturPresensi); if (CommonUtil.isNullOrEmpty(alasanCuti)) { alasanCuti = this.cuti(id, tgl); @@ -1563,8 +1471,8 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon Date jadwalPulang = null; Date jadwalMasuk = null; - Date jam_masuk = null; - Date jam_pulang = null; + Date jam_masuk; + Date jam_pulang; if (CommonUtil.isNotNullOrEmpty(jamMasuk) && CommonUtil.isNotNullOrEmpty(jamPulang)) { hariKerja++; try { @@ -1580,7 +1488,7 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon data.put("jadwalPulang", jamPulang); data.put("idFinger", idFinger); - List> listAbsensi = new ArrayList<>(); + List> listAbsensi; if (tanggal.equals(tglRilisFiturPresensi) || tanggal.after(tglRilisFiturPresensi)) { listAbsensi = indekKinerjaDao.findAbsensiAplikasiPegawai(idFinger, tgl); } else { @@ -1589,15 +1497,15 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon if (CommonUtil.isNullOrEmpty(listAbsensi) && CommonUtil.isNotNullOrEmpty(jamMasuk) && CommonUtil.isNotNullOrEmpty(jamPulang)) { - if (alasanCuti.equals("")) { + if (alasanCuti.isEmpty()) { mangkir++; } } // Purge abstaint list caused by multiple fingerprinted List> listAbsensiFilter = new ArrayList<>(); - Date checkTime1 = null; - Date checkTime2 = null; + Date checkTime1; + Date checkTime2; Integer batasMultiFingerPrint = Master.MonitoringAbsensi.BATAS_MULTI_FINGERPRINT; try { if (CommonUtil.isNotNullOrEmpty(listAbsensi) && listAbsensi.size() != 1) { @@ -1638,22 +1546,21 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon e.printStackTrace(); } - if (CommonUtil.isNotNullOrEmpty(data.get("namaShift")) - && ((((String) data.get("namaShift")).equals("Pagi Malam")) - || (((String) data.get("namaShift")).equals("Non Shift MOD")))) { + if (CommonUtil.isNotNullOrEmpty(data.get("namaShift")) && ((data.get("namaShift").equals("Pagi Malam")) + || (data.get("namaShift").equals("Non Shift MOD")))) { try { List> listAbsensiPagi = new ArrayList<>(); List> listAbsensiPM = new ArrayList<>(); - Map detailShiftPMPagi = new HashMap(); - Map detailShiftPMMalam = new HashMap(); + Map detailShiftPMPagi = new HashMap<>(); + Map detailShiftPMMalam = new HashMap<>(); - if ((((String) data.get("namaShift")).equals("Pagi Malam"))) { + if ((data.get("namaShift").equals("Pagi Malam"))) { detailShiftPMPagi = monitoringAbsenDao.findShiftPMDetail( Integer.parseInt(data.get("idKelompokShiftKerja").toString()), "Pagi", "P"); detailShiftPMMalam = monitoringAbsenDao.findShiftPMDetail( Integer.parseInt(data.get("idKelompokShiftKerja").toString()), "Malam", "M"); - } else if ((((String) data.get("namaShift")).equals("Non Shift MOD"))) { + } else if ((data.get("namaShift").equals("Non Shift MOD"))) { if (data.get("namaHari").equals("Senin") || data.get("namaHari").equals("Selasa") || data.get("namaHari").equals("Rabu") || data.get("namaHari").equals("Kamis")) { detailShiftPMPagi = monitoringAbsenDao.findShiftPMDetail( @@ -1687,7 +1594,7 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon if (listAbsensiFilter.size() == 3) { listAbsensiPagi.add(listAbsensiFilter.get(0)); listAbsensiPagi.add(listAbsensiFilter.get(1)); - } else if (listAbsensiFilter.size() < 3 && listAbsensiFilter.size() > 1) { + } else if (listAbsensiFilter.size() == 2) { long diff = TimeUnit.MILLISECONDS .toMinutes(jam_masuk2PM.getTime() - jam_masuk2PMActual.getTime()); if (Math.abs(diff) < batasMultiFingerPrint) { @@ -1695,14 +1602,10 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon listAbsensiPagi.add(listAbsensiFilter.get(j)); } } else { - for (int j = 0; j < listAbsensiFilter.size(); j++) { - listAbsensiPagi.add(listAbsensiFilter.get(j)); - } + listAbsensiPagi.addAll(listAbsensiFilter); } } else { - for (int j = 0; j < listAbsensiFilter.size(); j++) { - listAbsensiPagi.add(listAbsensiFilter.get(j)); - } + listAbsensiPagi.addAll(listAbsensiFilter); } } @@ -1732,7 +1635,7 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon dataPM.put("waktuIstirahat", waktuIstirahatMalam); } if (CommonUtil.isNotNullOrEmpty(data.get("namaShift")) - && (((String) data.get("namaShift")).equals("Libur"))) { + && (data.get("namaShift").equals("Libur"))) { listAbsensiPM = this.yesterdayIsMalam(listAbsensiPM, tanggal, idFinger); } int index = listAbsensiPM.size(); @@ -1742,7 +1645,7 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon String jamEf = ""; Long kelebihanJamKerja = (long) 0; - Long terlambat = (long) 0; + Long terlambat; List listTrNo = new ArrayList<>(); for (Map temp : listAbsensiPM)// jamAbsensi { @@ -1819,7 +1722,7 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon if (CommonUtil.isNotNullOrEmpty(jadwalPulang) && CommonUtil.isNotNullOrEmpty(absensiDate)) { - dataPM.put("pulangAwal", (long) reduceTime(jadwalPulang, absensiDate)); + dataPM.put("pulangAwal", reduceTime(jadwalPulang, absensiDate)); dataPM.put("pulangCepat", (reduceTime(jadwalPulang, absensiDate)).toString()); jumlahPulangAwal += reduceTime(jadwalPulang, absensiDate); if (reduceTime(jadwalPulang, absensiDate) != 0L) { @@ -1961,11 +1864,11 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon // shift Malam if (CommonUtil.isNotNullOrEmpty(data.get("namaShift")) && (((String) data.get("namaShift")).contains("Malam") - || ((String) data.get("namaShift")).equals("Pagi Sore Malam") - || ((String) data.get("namaShift")).equals("Siang Malam") - || ((String) data.get("namaShift")).equals("Malam Pagi 2") - || ((String) data.get("namaShift")).equals("Malam Pagi") - || ((String) data.get("namaShift")).equals("Malam MOD"))) { + || data.get("namaShift").equals("Pagi Sore Malam") + || data.get("namaShift").equals("Siang Malam") + || data.get("namaShift").equals("Malam Pagi 2") + || data.get("namaShift").equals("Malam Pagi") + || data.get("namaShift").equals("Malam MOD"))) { listAbsensiFilter = absensiShiftMalam(idFinger, tanggal, data.get("namaShift").toString()); Calendar c = Calendar.getInstance(); @@ -1973,8 +1876,7 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon c.add(Calendar.DATE, 1); jadwalPulang = c.getTime(); } - if (CommonUtil.isNotNullOrEmpty(data.get("namaShift")) - && (((String) data.get("namaShift")).equals("Libur"))) { + if (CommonUtil.isNotNullOrEmpty(data.get("namaShift")) && (data.get("namaShift").equals("Libur"))) { listAbsensiFilter = this.yesterdayIsMalam(listAbsensiFilter, tanggal, idFinger); } int index = listAbsensiFilter.size(); @@ -1984,7 +1886,7 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon String jamEf = ""; Long kelebihanJamKerja = (long) 0; - Long terlambat = (long) 0; + Long terlambat; List listTrNo = new ArrayList<>(); for (Map temp : listAbsensiFilter)// jamAbsensi { @@ -2055,7 +1957,7 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon } } if (CommonUtil.isNotNullOrEmpty(jadwalPulang) && CommonUtil.isNotNullOrEmpty(absensiDate)) { - data.put("pulangAwal", (long) reduceTime(jadwalPulang, absensiDate)); + data.put("pulangAwal", reduceTime(jadwalPulang, absensiDate)); data.put("pulangCepat", (reduceTime(jadwalPulang, absensiDate)).toString()); jumlahPulangAwal += reduceTime(jadwalPulang, absensiDate); if (reduceTime(jadwalPulang, absensiDate) != 0L) { @@ -2225,8 +2127,8 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon @Override @Transactional(readOnly = true) public Map findKehadiranAllPegawai(String startDate, String endDate) { - Map result = new HashMap(); - List> listkehadiran = new ArrayList>(); + Map result = new HashMap<>(); + List> listkehadiran = new ArrayList<>(); List listId = pegawaiDao.findPegawaiStatusAktifAndKaryawan(); for (Integer idPegawai : listId) { @@ -2240,9 +2142,8 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon @Override @Transactional(readOnly = true) public Map findKehadiranPerPegawai(Integer idPegawai, String startDate, String endDate) { - Map result = new HashMap(); - List> listkehadiran = new ArrayList>(); - listkehadiran = this.findKehadiran(idPegawai, startDate, endDate); + Map result = new HashMap<>(); + List> listkehadiran = this.findKehadiran(idPegawai, startDate, endDate); result.put("listkehadiran", listkehadiran); return result; @@ -2268,7 +2169,7 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon @Transactional(readOnly = true) public String wfh(Integer idPegawai, String tgl, Date tanggal, Date tglRilis) { - List wfh = new ArrayList<>(); + List wfh; if (tanggal.equals(tglRilis) || tanggal.after(tglRilis)) { wfh = habsenDao.getWfhStatusByApp(idPegawai, tgl); } else { @@ -2301,10 +2202,8 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon for (String vpnIPX : vpnIPXList) if (clientIPAddress.startsWith(vpnIPX)) return "T"; - return "Y"; - } else { - return "Y"; } + return "Y"; } } else { return ""; @@ -2312,10 +2211,10 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon } @Override - @Transactional(readOnly = false) + @Transactional public Map rekapitulasiKehadiranByPegawai(Map dataPegawai, String startDate, String endDate) {// cari - Map result = new HashMap(); + Map result = new HashMap<>(); int idKelompokShiftKerja = 0; if (CommonUtil.isNotNullOrEmpty(dataPegawai)) { result.put("jabatanInternal", dataPegawai.get("jabatanInternal")); @@ -2338,12 +2237,12 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon Map jumlahKehadiran = this .jumlahKehadiranRev(Integer.parseInt(dataPegawai.get("idPegawai").toString()), startDate, endDate);// get_kehadiran_terlambat_pulangawal - Integer p1 = 0; + Integer p1; Integer pagi = 0; Integer sore = 0; Integer malam = 0; - Double total = 0.0; - Double p1FR = 0.0; + double total; + Double p1FR; Double pagiFR = 0.0; Double soreFR = 0.0; Double malamFR = 0.0; @@ -2363,8 +2262,8 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon result.put("lembur", getLemburVerifiedbySDM(Integer.parseInt(dataPegawai.get("idPegawai").toString()), listMap.get(0).get("tanggal") + "")); } - result.put("tpc", Long.valueOf(jumlahKehadiran.get("menitTerlambat").toString()) - + Long.valueOf(jumlahKehadiran.get("menitPulangAwal").toString())); + result.put("tpc", Long.parseLong(jumlahKehadiran.get("menitTerlambat").toString()) + + Long.parseLong(jumlahKehadiran.get("menitPulangAwal").toString())); // p1 visible for id kelompok shift 1,2,3(untuk middle ahli gizi) p1 = (Integer) jumlahKehadiran.get("p1"); @@ -2372,9 +2271,9 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon Master.ShiftKerja.FACTOR_RATE_NONSHIFT); if (idKelompokShiftKerja != Master.KelompokShift.NONSHIFT || idKelompokShiftKerja != 0) { - Integer idPagi = 1; - Integer idSiang = 2; - Integer idMalam = 3; + int idPagi = 1; + int idSiang = 2; + int idMalam = 3; if (idKelompokShiftKerja == Master.KelompokShift.NONSHIFT_PLUS) { idPagi = 9; idSiang = 10; @@ -2415,7 +2314,7 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon result.put("malam", malam); } - Map map = new HashMap(); + Map map = new HashMap<>(); List> listKomponen = filterKomponenIndex(startDate, endDate, Integer.parseInt(dataPegawai.get("idPegawai").toString())); @@ -2429,10 +2328,10 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon && (data.get("statusPegawai").equals("Cuti Besar") || data.get("statusPegawai").equals("Cuti Melahirkan"))) { - if ((Integer) data.get("idKomponenIndex") == Master.KomponenIndex.CUTI_NONSHIFT) { + if (data.get("idKomponenIndex") == Master.KomponenIndex.CUTI_NONSHIFT) { map.put("cutiTahunanP1", validateIndex(map.get("cutiTahunanP1"), nilaiIndex)); map.put("cutiTahunan", validateIndex(map.get("cutiTahunan"), nilaiIndex)); - } else if ((Integer) data.get("idKomponenIndex") == Master.KomponenIndex.CUTI_SHIFT) { + } else if (data.get("idKomponenIndex") == Master.KomponenIndex.CUTI_SHIFT) { map.put("cutiTahunanP2", validateIndex(map.get("cutiTahunanP2"), nilaiIndex)); map.put("cutiTahunan", validateIndex(map.get("cutiTahunan"), nilaiIndex)); } else if ((Integer) data.get("idKomponenIndex") == 7) { @@ -2451,12 +2350,12 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon map.put("tugasLuar", validateIndex(map.get("tugasLuar"), nilaiIndex)); } } else { - if ((Integer) data.get("idKomponenIndex") == Master.KomponenIndex.CUTI_NONSHIFT) { + if (data.get("idKomponenIndex") == Master.KomponenIndex.CUTI_NONSHIFT) { map.put("cutiTahunanP1", validateIndex(map.get("cutiTahunanP1"), Integer.parseInt(data.get("nilaiIndex").toString()))); map.put("cutiTahunan", validateIndex(map.get("cutiTahunan"), Integer.parseInt(data.get("nilaiIndex").toString()))); - } else if ((Integer) data.get("idKomponenIndex") == Master.KomponenIndex.CUTI_SHIFT) { + } else if (data.get("idKomponenIndex") == Master.KomponenIndex.CUTI_SHIFT) { map.put("cutiTahunanP2", validateIndex(map.get("cutiTahunanP2"), Integer.parseInt(data.get("nilaiIndex").toString()))); map.put("cutiTahunan", @@ -2511,9 +2410,9 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon } @Override - @Transactional(readOnly = false) + @Transactional public Map rekapitulasiKehadiranByPegawai(Integer idPegawai, String startDate, String endDate) {// cari - Map result = new HashMap(); + Map result = new HashMap<>(); Map pegawai = pegawaiDao.findPegawaiById(idPegawai);// getDatPegawai int idKelompokShiftKerja = 0; if (CommonUtil.isNotNullOrEmpty(pegawai)) { @@ -2534,12 +2433,12 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon periode); result.put("headFactorRate", headFactorRate); Map jumlahKehadiran = this.jumlahKehadiran(null, null, idPegawai, startDate, endDate);// get_kehadiran_terlambat_pulangawal - Integer p1 = 0; + Integer p1; Integer pagi = 0; Integer sore = 0; Integer malam = 0; - Double total = 0.0; - Double p1FR = 0.0; + double total; + Double p1FR; Double pagiFR = 0.0; Double soreFR = 0.0; Double malamFR = 0.0; @@ -2558,8 +2457,8 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon result.put("tanggal", listMap.get(0).get("tanggal")); result.put("lembur", getLemburVerifiedbySDM(idPegawai, listMap.get(0).get("tanggal") + "")); } - result.put("tpc", Long.valueOf(jumlahKehadiran.get("menitTerlambat").toString()) - + Long.valueOf(jumlahKehadiran.get("menitPulangAwal").toString())); + result.put("tpc", Long.parseLong(jumlahKehadiran.get("menitTerlambat").toString()) + + Long.parseLong(jumlahKehadiran.get("menitPulangAwal").toString())); // p1 visible for id kelompok shift 1,2,3(untuk middle ahli gizi) p1 = (Integer) jumlahKehadiran.get("p1"); @@ -2568,9 +2467,9 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon (float) nonShift.get("factorRate")); if (idKelompokShiftKerja != Master.KelompokShift.NONSHIFT || idKelompokShiftKerja != 0) { - Integer idPagi = 1; - Integer idSiang = 2; - Integer idMalam = 3; + int idPagi = 1; + int idSiang = 2; + int idMalam = 3; if (idKelompokShiftKerja == Master.KelompokShift.NONSHIFT_PLUS) { idPagi = 9; @@ -2612,7 +2511,7 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon result.put("malam", malam); } - Map map = new HashMap(); + Map map = new HashMap<>(); List> listKomponen = filterKomponenIndex(startDate, endDate, idPegawai); @@ -2624,10 +2523,10 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon && (data.get("statusPegawai").equals("Cuti Besar") || data.get("statusPegawai").equals("Cuti Melahirkan"))) { - if ((Integer) data.get("idKomponenIndex") == Master.KomponenIndex.CUTI_NONSHIFT) { + if (data.get("idKomponenIndex") == Master.KomponenIndex.CUTI_NONSHIFT) { map.put("cutiTahunanP1", validateIndex(map.get("cutiTahunanP1"), nilaiIndex)); map.put("cutiTahunan", validateIndex(map.get("cutiTahunan"), nilaiIndex)); - } else if ((Integer) data.get("idKomponenIndex") == Master.KomponenIndex.CUTI_SHIFT) { + } else if (data.get("idKomponenIndex") == Master.KomponenIndex.CUTI_SHIFT) { map.put("cutiTahunanP2", validateIndex(map.get("cutiTahunanP2"), nilaiIndex)); map.put("cutiTahunan", validateIndex(map.get("cutiTahunan"), nilaiIndex)); } else if ((Integer) data.get("idKomponenIndex") == 7) { @@ -2646,12 +2545,12 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon map.put("tugasLuar", validateIndex(map.get("tugasLuar"), nilaiIndex)); } } else { - if ((Integer) data.get("idKomponenIndex") == Master.KomponenIndex.CUTI_NONSHIFT) { + if (data.get("idKomponenIndex") == Master.KomponenIndex.CUTI_NONSHIFT) { map.put("cutiTahunanP1", validateIndex(map.get("cutiTahunanP1"), Integer.parseInt(data.get("nilaiIndex").toString()))); map.put("cutiTahunan", validateIndex(map.get("cutiTahunan"), Integer.parseInt(data.get("nilaiIndex").toString()))); - } else if ((Integer) data.get("idKomponenIndex") == Master.KomponenIndex.CUTI_SHIFT) { + } else if (data.get("idKomponenIndex") == Master.KomponenIndex.CUTI_SHIFT) { map.put("cutiTahunanP2", validateIndex(map.get("cutiTahunanP2"), Integer.parseInt(data.get("nilaiIndex").toString()))); map.put("cutiTahunan", @@ -2706,23 +2605,23 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon } @Override - @Transactional(readOnly = false) + @Transactional public Map rekapitulasiIndeksKehadiranByPegawai(Integer idPegawai, String startDate, String endDate) { Map result = this.rekapitulasiKehadiranByPegawai(idPegawai, startDate, endDate); String batasjamLembur = GetSettingDataFixed("batasjamLembur"); String shift = GetSettingDataFixed("idKelompokshiftShift"); - Double total = 0.0; + Double total; if (CommonUtil.isNotNullOrEmpty(result)) { - Double komponenLain = 0.0; + double komponenLain = 0.0; Double p1 = (Double) result.get("p1FR"); Double pagi = (Double) result.get("pagiFR"); Double sore = (Double) result.get("soreFR"); Double malam = (Double) result.get("malamFR"); - Map temp = new HashMap(); + Map temp = new HashMap<>(); List> listKomponen = filterKomponenIndex(startDate, endDate, idPegawai); for (Map data : listKomponen) { if (CommonUtil.isNotNullOrEmpty(data.get("statusPegawai")) @@ -2732,10 +2631,10 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon Double nilaiIndexTotal = Double.parseDouble(day.toString()) * Double.parseDouble(data.get("factorRate").toString()); - if ((Integer) data.get("idKomponenIndex") == getkomponenIndexCutiNonShift()) { + if (data.get("idKomponenIndex") == getkomponenIndexCutiNonShift()) { temp.put("cutiTahunanP1", validateIndexTotal(temp.get("cutiTahunanP1"), nilaiIndexTotal)); komponenLain += nilaiIndexTotal; - } else if ((Integer) data.get("idKomponenIndex") == getkomponenIndexCutiShift()) { + } else if (data.get("idKomponenIndex") == getkomponenIndexCutiShift()) { temp.put("cutiTahunanP2", validateIndexTotal(temp.get("cutiTahunanP2"), nilaiIndexTotal)); komponenLain += nilaiIndexTotal; } else if ((Integer) data.get("idKomponenIndex") == 7) { @@ -2755,10 +2654,10 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon Double nilaiIndexTotal = Double.parseDouble(data.get("nilaiIndex").toString()) * Double.parseDouble(data.get("factorRate").toString()); - if ((Integer) data.get("idKomponenIndex") == getkomponenIndexCutiNonShift()) { + if (data.get("idKomponenIndex") == getkomponenIndexCutiNonShift()) { temp.put("cutiTahunanP1", validateIndexTotal(temp.get("cutiTahunanP1"), nilaiIndexTotal)); komponenLain += nilaiIndexTotal; - } else if ((Integer) data.get("idKomponenIndex") == getkomponenIndexCutiShift()) { + } else if (data.get("idKomponenIndex") == getkomponenIndexCutiShift()) { temp.put("cutiTahunanP2", validateIndexTotal(temp.get("cutiTahunanP2"), nilaiIndexTotal)); komponenLain += nilaiIndexTotal; } else if ((Integer) data.get("idKomponenIndex") == 7) { @@ -2793,10 +2692,10 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon (String) factorRateTerlambat.get("operatorFactorRate"), (Float) factorRateTerlambat.get("factorRate")); // kurangi_pulang_cepat_dan_terlambat - Double tempKomponen = p1 + pagi + sore + malam - nilaiTerlambat; + double tempKomponen = p1 + pagi + sore + malam - nilaiTerlambat; result.put("tpc", nilaiTerlambat); Integer factorRate = (Integer) result.get("headFactorRate"); - Double lembur = 0.0; + double lembur = 0.0; if (CommonUtil.isNotNullOrEmpty(result.get("lemburs"))) { Long jumlahJamLemburSdm = (Long) result.get("lemburs"); lembur += (jumlahJamLemburSdm.doubleValue() / 60); @@ -2814,27 +2713,27 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon if (result.get("idKelompokShiftKerja") == Integer.valueOf(shift) || result.get("idKelompokShiftKerja") == getIdShift2()) { lembur += tempKomponen - factorRate; - if (lembur > Double.valueOf(batasjamLembur)) { - lembur = Double.valueOf(batasjamLembur); + if (lembur > Double.parseDouble(batasjamLembur)) { + lembur = Double.parseDouble(batasjamLembur); } } } result.put("lembur", lembur); - total = getIndexKehadiran(tempKomponen.intValue(), (String) result.get("headOperatorFactorRate"), + total = getIndexKehadiran((int) tempKomponen, (String) result.get("headOperatorFactorRate"), (float) factorRate); if (total >= 0.96) { total = 1.0; } - result.put("P1jam", tempKomponen.intValue()); + result.put("P1jam", (int) tempKomponen); result.put("P1persen", total); } return result; } public Double getIndexKehadiran(Integer nilai, String operator, Float factorRate) { - Double result = 0.0; + double result = 0.0; if (CommonUtil.isNullOrEmpty(nilai)) { nilai = 0; } @@ -2851,27 +2750,26 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon @Override @Transactional(readOnly = true) public List> findFactorRateIndekkehadiran(String periode) { - List> result = monitoringAbsenDao.findFactorRateIndekkehadiran(periode); - return result; + return monitoringAbsenDao.findFactorRateIndekkehadiran(periode); } @Transactional(readOnly = true) private String getRunningNumber(String kegunaan) { RunningNumber runningNumber = runningNumberDao.findByResetAndKegunaan("0", kegunaan); - Integer number = (runningNumber.getNomerTerbaru() + (Integer) 1); + int number = (runningNumber.getNomerTerbaru() + (Integer) 1); runningNumber.setNomerTerbaru(runningNumber.getNomerTerbaru() + (Integer) 1); - String noOrderIntern = StringUtil.formatNumber(number.toString(), 10); + String noOrderIntern = StringUtil.formatNumber(Integer.toString(number), 10); runningNumberDao.save(runningNumber); return noOrderIntern; } @Override - @Transactional(readOnly = false) + @Transactional public Map saveRekapKomponen(StrukHistoriVO vo) { - Map result = new HashMap(); + Map result = new HashMap<>(); if (CommonUtil.isNotNullOrEmpty(vo)) { - Set listPegawaiHistoriRekapIndex = new HashSet(); + Set listPegawaiHistoriRekapIndex = new HashSet<>(); StrukHistori strukHistori = strukHistoriConverter.transferVOToModel(vo, new StrukHistori()); if (CommonUtil.isNotNullOrEmpty(vo.getRuangan())) { @@ -2902,23 +2800,22 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon kelompokTransaksiConverter.transferVOToModel(vo.getKelompokTransaksi(), new KelompokTransaksi())); if (CommonUtil.isNotNullOrEmpty(strukHistori)) { StrukHistori model = strukHistoriDao.save(strukHistori); - result.put(model.getNoRec() + "", model.noRec); + result.put(model.getNoRec(), model.noRec); } } return result; } @Override - @Transactional(readOnly = false) + @Transactional public Map saveTotalIndexRekapitulasiKehadiran(StrukHistoriVO vo) { - Map result = new HashMap(); + Map result = new HashMap<>(); if (CommonUtil.isNotNullOrEmpty(vo)) { SimpleDateFormat df = new SimpleDateFormat("yyyy-MM"); for (PegawaiHistoriRekapVO data : vo.getPegawaiHistoriRekap()) { - PegawaiHistoriRekap pegawaiHistoriRekap = new PegawaiHistoriRekap(); if (CommonUtil.isNotNullOrEmpty(data.getPegawai())) { - pegawaiHistoriRekap = pegawaiHistoriRekapDao.getPegawaiHistoriRekap(df.format(vo.getTglAwal()), - data.getPegawai().getId()); + PegawaiHistoriRekap pegawaiHistoriRekap = pegawaiHistoriRekapDao + .getPegawaiHistoriRekap(df.format(vo.getTglAwal()), data.getPegawai().getId()); if (CommonUtil.isNullOrEmpty(pegawaiHistoriRekap)) { pegawaiHistoriRekap = pegawaiHistoriRekapConverter.transferVOToModel(data, @@ -2940,9 +2837,9 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon } @Override - @Transactional(readOnly = false) + @Transactional public Map saveFactorRate(KelompokShiftKerjaCustomVO vo) { - Map result = new HashMap(); + Map result = new HashMap<>(); if (CommonUtil.isNotNullOrEmpty(vo)) { for (FactoRateKelompokShiftVO data : vo.getFactorRateKelompokShift()) { FactoRateKelompokShift factoRateKelompokShift = factoRateKelompokShiftConverter.transferVOToModel(data, @@ -2956,9 +2853,9 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon factoRateKelompokShift.getPeriode()); String[] splitData = factoRateKelompokShift.getPeriode().split("-"); - Integer periode = Integer.parseInt(splitData[1].replace("0", "")); + int periode = Integer.parseInt(splitData[1].replace("0", "")); String month = new SimpleDateFormat("MM").format(new java.util.Date()); - Integer currentmonth = Integer.parseInt(month.replace("0", "")); + int currentmonth = Integer.parseInt(month.replace("0", "")); if (CommonUtil.isNotNullOrEmpty(temp)) { if (currentmonth < periode) { String noRec = (String) temp.get("noRec"); @@ -2983,13 +2880,13 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon } @Override - @Transactional(readOnly = false) + @Transactional public Map rekapitulasiKehadiranAllPegawai(Integer idPegawai, String startDate, String endDate) { - Map result = new HashMap(); - List> listRekap = new ArrayList>(); + Map result = new HashMap<>(); + List> listRekap = new ArrayList<>(); if (idPegawai != 0) { listRekap.add(this.rekapitulasiKehadiranByPegawai(idPegawai, startDate, endDate)); - } else if (idPegawai == 0) { + } else { List listPegawai = pegawaiDao.findPegawaiStatusAktifAndKaryawan(); for (Integer id : listPegawai) { Map rekap = this.rekapitulasiKehadiranByPegawai(id, startDate, endDate); @@ -3003,10 +2900,10 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon } @Override - @Transactional(readOnly = false) + @Transactional public Map rekapitulasiKehadiranByUnitKerja(Integer idUnitKerja, String startDate, String endDate) { - Map result = new HashMap(); - List> listRekap = new ArrayList>(); + Map result = new HashMap<>(); + List> listRekap = new ArrayList<>(); List listPegawai = monitoringAbsenDao.findPegawaiaAktifDanKaryawanByRuangan(idUnitKerja); for (Integer id : listPegawai) { Map rekap = this.rekapitulasiKehadiranByPegawai(id, startDate, endDate); @@ -3019,11 +2916,11 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon } @Override - @Transactional(readOnly = false) + @Transactional public Map rekapitulasiKehadiranByUnitKerjaRev(Integer idUnitKerja, String startDate, String endDate) { - Map result = new HashMap(); - List> listRekap = new ArrayList>(); + Map result = new HashMap<>(); + List> listRekap = new ArrayList<>(); List> listDataPegawai = monitoringAbsenDao .getDataPegawaiaAktifDanKaryawanByRuangan(idUnitKerja); for (Map dataPegawai : listDataPegawai) { @@ -3037,14 +2934,14 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon } @Override - @Transactional(readOnly = false) + @Transactional public Map rekapitulasiIndexKehadiranAllPegawai(Integer idPegawai, String startDate, String endDate) { - Map result = new HashMap(); - List> listRekap = new ArrayList>(); + Map result = new HashMap<>(); + List> listRekap = new ArrayList<>(); if (idPegawai != 0) { listRekap.add(this.rekapitulasiIndeksKehadiranByPegawai(idPegawai, startDate, endDate)); - } else if (idPegawai == 0) { + } else { List listPegawai = pegawaiDao.findPegawaiStatusAktifAndKaryawan(); for (Integer id : listPegawai) { Map rekap = this.rekapitulasiIndeksKehadiranByPegawai(id, startDate, endDate); @@ -3058,11 +2955,11 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon } @Override - @Transactional(readOnly = false) + @Transactional public Map rekapitulasiIndeksKehadiranByunitKerja(Integer idUnitKerja, String startDate, String endDate) { - Map result = new HashMap(); - List> listRekap = new ArrayList>(); + Map result = new HashMap<>(); + List> listRekap = new ArrayList<>(); List listPegawai = monitoringAbsenDao.findPegawaiaAktifDanKaryawanByRuangan(idUnitKerja); for (Integer id : listPegawai) { Map rekap = this.rekapitulasiIndeksKehadiranByPegawai(id, startDate, endDate); @@ -3076,10 +2973,10 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon // Save monitoring absen untuk sdm per periode @Override - @Transactional(readOnly = false) + @Transactional public Map saveMonitoringVerifikasiSDM(MonitoringAbsenCustomVO vo) { - Map result = new HashMap(); - LoginUser loginuser = null; + Map result = new HashMap<>(); + LoginUser loginuser; String kelompokTransaksiId = GetSettingDataFixed("kelompokTransasiLemburAbsensi"); // set buat lembur KelompokTransaksi kelompokTransaksi = kelompokTransaksiDao.findById(Integer.parseInt(kelompokTransaksiId)); @@ -3163,7 +3060,7 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon if (CommonUtil.isNotNullOrEmpty(monitoringAbsen)) { MonitoringAbsen model = monitoringAbsenDao.save(monitoringAbsen); - result.put(model.getNoRec() + "", model.noRec); + result.put(model.getNoRec(), model.noRec); } } @@ -3173,13 +3070,13 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon } @Override - @Transactional(readOnly = false) + @Transactional public Map jumlahKehadiranLemburKerjaSdm(Integer idPegawai, String startDate, String endDate) { String idFinger = pegawaiDao.getidFinger(idPegawai); - Map result = new HashMap(); - List> listkehadiran = new ArrayList>(); + Map result = new HashMap<>(); + List> listkehadiran = new ArrayList<>(); Integer harikerja = 0; - Integer p1 = 0; + int p1 = 0; Integer pagi = 0; Integer sore = 0; Integer malam = 0; @@ -3188,17 +3085,17 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon Long jumlahKelebihanJamKerja = (long) 0; Long jumlahPulangAwal = (long) 0; Long jumlahJamEfektif = (long) 0; - Long jumlahJamLemburUnitKerja = (long) 0; - Long jumlahJamLemburUnitSdm = (long) 0; + long jumlahJamLemburUnitKerja = 0; + long jumlahJamLemburUnitSdm = 0; DateFormat sdf = new SimpleDateFormat("HH.mm"); DateFormat df = new SimpleDateFormat("yyyy-MM-dd"); List> listJadwal = monitoringAbsenDao.findJadwalPegawai(idFinger, startDate, endDate); Integer jumlahHariKerja = 0; - Integer jumlahJamKerjaDiVerifikasi = 0; - Date tglRilisFiturPresensi = convertToDateViaInstant(LocalDateTime.of(2020, Month.MAY, 04, 00, 00, 00)); + int jumlahJamKerjaDiVerifikasi = 0; + Date tglRilisFiturPresensi = convertToDateViaInstant(LocalDateTime.of(2020, Month.MAY, 4, 0, 0, 0)); for (Map data : listJadwal) { - Map kehadiran = new HashMap(); + Map kehadiran = new HashMap<>(); Date tanggal = (Date) data.get("tanggal"); String jamMasuk = (String) data.get("jamMasuk"); String jamPulang = (String) data.get("jamPulang"); @@ -3230,7 +3127,7 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon kehadiran.put("jadwalPulang", jamPulang); kehadiran.put("idFinger", idFinger); - List> listAbsensi = new ArrayList<>(); + List> listAbsensi; if (tanggal.equals(tglRilisFiturPresensi) || tanggal.after(tglRilisFiturPresensi)) { listAbsensi = indekKinerjaDao.findAbsensiAplikasiPegawai(idFinger, tgl); @@ -3239,9 +3136,8 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon } // shift Malam - if (CommonUtil.isNotNullOrEmpty(kehadiran.get("namaShift")) - && (((String) kehadiran.get("namaShift")).equals("Malam") - || ((String) kehadiran.get("namaShift")).equals("Pagi Sore Malam"))) { + if (CommonUtil.isNotNullOrEmpty(kehadiran.get("namaShift")) && (kehadiran.get("namaShift").equals("Malam") + || kehadiran.get("namaShift").equals("Pagi Sore Malam"))) { listAbsensi = absensiShiftMalam(idFinger, tanggal, kehadiran.get("namaShift").toString()); Calendar c = Calendar.getInstance(); @@ -3279,7 +3175,7 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon } if (((Integer) jamEfektif.get("hariKerja")) != 0) { harikerja += (Integer) jamEfektif.get("hariKerja"); - kehadiran.put("pulangAwal", (long) reduceTime(jadwalPulang, absensiDate)); + kehadiran.put("pulangAwal", reduceTime(jadwalPulang, absensiDate)); kehadiran.put("pulangCepat", (reduceTime(jadwalPulang, absensiDate)).toString()); jumlahPulangAwal += reduceTime(jadwalPulang, absensiDate); if (terlambat > 15) { @@ -3290,18 +3186,18 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon if (CommonUtil.isNotNullOrEmpty(data.get("idKelompokShiftKerja"))) { if ((Integer) data.get("idKelompokShiftKerja") == 2) { - if (((String) data.get("namaShift")).equals("Pagi")) { + if (data.get("namaShift").equals("Pagi")) { pagi++; - } else if (((String) data.get("namaShift")).equals("Siang")) { + } else if (data.get("namaShift").equals("Siang")) { sore++; } } else if ((Integer) data.get("idKelompokShiftKerja") == 3) { - if (((String) data.get("namaShift")).equals("Pagi")) { + if (data.get("namaShift").equals("Pagi")) { pagi++; - } else if (((String) data.get("namaShift")).equals("Siang")) { + } else if (data.get("namaShift").equals("Siang")) { sore++; - } else if (((String) data.get("namaShift")).equals("Malam")) { + } else if (data.get("namaShift").equals("Malam")) { malam++; } @@ -3364,7 +3260,7 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon .parseInt(monitoringAbsen.getStrukVerifikasiSdm().getKeteranganlainnya()); } - Map pegawaiPenanggungJawab = new HashMap(); + Map pegawaiPenanggungJawab = new HashMap<>(); pegawaiPenanggungJawab.put("id", monitoringAbsen.getPegawai().getId()); pegawaiPenanggungJawab.put("namaLengkap", monitoringAbsen.getPegawai().getNamaLengkap()); kehadiran.put("penanggungJawab", pegawaiPenanggungJawab); @@ -3399,11 +3295,11 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon @Transactional @Override public Map saveLemburVerifikasiSdm(InputLemburSdmCustomVO vo) { - Map result = new HashMap(); + Map result = new HashMap<>(); String kelompokTransaksiId = GetSettingDataFixed("kelompokTransasiLemburAbsensi"); // set buat lembur KelompokTransaksi kelompokTransaksi = kelompokTransaksiDao.findById(Integer.parseInt(kelompokTransaksiId)); - LoginUser loginuser = null; + LoginUser loginuser; // find Strukverifikasi Sdm by norec StrukVerifikasi strukVerifikasiSdm = new StrukVerifikasi(); @@ -3442,7 +3338,7 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon if (CommonUtil.isNotNullOrEmpty(monitoringAbsenDb)) { MonitoringAbsen model = monitoringAbsenDao.save(monitoringAbsenDb); - result.put(model.getNoRec() + "", model.noRec); + result.put(model.getNoRec(), model.noRec); } } @@ -3455,8 +3351,7 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon @Override @Transactional(readOnly = true) public List findPegawaiAktifAndVerifiedByUnitKerja(String period) { - List pegawais = pegawaiDaoCustom.findPegawaiAktifAndVerifiedByUnitKerja(period); - return pegawais; + return pegawaiDaoCustom.findPegawaiAktifAndVerifiedByUnitKerja(period); } @Transactional(readOnly = true) @@ -3464,16 +3359,16 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon public String getRunningNumberStrukHistori() { RunningNumber runningNumber = runningNumberDao.findByResetAndKegunaan("0", "Struk Histori"); - Integer number = (runningNumber.getNomerTerbaru() + (Integer) 1); + int number = (runningNumber.getNomerTerbaru() + (Integer) 1); runningNumber.setNomerTerbaru(runningNumber.getNomerTerbaru() + (Integer) 1); - String noOrderIntern = StringUtil.formatNumber(number.toString(), 6); + String noOrderIntern = StringUtil.formatNumber(Integer.toString(number), 6); runningNumberDao.save(runningNumber); return noOrderIntern; } @Override - @Transactional(readOnly = false) + @Transactional public List> findJumlahLembur(String period) { // set_buat_lembur String komponenHargaId = GetSettingDataFixed("komponenHargaId"); @@ -3481,11 +3376,11 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon KomponenHarga komponenHarga = komponenHargaDao.findById(Integer.parseInt(komponenHargaId));// Tarif_Lembur KomponenHarga komponenHargaUangMakan = komponenHargaDao.findById(Integer.parseInt(komponenHargaUangMakanId));// Uang_makan_55 - List> listPegawaiLembur = new ArrayList>(); + List> listPegawaiLembur = new ArrayList<>(); List> kehadirans = pegawaiDaoCustom.findListLemburVerifiedBySdm(period); for (Map kehadiran : kehadirans) { - Map result = new HashMap(); + Map result = new HashMap<>(); result.put("idPegawai", kehadiran.get("pegawaiId").toString()); result.put("totalHariLembur", kehadiran.get("jumlahLembur").toString()); result.put("noRecSdm", kehadiran.get("noRecSdm").toString()); // StrukVerifikasi_dari_SDM @@ -3528,7 +3423,7 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon result.put("tarifLembur", 0); } if (CommonUtil.isNotNullOrEmpty(pegawaiStrukturGajiUangMakanByGolongan)) { - BigDecimal uangMakan = new BigDecimal(pegawaiStrukturGajiUangMakanByGolongan.getHargaSatuan()) + BigDecimal uangMakan = BigDecimal.valueOf(pegawaiStrukturGajiUangMakanByGolongan.getHargaSatuan()) .multiply(new BigDecimal(kehadiran.get("jumlahLembur").toString())); result.put("totalUangMakan", uangMakan); result.put("tarifMakan", pegawaiStrukturGajiUangMakanByGolongan.getHargaSatuan()); @@ -3543,9 +3438,9 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon } @Override - @Transactional(readOnly = false) + @Transactional public Map saveUangLembur(Set vo) { - Map result = new HashMap(); + Map result = new HashMap<>(); for (UangLemburVO uangLemburVO : vo) { String resultSimpan = simpanKeKomponenGaji(uangLemburVO); @@ -3554,11 +3449,11 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon return result; } - @Transactional(readOnly = false) + @Transactional public String simpanKeKomponenGaji(UangLemburVO uangLembur) { Pegawai pegawai = pegawaiDao.findById(uangLembur.getIdPegawai()); - String splitPeriode[] = uangLembur.getPriode().split(" "); + String[] splitPeriode = uangLembur.getPriode().split(" "); Map kalender = monitoringAbsenDao.findPeriodeKalenderS(Short.parseShort(splitPeriode[1]), splitPeriode[0]); Ruangan ruanganSdm = ruanganDao.findById(106);// bagian SDM @@ -3606,7 +3501,7 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon pegawaiHistoriRekapGaji.setKomponenHarga(komponenHarga); pegawaiHistoriRekapGaji.setPegawai(pegawai); pegawaiHistoriRekapGaji.setStrukHistory(strukHistori); - pegawaiHistoriRekapGaji.setHargaSatuan(new BigDecimal(uangLembur.getUangLembur())); + pegawaiHistoriRekapGaji.setHargaSatuan(BigDecimal.valueOf(uangLembur.getUangLembur())); pegawaiHistoriRekapGaji.setQtyKomponenHarga(1); pegawaiHistoriRekapGaji.setNoVerifikasi(uangLembur.getNoStruk()); pegawaiHistoriRekapGaji.setPeriode(uangLembur.getPriode().replace(" ", "-")); // MM-yyyy @@ -3617,7 +3512,7 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon pegawaiHistoriRekapGajiUangMakan.setKomponenHarga(komponenHargaUangMakan); pegawaiHistoriRekapGajiUangMakan.setPegawai(pegawai); pegawaiHistoriRekapGajiUangMakan.setStrukHistory(strukHistori); - pegawaiHistoriRekapGajiUangMakan.setHargaSatuan(new BigDecimal(uangLembur.getUangMakan())); + pegawaiHistoriRekapGajiUangMakan.setHargaSatuan(BigDecimal.valueOf(uangLembur.getUangMakan())); pegawaiHistoriRekapGajiUangMakan.setQtyKomponenHarga(1); // Jumlah_hari_lembur pegawaiHistoriRekapGajiUangMakan.setNoVerifikasi(uangLembur.getNoStruk()); pegawaiHistoriRekapGajiUangMakan.setPeriode(uangLembur.getPriode().replace(" ", "-")); // MM-yyyy @@ -3628,7 +3523,7 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon pegawaiHistoriRekapGajiPph.setKomponenHarga(komponenHarga); pegawaiHistoriRekapGajiPph.setPegawai(pegawai); pegawaiHistoriRekapGajiPph.setStrukHistory(strukHistori); - pegawaiHistoriRekapGajiPph.setHargaSatuan(new BigDecimal(uangLembur.getPph())); + pegawaiHistoriRekapGajiPph.setHargaSatuan(BigDecimal.valueOf(uangLembur.getPph())); pegawaiHistoriRekapGajiPph.setQtyKomponenHarga(1); pegawaiHistoriRekapGajiPph.setNoVerifikasi(uangLembur.getNoStruk()); pegawaiHistoriRekapGajiPph.setPeriode(uangLembur.getPriode().replace(" ", "-")); // MM-yyyy @@ -3639,7 +3534,7 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon pegawaiHistoriRekapGajiKotor.setKomponenHarga(komponenHarga); pegawaiHistoriRekapGajiKotor.setPegawai(pegawai); pegawaiHistoriRekapGajiKotor.setStrukHistory(strukHistori); - pegawaiHistoriRekapGajiKotor.setHargaSatuan(new BigDecimal(uangLembur.getGajiKotor())); + pegawaiHistoriRekapGajiKotor.setHargaSatuan(BigDecimal.valueOf(uangLembur.getGajiKotor())); pegawaiHistoriRekapGajiKotor.setQtyKomponenHarga(1); pegawaiHistoriRekapGajiKotor.setNoVerifikasi(uangLembur.getNoStruk()); pegawaiHistoriRekapGajiKotor.setPeriode(uangLembur.getPriode().replace(" ", "-")); // MM-yyyy @@ -3655,6 +3550,18 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon pegawaiHistoriRekapIndexDao.save(pegawaiHistoriRekapIndex); // Simpan ke struk pelayanan + StrukPelayanan strukPelayanan = getStrukPelayanan(uangLembur, pegawai, kelompokTransaksi); + strukPelayananDao.save(strukPelayanan); + + // StrukPelayanan Details + StrukPelayananDetail strukPelayananDetail = getStrukPelayananDetail(uangLembur, pegawai, strukPelayanan); + strukPelayananDetailDao.save(strukPelayananDetail); + + return strukPelayananDetail.noRec; + } + + private static StrukPelayanan getStrukPelayanan(UangLemburVO uangLembur, Pegawai pegawai, + KelompokTransaksi kelompokTransaksi) { StrukPelayanan strukPelayanan = new StrukPelayanan(); strukPelayanan.setKdruangan(pegawai.getRuangan()); strukPelayanan.setKdkelompoktransaksi(kelompokTransaksi); @@ -3664,60 +3571,60 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon strukPelayanan.setNamapegawaipenerima(pegawai.getNamaLengkap()); strukPelayanan.setTotalharusdibayar(uangLembur.getUangBersih()); strukPelayanan.setTotalpph(uangLembur.getPph()); - strukPelayananDao.save(strukPelayanan); + return strukPelayanan; + } - // StrukPelayanan Details + private static StrukPelayananDetail getStrukPelayananDetail(UangLemburVO uangLembur, Pegawai pegawai, + StrukPelayanan strukPelayanan) { StrukPelayananDetail strukPelayananDetail = new StrukPelayananDetail(); strukPelayananDetail.setKdruanganasal(pegawai.getRuangan()); strukPelayananDetail.setNostruk(strukPelayanan); - strukPelayananDetail.setHargadiscount(new Double(0)); - strukPelayananDetail.setHargadiscountgive(new Double(0)); - strukPelayananDetail.setHargadiscountsave(new Double(0)); + strukPelayananDetail.setHargadiscount((double) 0); + strukPelayananDetail.setHargadiscountgive((double) 0); + strukPelayananDetail.setHargadiscountsave((double) 0); strukPelayananDetail.setHarganetto(uangLembur.getUangBersih()); strukPelayananDetail.setHargapph(uangLembur.getPph()); - strukPelayananDetail.setHargappn(new Double(0)); + strukPelayananDetail.setHargappn((double) 0); strukPelayananDetail.setHargasatuan(uangLembur.getUangBersih()); - strukPelayananDetail.setHargasatuandijamin(new Double(0)); - strukPelayananDetail.setHargasatuanppenjamin(new Double(0)); - strukPelayananDetail.setHargasatuanpprofile(new Double(0)); - strukPelayananDetail.setHargatambahan(new Double(0)); + strukPelayananDetail.setHargasatuandijamin((double) 0); + strukPelayananDetail.setHargasatuanppenjamin((double) 0); + strukPelayananDetail.setHargasatuanpprofile((double) 0); + strukPelayananDetail.setHargatambahan((double) 0); strukPelayananDetail.setIsonsiteservice((byte) 0); - strukPelayananDetail.setPersendiscount(new Double(0)); - strukPelayananDetail.setQtyproduk(new Double(1)); - strukPelayananDetail.setQtyprodukoutext(new Double(1)); - strukPelayananDetail.setQtyprodukoutint(new Double(1)); - strukPelayananDetail.setQtyprodukretur(new Double(1)); + strukPelayananDetail.setPersendiscount((double) 0); + strukPelayananDetail.setQtyproduk(1.0); + strukPelayananDetail.setQtyprodukoutext(1.0); + strukPelayananDetail.setQtyprodukoutint(1.0); + strukPelayananDetail.setQtyprodukretur(1.0); strukPelayananDetail.setSatuan(""); strukPelayananDetail.setTglpelayanan(uangLembur.getTglProses()); - strukPelayananDetailDao.save(strukPelayananDetail); - - return strukPelayananDetail.noRec; + return strukPelayananDetail; } @Override @Transactional(readOnly = true) public Map jumlahKehadiranLemburKerjaSdm(Integer idPegawai, String periode) { - String splitPeriode[] = periode.split("-"); + String[] splitPeriode = periode.split("-"); Map kalender = monitoringAbsenDao.findPeriodeKalenderS(Short.parseShort(splitPeriode[1]), splitPeriode[0]); String idFinger = pegawaiDao.getidFinger(idPegawai); - Map result = new HashMap(); - List> listkehadiran = new ArrayList>(); + Map result = new HashMap<>(); + List> listkehadiran = new ArrayList<>(); Integer harikerja = 0; - Integer p1 = 0; + int p1 = 0; Integer pagi = 0; Integer sore = 0; Integer malam = 0; Integer absenTunggal = 0; - Long jumlahTerlambat = (long) 0; + long jumlahTerlambat = 0; Long jumlahKelebihanJamKerja = (long) 0; Long jumlahPulangAwal = (long) 0; Long jumlahJamEfektif = (long) 0; - Long jumlahJamLemburUnitKerja = (long) 0; - Long jumlahJamLemburUnitSdm = (long) 0; + long jumlahJamLemburUnitKerja = 0; + long jumlahJamLemburUnitSdm = 0; DateFormat sdf = new SimpleDateFormat("HH.mm"); DateFormat df = new SimpleDateFormat("yyyy-MM-dd"); - String tglAwal = "", tglAkhir = ""; + String tglAwal, tglAkhir; tglAwal = kalender.get("tglAwal").toString(); tglAkhir = kalender.get("tglAkhir").toString(); @@ -3726,11 +3633,11 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon tglAkhir.substring(0, 10)); Integer idKelompokShiftKerja = 0; Integer jumlahHariKerja = 0; - Integer jumlahJamKerjaDiVerifikasi = 0; - Date tglRilisFiturPresensi = convertToDateViaInstant(LocalDateTime.of(2020, Month.MAY, 04, 00, 00, 00)); + int jumlahJamKerjaDiVerifikasi = 0; + Date tglRilisFiturPresensi = convertToDateViaInstant(LocalDateTime.of(2020, Month.MAY, 4, 0, 0, 0)); for (Map data : listJadwal) { idKelompokShiftKerja = (Integer) data.get("idKelompokShiftKerja"); - Map kehadiran = new HashMap(); + Map kehadiran = new HashMap<>(); Date tanggal = (Date) data.get("tanggal"); String jamMasuk = (String) data.get("jamMasuk"); String jamPulang = (String) data.get("jamPulang"); @@ -3762,7 +3669,7 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon kehadiran.put("jadwalPulang", jamPulang); kehadiran.put("idFinger", idFinger); - List> listAbsensi = new ArrayList<>(); + List> listAbsensi; if (tanggal.equals(tglRilisFiturPresensi) || tanggal.after(tglRilisFiturPresensi)) { listAbsensi = indekKinerjaDao.findAbsensiAplikasiPegawai(idFinger, tgl); @@ -3771,9 +3678,8 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon } // shift Malam - if (CommonUtil.isNotNullOrEmpty(kehadiran.get("namaShift")) - && (((String) kehadiran.get("namaShift")).equals("Malam") - || ((String) kehadiran.get("namaShift")).equals("Pagi Sore Malam"))) { + if (CommonUtil.isNotNullOrEmpty(kehadiran.get("namaShift")) && (kehadiran.get("namaShift").equals("Malam") + || kehadiran.get("namaShift").equals("Pagi Sore Malam"))) { listAbsensi = absensiShiftMalam(idFinger, tanggal, kehadiran.get("namaShift").toString()); Calendar c = Calendar.getInstance(); @@ -3811,7 +3717,7 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon } if (((Integer) jamEfektif.get("hariKerja")) != 0) { harikerja += (Integer) jamEfektif.get("hariKerja"); - kehadiran.put("pulangAwal", (long) reduceTime(jadwalPulang, absensiDate)); + kehadiran.put("pulangAwal", reduceTime(jadwalPulang, absensiDate)); kehadiran.put("pulangCepat", (reduceTime(jadwalPulang, absensiDate)).toString()); jumlahPulangAwal += reduceTime(jadwalPulang, absensiDate); if (terlambat > 15) { @@ -3821,25 +3727,25 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon } if (CommonUtil.isNotNullOrEmpty(data.get("idKelompokShiftKerja"))) { - if ((Integer) data.get("idKelompokShiftKerja") == getIdNonShiftPlus()) { - if (((String) data.get("namaShift")).equals("Pagi")) { + if (data.get("idKelompokShiftKerja") == getIdNonShiftPlus()) { + if (data.get("namaShift").equals("Pagi")) { pagi++; - } else if (((String) data.get("namaShift")).equals("Siang")) { + } else if (data.get("namaShift").equals("Siang")) { sore++; } kehadiran.put("accKelebihanJamKerjaUnitKerja", kelebihanJamKerja.toString()); - } else if ((Integer) data.get("idKelompokShiftKerja") == getIdShift3()) { - if (((String) data.get("namaShift")).equals("Pagi")) { + } else if (data.get("idKelompokShiftKerja") == getIdShift3()) { + if (data.get("namaShift").equals("Pagi")) { pagi++; - } else if (((String) data.get("namaShift")).equals("Siang")) { + } else if (data.get("namaShift").equals("Siang")) { sore++; - } else if (((String) data.get("namaShift")).equals("Malam")) { + } else if (data.get("namaShift").equals("Malam")) { malam++; } kehadiran.put("accKelebihanJamKerjaUnitKerja", kelebihanJamKerja.toString()); - } else if ((Integer) data.get("idKelompokShiftKerja") == getIdNonShift()) { + } else if (data.get("idKelompokShiftKerja") == getIdNonShift()) { p1 = harikerja; kehadiran.put("accKelebihanJamKerjaUnitKerja", "0"); } @@ -3899,7 +3805,7 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon .parseInt(monitoringAbsen.getStrukVerifikasiSdm().getKeteranganlainnya()); } - Map pegawaiPenanggungJawab = new HashMap(); + Map pegawaiPenanggungJawab = new HashMap<>(); pegawaiPenanggungJawab.put("id", monitoringAbsen.getPegawai().getId()); pegawaiPenanggungJawab.put("namaLengkap", monitoringAbsen.getPegawai().getNamaLengkap()); kehadiran.put("penanggungJawab", pegawaiPenanggungJawab); @@ -3910,7 +3816,7 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon listkehadiran.add(kehadiran); // Hitung jumlah hari kerja berdasarkan jadwal if (CommonUtil.isNotNullOrEmpty(kehadiran.get("namaShift"))) { - Boolean isLibur = ((String) kehadiran.get("namaShift")).equalsIgnoreCase(("Libur")); + boolean isLibur = ((String) kehadiran.get("namaShift")).equalsIgnoreCase(("Libur")); if (!isLibur) { jumlahHariKerja++; } @@ -3944,8 +3850,7 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon @Transactional(readOnly = true) private List> filterKomponenIndex(String startDate, String endDate, Integer idPegawai) { - List> data = monitoringAbsenDao.countKomponenIndex(startDate, endDate, idPegawai); - return data; + return monitoringAbsenDao.countKomponenIndex(startDate, endDate, idPegawai); } private Double validateIndexTotal(Object a, Object b) { @@ -3969,8 +3874,7 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon if (CommonUtil.isNotNullOrEmpty(b)) { varB = (Integer) b; } - Double result = varA + (varB.doubleValue()); - return result; + return varA + (varB.doubleValue()); } @Override @@ -3985,11 +3889,11 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon } @Override - @Transactional(readOnly = false) + @Transactional public Map saveAbsenManual(MonitoringAbsenCustomVO vos) { - Map result = new HashMap(); + Map result = new HashMap<>(); DateFormat df = new SimpleDateFormat("yyyy-MM-dd"); - Date tglRilisFiturPresensi = convertToDateViaInstant(LocalDateTime.of(2020, Month.MAY, 04, 00, 00, 00)); + Date tglRilisFiturPresensi = convertToDateViaInstant(LocalDateTime.of(2020, Month.MAY, 4, 0, 0, 0)); for (MonitoringAbsenVO vo : vos.getMonitoringAbsen()) { if (CommonUtil.isNotNullOrEmpty(vo.getPegawai())) { Pegawai pegawai = pegawaiDao.findById(vo.getPegawai().getId()); @@ -4039,16 +3943,14 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon @Override public List> getByLoc_Code(Integer idPegawai) { - List> result = new ArrayList>(); + List> result = new ArrayList<>(); Pegawai pegawai = pegawaiDao.findById(idPegawai); if (CommonUtil.isNotNullOrEmpty(pegawai)) { List habsens = habsenDao.getByLocCode(pegawai.getIdFinger(), "-1"); for (Habsen habsen : habsens) { try { result.add(habsen.ToMap()); - } catch (IllegalArgumentException e) { - e.printStackTrace(); - } catch (IllegalAccessException e) { + } catch (IllegalArgumentException | IllegalAccessException e) { e.printStackTrace(); } } @@ -4061,7 +3963,7 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon String idFinger) { Calendar cal = Calendar.getInstance(); cal.setTime(date); - cal.add(cal.DATE, -1); + cal.add(Calendar.DATE, -1); Map jadwal = monitoringAbsenDao.findJadwalPegawaiToday(idFinger, new SimpleDateFormat("yyyy-MM-dd").format(cal.getTime())); @@ -4069,11 +3971,10 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon if (CommonUtil.isNotNullOrEmpty(jadwal.get("namaShift"))) { if ((((String) jadwal.get("namaShift")).contains("Malam") - || ((String) jadwal.get("namaShift")).equals("Pagi Sore Malam") - || ((String) jadwal.get("namaShift")).equals("Siang Malam") - || ((String) jadwal.get("namaShift")).equals("Malam Pagi") - || ((String) jadwal.get("namaShift")).equals("Malam Pagi 2") - || ((String) jadwal.get("namaShift")).equals("Malam MOD")) && listAbsensi.size() == 1) { + || jadwal.get("namaShift").equals("Pagi Sore Malam") + || jadwal.get("namaShift").equals("Siang Malam") || jadwal.get("namaShift").equals("Malam Pagi") + || jadwal.get("namaShift").equals("Malam Pagi 2") + || jadwal.get("namaShift").equals("Malam MOD")) && listAbsensi.size() == 1) { listAbsensi.remove(0); } } @@ -4084,10 +3985,10 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon public Map monitoringAbsen(Integer idPegawai, String startDate, String endDate) { String idFinger = pegawaiDao.getidFinger(idPegawai); - Map result = new HashMap(); - List> listkehadiran = new ArrayList>(); + Map result = new HashMap<>(); + List> listkehadiran = new ArrayList<>(); Integer harikerja = 0; - Integer p1 = 0; + int p1 = 0; Integer mangkir = 0; Integer izin = 0; Integer pagi = 0; @@ -4100,14 +4001,14 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon Integer psHK = 0; Integer smHK = 0; Integer absenTunggal = 0; - Long jumlahTerlambat = (long) 0; + long jumlahTerlambat = 0; Long jumlahKelebihanJamKerja = (long) 0; Long jumlahPulangAwal = (long) 0; Long jumlahJamEfektif = (long) 0; - Long jumlahJamLemburUnitKerja = (long) 0; - Long jumlahJamLemburUnitSdm = (long) 0; + long jumlahJamLemburUnitKerja = 0; + long jumlahJamLemburUnitSdm = 0; Integer hariKerja = 0; - Date tglRilisFiturPresensi = convertToDateViaInstant(LocalDateTime.of(2020, Month.MAY, 04, 00, 00, 00)); + Date tglRilisFiturPresensi = convertToDateViaInstant(LocalDateTime.of(2020, Month.MAY, 4, 0, 0, 0)); DateFormat sdf = new SimpleDateFormat("HH.mm"); DateFormat df = new SimpleDateFormat("yyyy-MM-dd"); List> listJadwal = monitoringAbsenDao.findJadwalPegawai(idFinger, startDate, endDate); @@ -4140,7 +4041,7 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon data.put("jadwalPulang", jamPulang); data.put("idFinger", idFinger); - List> listAbsensi = new ArrayList<>(); + List> listAbsensi; if (tanggal.equals(tglRilisFiturPresensi) || tanggal.after(tglRilisFiturPresensi)) { listAbsensi = indekKinerjaDao.findAbsensiAplikasiPegawai(idFinger, tgl); @@ -4153,8 +4054,8 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon mangkir++; } // shift Malam - if (CommonUtil.isNotNullOrEmpty(data.get("namaShift")) && (((String) data.get("namaShift")).equals("Malam") - || ((String) data.get("namaShift")).equals("Pagi Sore Malam"))) { + if (CommonUtil.isNotNullOrEmpty(data.get("namaShift")) + && (data.get("namaShift").equals("Malam") || data.get("namaShift").equals("Pagi Sore Malam"))) { listAbsensi = absensiShiftMalam(idFinger, tanggal, data.get("namaShift").toString()); Calendar c = Calendar.getInstance(); @@ -4162,8 +4063,7 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon c.add(Calendar.DATE, 1); jadwalPulang = c.getTime(); } - if (CommonUtil.isNotNullOrEmpty(data.get("namaShift")) - && (((String) data.get("namaShift")).equals("Libur"))) { + if (CommonUtil.isNotNullOrEmpty(data.get("namaShift")) && (data.get("namaShift").equals("Libur"))) { listAbsensi = this.yesterdayIsMalam(listAbsensi, tanggal, idFinger); } int index = listAbsensi.size(); @@ -4198,7 +4098,7 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon if (((Integer) jamEfektif.get("hariKerja")) != 0) { harikerja += (Integer) jamEfektif.get("hariKerja"); - data.put("pulangAwal", (long) reduceTime(jadwalPulang, absensiDate)); + data.put("pulangAwal", reduceTime(jadwalPulang, absensiDate)); data.put("pulangCepat", (reduceTime(jadwalPulang, absensiDate)).toString()); jumlahPulangAwal += reduceTime(jadwalPulang, absensiDate); if (terlambat > 15) { @@ -4209,28 +4109,28 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon if (CommonUtil.isNotNullOrEmpty(data.get("idKelompokShiftKerja"))) { if ((Integer) data.get("idKelompokShiftKerja") == 2) { - if (((String) data.get("namaShift")).equals("Pagi")) { + if (data.get("namaShift").equals("Pagi")) { pagi++; - } else if (((String) data.get("namaShift")).equals("Siang")) { + } else if (data.get("namaShift").equals("Siang")) { sore++; } // kelebihan_kerja_pegawai_shift_akan_otomatis_menjadi_lembur data.put("accKelebihanJamKerjaUnitKerja", kelebihanJamKerja.toString()); } else if ((Integer) data.get("idKelompokShiftKerja") == 3) { - if (((String) data.get("namaShift")).equals("Pagi")) { + if (data.get("namaShift").equals("Pagi")) { pagi++; - } else if (((String) data.get("namaShift")).equals("Siang")) { + } else if (data.get("namaShift").equals("Siang")) { sore++; - } else if (((String) data.get("namaShift")).equals("Malam")) { + } else if (data.get("namaShift").equals("Malam")) { malam++; - } else if (((String) data.get("namaShift")).equals("Pagi Sore Malam")) { + } else if (data.get("namaShift").equals("Pagi Sore Malam")) { psm++; psmHK += (Integer) jamEfektif.get("hariKerja"); - } else if (((String) data.get("namaShift")).equals("Pagi Sore")) { + } else if (data.get("namaShift").equals("Pagi Sore")) { ps++; psHK += (Integer) jamEfektif.get("hariKerja"); - } else if (((String) data.get("namaShift")).equals("Siang Malam")) { + } else if (data.get("namaShift").equals("Siang Malam")) { sm++; smHK += (Integer) jamEfektif.get("hariKerja"); } @@ -4294,7 +4194,7 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon data.put("norecVerifikasiSdm", monitoringAbsen.getStrukVerifikasiSdm().getNoRec()); } - Map pegawaiPenanggungJawab = new HashMap(); + Map pegawaiPenanggungJawab = new HashMap<>(); pegawaiPenanggungJawab.put("id", monitoringAbsen.getPegawai().getId()); pegawaiPenanggungJawab.put("namaLengkap", monitoringAbsen.getPegawai().getNamaLengkap()); data.put("penanggungJawab", pegawaiPenanggungJawab); @@ -4302,7 +4202,7 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon data.put("jamEfektif", jamEf); data.put("kelebihanJamKerja", kelebihanJamKerja); result.put("jumlahKelebihanJamKerja", jumlahKelebihanJamKerja); - data.put("jumlahTerlambat", jumlahTerlambat.toString()); + data.put("jumlahTerlambat", Long.toString(jumlahTerlambat)); data.put("jumlahJamEfektif", jumlahJamEfektif.toString()); data.put("jumlahPulangAwal", jumlahPulangAwal.toString()); @@ -4335,7 +4235,7 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon @Override public List> findListPenandaTangan() { - List> result = new ArrayList>(); + List> result = new ArrayList<>(); String list = settingDataFixedDao.getSettingDataFixed("listPenandatanganSuratIzinCuti"); String[] lists = list.split(","); for (String id : lists) { @@ -4473,7 +4373,7 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon checkAuthList = monitoringAbsenDao.checkAuthMonitoring(idUnitKerja, idPegawaiLogin, splitDataSettingDatafixed("idMeninggalKeluarPindah")); for (Map checkAuth : checkAuthList) { - if (Integer.valueOf(checkAuth.get("levelJabatan").toString()) <= 4) { + if (Integer.parseInt(checkAuth.get("levelJabatan").toString()) <= 4) { result = monitoringAbsenDao.getDataPegawaiRev(idUnitKerja, idSubUnitKerja, splitDataSettingDatafixed("idMeninggalKeluarPindah")); break; @@ -4485,14 +4385,14 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon } else { // cek_apakah_login_direktur boolean isDirektur = false; - Integer levelJabatan = 0; - Integer sublevelJabatan = 0; + int levelJabatan = 0; + int sublevelJabatan = 0; List> mapLevel = mapPegawaiJabatanToUnitKerjaDao.getMappLevelByPegawai(idPegawaiLogin); for (Map map : mapLevel) { if (map.get("levelJabatan").equals(Master.Jabatan.LEVEL_DIREKTUR)) { isDirektur = true; - levelJabatan = Integer.valueOf(map.get("levelJabatan").toString()); - sublevelJabatan = Integer.valueOf(map.get("subLevelJabatan").toString()); + levelJabatan = Integer.parseInt(map.get("levelJabatan").toString()); + sublevelJabatan = Integer.parseInt(map.get("subLevelJabatan").toString()); break; } } @@ -4506,6 +4406,18 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon } } + List listIdJabatanKetuaKomiteNakesLain = splitDataSettingDatafixed("idJabatanKetuaKomiteNakesLain"); + if (mapPegawaiJabatanToUnitKerjaDao.existsByPegawaiIdAndJabatanIdIn(idPegawaiLogin, + listIdJabatanKetuaKomiteNakesLain)) { + 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; } @@ -4546,7 +4458,7 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon @Override public List> getDataHabsen(String tglAwal, String tglAkhir, Integer idPegawai) { - List> result = new ArrayList<>(); + List> result; DateFormat stf = new SimpleDateFormat("yyyy-MM-dd"); if (CommonUtil.isNotNullOrEmpty(tglAwal) && CommonUtil.isNotNullOrEmpty(tglAkhir) @@ -4571,35 +4483,18 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon if (CommonUtil.isNotNullOrEmpty(vo)) { Date jadwalMasuk = hf.parse(vo.getJadwalmasuk()); Date jadwalPulang = hf.parse(vo.getJadwalPulang()); - Long menitKTarget = reduceTime(jadwalPulang, jadwalMasuk) - vo.getWaktuIstirahat(); + long menitKTarget = reduceTime(jadwalPulang, jadwalMasuk) - vo.getWaktuIstirahat(); if (CommonUtil.isNotNullOrEmpty(vo.getJamEfektif())) { Calendar cal = Calendar.getInstance(); Date jamEfektif = hf.parse(vo.getJamEfektif()); cal.setTime(jamEfektif); - Integer menitEfektif = cal.get(Calendar.HOUR) * 60 + cal.get(Calendar.MINUTE); + int menitEfektif = cal.get(Calendar.HOUR) * 60 + cal.get(Calendar.MINUTE); - menitKCapaian = menitEfektif.doubleValue(); - hariKCapaian = menitKCapaian / menitKTarget.doubleValue(); - } else if (CommonUtil.isNotNullOrEmpty(vo.getAbsensiMasuk()) && vo.getAbsensiPulang().equals("-") - && vo.getPulangAwal().equals(0)) { - // absen tunggal - - Calendar cal1 = Calendar.getInstance(); - cal1.setTime(jadwalMasuk); - int menitJMasuk = cal1.get(Calendar.HOUR) * 60 + cal1.get(Calendar.MINUTE); - - Calendar cal2 = Calendar.getInstance(); - Date PresensiMasuk = hf.parse(vo.getAbsensiMasuk()); - cal2.setTime(PresensiMasuk); - int menitPMasuk = cal2.get(Calendar.HOUR) * 60 + cal2.get(Calendar.MINUTE); - - if (menitPMasuk >= menitJMasuk) { - menitKCapaian = menitKTarget.doubleValue() / 2 - (menitPMasuk - menitJMasuk); - } else if (menitPMasuk < menitJMasuk) { - menitKCapaian = menitKTarget.doubleValue() / 2; - } - hariKCapaian = menitKCapaian / menitKTarget.doubleValue(); + menitKCapaian = (double) menitEfektif; + hariKCapaian = menitKCapaian / (double) menitKTarget; + } else { + CommonUtil.isNotNullOrEmpty(vo.getAbsensiMasuk()); } } @@ -4644,18 +4539,7 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon df.format(vo.getTglPresensi()), Master.IndikatorKinerja.KETEPATAN_KEHADIRAN); for (LogbookKinerja model : models) { - Double capaianTepatHadir = 0.0; - for (LogbookKinerja modelJamKerja : rsModelsJamKerja) { - for (LogbookKinerja modelHariKerja : rsModelsHariKerja) { - if (model.getJabatan().getId().equals(modelJamKerja.getJabatan().getId()) - && model.getJabatan().getId().equals(modelHariKerja.getJabatan().getId()) - && modelJamKerja.getJabatan().getId().equals(modelHariKerja.getJabatan().getId())) { - capaianTepatHadir = ((modelJamKerja.getCapaian() / modelJamKerja.getTarget() * 100) - + (modelHariKerja.getCapaian() / modelHariKerja.getTarget() * 100)) / 2; - break; - } - } - } + double capaianTepatHadir = getCapaianTepatHadir(model, rsModelsJamKerja, rsModelsHariKerja); model.setCapaian(capaianTepatHadir); logbookKinerjaDao.save(model); @@ -4663,4 +4547,21 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon } } + private static double getCapaianTepatHadir(LogbookKinerja model, Iterable rsModelsJamKerja, + Iterable rsModelsHariKerja) { + double capaianTepatHadir = 0.0; + for (LogbookKinerja modelJamKerja : rsModelsJamKerja) { + for (LogbookKinerja modelHariKerja : rsModelsHariKerja) { + if (model.getJabatan().getId().equals(modelJamKerja.getJabatan().getId()) + && model.getJabatan().getId().equals(modelHariKerja.getJabatan().getId()) + && modelJamKerja.getJabatan().getId().equals(modelHariKerja.getJabatan().getId())) { + capaianTepatHadir = ((modelJamKerja.getCapaian() / modelJamKerja.getTarget() * 100) + + (modelHariKerja.getCapaian() / modelHariKerja.getTarget() * 100)) / 2; + break; + } + } + } + return capaianTepatHadir; + } + }