From 3c74ae5f63c4cff1b078c2d82705e189a5728cd8 Mon Sep 17 00:00:00 2001 From: salmanoe Date: Mon, 8 Feb 2021 13:44:06 +0700 Subject: [PATCH] - pembuatan service tampil daftar penempatan pegawai saat evaluasi jabatan - perbaikan service edit plafon remunerasi --- .../dao/NilaiKelompokJabatanDao.java | 14 ++++- .../service/NilaiKelompokJabatanService.java | 2 + .../impl/NilaiKelompokJabatanServiceImpl.java | 62 +++++++++++++------ .../controller/SdmController.java | 47 +++++++++++++- 4 files changed, 103 insertions(+), 22 deletions(-) diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/NilaiKelompokJabatanDao.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/NilaiKelompokJabatanDao.java index 09be24de..733c6018 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/NilaiKelompokJabatanDao.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/NilaiKelompokJabatanDao.java @@ -16,7 +16,7 @@ import com.jasamedika.medifirst2000.entities.NilaiKelompokJabatan; * @author Generator */ @Repository("KelompokJabatanDao") -public interface NilaiKelompokJabatanDao extends PagingAndSortingRepository { +public interface NilaiKelompokJabatanDao extends PagingAndSortingRepository { @Query("select model from NilaiKelompokJabatan model where model.id = :kelompokJabatanId") public NilaiKelompokJabatan getNilaiKelompokJabatan(@Param("kelompokJabatanId") Integer kelompokJabatanId); @@ -43,4 +43,16 @@ public interface NilaiKelompokJabatanDao extends PagingAndSortingRepository findIdsByGrade(@Param("grade") String grade); + @Query("select new Map(pg.id as idPegawai,pg.namaLengkap as namaPegawai," + + "j.namaExternal as unitKerja,j.namaJabatan as namaJabatan," + + "pg.nilaiJabatan as nilaiJabatan,pg.grade as grade," + + "kj.id as idKelompokJabatan,kj.namaKelompokJabatan as kelompokJabatan," + + "dkj.id as idDetailKelompokJabatan,dkj.detailKelompokJabatan as detailKelompokJabatan) " + + "from MapPegawaiJabatanToUnitKerja mj " + "inner join mj.pegawai pg " + "inner join mj.jabatan j " + + "inner join j.kelompokJabatan kj " + "inner join pg.detailKelompokJabatan dkj " + + "where kj.id = dkj.kelompokJabatanId " + "and mj.statusEnabled is true " + "and pg.statusEnabled is true " + + "and j.statusEnabled is true " + "and j.kdJabatan = 'ANJAB' " + "order by pg.id asc, " + + "pg.nilaiJabatan desc") + public List> findPenempatanEvaluasiJabatan(); + } diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/NilaiKelompokJabatanService.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/NilaiKelompokJabatanService.java index bb81bd0d..5af1cae2 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/NilaiKelompokJabatanService.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/NilaiKelompokJabatanService.java @@ -17,5 +17,7 @@ public interface NilaiKelompokJabatanService { List> getAllByStatusEnabled(); List> getPlafonRemunerasi(); + + List> getPenempatanEvaluasiJabatan(); } diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/NilaiKelompokJabatanServiceImpl.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/NilaiKelompokJabatanServiceImpl.java index d874562f..16e7c157 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/NilaiKelompokJabatanServiceImpl.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/NilaiKelompokJabatanServiceImpl.java @@ -53,6 +53,29 @@ public class NilaiKelompokJabatanServiceImpl extends BaseVoServiceImpl implement return result; } + @Override + public Map saveNilaiKelompokJabatan(PlafonRemunerasiKemenkeuVO vo) { + Map result = new HashMap<>(); + List listId = nilaiKelompokJabatanDao.findIdsByGrade(vo.getGrade()); + + List models = new ArrayList(); + for (Integer id : listId) { + NilaiKelompokJabatan model = nilaiKelompokJabatanDao.findOne(id); + model.setGajiHonorarium(vo.getGajiHonorarium()); + model.setMinInsentif(vo.getMinInsentif()); + model.setMaxInsentif(vo.getMaxInsentif()); + model.setMaxTotalRemunerasi(vo.getMaxTotalRemunerasi()); + models.add(model); + } + + Iterable rs = nilaiKelompokJabatanDao.save(models); + if (CommonUtil.isNotNullOrEmpty(rs)) { + result.put("ids", listId); + } + + return result; + } + @Override public Map getNilaiKelompokJabatan(Integer id) { Map result = new HashMap(); @@ -83,24 +106,27 @@ public class NilaiKelompokJabatanServiceImpl extends BaseVoServiceImpl implement } @Override - public Map saveNilaiKelompokJabatan(PlafonRemunerasiKemenkeuVO vo) { - Map result = new HashMap<>(); - List listId = nilaiKelompokJabatanDao.findIdsByGrade(vo.getGrade()); - - List models = new ArrayList(); - for (Integer id : listId) { - NilaiKelompokJabatan model = new NilaiKelompokJabatan(); - model.setId(id); - model.setGajiHonorarium(vo.getGajiHonorarium()); - model.setMinInsentif(vo.getMinInsentif()); - model.setMaxInsentif(vo.getMaxInsentif()); - model.setMaxTotalRemunerasi(vo.getMaxTotalRemunerasi()); - models.add(model); - } - - Iterable rs = nilaiKelompokJabatanDao.save(models); - if (CommonUtil.isNotNullOrEmpty(rs)) { - result.put("data", listId); + public List> getPenempatanEvaluasiJabatan() { + List> result = new ArrayList<>(); + List listIdPegawai = new ArrayList<>(); + + List> data = nilaiKelompokJabatanDao.findPenempatanEvaluasiJabatan(); + + if (CommonUtil.isNotNullOrEmpty(data)) { + for (Map map : data) { + if (!listIdPegawai.contains(map.get("idPegawai"))) { + listIdPegawai.add(Integer.valueOf(map.get("idPegawai").toString())); + } + } + + for (Integer idPegawai : listIdPegawai) { + for (Map map : data) { + if (map.get("idPegawai").equals(idPegawai)) { + result.add(map); + break; + } + } + } } return result; diff --git a/jasamedika-sdm/src/main/java/com/jasamedika/medifirst2000/controller/SdmController.java b/jasamedika-sdm/src/main/java/com/jasamedika/medifirst2000/controller/SdmController.java index e3bb68c1..175e4ada 100644 --- a/jasamedika-sdm/src/main/java/com/jasamedika/medifirst2000/controller/SdmController.java +++ b/jasamedika-sdm/src/main/java/com/jasamedika/medifirst2000/controller/SdmController.java @@ -2027,11 +2027,33 @@ public class SdmController extends LocaleController { return RestUtil.getJsonResponse(result, HttpStatus.CREATED, mapHeaderMessage); } catch (ServiceVOException e) { - LOGGER.error("Got exception {} when add Pasien", e.getMessage()); + LOGGER.error("Got exception {} when add kelompok jabatan", e.getMessage()); addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, e.getMessage()); return RestUtil.getJsonHttptatus(HttpStatus.INTERNAL_SERVER_ERROR, mapHeaderMessage); } catch (JpaSystemException jse) { - LOGGER.error("Got exception {} when add Pasien", jse.getMessage()); + LOGGER.error("Got exception {} when add kelompok jabatan", jse.getMessage()); + addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, jse.getMessage()); + return RestUtil.getJsonHttptatus(HttpStatus.CONFLICT, mapHeaderMessage); + } + + } + + @RequestMapping(value = "/save-plafon-remunerasi", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE, consumes = MediaType.APPLICATION_JSON_VALUE) + public ResponseEntity> saveKelompokJabatan(@Valid @RequestBody PlafonRemunerasiKemenkeuVO vo, + HttpServletRequest request) { + try { + Map result = kelompokJabatanService.saveNilaiKelompokJabatan(vo); + if (null != result) + mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_SUCCESS, + getMessage(MessageResource.LABEL_SUCCESS, request)); + return RestUtil.getJsonResponse(result, HttpStatus.CREATED, mapHeaderMessage); + + } catch (ServiceVOException e) { + LOGGER.error("Got exception {} when add plafon remunerasi", e.getMessage()); + addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, e.getMessage()); + return RestUtil.getJsonHttptatus(HttpStatus.INTERNAL_SERVER_ERROR, mapHeaderMessage); + } catch (JpaSystemException jse) { + LOGGER.error("Got exception {} when add plafon remunerasi", jse.getMessage()); addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, jse.getMessage()); return RestUtil.getJsonHttptatus(HttpStatus.CONFLICT, mapHeaderMessage); } @@ -5766,7 +5788,7 @@ public class SdmController extends LocaleController { } } - @RequestMapping(value = "/get-plafon-kmk-remunerasi", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE) + @RequestMapping(value = "/get-plafon-remunerasi", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE) public ResponseEntity>> getPlafonRemunerasi(HttpServletRequest request) { try { List> result = nilaiKelompokJabatanService.getPlafonRemunerasi(); @@ -5785,4 +5807,23 @@ public class SdmController extends LocaleController { } } + @RequestMapping(value = "/get-penempatan-evaluasi-jabatan", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE) + public ResponseEntity>> getPenempatanEvaluasiJabatan(HttpServletRequest request) { + try { + List> result = nilaiKelompokJabatanService.getPenempatanEvaluasiJabatan(); + if (null != result) + mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_SUCCESS, + getMessage(MessageResource.LABEL_SUCCESS, request)); + return RestUtil.getJsonResponse(result, HttpStatus.OK, mapHeaderMessage); + } catch (ServiceVOException e) { + LOGGER.error("Got exception {} when get penempatan evaluasi jabatan", e.getMessage()); + addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, e.getMessage()); + return RestUtil.getJsonHttptatus(HttpStatus.INTERNAL_SERVER_ERROR, mapHeaderMessage); + } catch (JpaSystemException jse) { + LOGGER.error("Got exception {} when get penempatan evaluasi jabatan", jse.getMessage()); + addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, jse.getMessage()); + return RestUtil.getJsonHttptatus(HttpStatus.CONFLICT, mapHeaderMessage); + } + } + }