Add PenilaianKinerjaService

Penambahan fitur verifikasi penilaian kinerja individu
This commit is contained in:
salmanoersabhk 2022-07-12 07:56:37 +07:00
parent d38ac5f192
commit eb475e66a8
13 changed files with 1013 additions and 0 deletions

View File

@ -2,6 +2,7 @@ package com.jasamedika.medifirst2000.dao;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query;
@ -531,4 +532,9 @@ public interface MapPegawaiJabatanToUnitKerjaDao extends CrudRepository<MapPegaw
List<Map<String, Object>> findDokterByRemun(@Param("ksmListId") List<Integer> ksmListId,
@Param("drId") Integer idPegawai);
@Query("select mj.nilaiJabatan " + "from MapPegawaiJabatanToUnitKerja mj " + "where mj.statusEnabled is true "
+ "and mj.pegawaiId = :pegawaiId " + "and mj.jabatanId = :jabatanId")
Optional<Double> findByPegawaiAndJabatan(@Param("pegawaiId") Integer idPegawai,
@Param("jabatanId") Integer idJabatan);
}

View File

@ -0,0 +1,16 @@
package com.jasamedika.medifirst2000.dao;
import org.springframework.data.repository.PagingAndSortingRepository;
import org.springframework.stereotype.Repository;
import com.jasamedika.medifirst2000.entities.PenilaianKinerja;
/**
* @author salmanoe
* @since Jul 6, 2022
*
*/
@Repository("penilaianKinerjaDao")
public interface PenilaianKinerjaDao extends PagingAndSortingRepository<PenilaianKinerja, String> {
}

View File

@ -0,0 +1,16 @@
package com.jasamedika.medifirst2000.dao;
import org.springframework.data.repository.PagingAndSortingRepository;
import org.springframework.stereotype.Repository;
import com.jasamedika.medifirst2000.entities.PenilaianKinerjaDetail;
/**
* @author salmanoe
* @since Jul 6, 2022
*
*/
@Repository("penilaianKinerjaDetailDao")
public interface PenilaianKinerjaDetailDao extends PagingAndSortingRepository<PenilaianKinerjaDetail, String> {
}

View File

@ -0,0 +1,14 @@
package com.jasamedika.medifirst2000.service;
import com.jasamedika.medifirst2000.entities.PenilaianKinerjaDetail;
import com.jasamedika.medifirst2000.vo.PenilaianKinerjaDetailVO;
/**
* @author salmanoe
* @since Jul 6, 2022
*
*/
public interface PenilaianKinerjaDetailService
extends BaseVoService<PenilaianKinerjaDetail, PenilaianKinerjaDetailVO, String> {
}

View File

@ -0,0 +1,13 @@
package com.jasamedika.medifirst2000.service;
import com.jasamedika.medifirst2000.entities.PenilaianKinerja;
import com.jasamedika.medifirst2000.vo.PenilaianKinerjaVO;
/**
* @author salmanoe
* @since Jul 6, 2022
*
*/
public interface PenilaianKinerjaService extends BaseVoService<PenilaianKinerja, PenilaianKinerjaVO, String> {
}

View File

