Add ProdukFarmakologiService

Pembuatan crud master produk farmakologi
This commit is contained in:
salmanoe 2022-06-17 15:55:07 +07:00
parent f3e3477739
commit 284b8849de
9 changed files with 396 additions and 3 deletions

View File

@ -0,0 +1,59 @@
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.ProdukFarmakologi;
@Repository("produkFarmakologiDao")
public interface ProdukFarmakologiDao extends PagingAndSortingRepository<ProdukFarmakologi, Integer> {
String allProduk = "select new Map(prf.id as produkId,prf.namaProduk as namaProduk,"
+ "prf.kdProduk as kdProduk,(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 kodeProduk) " + "from ProdukFarmakologi prf "
+ "where prf.statusEnabled is true";
String namaProduk = " and lower(prf.namaProduk) like %:namaProduk%";
String kdProduk = " and prf.kdProduk = :kdProduk";
String sortAllProduk = " order by prf.namaProduk, prf.kdProduk asc";
String listIdProduk = " and prf.id in (:listProdukId)";
@Query(allProduk + sortAllProduk)
public List<Map<String, Object>> findProdukFarmakologi();
@Query(allProduk + namaProduk + sortAllProduk)
public List<Map<String, Object>> findProdukFarmakologiByProduk(@Param("namaProduk") String namaProduk);
@Query(allProduk + kdProduk + sortAllProduk)
public List<Map<String, Object>> findProdukFarmakologiByKdProduk(@Param("kdProduk") Short kdProduk);
@Query(allProduk + namaProduk + kdProduk + sortAllProduk)
public List<Map<String, Object>> findProdukFarmakologiByProduk(@Param("namaProduk") String namaProduk,
@Param("kdProduk") Short kdProduk);
@Query(allProduk + listIdProduk + sortAllProduk)
public List<Map<String, Object>> findProdukFarmakologi(@Param("listProdukId") List<Integer> listIdProduk);
String dupCheck = "select prf.id from ProdukFarmakologi prf " + "where prf.statusEnabled is true "
+ "and lower(regexp_replace(prf.namaProduk,:patternText,'','g')) = :namaProduk";
String notIdProduk = " and prf.id <> :produkId";
@Query(dupCheck)
public List<Integer> findDupProduk(@Param("patternText") String patternText,
@Param("namaProduk") String namaProduk);
@Query(dupCheck + notIdProduk)
public List<Integer> findDupProduk(@Param("patternText") String patternText, @Param("namaProduk") String namaProduk,
@Param("produkId") Integer idProduk);
}

View File

@ -1,6 +1,3 @@
/**
*
*/
package com.jasamedika.medifirst2000.dao;
import java.util.List;

View File

@ -0,0 +1,18 @@
package com.jasamedika.medifirst2000.service;
import java.util.List;
import java.util.Map;
import org.springframework.orm.jpa.JpaSystemException;
import com.jasamedika.medifirst2000.entities.ProdukFarmakologi;
import com.jasamedika.medifirst2000.vo.ProdukFarmakologiVO;
public interface ProdukFarmakologiService extends BaseVoService<ProdukFarmakologi, ProdukFarmakologiVO, Integer> {
public List<Map<String, Object>> findProdukFarmakologi(String namaProduk, Short kdProduk) throws JpaSystemException;
public List<Map<String, Object>> findDupProdukFarmakologi(String namaProduk, Integer idProduk)
throws JpaSystemException;
}

View File

