Compare commits

...

3 Commits

Author SHA1 Message Date
adesyawal
77eb8f3672 Merge branch 'prod/base' 2026-01-18 09:50:01 +07:00
adesyawal
b7139f2851 Merge remote-tracking branch 'origin/ade/monitoring-absensi/bug-fixing-absen-tunggal' into prod/base 2026-01-18 09:49:38 +07:00
adesyawal
90d511e928 Bug FIxing Absen Tunggal 2026-01-18 09:44:56 +07:00

View File

@ -264,19 +264,23 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon
return result;
}
public Map<String, Object> jamEfektifTunggal(Date jadwalPulang, Date jadwalMasuk, long waktuIstirahat, String shift) {
public Map<String, Object> jamEfektifTunggal(Date jadwalPulang, Date jadwalMasuk, long waktuIstirahat, String shift, float factorRate) {
Map<String, Object> result = new HashMap<>();
String jam_efektif;
long minutes;
Long minutesAbsen = (long) 0;
Long minutesJadwal = (long) 0;
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
}
}
}
minutes = minutesJadwal / 2;
long menit = minutes % 60;// menit
@ -1870,7 +1874,7 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon
if (target.before(twoDaysAgo) || target.equals(twoDaysAgo)) {
absenTunggal++;
Map<String, Object> 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<String, Object> 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,18 +2204,20 @@ 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);
}
}
} catch (ParseException e) {
e.printStackTrace();
}
} 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<String, Object> jamEfektif = new HashMap<>();