@ -0,0 +1,126 @@
package com.jasamedika.medifirst2000.service.impl;
import java.util.ArrayList;
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.converter.BaseConverterImpl;
import com.jasamedika.medifirst2000.dao.PenilaianKinerjaDetailDao;
import com.jasamedika.medifirst2000.entities.IndikatorKinerja;
import com.jasamedika.medifirst2000.entities.PenilaianKinerja;
import com.jasamedika.medifirst2000.entities.PenilaianKinerjaDetail;
import com.jasamedika.medifirst2000.entities.SatuanIndikator;
import com.jasamedika.medifirst2000.exception.ServiceVOException;
import com.jasamedika.medifirst2000.service.PenilaianKinerjaDetailService;
import com.jasamedika.medifirst2000.util.CommonUtil;
import com.jasamedika.medifirst2000.vo.IndikatorKinerjaVO;
import com.jasamedika.medifirst2000.vo.PenilaianKinerjaDetailVO;
import com.jasamedika.medifirst2000.vo.PenilaianKinerjaVO;
import com.jasamedika.medifirst2000.vo.SatuanIndikatorVO;
/**
* @author salmanoe
* @since Jul 6, 2022
*
*/
@Service("penilaianKinerjaDetailService")
public class PenilaianKinerjaServiceDetailImpl extends BaseVoServiceImpl implements PenilaianKinerjaDetailService {
@Autowired
private BaseConverterImpl<PenilaianKinerjaDetailVO, PenilaianKinerjaDetail> penilaianDetailConverter;
@Autowired
private BaseConverterImpl<PenilaianKinerjaVO, PenilaianKinerja> penilaianConverter;
@Autowired
private BaseConverterImpl<IndikatorKinerjaVO, IndikatorKinerja> indikatorConverter;
@Autowired
private BaseConverterImpl<SatuanIndikatorVO, SatuanIndikator> satuanConverter;
@Autowired
private PenilaianKinerjaDetailDao penilaianKinerjaDetailDao;
@Override
public PenilaianKinerjaDetailVO add(PenilaianKinerjaDetailVO vo) throws JpaSystemException, ServiceVOException {
PenilaianKinerja penilaian = penilaianConverter.transferVOToModel(vo.getPenilaianKinerja(),
new PenilaianKinerja());
IndikatorKinerja indikator = indikatorConverter.transferVOToModel(vo.getIndikatorKinerja(),
new IndikatorKinerja());
SatuanIndikator satuan = satuanConverter.transferVOToModel(vo.getSatuan(), new SatuanIndikator());
PenilaianKinerjaDetail penilaianDetail = penilaianDetailConverter.transferVOToModel(vo,
new PenilaianKinerjaDetail());
penilaianDetail.setPenilaianKinerja(penilaian);
penilaianDetail.setIndikatorKinerja(indikator);
penilaianDetail.setSatuan(satuan);
penilaianDetail.setStatusEnabled(Boolean.TRUE);
penilaianDetail.setKdProfile((short) 0);
PenilaianKinerjaDetail resultModel = penilaianKinerjaDetailDao.save(penilaianDetail);
PenilaianKinerjaDetailVO resultVO = new PenilaianKinerjaDetailVO();
resultVO = penilaianDetailConverter.transferModelToVO(resultModel, resultVO);
return resultVO;
}
@Override
public PenilaianKinerjaDetailVO update(PenilaianKinerjaDetailVO vo) throws JpaSystemException, ServiceVOException {
PenilaianKinerjaDetail penilaianDetailLama = penilaianKinerjaDetailDao.findOne(vo.getNoRec());
PenilaianKinerja penilaian = penilaianConverter.transferVOToModel(vo.getPenilaianKinerja(),
new PenilaianKinerja());
IndikatorKinerja indikator = indikatorConverter.transferVOToModel(vo.getIndikatorKinerja(),
new IndikatorKinerja());
SatuanIndikator satuan = satuanConverter.transferVOToModel(vo.getSatuan(), new SatuanIndikator());
PenilaianKinerjaDetail penilaianDetailBaru = penilaianDetailConverter.transferVOToModel(vo,
penilaianDetailLama);
penilaianDetailBaru.setPenilaianKinerja(penilaian);
penilaianDetailBaru.setIndikatorKinerja(indikator);
penilaianDetailBaru.setSatuan(satuan);
PenilaianKinerjaDetail resultModel = penilaianKinerjaDetailDao.save(penilaianDetailBaru);
PenilaianKinerjaDetailVO resultVO = new PenilaianKinerjaDetailVO();
resultVO = penilaianDetailConverter.transferModelToVO(resultModel, resultVO);
return resultVO;
}
@Override
public Boolean delete(String key) throws JpaSystemException {
penilaianKinerjaDetailDao.delete(key);
return true;
}
@Override
public PenilaianKinerjaDetailVO findById(String key) throws JpaSystemException {
PenilaianKinerjaDetailVO result = new PenilaianKinerjaDetailVO();
PenilaianKinerjaDetail penilaianDetail = penilaianKinerjaDetailDao.findOne(key);
if (CommonUtil.isNotNullOrEmpty(penilaianDetail)) {
result = penilaianDetailConverter.transferModelToVO(penilaianDetail, result);
}
return result;
}
@Override
public List<PenilaianKinerjaDetailVO> findAll() throws JpaSystemException {
List<PenilaianKinerjaDetailVO> result = new ArrayList<PenilaianKinerjaDetailVO>();
Iterable<PenilaianKinerjaDetail> models = penilaianKinerjaDetailDao.findAll();
if (CommonUtil.isNotNullOrEmpty(models)) {
for (PenilaianKinerjaDetail model : models) {
PenilaianKinerjaDetailVO vo = new PenilaianKinerjaDetailVO();
vo = penilaianDetailConverter.transferModelToVO(model, vo);
result.add(vo);
}
}
return result;
}
@Override
public Map<String, Object> findAllWithPageAndLimitAndSortByAndDirectionParameter(Integer page, Integer limit,
String sort, String dir) {
return null;
}
}

