From fb3fec5fdad31a15758f98b9472fb57365bba1c2 Mon Sep 17 00:00:00 2001 From: Salman Manoe Date: Wed, 19 Mar 2025 10:02:47 +0700 Subject: [PATCH] Update service monitoring absensi Penerapan informasi untuk laporan kehadian BPK --- .../medifirst2000/dao/PegawaiDao.java | 15 +++++++++ .../impl/MonitoringAbsenServiceImpl.java | 9 +++++- .../medifirst2000/dto/PegawaiStatusDto.java | 32 +++++++++++++++++++ 3 files changed, 55 insertions(+), 1 deletion(-) create mode 100644 jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/dto/PegawaiStatusDto.java diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/PegawaiDao.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/PegawaiDao.java index b1c8779f..9a365136 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/PegawaiDao.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/PegawaiDao.java @@ -1,5 +1,6 @@ package com.jasamedika.medifirst2000.dao; +import com.jasamedika.medifirst2000.dto.PegawaiStatusDto; import com.jasamedika.medifirst2000.entities.Jabatan; import com.jasamedika.medifirst2000.entities.Pegawai; import com.jasamedika.medifirst2000.vo.PegawaiVO; @@ -1051,4 +1052,18 @@ public interface PegawaiDao extends JpaRepository, JpaSpecific + "and pg.objectjenispegawaifk = 1 " + "and pg.idfinger is not null " + "and pg.idfinger <> '9999999' " + "and pg.idfinger <> '' " + "order by cast(pg.idfinger as int)", nativeQuery = true) List findLabelFaceByJenisPegawaiDokter(); + + @Query("select new com.jasamedika.medifirst2000.dto.PegawaiStatusDto(" + + "pg.idFinger as idFinger," + + "kp.kategoryPegawai as kategori," + + "pk.namaPangkat as pangkat," + + "gp.golonganPegawai as golongan," + + "pg.tglMasuk as tmtMasuk," + + "pg.tglPensiun as tmtPensiun) " + + "from Pegawai pg " + + "left join pg.kategoryPegawai kp " + + "left join pg.pangkat pk " + + "left join pk.kdGolonganPegawai gp " + + "where pg.id = :pegawaiId") + PegawaiStatusDto findStatusById(@Param("pegawaiId") Integer idPegawai); } 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 b9dca8bb..007056c5 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 @@ -4,6 +4,7 @@ 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.dto.PegawaiStatusDto; import com.jasamedika.medifirst2000.entities.*; import com.jasamedika.medifirst2000.service.MonitoringAbsenService; import com.jasamedika.medifirst2000.util.CommonUtil; @@ -1390,7 +1391,8 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon } for (Integer id : listIdPegawaiFilter) { - String idFinger = pegawaiDao.getidFinger(id); + PegawaiStatusDto pegawaiStatus = pegawaiDao.findStatusById(id); + String idFinger = pegawaiStatus.getIdFinger(); Map rsMap = new HashMap<>(); List> listkehadiran = new ArrayList<>(); Integer harikerja = 0; @@ -1487,6 +1489,11 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon data.put("jadwalMasuk", jamMasuk); data.put("jadwalPulang", jamPulang); data.put("idFinger", idFinger); + data.put("kategori", pegawaiStatus.getKategori()); + data.put("pangkat", pegawaiStatus.getPangkat()); + data.put("golongan", pegawaiStatus.getGolongan()); + data.put("tmtMasuk", pegawaiStatus.getTmtMasuk()); + data.put("tmtPensiun", pegawaiStatus.getTmtPensiun()); List> listAbsensi; if (tanggal.equals(tglRilisFiturPresensi) || tanggal.after(tglRilisFiturPresensi)) { diff --git a/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/dto/PegawaiStatusDto.java b/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/dto/PegawaiStatusDto.java new file mode 100644 index 00000000..b3562cbc --- /dev/null +++ b/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/dto/PegawaiStatusDto.java @@ -0,0 +1,32 @@ +package com.jasamedika.medifirst2000.dto; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Date; + +/** + * @author Salman + * @version 1.0.0 + * @since 3/19/2025 + */ +@Data +@Builder +@AllArgsConstructor +@NoArgsConstructor +public class PegawaiStatusDto { + + private String idFinger; + + private String kategori; + + private String pangkat; + + private String golongan; + + private Date tmtMasuk; + + private Date tmtPensiun; +}