pembuatan service crud mapping skoring tindakan medis

This commit is contained in:
salmanoe 2021-02-23 20:28:41 +07:00
parent 45ef8fb159
commit 74d1fafb0a
10 changed files with 1140 additions and 749 deletions

View File

@ -0,0 +1,26 @@
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.stereotype.Repository;
import com.jasamedika.medifirst2000.entities.SkoringTindakanMedis;
@Repository("skoringTindakanMedisDao")
public interface SkoringTindakanMedisDao extends PagingAndSortingRepository<SkoringTindakanMedis, String> {
@Query("select new Map(stm.noRec as noRec," + "stm.statusEnabled as statusEnabled,"
+ "uk.id as unitKerjaId,uk.name as unitKerja," + "sk.id as kelompokKerjaId,sk.name as kelompokKerja,"
+ "pr.id as produkId,pr.namaProduk as namaProduk," + "stm.detailProduk as detailProduk,"
+ "stm.skor as skor," + "stm.statusVerifikasi as isStatusVerifikasi,"
+ "(case when stm.statusVerifikasi is false then 'Belum Terverifikasi' "
+ "when stm.statusVerifikasi is true then 'Terverifikasi' end) as statusVerifikasi,"
+ "stm.tanggalMulaiBerlaku as tglMulaiBerlaku) " + "from SkoringTindakanMedis stm "
+ "inner join stm.produk pr " + "inner join stm.kelompokKerja sk " + "inner join sk.unitKerja uk "
+ "where stm.statusEnabled is true")
List<Map<String, Object>> findAllEnabled();
}

View File

@ -0,0 +1,14 @@
package com.jasamedika.medifirst2000.service;
import java.util.List;
import java.util.Map;
import com.jasamedika.medifirst2000.entities.SkoringTindakanMedis;
import com.jasamedika.medifirst2000.vo.SkoringTindakanMedisVO;
public interface SkoringTindakanMedisService
extends BaseVoService<SkoringTindakanMedis, SkoringTindakanMedisVO, String> {
List<Map<String, Object>> findAllEnabled();
}

View File