View File

@ -0,0 +1,150 @@
package com.jasamedika.medifirst2000.service.impl;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.orm.jpa.JpaSystemException;
import org.springframework.stereotype.Service;
import com.jasamedika.medifirst2000.converter.BaseConverterImpl;
import com.jasamedika.medifirst2000.dao.MapPegawaiJabatanToUnitKerjaDao;
import com.jasamedika.medifirst2000.dao.PenilaianKinerjaDao;
import com.jasamedika.medifirst2000.dao.PenilaianKinerjaDetailDao;
import com.jasamedika.medifirst2000.entities.IndikatorKinerja;
import com.jasamedika.medifirst2000.entities.Jabatan;
import com.jasamedika.medifirst2000.entities.Pegawai;
import com.jasamedika.medifirst2000.entities.PenilaianKinerja;
import com.jasamedika.medifirst2000.entities.PenilaianKinerjaDetail;
import com.jasamedika.medifirst2000.entities.SatuanIndikator;
import com.jasamedika.medifirst2000.exception.ServiceVOException;
import com.jasamedika.medifirst2000.service.PenilaianKinerjaService;
import com.jasamedika.medifirst2000.util.CommonUtil;
import com.jasamedika.medifirst2000.vo.IndikatorKinerjaVO;
import com.jasamedika.medifirst2000.vo.JabatanVO;
import com.jasamedika.medifirst2000.vo.PegawaiVO;
import com.jasamedika.medifirst2000.vo.PenilaianKinerjaDetailVO;
import com.jasamedika.medifirst2000.vo.PenilaianKinerjaVO;
import com.jasamedika.medifirst2000.vo.SatuanIndikatorVO;
/**
* @author salmanoe
* @since Jul 6, 2022
*
*/
@Service("penilaianKinerjaService")
public class PenilaianKinerjaServiceImpl extends BaseVoServiceImpl implements PenilaianKinerjaService {
@Autowired
private BaseConverterImpl<PenilaianKinerjaVO, PenilaianKinerja> penilaianConverter;
@Autowired
private BaseConverterImpl<PenilaianKinerjaDetailVO, PenilaianKinerjaDetail> penilaianDetailConverter;
@Autowired
private BaseConverterImpl<PegawaiVO, Pegawai> pegawaiConverter;
@Autowired
private BaseConverterImpl<JabatanVO, Jabatan> jabatanConverter;
@Autowired
private BaseConverterImpl<IndikatorKinerjaVO, IndikatorKinerja> indikatorConverter;
@Autowired
private BaseConverterImpl<SatuanIndikatorVO, SatuanIndikator> satuanConverter;
@Autowired
private PenilaianKinerjaDao penilaianKinerjaDao;
@Autowired
private PenilaianKinerjaDetailDao penilaianKinerjaDetailDao;
@Autowired
private MapPegawaiJabatanToUnitKerjaDao mappingJabatanDao;
@Override
public PenilaianKinerjaVO add(PenilaianKinerjaVO vo) throws JpaSystemException, ServiceVOException {
Pegawai pegawai = pegawaiConverter.transferVOToModel(vo.getPegawai(), new Pegawai());
Jabatan jabatan = jabatanConverter.transferVOToModel(vo.getJabatan(), new Jabatan());
PenilaianKinerja penilaianKinerja = penilaianConverter.transferVOToModel(vo, new PenilaianKinerja());
penilaianKinerja.setPegawai(pegawai);
penilaianKinerja.setJabatan(jabatan);
Optional<Double> nilaiJabatan = mappingJabatanDao.findByPegawaiAndJabatan(vo.getPegawai().getId(),
vo.getJabatan().getId());
if (CommonUtil.isNotNullOrEmpty(nilaiJabatan) && nilaiJabatan.isPresent()) {
penilaianKinerja.setNilaiJabatan(nilaiJabatan.get());
}
penilaianKinerja.setStatusEnabled(Boolean.TRUE);
penilaianKinerja.setKdProfile((short) 0);
PenilaianKinerja resultModel = penilaianKinerjaDao.save(penilaianKinerja);
if (CommonUtil.isNotNullOrEmpty(resultModel)) {
for (PenilaianKinerjaDetailVO detailVO : vo.getDetail()) {
IndikatorKinerja indikator = indikatorConverter.transferVOToModel(detailVO.getIndikatorKinerja(),
new IndikatorKinerja());
SatuanIndikator satuan = satuanConverter.transferVOToModel(detailVO.getSatuan(), new SatuanIndikator());
PenilaianKinerjaDetail detail = penilaianDetailConverter.transferVOToModel(detailVO,
new PenilaianKinerjaDetail());
detail.setIndikatorKinerja(indikator);
detail.setSatuan(satuan);
detail.setPenilaianKinerja(resultModel);
penilaianKinerjaDetailDao.save(detail);
}
}
PenilaianKinerjaVO resultVO = new PenilaianKinerjaVO();
resultVO = penilaianConverter.transferModelToVO(resultModel, resultVO);
return resultVO;
}
@Override
public PenilaianKinerjaVO update(PenilaianKinerjaVO vo) throws JpaSystemException, ServiceVOException {
PenilaianKinerja penilaianKinerjaLama = penilaianKinerjaDao.findOne(vo.getNoRec());
Pegawai pegawai = pegawaiConverter.transferVOToModel(vo.getPegawai(), new Pegawai());
Jabatan jabatan = jabatanConverter.transferVOToModel(vo.getJabatan(), new Jabatan());
PenilaianKinerja penilaianKinerjaBaru = penilaianConverter.transferVOToModel(vo, penilaianKinerjaLama);
penilaianKinerjaBaru.setPegawai(pegawai);
penilaianKinerjaBaru.setJabatan(jabatan);
PenilaianKinerja resultModel = penilaianKinerjaDao.save(penilaianKinerjaBaru);
PenilaianKinerjaVO resultVO = new PenilaianKinerjaVO();
resultVO = penilaianConverter.transferModelToVO(resultModel, resultVO);
return resultVO;
}
@Override
public Boolean delete(String key) throws JpaSystemException {
penilaianKinerjaDao.delete(key);
return true;
}
@Override
public PenilaianKinerjaVO findById(String key) throws JpaSystemException {
PenilaianKinerjaVO result = new PenilaianKinerjaVO();
PenilaianKinerja penilaianKinerja = penilaianKinerjaDao.findOne(key);
if (CommonUtil.isNotNullOrEmpty(penilaianKinerja)) {
result = penilaianConverter.transferModelToVO(penilaianKinerja, result);
}
return result;
}
@Override
public List<PenilaianKinerjaVO> findAll() throws JpaSystemException {
List<PenilaianKinerjaVO> result = new ArrayList<>();
Iterable<PenilaianKinerja> models = penilaianKinerjaDao.findAll();
if (CommonUtil.isNotNullOrEmpty(models)) {
for (PenilaianKinerja model : models) {
PenilaianKinerjaVO vo = new PenilaianKinerjaVO();
vo = penilaianConverter.transferModelToVO(model, vo);
result.add(vo);
}
}
return result;
}
@Override
public Map<String, Object> findAllWithPageAndLimitAndSortByAndDirectionParameter(Integer page, Integer limit,
String sort, String dir) {
return null;
}
}