@ -0,0 +1,139 @@
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.ProdukFarmakologiDao;
import com.jasamedika.medifirst2000.dao.SettingDataFixedDao;
import com.jasamedika.medifirst2000.entities.ProdukFarmakologi;
import com.jasamedika.medifirst2000.exception.ServiceVOException;
import com.jasamedika.medifirst2000.service.ProdukFarmakologiService;
import com.jasamedika.medifirst2000.util.CommonUtil;
import com.jasamedika.medifirst2000.vo.ProdukFarmakologiVO;
@Service("produkFarmakologiService")
public class ProdukFarmakologiServiceImpl extends BaseVoServiceImpl implements ProdukFarmakologiService {
@Autowired
private BaseConverterImpl<ProdukFarmakologiVO, ProdukFarmakologi> produkFarmakologiConverter;
@Autowired
private ProdukFarmakologiDao produkFarmakologiDao;
@Autowired
private SettingDataFixedDao settingDataFixedDao;
@Override
public ProdukFarmakologiVO add(ProdukFarmakologiVO vo) throws JpaSystemException, ServiceVOException {
ProdukFarmakologi produkFarmakologi = produkFarmakologiConverter.transferVOToModel(vo, new ProdukFarmakologi());
ProdukFarmakologi resultModel = produkFarmakologiDao.save(produkFarmakologi);
ProdukFarmakologiVO resultVO = new ProdukFarmakologiVO();
resultVO = produkFarmakologiConverter.transferModelToVO(resultModel, resultVO);
return resultVO;
}
@Override
public ProdukFarmakologiVO update(ProdukFarmakologiVO vo) throws JpaSystemException, ServiceVOException {
ProdukFarmakologi produkLama = produkFarmakologiDao.findOne(vo.getId());
ProdukFarmakologi produkBaru = produkFarmakologiConverter.transferVOToModel(vo, produkLama);
ProdukFarmakologi resultModel = produkFarmakologiDao.save(produkBaru);
ProdukFarmakologiVO resultVO = new ProdukFarmakologiVO();
resultVO = produkFarmakologiConverter.transferModelToVO(resultModel, resultVO);
return resultVO;
}
@Override
public Boolean delete(Integer key) throws JpaSystemException {
produkFarmakologiDao.delete(key);
return true;
}
@Override
public ProdukFarmakologiVO findById(Integer key) throws JpaSystemException {
ProdukFarmakologiVO result = new ProdukFarmakologiVO();
ProdukFarmakologi produkFarmakologi = produkFarmakologiDao.findOne(key);
if (CommonUtil.isNotNullOrEmpty(produkFarmakologi)) {
result = produkFarmakologiConverter.transferModelToVO(produkFarmakologi, result);
}
return result;
}
@Override
public List<ProdukFarmakologiVO> findAll() throws JpaSystemException {
List<ProdukFarmakologiVO> result = new ArrayList<ProdukFarmakologiVO>();
Iterable<ProdukFarmakologi> models = produkFarmakologiDao.findAll();
if (CommonUtil.isNotNullOrEmpty(models)) {
for (ProdukFarmakologi model : models) {
ProdukFarmakologiVO vo = new ProdukFarmakologiVO();
vo = produkFarmakologiConverter.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>> findProdukFarmakologi(String namaProduk, Short kdProduk)
throws JpaSystemException {
List<Map<String, Object>> result = new ArrayList<>();
if (CommonUtil.isNotNullOrEmpty(namaProduk) && CommonUtil.isNullOrEmpty(kdProduk)) {
result = produkFarmakologiDao.findProdukFarmakologiByProduk(namaProduk);
} else if (CommonUtil.isNullOrEmpty(namaProduk) && CommonUtil.isNotNullOrEmpty(kdProduk)) {
result = produkFarmakologiDao.findProdukFarmakologiByKdProduk(kdProduk);
} else if (CommonUtil.isNotNullOrEmpty(namaProduk) && CommonUtil.isNotNullOrEmpty(kdProduk)) {
result = produkFarmakologiDao.findProdukFarmakologiByProduk(namaProduk, kdProduk);
} else {
result = produkFarmakologiDao.findProdukFarmakologi();
}
return result;
}
@Override
public List<Map<String, Object>> findDupProdukFarmakologi(String namaProduk, Integer idProduk)
throws JpaSystemException {
List<Map<String, Object>> result = new ArrayList<>();
List<Integer> listId = new ArrayList<>();
String patternText = settingDataFixedDao.getSettingDataFixed("patternTextDuplicate");
String replacedNamaProduk = namaProduk.replaceAll(patternText, "").toLowerCase();
if (CommonUtil.isNotNullOrEmpty(idProduk)) {
listId = produkFarmakologiDao.findDupProduk(patternText, replacedNamaProduk, idProduk);
} else {
listId = produkFarmakologiDao.findDupProduk(patternText, replacedNamaProduk);
}
if (CommonUtil.isNotNullOrEmpty(listId)) {
result = produkFarmakologiDao.findProdukFarmakologi(listId);
}
return result;
}
}

View File

@ -0,0 +1,63 @@
package com.jasamedika.medifirst2000.entities;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;
import javax.validation.constraints.NotNull;
import com.jasamedika.medifirst2000.base.BaseActive;
import com.jasamedika.medifirst2000.helper.Caption;
@Entity
@Table(name = "produknakes_m")
public class ProdukFarmakologi extends BaseActive {
@NotNull(message = "Nama Produk tidak boleh kosong")
@Column(name = "namaproduk", nullable = false)
@Caption(value = "Nama Produk")
private String namaProduk;
/*
* 1-Pelayanan Pasien (Tarif), 2-pelayanan Pasien (Nontarif), 3-Pelayanan
* Nonpasien
*/
@NotNull(message = "Kode Produk tidak boleh kosong")
@Column(name = "kdproduk", nullable = false)
@Caption(value = "Kode Produk")
private Short kdProduk;
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "public.produkfarmakologi_m_id_seq")
@SequenceGenerator(name = "public.produkfarmakologi_m_id_seq", sequenceName = "public.produkfarmakologi_m_id_seq", allocationSize = 1)
@Column(name = "id")
protected Integer id;
public String getNamaProduk() {
return namaProduk;
}
public void setNamaProduk(String namaProduk) {
this.namaProduk = namaProduk;
}
public Short getKdProduk() {
return kdProduk;
}
public void setKdProduk(Short kdProduk) {
this.kdProduk = kdProduk;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
}

View File

@ -23,6 +23,9 @@ public class ProdukNakes extends BaseActive {
@Caption(value = "Nama Produk")
private String namaProduk;
/*
* 1-Pelayanan Pasien, 2-Nonpelayanan Pasien
*/
@NotNull(message = "Kode Produk tidak boleh kosong")
@Column(name = "kdproduk", nullable = false)
@Caption(value = "Kode Produk")

View File

@ -0,0 +1,40 @@
package com.jasamedika.medifirst2000.vo;
import com.jasamedika.medifirst2000.base.vo.BaseActiveVO;
import com.jasamedika.medifirst2000.helper.Caption;
public class ProdukFarmakologiVO extends BaseActiveVO {
@Caption(value = "Nama Produk")
private String namaProduk;
@Caption(value = "Kode Produk")
private Short kdProduk;
protected Integer id;
public String getNamaProduk() {
return namaProduk;
}
public void setNamaProduk(String namaProduk) {
this.namaProduk = namaProduk;
}
public Short getKdProduk() {
return kdProduk;
}
public void setKdProduk(Short kdProduk) {
this.kdProduk = kdProduk;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
}

View File

@ -703,5 +703,6 @@
<mapping class="com.jasamedika.medifirst2000.entities.MapJabatanProfesi"/>
<mapping class="com.jasamedika.medifirst2000.entities.MapFotoProfilPegawai"/>
<mapping class="com.jasamedika.medifirst2000.entities.MapProdukKelompokKerja"/>
<mapping class="com.jasamedika.medifirst2000.entities.ProdukFarmakologi"/>
</session-factory>
</hibernate-configuration>

View File

@ -41,6 +41,7 @@ import com.jasamedika.medifirst2000.service.MapProdukKelompokKerjaService;
import com.jasamedika.medifirst2000.service.PelayananNakesService;
import com.jasamedika.medifirst2000.service.PelayananPasienNakesService;
import com.jasamedika.medifirst2000.service.PelayananPasienPerawatService;
import com.jasamedika.medifirst2000.service.ProdukFarmakologiService;
import com.jasamedika.medifirst2000.service.ProdukNakesService;
import com.jasamedika.medifirst2000.service.ProdukPerawatService;
import com.jasamedika.medifirst2000.service.ProfesiService;
@ -65,6 +66,7 @@ import com.jasamedika.medifirst2000.vo.MapProdukKelompokKerjaVO;
import com.jasamedika.medifirst2000.vo.PelayananNakesVO;
import com.jasamedika.medifirst2000.vo.PelayananPasienNakesVO;
import com.jasamedika.medifirst2000.vo.PelayananPasienPerawatVO;
import com.jasamedika.medifirst2000.vo.ProdukFarmakologiVO;
import com.jasamedika.medifirst2000.vo.ProdukNakesVO;
import com.jasamedika.medifirst2000.vo.ProdukPerawatVO;
import com.jasamedika.medifirst2000.vo.ProfesiVO;
@ -154,6 +156,9 @@ public class IkiDanRemunerasiController extends LocaleController<IkiDanRemuneras
@Autowired
private MapProdukKelompokKerjaService mapProdukKelompokKerjaService;
@Autowired
private ProdukFarmakologiService produkFarmakologiService;
@RequestMapping(value = "/get-load-data", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<Map<String, Object>> getLoadData(HttpServletRequest request) {
try {
@ -2404,4 +2409,72 @@ public class IkiDanRemunerasiController extends LocaleController<IkiDanRemuneras
}
}
@RequestMapping(value = "/save-produk-farmakologi", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE, consumes = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<ProdukFarmakologiVO> saveProdukFarmakologi(HttpServletRequest request,
@Valid @RequestBody ProdukFarmakologiVO vo) {
try {
ProdukFarmakologiVO result = new ProdukFarmakologiVO();
if (CommonUtil.isNotNullOrEmpty(vo.getId())) {
result = produkFarmakologiService.update(vo);
} else {
result = produkFarmakologiService.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 master produk kelompok kerja farmakologi", 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 master produk kelompok kerja farmakologi", jse.getMessage());
addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, jse.getMessage());
return RestUtil.getJsonHttptatus(HttpStatus.CONFLICT, mapHeaderMessage);
}
}
@RequestMapping(value = "/get-produk-farmakologi", method = RequestMethod.GET)
public ResponseEntity<List<Map<String, Object>>> getProdukFarmakologi(HttpServletRequest request,
@RequestParam(value = "namaProduk", required = false) String namaProduk,
@RequestParam(value = "kdProduk", required = false) Short kdProduk) {
try {
List<Map<String, Object>> result = produkFarmakologiService.findProdukFarmakologi(namaProduk, kdProduk);
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 master produk kelompok kerja farmakologi", 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 master produk kelompok kerja farmakologi", jse.getMessage());
addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, jse.getMessage());
return RestUtil.getJsonHttptatus(HttpStatus.CONFLICT, mapHeaderMessage);
}
}
@RequestMapping(value = "/get-duplicate-produk-farmakolgi", method = RequestMethod.GET)
public ResponseEntity<List<Map<String, Object>>> getDuplikatProdukFarmakologi(HttpServletRequest request,
@RequestParam(value = "namaProduk", required = true) String namaProduk,
@RequestParam(value = "produkId", required = false) Integer idProduk) {
try {
List<Map<String, Object>> result = produkFarmakologiService.findDupProdukFarmakologi(namaProduk, idProduk);
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 duplikat produk kelompok kerja farmakologi", 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 duplikat produk kelompok kerja farmakologi", jse.getMessage());
addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, jse.getMessage());
return RestUtil.getJsonHttptatus(HttpStatus.CONFLICT, mapHeaderMessage);
}
}
}