From 1bd2d6cfd3405782e2100a88cdb662ebdb9dfcba Mon Sep 17 00:00:00 2001 From: salmanoe Date: Wed, 17 Mar 2021 16:51:49 +0700 Subject: [PATCH] pembuatan service simpan mapping langsung banyak jabatan --- .../IndikatorKinerjaJabatanService.java | 4 ++ .../IndikatorKinerjaJabatanServiceImpl.java | 65 ++++++++++++++++++- .../vo/IndikatorKinerjaJabatanVO.java | 22 +++++++ .../IkiDanRemunerasiController.java | 23 +++++++ 4 files changed, 113 insertions(+), 1 deletion(-) 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 a11de56c..1e905e29 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 @@ -1,15 +1,19 @@ package com.jasamedika.medifirst2000.service; +import java.util.List; import java.util.Map; import org.springframework.orm.jpa.JpaSystemException; import com.jasamedika.medifirst2000.entities.IndikatorKinerjaJabatan; +import com.jasamedika.medifirst2000.exception.ServiceVOException; import com.jasamedika.medifirst2000.vo.IndikatorKinerjaJabatanVO; public interface IndikatorKinerjaJabatanService extends BaseVoService { + public List addAll(IndikatorKinerjaJabatanVO vo) throws JpaSystemException, ServiceVOException; + Map findAllByJabatan(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 26fb7eb3..2e8ad146 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 @@ -62,6 +62,29 @@ public class IndikatorKinerjaJabatanServiceImpl extends BaseVoServiceImpl implem loggingUserDao.save(loggingUser); } + public void addAllLoggingUser(List> listLog) { + List listLoggingUser = new ArrayList<>(); + Date now = new Date(); + + for (Map mapLog : listLog) { + LoggingUser loggingUser = new LoggingUser(); + LoginUser loginUser = new LoginUser(); + + loggingUser.setKdProfile((short) 0); + loggingUser.setStatusEnabled(true); + loggingUser.setTanggal(now); + loginUser.setId(Integer.valueOf(mapLog.get("idLoginUser").toString())); + loggingUser.setLoginUser(loginUser); + loggingUser.setJenisLog("Mapping Indikator Kinerja - Jabatan"); + loggingUser.setReferensiId(mapLog.get("idReferensi").toString()); + loggingUser.setReferensi("sdm_indikatorkinerja_t"); + loggingUser.setKeterangan(mapLog.get("keterangan").toString()); + listLoggingUser.add(loggingUser); + } + + loggingUserDao.save(listLoggingUser); + } + @Override public IndikatorKinerjaJabatanVO add(IndikatorKinerjaJabatanVO vo) throws JpaSystemException, ServiceVOException { Jabatan jabatan = jabatanConverter.transferVOToModel(vo.getJabatan(), new Jabatan()); @@ -83,6 +106,46 @@ public class IndikatorKinerjaJabatanServiceImpl extends BaseVoServiceImpl implem return resultVO; } + @Override + public List addAll(IndikatorKinerjaJabatanVO vo) throws JpaSystemException, ServiceVOException { + List resultListVO = new ArrayList<>(); + List listIndikatorJabatan = new ArrayList<>(); + List> listLog = new ArrayList<>(); + Date now = new Date(); + + IndikatorKinerja indikator = indikatorConverter.transferVOToModel(vo.getIndikatorKinerja(), + new IndikatorKinerja()); + + for (JabatanVO jabatanVO : vo.getListJabatan()) { + Jabatan jabatan = jabatanConverter.transferVOToModel(jabatanVO, new Jabatan()); + IndikatorKinerjaJabatan indikatorJabatan = indikatorJabatanConverter.transferVOToModel(vo, + new IndikatorKinerjaJabatan()); + + indikatorJabatan.setIndikatorKinerja(indikator); + indikatorJabatan.setTanggalPembaharuanData(now); + indikatorJabatan.setJabatan(jabatan); + listIndikatorJabatan.add(indikatorJabatan); + } + + Iterable listResultModel = indikatorKinerjaJabatanDao.save(listIndikatorJabatan); + for (IndikatorKinerjaJabatan resultModel : listResultModel) { + Map mapLog = new HashMap<>(); + mapLog.put("idLoginUser", vo.getLoginUserId()); + mapLog.put("idReferensi", resultModel.getNoRec()); + mapLog.put("keterangan", "Buat data"); + listLog.add(mapLog); + + IndikatorKinerjaJabatanVO resultVO = new IndikatorKinerjaJabatanVO(); + resultVO = indikatorJabatanConverter.transferModelToVO(resultModel, resultVO); + + resultListVO.add(resultVO.getNoRec()); + } + + addAllLoggingUser(listLog); + + return resultListVO; + } + @Override public IndikatorKinerjaJabatanVO update(IndikatorKinerjaJabatanVO vo) throws JpaSystemException, ServiceVOException { @@ -164,7 +227,7 @@ public class IndikatorKinerjaJabatanServiceImpl extends BaseVoServiceImpl implem dataByJenisIndikator.add(map); } } - + if (idJenisIndikator.equals(1)) { result.put("Kuantitas", dataByJenisIndikator); } else if (idJenisIndikator.equals(2)) { diff --git a/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/vo/IndikatorKinerjaJabatanVO.java b/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/vo/IndikatorKinerjaJabatanVO.java index 2c23b327..c7308ac5 100644 --- a/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/vo/IndikatorKinerjaJabatanVO.java +++ b/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/vo/IndikatorKinerjaJabatanVO.java @@ -1,6 +1,7 @@ package com.jasamedika.medifirst2000.vo; import java.util.Date; +import java.util.List; import com.jasamedika.medifirst2000.base.vo.BaseTransactionVO; import com.jasamedika.medifirst2000.helper.Caption; @@ -17,6 +18,11 @@ public class IndikatorKinerjaJabatanVO extends BaseTransactionVO { private Integer jabatanId; + @Caption(value = "Daftar Jabatan") + private List listJabatan; + + private List listJabatanId; + @Caption(value = "Tanggal Mulai Berlaku") private Date tanggalMulaiBerlaku; @@ -57,6 +63,22 @@ public class IndikatorKinerjaJabatanVO extends BaseTransactionVO { this.jabatanId = jabatanId; } + public List getListJabatan() { + return listJabatan; + } + + public void setListJabatan(List listJabatan) { + this.listJabatan = listJabatan; + } + + public List getListJabatanId() { + return listJabatanId; + } + + public void setListJabatanId(List listJabatanId) { + this.listJabatanId = listJabatanId; + } + public Date getTanggalMulaiBerlaku() { return tanggalMulaiBerlaku; } 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 9e20d712..32f0071b 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 @@ -364,6 +364,29 @@ public class IkiDanRemunerasiController extends LocaleController> saveMappingIndikatorAllJabatan(HttpServletRequest request, + @Valid @RequestBody IndikatorKinerjaJabatanVO vo) { + try { + List result = indikatorKinerjaJabatanService.addAll(vo); + if (CommonUtil.isNotNullOrEmpty(result)) { + mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_SUCCESS, + getMessage(MessageResource.LABEL_SUCCESS, request)); + return RestUtil.getJsonResponse(result, HttpStatus.CREATED, mapHeaderMessage); + } else { + return RestUtil.getJsonHttptatus(HttpStatus.NOT_ACCEPTABLE); + } + } catch (ServiceVOException sve) { + LOGGER.error("Got exception {} when add mapping indikator kinerja semua 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 add mapping indikator kinerja semua jabatan", jse.getMessage()); + addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, jse.getMessage()); + return RestUtil.getJsonHttptatus(HttpStatus.CONFLICT, mapHeaderMessage); + } + } + @RequestMapping(value = "/get-mapping-indikator-jabatan", method = RequestMethod.GET) public ResponseEntity> getMappingIndikatorJabatan(HttpServletRequest request, @RequestParam(value = "jabatanId", required = true) Integer idJabatan) throws ParseException {