View File

@ -0,0 +1,158 @@
package com.jasamedika.medifirst2000.entities;
import java.util.Date;
import javax.persistence.Column;
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 org.hibernate.validator.constraints.NotEmpty;
import com.jasamedika.medifirst2000.base.BaseTransaction;
import com.jasamedika.medifirst2000.helper.Caption;
/**
* @author salmanoe
* @since Jul 6, 2022
*
*/
@Entity
@Table(name = "sdm_penilaiankinerja_t")
public class PenilaianKinerja extends BaseTransaction {
private static final long serialVersionUID = 2241575067715329583L;
@Caption("Bulan")
@NotNull(message = "Bulan wajib diisi")
@Column(name = "bulan", nullable = false)
@Temporal(TemporalType.DATE)
private Date bulan;
@Caption("Pegawai")
@NotNull(message = "Pegawai wajib diisi")
@ManyToOne
@JoinColumn(name = "pegawaifk")
private Pegawai pegawai;
@Column(name = "pegawaifk", insertable = false, updatable = false, nullable = false)
private Integer pegawaiId;
@Caption("Jabatan")
@NotNull(message = "Jabatan wajib diisi")
@ManyToOne
@JoinColumn(name = "jabatanfk")
private Jabatan jabatan;
@Column(name = "jabatanfk", insertable = false, updatable = false, nullable = false)
private Integer jabatanId;
@Caption(value = "Nilai Jabatan")
@Column(name = "nilaijabatan")
private Double nilaiJabatan;
@Caption(value = "IKI")
@NotNull(message = "IKI wajib diisi")
@Column(name = "iki", nullable = false)
private Double iki;
@Caption(value = "Bobot")
@NotNull(message = "Bobot wajib diisi")
@Column(name = "bobot", nullable = false)
private Double bobot;
@Caption(value = "Hasil")
@NotNull(message = "Hasil wajib diisi")
@Column(name = "hasil", nullable = false)
private Double hasil;
@Caption(value = "Kriteria")
@NotEmpty(message = "Kriteria wajib diisi")
@Column(name = "kriteria", nullable = false)
private String kriteria;
public Date getBulan() {
return bulan;
}
public void setBulan(Date bulan) {
this.bulan = bulan;
}
public Pegawai getPegawai() {
return pegawai;
}
public void setPegawai(Pegawai pegawai) {
this.pegawai = pegawai;
}
public Integer getPegawaiId() {
return pegawaiId;
}
public void setPegawaiId(Integer pegawaiId) {
this.pegawaiId = pegawaiId;
}
public Jabatan getJabatan() {
return jabatan;
}
public void setJabatan(Jabatan jabatan) {
this.jabatan = jabatan;
}
public Integer getJabatanId() {
return jabatanId;
}
public void setJabatanId(Integer jabatanId) {
this.jabatanId = jabatanId;
}
public Double getNilaiJabatan() {
return nilaiJabatan;
}
public void setNilaiJabatan(Double nilaiJabatan) {
this.nilaiJabatan = nilaiJabatan;
}
public Double getIki() {
return iki;
}
public void setIki(Double iki) {
this.iki = iki;
}
public Double getBobot() {
return bobot;
}
public void setBobot(Double bobot) {
this.bobot = bobot;
}
public Double getHasil() {
return hasil;
}
public void setHasil(Double hasil) {
this.hasil = hasil;
}
public String getKriteria() {
return kriteria;
}
public void setKriteria(String kriteria) {
this.kriteria = kriteria;
}
}

