From a5cdae75d6f9dbd994025effec194c5138a2786d Mon Sep 17 00:00:00 2001 From: salmanoe Date: Wed, 28 Apr 2021 18:52:36 +0700 Subject: [PATCH] - membuat service validasi tidak boleh hapus kontrak kinerja dengan kriteria working record - membuat service validasi tidak boleh hapus mapping indikator-jabatan dengan kriteria kontrak kinerja individu - membuat service validasi tidak boleh hapus master indikator dengan kriteria mapping indikator-jabatan --- .../dao/IndikatorKinerjaJabatanDao.java | 6 +++ .../medifirst2000/dao/LogbookKinerjaDao.java | 7 +++ .../dao/LogbookKinerjaDetailDao.java | 5 ++- .../IndikatorKinerjaJabatanService.java | 2 + .../service/LogbookKinerjaService.java | 25 +++++++---- .../IndikatorKinerjaJabatanServiceImpl.java | 7 +++ .../impl/LogbookKinerjaServiceImpl.java | 8 ++++ .../IkiDanRemunerasiController.java | 44 ++++++++++++++++++- 8 files changed, 92 insertions(+), 12 deletions(-) diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/IndikatorKinerjaJabatanDao.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/IndikatorKinerjaJabatanDao.java index 206a06d6..42ee722e 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/IndikatorKinerjaJabatanDao.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/IndikatorKinerjaJabatanDao.java @@ -68,4 +68,10 @@ public interface IndikatorKinerjaJabatanDao extends PagingAndSortingRepository> findIndikatorByUnit(@Param("jenisIndikator") Integer jenisIndikator, @Param("unitKerjaId") Integer idUnitKerja); + @Query("select new Map(ikt.noRec as noRec,ikt.jabatanId as jabatanId) " + "from IndikatorKinerjaJabatan ikt " + + "where ikt.indikatorKinerjaId = :indikatorId " + + "and to_char(ikt.tanggalMulaiBerlaku,'yyyy-MM') >= to_char(now(),'yyyy-MM') " + + "and ikt.statusEnabled is true") + List> findUsedMappingByIndikator(@Param("indikatorId") Integer idIndikator); + } diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/LogbookKinerjaDao.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/LogbookKinerjaDao.java index ec52458f..07804f3e 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/LogbookKinerjaDao.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/LogbookKinerjaDao.java @@ -109,4 +109,11 @@ public interface LogbookKinerjaDao extends PagingAndSortingRepository> findAksesPegawaiByPenilai(@Param("pegawaiId") Integer idPegawai, @Param("listKategoryPegawaiId") List listIdKategoriPegawai); + @Query("select new Map(lk.noRec as noRec,lk.pegawaiId as pegawaiId) " + + "from LogbookKinerja lk where lk.indikatorKinerjaId = :indikatorId " + "and lk.jabatanId = :jabatanId " + + "and lk.statusEnabled is true " + "and to_char(lk.bulan,'yyyy-MM') >= to_char(now(),'yyyy-MM') " + + "and lk.statusVerifikasi is false") + List> findUsedKontrakByMapping(@Param("indikatorId") Integer idIndikator, + @Param("jabatanId") Integer idJabatan); + } 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 32eccbfb..41e5e61b 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 @@ -41,8 +41,9 @@ public interface LogbookKinerjaDetailDao extends PagingAndSortingRepository listIdSatuan); @Query("select new Map(lkd.noRec as noRec,lkd.namaKegiatan as namaKegiatan) " + "from LogbookKinerjaDetail lkd " - + "where lkd.logbookKinerjaId = :logbookNoRec " + "and lkd.statusEnabled is true " - + "and lkd.statusVerifikasi is true") + + "where lkd.logbookKinerjaId = :logbookNoRec " + + "and to_char(lkd.tanggalKegiatan,'yyyy-MM') >= to_char(now(),'yyyy-MM') " + + "and lkd.statusEnabled is true") List> findUsedWorkingRecordByKontrak(@Param("logbookNoRec") String logbookNoRec); } diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/IndikatorKinerjaJabatanService.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/IndikatorKinerjaJabatanService.java index 1746a906..ed78a6d2 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/IndikatorKinerjaJabatanService.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/IndikatorKinerjaJabatanService.java @@ -25,4 +25,6 @@ public interface IndikatorKinerjaJabatanService public List> findIndikatorByUnit(Integer jenisIndikator, Integer idUnitKerja, Integer levelJabatan) throws JpaSystemException; + public List> findUsedMappingByIndikator(Integer idIndikator) throws JpaSystemException; + } diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/LogbookKinerjaService.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/LogbookKinerjaService.java index d16c8cf1..6d8e6554 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/LogbookKinerjaService.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/LogbookKinerjaService.java @@ -11,22 +11,29 @@ import com.jasamedika.medifirst2000.vo.LogbookKinerjaVO; public interface LogbookKinerjaService extends BaseVoService { - LogbookKinerjaVO addPengajuanKontrakKinerja(LogbookKinerjaVO vo) throws JpaSystemException, ServiceVOException; + public LogbookKinerjaVO addPengajuanKontrakKinerja(LogbookKinerjaVO vo) + throws JpaSystemException, ServiceVOException; - LogbookKinerjaVO updatePengajuanKontrakKinerja(LogbookKinerjaVO vo) throws JpaSystemException, ServiceVOException; + public LogbookKinerjaVO updatePengajuanKontrakKinerja(LogbookKinerjaVO vo) + throws JpaSystemException, ServiceVOException; - List> findPengajuanKontrakKinerja(Integer idPegawai, Integer idJabatan) + public List> findPengajuanKontrakKinerja(Integer idPegawai, Integer idJabatan) throws JpaSystemException; - List> findDupKontrakKinerja(Integer idPegawai, Integer idJabatan, Long bulan, + public List> findDupKontrakKinerja(Integer idPegawai, Integer idJabatan, Long bulan, Integer idIndikator) throws JpaSystemException; - Map findKontrakKinerja(Integer idPegawai, Integer idJabatan, Long bulan) throws JpaSystemException; + public Map findKontrakKinerja(Integer idPegawai, Integer idJabatan, Long bulan) + throws JpaSystemException; - List> findKontrakKinerja(Integer idIndikator) throws JpaSystemException; + public List> findKontrakKinerja(Integer idIndikator) throws JpaSystemException; - Map findLogbookKinerja(Integer idPegawai, Integer idJabatan, Long bulan) throws JpaSystemException; - - List> findAksesPegawai(Integer idPegawai); + public Map findLogbookKinerja(Integer idPegawai, Integer idJabatan, Long bulan) + throws JpaSystemException; + + public List> findAksesPegawai(Integer idPegawai); + + public List> findUsedKontrakByMapping(Integer idIndikator, Integer idJabatan) + throws JpaSystemException; } diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/IndikatorKinerjaJabatanServiceImpl.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/IndikatorKinerjaJabatanServiceImpl.java index 777f277a..2b422202 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/IndikatorKinerjaJabatanServiceImpl.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/IndikatorKinerjaJabatanServiceImpl.java @@ -427,4 +427,11 @@ public class IndikatorKinerjaJabatanServiceImpl extends BaseVoServiceImpl implem return result; } + @Override + public List> findUsedMappingByIndikator(Integer idIndikator) throws JpaSystemException { + List> result = indikatorKinerjaJabatanDao.findUsedMappingByIndikator(idIndikator); + + return result; + } + } diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/LogbookKinerjaServiceImpl.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/LogbookKinerjaServiceImpl.java index 7d221dcd..aca6e3eb 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/LogbookKinerjaServiceImpl.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/LogbookKinerjaServiceImpl.java @@ -486,4 +486,12 @@ public class LogbookKinerjaServiceImpl extends BaseVoServiceImpl implements Logb return result; } + @Override + public List> findUsedKontrakByMapping(Integer idIndikator, Integer idJabatan) + throws JpaSystemException { + List> result = logbookKinerjaDao.findUsedKontrakByMapping(idIndikator, idJabatan); + + return result; + } + } 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 2ebd2bd3..3ff0cdf3 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 @@ -927,7 +927,8 @@ public class IkiDanRemunerasiController extends LocaleController>> getUsedWorkingRecordByKontrak(HttpServletRequest request, @RequestParam(value = "logbookKinerjaId", required = true) String idLogbookKinerja) throws ParseException { try { - List> result = logbookKinerjaDetailService.findUsedWorkingRecordByKontrak(idLogbookKinerja); + List> result = logbookKinerjaDetailService + .findUsedWorkingRecordByKontrak(idLogbookKinerja); mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_SUCCESS, getMessage(MessageResource.LABEL_SUCCESS, request)); return RestUtil.getJsonResponse(result, HttpStatus.OK, mapHeaderMessage); @@ -942,4 +943,45 @@ public class IkiDanRemunerasiController extends LocaleController>> getUsedKontrakByMapping(HttpServletRequest request, + @RequestParam(value = "indikatorId", required = true) Integer idIndikator, + @RequestParam(value = "jabatanId", required = true) Integer idJabatan) throws ParseException { + try { + List> result = logbookKinerjaService.findUsedKontrakByMapping(idIndikator, idJabatan); + 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 mapping sudah dipakai di kontrak kinerja individu", + 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 mapping sudah dipakai di kontrak kinerja individu", + jse.getMessage()); + addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, jse.getMessage()); + return RestUtil.getJsonHttptatus(HttpStatus.CONFLICT, mapHeaderMessage); + } + } + + @RequestMapping(value = "/mapping-jabatan-indikator", method = RequestMethod.GET) + public ResponseEntity>> getUsedMappingByIndikator(HttpServletRequest request, + @RequestParam(value = "indikatorId", required = true) Integer idIndikator) throws ParseException { + try { + List> result = indikatorKinerjaJabatanService.findUsedMappingByIndikator(idIndikator); + 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 indikator sudah dipakai di mapping jabatan", 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 indikator sudah dipakai di mapping jabatan", jse.getMessage()); + addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, jse.getMessage()); + return RestUtil.getJsonHttptatus(HttpStatus.CONFLICT, mapHeaderMessage); + } + } + }