perbaikan simpan dan hapus mapping indikator langsung banyak jabatan

This commit is contained in:
salmanoe 2021-03-19 14:27:51 +07:00
parent ac9e76bdd6
commit 16c14d182d
5 changed files with 190 additions and 36 deletions

View File

@ -26,4 +26,26 @@ public interface IndikatorKinerjaJabatanDao extends PagingAndSortingRepository<I
+ "ikt.tanggalMulaiBerlaku desc,ikt.tanggalPembaharuanData desc")
List<Map<String, Object>> findAllByJabatan(@Param("jabatanId") Integer idJabatan);
@Query("select new Map(jj.id as jenisJabatanId,jj.jenisJabatan as jenisJabatan,"
+ "jb.id as jabatanId,jb.namaJabatan as namaJabatan) " + "from Jabatan jb "
+ "inner join jb.jenisJabatan jj " + "where jb.statusEnabled is true " + "and jb.kdJabatan = 'ANJAB' "
+ "order by jb.namaJabatan, jb.id")
List<Map<String, Object>> findAllJabatanAnjab();
@Query("select new Map(jb.id as jabatanId," + "ikt.noRec as noRec," + "ikt.tanggalMulaiBerlaku as tglBerlaku,"
+ "ikt.tanggalPembaharuanData as tglPembaharuanData) " + "from IndikatorKinerjaJabatan ikt "
+ "inner join ikt.jabatan jb " + "where ikt.statusEnabled is true "
+ "and ikt.indikatorKinerjaId = :indikatorId "
+ "and to_char(ikt.tanggalMulaiBerlaku,'yyyy-MM') <= to_char(now(),'yyyy-MM') "
+ "and jb.statusEnabled is true " + "and jb.kdJabatan = 'ANJAB' " + "order by jb.namaJabatan, jb.id, "
+ "ikt.tanggalMulaiBerlaku desc, ikt.tanggalPembaharuanData desc")
List<Map<String, Object>> findAllByIndikator(@Param("indikatorId") Integer idIndikator);
@Query("select new Map(ikt.noRec as noRec," + "ikt.statusEnabled as statusEnabled," + "ikt.kdProfile as kdProfile,"
+ "ikt.tanggalMulaiBerlaku as tglBerlaku," + "ikt.indikatorKinerjaId as indikatorId,"
+ "ikt.jabatanId as jabatanId) " + "from IndikatorKinerjaJabatan ikt " + "where ikt.statusEnabled is true "
+ "and ikt.indikatorKinerjaId in (:listIndikatorId) "
+ "and to_char(ikt.tanggalMulaiBerlaku,'yyyy-MM') <= to_char(now(),'yyyy-MM')")
List<Map<String, Object>> findAllByIndikator(@Param("listIndikatorId") List<Integer> listIdIndikator);
}

View File

@ -12,8 +12,11 @@ import com.jasamedika.medifirst2000.vo.IndikatorKinerjaJabatanVO;
public interface IndikatorKinerjaJabatanService
extends BaseVoService<IndikatorKinerjaJabatan, IndikatorKinerjaJabatanVO, String> {
public List<String> addAll(IndikatorKinerjaJabatanVO vo) throws JpaSystemException, ServiceVOException;
public List<String> addAndUpdate(List<IndikatorKinerjaJabatanVO> listVO, Integer idLoginUser)
throws JpaSystemException, ServiceVOException;
Map<String, Object> findAllByJabatan(Integer idJabatan) throws JpaSystemException;
public List<Map<String, Object>> findAllByIndikator(Integer idIndikator) throws JpaSystemException;
public Map<String, Object> findAllByJabatan(Integer idJabatan) throws JpaSystemException;
}

View File