View File

@ -0,0 +1,177 @@
package com.jasamedika.medifirst2000.entities;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import javax.validation.constraints.NotNull;
import com.jasamedika.medifirst2000.base.BaseTransaction;
import com.jasamedika.medifirst2000.helper.Caption;
/**
* @author salmanoe
* @since Jul 6, 2022
*
*/
@Entity
@Table(name = "sdm_penilaiankinerjadetail_t")
public class PenilaianKinerjaDetail extends BaseTransaction {
private static final long serialVersionUID = 3594531795669754275L;
@Caption("Penilaian Kinerja")
@NotNull(message = "Penilaian kinerja wajib diisi")
@ManyToOne
@JoinColumn(name = "penilaiankinerjafk")
private PenilaianKinerja penilaianKinerja;
@Column(name = "penilaiankinerjafk", columnDefinition = "CHAR(32)", insertable = false, updatable = false, nullable = false)
private String penilaianKinerjaId;
@Caption("Jenis Indikator")
@NotNull(message = "Jenis indikator wajib diisi")
@Column(name = "jenisindikatorid", nullable = false)
private Short jenisIndikatorId;
@Caption("Indikator Kinerja")
@NotNull(message = "Indikator kinerja wajib diisi")
@ManyToOne
@JoinColumn(name = "indikatorkinerjafk")
private IndikatorKinerja indikatorKinerja;
@Column(name = "indikatorkinerjafk", insertable = false, updatable = false, nullable = false)
private Integer indikatorKinerjaId;
@Caption("Bobot")
@NotNull(message = "Bobot wajib diisi")
@Column(name = "bobot", nullable = false)
private Integer bobot;
@Caption("Target")
@NotNull(message = "Target wajib diisi")
@Column(name = "target", nullable = false)
private Double target;
@Caption("Realisasi")
@NotNull(message = "Realisasi wajib diisi")
@Column(name = "realisasi", nullable = false)
private Double realisasi;
@Caption("Satuan")
@NotNull(message = "Satuan wajib diisi")
@ManyToOne
@JoinColumn(name = "satuanfk")
private SatuanIndikator satuan;
@Column(name = "satuanfk", insertable = false, updatable = false, nullable = false)
private Integer satuanId;
@Caption("Nilai")
@NotNull(message = "Nilai wajib diisi")
@Column(name = "nilai", nullable = false)
private Double nilai;
@Caption("Hasil")
@NotNull(message = "Hasil wajib diisi")
@Column(name = "hasil", nullable = false)
private Double hasil;
public PenilaianKinerja getPenilaianKinerja() {
return penilaianKinerja;
}
public void setPenilaianKinerja(PenilaianKinerja penilaianKinerja) {
this.penilaianKinerja = penilaianKinerja;
}
public String getPenilaianKinerjaId() {
return penilaianKinerjaId;
}
public void setPenilaianKinerjaId(String penilaianKinerjaId) {
this.penilaianKinerjaId = penilaianKinerjaId;
}
public Short getJenisIndikatorId() {
return jenisIndikatorId;
}
public void setJenisIndikatorId(Short jenisIndikatorId) {
this.jenisIndikatorId = jenisIndikatorId;
}
public IndikatorKinerja getIndikatorKinerja() {
return indikatorKinerja;
}
public void setIndikatorKinerja(IndikatorKinerja indikatorKinerja) {
this.indikatorKinerja = indikatorKinerja;
}
public Integer getIndikatorKinerjaId() {
return indikatorKinerjaId;
}
public void setIndikatorKinerjaId(Integer indikatorKinerjaId) {
this.indikatorKinerjaId = indikatorKinerjaId;
}
public Integer getBobot() {
return bobot;
}
public void setBobot(Integer bobot) {
this.bobot = bobot;
}
public Double getTarget() {
return target;
}
public void setTarget(Double target) {
this.target = target;
}
public Double getRealisasi() {
return realisasi;
}
public void setRealisasi(Double realisasi) {
this.realisasi = realisasi;
}
public SatuanIndikator getSatuan() {
return satuan;
}
public void setSatuan(SatuanIndikator satuan) {
this.satuan = satuan;
}
public Integer getSatuanId() {
return satuanId;
}
public void setSatuanId(Integer satuanId) {
this.satuanId = satuanId;
}
public Double getNilai() {
return nilai;
}
public void setNilai(Double nilai) {
this.nilai = nilai;
}
public Double getHasil() {
return hasil;
}
public void setHasil(Double hasil) {
this.hasil = hasil;
}
}