@ -0,0 +1,120 @@
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.SkoringTindakanMedisDao;
import com.jasamedika.medifirst2000.entities.Produk;
import com.jasamedika.medifirst2000.entities.SkoringTindakanMedis;
import com.jasamedika.medifirst2000.entities.SubUnitKerjaPegawai;
import com.jasamedika.medifirst2000.exception.ServiceVOException;
import com.jasamedika.medifirst2000.service.SkoringTindakanMedisService;
import com.jasamedika.medifirst2000.util.CommonUtil;
import com.jasamedika.medifirst2000.vo.ProdukVO;
import com.jasamedika.medifirst2000.vo.SkoringTindakanMedisVO;
import com.jasamedika.medifirst2000.vo.SubUnitKerjaPegawaiVO;
@Service("skoringTindakanMedisService")
public class SkoringTindakanMedisServiceImpl extends BaseVoServiceImpl implements SkoringTindakanMedisService {
@Autowired
private BaseConverterImpl<ProdukVO, Produk> produkConverter;
@Autowired
private BaseConverterImpl<SubUnitKerjaPegawaiVO, SubUnitKerjaPegawai> subunitKerjaConverter;
@Autowired
private BaseConverterImpl<SkoringTindakanMedisVO, SkoringTindakanMedis> skoringTindakanMedisConverter;
@Autowired
private SkoringTindakanMedisDao skoringTindakanMedisDao;
@Override
public SkoringTindakanMedisVO add(SkoringTindakanMedisVO vo) throws JpaSystemException, ServiceVOException {
Produk produk = produkConverter.transferVOToModel(vo.getProduk(), new Produk());
SubUnitKerjaPegawai kelompokKerja = subunitKerjaConverter.transferVOToModel(vo.getKelompokKerja(),
new SubUnitKerjaPegawai());
SkoringTindakanMedis skoringTindakanMedis = skoringTindakanMedisConverter.transferVOToModel(vo,
new SkoringTindakanMedis());
skoringTindakanMedis.setProduk(produk);
skoringTindakanMedis.setKelompokKerja(kelompokKerja);
SkoringTindakanMedis resultModel = skoringTindakanMedisDao.save(skoringTindakanMedis);
SkoringTindakanMedisVO resultVO = new SkoringTindakanMedisVO();
resultVO = skoringTindakanMedisConverter.transferModelToVO(resultModel, resultVO);
return resultVO;
}
@Override
public SkoringTindakanMedisVO update(SkoringTindakanMedisVO vo) throws JpaSystemException, ServiceVOException {
SkoringTindakanMedis skoringTindakanMedisLama = skoringTindakanMedisDao.findOne(vo.getNoRec());
Produk produk = produkConverter.transferVOToModel(vo.getProduk(), new Produk());
SubUnitKerjaPegawai kelompokKerja = subunitKerjaConverter.transferVOToModel(vo.getKelompokKerja(),
new SubUnitKerjaPegawai());
SkoringTindakanMedis skoringTindakanMedisBaru = skoringTindakanMedisConverter.transferVOToModel(vo,
skoringTindakanMedisLama);
skoringTindakanMedisBaru.setProduk(produk);
skoringTindakanMedisBaru.setKelompokKerja(kelompokKerja);
SkoringTindakanMedis resultModel = skoringTindakanMedisDao.save(skoringTindakanMedisBaru);
SkoringTindakanMedisVO resultVO = new SkoringTindakanMedisVO();
resultVO = skoringTindakanMedisConverter.transferModelToVO(resultModel, resultVO);
return resultVO;
}
@Override
public Boolean delete(String key) throws JpaSystemException {
skoringTindakanMedisDao.delete(key);
return true;
}
@Override
public SkoringTindakanMedisVO findById(String key) throws JpaSystemException {
SkoringTindakanMedisVO result = new SkoringTindakanMedisVO();
SkoringTindakanMedis skoringTindakanMedis = skoringTindakanMedisDao.findOne(key);
if (CommonUtil.isNotNullOrEmpty(skoringTindakanMedis)) {
result = skoringTindakanMedisConverter.transferModelToVO(skoringTindakanMedis, result);
}
return result;
}
@Override
public List<SkoringTindakanMedisVO> findAll() throws JpaSystemException {
List<SkoringTindakanMedisVO> result = new ArrayList<SkoringTindakanMedisVO>();
Iterable<SkoringTindakanMedis> models = skoringTindakanMedisDao.findAll();
for (SkoringTindakanMedis model : models) {
SkoringTindakanMedisVO vo = new SkoringTindakanMedisVO();
vo = skoringTindakanMedisConverter.transferModelToVO(model, vo);
result.add(vo);
}
return result;
}
@Override
public Map<String, Object> findAllWithPageAndLimitAndSortByAndDirectionParameter(Integer page, Integer limit,
String sort, String dir) {
return null;
}
@Override
public List<Map<String, Object>> findAllEnabled() {
List<Map<String, Object>> result = skoringTindakanMedisDao.findAllEnabled();
return result;
}
}

View File

