- pembuatan service simpan indeks kinerja individu dokter

- pembuatan service ubah indeks kinerja individu dokter
- pembuatan service hapus indeks kinerja individu dokter
- pembuatan service tampil data indeks kinerja individu dokter
This commit is contained in:
salmanoe 2021-11-30 18:52:22 +07:00
parent 727f31b557
commit 00c6773b9b
6 changed files with 508 additions and 0 deletions

View File

@ -0,0 +1,15 @@
package com.jasamedika.medifirst2000.dao;
import org.springframework.data.repository.PagingAndSortingRepository;
import org.springframework.stereotype.Repository;
import com.jasamedika.medifirst2000.entities.IndeksKinerjaDokter;
/**
* @author ITI-14
* @since Nov 29, 2021
*/
@Repository("indeksKinerjaDokterDao")
public interface IndeksKinerjaDokterDao extends PagingAndSortingRepository<IndeksKinerjaDokter, String> {
}

View File

@ -0,0 +1,19 @@
package com.jasamedika.medifirst2000.service;
import java.util.List;
import org.springframework.orm.jpa.JpaSystemException;
import com.jasamedika.medifirst2000.entities.IndeksKinerjaDokter;
import com.jasamedika.medifirst2000.exception.ServiceVOException;
import com.jasamedika.medifirst2000.vo.IndeksKinerjaDokterVO;
/**
* @author ITI-14
* @since Nov 29, 2021
*/
public interface IndeksKinerjaDokterService extends BaseVoService<IndeksKinerjaDokter, IndeksKinerjaDokterVO, String> {
public List<String> addAll(List<IndeksKinerjaDokterVO> vos) throws JpaSystemException, ServiceVOException;
}

View File