View File

@ -0,0 +1,155 @@
package com.jasamedika.medifirst2000.vo;
import javax.validation.constraints.NotNull;
import com.jasamedika.medifirst2000.base.vo.BaseTransactionVO;
import com.jasamedika.medifirst2000.helper.Caption;
/**
* @author salmanoe
* @since Jul 6, 2022
*
*/
public class PenilaianKinerjaDetailVO extends BaseTransactionVO {
private static final long serialVersionUID = 719673316750341385L;
@Caption("Penilaian Kinerja")
@NotNull(message = "Penilaian kinerja wajib diisi")
private PenilaianKinerjaVO penilaianKinerja;
private String penilaianKinerjaId;
@Caption("Jenis Indikator")
@NotNull(message = "Jenis indikator wajib diisi")
private Short jenisIndikatorId;
@Caption("Indikator Kinerja")
@NotNull(message = "Indikator kinerja wajib diisi")
private IndikatorKinerjaVO indikatorKinerja;
private Integer indikatorKinerjaId;
@Caption("Bobot")
@NotNull(message = "Bobot wajib diisi")
private Integer bobot;
@Caption("Target")
@NotNull(message = "Target wajib diisi")
private Double target;
@Caption("Realisasi")
@NotNull(message = "Realisasi wajib diisi")
private Double realisasi;
@Caption("Satuan")
@NotNull(message = "Satuan wajib diisi")
private SatuanIndikatorVO satuan;
private Integer satuanId;
@Caption("Nilai")
@NotNull(message = "Nilai wajib diisi")
private Double nilai;
@Caption("Hasil")
@NotNull(message = "Hasil wajib diisi")
private Double hasil;
public PenilaianKinerjaVO getPenilaianKinerja() {
return penilaianKinerja;
}
public void setPenilaianKinerja(PenilaianKinerjaVO penilaianKinerja) {
this.penilaianKinerja = penilaianKinerja;
}
public String getPenilaianKinerjaId() {
return penilaianKinerjaId;
}
public void setPenilaianKinerjaId(String penilaianKinerjaId) {
this.penilaianKinerjaId = penilaianKinerjaId;
}
public Short getJenisIndikatorId() {
return jenisIndikatorId;
}
public void setJenisIndikatorId(Short jenisIndikatorId) {
this.jenisIndikatorId = jenisIndikatorId;
}
public IndikatorKinerjaVO getIndikatorKinerja() {
return indikatorKinerja;
}
public void setIndikatorKinerja(IndikatorKinerjaVO indikatorKinerja) {
this.indikatorKinerja = indikatorKinerja;
}
public Integer getIndikatorKinerjaId() {
return indikatorKinerjaId;
}
public void setIndikatorKinerjaId(Integer indikatorKinerjaId) {
this.indikatorKinerjaId = indikatorKinerjaId;
}
public Integer getBobot() {
return bobot;
}
public void setBobot(Integer bobot) {
this.bobot = bobot;
}
public Double getTarget() {
return target;
}
public void setTarget(Double target) {
this.target = target;
}
public Double getRealisasi() {
return realisasi;
}
public void setRealisasi(Double realisasi) {
this.realisasi = realisasi;
}
public SatuanIndikatorVO getSatuan() {
return satuan;
}
public void setSatuan(SatuanIndikatorVO satuan) {
this.satuan = satuan;
}
public Integer getSatuanId() {
return satuanId;
}
public void setSatuanId(Integer satuanId) {
this.satuanId = satuanId;
}
public Double getNilai() {
return nilai;
}
public void setNilai(Double nilai) {
this.nilai = nilai;
}
public Double getHasil() {
return hasil;
}
public void setHasil(Double hasil) {
this.hasil = hasil;
}
}

