From ab8595de293e52b24b2b03c24fafbe5778013a1d Mon Sep 17 00:00:00 2001 From: adesyawal <52590145+adesyawal@users.noreply.github.com> Date: Mon, 27 Oct 2025 14:30:03 +0700 Subject: [PATCH] Modifikasi Multiple Ampu Unit Kerja --- .../medifirst2000/dao/MonitoringAbsenDao.java | 2 +- .../medifirst2000/dao/ShiftKerjaDao.java | 2 +- ...pPegawaiJabatanToUnitKerjaServiceImpl.java | 26 ++++++++----------- .../impl/MonitoringAbsenServiceImpl.java | 14 ++++------ 4 files changed, 18 insertions(+), 26 deletions(-) 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 178f96ab..762c23fe 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 @@ -371,7 +371,7 @@ public interface MonitoringAbsenDao extends PagingAndSortingRepository> getDataPegawaiDirektur(@Param("idUnitKerja") Integer idUnitKerja, @Param("levelJabatan") Integer levelJabatan, @Param("sublevelJabatan") Integer sublevelJabatan, diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/ShiftKerjaDao.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/ShiftKerjaDao.java index cd5b02cf..04cfaa11 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/ShiftKerjaDao.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/ShiftKerjaDao.java @@ -31,7 +31,7 @@ public interface ShiftKerjaDao extends PagingAndSortingRepository> findByKelompokShiftId(@Param("id") Integer idShift); - + @Query("select new Map(model.factorRate as factorRate, " + "model.flagKetidakhadiran as flagKetidakhadiran, " + "model.id as id, " + "model.jadwalPraktekId as jadwalPraktekId, " + "model.jamBreakAkhir as jamBreakAkhir, " + "model.jamBreakAwal as jamBreakAwal, " 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 467854f4..c9038d18 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 @@ -1278,29 +1278,25 @@ public class MapPegawaiJabatanToUnitKerjaServiceImpl extends BaseVoServiceImpl int sublevelJabatan = 0; List listIdJabatanKetuaKomiteNakesLain = splitDataSettingDatafixed("idJabatanKetuaKomiteNakesLain"); List> mapLevel = mapPegawaiJabatanToUnitKerjaDao.getMappLevelByPegawai(idPegawai); - for (Map map : mapLevel) + List> result = mapPegawaiJabatanToUnitKerjaDao.getMapUnitKerjaByPegawai(idPegawai); + 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; + result.addAll(mapPegawaiJabatanToUnitKerjaDao.getMapUnitKerjaByLevelJabatan(levelJabatan, sublevelJabatan)); } - List> result = mapPegawaiJabatanToUnitKerjaDao.getMapUnitKerjaByPegawai(idPegawai); - 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()); + } + + 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; + } return new ArrayList<>(); } 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 511a63be..6ad1aad6 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 @@ -4474,16 +4474,12 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon isDirektur = true; levelJabatan = Integer.parseInt(map.get("levelJabatan").toString()); sublevelJabatan = Integer.parseInt(map.get("subLevelJabatan").toString()); - break; - } - } - if (isDirektur) { - result = monitoringAbsenDao.getDataPegawaiDirektur(idUnitKerja, levelJabatan, sublevelJabatan, - splitDataSettingDatafixed("idMeninggalKeluarPindah")); - } else if (listPegawaiSDM.contains(idPegawaiLogin)) { - result = monitoringAbsenDao.getDataPegawaiRev(idUnitKerja, idSubUnitKerja, - splitDataSettingDatafixed("idMeninggalKeluarPindah")); + System.out.println("skenario 3 = " + levelJabatan + " | " + sublevelJabatan); + result.addAll(monitoringAbsenDao.getDataPegawaiDirektur(idUnitKerja, levelJabatan, sublevelJabatan, splitDataSettingDatafixed("idMeninggalKeluarPindah"))); + } else if (listPegawaiSDM.contains(idPegawaiLogin)) { + result.addAll(monitoringAbsenDao.getDataPegawaiRev(idUnitKerja, idSubUnitKerja, splitDataSettingDatafixed("idMeninggalKeluarPindah"))); + } } }