From 25352e2130cc3755333c50cceaedc79655e2a54f Mon Sep 17 00:00:00 2001 From: salmanoe Date: Thu, 13 Oct 2022 15:45:23 +0700 Subject: [PATCH] Update service logbook kinerja detail Perbaikan parameter bulan query daftar logbook kinerja --- .../dao/LogbookKinerjaDetailDao.java | 7 ++++--- .../impl/LogbookKinerjaDetailServiceImpl.java | 18 ++++++++++++++---- .../entities/LogbookKinerjaDetail.java | 2 ++ 3 files changed, 20 insertions(+), 7 deletions(-) diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/LogbookKinerjaDetailDao.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/LogbookKinerjaDetailDao.java index b1f9a477..d5f3de46 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/LogbookKinerjaDetailDao.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/LogbookKinerjaDetailDao.java @@ -1,5 +1,6 @@ package com.jasamedika.medifirst2000.dao; +import java.util.Date; import java.util.List; import java.util.Map; @@ -28,7 +29,7 @@ public interface LogbookKinerjaDetailDao extends PagingAndSortingRepository> findWorkingRecord(@Param("pegawaiId") Integer idPegawai, - @Param("jabatanId") Integer idJabatan, @Param("bulan") String bulan, + @Param("jabatanId") Integer idJabatan, @Param("start") Date start, @Param("end") Date end, @Param("isVerified") Boolean statusVerif); @Query(strGetWR + getWRByIndikator + sortGetWR) List> findWorkingRecord(@Param("pegawaiId") Integer idPegawai, @Param("jabatanId") Integer idJabatan, @Param("indikatorId") Integer idIndikator, - @Param("bulan") String bulan); + @Param("start") Date start, @Param("end") Date end); @Query("select new Map(lkd.logbookKinerjaId as logbookId,sum(lkd.capaian) as sumCapaian,ikm.satuanIndikatorId as satuanId) " + "from LogbookKinerjaDetail lkd " + "inner join lkd.logbookKinerja lk " diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/LogbookKinerjaDetailServiceImpl.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/LogbookKinerjaDetailServiceImpl.java index bfb82d9d..f131c58f 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/LogbookKinerjaDetailServiceImpl.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/LogbookKinerjaDetailServiceImpl.java @@ -6,6 +6,7 @@ import java.time.LocalDate; import java.time.LocalDateTime; import java.time.LocalTime; import java.time.ZoneId; +import java.time.temporal.TemporalAdjusters; import java.util.ArrayList; import java.util.Arrays; import java.util.Comparator; @@ -191,13 +192,18 @@ public class LogbookKinerjaDetailServiceImpl extends BaseVoServiceImpl implement public List> findWorkingRecord(Integer idPegawai, Integer idJabatan, Long bulan, Boolean statusVerif) throws JpaSystemException { DateFormat df = new SimpleDateFormat("yyyy-MM"); + LocalDate month = new Date(bulan).toInstant().atZone(ZoneId.systemDefault()).toLocalDate(); + Date start = Date.from(month.with(TemporalAdjusters.firstDayOfMonth()).atStartOfDay() + .atZone(ZoneId.systemDefault()).toInstant()); + Date end = Date.from(month.with(TemporalAdjusters.lastDayOfMonth()).atTime(LocalTime.MAX) + .atZone(ZoneId.systemDefault()).toInstant()); String strTglLimitVerif = settingDataFixedDao.getSettingDataFixed("tglLimitVerifWorkingRecord"); LocalDateTime tglLimitVerif = LocalDateTime .of(LocalDate.parse(df.format(new Date(bulan)) + strTglLimitVerif).plusMonths(1), LocalTime.MAX); - List> result = logbookKinerjaDetailDao.findWorkingRecord(idPegawai, idJabatan, - df.format(new Date(bulan)), statusVerif); + List> result = logbookKinerjaDetailDao.findWorkingRecord(idPegawai, idJabatan, start, end, + statusVerif); for (Map map : result) { Map logbook = new HashMap(); logbook.put("noRec", map.get("logbookNoRec")); @@ -212,10 +218,14 @@ public class LogbookKinerjaDetailServiceImpl extends BaseVoServiceImpl implement @Override public List> findWorkingRecord(Integer idPegawai, Integer idJabatan, Integer idIndikator, Long bulan) throws JpaSystemException { - DateFormat df = new SimpleDateFormat("yyyy-MM"); + LocalDate month = new Date(bulan).toInstant().atZone(ZoneId.systemDefault()).toLocalDate(); + Date start = Date.from(month.with(TemporalAdjusters.firstDayOfMonth()).atStartOfDay() + .atZone(ZoneId.systemDefault()).toInstant()); + Date end = Date.from(month.with(TemporalAdjusters.lastDayOfMonth()).atTime(LocalTime.MAX) + .atZone(ZoneId.systemDefault()).toInstant()); List> result = logbookKinerjaDetailDao.findWorkingRecord(idPegawai, idJabatan, idIndikator, - df.format(new Date(bulan))); + start, end); for (Map map : result) { Map logbook = new HashMap(); logbook.put("noRec", map.get("logbookNoRec")); diff --git a/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/entities/LogbookKinerjaDetail.java b/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/entities/LogbookKinerjaDetail.java index 15e22918..8ece0295 100644 --- a/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/entities/LogbookKinerjaDetail.java +++ b/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/entities/LogbookKinerjaDetail.java @@ -18,6 +18,8 @@ import com.jasamedika.medifirst2000.helper.Caption; @Table(name = "sdm_logbookkinerjadetail_t") public class LogbookKinerjaDetail extends BaseTransaction { + private static final long serialVersionUID = -7534794958436007877L; + @Column(name = "namakegiatan", nullable = false) @Caption(value = "Nama Kegiatan") private String namaKegiatan;