View File

@ -0,0 +1,150 @@
package com.jasamedika.medifirst2000.vo;
import java.util.Date;
import java.util.HashSet;
import java.util.Set;
import javax.validation.constraints.NotNull;
import org.hibernate.validator.constraints.NotEmpty;
import com.fasterxml.jackson.annotation.JsonBackReference;
import com.jasamedika.medifirst2000.base.vo.BaseTransactionVO;
import com.jasamedika.medifirst2000.helper.Caption;
/**
* @author salmanoe
* @since Jul 6, 2022
*
*/
public class PenilaianKinerjaVO extends BaseTransactionVO {
private static final long serialVersionUID = -2885864808873627462L;
@Caption("Bulan")
@NotNull(message = "Bulan wajib diisi")
private Date bulan;
@Caption("Pegawai")
@NotNull(message = "Pegawai wajib diisi")
private PegawaiVO pegawai;
private Integer pegawaiId;
@Caption("Jabatan")
@NotNull(message = "Jabatan wajib diisi")
private JabatanVO jabatan;
private Integer jabatanId;
@Caption(value = "Nilai Jabatan")
private Double nilaiJabatan;
@Caption(value = "IKI")
@NotNull(message = "IKI wajib diisi")
private Double iki;
@Caption(value = "Bobot")
@NotNull(message = "Bobot wajib diisi")
private Double bobot;
@Caption(value = "Hasil")
@NotNull(message = "Hasil wajib diisi")
private Double hasil;
@Caption(value = "Kriteria")
@NotEmpty(message = "Kriteria wajib diisi")
private String kriteria;
@JsonBackReference
private Set<PenilaianKinerjaDetailVO> detail = new HashSet<PenilaianKinerjaDetailVO>();
public Date getBulan() {
return bulan;
}
public void setBulan(Date bulan) {
this.bulan = bulan;
}
public PegawaiVO getPegawai() {
return pegawai;
}
public void setPegawai(PegawaiVO pegawai) {
this.pegawai = pegawai;
}
public Integer getPegawaiId() {
return pegawaiId;
}
public void setPegawaiId(Integer pegawaiId) {
this.pegawaiId = pegawaiId;
}
public JabatanVO getJabatan() {
return jabatan;
}
public void setJabatan(JabatanVO jabatan) {
this.jabatan = jabatan;
}
public Integer getJabatanId() {
return jabatanId;
}
public void setJabatanId(Integer jabatanId) {
this.jabatanId = jabatanId;
}
public Double getNilaiJabatan() {
return nilaiJabatan;
}
public void setNilaiJabatan(Double nilaiJabatan) {
this.nilaiJabatan = nilaiJabatan;
}
public Double getIki() {
return iki;
}
public void setIki(Double iki) {
this.iki = iki;
}
public Double getBobot() {
return bobot;
}
public void setBobot(Double bobot) {
this.bobot = bobot;
}
public Double getHasil() {
return hasil;
}
public void setHasil(Double hasil) {
this.hasil = hasil;
}
public String getKriteria() {
return kriteria;
}
public void setKriteria(String kriteria) {
this.kriteria = kriteria;
}
public Set<PenilaianKinerjaDetailVO> getDetail() {
return detail;
}
public void setDetail(Set<PenilaianKinerjaDetailVO> detail) {
this.detail = detail;
}
}

