From 67a45253b17f9023c815f38393211b8868ff029b Mon Sep 17 00:00:00 2001 From: adesyawal <52590145+adesyawal@users.noreply.github.com> Date: Tue, 6 Jan 2026 08:29:09 +0700 Subject: [PATCH] Bug Fixing Absen Shift PM --- .../impl/MonitoringAbsenServiceImpl.java | 44 ++++++++++--------- .../controller/SdmController.java | 11 ++++- 2 files changed, 33 insertions(+), 22 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 53576870..ff3947df 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 @@ -1654,8 +1654,8 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon e.printStackTrace(); } - if (CommonUtil.isNotNullOrEmpty(data.get("namaShift")) && ((data.get("namaShift").equals("Pagi Malam")) - || (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")))) { + //if (CommonUtil.isNotNullOrEmpty(data.get("namaShift")) && (data.get("namaShift").equals("Non Shift MOD"))) { try { List> listAbsensiPagi = new ArrayList<>(); List> listAbsensiPM = new ArrayList<>(); @@ -1806,11 +1806,11 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon Map jamEfektif = null; if (i == 1) { - //jamEfektif = jamEfektif(absensiDate, absensiMasuk, jadwalPulang, jadwalMasuk, (Integer) data.get("idKelompokShiftKerja"), waktuIstirahatPagi, "Pagi"); - jamEfektif = jamEfektifFactorRate((float) data.get("factorRate"), "Pagi"); + jamEfektif = jamEfektif(absensiDate, absensiMasuk, jadwalPulang, jadwalMasuk, (Integer) data.get("idKelompokShiftKerja"), waktuIstirahatPagi, "Pagi"); + //jamEfektif = jamEfektifFactorRate((float) data.get("factorRate"), "Pagi"); } else if (i == 2) { - //jamEfektif = jamEfektif(absensiDate, absensiMasuk, jadwalPulang, jadwalMasuk, (Integer) data.get("idKelompokShiftKerja"), waktuIstirahatMalam, "Malam"); - jamEfektif = jamEfektifFactorRate((float) data.get("factorRate"), "Malam"); + jamEfektif = jamEfektif(absensiDate, absensiMasuk, jadwalPulang, jadwalMasuk, (Integer) data.get("idKelompokShiftKerja"), waktuIstirahatMalam, "Malam"); + //jamEfektif = jamEfektifFactorRate((float) data.get("factorRate"), "Malam"); } if (CommonUtil.isNotNullOrEmpty(jamEfektif)) { @@ -1890,9 +1890,9 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon data.put("terlambat", "0"); data.put("telat", (long) 0); } - } catch (ParseException e) { + } catch (ParseException e) { e.printStackTrace(); - } + } else if ((CommonUtil.isNotNullOrEmpty(data.get("absensiPulang")) && CommonUtil.isNullOrEmpty(data.get("absensiMasuk"))) && (CommonUtil.isNotNullOrEmpty(jamMasuk) && CommonUtil.isNotNullOrEmpty(jamPulang))) { absenTunggal++; @@ -2018,18 +2018,18 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon dataPM.put("verifikasi", "X"); } } - - data.put("jamEfektif", jamEf); - data.put("jam_efektif", jamEf); - data.put("kelebihanJamKerja", kelebihanJamKerja); + + dataPM.put("jamEfektif", jamEf); //xxx + dataPM.put("jam_efektif", jamEf); //xxx + dataPM.put("kelebihanJamKerja", kelebihanJamKerja); rsMap.put("jumlahCountKelebihanJamKerja", jumlahCountKelebihanJamKerja); rsMap.put("jumlahKelebihanJamKerja", jumlahKelebihanJamKerja / 60); rsMap.put("jumlahKelebihanMenitKerja", jumlahKelebihanJamKerja); - data.put("jumlahTerlambat", jumlahTerlambat.toString()); - data.put("jumlahJamEfektif", jumlahJamEfektif.toString()); - data.put("jumlahPulangAwal", jumlahPulangAwal.toString()); - data.put("alasan", alasanCuti); - listkehadiran.add(data); + dataPM.put("jumlahTerlambat", jumlahTerlambat.toString()); //xxx + dataPM.put("jumlahJamEfektif", jumlahJamEfektif.toString()); //xxx + dataPM.put("jumlahPulangAwal", jumlahPulangAwal.toString()); //xxx + dataPM.put("alasan", alasanCuti); //xxx + listkehadiran.add(dataPM); } rsMap.put("jumlahKelebihanJamKerja", jumlahKelebihanJamKerja / 60); rsMap.put("jumlahKelebihanMenitKerja", jumlahKelebihanJamKerja); @@ -2368,17 +2368,19 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon if (CommonUtil.isNotNullOrEmpty(listkehadiran) && CommonUtil.isNotNullOrEmpty(groupKodeShift)) { if (Arrays.asList(listKetidakhadiran).contains(groupKodeShift)) { - dataShift.put(groupKodeShift, listkehadiran.stream().filter( + long jumlah = listkehadiran.stream().filter( p -> p.containsKey("kodeShift") && groupKodeShift.equals(p.get("kodeShift")) - ).count()); + ).count(); + dataShift.put(groupKodeShift, jumlah); }else{ - dataShift.put(groupKodeShift, listkehadiran.stream().filter( + long jumlah = listkehadiran.stream().filter( p -> p.containsKey("kodeShift") && groupKodeShift.equals(p.get("kodeShift")) && !p.get("absensiMasuk").equals("-") && !p.get("absensiPulang").equals("-") - ).count()); + ).count(); + dataShift.put(groupKodeShift, jumlah); } } } diff --git a/jasamedika-sdm/src/main/java/com/jasamedika/medifirst2000/controller/SdmController.java b/jasamedika-sdm/src/main/java/com/jasamedika/medifirst2000/controller/SdmController.java index 2f73b93d..7d54b01e 100644 --- a/jasamedika-sdm/src/main/java/com/jasamedika/medifirst2000/controller/SdmController.java +++ b/jasamedika-sdm/src/main/java/com/jasamedika/medifirst2000/controller/SdmController.java @@ -2655,7 +2655,16 @@ public class SdmController extends LocaleController { getMessage(MessageResource.LABEL_SUCCESS, request)); return RestUtil.getJsonResponse(result, HttpStatus.OK); } catch (Exception e) { - return RestUtil.getJsonHttptatus(HttpStatus.INTERNAL_SERVER_ERROR); + Map error = new HashMap<>(); + error.put("message", e.getMessage()); + + if (e.getStackTrace() != null && e.getStackTrace().length > 0) { + error.put("line", e.getStackTrace()[0].getLineNumber()); + error.put("class", e.getStackTrace()[0].getClassName()); + error.put("method", e.getStackTrace()[0].getMethodName()); + } + + return RestUtil.getJsonResponse(error, HttpStatus.INTERNAL_SERVER_ERROR); } }