pembuatan service crud mapping indikator kinerja - jabatan

This commit is contained in:
salmanoe 2021-03-16 13:58:19 +07:00
parent 0e67ad0e63
commit 28e371e4fa
12 changed files with 269 additions and 20 deletions

View File

@ -239,6 +239,10 @@ public class Master {
public static final Integer KONSULTASI_DOKTER_JAGA = 400;
}
public static final class Remunerasi {
public static final Integer[] JENIS_INDIKATOR = { 1, 2, 3 };
}
public static final class Ruangan {
public static final Integer[] NONRANAP = { 45, 75, 76, 328, 463, 464 };
public static final Integer[] NONIKI_NONFFS = { 535 };

View File

@ -1,6 +1,11 @@
package com.jasamedika.medifirst2000.dao;
import java.util.List;
import java.util.Map;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.PagingAndSortingRepository;
import org.springframework.data.repository.query.Param;
import org.springframework.stereotype.Repository;
import com.jasamedika.medifirst2000.entities.IndikatorKinerjaJabatan;
@ -8,4 +13,17 @@ import com.jasamedika.medifirst2000.entities.IndikatorKinerjaJabatan;
@Repository("indikatorKinerjaJabatanDao")
public interface IndikatorKinerjaJabatanDao extends PagingAndSortingRepository<IndikatorKinerjaJabatan, String> {
@Query("select new Map(ikt.noRec as noRec,"
+ "ikt.tanggalMulaiBerlaku as tglBerlaku,to_char(ikt.tanggalMulaiBerlaku,'dd-MM-yyyy') as tglBerlakuFormatted,"
+ "ikm.jenisIndikator as jenisIndikator,ikm.id as indikatorId,ikm.namaIndikator as namaIndikator,"
+ "si.id as satuanId,si.satuanIndikator as satuanIndikator,"
+ "ikt.tanggalPembaharuanData as tglPembaharuanData) " + "from IndikatorKinerjaJabatan ikt "
+ "inner join ikt.indikatorKinerja ikm " + "inner join ikm.satuanIndikator si "
+ "where ikt.statusEnabled is true " + "and ikm.statusEnabled is true and ikm.statusVerifikasi is true "
+ "and ikt.jabatanId = :jabatanId "
+ "and to_char(ikt.tanggalMulaiBerlaku,'yyyy-MM') <= to_char(now(),'yyyy-MM') "
+ "order by ikm.jenisIndikator asc,ikm.namaIndikator asc,"
+ "ikt.tanggalMulaiBerlaku desc,ikt.tanggalPembaharuanData desc")
List<Map<String, Object>> findAllByJabatan(@Param("jabatanId") Integer idJabatan);
}

View File

@ -1,8 +1,15 @@
package com.jasamedika.medifirst2000.service;
import java.util.Map;
import org.springframework.orm.jpa.JpaSystemException;
import com.jasamedika.medifirst2000.entities.IndikatorKinerjaJabatan;
import com.jasamedika.medifirst2000.vo.IndikatorKinerjaJabatanVO;
public interface IndikatorKinerjaJabatanService extends BaseVoService<IndikatorKinerjaJabatan, IndikatorKinerjaJabatanVO, String> {
public interface IndikatorKinerjaJabatanService
extends BaseVoService<IndikatorKinerjaJabatan, IndikatorKinerjaJabatanVO, String> {
Map<String, Object> findAllByJabatan(Integer idJabatan) throws JpaSystemException;
}

View File

@ -1,54 +1,180 @@
package com.jasamedika.medifirst2000.service.impl;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.orm.jpa.JpaSystemException;
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.LoggingUserDao;
import com.jasamedika.medifirst2000.entities.IndikatorKinerja;
import com.jasamedika.medifirst2000.entities.IndikatorKinerjaJabatan;
import com.jasamedika.medifirst2000.entities.Jabatan;
import com.jasamedika.medifirst2000.entities.LoggingUser;
import com.jasamedika.medifirst2000.entities.LoginUser;
import com.jasamedika.medifirst2000.exception.ServiceVOException;
import com.jasamedika.medifirst2000.service.IndikatorKinerjaJabatanService;
import com.jasamedika.medifirst2000.util.CommonUtil;
import com.jasamedika.medifirst2000.vo.IndikatorKinerjaJabatanVO;
import com.jasamedika.medifirst2000.vo.IndikatorKinerjaVO;
import com.jasamedika.medifirst2000.vo.JabatanVO;
@Service("IndikatorKinerjaJabatanService")
public class IndikatorKinerjaJabatanServiceImpl extends BaseVoServiceImpl implements IndikatorKinerjaJabatanService {
@Autowired
private BaseConverterImpl<IndikatorKinerjaJabatanVO, IndikatorKinerjaJabatan> indikatorJabatanConverter;
@Autowired
private BaseConverterImpl<IndikatorKinerjaVO, IndikatorKinerja> indikatorConverter;
@Autowired
private BaseConverterImpl<JabatanVO, Jabatan> jabatanConverter;
@Autowired
private IndikatorKinerjaJabatanDao indikatorKinerjaJabatanDao;
@Autowired
private LoggingUserDao loggingUserDao;
public void addLoggingUser(Integer idLoginUser, String idReferensi, String keterangan) {
LoggingUser loggingUser = new LoggingUser();
LoginUser loginUser = new LoginUser();
loggingUser.setKdProfile((short) 0);
loggingUser.setStatusEnabled(true);
loggingUser.setTanggal(new Date());
loginUser.setId(idLoginUser);
loggingUser.setLoginUser(loginUser);
loggingUser.setJenisLog("Mapping Indikator Kinerja - Jabatan");
loggingUser.setReferensiId(idReferensi);
loggingUser.setReferensi("sdm_indikatorkinerja_t");
loggingUser.setKeterangan(keterangan);
loggingUserDao.save(loggingUser);
}
@Override
public IndikatorKinerjaJabatanVO add(IndikatorKinerjaJabatanVO vo) throws JpaSystemException, ServiceVOException {
// TODO Auto-generated method stub
return null;
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(new Date());
IndikatorKinerjaJabatan resultModel = indikatorKinerjaJabatanDao.save(indikatorJabatan);
addLoggingUser(vo.getLoginUserId(), resultModel.getNoRec(), "Buat data");
IndikatorKinerjaJabatanVO resultVO = new IndikatorKinerjaJabatanVO();
resultVO = indikatorJabatanConverter.transferModelToVO(resultModel, resultVO);
return resultVO;
}
@Override
public IndikatorKinerjaJabatanVO update(IndikatorKinerjaJabatanVO vo)
throws JpaSystemException, ServiceVOException {
// TODO Auto-generated method stub
return null;
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(new Date());
IndikatorKinerjaJabatan resultModel = indikatorKinerjaJabatanDao.save(indikatorJabatanBaru);
addLoggingUser(vo.getLoginUserId(), resultModel.getNoRec(), "Edit data");
IndikatorKinerjaJabatanVO resultVO = new IndikatorKinerjaJabatanVO();
resultVO = indikatorJabatanConverter.transferModelToVO(resultModel, resultVO);
return resultVO;
}
@Override
public Boolean delete(String key) throws JpaSystemException {
// TODO Auto-generated method stub
return null;
indikatorKinerjaJabatanDao.delete(key);
return true;
}
@Override
public IndikatorKinerjaJabatanVO findById(String key) throws JpaSystemException {
// TODO Auto-generated method stub
return null;
IndikatorKinerjaJabatanVO result = new IndikatorKinerjaJabatanVO();
IndikatorKinerjaJabatan indikatorJabatan = indikatorKinerjaJabatanDao.findOne(key);
if (CommonUtil.isNotNullOrEmpty(indikatorJabatan)) {
result = indikatorJabatanConverter.transferModelToVO(indikatorJabatan, result);
}
return result;
}
@Override
public List<IndikatorKinerjaJabatanVO> findAll() throws JpaSystemException {
// TODO Auto-generated method stub
return null;
List<IndikatorKinerjaJabatanVO> result = new ArrayList<IndikatorKinerjaJabatanVO>();
Iterable<IndikatorKinerjaJabatan> models = indikatorKinerjaJabatanDao.findAll();
if (CommonUtil.isNotNullOrEmpty(models)) {
for (IndikatorKinerjaJabatan model : models) {
IndikatorKinerjaJabatanVO vo = new IndikatorKinerjaJabatanVO();
vo = indikatorJabatanConverter.transferModelToVO(model, vo);
result.add(vo);
}
}
return result;
}
@Override
public Map<String, Object> findAllWithPageAndLimitAndSortByAndDirectionParameter(Integer page, Integer limit,
String sort, String dir) {
// TODO Auto-generated method stub
return null;
}
@Override
public Map<String, Object> findAllByJabatan(Integer idJabatan) throws JpaSystemException {
Map<String, Object> result = new HashMap<String, Object>();
List<Map<String, Object>> data = indikatorKinerjaJabatanDao.findAllByJabatan(idJabatan);
for (Integer idJenisIndikator : Arrays.asList(Master.Remunerasi.JENIS_INDIKATOR)) {
List<Map<String, Object>> dataByJenisIndikator = new ArrayList<>();
List<Integer> listIdIndikator = new ArrayList<>();
for (Map<String, Object> map : data) {
if (map.get("jenisIndikator").equals(idJenisIndikator)
&& !listIdIndikator.contains(map.get("indikatorId"))) {
listIdIndikator.add(Integer.valueOf(map.get("indikatorId").toString()));
dataByJenisIndikator.add(map);
}
}
if (idJenisIndikator.equals(1)) {
result.put("Kuantitas", dataByJenisIndikator);
} else if (idJenisIndikator.equals(2)) {
result.put("Kualitas", dataByJenisIndikator);
} else if (idJenisIndikator.equals(3)) {
result.put("Perilaku", dataByJenisIndikator);
}
}
return result;
}
}

View File

@ -69,6 +69,7 @@ public class IndikatorKinerjaServiceImpl extends BaseVoServiceImpl implements In
@Override
public Boolean delete(Integer key) throws JpaSystemException {
indikatorKinerjaDao.delete(key);
return true;
}
@ -96,12 +97,14 @@ public class IndikatorKinerjaServiceImpl extends BaseVoServiceImpl implements In
result.add(vo);
}
}
return result;
}
@Override
public Map<String, Object> findAllWithPageAndLimitAndSortByAndDirectionParameter(Integer page, Integer limit,
String sort, String dir) {
return null;
}

