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 ed78a6d2..1746a906 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,6 +25,4 @@ 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/LogbookKinerjaDetailService.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/LogbookKinerjaDetailService.java index 1084633d..18168582 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 @@ -19,6 +19,4 @@ public interface LogbookKinerjaDetailService 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/LogbookKinerjaService.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/LogbookKinerjaService.java index 6d8e6554..1d03af8a 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 @@ -33,7 +33,4 @@ public interface LogbookKinerjaService extends BaseVoService> 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 2b422202..ad35d647 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 @@ -14,6 +14,7 @@ import org.springframework.stereotype.Service; import com.jasamedika.medifirst2000.constants.Master; import com.jasamedika.medifirst2000.converter.BaseConverterImpl; import com.jasamedika.medifirst2000.dao.IndikatorKinerjaJabatanDao; +import com.jasamedika.medifirst2000.dao.LogbookKinerjaDao; import com.jasamedika.medifirst2000.dao.LoggingUserDao; import com.jasamedika.medifirst2000.entities.IndikatorKinerja; import com.jasamedika.medifirst2000.entities.IndikatorKinerjaJabatan; @@ -39,6 +40,9 @@ public class IndikatorKinerjaJabatanServiceImpl extends BaseVoServiceImpl implem @Autowired private BaseConverterImpl jabatanConverter; + @Autowired + private LogbookKinerjaDao logbookKinerjaDao; + @Autowired private IndikatorKinerjaJabatanDao indikatorKinerjaJabatanDao; @@ -207,6 +211,9 @@ public class IndikatorKinerjaJabatanServiceImpl extends BaseVoServiceImpl implem IndikatorKinerjaJabatan indikatorJabatanBaru = indikatorJabatanConverter.transferVOToModel(vo, indikatorJabatanLama); + List> existedOthersMapping = findUsedKontrakByMapping( + indikatorJabatanBaru.getIndikatorKinerjaId(), indikatorJabatanBaru.getJabatanId()); + if (CommonUtil.isNotNullOrEmpty(vo.getJabatan())) { Jabatan jabatan = jabatanConverter.transferVOToModel(vo.getJabatan(), new Jabatan()); indikatorJabatanBaru.setJabatan(jabatan); @@ -218,13 +225,17 @@ public class IndikatorKinerjaJabatanServiceImpl extends BaseVoServiceImpl implem indikatorJabatanBaru.setIndikatorKinerja(indikator); } - indikatorJabatanBaru.setTanggalPembaharuanData(new Date()); - IndikatorKinerjaJabatan resultModel = indikatorKinerjaJabatanDao.save(indikatorJabatanBaru); - - addLoggingUser(vo.getLoginUserId(), resultModel.getNoRec(), "Edit data"); - IndikatorKinerjaJabatanVO resultVO = new IndikatorKinerjaJabatanVO(); - resultVO = indikatorJabatanConverter.transferModelToVO(resultModel, resultVO); + if (existedOthersMapping.size() > 0 && !indikatorJabatanBaru.getStatusEnabled()) { + resultVO.setResponseMessage("Indikator sudah dipakai di kontrak kerja, tidak dapat dihapus!"); + } else { + indikatorJabatanBaru.setTanggalPembaharuanData(new Date()); + IndikatorKinerjaJabatan resultModel = indikatorKinerjaJabatanDao.save(indikatorJabatanBaru); + + addLoggingUser(vo.getLoginUserId(), resultModel.getNoRec(), "Edit data"); + + resultVO = indikatorJabatanConverter.transferModelToVO(resultModel, resultVO); + } return resultVO; } @@ -255,28 +266,37 @@ public class IndikatorKinerjaJabatanServiceImpl extends BaseVoServiceImpl implem IndikatorKinerjaJabatan indikatorJabatanBaru = indikatorJabatanConverter.transferVOToModel(vo, indikatorJabatanLama); - indikatorJabatanBaru.setJabatan(jabatan); - indikatorJabatanBaru.setIndikatorKinerja(indikator); - indikatorJabatanBaru.setTanggalPembaharuanData(now); - listIndikatorJabatanBaru.add(indikatorJabatanBaru); + List> existedOthersMapping = findUsedKontrakByMapping( + indikatorJabatanBaru.getIndikatorKinerjaId(), indikatorJabatanBaru.getJabatanId()); + if (existedOthersMapping.size() > 0 && !indikatorJabatanBaru.getStatusEnabled()) { + resultListVO.add("Indikator sudah dipakai di kontrak kerja, tidak dapat dihapus!"); + } else { + indikatorJabatanBaru.setJabatan(jabatan); + indikatorJabatanBaru.setIndikatorKinerja(indikator); + indikatorJabatanBaru.setTanggalPembaharuanData(now); + listIndikatorJabatanBaru.add(indikatorJabatanBaru); + } } - Iterable listResultModel = indikatorKinerjaJabatanDao.save(listIndikatorJabatanBaru); - for (IndikatorKinerjaJabatan resultModel : listResultModel) { - Map mapLog = new HashMap<>(); - mapLog.put("idLoginUser", idLoginUser); - mapLog.put("idReferensi", resultModel.getNoRec()); - mapLog.put("keterangan", "Edit data"); - listLog.add(mapLog); + if (CommonUtil.isNotNullOrEmpty(listIndikatorJabatanBaru)) { + Iterable listResultModel = indikatorKinerjaJabatanDao + .save(listIndikatorJabatanBaru); + for (IndikatorKinerjaJabatan resultModel : listResultModel) { + Map mapLog = new HashMap<>(); + mapLog.put("idLoginUser", idLoginUser); + mapLog.put("idReferensi", resultModel.getNoRec()); + mapLog.put("keterangan", "Edit data"); + listLog.add(mapLog); - IndikatorKinerjaJabatanVO resultVO = new IndikatorKinerjaJabatanVO(); - resultVO = indikatorJabatanConverter.transferModelToVO(resultModel, resultVO); + IndikatorKinerjaJabatanVO resultVO = new IndikatorKinerjaJabatanVO(); + resultVO = indikatorJabatanConverter.transferModelToVO(resultModel, resultVO); - resultListVO.add(resultVO.getNoRec()); + resultListVO.add(resultVO.getNoRec()); + } + + addAllLoggingUser(listLog); } - addAllLoggingUser(listLog); - return resultListVO; } @@ -427,9 +447,9 @@ public class IndikatorKinerjaJabatanServiceImpl extends BaseVoServiceImpl implem return result; } - @Override - public List> findUsedMappingByIndikator(Integer idIndikator) throws JpaSystemException { - List> result = indikatorKinerjaJabatanDao.findUsedMappingByIndikator(idIndikator); + public List> findUsedKontrakByMapping(Integer idIndikator, Integer idJabatan) + throws JpaSystemException { + List> result = logbookKinerjaDao.findUsedKontrakByMapping(idIndikator, idJabatan); return result; } 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 83cc5f4b..ea272da9 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 @@ -223,11 +223,4 @@ public class LogbookKinerjaDetailServiceImpl extends BaseVoServiceImpl implement return result; } - @Override - public List> findUsedWorkingRecordByKontrak(String logbookNoRec) throws JpaSystemException { - List> result = logbookKinerjaDetailDao.findUsedWorkingRecordByKontrak(logbookNoRec); - - 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 24b1ff97..8c0e3f06 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 @@ -23,6 +23,7 @@ import com.jasamedika.medifirst2000.converter.BaseConverterImpl; import com.jasamedika.medifirst2000.dao.AnggaranRemunerasiDao; import com.jasamedika.medifirst2000.dao.IndikatorKinerjaDao; import com.jasamedika.medifirst2000.dao.LogbookKinerjaDao; +import com.jasamedika.medifirst2000.dao.LogbookKinerjaDetailDao; import com.jasamedika.medifirst2000.dao.PegawaiDao; import com.jasamedika.medifirst2000.entities.IndikatorKinerja; import com.jasamedika.medifirst2000.entities.Jabatan; @@ -59,6 +60,9 @@ public class LogbookKinerjaServiceImpl extends BaseVoServiceImpl implements Logb @Autowired private LogbookKinerjaDao logbookKinerjaDao; + @Autowired + private LogbookKinerjaDetailDao logbookKinerjaDetailDao; + @Autowired private IndikatorKinerjaDao indikatorKinerjaDao; @@ -90,6 +94,11 @@ public class LogbookKinerjaServiceImpl extends BaseVoServiceImpl implements Logb @Override public LogbookKinerjaVO update(LogbookKinerjaVO vo) throws JpaSystemException, ServiceVOException { + List> existedWorkingRecord = new ArrayList<>(); + if (!vo.getStatusVerifikasi() || !vo.getStatusEnabled()) { + existedWorkingRecord = findUsedWorkingRecordByKontrak(vo.getNoRec()); + } + LogbookKinerja logbookKinerjaLama = logbookKinerjaDao.findOne(vo.getNoRec()); Pegawai pegawai = pegawaiConverter.transferVOToModel(vo.getPegawai(), new Pegawai()); @@ -101,10 +110,16 @@ public class LogbookKinerjaServiceImpl extends BaseVoServiceImpl implements Logb logbookKinerjaBaru.setPegawai(pegawai); logbookKinerjaBaru.setJabatan(jabatan); logbookKinerjaBaru.setIndikatorKinerja(indikatorKinerja); - LogbookKinerja resultModel = logbookKinerjaDao.save(logbookKinerjaBaru); LogbookKinerjaVO resultVO = new LogbookKinerjaVO(); - resultVO = logbookKinerjaConverter.transferModelToVO(resultModel, resultVO); + if (existedWorkingRecord.size() > 0 && !vo.getStatusVerifikasi() && vo.getStatusEnabled()) { + resultVO.setResponseMessage("Catatan kegiatan kinerja sudah diisi, tidak dapat batal verifikasi!"); + } else if (existedWorkingRecord.size() > 0 && !vo.getStatusVerifikasi() && !vo.getStatusEnabled()) { + resultVO.setResponseMessage("Catatan kegiatan kinerja sudah diisi, tidak dapat hapus kontrak!"); + } else { + LogbookKinerja resultModel = logbookKinerjaDao.save(logbookKinerjaBaru); + resultVO = logbookKinerjaConverter.transferModelToVO(resultModel, resultVO); + } return resultVO; } @@ -486,11 +501,9 @@ 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); + + public List> findUsedWorkingRecordByKontrak(String logbookNoRec) throws JpaSystemException { + List> result = logbookKinerjaDetailDao.findUsedWorkingRecordByKontrak(logbookNoRec); return result; } 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..8b1e1f92 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 @@ -25,6 +25,9 @@ public class IndikatorKinerjaJabatanVO extends BaseTransactionVO { private Integer loginUserId; + @Caption(value = "Response Message") + private String responseMessage; + public IndikatorKinerjaVO getIndikatorKinerja() { return indikatorKinerja; } @@ -81,4 +84,12 @@ public class IndikatorKinerjaJabatanVO extends BaseTransactionVO { this.loginUserId = loginUserId; } + public String getResponseMessage() { + return responseMessage; + } + + public void setResponseMessage(String responseMessage) { + this.responseMessage = responseMessage; + } + } diff --git a/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/vo/LogbookKinerjaVO.java b/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/vo/LogbookKinerjaVO.java index 8e03ba33..6666e9f3 100644 --- a/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/vo/LogbookKinerjaVO.java +++ b/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/vo/LogbookKinerjaVO.java @@ -36,6 +36,9 @@ public class LogbookKinerjaVO extends BaseTransactionVO { private IndikatorKinerjaVO indikatorKinerja; private Integer indikatorKinerjaId; + + @Caption(value = "responseMessage") + private String responseMessage; public Date getBulan() { return bulan; @@ -125,4 +128,12 @@ public class LogbookKinerjaVO extends BaseTransactionVO { this.indikatorKinerjaId = indikatorKinerjaId; } + public String getResponseMessage() { + return responseMessage; + } + + public void setResponseMessage(String responseMessage) { + this.responseMessage = responseMessage; + } + } 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 0fc9fe65..0b11fcd5 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 @@ -436,7 +436,10 @@ public class IkiDanRemunerasiController extends LocaleController>> getUsedWorkingRecordByKontrak(HttpServletRequest request, - @RequestParam(value = "logbookKinerjaId", required = true) String idLogbookKinerja) throws ParseException { - try { - List> result = logbookKinerjaDetailService - .findUsedWorkingRecordByKontrak(idLogbookKinerja); - 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 kontrak sudah dipakai di working record", 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 kontrak sudah dipakai di working record", jse.getMessage()); - addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, jse.getMessage()); - return RestUtil.getJsonHttptatus(HttpStatus.CONFLICT, mapHeaderMessage); - } - } - - @RequestMapping(value = "/kontrak-kinerja-mapping", method = RequestMethod.GET) - public ResponseEntity>> 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); - } - } - }