From 90d511e92816fb306e439582f4adce33d39f582b Mon Sep 17 00:00:00 2001 From: adesyawal <52590145+adesyawal@users.noreply.github.com> Date: Sun, 18 Jan 2026 09:44:56 +0700 Subject: [PATCH] Bug FIxing Absen Tunggal --- .../impl/MonitoringAbsenServiceImpl.java | 41 ++++++++++++++----- 1 file changed, 30 insertions(+), 11 deletions(-) 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 dccb01c8..bc2510ff 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 @@ -264,17 +264,21 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon return result; } - public Map jamEfektifTunggal(Date jadwalPulang, Date jadwalMasuk, long waktuIstirahat, String shift) { + public Map jamEfektifTunggal(Date jadwalPulang, Date jadwalMasuk, long waktuIstirahat, String shift, float factorRate) { Map result = new HashMap<>(); String jam_efektif; long minutes; Long minutesAbsen = (long) 0; Long minutesJadwal = (long) 0; - if (CommonUtil.isNotNullOrEmpty(jadwalMasuk) && CommonUtil.isNotNullOrEmpty(jadwalPulang)) { - minutesJadwal = reduceTime(jadwalPulang, jadwalMasuk); - if (minutesJadwal > 30) { - minutesJadwal = minutesJadwal - waktuIstirahat; // 30_adalah_waktu_istirahat + if (CommonUtil.isNotNullOrEmpty(factorRate)) { + minutesJadwal = (long) (factorRate * 60); + }else{ + if (CommonUtil.isNotNullOrEmpty(jadwalMasuk) && CommonUtil.isNotNullOrEmpty(jadwalPulang)) { + minutesJadwal = reduceTime(jadwalPulang, jadwalMasuk); + if (minutesJadwal > 30) { + minutesJadwal = minutesJadwal - waktuIstirahat; // 30_adalah_waktu_istirahat + } } } @@ -1870,7 +1874,7 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon if (target.before(twoDaysAgo) || target.equals(twoDaysAgo)) { absenTunggal++; Map jamEfektif = new HashMap<>(); - jamEfektif = jamEfektifTunggal(jadwalPulang, jadwalMasuk, (long) data.get("waktuIstirahat"), (String) data.get("namaShift")); + jamEfektif = jamEfektifTunggal(jadwalPulang, jadwalMasuk, (long) data.get("waktuIstirahat"), (String) data.get("namaShift"), (float) factorRateX); if (CommonUtil.isNotNullOrEmpty(jamEfektif)) { jamEf = (String) jamEfektif.get("jam_efektif"); @@ -2173,12 +2177,25 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon if (target.before(twoDaysAgo) || target.equals(twoDaysAgo)) { absenTunggal++; Map jamEfektif = new HashMap<>(); - jamEfektif = jamEfektifTunggal(jadwalPulang, jadwalMasuk, (long) data.get("waktuIstirahat"), (String) data.get("namaShift")); + jamEfektif = jamEfektifTunggal(jadwalPulang, jadwalMasuk, (long) data.get("waktuIstirahat"), (String) data.get("namaShift"), (float) factorRateX); if (CommonUtil.isNotNullOrEmpty(jamEfektif)) { jamEf = (String) jamEfektif.get("jam_efektif"); jumlahJamEfektif += (Long) jamEfektif.get("Minutes_Efektif"); + if (count == 1) { + if ( CommonUtil.isNotNullOrEmpty(data.get("terlambat"))) { + jumlahTerlambat -= (long) data.get("terlambat"); + jumlahCountTerlambat -= 1; + data.put("terlambat", "0"); + data.put("telat", (long) 0); + } + }else{ + jumlahTerlambat += (long) 0; + data.put("terlambat", "0"); + data.put("telat", (long) 0); + } + if (((Integer) jamEfektif.get("hariKerja")) != 0) { harikerja += (Integer) jamEfektif.get("hariKerja"); p1 += (Integer) jamEfektif.get("p1"); @@ -2187,11 +2204,11 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon malam += (Integer) jamEfektif.get("malam"); data.putAll(jamEfektif); } + }else{ + jumlahTerlambat += (long) 0; + data.put("terlambat", "0"); + data.put("telat", (long) 0); } - - jumlahTerlambat += (long) 0; - data.put("terlambat", "0"); - data.put("telat", (long) 0); } } catch (ParseException e) { e.printStackTrace(); @@ -2199,6 +2216,8 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon } else if ((CommonUtil.isNotNullOrEmpty(data.get("absensiPulang")) && CommonUtil.isNullOrEmpty(data.get("absensiMasuk"))) && (CommonUtil.isNotNullOrEmpty(jamMasuk) && CommonUtil.isNotNullOrEmpty(jamPulang))) { absenTunggal++; + + System.out.print("terlambat 2"); } else if ( CommonUtil.isNotNullOrEmpty(data.get("factorRate")) && factorRateX > 0.0 && Arrays.asList(listKetidakhadiran).contains(data.get("kodeShift")) ) { //System.out.print("Ini Gua Cuti 123"); Map jamEfektif = new HashMap<>();