From 7742e1d9d6cbd9c098157fdce1e432a35d9f96f0 Mon Sep 17 00:00:00 2001 From: salmanoe Date: Wed, 5 May 2021 17:20:19 +0700 Subject: [PATCH] pembuatan service detail working record di dashboard pencatatan kinerja --- .../dao/LogbookKinerjaDetailDao.java | 16 ++++++++++--- .../service/LogbookKinerjaDetailService.java | 3 +++ .../impl/LogbookKinerjaDetailServiceImpl.java | 17 ++++++++++++++ .../IkiDanRemunerasiController.java | 23 +++++++++++++++++++ 4 files changed, 56 insertions(+), 3 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 41e5e61b..db14b424 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 @@ -13,7 +13,7 @@ import com.jasamedika.medifirst2000.entities.LogbookKinerjaDetail; @Repository("logbookKinerjaDetailDao") public interface LogbookKinerjaDetailDao extends PagingAndSortingRepository { - @Query("select new Map(lkh.noRec as logbookNoRec," + "lkd.noRec as noRec," + String strGetWR = "select new Map(lkh.noRec as logbookNoRec," + "lkd.noRec as noRec," + "ikm.id as indikatorId,ikm.namaIndikator as namaIndikator," + "lkd.namaKegiatan as namaKegiatan,lkd.capaian as hasil," + "si.id as satuanId,si.satuanIndikator as satuanIndikator," + "lkd.catatan as catatan," @@ -26,11 +26,21 @@ public interface LogbookKinerjaDetailDao extends PagingAndSortingRepository> findWorkingRecord(@Param("pegawaiId") Integer idPegawai, @Param("jabatanId") Integer idJabatan, @Param("bulan") String bulan); + @Query(strGetWR + getWRByIndikator + sortGetWR) + List> findWorkingRecord(@Param("pegawaiId") Integer idPegawai, + @Param("jabatanId") Integer idJabatan, @Param("indikatorId") Integer idIndikator, + @Param("bulan") String bulan); + @Query("select new Map(lkd.logbookKinerjaId as logbookId,avg(lkd.capaian) as avgCapaian,ikm.satuanIndikatorId as satuanId) " + "from LogbookKinerjaDetail lkd " + "inner join lkd.logbookKinerja lk " + "inner join lk.indikatorKinerja ikm " + "where lkd.statusEnabled is true " diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/LogbookKinerjaDetailService.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/LogbookKinerjaDetailService.java index 8b1e2c2c..1084633d 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/LogbookKinerjaDetailService.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/LogbookKinerjaDetailService.java @@ -14,6 +14,9 @@ public interface LogbookKinerjaDetailService public List> findWorkingRecord(Integer idPegawai, Integer idJabatan, Long bulan) throws JpaSystemException; + public List> findWorkingRecord(Integer idPegawai, Integer idJabatan, Integer idIndikator, + Long bulan) throws JpaSystemException; + public List> findAksesPegawai(Integer idPegawai) throws JpaSystemException; public List> findUsedWorkingRecordByKontrak(String logbookNoRec) throws JpaSystemException; 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 b61abad8..83cc5f4b 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 @@ -194,6 +194,23 @@ public class LogbookKinerjaDetailServiceImpl extends BaseVoServiceImpl implement return result; } + @Override + public List> findWorkingRecord(Integer idPegawai, Integer idJabatan, Integer idIndikator, + Long bulan) throws JpaSystemException { + DateFormat df = new SimpleDateFormat("yyyy-MM"); + + List> result = logbookKinerjaDetailDao.findWorkingRecord(idPegawai, idJabatan, idIndikator, + df.format(new Date(bulan))); + for (Map map : result) { + Map logbook = new HashMap(); + logbook.put("noRec", map.get("logbookNoRec")); + map.put("logbookKinerja", logbook); + map.remove("logbookNoRec"); + } + + return result; + } + @Override public List> findAksesPegawai(Integer idPegawai) throws JpaSystemException { List> result = logbookKinerjaDao.findAksesPegawaiByAtasan(idPegawai, diff --git a/jasamedika-sdm/src/main/java/com/jasamedika/medifirst2000/controller/IkiDanRemunerasiController.java b/jasamedika-sdm/src/main/java/com/jasamedika/medifirst2000/controller/IkiDanRemunerasiController.java index 3ff0cdf3..0fc9fe65 100644 --- a/jasamedika-sdm/src/main/java/com/jasamedika/medifirst2000/controller/IkiDanRemunerasiController.java +++ b/jasamedika-sdm/src/main/java/com/jasamedika/medifirst2000/controller/IkiDanRemunerasiController.java @@ -904,6 +904,29 @@ public class IkiDanRemunerasiController extends LocaleController>> getCatatanKegiatanHarianByIndikator(HttpServletRequest request, + @RequestParam(value = "pegawaiId", required = true) Integer idPegawai, + @RequestParam(value = "jabatanId", required = true) Integer idJabatan, + @RequestParam(value = "indikatorId", required = true) Integer idIndikator, + @RequestParam(value = "bulan", required = true) Long bulan) throws ParseException { + try { + List> result = logbookKinerjaDetailService.findWorkingRecord(idPegawai, idJabatan, + idIndikator, bulan); + mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_SUCCESS, + getMessage(MessageResource.LABEL_SUCCESS, request)); + return RestUtil.getJsonResponse(result, HttpStatus.OK, mapHeaderMessage); + } catch (ServiceVOException sve) { + LOGGER.error("Got exception {} when get catatan kegiatan harian by indikator", sve.getMessage()); + addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, sve.getMessage()); + return RestUtil.getJsonHttptatus(HttpStatus.INTERNAL_SERVER_ERROR, mapHeaderMessage); + } catch (JpaSystemException jse) { + LOGGER.error("Got exception {} when get catatan kegiatan harian by indikator", jse.getMessage()); + addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, jse.getMessage()); + return RestUtil.getJsonHttptatus(HttpStatus.CONFLICT, mapHeaderMessage); + } + } + @RequestMapping(value = "/get-akses-pegawai-verifikasi-kinerja", method = RequestMethod.GET) public ResponseEntity>> getAksesPegawaiVerifikasiKinerja(HttpServletRequest request, @RequestParam(value = "pegawaiId", required = true) Integer idPegawai) throws ParseException {