Add SkoringTindakanFarmakologiService
Pembuatan service skoring tindakan kelompok kerja farmakologi
This commit is contained in:
parent
1bd960d657
commit
dabd0c1460
@ -0,0 +1,87 @@
|
||||
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.SkoringTindakanFarmakologi;
|
||||
import com.jasamedika.medifirst2000.entities.SkoringTindakanNakes;
|
||||
|
||||
/**
|
||||
* @author salmanoe
|
||||
* @since Jun 20, 2022
|
||||
*
|
||||
*/
|
||||
@Repository("skoringTindakanFarmakologiDao")
|
||||
public interface SkoringTindakanFarmakologiDao extends PagingAndSortingRepository<SkoringTindakanFarmakologi, String> {
|
||||
|
||||
String strAllEnabled = "select new Map(stf.noRec as noRec,stf.statusEnabled as statusEnabled,"
|
||||
+ "stf.skor as skor,stf.statusVerifikasi as kdVerif,"
|
||||
+ "(case when stf.statusVerifikasi is false then 'Belum Verifikasi' "
|
||||
+ "when stf.statusVerifikasi is true then 'Terverifikasi' end) as stVerif,"
|
||||
+ "stf.tanggalMulaiBerlaku as tglMulaiBerlaku,stf.tanggalPembaharuanData as tglPembaharuanData,"
|
||||
+ "prf.id as produkId,prf.namaProduk as namaProduk,"
|
||||
+ "(case when prf.kdProduk = 1 then 'Pelayanan Pasien (Tarif)' "
|
||||
+ "when prf.kdProduk = 2 then 'Pelayanan Pasien (Nontarif)' "
|
||||
+ "when prf.kdProduk = 3 then 'Pelayanan Nonpasien' end) as jenisProduk) "
|
||||
+ "from SkoringTindakanFarmakologi stf " + "inner join stf.produk prf " + "where stf.statusEnabled is true "
|
||||
+ "and to_char(stf.tanggalMulaiBerlaku,'yyyy-MM-dd') <= to_char(now(),'yyyy-MM-dd') ";
|
||||
|
||||
String produk = "and lower(prf.namaProduk) like %:namaProduk% ";
|
||||
|
||||
String statusVerifikasi = "and stf.statusVerifikasi = :isVerif ";
|
||||
|
||||
String sortSearch = "order by prf.namaProduk asc, stf.tanggalMulaiBerlaku desc, stf.tanggalPembaharuanData desc";
|
||||
|
||||
@Query(strAllEnabled + sortSearch)
|
||||
List<Map<String, Object>> findAllEnabled();
|
||||
|
||||
@Query(strAllEnabled + produk + sortSearch)
|
||||
List<Map<String, Object>> findAllEnabledByProduk(@Param("namaProduk") String namaProduk);
|
||||
|
||||
@Query(strAllEnabled + statusVerifikasi + sortSearch)
|
||||
List<Map<String, Object>> findAllEnabledByVerif(@Param("isVerif") Boolean isVerif);
|
||||
|
||||
@Query(strAllEnabled + produk + statusVerifikasi + sortSearch)
|
||||
List<Map<String, Object>> findAllEnabledByProdukVerif(@Param("namaProduk") String namaProduk,
|
||||
@Param("isVerif") Boolean isVerif);
|
||||
|
||||
String strCekDupSkoring = "select stf.noRec from SkoringTindakanFarmakologi stf " + "inner join stf.produk prf "
|
||||
+ "where stf.statusEnabled is true "
|
||||
+ "and lower(regexp_replace(prf.namaProduk,:patternText,'','g')) = :namaProduk ";
|
||||
|
||||
String skor = " and stf.skor = :skor";
|
||||
|
||||
String tglBerlaku = " and to_char(stf.tanggalMulaiBerlaku,'yyyy-MM-dd') = :tglMulaiBerlaku";
|
||||
|
||||
String idSkoring = " and stf.noRec <> :noRec";
|
||||
|
||||
String sortTglBerlaku = " order by stf.tanggalMulaiBerlaku desc";
|
||||
|
||||
@Query(strCekDupSkoring + skor + sortTglBerlaku)
|
||||
List<String> findLastDupSkoring(@Param("namaProduk") String namaProduk, @Param("skor") Double skor,
|
||||
@Param("patternText") String patternText);
|
||||
|
||||
@Query(strCekDupSkoring + tglBerlaku)
|
||||
List<String> findDupSkoring(@Param("namaProduk") String namaProduk,
|
||||
@Param("tglMulaiBerlaku") String tglMulaiBerlaku, @Param("patternText") String patternText);
|
||||
|
||||
@Query(strCekDupSkoring + skor + idSkoring + sortTglBerlaku)
|
||||
List<String> findLastDupSkoring(@Param("namaProduk") String namaProduk, @Param("skor") Double skor,
|
||||
@Param("patternText") String patternText, @Param("noRec") String noRec);
|
||||
|
||||
@Query(strCekDupSkoring + tglBerlaku + idSkoring)
|
||||
List<String> findDupSkoring(@Param("namaProduk") String namaProduk,
|
||||
@Param("tglMulaiBerlaku") String tglMulaiBerlaku, @Param("patternText") String patternText,
|
||||
@Param("noRec") String noRec);
|
||||
|
||||
@Query("select new Map(stf.noRec as noRec," + "stf.skor as skor,prf.namaProduk as namaProduk) "
|
||||
+ "from SkoringTindakanFarmakologi stf " + "inner join stf.produk prf " + "where stf.statusEnabled is true "
|
||||
+ "and stf.noRec in (:listNorec)")
|
||||
List<Map<String, Object>> findAllDup(@Param("listNorec") List<String> listNorec);
|
||||
|
||||
}
|
||||
@ -0,0 +1,27 @@
|
||||
package com.jasamedika.medifirst2000.service;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import org.springframework.orm.jpa.JpaSystemException;
|
||||
|
||||
import com.jasamedika.medifirst2000.entities.SkoringTindakanFarmakologi;
|
||||
import com.jasamedika.medifirst2000.vo.SkoringTindakanFarmakologiVO;
|
||||
|
||||
/**
|
||||
* @author salmanoe
|
||||
* @since Jun 20, 2022
|
||||
*
|
||||
*/
|
||||
public interface SkoringTindakanFarmakologiService
|
||||
extends BaseVoService<SkoringTindakanFarmakologi, SkoringTindakanFarmakologiVO, String> {
|
||||
|
||||
List<Map<String, Object>> findAllEnabled(String namaProduk, Boolean isVerif, Integer idProfesi)
|
||||
throws JpaSystemException;
|
||||
|
||||
List<Map<String, Object>> findDuplicateSkoring(String namaProduk, Double skor, Integer idProfesi,
|
||||
Long tglMulaiBerlaku, String noRec) throws JpaSystemException;
|
||||
|
||||
Map<String, Object> findAkses(Integer idPegawai) throws JpaSystemException;
|
||||
|
||||
}
|
||||
@ -0,0 +1,171 @@
|
||||
package com.jasamedika.medifirst2000.service.impl;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.orm.jpa.JpaSystemException;
|
||||
|
||||
import com.jasamedika.medifirst2000.converter.BaseConverterImpl;
|
||||
import com.jasamedika.medifirst2000.dao.LoggingUserDao;
|
||||
import com.jasamedika.medifirst2000.dao.SkoringTindakanFarmakologiDao;
|
||||
import com.jasamedika.medifirst2000.entities.LoggingUser;
|
||||
import com.jasamedika.medifirst2000.entities.LoginUser;
|
||||
import com.jasamedika.medifirst2000.entities.ProdukFarmakologi;
|
||||
import com.jasamedika.medifirst2000.entities.SkoringTindakanFarmakologi;
|
||||
import com.jasamedika.medifirst2000.entities.SkoringTindakanNakes;
|
||||
import com.jasamedika.medifirst2000.exception.ServiceVOException;
|
||||
import com.jasamedika.medifirst2000.service.SkoringTindakanFarmakologiService;
|
||||
import com.jasamedika.medifirst2000.util.CommonUtil;
|
||||
import com.jasamedika.medifirst2000.vo.ProdukFarmakologiVO;
|
||||
import com.jasamedika.medifirst2000.vo.SkoringTindakanFarmakologiVO;
|
||||
import com.jasamedika.medifirst2000.vo.SkoringTindakanNakesVO;
|
||||
|
||||
/**
|
||||
* @author salmanoe
|
||||
* @since Jun 20, 2022
|
||||
*
|
||||
*/
|
||||
public class SkoringTindakanFarmakologiServiceImpl extends BaseVoServiceImpl
|
||||
implements SkoringTindakanFarmakologiService {
|
||||
|
||||
@Autowired
|
||||
private BaseConverterImpl<SkoringTindakanFarmakologiVO, SkoringTindakanFarmakologi> skoringTindakanConverter;
|
||||
|
||||
@Autowired
|
||||
private BaseConverterImpl<ProdukFarmakologiVO, ProdukFarmakologi> produkFarmakologiConverter;
|
||||
|
||||
@Autowired
|
||||
private SkoringTindakanFarmakologiDao skoringTindakanDao;
|
||||
|
||||
@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("Skoring Tindakan Farmakologi");
|
||||
loggingUser.setReferensiId(idReferensi);
|
||||
loggingUser.setReferensi("sdm_skoringtindakanfarmakologi_t");
|
||||
loggingUser.setKeterangan(keterangan);
|
||||
|
||||
loggingUserDao.save(loggingUser);
|
||||
}
|
||||
|
||||
@Override
|
||||
public SkoringTindakanFarmakologiVO add(SkoringTindakanFarmakologiVO vo)
|
||||
throws JpaSystemException, ServiceVOException {
|
||||
ProdukFarmakologi produk = produkFarmakologiConverter.transferVOToModel(vo.getProduk(),
|
||||
new ProdukFarmakologi());
|
||||
SkoringTindakanFarmakologi skoringTindakan = skoringTindakanConverter.transferVOToModel(vo,
|
||||
new SkoringTindakanFarmakologi());
|
||||
|
||||
skoringTindakan.setProduk(produk);
|
||||
skoringTindakan.setTanggalPembaharuanData(new Date());
|
||||
SkoringTindakanFarmakologi resultModel = skoringTindakanDao.save(skoringTindakan);
|
||||
|
||||
addLoggingUser(vo.getLoginUserId(), resultModel.getNoRec(), "Buat data");
|
||||
|
||||
SkoringTindakanFarmakologiVO resultVO = new SkoringTindakanFarmakologiVO();
|
||||
resultVO = skoringTindakanConverter.transferModelToVO(resultModel, resultVO);
|
||||
|
||||
return resultVO;
|
||||
}
|
||||
|
||||
@Override
|
||||
public SkoringTindakanFarmakologiVO update(SkoringTindakanFarmakologiVO vo)
|
||||
throws JpaSystemException, ServiceVOException {
|
||||
SkoringTindakanFarmakologi skoringTindakanLama = skoringTindakanDao.findOne(vo.getNoRec());
|
||||
|
||||
ProdukFarmakologi produk = produkFarmakologiConverter.transferVOToModel(vo.getProduk(),
|
||||
new ProdukFarmakologi());
|
||||
SkoringTindakanFarmakologi skoringTindakanBaru = skoringTindakanConverter.transferVOToModel(vo,
|
||||
skoringTindakanLama);
|
||||
|
||||
skoringTindakanBaru.setProduk(produk);
|
||||
skoringTindakanBaru.setTanggalPembaharuanData(new Date());
|
||||
SkoringTindakanFarmakologi resultModel = skoringTindakanDao.save(skoringTindakanBaru);
|
||||
|
||||
if (vo.getStatusEnabled()) {
|
||||
addLoggingUser(vo.getLoginUserId(), resultModel.getNoRec(), "Edit data");
|
||||
} else if (!vo.getStatusEnabled()) {
|
||||
addLoggingUser(vo.getLoginUserId(), resultModel.getNoRec(), "Hapus data");
|
||||
}
|
||||
|
||||
SkoringTindakanFarmakologiVO resultVO = new SkoringTindakanFarmakologiVO();
|
||||
resultVO = skoringTindakanConverter.transferModelToVO(resultModel, resultVO);
|
||||
|
||||
return resultVO;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Boolean delete(String key) throws JpaSystemException {
|
||||
skoringTindakanDao.delete(key);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public SkoringTindakanFarmakologiVO findById(String key) throws JpaSystemException {
|
||||
SkoringTindakanFarmakologiVO result = new SkoringTindakanFarmakologiVO();
|
||||
|
||||
SkoringTindakanFarmakologi skoringTindakan = skoringTindakanDao.findOne(key);
|
||||
if (CommonUtil.isNotNullOrEmpty(skoringTindakan)) {
|
||||
result = skoringTindakanConverter.transferModelToVO(skoringTindakan, result);
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<SkoringTindakanFarmakologiVO> findAll() throws JpaSystemException {
|
||||
List<SkoringTindakanFarmakologiVO> result = new ArrayList<SkoringTindakanFarmakologiVO>();
|
||||
|
||||
Iterable<SkoringTindakanFarmakologi> models = skoringTindakanDao.findAll();
|
||||
if (CommonUtil.isNotNullOrEmpty(models)) {
|
||||
for (SkoringTindakanFarmakologi model : models) {
|
||||
SkoringTindakanFarmakologiVO vo = new SkoringTindakanFarmakologiVO();
|
||||
vo = skoringTindakanConverter.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(String namaProduk, Boolean isVerif, Integer idProfesi)
|
||||
throws JpaSystemException {
|
||||
// TODO Auto-generated method stub
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<Map<String, Object>> findDuplicateSkoring(String namaProduk, Double skor, Integer idProfesi,
|
||||
Long tglMulaiBerlaku, String noRec) throws JpaSystemException {
|
||||
// TODO Auto-generated method stub
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map<String, Object> findAkses(Integer idPegawai) throws JpaSystemException {
|
||||
// TODO Auto-generated method stub
|
||||
return null;
|
||||
}
|
||||
|
||||
}
|
||||
@ -0,0 +1,101 @@
|
||||
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;
|
||||
|
||||
/**
|
||||
* @author salmanoe
|
||||
* @since Jun 20, 2022
|
||||
*
|
||||
*/
|
||||
@Entity
|
||||
@Table(name = "sdm_skoringtindakanfarmakologi_t")
|
||||
public class SkoringTindakanFarmakologi extends BaseTransaction {
|
||||
|
||||
@Column(name = "skor", nullable = false)
|
||||
@Caption(value = "Nilai Skor")
|
||||
private Double 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;
|
||||
|
||||
@Caption(value = "Tanggal Pembaharuan Data")
|
||||
@Column(name = "tanggalpembaharuandata", nullable = false)
|
||||
@Temporal(TemporalType.TIMESTAMP)
|
||||
private Date tanggalPembaharuanData;
|
||||
|
||||
@ManyToOne
|
||||
@NotNull(message = "Produk Farmakologi tidak boleh kosong")
|
||||
@JoinColumn(name = "objectprodukfarmakologifk")
|
||||
@Caption(value = "Produk Farmakologi")
|
||||
private ProdukFarmakologi produk;
|
||||
|
||||
@Column(name = "objectprodukfarmakologifk", insertable = false, updatable = false, nullable = false)
|
||||
private Integer produkId;
|
||||
|
||||
public Double getSkor() {
|
||||
return skor;
|
||||
}
|
||||
|
||||
public void setSkor(Double 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 Date getTanggalPembaharuanData() {
|
||||
return tanggalPembaharuanData;
|
||||
}
|
||||
|
||||
public void setTanggalPembaharuanData(Date tanggalPembaharuanData) {
|
||||
this.tanggalPembaharuanData = tanggalPembaharuanData;
|
||||
}
|
||||
|
||||
public ProdukFarmakologi getProduk() {
|
||||
return produk;
|
||||
}
|
||||
|
||||
public void setProduk(ProdukFarmakologi produk) {
|
||||
this.produk = produk;
|
||||
}
|
||||
|
||||
public Integer getProdukId() {
|
||||
return produkId;
|
||||
}
|
||||
|
||||
public void setProdukId(Integer produkId) {
|
||||
this.produkId = produkId;
|
||||
}
|
||||
|
||||
}
|
||||
@ -0,0 +1,90 @@
|
||||
package com.jasamedika.medifirst2000.vo;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
import com.jasamedika.medifirst2000.base.vo.BaseTransactionVO;
|
||||
import com.jasamedika.medifirst2000.helper.Caption;
|
||||
|
||||
/**
|
||||
* @author salmanoe
|
||||
* @since Jun 20, 2022
|
||||
*
|
||||
*/
|
||||
public class SkoringTindakanFarmakologiVO extends BaseTransactionVO {
|
||||
|
||||
@Caption(value = "Nilai Skor")
|
||||
private Double skor;
|
||||
|
||||
@Caption(value = "Status Verifikasi")
|
||||
private Boolean statusVerifikasi;
|
||||
|
||||
@Caption(value = "Tanggal Mulai Berlaku")
|
||||
private Date tanggalMulaiBerlaku;
|
||||
|
||||
@Caption(value = "Tanggal Pembaharuan Data")
|
||||
private Date tanggalPembaharuanData;
|
||||
|
||||
@Caption(value = "Produk Perawat")
|
||||
private ProdukFarmakologiVO produk;
|
||||
|
||||
private Integer produkId;
|
||||
|
||||
private Integer loginUserId;
|
||||
|
||||
public Double getSkor() {
|
||||
return skor;
|
||||
}
|
||||
|
||||
public void setSkor(Double 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 Date getTanggalPembaharuanData() {
|
||||
return tanggalPembaharuanData;
|
||||
}
|
||||
|
||||
public void setTanggalPembaharuanData(Date tanggalPembaharuanData) {
|
||||
this.tanggalPembaharuanData = tanggalPembaharuanData;
|
||||
}
|
||||
|
||||
public ProdukFarmakologiVO getProduk() {
|
||||
return produk;
|
||||
}
|
||||
|
||||
public void setProduk(ProdukFarmakologiVO produk) {
|
||||
this.produk = produk;
|
||||
}
|
||||
|
||||
public Integer getProdukId() {
|
||||
return produkId;
|
||||
}
|
||||
|
||||
public void setProdukId(Integer produkId) {
|
||||
this.produkId = produkId;
|
||||
}
|
||||
|
||||
public Integer getLoginUserId() {
|
||||
return loginUserId;
|
||||
}
|
||||
|
||||
public void setLoginUserId(Integer loginUserId) {
|
||||
this.loginUserId = loginUserId;
|
||||
}
|
||||
|
||||
}
|
||||
@ -704,5 +704,6 @@
|
||||
<mapping class="com.jasamedika.medifirst2000.entities.MapFotoProfilPegawai"/>
|
||||
<mapping class="com.jasamedika.medifirst2000.entities.MapProdukKelompokKerja"/>
|
||||
<mapping class="com.jasamedika.medifirst2000.entities.ProdukFarmakologi"/>
|
||||
<mapping class="com.jasamedika.medifirst2000.entities.SkoringTindakanFarmakologi"/>
|
||||
</session-factory>
|
||||
</hibernate-configuration>
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user