@ -0,0 +1,159 @@
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.IndeksKinerjaDokterDao;
import com.jasamedika.medifirst2000.entities.IndeksKinerjaDokter;
import com.jasamedika.medifirst2000.entities.Pegawai;
import com.jasamedika.medifirst2000.entities.SubUnitKerjaPegawai;
import com.jasamedika.medifirst2000.entities.UnitKerjaPegawai;
import com.jasamedika.medifirst2000.exception.ServiceVOException;
import com.jasamedika.medifirst2000.service.IndeksKinerjaDokterService;
import com.jasamedika.medifirst2000.util.CommonUtil;
import com.jasamedika.medifirst2000.vo.IndeksKinerjaDokterVO;
import com.jasamedika.medifirst2000.vo.PegawaiVO;
import com.jasamedika.medifirst2000.vo.SubUnitKerjaPegawaiVO;
import com.jasamedika.medifirst2000.vo.UnitKerjaPegawaiVO;
/**
* @author ITI-14
* @since Nov 29, 2021
*/
@Service("indeksKinerjaDokterService")
public class IndeksKinerjaDokterServiceImpl extends BaseVoServiceImpl implements IndeksKinerjaDokterService {
@Autowired
private BaseConverterImpl<IndeksKinerjaDokterVO, IndeksKinerjaDokter> indeksKinerjaDokterConverter;
@Autowired
private BaseConverterImpl<UnitKerjaPegawaiVO, UnitKerjaPegawai> unitKerjaConverter;
@Autowired
private BaseConverterImpl<SubUnitKerjaPegawaiVO, SubUnitKerjaPegawai> subunitKerjaConverter;
@Autowired
private BaseConverterImpl<PegawaiVO, Pegawai> pegawaiConverter;
@Autowired
private IndeksKinerjaDokterDao indeksKinerjaDokterDao;
@Override
public IndeksKinerjaDokterVO add(IndeksKinerjaDokterVO vo) throws JpaSystemException, ServiceVOException {
UnitKerjaPegawai unitKerja = unitKerjaConverter.transferVOToModel(vo.getUnitKerja(), new UnitKerjaPegawai());
SubUnitKerjaPegawai subunitKerja = subunitKerjaConverter.transferVOToModel(vo.getSubunitKerja(),
new SubUnitKerjaPegawai());
Pegawai pegawai = pegawaiConverter.transferVOToModel(vo.getPegawai(), new Pegawai());
IndeksKinerjaDokter ikiDokter = indeksKinerjaDokterConverter.transferVOToModel(vo, new IndeksKinerjaDokter());
ikiDokter.setUnitKerja(unitKerja);
ikiDokter.setSubunitKerja(subunitKerja);
ikiDokter.setPegawai(pegawai);
IndeksKinerjaDokter resultModel = indeksKinerjaDokterDao.save(ikiDokter);
IndeksKinerjaDokterVO resultVO = new IndeksKinerjaDokterVO();
resultVO = indeksKinerjaDokterConverter.transferModelToVO(resultModel, resultVO);
return resultVO;
}
@Override
public List<String> addAll(List<IndeksKinerjaDokterVO> vos) throws JpaSystemException, ServiceVOException {
List<String> result = new ArrayList<>();
List<IndeksKinerjaDokter> ikiAllDokter = new ArrayList<>();
for (IndeksKinerjaDokterVO vo : vos) {
UnitKerjaPegawai unitKerja = unitKerjaConverter.transferVOToModel(vo.getUnitKerja(),
new UnitKerjaPegawai());
SubUnitKerjaPegawai subunitKerja = subunitKerjaConverter.transferVOToModel(vo.getSubunitKerja(),
new SubUnitKerjaPegawai());
Pegawai pegawai = pegawaiConverter.transferVOToModel(vo.getPegawai(), new Pegawai());
IndeksKinerjaDokter ikiDokter = indeksKinerjaDokterConverter.transferVOToModel(vo,
new IndeksKinerjaDokter());
ikiDokter.setUnitKerja(unitKerja);
ikiDokter.setSubunitKerja(subunitKerja);
ikiDokter.setPegawai(pegawai);
ikiAllDokter.add(ikiDokter);
}
Iterable<IndeksKinerjaDokter> resultModels = indeksKinerjaDokterDao.save(ikiAllDokter);
if (CommonUtil.isNotNullOrEmpty(resultModels)) {
for (IndeksKinerjaDokter resultModel : resultModels) {
result.add(resultModel.getNoRec());
}
}
return result;
}
@Override
public IndeksKinerjaDokterVO update(IndeksKinerjaDokterVO vo) throws JpaSystemException, ServiceVOException {
IndeksKinerjaDokter ikiLamaDokter = indeksKinerjaDokterDao.findOne(vo.getNoRec());
UnitKerjaPegawai unitKerja = unitKerjaConverter.transferVOToModel(vo.getUnitKerja(), new UnitKerjaPegawai());
SubUnitKerjaPegawai subunitKerja = subunitKerjaConverter.transferVOToModel(vo.getSubunitKerja(),
new SubUnitKerjaPegawai());
Pegawai pegawai = pegawaiConverter.transferVOToModel(vo.getPegawai(), new Pegawai());
IndeksKinerjaDokter ikiBaruDokter = indeksKinerjaDokterConverter.transferVOToModel(vo, ikiLamaDokter);
ikiBaruDokter.setUnitKerja(unitKerja);
ikiBaruDokter.setSubunitKerja(subunitKerja);
ikiBaruDokter.setPegawai(pegawai);
IndeksKinerjaDokter resultModel = indeksKinerjaDokterDao.save(ikiBaruDokter);
IndeksKinerjaDokterVO resultVO = new IndeksKinerjaDokterVO();
resultVO = indeksKinerjaDokterConverter.transferModelToVO(resultModel, resultVO);
return resultVO;
}
@Override
public Boolean delete(String key) throws JpaSystemException {
indeksKinerjaDokterDao.delete(key);
return true;
}
@Override
public IndeksKinerjaDokterVO findById(String key) throws JpaSystemException {
IndeksKinerjaDokterVO result = new IndeksKinerjaDokterVO();
IndeksKinerjaDokter ikiDokter = indeksKinerjaDokterDao.findOne(key);
if (CommonUtil.isNotNullOrEmpty(ikiDokter)) {
result = indeksKinerjaDokterConverter.transferModelToVO(ikiDokter, result);
}
return result;
}
@Override
public List<IndeksKinerjaDokterVO> findAll() throws JpaSystemException {
List<IndeksKinerjaDokterVO> result = new ArrayList<IndeksKinerjaDokterVO>();
Iterable<IndeksKinerjaDokter> models = indeksKinerjaDokterDao.findAll();
if (CommonUtil.isNotNullOrEmpty(models)) {
for (IndeksKinerjaDokter model : models) {
IndeksKinerjaDokterVO vo = new IndeksKinerjaDokterVO();
vo = indeksKinerjaDokterConverter.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,157 @@
package com.jasamedika.medifirst2000.entities;
import java.util.Date;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
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;
import com.jasamedika.medifirst2000.helper.Caption;
/**
* @author ITI-14
* @since Nov 29, 2021
*/
@Entity
@Table(name = "sdm_indekskinerjadokter_t")
public class IndeksKinerjaDokter extends BaseTransaction {
@ManyToOne(fetch = FetchType.LAZY)
@NotNull(message = "Unit Kerja tidak boleh kosong")
@JoinColumn(name = "objectunitkerjafk")
@Caption(value = "Unit Kerja")
private UnitKerjaPegawai unitKerja;
@Column(name = "objectunitkerjafk", insertable = false, updatable = false, nullable = false)
private Integer unitKerjaId;
@ManyToOne(fetch = FetchType.LAZY)
@NotNull(message = "Subnit Kerja tidak boleh kosong")
@JoinColumn(name = "objectsubunitkerjafk")
@Caption(value = "Subunit Kerja")
private SubUnitKerjaPegawai subunitKerja;
@Column(name = "objectsubunitkerjafk", insertable = false, updatable = false, nullable = false)
private Integer subunitKerjaId;
@ManyToOne(fetch = FetchType.LAZY)
@NotNull(message = "Pegawai tidak boleh kosong")
@JoinColumn(name = "objectpegawaifk")
@Caption(value = "Pegawai")
private Pegawai pegawai;
@Column(name = "objectpegawaifk", insertable = false, updatable = false, nullable = false)
private Integer pegawaiId;
@Caption(value = "Bulan")
@Column(name = "bulan", nullable = false)
@Temporal(TemporalType.DATE)
private Date bulan;
@Caption(value = "IKI")
@Column(name = "iki", nullable = true)
private Double iki;
@Caption(value = "Skor")
@Column(name = "skor", nullable = true)
private Double skor;
@Caption(value = "Skor Dasar (IKI 1)")
@Column(name = "skordasar", nullable = true)
private Double skorDasar;
public UnitKerjaPegawai getUnitKerja() {
return unitKerja;
}
public void setUnitKerja(UnitKerjaPegawai unitKerja) {
this.unitKerja = unitKerja;
}
public Integer getUnitKerjaId() {
return unitKerjaId;
}
public void setUnitKerjaId(Integer unitKerjaId) {
this.unitKerjaId = unitKerjaId;
}
public SubUnitKerjaPegawai getSubunitKerja() {
return subunitKerja;
}
public void setSubunitKerja(SubUnitKerjaPegawai subunitKerja) {
this.subunitKerja = subunitKerja;
}
public Integer getSubunitKerjaId() {
return subunitKerjaId;
}
public void setSubunitKerjaId(Integer subunitKerjaId) {
this.subunitKerjaId = subunitKerjaId;
}
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 Date getBulan() {
return bulan;
}
public void setBulan(Date bulan) {
this.bulan = bulan;
}
public Double getIki() {
return iki;
}
public void setIki(Double iki) {
this.iki = iki;
}
public Double getSkor() {
return skor;
}
public void setSkor(Double skor) {
this.skor = skor;
}
public Double getSkorDasar() {
return skorDasar;
}
public void setSkorDasar(Double skorDasar) {
this.skorDasar = skorDasar;
}
@Override
public String toString() {
return "IndeksKinerjaDokter [unitKerja=" + unitKerja + ", unitKerjaId=" + unitKerjaId + ", subunitKerja="
+ subunitKerja + ", subunitKerjaId=" + subunitKerjaId + ", pegawai=" + pegawai + ", pegawaiId="
+ pegawaiId + ", skor=" + skor + ", skorDasar=" + skorDasar + ", iki=" + iki + "]";
}
}

View File

@ -0,0 +1,130 @@
package com.jasamedika.medifirst2000.vo;
import java.util.Date;
import com.jasamedika.medifirst2000.base.vo.BaseTransactionVO;
import com.jasamedika.medifirst2000.helper.Caption;
/**
* @author ITI-14
* @since Nov 29, 2021
*/
public class IndeksKinerjaDokterVO extends BaseTransactionVO {
@Caption(value = "Unit Kerja")
private UnitKerjaPegawaiVO unitKerja;
private Integer unitKerjaId;
@Caption(value = "Subunit Kerja")
private SubUnitKerjaPegawaiVO subunitKerja;
private Integer subunitKerjaId;
@Caption(value = "Pegawai")
private PegawaiVO pegawai;
private Integer pegawaiId;
@Caption(value = "Bulan")
private Date bulan;
@Caption(value = "IKI")
private Double iki;
@Caption(value = "Skor")
private Double skor;
@Caption(value = "Skor Dasar (IKI 1)")
private Double skorDasar;
public UnitKerjaPegawaiVO getUnitKerja() {
return unitKerja;
}
public void setUnitKerja(UnitKerjaPegawaiVO unitKerja) {
this.unitKerja = unitKerja;
}
public Integer getUnitKerjaId() {
return unitKerjaId;
}
public void setUnitKerjaId(Integer unitKerjaId) {
this.unitKerjaId = unitKerjaId;
}
public SubUnitKerjaPegawaiVO getSubunitKerja() {
return subunitKerja;
}
public void setSubunitKerja(SubUnitKerjaPegawaiVO subunitKerja) {
this.subunitKerja = subunitKerja;
}
public Integer getSubunitKerjaId() {
return subunitKerjaId;
}
public void setSubunitKerjaId(Integer subunitKerjaId) {
this.subunitKerjaId = subunitKerjaId;
}
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 Date getBulan() {
return bulan;
}
public void setBulan(Date bulan) {
this.bulan = bulan;
}
public Double getIki() {
return iki;
}
public void setIki(Double iki) {
this.iki = iki;
}
public Double getSkor() {
return skor;
}
public void setSkor(Double skor) {
this.skor = skor;
}
public Double getSkorDasar() {
return skorDasar;
}
public void setSkorDasar(Double skorDasar) {
this.skorDasar = skorDasar;
}
@Override
public String toString() {
return "IndeksKinerjaDokterVO [unitKerja=" + unitKerja + ", unitKerjaId=" + unitKerjaId + ", subunitKerja="
+ subunitKerja + ", subunitKerjaId=" + subunitKerjaId + ", pegawai=" + pegawai + ", pegawaiId="
+ pegawaiId + ", skor=" + skor + ", skorDasar=" + skorDasar + ", iki=" + iki + "]";
}
}

View File

@ -30,6 +30,7 @@ import com.jasamedika.medifirst2000.service.AnggaranRemunerasiService;
import com.jasamedika.medifirst2000.service.BobotJenisIndikatorService;
import com.jasamedika.medifirst2000.service.GradeRemunService;
import com.jasamedika.medifirst2000.service.IkiDanRemunerasiService;
import com.jasamedika.medifirst2000.service.IndeksKinerjaDokterService;
import com.jasamedika.medifirst2000.service.IndikatorKinerjaJabatanService;
import com.jasamedika.medifirst2000.service.IndikatorKinerjaService;
import com.jasamedika.medifirst2000.service.LogbookKinerjaDetailService;
@ -52,6 +53,7 @@ import com.jasamedika.medifirst2000.vo.AnggaranRemunerasiVO;
import com.jasamedika.medifirst2000.vo.BobotJenisIndikatorVO;
import com.jasamedika.medifirst2000.vo.GradeRemunerasiVO;
import com.jasamedika.medifirst2000.vo.IkiDanRemunerasiVO;
import com.jasamedika.medifirst2000.vo.IndeksKinerjaDokterVO;
import com.jasamedika.medifirst2000.vo.IndikatorKinerjaJabatanVO;
import com.jasamedika.medifirst2000.vo.IndikatorKinerjaVO;
import com.jasamedika.medifirst2000.vo.LogbookKinerjaDetailVO;
@ -138,6 +140,9 @@ public class IkiDanRemunerasiController extends LocaleController<IkiDanRemuneras
@Autowired
private PelayananNakesService pelayananNakesService;
@Autowired
private IndeksKinerjaDokterService indeksKinerjaDokterService;
@RequestMapping(value = "/get-load-data", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<Map<String, Object>> getLoadData(HttpServletRequest request) {
try {
@ -2094,4 +2099,27 @@ public class IkiDanRemunerasiController extends LocaleController<IkiDanRemuneras
}
}
@RequestMapping(value = "/save-all-indeks-kinerja-dokter", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE, consumes = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<List<String>> saveAllIndeksKinerjaDokter(HttpServletRequest request,
@Valid @RequestBody List<IndeksKinerjaDokterVO> vos) {
try {
List<String> result = indeksKinerjaDokterService.addAll(vos);
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 all indeks kinerja dokter", 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 all indeks kinerja dokter", jse.getMessage());
addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, jse.getMessage());
return RestUtil.getJsonHttptatus(HttpStatus.CONFLICT, mapHeaderMessage);
}
}
}