View File

@ -706,5 +706,7 @@
<mapping class="com.jasamedika.medifirst2000.entities.ProdukFarmakologi"/>
<mapping class="com.jasamedika.medifirst2000.entities.SkoringTindakanFarmakologi"/>
<mapping class="com.jasamedika.medifirst2000.entities.PelayananFarmakologi"/>
<mapping class="com.jasamedika.medifirst2000.entities.PenilaianKinerja"/>
<mapping class="com.jasamedika.medifirst2000.entities.PenilaianKinerjaDetail"/>
</session-factory>
</hibernate-configuration>

View File

@ -42,6 +42,7 @@ import com.jasamedika.medifirst2000.service.PelayananFarmakologiService;
import com.jasamedika.medifirst2000.service.PelayananNakesService;
import com.jasamedika.medifirst2000.service.PelayananPasienNakesService;
import com.jasamedika.medifirst2000.service.PelayananPasienPerawatService;
import com.jasamedika.medifirst2000.service.PenilaianKinerjaService;
import com.jasamedika.medifirst2000.service.ProdukFarmakologiService;
import com.jasamedika.medifirst2000.service.ProdukNakesService;
import com.jasamedika.medifirst2000.service.ProdukPerawatService;
@ -69,6 +70,7 @@ import com.jasamedika.medifirst2000.vo.PelayananFarmakologiVO;
import com.jasamedika.medifirst2000.vo.PelayananNakesVO;
import com.jasamedika.medifirst2000.vo.PelayananPasienNakesVO;
import com.jasamedika.medifirst2000.vo.PelayananPasienPerawatVO;
import com.jasamedika.medifirst2000.vo.PenilaianKinerjaVO;
import com.jasamedika.medifirst2000.vo.ProdukFarmakologiVO;
import com.jasamedika.medifirst2000.vo.ProdukNakesVO;
import com.jasamedika.medifirst2000.vo.ProdukPerawatVO;
@ -169,6 +171,9 @@ public class IkiDanRemunerasiController extends LocaleController<IkiDanRemuneras
@Autowired
private PelayananFarmakologiService pelayananFarmakologiService;
@Autowired
private PenilaianKinerjaService penilaianKinerjaService;
@RequestMapping(value = "/get-load-data", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<Map<String, Object>> getLoadData(HttpServletRequest request) {
try {
@ -2676,4 +2681,29 @@ public class IkiDanRemunerasiController extends LocaleController<IkiDanRemuneras
}
}
@RequestMapping(value = "/verify-penilaian-kinerja-individu", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE, consumes = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<PenilaianKinerjaVO> verifyPenilaianKinerjaIndividu(HttpServletRequest request,
@Valid @RequestBody PenilaianKinerjaVO vo) {
try {
PenilaianKinerjaVO result = penilaianKinerjaService.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 {
mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_ERROR,
getMessage(MessageResource.LABEL_ERROR, request));
return RestUtil.getJsonHttptatus(HttpStatus.BAD_REQUEST, mapHeaderMessage);
}
} catch (ServiceVOException sve) {
LOGGER.error("Got exception {} when verify penilaian 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 verify penilaian kinerja individu", jse.getMessage());
addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, jse.getMessage());
return RestUtil.getJsonHttptatus(HttpStatus.CONFLICT, mapHeaderMessage);
}
}
}