- pembuatan fitur validasi hapus mapping indikator-jabatan jika sudah ada kontrak kinerjanya

- pembuatan fitur validasi hapus kontrak kinerja jika sudah ada data working record
This commit is contained in:
salmanoe 2021-05-07 17:50:25 +07:00
parent 2b08380318
commit 173f6486e9
9 changed files with 98 additions and 111 deletions

View File

@ -25,6 +25,4 @@ public interface IndikatorKinerjaJabatanService
public List<Map<String, Object>> findIndikatorByUnit(Integer jenisIndikator, Integer idUnitKerja,
Integer levelJabatan) throws JpaSystemException;
public List<Map<String, Object>> findUsedMappingByIndikator(Integer idIndikator) throws JpaSystemException;
}

View File

@ -19,6 +19,4 @@ public interface LogbookKinerjaDetailService
public List<Map<String, Object>> findAksesPegawai(Integer idPegawai) throws JpaSystemException;
public List<Map<String, Object>> findUsedWorkingRecordByKontrak(String logbookNoRec) throws JpaSystemException;
}

View File

@ -33,7 +33,4 @@ public interface LogbookKinerjaService extends BaseVoService<LogbookKinerja, Log
public List<Map<String, Object>> findAksesPegawai(Integer idPegawai);
public List<Map<String, Object>> findUsedKontrakByMapping(Integer idIndikator, Integer idJabatan)
throws JpaSystemException;
}

View File

@ -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<JabatanVO, Jabatan> 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<Map<String, Object>> 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<Map<String, Object>> 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<IndikatorKinerjaJabatan> listResultModel = indikatorKinerjaJabatanDao.save(listIndikatorJabatanBaru);
for (IndikatorKinerjaJabatan resultModel : listResultModel) {
Map<String, Object> 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<IndikatorKinerjaJabatan> listResultModel = indikatorKinerjaJabatanDao
.save(listIndikatorJabatanBaru);
for (IndikatorKinerjaJabatan resultModel : listResultModel) {
Map<String, Object> 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<Map<String, Object>> findUsedMappingByIndikator(Integer idIndikator) throws JpaSystemException {
List<Map<String, Object>> result = indikatorKinerjaJabatanDao.findUsedMappingByIndikator(idIndikator);
public List<Map<String, Object>> findUsedKontrakByMapping(Integer idIndikator, Integer idJabatan)
throws JpaSystemException {
List<Map<String, Object>> result = logbookKinerjaDao.findUsedKontrakByMapping(idIndikator, idJabatan);
return result;
}

View File

@ -223,11 +223,4 @@ public class LogbookKinerjaDetailServiceImpl extends BaseVoServiceImpl implement
return result;
}
@Override
public List<Map<String, Object>> findUsedWorkingRecordByKontrak(String logbookNoRec) throws JpaSystemException {
List<Map<String, Object>> result = logbookKinerjaDetailDao.findUsedWorkingRecordByKontrak(logbookNoRec);
return result;
}
}

View File

@ -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<Map<String, Object>> 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<Map<String, Object>> findUsedKontrakByMapping(Integer idIndikator, Integer idJabatan)
throws JpaSystemException {
List<Map<String, Object>> result = logbookKinerjaDao.findUsedKontrakByMapping(idIndikator, idJabatan);
public List<Map<String, Object>> findUsedWorkingRecordByKontrak(String logbookNoRec) throws JpaSystemException {
List<Map<String, Object>> result = logbookKinerjaDetailDao.findUsedWorkingRecordByKontrak(logbookNoRec);
return result;
}

View File

@ -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;
}
}

View File

@ -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;
}
}

View File

@ -436,7 +436,10 @@ public class IkiDanRemunerasiController extends LocaleController<IkiDanRemuneras
} else {
result = indikatorKinerjaJabatanService.add(vo);
}
if (CommonUtil.isNotNullOrEmpty(result)) {
if (CommonUtil.isNotNullOrEmpty(result) && CommonUtil.isNotNullOrEmpty(result.getResponseMessage())) {
mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_SUCCESS, result.getResponseMessage());
return RestUtil.getJsonResponse(result, HttpStatus.OK, mapHeaderMessage);
} else if (CommonUtil.isNotNullOrEmpty(result)) {
mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_SUCCESS,
getMessage(MessageResource.LABEL_SUCCESS, request));
return RestUtil.getJsonResponse(result, HttpStatus.CREATED, mapHeaderMessage);
@ -465,7 +468,9 @@ public class IkiDanRemunerasiController extends LocaleController<IkiDanRemuneras
getMessage(MessageResource.LABEL_SUCCESS, request));
return RestUtil.getJsonResponse(result, HttpStatus.CREATED, mapHeaderMessage);
} else {
return RestUtil.getJsonHttptatus(HttpStatus.NOT_ACCEPTABLE);
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 add mapping indikator kinerja semua jabatan", sve.getMessage());
@ -663,7 +668,10 @@ public class IkiDanRemunerasiController extends LocaleController<IkiDanRemuneras
} else {
result = logbookKinerjaService.add(vo);
}
if (CommonUtil.isNotNullOrEmpty(result)) {
if (CommonUtil.isNotNullOrEmpty(result) && CommonUtil.isNotNullOrEmpty(result.getResponseMessage())) {
mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_SUCCESS, result.getResponseMessage());
return RestUtil.getJsonResponse(result, HttpStatus.OK, mapHeaderMessage);
} else if (CommonUtil.isNotNullOrEmpty(result)) {
mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_SUCCESS,
getMessage(MessageResource.LABEL_SUCCESS, request));
return RestUtil.getJsonResponse(result, HttpStatus.CREATED, mapHeaderMessage);
@ -945,66 +953,4 @@ public class IkiDanRemunerasiController extends LocaleController<IkiDanRemuneras
return RestUtil.getJsonHttptatus(HttpStatus.CONFLICT, mapHeaderMessage);
}
}
@RequestMapping(value = "/kegiatan-harian-kontrak", method = RequestMethod.GET)
public ResponseEntity<List<Map<String, Object>>> getUsedWorkingRecordByKontrak(HttpServletRequest request,
@RequestParam(value = "logbookKinerjaId", required = true) String idLogbookKinerja) throws ParseException {
try {
List<Map<String, Object>> 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<List<Map<String, Object>>> getUsedKontrakByMapping(HttpServletRequest request,
@RequestParam(value = "indikatorId", required = true) Integer idIndikator,
@RequestParam(value = "jabatanId", required = true) Integer idJabatan) throws ParseException {
try {
List<Map<String, Object>> 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<List<Map<String, Object>>> getUsedMappingByIndikator(HttpServletRequest request,
@RequestParam(value = "indikatorId", required = true) Integer idIndikator) throws ParseException {
try {
List<Map<String, Object>> 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);
}
}
}