pembuatan service simpan mapping langsung banyak jabatan

This commit is contained in:
salmanoe 2021-03-17 16:51:49 +07:00
parent 28e371e4fa
commit 1bd2d6cfd3
4 changed files with 113 additions and 1 deletions

View File

@ -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<IndikatorKinerjaJabatan, IndikatorKinerjaJabatanVO, String> {
public List<String> addAll(IndikatorKinerjaJabatanVO vo) throws JpaSystemException, ServiceVOException;
Map<String, Object> findAllByJabatan(Integer idJabatan) throws JpaSystemException;
}

View File

@ -62,6 +62,29 @@ public class IndikatorKinerjaJabatanServiceImpl extends BaseVoServiceImpl implem
loggingUserDao.save(loggingUser);
}
public void addAllLoggingUser(List<Map<String, Object>> listLog) {
List<LoggingUser> listLoggingUser = new ArrayList<>();
Date now = new Date();
for (Map<String, Object> 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<String> addAll(IndikatorKinerjaJabatanVO vo) throws JpaSystemException, ServiceVOException {
List<String> resultListVO = new ArrayList<>();
List<IndikatorKinerjaJabatan> listIndikatorJabatan = new ArrayList<>();
List<Map<String, Object>> 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<IndikatorKinerjaJabatan> listResultModel = indikatorKinerjaJabatanDao.save(listIndikatorJabatan);
for (IndikatorKinerjaJabatan resultModel : listResultModel) {
Map<String, Object> 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)) {

View File

@ -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<JabatanVO> listJabatan;
private List<Integer> listJabatanId;
@Caption(value = "Tanggal Mulai Berlaku")
private Date tanggalMulaiBerlaku;
@ -57,6 +63,22 @@ public class IndikatorKinerjaJabatanVO extends BaseTransactionVO {
this.jabatanId = jabatanId;
}
public List<JabatanVO> getListJabatan() {
return listJabatan;
}
public void setListJabatan(List<JabatanVO> listJabatan) {
this.listJabatan = listJabatan;
}
public List<Integer> getListJabatanId() {
return listJabatanId;
}
public void setListJabatanId(List<Integer> listJabatanId) {
this.listJabatanId = listJabatanId;
}
public Date getTanggalMulaiBerlaku() {
return tanggalMulaiBerlaku;
}

View File

@ -364,6 +364,29 @@ public class IkiDanRemunerasiController extends LocaleController<IkiDanRemuneras
}
}
@RequestMapping(value = "/save-mapping-indikator-all-jabatan", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE, consumes = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<List<String>> saveMappingIndikatorAllJabatan(HttpServletRequest request,
@Valid @RequestBody IndikatorKinerjaJabatanVO vo) {
try {
List<String> 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<Map<String, Object>> getMappingIndikatorJabatan(HttpServletRequest request,
@RequestParam(value = "jabatanId", required = true) Integer idJabatan) throws ParseException {