- pembuatan service simpan, edit, delete, dan tampilan master data profesi nakes lain

- pembuatan service simpan, edit, delete, dan tampilan master data produk perawat
- pembuatan service simpan, edit, delete, dan tampilan master data produk nakes lain
- pembuatan service pengecekan data duplikat data master produk perawat
- pembuatan service pengecekan data duplikat data master produk nakes lain
- perbaikan service hitung otomatis target layanan medis di jam kerja dan luar jam kerja
- penambahan kolom kdproduk nakes lain untuk membedakan produk pelayanan pasien dan nonpasien
This commit is contained in:
salmanoe 2021-10-10 13:33:35 +07:00
parent aeb2902534
commit 6c49e28157
13 changed files with 707 additions and 7 deletions

View File

@ -127,7 +127,7 @@ public interface IkiDanRemunerasiDao extends PagingAndSortingRepository<IkiDanRe
+ "and djp.jenisProdukId not in (:listNontindakanId) " + "and pr.id <> :karcisId "
+ "order by su.name, pr.id")
public List<Map<String, Object>> getDataLayananJamKerja(@Param("tglAwal") Date tglAwal,
@Param("psbbAwal") Date psbbAwal, @Param("psbbAkhir") Date psbbAkhir, @Param("tglAkhir") Date tglAkhir,
@Param("tglAkhir") Date tglAkhir, @Param("psbbAwal") Date psbbAwal, @Param("psbbAkhir") Date psbbAkhir,
@Param("listNonjadwalId") List<Integer> listIdNonjadwal, @Param("jenisPegawaiId") Integer idJenisPegawai,
@Param("listDepartemenId") List<Integer> listIdDepartemen,
@Param("listKategoriRemun") List<Integer> listKategoriRemun, @Param("listKsmId") List<Integer> listIdKsm,
@ -160,7 +160,7 @@ public interface IkiDanRemunerasiDao extends PagingAndSortingRepository<IkiDanRe
+ "and djp.jenisProdukId not in (:listNontindakanId) " + "and pr.id <> :karcisId "
+ "order by pg.namaLengkap, pr.id")
public List<Map<String, Object>> getDataLayananLuarJamKerja(@Param("tglAwal") Date tglAwal,
@Param("psbbAwal") Date psbbAwal, @Param("psbbAkhir") Date psbbAkhir, @Param("tglAkhir") Date tglAkhir,
@Param("tglAkhir") Date tglAkhir, @Param("psbbAwal") Date psbbAwal, @Param("psbbAkhir") Date psbbAkhir,
@Param("listNonjadwalId") List<Integer> listIdNonjadwal, @Param("jenisPegawaiId") Integer idJenisPegawai,
@Param("listDepartemenId") List<Integer> listIdDepartemen, @Param("listKsmId") List<Integer> listIdKsm,
@Param("listNontindakanId") List<Integer> listIdNontindakan, @Param("listBpjsId") List<Integer> listIdBpjs,

View File

@ -20,4 +20,65 @@ import com.jasamedika.medifirst2000.entities.ProdukNakes;
@Repository("produkNakesDao")
public interface ProdukNakesDao extends PagingAndSortingRepository<ProdukNakes, Integer> {
String allProduk = "select new Map(prn.id as produkId,prn.namaProduk as namaProduk," + "prn.kdProduk as kdProduk,"
+ "(case when prn.kdProduk = 1 then 'Pelayanan Pasien' "
+ "when prn.kdProduk = 2 then 'Pelayanan Nonpasien' end) as kodeProduk,"
+ "prn.profesiId as profesiId,prf.namaProfesi as namaProfesi) " + "from ProdukNakes prn "
+ "left join prn.profesi prf " + "with (prf.statusEnabled is true) " + "where prn.statusEnabled is true";
String namaProduk = " and lower(prn.namaProduk) like %:namaProduk%";
String kdProduk = " and prn.kdProduk = :kdProduk";
String idProfesi = " and prn.profesiId = :profesiId";
String sortAllProduk = " order by prf.namaProfesi, prn.namaProduk, prn.kdProduk asc";
String listIdProduk = " and prn.id in (:listProdukId)";
@Query(allProduk + sortAllProduk)
public List<Map<String, Object>> findProdukNakes();
@Query(allProduk + namaProduk + sortAllProduk)
public List<Map<String, Object>> findProdukNakesByProduk(@Param("namaProduk") String namaProduk);
@Query(allProduk + kdProduk + sortAllProduk)
public List<Map<String, Object>> findProdukNakesByKdProduk(@Param("kdProduk") Short kdProduk);
@Query(allProduk + idProfesi + sortAllProduk)
public List<Map<String, Object>> findProdukNakesByProfesi(@Param("profesiId") Integer idProfesi);
@Query(allProduk + idProfesi + namaProduk + sortAllProduk)
public List<Map<String, Object>> findProdukNakesByProfesi(@Param("profesiId") Integer idProfesi,
@Param("namaProduk") String namaProduk);
@Query(allProduk + idProfesi + kdProduk + sortAllProduk)
public List<Map<String, Object>> findProdukNakesByProfesi(@Param("profesiId") Integer idProfesi,
@Param("kdProduk") Short kdProduk);
@Query(allProduk + namaProduk + kdProduk + sortAllProduk)
public List<Map<String, Object>> findProdukNakesByProduk(@Param("namaProduk") String namaProduk,
@Param("kdProduk") Short kdProduk);
@Query(allProduk + namaProduk + idProfesi + kdProduk + sortAllProduk)
public List<Map<String, Object>> findProdukNakesByProfesi(@Param("namaProduk") String namaProduk,
@Param("profesiId") Integer idProfesi, @Param("kdProduk") Short kdProduk);
@Query(allProduk + listIdProduk + sortAllProduk)
public List<Map<String, Object>> findProdukNakes(@Param("listProdukId") List<Integer> listIdProduk);
String dupCheck = "select prn.id from ProdukNakes prn " + "where prn.statusEnabled is true "
+ "and lower(regexp_replace(prn.namaProduk,:patternText,'','g')) = :namaProduk "
+ "and prn.profesiId = :profesiId";
String notIdProduk = " and prn.id <> :produkId";
@Query(dupCheck)
public List<Integer> findDupProduk(@Param("patternText") String patternText, @Param("namaProduk") String namaProduk,
@Param("profesiId") Integer idProfesi);
@Query(dupCheck + notIdProduk)
public List<Integer> findDupProduk(@Param("patternText") String patternText, @Param("namaProduk") String namaProduk,
@Param("profesiId") Integer idProfesi, @Param("produkId") Integer idProduk);
}

View File

@ -0,0 +1,63 @@
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.ProdukPerawat;
/**
* @author ITI-14
* @since Oct 8, 2021
*/
@Repository("produkPerawat")
public interface ProdukPerawatDao extends PagingAndSortingRepository<ProdukPerawat, Integer> {
String allProduk = "select new Map(prp.id as id,prp.namaProduk as namaProduk," + "prp.klasifikasi as kdKlasif,"
+ "(case when prp.klasifikasi = 1 then 'Asuhan' " + "when prp.klasifikasi = 2 then 'Tindakan' "
+ "when prp.klasifikasi = 3 then 'Laporan' end) as klasifikasi) " + "from ProdukPerawat prp "
+ "where prp.statusEnabled is true";
String namaProduk = " and lower(prp.namaProduk) like %:namaProduk%";
String kdKlasif = " and prp.klasifikasi = :kdKlasif";
String listIdProduk = " and prp.id in (:listProdukId)";
String sortAllProduk = " order by prp.klasifikasi, prp.namaProduk asc";
@Query(allProduk + sortAllProduk)
public List<Map<String, Object>> findAllActive();
@Query(allProduk + namaProduk + sortAllProduk)
public List<Map<String, Object>> findAllActive(@Param("namaProduk") String namaProduk);
@Query(allProduk + kdKlasif + sortAllProduk)
public List<Map<String, Object>> findAllActive(@Param("kdKlasif") Short kdKlasif);
@Query(allProduk + namaProduk + kdKlasif + sortAllProduk)
public List<Map<String, Object>> findAllActive(@Param("namaProduk") String namaProduk,
@Param("kdKlasif") Short kdKlasif);
@Query(allProduk + listIdProduk + sortAllProduk)
public List<Map<String, Object>> findProdukPerawat(@Param("listProdukId") List<Integer> listIdProduk);
String dupCheck = "select prp.id from ProdukPerawat prp " + "where prp.statusEnabled is true "
+ "and lower(regexp_replace(prp.namaProduk,:patternText,'','g')) = :namaProduk "
+ "and prp.klasifikasi = :kdKlasif";
String notIdProduk = " and prp.id <> :produkId";
@Query(dupCheck)
public List<Integer> findDupProduk(@Param("patternText") String patternText, @Param("namaProduk") String namaProduk,
@Param("kdKlasif") Short kdKlasif);
@Query(dupCheck + notIdProduk)
public List<Integer> findDupProduk(@Param("patternText") String patternText, @Param("namaProduk") String namaProduk,
@Param("kdKlasif") Short kdKlasif, @Param("produkId") Integer idProduk);
}

View File

@ -0,0 +1,21 @@
package com.jasamedika.medifirst2000.dao;
import java.util.List;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.PagingAndSortingRepository;
import org.springframework.stereotype.Repository;
import com.jasamedika.medifirst2000.entities.Profesi;
/**
* @author ITI-14
* @since Oct 8, 2021
*/
@Repository("profesiDao")
public interface ProfesiDao extends PagingAndSortingRepository<Profesi, Integer> {
@Query("select prf from Profesi prf where prf.statusEnabled is true")
public List<Profesi> findAllActive();
}

View File

@ -3,6 +3,11 @@
*/
package com.jasamedika.medifirst2000.service;
import java.util.List;
import java.util.Map;
import org.springframework.orm.jpa.JpaSystemException;
import com.jasamedika.medifirst2000.entities.ProdukNakes;
import com.jasamedika.medifirst2000.vo.ProdukNakesVO;
@ -12,4 +17,10 @@ import com.jasamedika.medifirst2000.vo.ProdukNakesVO;
*/
public interface ProdukNakesService extends BaseVoService<ProdukNakes, ProdukNakesVO, Integer> {
public List<Map<String, Object>> findProdukNakes(String namaProduk, Short kdProduk, Integer idProfesi)
throws JpaSystemException;
public List<Map<String, Object>> findDupProdukNakes(String namaProduk, Integer idProfesi, Integer idProduk)
throws JpaSystemException;
}

View File

@ -0,0 +1,22 @@
package com.jasamedika.medifirst2000.service;
import java.util.List;
import java.util.Map;
import org.springframework.orm.jpa.JpaSystemException;
import com.jasamedika.medifirst2000.entities.ProdukPerawat;
import com.jasamedika.medifirst2000.vo.ProdukPerawatVO;
/**
* @author ITI-14
* @since Oct 8, 2021
*/
public interface ProdukPerawatService extends BaseVoService<ProdukPerawat, ProdukPerawatVO, Integer> {
public List<Map<String, Object>> findAllActive(String namaProduk, Short kdKlasif) throws JpaSystemException;
public List<Map<String, Object>> findDupProdukPerawat(String namaProduk, Short kdKlasif, Integer idProduk)
throws JpaSystemException;
}

View File

@ -0,0 +1,18 @@
package com.jasamedika.medifirst2000.service;
import java.util.List;
import org.springframework.orm.jpa.JpaSystemException;
import com.jasamedika.medifirst2000.entities.Profesi;
import com.jasamedika.medifirst2000.vo.ProfesiVO;
/**
* @author ITI-14
* @since Oct 8, 2021
*/
public interface ProfesiService extends BaseVoService<Profesi, ProfesiVO, Integer> {
public List<ProfesiVO> findAllActive() throws JpaSystemException;
}

View File

@ -1,6 +1,3 @@
/**
*
*/
package com.jasamedika.medifirst2000.service.impl;
import java.util.ArrayList;
@ -13,6 +10,7 @@ import org.springframework.stereotype.Service;
import com.jasamedika.medifirst2000.converter.BaseConverterImpl;
import com.jasamedika.medifirst2000.dao.ProdukNakesDao;
import com.jasamedika.medifirst2000.dao.SettingDataFixedDao;
import com.jasamedika.medifirst2000.entities.ProdukNakes;
import com.jasamedika.medifirst2000.entities.Profesi;
import com.jasamedika.medifirst2000.exception.ServiceVOException;
@ -37,6 +35,9 @@ public class ProdukNakesServiceImpl extends BaseVoServiceImpl implements ProdukN
@Autowired
private ProdukNakesDao produkNakesDao;
@Autowired
private SettingDataFixedDao settingDataFixedDao;
@Override
public ProdukNakesVO add(ProdukNakesVO vo) throws JpaSystemException, ServiceVOException {
ProdukNakes produkNakes = produkNakesConverter.transferVOToModel(vo, new ProdukNakes());
@ -111,4 +112,58 @@ public class ProdukNakesServiceImpl extends BaseVoServiceImpl implements ProdukN
return null;
}
@Override
public List<Map<String, Object>> findProdukNakes(String namaProduk, Short kdProduk, Integer idProfesi)
throws JpaSystemException {
List<Map<String, Object>> result = new ArrayList<>();
if (CommonUtil.isNotNullOrEmpty(namaProduk) && CommonUtil.isNullOrEmpty(kdProduk)
&& CommonUtil.isNullOrEmpty(idProfesi)) {
result = produkNakesDao.findProdukNakesByProduk(namaProduk.toLowerCase());
} else if (CommonUtil.isNullOrEmpty(namaProduk) && CommonUtil.isNotNullOrEmpty(kdProduk)
&& CommonUtil.isNullOrEmpty(idProfesi)) {
result = produkNakesDao.findProdukNakesByKdProduk(kdProduk);
} else if (CommonUtil.isNullOrEmpty(namaProduk) && CommonUtil.isNullOrEmpty(kdProduk)
&& CommonUtil.isNotNullOrEmpty(idProfesi)) {
result = produkNakesDao.findProdukNakesByProfesi(idProfesi);
} else if (CommonUtil.isNotNullOrEmpty(namaProduk) && CommonUtil.isNullOrEmpty(kdProduk)
&& CommonUtil.isNotNullOrEmpty(idProfesi)) {
result = produkNakesDao.findProdukNakesByProfesi(idProfesi, namaProduk.toLowerCase());
} else if (CommonUtil.isNullOrEmpty(namaProduk) && CommonUtil.isNotNullOrEmpty(kdProduk)
&& CommonUtil.isNotNullOrEmpty(idProfesi)) {
result = produkNakesDao.findProdukNakesByProfesi(idProfesi, kdProduk);
} else if (CommonUtil.isNotNullOrEmpty(namaProduk) && CommonUtil.isNotNullOrEmpty(kdProduk)
&& CommonUtil.isNullOrEmpty(idProfesi)) {
result = produkNakesDao.findProdukNakesByProduk(namaProduk.toLowerCase(), kdProduk);
} else if (CommonUtil.isNotNullOrEmpty(namaProduk) && CommonUtil.isNotNullOrEmpty(kdProduk)
&& CommonUtil.isNotNullOrEmpty(idProfesi)) {
result = produkNakesDao.findProdukNakesByProfesi(namaProduk.toLowerCase(), idProfesi, kdProduk);
} else {
result = produkNakesDao.findProdukNakes();
}
return result;
}
@Override
public List<Map<String, Object>> findDupProdukNakes(String namaProduk, Integer idProfesi, 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 = produkNakesDao.findDupProduk(patternText, replacedNamaProduk, idProfesi, idProduk);
} else {
listId = produkNakesDao.findDupProduk(patternText, replacedNamaProduk, idProfesi);
}
if (CommonUtil.isNotNullOrEmpty(listId)) {
result = produkNakesDao.findProdukNakes(listId);
}
return result;
}
}