View File

@ -79,6 +79,7 @@ public class LogbookKinerjaDetailServiceImpl extends BaseVoServiceImpl implement
@Override
public Boolean delete(String key) throws JpaSystemException {
logbookKinerjaDetailDao.delete(key);
return true;
}
@ -113,6 +114,7 @@ public class LogbookKinerjaDetailServiceImpl extends BaseVoServiceImpl implement
@Override
public Map<String, Object> findAllWithPageAndLimitAndSortByAndDirectionParameter(Integer page, Integer limit,
String sort, String dir) {
return null;
}

View File

@ -99,6 +99,7 @@ public class LogbookKinerjaServiceImpl extends BaseVoServiceImpl implements Logb
@Override
public Boolean delete(String key) throws JpaSystemException {
logbookKinerjaDao.delete(key);
return true;
}
@ -133,6 +134,7 @@ public class LogbookKinerjaServiceImpl extends BaseVoServiceImpl implements Logb
@Override
public Map<String, Object> findAllWithPageAndLimitAndSortByAndDirectionParameter(Integer page, Integer limit,
String sort, String dir) {
return null;
}

View File

@ -129,6 +129,7 @@ public class SkoringTindakanMedisServiceImpl extends BaseVoServiceImpl implement
@Override
public Boolean delete(String key) throws JpaSystemException {
skoringTindakanMedisDao.delete(key);
return true;
}
@ -160,6 +161,7 @@ public class SkoringTindakanMedisServiceImpl extends BaseVoServiceImpl implement
@Override
public Map<String, Object> findAllWithPageAndLimitAndSortByAndDirectionParameter(Integer page, Integer limit,
String sort, String dir) {
return null;
}