@ -106,31 +106,30 @@ public class IndikatorKinerjaJabatanServiceImpl extends BaseVoServiceImpl implem
return resultVO;
}
@Override
public List<String> addAll(IndikatorKinerjaJabatanVO vo) throws JpaSystemException, ServiceVOException {
public List<String> addAll(List<IndikatorKinerjaJabatanVO> listVO, Integer idLoginUser)
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());
for (IndikatorKinerjaJabatanVO vo : listVO) {
Jabatan jabatan = jabatanConverter.transferVOToModel(vo.getJabatan(), new Jabatan());
IndikatorKinerja indikator = indikatorConverter.transferVOToModel(vo.getIndikatorKinerja(),
new IndikatorKinerja());
IndikatorKinerjaJabatan indikatorJabatan = indikatorJabatanConverter.transferVOToModel(vo,
new IndikatorKinerjaJabatan());
indikatorJabatan.setJabatan(jabatan);
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("idLoginUser", idLoginUser);
mapLog.put("idReferensi", resultModel.getNoRec());
mapLog.put("keterangan", "Buat data");
listLog.add(mapLog);
@ -140,12 +139,60 @@ public class IndikatorKinerjaJabatanServiceImpl extends BaseVoServiceImpl implem
resultListVO.add(resultVO.getNoRec());
}
addAllLoggingUser(listLog);
return resultListVO;
}
@Override
public List<String> addAndUpdate(List<IndikatorKinerjaJabatanVO> listVO, Integer idLoginUser)
throws JpaSystemException, ServiceVOException {
List<String> resultListVO = new ArrayList<>();
List<Integer> listIdIndikator = new ArrayList<>();
List<IndikatorKinerjaJabatanVO> listAdd = new ArrayList<>();
List<IndikatorKinerjaJabatanVO> listUpdate = new ArrayList<>();
for (IndikatorKinerjaJabatanVO vo : listVO) {
if (CommonUtil.isNullOrEmpty(vo.getNoRec())) {
listAdd.add(vo);
} else if (!listIdIndikator.contains(vo.getIndikatorKinerja().getId())) {
listIdIndikator.add(vo.getIndikatorKinerja().getId());
}
}
if (CommonUtil.isNotNullOrEmpty(listIdIndikator)) {
List<Map<String, Object>> allMap = indikatorKinerjaJabatanDao.findAllByIndikator(listIdIndikator);
for (Map<String, Object> map : allMap) {
IndikatorKinerjaJabatanVO vo = new IndikatorKinerjaJabatanVO();
IndikatorKinerjaVO indikator = new IndikatorKinerjaVO();
JabatanVO jabatan = new JabatanVO();
vo.setNoRec(map.get("noRec").toString());
vo.setKdProfile((short) 0);
vo.setStatusEnabled(false);
vo.setTanggalMulaiBerlaku((Date) map.get("tglBerlaku"));
indikator.setId(Integer.valueOf(map.get("indikatorId").toString()));
vo.setIndikatorKinerja(indikator);
jabatan.setId(Integer.valueOf(map.get("jabatanId").toString()));
vo.setJabatan(jabatan);
listUpdate.add(vo);
}
}
if (CommonUtil.isNotNullOrEmpty(listAdd)) {
resultListVO = addAll(listAdd, idLoginUser);
}
if (CommonUtil.isNotNullOrEmpty(listUpdate) && CommonUtil.isNotNullOrEmpty(resultListVO)) {
resultListVO.addAll(updateAll(listUpdate, idLoginUser));
} else {
resultListVO = updateAll(listUpdate, idLoginUser);
}
return resultListVO;
}
@Override
public IndikatorKinerjaJabatanVO update(IndikatorKinerjaJabatanVO vo)
throws JpaSystemException, ServiceVOException {
@ -170,6 +217,55 @@ public class IndikatorKinerjaJabatanServiceImpl extends BaseVoServiceImpl implem
return resultVO;
}
/**
*
* @param listVO : mapping indikator yang akan dihapus
* @param idLoginUser : identitas user saat login
* @return Daftar identitas transaksi mapping indikator
* @throws JpaSystemException
* @throws ServiceVOException
*/
public List<String> updateAll(List<IndikatorKinerjaJabatanVO> listVO, Integer idLoginUser)
throws JpaSystemException, ServiceVOException {
List<String> resultListVO = new ArrayList<>();
List<IndikatorKinerjaJabatan> listIndikatorJabatanBaru = new ArrayList<>();
List<Map<String, Object>> listLog = new ArrayList<>();
Date now = new Date();
for (IndikatorKinerjaJabatanVO vo : listVO) {
IndikatorKinerjaJabatan indikatorJabatanLama = indikatorKinerjaJabatanDao.findOne(vo.getNoRec());
Jabatan jabatan = jabatanConverter.transferVOToModel(vo.getJabatan(), new Jabatan());
IndikatorKinerja indikator = indikatorConverter.transferVOToModel(vo.getIndikatorKinerja(),
new IndikatorKinerja());
IndikatorKinerjaJabatan indikatorJabatanBaru = indikatorJabatanConverter.transferVOToModel(vo,
indikatorJabatanLama);
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);
IndikatorKinerjaJabatanVO resultVO = new IndikatorKinerjaJabatanVO();
resultVO = indikatorJabatanConverter.transferModelToVO(resultModel, resultVO);
resultListVO.add(resultVO.getNoRec());
}
addAllLoggingUser(listLog);
return resultListVO;
}
@Override
public Boolean delete(String key) throws JpaSystemException {
indikatorKinerjaJabatanDao.delete(key);
@ -240,4 +336,39 @@ public class IndikatorKinerjaJabatanServiceImpl extends BaseVoServiceImpl implem
return result;
}
@Override
public List<Map<String, Object>> findAllByIndikator(Integer idIndikator) throws JpaSystemException {
List<Map<String, Object>> data = new ArrayList<>();
List<Integer> listIdJabatan = new ArrayList<>();
List<Map<String, Object>> result = indikatorKinerjaJabatanDao.findAllJabatanAnjab();
List<Map<String, Object>> allMap = indikatorKinerjaJabatanDao.findAllByIndikator(idIndikator);
for (Map<String, Object> map : allMap) {
if (!listIdJabatan.contains(map.get("jabatanId"))) {
listIdJabatan.add(Integer.valueOf(map.get("jabatanId").toString()));
data.add(map);
}
}
for (Map<String, Object> mapRs : result) {
for (Map<String, Object> map : data) {
if (mapRs.get("jabatanId").equals(map.get("jabatanId"))) {
mapRs.put("statusPilih", true);
mapRs.put("noRec", map.get("noRec"));
mapRs.put("tglBerlaku", map.get("tglBerlaku"));
mapRs.put("tglPembaharuanData", map.get("tglPembaharuanData"));
break;
}
}
if (CommonUtil.isNullOrEmpty(mapRs.get("noRec"))) {
mapRs.put("statusPilih", false);
mapRs.put("noRec", null);
mapRs.put("tglBerlaku", null);
mapRs.put("tglPembaharuanData", null);
}
}
return result;
}
}