@ -1,23 +1,17 @@
package com.jasamedika.medifirst2000.entities;
import java.io.Serializable;
import org.hibernate.envers.Audited;
import javax.persistence.*;
import org.hibernate.validator.constraints.NotEmpty;
import com.jasamedika.medifirst2000.base.BaseMaster;
import javax.validation.constraints.NotNull;
import org.hibernate.validator.constraints.Length;
import org.hibernate.validator.internal.util.logging.Messages;
import com.fasterxml.jackson.annotation.JsonManagedReference;
import com.jasamedika.medifirst2000.base.BaseMaster;
import com.jasamedika.medifirst2000.helper.Caption;
import org.hibernate.envers.Audited;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import javax.validation.constraints.NotNull;
import com.jasamedika.medifirst2000.base.BaseMaster;
import com.jasamedika.medifirst2000.helper.Caption;
/**
* class JenisTindakanMedis

View File

@ -1,26 +1,17 @@
package com.jasamedika.medifirst2000.entities;
import java.io.Serializable;
import org.hibernate.envers.Audited;
import java.util.HashSet;
import java.util.Set;
import javax.persistence.*;
import org.hibernate.validator.constraints.NotEmpty;
import com.jasamedika.medifirst2000.base.BaseMaster;
import javax.validation.constraints.NotNull;
import org.hibernate.validator.constraints.Length;
import org.hibernate.validator.internal.util.logging.Messages;
import com.fasterxml.jackson.annotation.JsonManagedReference;
import com.jasamedika.medifirst2000.base.BaseMaster;
import com.jasamedika.medifirst2000.helper.Caption;
import org.hibernate.envers.Audited;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import javax.validation.constraints.NotNull;
import com.jasamedika.medifirst2000.base.BaseMaster;
import com.jasamedika.medifirst2000.helper.Caption;
/**
* class KelompokTindakanMedis

View File

@ -0,0 +1,120 @@
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 com.jasamedika.medifirst2000.base.BaseTransaction;
import com.jasamedika.medifirst2000.helper.Caption;
@Entity
@Table(name = "sdm_skoringtindakanmedis_t")
public class SkoringTindakanMedis extends BaseTransaction {
@Column(name = "detailproduk", nullable = false)
@Caption(value = "Detail Produk")
private String detailProduk;
@Column(name = "skor", nullable = false)
@Caption(value = "Nilai Skor")
private Integer skor;
@Column(name = "statusverifikasi", nullable = false)
@Caption(value = "Status Verifikasi")
private Boolean statusVerifikasi;
@Caption(value = "Tanggal Mulai Berlaku")
@Column(name = "tanggalmulaiberlaku", nullable = false)
@Temporal(TemporalType.DATE)
private Date tanggalMulaiBerlaku;
@ManyToOne
@NotNull(message = "Produk tidak boleh kosong")
@JoinColumn(name = "objectprodukfk")
@Caption(value = "Produk")
private Produk produk;
@Column(name = "objectprodukfk", insertable = false, updatable = false, nullable = true)
private Integer produkId;
@ManyToOne
@NotNull(message = "Subunit kerja tidak boleh kosong")
@JoinColumn(name = "objectsubunitkerjafk")
@Caption(value = "Subunit Kerja")
private SubUnitKerjaPegawai kelompokKerja;
@Column(name = "objectsubunitkerjafk", insertable = false, updatable = false, nullable = true)
private Integer kelompokKerjaId;
public String getDetailProduk() {
return detailProduk;
}
public void setDetailProduk(String detailProduk) {
this.detailProduk = detailProduk;
}
public Integer getSkor() {
return skor;
}
public void setSkor(Integer skor) {
this.skor = skor;
}
public Boolean getStatusVerifikasi() {
return statusVerifikasi;
}
public void setStatusVerifikasi(Boolean statusVerifikasi) {
this.statusVerifikasi = statusVerifikasi;
}
public Date getTanggalMulaiBerlaku() {
return tanggalMulaiBerlaku;
}
public void setTanggalMulaiBerlaku(Date tanggalMulaiBerlaku) {
this.tanggalMulaiBerlaku = tanggalMulaiBerlaku;
}
public Produk getProduk() {
return produk;
}
public void setProduk(Produk produk) {
this.produk = produk;
}
public Integer getProdukId() {
return produkId;
}
public void setProdukId(Integer produkId) {
this.produkId = produkId;
}
public SubUnitKerjaPegawai getKelompokKerja() {
return kelompokKerja;
}
public void setKelompokKerja(SubUnitKerjaPegawai kelompokKerja) {
this.kelompokKerja = kelompokKerja;
}
public Integer getKelompokKerjaId() {
return kelompokKerjaId;
}
public void setKelompokKerjaId(Integer kelompokKerjaId) {
this.kelompokKerjaId = kelompokKerjaId;
}
}

View File

@ -1,23 +1,17 @@
package com.jasamedika.medifirst2000.entities;
import java.io.Serializable;
import org.hibernate.envers.Audited;
import javax.persistence.*;
import org.hibernate.validator.constraints.NotEmpty;
import com.jasamedika.medifirst2000.base.BaseMaster;
import javax.validation.constraints.NotNull;
import org.hibernate.validator.constraints.Length;
import org.hibernate.validator.internal.util.logging.Messages;
import com.fasterxml.jackson.annotation.JsonManagedReference;
import com.jasamedika.medifirst2000.base.BaseMaster;
import com.jasamedika.medifirst2000.helper.Caption;
import org.hibernate.envers.Audited;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import javax.validation.constraints.NotNull;
import com.jasamedika.medifirst2000.base.BaseMaster;
import com.jasamedika.medifirst2000.helper.Caption;
/**
* class TindakanMedis

View File

@ -0,0 +1,96 @@
package com.jasamedika.medifirst2000.vo;
import java.util.Date;
import com.jasamedika.medifirst2000.base.vo.BaseTransactionVO;
import com.jasamedika.medifirst2000.helper.Caption;
public class SkoringTindakanMedisVO extends BaseTransactionVO {
@Caption(value = "Detail Produk")
private String detailProduk;
@Caption(value = "Nilai Skor")
private Integer skor;
@Caption(value = "Status Verifikasi")
private Boolean statusVerifikasi;
@Caption(value = "Tanggal Mulai Berlaku")
private Date tanggalMulaiBerlaku;
@Caption(value = "Produk")
private ProdukVO produk;
private Integer produkId;
@Caption(value = "Subunit Kerja")
private SubUnitKerjaPegawaiVO kelompokKerja;
private Integer kelompokKerjaId;
public String getDetailProduk() {
return detailProduk;
}
public void setDetailProduk(String detailProduk) {
this.detailProduk = detailProduk;
}
public Integer getSkor() {
return skor;
}
public void setSkor(Integer skor) {
this.skor = skor;
}
public Boolean getStatusVerifikasi() {
return statusVerifikasi;
}
public void setStatusVerifikasi(Boolean statusVerifikasi) {
this.statusVerifikasi = statusVerifikasi;
}
public Date getTanggalMulaiBerlaku() {
return tanggalMulaiBerlaku;
}
public void setTanggalMulaiBerlaku(Date tanggalMulaiBerlaku) {
this.tanggalMulaiBerlaku = tanggalMulaiBerlaku;
}
public ProdukVO getProduk() {
return produk;
}
public void setProduk(ProdukVO produk) {
this.produk = produk;
}
public Integer getProdukId() {
return produkId;
}
public void setProdukId(Integer produkId) {
this.produkId = produkId;
}
public SubUnitKerjaPegawaiVO getKelompokKerja() {
return kelompokKerja;
}
public void setKelompokKerja(SubUnitKerjaPegawaiVO kelompokKerja) {
this.kelompokKerja = kelompokKerja;
}
public Integer getKelompokKerjaId() {
return kelompokKerjaId;
}
public void setKelompokKerjaId(Integer kelompokKerjaId) {
this.kelompokKerjaId = kelompokKerjaId;
}
}

File diff suppressed because it is too large Load Diff

View File

@ -31,6 +31,7 @@ import com.jasamedika.medifirst2000.service.IkiDanRemunerasiService;
import com.jasamedika.medifirst2000.service.IndikatorKinerjaService;
import com.jasamedika.medifirst2000.service.LogbookKinerjaDetailService;
import com.jasamedika.medifirst2000.service.LogbookKinerjaService;
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;
@ -38,6 +39,7 @@ import com.jasamedika.medifirst2000.vo.IndikatorKinerjaVO;
import com.jasamedika.medifirst2000.vo.LogbookKinerjaDetailVO;
import com.jasamedika.medifirst2000.vo.LogbookKinerjaVO;
import com.jasamedika.medifirst2000.vo.SettingPirSdmVO;
import com.jasamedika.medifirst2000.vo.SkoringTindakanMedisVO;
import com.jasamedika.medifirst2000.vo.StrukHistoriVO;
@RestController
@ -52,6 +54,9 @@ public class IkiDanRemunerasiController extends LocaleController<IkiDanRemuneras
@Autowired
private IndikatorKinerjaService indikatorKinerjaService;
@Autowired
private SkoringTindakanMedisService skoringTindakanMedisService;
@Autowired
private LogbookKinerjaService logbookKinerjaService;
@ -304,6 +309,55 @@ public class IkiDanRemunerasiController extends LocaleController<IkiDanRemuneras
}
}
@RequestMapping(value = "/save-skoring-tindakan-medis", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE, consumes = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<Map<String, Object>> saveSkoringTindakanMedis(HttpServletRequest request,
@Valid @RequestBody SkoringTindakanMedisVO vo) {
Map<String, Object> result = new HashMap<String, Object>();
try {
SkoringTindakanMedisVO resultVo = new SkoringTindakanMedisVO();
if (CommonUtil.isNotNullOrEmpty(vo.getNoRec())) {
resultVo = skoringTindakanMedisService.update(vo);
} else {
resultVo = skoringTindakanMedisService.add(vo);
}
result.put("data", resultVo);
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 skor tindakan medis", 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 skor tindakan medis", jse.getMessage());
addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, jse.getMessage());
return RestUtil.getJsonHttptatus(HttpStatus.CONFLICT, mapHeaderMessage);
}
}
@RequestMapping(value = "/get-all-skoring-tindakan-medis", method = RequestMethod.GET)
public ResponseEntity<List<Map<String, Object>>> getAllSkoringTindakanMedis(HttpServletRequest request)
throws ParseException {
try {
List<Map<String, Object>> result = skoringTindakanMedisService.findAllEnabled();
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 all skoring tindakan medis", 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 all skoring tindakan medis", jse.getMessage());
addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, jse.getMessage());
return RestUtil.getJsonHttptatus(HttpStatus.CONFLICT, mapHeaderMessage);
}
}
@RequestMapping(value = "/save-logbook-kinerja", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE, consumes = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<Map<String, Object>> saveLogbookKinerja(HttpServletRequest request,
@Valid @RequestBody LogbookKinerjaVO vo) {