View File

@ -0,0 +1,142 @@
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.ProdukPerawatDao;
import com.jasamedika.medifirst2000.dao.SettingDataFixedDao;
import com.jasamedika.medifirst2000.entities.ProdukPerawat;
import com.jasamedika.medifirst2000.exception.ServiceVOException;
import com.jasamedika.medifirst2000.service.ProdukPerawatService;
import com.jasamedika.medifirst2000.util.CommonUtil;
import com.jasamedika.medifirst2000.vo.ProdukPerawatVO;
/**
* @author ITI-14
* @since Oct 8, 2021
*/
@Service("produkPerawatService")
public class ProdukPerawatServiceImpl extends BaseVoServiceImpl implements ProdukPerawatService {
@Autowired
private BaseConverterImpl<ProdukPerawatVO, ProdukPerawat> produkPerawatConverter;
@Autowired
private ProdukPerawatDao produkPerawatDao;
@Autowired
private SettingDataFixedDao settingDataFixedDao;
@Override
public ProdukPerawatVO add(ProdukPerawatVO vo) throws JpaSystemException, ServiceVOException {
ProdukPerawat produkPerawat = produkPerawatConverter.transferVOToModel(vo, new ProdukPerawat());
ProdukPerawat resultModel = produkPerawatDao.save(produkPerawat);
ProdukPerawatVO resultVO = new ProdukPerawatVO();
resultVO = produkPerawatConverter.transferModelToVO(resultModel, resultVO);
return resultVO;
}
@Override
public ProdukPerawatVO update(ProdukPerawatVO vo) throws JpaSystemException, ServiceVOException {
ProdukPerawat produkPerawatLama = produkPerawatDao.findOne(vo.getId());
ProdukPerawat produkPerawatBaru = produkPerawatConverter.transferVOToModel(vo, produkPerawatLama);
ProdukPerawat resultModel = produkPerawatDao.save(produkPerawatBaru);
ProdukPerawatVO resultVO = new ProdukPerawatVO();
resultVO = produkPerawatConverter.transferModelToVO(resultModel, resultVO);
return resultVO;
}
@Override
public Boolean delete(Integer key) throws JpaSystemException {
produkPerawatDao.delete(key);
return true;
}
@Override
public ProdukPerawatVO findById(Integer key) throws JpaSystemException {
ProdukPerawatVO result = new ProdukPerawatVO();
ProdukPerawat produkPerawat = produkPerawatDao.findOne(key);
if (CommonUtil.isNotNullOrEmpty(produkPerawat)) {
result = produkPerawatConverter.transferModelToVO(produkPerawat, result);
}
return result;
}
@Override
public List<ProdukPerawatVO> findAll() throws JpaSystemException {
List<ProdukPerawatVO> result = new ArrayList<ProdukPerawatVO>();
Iterable<ProdukPerawat> models = produkPerawatDao.findAll();
if (CommonUtil.isNotNullOrEmpty(models)) {
for (ProdukPerawat model : models) {
ProdukPerawatVO vo = new ProdukPerawatVO();
vo = produkPerawatConverter.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>> findAllActive(String namaProduk, Short kdKlasif) throws JpaSystemException {
List<Map<String, Object>> result = new ArrayList<>();
if (CommonUtil.isNotNullOrEmpty(namaProduk) && CommonUtil.isNullOrEmpty(kdKlasif)) {
result = produkPerawatDao.findAllActive(namaProduk.toLowerCase());
} else if (CommonUtil.isNullOrEmpty(namaProduk) && CommonUtil.isNotNullOrEmpty(kdKlasif)) {
result = produkPerawatDao.findAllActive(kdKlasif);
} else if (CommonUtil.isNotNullOrEmpty(namaProduk) && CommonUtil.isNotNullOrEmpty(kdKlasif)) {
result = produkPerawatDao.findAllActive(namaProduk.toLowerCase(), kdKlasif);
} else {
result = produkPerawatDao.findAllActive();
}
return result;
}
@Override
public List<Map<String, Object>> findDupProdukPerawat(String namaProduk, Short kdKlasif, 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 = produkPerawatDao.findDupProduk(patternText, replacedNamaProduk, kdKlasif, idProduk);
} else {
listId = produkPerawatDao.findDupProduk(patternText, replacedNamaProduk, kdKlasif);
}
if (CommonUtil.isNotNullOrEmpty(listId)) {
result = produkPerawatDao.findProdukPerawat(listId);
}
return result;
}
}

View File

@ -0,0 +1,116 @@
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.ProfesiDao;
import com.jasamedika.medifirst2000.entities.Profesi;
import com.jasamedika.medifirst2000.exception.ServiceVOException;
import com.jasamedika.medifirst2000.service.ProfesiService;
import com.jasamedika.medifirst2000.util.CommonUtil;
import com.jasamedika.medifirst2000.vo.ProfesiVO;
/**
* @author ITI-14
* @since Oct 8, 2021
*/
@Service("profesiService")
public class ProfesiServiceImpl extends BaseVoServiceImpl implements ProfesiService {
@Autowired
private BaseConverterImpl<ProfesiVO, Profesi> profesiConverter;
@Autowired
private ProfesiDao profesiDao;
@Override
public ProfesiVO add(ProfesiVO vo) throws JpaSystemException, ServiceVOException {
Profesi profesi = profesiConverter.transferVOToModel(vo, new Profesi());
Profesi resultModel = profesiDao.save(profesi);
ProfesiVO resultVO = new ProfesiVO();
resultVO = profesiConverter.transferModelToVO(resultModel, resultVO);
return resultVO;
}
@Override
public ProfesiVO update(ProfesiVO vo) throws JpaSystemException, ServiceVOException {
Profesi profesiLama = profesiDao.findOne(vo.getId());
Profesi profesiBaru = profesiConverter.transferVOToModel(vo, profesiLama);
Profesi resultModel = profesiDao.save(profesiBaru);
ProfesiVO resultVO = new ProfesiVO();
resultVO = profesiConverter.transferModelToVO(resultModel, resultVO);
return resultVO;
}
@Override
public Boolean delete(Integer key) throws JpaSystemException {
profesiDao.delete(key);
return true;
}
@Override
public ProfesiVO findById(Integer key) throws JpaSystemException {
ProfesiVO result = new ProfesiVO();
Profesi profesi = profesiDao.findOne(key);
if (CommonUtil.isNotNullOrEmpty(profesi)) {
result = profesiConverter.transferModelToVO(profesi, result);
}
return result;
}
@Override
public List<ProfesiVO> findAll() throws JpaSystemException {
List<ProfesiVO> result = new ArrayList<ProfesiVO>();
Iterable<Profesi> models = profesiDao.findAll();
if (CommonUtil.isNotNullOrEmpty(models)) {
for (Profesi model : models) {
ProfesiVO vo = new ProfesiVO();
vo = profesiConverter.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<ProfesiVO> findAllActive() throws JpaSystemException {
List<ProfesiVO> result = new ArrayList<ProfesiVO>();
Iterable<Profesi> models = profesiDao.findAllActive();
if (CommonUtil.isNotNullOrEmpty(models)) {
for (Profesi model : models) {
ProfesiVO vo = new ProfesiVO();
vo = profesiConverter.transferModelToVO(model, vo);
result.add(vo);
}
}
return result;
}
}

View File

@ -23,6 +23,11 @@ public class ProdukNakes extends BaseActive {
@Caption(value = "Nama Produk")
private String namaProduk;
@NotNull(message = "Kode Produk tidak boleh kosong")
@Column(name = "kdproduk", nullable = false)
@Caption(value = "Kode Produk")
private Short kdProduk;
@ManyToOne
@NotNull(message = "Profesi tidak boleh kosong")
@JoinColumn(name = "objectprofesifk")
@ -46,6 +51,14 @@ public class ProdukNakes extends BaseActive {
this.namaProduk = namaProduk;
}
public Short getKdProduk() {
return kdProduk;
}
public void setKdProduk(Short kdProduk) {
this.kdProduk = kdProduk;
}
public Profesi getProfesi() {
return profesi;
}

View File

@ -8,6 +8,9 @@ public class ProdukNakesVO extends BaseActiveVO {
@Caption(value = "Nama Produk")
private String namaProduk;
@Caption(value = "Kode Produk")
private Short kdProduk;
@Caption(value = "Profesi")
private ProfesiVO profesi;
@ -23,6 +26,14 @@ public class ProdukNakesVO extends BaseActiveVO {
this.namaProduk = namaProduk;
}
public Short getKdProduk() {
return kdProduk;
}
public void setKdProduk(Short kdProduk) {
this.kdProduk = kdProduk;
}
public ProfesiVO getProfesi() {
return profesi;
}

View File

@ -39,6 +39,8 @@ import com.jasamedika.medifirst2000.service.MapPegawaiJabatanToUnitKerjaService;
import com.jasamedika.medifirst2000.service.PelayananPasienNakesService;
import com.jasamedika.medifirst2000.service.PelayananPasienPerawatService;
import com.jasamedika.medifirst2000.service.ProdukNakesService;
import com.jasamedika.medifirst2000.service.ProdukPerawatService;
import com.jasamedika.medifirst2000.service.ProfesiService;
import com.jasamedika.medifirst2000.service.RemunerasiOperasionalService;
import com.jasamedika.medifirst2000.service.SkoringTindakanMedisService;
import com.jasamedika.medifirst2000.service.SkoringTindakanNakesService;
@ -56,6 +58,8 @@ import com.jasamedika.medifirst2000.vo.LogbookKinerjaVO;
import com.jasamedika.medifirst2000.vo.PelayananPasienNakesVO;
import com.jasamedika.medifirst2000.vo.PelayananPasienPerawatVO;
import com.jasamedika.medifirst2000.vo.ProdukNakesVO;
import com.jasamedika.medifirst2000.vo.ProdukPerawatVO;
import com.jasamedika.medifirst2000.vo.ProfesiVO;
import com.jasamedika.medifirst2000.vo.RemunerasiOperasionalVO;
import com.jasamedika.medifirst2000.vo.SettingPirSdmVO;
import com.jasamedika.medifirst2000.vo.SkoringTindakanMedisVO;
@ -113,6 +117,12 @@ public class IkiDanRemunerasiController extends LocaleController<IkiDanRemuneras
@Autowired
private PelayananPasienPerawatService pelayananPasienPerawatService;
@Autowired
private ProfesiService profesiService;
@Autowired
private ProdukPerawatService produkPerawatService;
@Autowired
private ProdukNakesService produkNakesService;
@ -1602,6 +1612,121 @@ public class IkiDanRemunerasiController extends LocaleController<IkiDanRemuneras
}
}
@RequestMapping(value = "/save-produk-perawat", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE, consumes = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<ProdukPerawatVO> saveProdukPerawat(HttpServletRequest request,
@Valid @RequestBody ProdukPerawatVO vo) {
try {
ProdukPerawatVO result = new ProdukPerawatVO();
if (CommonUtil.isNotNullOrEmpty(vo.getId())) {
result = produkPerawatService.update(vo);
} else {
result = produkPerawatService.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 perawat", 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 perawat", jse.getMessage());
addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, jse.getMessage());
return RestUtil.getJsonHttptatus(HttpStatus.CONFLICT, mapHeaderMessage);
}
}
@RequestMapping(value = "/get-produk-perawat", method = RequestMethod.GET)
public ResponseEntity<List<Map<String, Object>>> getProdukPerawat(HttpServletRequest request,
@RequestParam(value = "namaProduk", required = false) String namaProduk,
@RequestParam(value = "kdKlasif", required = false) Short kdKlasif) {
try {
List<Map<String, Object>> result = produkPerawatService.findAllActive(namaProduk, kdKlasif);
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 perawat", 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 perawat", jse.getMessage());
addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, jse.getMessage());
return RestUtil.getJsonHttptatus(HttpStatus.CONFLICT, mapHeaderMessage);
}
}
@RequestMapping(value = "/get-duplicate-produk-perawat", method = RequestMethod.GET)
public ResponseEntity<List<Map<String, Object>>> getDuplikatProdukPerawat(HttpServletRequest request,
@RequestParam(value = "namaProduk", required = true) String namaProduk,
@RequestParam(value = "kdKlasif", required = true) Short kdKlasif,
@RequestParam(value = "produkId", required = false) Integer idProduk) {
try {
List<Map<String, Object>> result = produkPerawatService.findDupProdukPerawat(namaProduk, kdKlasif,
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 perawat", 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 perawat", jse.getMessage());
addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, jse.getMessage());
return RestUtil.getJsonHttptatus(HttpStatus.CONFLICT, mapHeaderMessage);
}
}
@RequestMapping(value = "/save-profesi-nakes", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE, consumes = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<ProfesiVO> saveProfesiNakes(HttpServletRequest request, @Valid @RequestBody ProfesiVO vo) {
try {
ProfesiVO result = new ProfesiVO();
if (CommonUtil.isNotNullOrEmpty(vo.getId())) {
result = profesiService.update(vo);
} else {
result = profesiService.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 profesi nakes lain", 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 profesi nakes lain", jse.getMessage());
addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, jse.getMessage());
return RestUtil.getJsonHttptatus(HttpStatus.CONFLICT, mapHeaderMessage);
}
}
@RequestMapping(value = "/get-profesi-nakes", method = RequestMethod.GET)
public ResponseEntity<List<ProfesiVO>> getProfesiNakes(HttpServletRequest request) {
try {
List<ProfesiVO> result = profesiService.findAllActive();
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 profesi nakes lain", 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 profesi nakes lain", jse.getMessage());
addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, jse.getMessage());
return RestUtil.getJsonHttptatus(HttpStatus.CONFLICT, mapHeaderMessage);
}
}
@RequestMapping(value = "/save-produk-nakes", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE, consumes = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<ProdukNakesVO> saveProdukNakes(HttpServletRequest request,
@Valid @RequestBody ProdukNakesVO vo) {
@ -1620,11 +1745,53 @@ public class IkiDanRemunerasiController extends LocaleController<IkiDanRemuneras
return RestUtil.getJsonHttptatus(HttpStatus.NOT_ACCEPTABLE);
}
} catch (ServiceVOException sve) {
LOGGER.error("Got exception {} when add/update master produk nakes", sve.getMessage());
LOGGER.error("Got exception {} when add/update master produk nakes lain", 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 nakes", jse.getMessage());
LOGGER.error("Got exception {} when add/update master produk nakes lain", jse.getMessage());
addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, jse.getMessage());
return RestUtil.getJsonHttptatus(HttpStatus.CONFLICT, mapHeaderMessage);
}
}
@RequestMapping(value = "/get-produk-nakes", method = RequestMethod.GET)
public ResponseEntity<List<Map<String, Object>>> getProdukNakes(HttpServletRequest request,
@RequestParam(value = "namaProduk", required = false) String namaProduk,
@RequestParam(value = "kdProduk", required = false) Short kdProduk,
@RequestParam(value = "profesiId", required = false) Integer idProfesi) {
try {
List<Map<String, Object>> result = produkNakesService.findProdukNakes(namaProduk, kdProduk, idProfesi);
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 nakes lain", 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 nakes lain", jse.getMessage());
addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, jse.getMessage());
return RestUtil.getJsonHttptatus(HttpStatus.CONFLICT, mapHeaderMessage);
}
}
@RequestMapping(value = "/get-duplicate-produk-nakes", method = RequestMethod.GET)
public ResponseEntity<List<Map<String, Object>>> getDuplikatProdukNakes(HttpServletRequest request,
@RequestParam(value = "namaProduk", required = true) String namaProduk,
@RequestParam(value = "profesiId", required = true) Integer idProfesi,
@RequestParam(value = "produkId", required = false) Integer idProduk) {
try {
List<Map<String, Object>> result = produkNakesService.findDupProdukNakes(namaProduk, idProfesi, 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 nakes lain", 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 nakes lain", jse.getMessage());
addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, jse.getMessage());
return RestUtil.getJsonHttptatus(HttpStatus.CONFLICT, mapHeaderMessage);
}