View File

@ -1,7 +1,6 @@
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;
@ -18,11 +17,6 @@ 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;
@ -63,22 +57,6 @@ 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

@ -366,9 +366,10 @@ 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) {
@Valid @RequestBody List<IndikatorKinerjaJabatanVO> vo,
@RequestParam(value = "loginUserId", required = true) Integer idLoginUser) {
try {
List<String> result = indikatorKinerjaJabatanService.addAll(vo);
List<String> result = indikatorKinerjaJabatanService.addAndUpdate(vo, idLoginUser);
if (CommonUtil.isNotNullOrEmpty(result)) {
mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_SUCCESS,
getMessage(MessageResource.LABEL_SUCCESS, request));
@ -406,6 +407,25 @@ public class IkiDanRemunerasiController extends LocaleController<IkiDanRemuneras
}
}
@RequestMapping(value = "/set-mapping-indikator-jabatan", method = RequestMethod.GET)
public ResponseEntity<List<Map<String, Object>>> setMappingIndikatorJabatan(HttpServletRequest request,
@RequestParam(value = "indikatorId", required = true) Integer idIndikator) throws ParseException {
try {
List<Map<String, Object>> result = indikatorKinerjaJabatanService.findAllByIndikator(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 set mapping indikator 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 set mapping indikator jabatan", jse.getMessage());
addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, jse.getMessage());
return RestUtil.getJsonHttptatus(HttpStatus.CONFLICT, mapHeaderMessage);
}
}
@RequestMapping(value = "/save-skoring-tindakan-medis", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE, consumes = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<SkoringTindakanMedisVO> saveSkoringTindakanMedis(HttpServletRequest request,
@Valid @RequestBody SkoringTindakanMedisVO vo) {