View File

@ -7,6 +7,8 @@ import javax.persistence.Entity;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.validation.constraints.NotNull;
import com.jasamedika.medifirst2000.base.BaseTransaction;
@ -33,8 +35,15 @@ public class IndikatorKinerjaJabatan extends BaseTransaction {
@Column(name = "objectjabatanfk", insertable = false, updatable = false, nullable = true)
private Integer jabatanId;
@Caption(value = "Tanggal Mulai Berlaku")
@Column(name = "tanggalmulaiberlaku", nullable = false)
@Temporal(TemporalType.DATE)
private Date tanggalMulaiBerlaku;
@Caption(value = "Tanggal Pembaharuan Data")
@Column(name = "tanggalpembaharuandata", nullable = false)
@Temporal(TemporalType.TIMESTAMP)
private Date tanggalPembaharuanData;
public IndikatorKinerja getIndikatorKinerja() {
@ -69,6 +78,14 @@ public class IndikatorKinerjaJabatan extends BaseTransaction {
this.jabatanId = jabatanId;
}
public Date getTanggalMulaiBerlaku() {
return tanggalMulaiBerlaku;
}
public void setTanggalMulaiBerlaku(Date tanggalMulaiBerlaku) {
this.tanggalMulaiBerlaku = tanggalMulaiBerlaku;
}
public Date getTanggalPembaharuanData() {
return tanggalPembaharuanData;
}

View File

@ -2,10 +2,6 @@ package com.jasamedika.medifirst2000.vo;
import java.util.Date;
import javax.persistence.Column;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import com.jasamedika.medifirst2000.base.vo.BaseTransactionVO;
import com.jasamedika.medifirst2000.helper.Caption;
@ -20,12 +16,15 @@ public class IndikatorKinerjaJabatanVO extends BaseTransactionVO {
private JabatanVO jabatan;
private Integer jabatanId;
@Caption(value = "Tanggal Mulai Berlaku")
private Date tanggalMulaiBerlaku;
@Caption(value = "Tanggal Pembaharuan Data")
@Column(name = "tanggalpembaharuandata", nullable = false)
@Temporal(TemporalType.TIMESTAMP)
private Date tanggalPembaharuanData;
private Integer loginUserId;
public IndikatorKinerjaVO getIndikatorKinerja() {
return indikatorKinerja;
}
@ -58,6 +57,14 @@ public class IndikatorKinerjaJabatanVO extends BaseTransactionVO {
this.jabatanId = jabatanId;
}
public Date getTanggalMulaiBerlaku() {
return tanggalMulaiBerlaku;
}
public void setTanggalMulaiBerlaku(Date tanggalMulaiBerlaku) {
this.tanggalMulaiBerlaku = tanggalMulaiBerlaku;
}
public Date getTanggalPembaharuanData() {
return tanggalPembaharuanData;
}
@ -66,4 +73,12 @@ public class IndikatorKinerjaJabatanVO extends BaseTransactionVO {
this.tanggalPembaharuanData = tanggalPembaharuanData;
}
public Integer getLoginUserId() {
return loginUserId;
}
public void setLoginUserId(Integer loginUserId) {
this.loginUserId = loginUserId;
}
}

View File

@ -682,5 +682,6 @@
<mapping class="com.jasamedika.medifirst2000.entities.IndikatorBIOS"/>
<mapping class="com.jasamedika.medifirst2000.entities.ActivityPegawai"/>
<mapping class="com.jasamedika.medifirst2000.entities.SkoringTindakanMedis"/>
<mapping class="com.jasamedika.medifirst2000.entities.IndikatorKinerjaJabatan"/>
</session-factory>
</hibernate-configuration>

View File

@ -27,6 +27,7 @@ import com.jasamedika.medifirst2000.controller.base.LocaleController;
import com.jasamedika.medifirst2000.core.web.WebConstants;
import com.jasamedika.medifirst2000.exception.ServiceVOException;
import com.jasamedika.medifirst2000.service.IkiDanRemunerasiService;
import com.jasamedika.medifirst2000.service.IndikatorKinerjaJabatanService;
import com.jasamedika.medifirst2000.service.IndikatorKinerjaService;
import com.jasamedika.medifirst2000.service.LogbookKinerjaDetailService;
import com.jasamedika.medifirst2000.service.LogbookKinerjaService;
@ -34,6 +35,7 @@ import com.jasamedika.medifirst2000.service.SkoringTindakanMedisService;
import com.jasamedika.medifirst2000.util.CommonUtil;
import com.jasamedika.medifirst2000.util.rest.RestUtil;
import com.jasamedika.medifirst2000.vo.IkiDanRemunerasiVO;
import com.jasamedika.medifirst2000.vo.IndikatorKinerjaJabatanVO;
import com.jasamedika.medifirst2000.vo.IndikatorKinerjaVO;
import com.jasamedika.medifirst2000.vo.LogbookKinerjaDetailVO;
import com.jasamedika.medifirst2000.vo.LogbookKinerjaVO;
@ -53,6 +55,9 @@ public class IkiDanRemunerasiController extends LocaleController<IkiDanRemuneras
@Autowired
private IndikatorKinerjaService indikatorKinerjaService;
@Autowired
private IndikatorKinerjaJabatanService indikatorKinerjaJabatanService;
@Autowired
private SkoringTindakanMedisService skoringTindakanMedisService;
@ -331,6 +336,53 @@ public class IkiDanRemunerasiController extends LocaleController<IkiDanRemuneras
}
}
@RequestMapping(value = "/save-mapping-indikator-jabatan", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE, consumes = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<IndikatorKinerjaJabatanVO> saveMappingIndikatorJabatan(HttpServletRequest request,
@Valid @RequestBody IndikatorKinerjaJabatanVO vo) {
try {
IndikatorKinerjaJabatanVO result = new IndikatorKinerjaJabatanVO();
if (CommonUtil.isNotNullOrEmpty(vo.getNoRec())) {
result = indikatorKinerjaJabatanService.update(vo);
} else {
result = indikatorKinerjaJabatanService.add(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/update mapping indikator kinerja", 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/update mapping indikator kinerja", 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 {
try {
Map<String, Object> result = indikatorKinerjaJabatanService.findAllByJabatan(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 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 get 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) {