From 21fdcf2b2ff13d7b0abc7406e1df4cd2c19ecb65 Mon Sep 17 00:00:00 2001 From: salmanoe Date: Sun, 21 Feb 2021 20:13:38 +0700 Subject: [PATCH] - pembuatan service simpan, update, dan delete master indikator kinerja - pembuatan service simpan, update, dan delete logbook kinerja dan detail - perbaikan service update klaim diskon karyawan karena jumlah dan diskon awal jasa farmasi --- .../medifirst2000/dao/PelayananPasienDao.java | 50 +++---- .../dao/PelayananPasienDetailDao.java | 10 -- .../service/IndikatorKinerjaService.java | 8 ++ .../service/LogbookKinerjaDetailService.java | 8 ++ .../service/LogbookKinerjaService.java | 8 ++ .../service/PelayananPasienService.java | 2 +- .../impl/IndikatorBIOSServiceImpl.java | 4 - .../impl/IndikatorKinerjaServiceImpl.java | 102 ++++++++++++++ .../impl/LogbookKinerjaDetailServiceImpl.java | 120 +++++++++++++++++ .../impl/LogbookKinerjaServiceImpl.java | 124 ++++++++++++++++++ .../impl/PelayananPasienServiceImpl.java | 107 +++++---------- .../entities/IndikatorKinerja.java | 7 +- .../entities/LogbookKinerja.java | 16 ++- .../entities/LogbookKinerjaDetail.java | 16 ++- .../entities/PelayananPasien.java | 8 ++ .../vo/LogbookKinerjaDetailVO.java | 11 ++ .../IkiDanRemunerasiController.java | 108 ++++++++++++++- .../controller/PelayananController.java | 27 +++- .../src/main/webapp/WEB-INF/web.xml | 2 +- 19 files changed, 602 insertions(+), 136 deletions(-) create mode 100644 jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/IndikatorKinerjaService.java create mode 100644 jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/LogbookKinerjaDetailService.java create mode 100644 jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/LogbookKinerjaService.java create mode 100644 jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/IndikatorKinerjaServiceImpl.java create mode 100644 jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/LogbookKinerjaDetailServiceImpl.java create mode 100644 jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/LogbookKinerjaServiceImpl.java diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/PelayananPasienDao.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/PelayananPasienDao.java index c0e1418b..0face02e 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/PelayananPasienDao.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/PelayananPasienDao.java @@ -153,39 +153,27 @@ public interface PelayananPasienDao extends PagingAndSortingRepository> findDataLayananAllRuangan(@Param("tglAwal") Date tglAwal, @Param("tglAkhir") Date tglAkhir, @Param("listNontindakanId") List listNontindakanId); - - @Query("select new Map(" - + "pg.id as idPegawai, " - + "pg.namaLengkap as namaPegawai, " - + "pg.typePegawaiId as tipePegawai, " - + "kp.id as idKelPasien, " - + "pr.id as idLayanan, " - + "pr.namaProduk as namaLayanan, " - + "ru.departemenId as idDepartemen, " - + "djp.jenisProdukId as idJenisProduk, " - + "ppd.hargaJual as hargaJual, " - + "coalesce(ppd.hargaDiscount,0) as hargaDiskon, " - + "pp.jumlah as jumlahLayanan" - + ") from PelayananPasienPetugas ppp, PelayananPasienDetail ppd " - + "left join ppp.pelayananPasien pp " - + "left join ppp.kdpegawai pg " - + "left join ppd.produk pr " - + "left join pp.pasienDaftar apd " - + "left join apd.pasienDaftar pd " - + "left join apd.ruangan ru " - + "left join apd.kelas kls " - + "left join pd.pasien ps " - + "left join pd.kelompokPasien kp " - + "left join pr.detailJenisProduk djp " - + "where ppd.pelayananPasienId = pp.noRec " - + "and ppp.pelayananPasienId = ppd.pelayananPasienId " + + @Query("select new Map(" + "pg.id as idPegawai, " + "pg.namaLengkap as namaPegawai, " + + "pg.typePegawaiId as tipePegawai, " + "kp.id as idKelPasien, " + "pr.id as idLayanan, " + + "pr.namaProduk as namaLayanan, " + "ru.departemenId as idDepartemen, " + + "djp.jenisProdukId as idJenisProduk, " + "ppd.hargaJual as hargaJual, " + + "coalesce(ppd.hargaDiscount,0) as hargaDiskon, " + "pp.jumlah as jumlahLayanan" + + ") from PelayananPasienPetugas ppp, PelayananPasienDetail ppd " + "left join ppp.pelayananPasien pp " + + "left join ppp.kdpegawai pg " + "left join ppd.produk pr " + "left join pp.pasienDaftar apd " + + "left join apd.pasienDaftar pd " + "left join apd.ruangan ru " + "left join apd.kelas kls " + + "left join pd.pasien ps " + "left join pd.kelompokPasien kp " + "left join pr.detailJenisProduk djp " + + "where ppd.pelayananPasienId = pp.noRec " + "and ppp.pelayananPasienId = ppd.pelayananPasienId " + "and ((ppp.ObjectJenisPetugasPeId = 4 and ppd.komponenHargaId = 35) " + "or (ppp.ObjectJenisPetugasPeId = 6 and ppd.komponenHargaId = 21) " + "or (ppp.ObjectJenisPetugasPeId = 13 and ppd.komponenHargaId = 22)) " - + "and pg.jenisPegawaiId = :idJenisPegawai " - + "and pg.typePegawaiId is not null " - + "and pp.tglPelayanan between :tglAwal and :tglAkhir " - + "order by pg.namaLengkap") - List> getDataPendapatan(@Param("idJenisPegawai") int idJenisPegawai, @Param("tglAwal") Date tglAwal, @Param("tglAkhir") Date tglAkhir); + + "and pg.jenisPegawaiId = :idJenisPegawai " + "and pg.typePegawaiId is not null " + + "and pp.tglPelayanan between :tglAwal and :tglAkhir " + "order by pg.namaLengkap") + List> getDataPendapatan(@Param("idJenisPegawai") int idJenisPegawai, + @Param("tglAwal") Date tglAwal, @Param("tglAkhir") Date tglAkhir); + + @Query("select pp from PelayananPasien pp " + "inner join pp.pasienDaftar apd " + "inner join apd.pasienDaftar pd " + + "where pp.strukFk is null " + "and pd.noRegistrasi = :noRegistrasi " + "order by pp.produkId") + Iterable findLayananTagihan(@Param("noRegistrasi") String noRegistrasi); } diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/PelayananPasienDetailDao.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/PelayananPasienDetailDao.java index 5fdcfdde..6a03ad78 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/PelayananPasienDetailDao.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/PelayananPasienDetailDao.java @@ -1,7 +1,6 @@ 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; @@ -21,13 +20,4 @@ public interface PelayananPasienDetailDao extends PagingAndSortingRepository getPelayananPasienDetail(@Param("noRec") String noRec); - @Query("select new Map(" + "coalesce(ppd.hargaDiscount,0) as hargaDiscount," - + "coalesce(ppd.hargaJual,0) as hargaJual," + "coalesce(ppd.hargaNetto,0) as hargaNetto," - + "coalesce(ppd.hargaSatuan,0) as hargaSatuan," + "coalesce(ppd.jasa,0) as jasa," - + "coalesce(ppd.jumlah,0) as jumlah," + "ppd.komponenHargaId as idKomponenHarga," - + "pd.dokterPenanggungJawabId as dpjpUtama," + "apd.pegawaiId as dpjp," + "pp.produkId as idLayanan" - + ") from PelayananPasienDetail ppd " + "inner join ppd.pelayananPasien pp " - + "inner join pp.pasienDaftar apd " + "inner join apd.pasienDaftar pd " + "where pp.strukFk is null " - + "and pd.noRegistrasi = :noRegistrasi " + "order by ppd.komponenHargaId") - List> findDetailTagihan(@Param("noRegistrasi") String noRegistrasi); } diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/IndikatorKinerjaService.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/IndikatorKinerjaService.java new file mode 100644 index 00000000..54a47019 --- /dev/null +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/IndikatorKinerjaService.java @@ -0,0 +1,8 @@ +package com.jasamedika.medifirst2000.service; + +import com.jasamedika.medifirst2000.entities.IndikatorKinerja; +import com.jasamedika.medifirst2000.vo.IndikatorKinerjaVO; + +public interface IndikatorKinerjaService extends BaseVoService { + +} diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/LogbookKinerjaDetailService.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/LogbookKinerjaDetailService.java new file mode 100644 index 00000000..f228f090 --- /dev/null +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/LogbookKinerjaDetailService.java @@ -0,0 +1,8 @@ +package com.jasamedika.medifirst2000.service; + +import com.jasamedika.medifirst2000.entities.LogbookKinerjaDetail; +import com.jasamedika.medifirst2000.vo.LogbookKinerjaDetailVO; + +public interface LogbookKinerjaDetailService extends BaseVoService { + +} diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/LogbookKinerjaService.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/LogbookKinerjaService.java new file mode 100644 index 00000000..45cfd29b --- /dev/null +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/LogbookKinerjaService.java @@ -0,0 +1,8 @@ +package com.jasamedika.medifirst2000.service; + +import com.jasamedika.medifirst2000.entities.LogbookKinerja; +import com.jasamedika.medifirst2000.vo.LogbookKinerjaVO; + +public interface LogbookKinerjaService extends BaseVoService { + +} diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/PelayananPasienService.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/PelayananPasienService.java index 3eaca465..9d62c83e 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/PelayananPasienService.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/PelayananPasienService.java @@ -18,6 +18,6 @@ public interface PelayananPasienService { List> hitungRemunerasiDokterDenganFfs(String tglAwal, String tglAkhir); - void updateKlaimDiskonRSAB(String noRegistrasi, Double totalKlaim); + List updateKlaimDiskonKaryawan(String noRegistrasi, Double totalKlaim); } diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/IndikatorBIOSServiceImpl.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/IndikatorBIOSServiceImpl.java index 80b443a8..f84fdd5c 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/IndikatorBIOSServiceImpl.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/IndikatorBIOSServiceImpl.java @@ -16,7 +16,6 @@ import org.springframework.stereotype.Service; import com.jasamedika.medifirst2000.constants.Master; import com.jasamedika.medifirst2000.converter.BaseConverterImpl; -import com.jasamedika.medifirst2000.dao.AntrianPasienDiPeriksaDao; import com.jasamedika.medifirst2000.dao.BridgingDao; import com.jasamedika.medifirst2000.dao.IndikatorBIOSDao; import com.jasamedika.medifirst2000.dao.IndikatorBIOSTransaksiDao; @@ -37,9 +36,6 @@ public class IndikatorBIOSServiceImpl extends BaseVoServiceImpl implements Indik @Autowired private BaseConverterImpl indikatorConverter; - @Autowired - private AntrianPasienDiPeriksaDao antrianPasienDiPeriksaDao; - @Autowired private BridgingDao bridgingDao; diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/IndikatorKinerjaServiceImpl.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/IndikatorKinerjaServiceImpl.java new file mode 100644 index 00000000..864ed876 --- /dev/null +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/IndikatorKinerjaServiceImpl.java @@ -0,0 +1,102 @@ +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.IndikatorKinerjaDao; +import com.jasamedika.medifirst2000.entities.IndikatorKinerja; +import com.jasamedika.medifirst2000.entities.SatuanIndikator; +import com.jasamedika.medifirst2000.exception.ServiceVOException; +import com.jasamedika.medifirst2000.service.IndikatorKinerjaService; +import com.jasamedika.medifirst2000.util.CommonUtil; +import com.jasamedika.medifirst2000.vo.IndikatorKinerjaVO; +import com.jasamedika.medifirst2000.vo.SatuanIndikatorVO; + +@Service("IndikatorKinerjaService") +public class IndikatorKinerjaServiceImpl extends BaseVoServiceImpl implements IndikatorKinerjaService { + + @Autowired + private BaseConverterImpl indikatorKinerjaConverter; + + @Autowired + private BaseConverterImpl satuanIndikatorConverter; + + @Autowired + private IndikatorKinerjaDao indikatorKinerjaDao; + + @Override + public IndikatorKinerjaVO add(IndikatorKinerjaVO vo) throws JpaSystemException, ServiceVOException { + SatuanIndikator satuanIndikator = satuanIndikatorConverter.transferVOToModel(vo.getSatuanIndikator(), new SatuanIndikator()); + IndikatorKinerja indikatorKinerja = indikatorKinerjaConverter.transferVOToModel(vo, new IndikatorKinerja()); + + indikatorKinerja.setSatuanIndikator(satuanIndikator); + IndikatorKinerja resultModel = indikatorKinerjaDao.save(indikatorKinerja); + + IndikatorKinerjaVO resultVO = new IndikatorKinerjaVO(); + resultVO = indikatorKinerjaConverter.transferModelToVO(resultModel, resultVO); + + return resultVO; + } + + @Override + public IndikatorKinerjaVO update(IndikatorKinerjaVO vo) throws JpaSystemException, ServiceVOException { + IndikatorKinerja indikatorKinerjaLama = indikatorKinerjaDao.findOne(vo.getId()); + + SatuanIndikator satuanIndikator = satuanIndikatorConverter.transferVOToModel(vo.getSatuanIndikator(), new SatuanIndikator()); + IndikatorKinerja indikatorKinerjaBaru = indikatorKinerjaConverter.transferVOToModel(vo, indikatorKinerjaLama); + + indikatorKinerjaBaru.setSatuanIndikator(satuanIndikator); + IndikatorKinerja resultModel = indikatorKinerjaDao.save(indikatorKinerjaBaru); + + IndikatorKinerjaVO resultVO = new IndikatorKinerjaVO(); + resultVO = indikatorKinerjaConverter.transferModelToVO(resultModel, resultVO); + + return resultVO; + } + + @Override + public Boolean delete(Integer key) throws JpaSystemException { + indikatorKinerjaDao.delete(key); + return true; + } + + @Override + public IndikatorKinerjaVO findById(Integer key) throws JpaSystemException { + IndikatorKinerjaVO result = new IndikatorKinerjaVO(); + + IndikatorKinerja indikatorKinerja = indikatorKinerjaDao.findOne(key); + if (CommonUtil.isNotNullOrEmpty(indikatorKinerja)) { + result = indikatorKinerjaConverter.transferModelToVO(indikatorKinerja, result); + } + + return result; + } + + @Override + public List findAll() throws JpaSystemException { + List result = new ArrayList(); + + Iterable models = indikatorKinerjaDao.findAll(); + if (CommonUtil.isNotNullOrEmpty(models)) { + for (IndikatorKinerja model : models) { + IndikatorKinerjaVO vo = new IndikatorKinerjaVO(); + vo = indikatorKinerjaConverter.transferModelToVO(model, vo); + result.add(vo); + } + } + return result; + } + + @Override + public Map findAllWithPageAndLimitAndSortByAndDirectionParameter(Integer page, Integer limit, + String sort, String dir) { + return null; + } + +} diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/LogbookKinerjaDetailServiceImpl.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/LogbookKinerjaDetailServiceImpl.java new file mode 100644 index 00000000..8b470b8f --- /dev/null +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/LogbookKinerjaDetailServiceImpl.java @@ -0,0 +1,120 @@ +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 org.springframework.stereotype.Service; + +import com.jasamedika.medifirst2000.converter.BaseConverterImpl; +import com.jasamedika.medifirst2000.dao.LogbookKinerjaDao; +import com.jasamedika.medifirst2000.dao.LogbookKinerjaDetailDao; +import com.jasamedika.medifirst2000.entities.LogbookKinerja; +import com.jasamedika.medifirst2000.entities.LogbookKinerjaDetail; +import com.jasamedika.medifirst2000.exception.ServiceVOException; +import com.jasamedika.medifirst2000.service.LogbookKinerjaDetailService; +import com.jasamedika.medifirst2000.util.CommonUtil; +import com.jasamedika.medifirst2000.vo.LogbookKinerjaDetailVO; +import com.jasamedika.medifirst2000.vo.LogbookKinerjaVO; + +@Service("LogbookKinerjaDetailService") +public class LogbookKinerjaDetailServiceImpl extends BaseVoServiceImpl implements LogbookKinerjaDetailService { + + @Autowired + private BaseConverterImpl logbookKinerjaDetailConverter; + + @Autowired + private LogbookKinerjaDao logbookKinerjaDao; + + @Autowired + private LogbookKinerjaDetailDao logbookKinerjaDetailDao; + + @Override + public LogbookKinerjaDetailVO add(LogbookKinerjaDetailVO vo) throws JpaSystemException, ServiceVOException { + LogbookKinerja logbookKinerja = logbookKinerjaDao.findOne(vo.getLogbookKinerja().getNoRec()); + + LogbookKinerjaDetail logbookKinerjaDetail = logbookKinerjaDetailConverter.transferVOToModel(vo, + new LogbookKinerjaDetail()); + + logbookKinerja.setCapaian(logbookKinerja.getCapaian() + vo.getCapaian()); + logbookKinerjaDetail.setLogbookKinerja(logbookKinerja); + logbookKinerjaDetail.setTanggalKegiatan(new Date()); + + logbookKinerjaDao.save(logbookKinerja); + LogbookKinerjaDetail resultModel = logbookKinerjaDetailDao.save(logbookKinerjaDetail); + + LogbookKinerjaDetailVO resultVO = new LogbookKinerjaDetailVO(); + resultVO = logbookKinerjaDetailConverter.transferModelToVO(resultModel, resultVO); + + return resultVO; + } + + @Override + public LogbookKinerjaDetailVO update(LogbookKinerjaDetailVO vo) throws JpaSystemException, ServiceVOException { + LogbookKinerja logbookKinerja = logbookKinerjaDao.findOne(vo.getLogbookKinerja().getNoRec()); + LogbookKinerjaDetail logbookKinerjaDetailLama = logbookKinerjaDetailDao.findOne(vo.getNoRec()); + + if (!vo.getStatusEnabled() && logbookKinerjaDetailLama.getStatusEnabled()) { + logbookKinerja.setCapaian(logbookKinerja.getCapaian() - vo.getCapaian()); + } else if (vo.getStatusEnabled() && !logbookKinerjaDetailLama.getStatusEnabled()) { + logbookKinerja.setCapaian(logbookKinerja.getCapaian() + vo.getCapaian()); + } + + LogbookKinerjaDetail logbookKinerjaDetailBaru = logbookKinerjaDetailConverter.transferVOToModel(vo, + logbookKinerjaDetailLama); + + logbookKinerjaDetailBaru.setLogbookKinerja(logbookKinerja); + + logbookKinerjaDao.save(logbookKinerja); + LogbookKinerjaDetail resutlModel = logbookKinerjaDetailDao.save(logbookKinerjaDetailBaru); + + LogbookKinerjaDetailVO resultVO = new LogbookKinerjaDetailVO(); + resultVO = logbookKinerjaDetailConverter.transferModelToVO(resutlModel, resultVO); + + return resultVO; + } + + @Override + public Boolean delete(String key) throws JpaSystemException { + logbookKinerjaDetailDao.delete(key); + return true; + } + + @Override + public LogbookKinerjaDetailVO findById(String key) throws JpaSystemException { + LogbookKinerjaDetailVO result = new LogbookKinerjaDetailVO(); + + LogbookKinerjaDetail logbookKinerjaDetail = logbookKinerjaDetailDao.findOne(key); + if (CommonUtil.isNotNullOrEmpty(logbookKinerjaDetail)) { + result = logbookKinerjaDetailConverter.transferModelToVO(logbookKinerjaDetail, result); + } + + return result; + } + + @Override + public List findAll() throws JpaSystemException { + List result = new ArrayList(); + + Iterable models = logbookKinerjaDetailDao.findAll(); + if (CommonUtil.isNotNullOrEmpty(models)) { + for (LogbookKinerjaDetail model : models) { + LogbookKinerjaDetailVO vo = new LogbookKinerjaDetailVO(); + vo = logbookKinerjaDetailConverter.transferModelToVO(model, vo); + result.add(vo); + } + } + + return result; + } + + @Override + public Map findAllWithPageAndLimitAndSortByAndDirectionParameter(Integer page, Integer limit, + String sort, String dir) { + return null; + } + +} diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/LogbookKinerjaServiceImpl.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/LogbookKinerjaServiceImpl.java new file mode 100644 index 00000000..1dabe5a5 --- /dev/null +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/LogbookKinerjaServiceImpl.java @@ -0,0 +1,124 @@ +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.LogbookKinerjaDao; +import com.jasamedika.medifirst2000.entities.IndikatorKinerja; +import com.jasamedika.medifirst2000.entities.Jabatan; +import com.jasamedika.medifirst2000.entities.LogbookKinerja; +import com.jasamedika.medifirst2000.entities.Pegawai; +import com.jasamedika.medifirst2000.exception.ServiceVOException; +import com.jasamedika.medifirst2000.service.LogbookKinerjaService; +import com.jasamedika.medifirst2000.util.CommonUtil; +import com.jasamedika.medifirst2000.vo.IndikatorKinerjaVO; +import com.jasamedika.medifirst2000.vo.JabatanVO; +import com.jasamedika.medifirst2000.vo.LogbookKinerjaVO; +import com.jasamedika.medifirst2000.vo.PegawaiVO; + +@Service("LogbookKinerjaService") +public class LogbookKinerjaServiceImpl extends BaseVoServiceImpl implements LogbookKinerjaService { + + @Autowired + private BaseConverterImpl logbookKinerjaConverter; + + @Autowired + private BaseConverterImpl pegawaiConverter; + + @Autowired + private BaseConverterImpl jabatanConverter; + + @Autowired + private BaseConverterImpl indikatorKinerjaConverter; + + @Autowired + private LogbookKinerjaDao logbookKinerjaDao; + + @Override + public LogbookKinerjaVO add(LogbookKinerjaVO vo) throws JpaSystemException, ServiceVOException { + Pegawai pegawai = pegawaiConverter.transferVOToModel(vo.getPegawai(), new Pegawai()); + Jabatan jabatan = jabatanConverter.transferVOToModel(vo.getJabatan(), new Jabatan()); + IndikatorKinerja indikatorKinerja = indikatorKinerjaConverter.transferVOToModel(vo.getIndikatorKinerja(), + new IndikatorKinerja()); + LogbookKinerja logbookKinerja = logbookKinerjaConverter.transferVOToModel(vo, new LogbookKinerja()); + + logbookKinerja.setPegawai(pegawai); + logbookKinerja.setJabatan(jabatan); + logbookKinerja.setIndikatorKinerja(indikatorKinerja); + logbookKinerja.setCapaian(0.0); + LogbookKinerja resultModel = logbookKinerjaDao.save(logbookKinerja); + + LogbookKinerjaVO resultVO = new LogbookKinerjaVO(); + resultVO = logbookKinerjaConverter.transferModelToVO(resultModel, resultVO); + + return resultVO; + } + + @Override + public LogbookKinerjaVO update(LogbookKinerjaVO vo) throws JpaSystemException, ServiceVOException { + LogbookKinerja logbookKinerjaLama = logbookKinerjaDao.findOne(vo.getNoRec()); + + Pegawai pegawai = pegawaiConverter.transferVOToModel(vo.getPegawai(), new Pegawai()); + Jabatan jabatan = jabatanConverter.transferVOToModel(vo.getJabatan(), new Jabatan()); + IndikatorKinerja indikatorKinerja = indikatorKinerjaConverter.transferVOToModel(vo.getIndikatorKinerja(), + new IndikatorKinerja()); + LogbookKinerja logbookKinerjaBaru = logbookKinerjaConverter.transferVOToModel(vo, logbookKinerjaLama); + + logbookKinerjaBaru.setPegawai(pegawai); + logbookKinerjaBaru.setJabatan(jabatan); + logbookKinerjaBaru.setIndikatorKinerja(indikatorKinerja); + LogbookKinerja resultModel = logbookKinerjaDao.save(logbookKinerjaBaru); + + LogbookKinerjaVO resultVO = new LogbookKinerjaVO(); + resultVO = logbookKinerjaConverter.transferModelToVO(resultModel, resultVO); + + return resultVO; + } + + @Override + public Boolean delete(String key) throws JpaSystemException { + logbookKinerjaDao.delete(key); + return true; + } + + @Override + public LogbookKinerjaVO findById(String key) throws JpaSystemException { + LogbookKinerjaVO result = new LogbookKinerjaVO(); + + LogbookKinerja logbookKinerja = logbookKinerjaDao.findOne(key); + if (CommonUtil.isNotNullOrEmpty(logbookKinerja)) { + result = logbookKinerjaConverter.transferModelToVO(logbookKinerja, result); + } + + return result; + } + + @Override + public List findAll() throws JpaSystemException { + List result = new ArrayList(); + + Iterable models = logbookKinerjaDao.findAll(); + if (CommonUtil.isNotNullOrEmpty(models)) { + for (LogbookKinerja model : models) { + LogbookKinerjaVO vo = new LogbookKinerjaVO(); + vo = logbookKinerjaConverter.transferModelToVO(model, vo); + result.add(vo); + } + } + + return result; + } + + @Override + public Map findAllWithPageAndLimitAndSortByAndDirectionParameter(Integer page, Integer limit, + String sort, String dir) { + return null; + } + +} diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/PelayananPasienServiceImpl.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/PelayananPasienServiceImpl.java index 8fb2c34c..14f95979 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/PelayananPasienServiceImpl.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/PelayananPasienServiceImpl.java @@ -22,7 +22,6 @@ import com.jasamedika.medifirst2000.converter.BaseConverterImpl; import com.jasamedika.medifirst2000.dao.AntrianPasienDiPeriksaDao; import com.jasamedika.medifirst2000.dao.LogAccDao; import com.jasamedika.medifirst2000.dao.PelayananPasienDao; -import com.jasamedika.medifirst2000.dao.PelayananPasienDetailDao; import com.jasamedika.medifirst2000.dao.StrukPelayananDao; import com.jasamedika.medifirst2000.entities.JenisObat; import com.jasamedika.medifirst2000.entities.LogAcc; @@ -55,9 +54,6 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel @Autowired private PelayananPasienDao pelayananPasienDao; - @Autowired - private PelayananPasienDetailDao pelayananPasienDetailDao; - @Autowired private LogAccDao logAccDao; @@ -354,85 +350,42 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel } @Override - public void updateKlaimDiskonRSAB(String noRegistrasi, Double totalKlaim) { - List> detailSarana = new ArrayList<>(); - List> detailUmum = new ArrayList<>(); - List> detailParamedis = new ArrayList<>(); - List> detailMedis = new ArrayList<>(); - List> detailLainlain = new ArrayList<>(); + public List updateKlaimDiskonKaryawan(String noRegistrasi, Double totalKlaim) { + List result = new ArrayList<>(); + double totalTagihan = 0.0; - double totalDetailSarana = 0.0; - double totalDetailUmum = 0.0; - double totalDetailParamedis = 0.0; - double totalDetailMedis = 0.0; - double totalDetailFarmasi = 0.0; - double sisaTotalKlaim = totalKlaim; - double fracTotalKlaim = 0.0; + Iterable data = pelayananPasienDao.findLayananTagihan(noRegistrasi); - List> detail = pelayananPasienDetailDao.findDetailTagihan(noRegistrasi); - for (Map map : detail) { - if (Arrays.asList(Master.KomponenHarga.JASA_SARANA).contains(map.get("idKomponenHarga"))) { - detailSarana.add(map); - totalDetailSarana += ((double) map.get("hargaJual") - (double) map.get("hargaDiscount")) - * (double) map.get("jumlah"); - totalDetailFarmasi += (double) map.get("jasa"); - } else if (map.get("idKomponenHarga").equals(Master.KomponenHarga.JASA_UMUM)) { - detailUmum.add(map); - totalDetailUmum += ((double) map.get("hargaJual") - (double) map.get("hargaDiscount")) - * (double) map.get("jumlah"); - totalDetailFarmasi += (double) map.get("jasa"); - } else if (Arrays.asList(Master.KomponenHarga.JASA_PARAMEDIS).contains(map.get("idKomponenHarga"))) { - detailParamedis.add(map); - totalDetailParamedis += ((double) map.get("hargaJual") - (double) map.get("hargaDiscount")) - * (double) map.get("jumlah"); - totalDetailFarmasi += (double) map.get("jasa"); - } else if (Arrays.asList(Master.KomponenHarga.JASA_MEDIS).contains(map.get("idKomponenHarga"))) { - detailMedis.add(map); - totalDetailMedis += ((double) map.get("hargaJual") - (double) map.get("hargaDiscount")) - * (double) map.get("jumlah"); - totalDetailFarmasi += (double) map.get("jasa"); - } else { - detailLainlain.add(map); - } + for (PelayananPasien pp : data) { + totalTagihan += hitungKomponenTagihan(pp); } - - if (sisaTotalKlaim <= totalDetailSarana) { - // TODO inserted by ITI-14 [Feb 15, 2021, 11:50:43 AM] : diskonkan detail sarana! - sisaTotalKlaim = 0.0; + if (totalKlaim >= totalTagihan) { + for (PelayananPasien pp : data) { + pp.setHargaDiscount(pp.getHargaJual()); + } } else { - // TODO inserted by ITI-14 [Feb 15, 2021, 11:51:36 AM] : nolkan detail sarana! - sisaTotalKlaim -= totalDetailSarana; - if (sisaTotalKlaim <= totalDetailUmum) { - // TODO inserted by ITI-14 [Feb 15, 2021, 11:52:10 AM] : diskonkan detail umum! - sisaTotalKlaim = 0.0; - } else { - // TODO inserted by ITI-14 [Feb 15, 2021, 11:52:39 AM] : nolkan detail umum! - sisaTotalKlaim -= totalDetailUmum; - if (sisaTotalKlaim <= totalDetailParamedis) { - // TODO inserted by ITI-14 [Feb 15, 2021, 11:53:20 AM] : diskonkan detail paramedis! - sisaTotalKlaim = 0.0; - } else { - // TODO inserted by ITI-14 [Feb 15, 2021, 11:54:40 AM] : nolkan detail paramedis! - sisaTotalKlaim -= totalDetailParamedis; - if (sisaTotalKlaim <= totalDetailMedis) { - // TODO inserted by ITI-14 [Feb 15, 2021, 11:55:18 AM] : diskonkan detail medis! - sisaTotalKlaim = 0.0; - } else { - // TODO inserted by ITI-14 [Feb 15, 2021, 11:55:49 AM] : nolkan detail medis! - sisaTotalKlaim -= totalDetailMedis; - if (sisaTotalKlaim <= totalDetailFarmasi) { - // TODO inserted by ITI-14 [Feb 15, 2021, 1:08:16 PM] : diskonkan detail jasa! - sisaTotalKlaim = 0.0; - } else { - // TODO inserted by ITI-14 [Feb 15, 2021, 1:08:38 PM] : nolkan detail jasa! - sisaTotalKlaim -= totalDetailFarmasi; - if (sisaTotalKlaim > 0.0) { - // TODO inserted by ITI-14 [Feb 15, 2021, 1:09:42 PM] : error! - } - } - } + for (PelayananPasien pp : data) { + pp.setHargaDiscount(pp.getHargaDiscount() + (totalKlaim / totalTagihan * hitungKomponenTagihan(pp)) / pp.getJumlah()); + if (pp.getHargaDiscount() > pp.getHargaJual()) { + pp.setHargaDiscount(pp.getHargaJual()); } } } + + Iterable resultModels = pelayananPasienDao.save(data); + if (CommonUtil.isNotNullOrEmpty(resultModels)) { + for (PelayananPasien pp : resultModels) { + result.add(pp.getNoRec()); + } + } + + return result; } + + public Double hitungKomponenTagihan(PelayananPasien pp) { + return ((pp.getHargaJual() == null ? 0.0 : pp.getHargaJual()) + - (pp.getHargaDiscount() == null ? 0.0 : pp.getHargaDiscount())) + * (pp.getJumlah() == null ? 0.0 : pp.getJumlah()) + (pp.getJasa() == null ? 0.0 : pp.getJasa()); + } + } \ No newline at end of file diff --git a/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/entities/IndikatorKinerja.java b/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/entities/IndikatorKinerja.java index a0e51bc8..c28ea15e 100644 --- a/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/entities/IndikatorKinerja.java +++ b/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/entities/IndikatorKinerja.java @@ -8,6 +8,7 @@ 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; @@ -21,17 +22,21 @@ public class IndikatorKinerja extends BaseMaster { private String namaIndikator; @ManyToOne + @NotNull(message = "Satuan indikator tidak boleh kosong") @JoinColumn(name = "objectsatuanindikatorfk") @Caption(value = "Satuan Indikator") private SatuanIndikator satuanIndikator; - @Column(name = "objectsatuanindikatorfk", insertable = false, updatable = false, nullable = false) + @Column(name = "objectsatuanindikatorfk", insertable = false, updatable = false, nullable = true) private Integer satuanIndikatorId; @Column(name = "statusverifikasi", nullable = false) @Caption(value = "Status Verifikasi") private Boolean statusVerifikasi; + /** + * jenisIndikator = 1: Kuantitas, 2: Kualitas, 3: Perilaku + */ @Column(name = "jenisIndikator", nullable = false) @Caption(value = "Jenis Indikator") private Integer jenisIndikator; diff --git a/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/entities/LogbookKinerja.java b/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/entities/LogbookKinerja.java index caa2db19..2cea609f 100644 --- a/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/entities/LogbookKinerja.java +++ b/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/entities/LogbookKinerja.java @@ -9,6 +9,7 @@ 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; @@ -31,35 +32,38 @@ public class LogbookKinerja extends BaseTransaction { private Double bobot; @Caption(value = "Capaian") - @Column(name = "capaian", nullable = true) + @Column(name = "capaian", nullable = true, columnDefinition = "float8 default 0") private Double capaian; - + @Column(name = "statusverifikasi", nullable = false) @Caption(value = "Status Verifikasi") private Boolean statusVerifikasi; - + @ManyToOne + @NotNull(message = "Pegawai tidak boleh kosong") @JoinColumn(name = "objectpegawaifk") @Caption(value = "Pegawai") private Pegawai pegawai; - @Column(name = "objectpegawaifk", insertable = false, updatable = false, nullable = false) + @Column(name = "objectpegawaifk", insertable = false, updatable = false, nullable = true) private Integer pegawaiId; @ManyToOne + @NotNull(message = "Jabatan tidak boleh kosong") @JoinColumn(name = "objectjabatanfk") @Caption(value = "Jabatan") private Jabatan jabatan; - @Column(name = "objectjabatanfk", insertable = false, updatable = false, nullable = false) + @Column(name = "objectjabatanfk", insertable = false, updatable = false, nullable = true) private Integer jabatanId; @ManyToOne + @NotNull(message = "Indikator kinerja tidak boleh kosong") @JoinColumn(name = "objectindikatorkinerjafk") @Caption(value = "Indikator Kinerja") private IndikatorKinerja indikatorKinerja; - @Column(name = "objectindikatorkinerjafk", insertable = false, updatable = false, nullable = false) + @Column(name = "objectindikatorkinerjafk", insertable = false, updatable = false, nullable = true) private Integer indikatorKinerjaId; public Date getBulan() { diff --git a/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/entities/LogbookKinerjaDetail.java b/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/entities/LogbookKinerjaDetail.java index 3abea870..cf5f94a8 100644 --- a/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/entities/LogbookKinerjaDetail.java +++ b/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/entities/LogbookKinerjaDetail.java @@ -9,6 +9,7 @@ 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; @@ -21,6 +22,10 @@ public class LogbookKinerjaDetail extends BaseTransaction { @Caption(value = "Nama Kegiatan") private String namaKegiatan; + @Column(name = "capaian", nullable = false) + @Caption(value = "Capaian") + private Double capaian; + @Column(name = "catatan", nullable = true) @Caption(value = "Catatan") private String catatan; @@ -35,11 +40,12 @@ public class LogbookKinerjaDetail extends BaseTransaction { private Boolean statusVerifikasi; @ManyToOne + @NotNull(message = "Indikator kinerja tidak boleh kosong") @JoinColumn(name = "objectlogbookkinerjafk") @Caption(value = "Logbook Kinerja") private LogbookKinerja logbookKinerja; - @Column(name = "objectlogbookkinerjafk", insertable = false, updatable = false, nullable = false) + @Column(name = "objectlogbookkinerjafk", insertable = false, updatable = false, nullable = true) private String logbookIndikatorId; public String getNamaKegiatan() { @@ -50,6 +56,14 @@ public class LogbookKinerjaDetail extends BaseTransaction { this.namaKegiatan = namaKegiatan; } + public Double getCapaian() { + return capaian; + } + + public void setCapaian(Double capaian) { + this.capaian = capaian; + } + public String getCatatan() { return catatan; } diff --git a/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/entities/PelayananPasien.java b/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/entities/PelayananPasien.java index c4a90776..851952c2 100644 --- a/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/entities/PelayananPasien.java +++ b/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/entities/PelayananPasien.java @@ -280,6 +280,14 @@ public class PelayananPasien extends MedicalRecordTransaction { this.statusOrder = statusOrder; } + public Double getJasa() { + return jasa; + } + + public void setJasa(Double jasa) { + this.jasa = jasa; + } + public Kelas getKelas() { return kelas; } diff --git a/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/vo/LogbookKinerjaDetailVO.java b/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/vo/LogbookKinerjaDetailVO.java index fc03d696..10193bbd 100644 --- a/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/vo/LogbookKinerjaDetailVO.java +++ b/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/vo/LogbookKinerjaDetailVO.java @@ -10,6 +10,9 @@ public class LogbookKinerjaDetailVO extends BaseTransactionVO { @Caption(value = "Nama Kegiatan") private String namaKegiatan; + @Caption(value = "Capaian") + private Double capaian; + @Caption(value = "Catatan") private String catatan; @@ -32,6 +35,14 @@ public class LogbookKinerjaDetailVO extends BaseTransactionVO { this.namaKegiatan = namaKegiatan; } + public Double getCapaian() { + return capaian; + } + + public void setCapaian(Double capaian) { + this.capaian = capaian; + } + public String getCatatan() { return catatan; } diff --git a/jasamedika-sdm/src/main/java/com/jasamedika/medifirst2000/controller/IkiDanRemunerasiController.java b/jasamedika-sdm/src/main/java/com/jasamedika/medifirst2000/controller/IkiDanRemunerasiController.java index 28145b91..074867c8 100644 --- a/jasamedika-sdm/src/main/java/com/jasamedika/medifirst2000/controller/IkiDanRemunerasiController.java +++ b/jasamedika-sdm/src/main/java/com/jasamedika/medifirst2000/controller/IkiDanRemunerasiController.java @@ -1,6 +1,7 @@ package com.jasamedika.medifirst2000.controller; import java.text.ParseException; +import java.util.HashMap; import java.util.List; import java.util.Map; @@ -27,9 +28,15 @@ import com.jasamedika.medifirst2000.controller.base.LocaleController; import com.jasamedika.medifirst2000.core.web.WebConstants; import com.jasamedika.medifirst2000.exception.ServiceVOException; 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.util.CommonUtil; import com.jasamedika.medifirst2000.util.rest.RestUtil; import com.jasamedika.medifirst2000.vo.IkiDanRemunerasiVO; +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.StrukHistoriVO; @@ -37,10 +44,19 @@ import com.jasamedika.medifirst2000.vo.StrukHistoriVO; @RequestMapping("/iki-remunerasi") public class IkiDanRemunerasiController extends LocaleController { + private static final Logger LOGGER = LoggerFactory.getLogger(IkiDanRemunerasiController.class); + @Autowired private IkiDanRemunerasiService service; - private static final Logger LOGGER = LoggerFactory.getLogger(IkiDanRemunerasiController.class); + @Autowired + private IndikatorKinerjaService indikatorKinerjaService; + + @Autowired + private LogbookKinerjaService logbookKinerjaService; + + @Autowired + private LogbookKinerjaDetailService logbookKinerjaDetailService; @RequestMapping(value = "/get-load-data", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE) public ResponseEntity> getLoadData(HttpServletRequest request) { @@ -239,4 +255,94 @@ public class IkiDanRemunerasiController extends LocaleController> saveMasterIndikatorKinerja(HttpServletRequest request, + @Valid @RequestBody IndikatorKinerjaVO vo) { + Map result = new HashMap(); + try { + IndikatorKinerjaVO resultVo = new IndikatorKinerjaVO(); + if (CommonUtil.isNotNullOrEmpty(vo.getId())) { + resultVo = indikatorKinerjaService.update(vo); + } else { + resultVo = indikatorKinerjaService.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 master indikator kinerja", 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 indikator kinerja", 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> saveLogbookKinerja(HttpServletRequest request, + @Valid @RequestBody LogbookKinerjaVO vo) { + Map result = new HashMap(); + try { + LogbookKinerjaVO resultVo = new LogbookKinerjaVO(); + if (CommonUtil.isNotNullOrEmpty(vo.getNoRec())) { + resultVo = logbookKinerjaService.update(vo); + } else { + resultVo = logbookKinerjaService.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 logbook kinerja", 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 logbook kinerja", jse.getMessage()); + addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, jse.getMessage()); + return RestUtil.getJsonHttptatus(HttpStatus.CONFLICT, mapHeaderMessage); + } + } + + @RequestMapping(value = "/save-working-record", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE, consumes = MediaType.APPLICATION_JSON_VALUE) + public ResponseEntity> saveWorkingRecord(HttpServletRequest request, + @Valid @RequestBody LogbookKinerjaDetailVO vo) { + Map result = new HashMap(); + try { + LogbookKinerjaDetailVO resultVo = new LogbookKinerjaDetailVO(); + if (CommonUtil.isNotNullOrEmpty(vo.getNoRec())) { + resultVo = logbookKinerjaDetailService.update(vo); + } else { + resultVo = logbookKinerjaDetailService.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 working record", 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 working record", jse.getMessage()); + addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, jse.getMessage()); + return RestUtil.getJsonHttptatus(HttpStatus.CONFLICT, mapHeaderMessage); + } + } + } diff --git a/jasamedika-sdm/src/main/java/com/jasamedika/medifirst2000/controller/PelayananController.java b/jasamedika-sdm/src/main/java/com/jasamedika/medifirst2000/controller/PelayananController.java index 54d05ba9..6de84dbd 100644 --- a/jasamedika-sdm/src/main/java/com/jasamedika/medifirst2000/controller/PelayananController.java +++ b/jasamedika-sdm/src/main/java/com/jasamedika/medifirst2000/controller/PelayananController.java @@ -59,7 +59,7 @@ public class PelayananController extends LocaleController { @Autowired private ProdukService produkService; - + @Autowired private SatuanStandarService satuanStandarService; @@ -339,7 +339,7 @@ public class PelayananController extends LocaleController { return RestUtil.getJsonHttptatus(HttpStatus.CONFLICT, mapHeaderMessage); } } - + @RequestMapping(value = "/all-paket-produk", method = RequestMethod.GET) public ResponseEntity>> getAllPaketToProduk(HttpServletRequest request) { try { @@ -357,7 +357,7 @@ public class PelayananController extends LocaleController { return RestUtil.getJsonHttptatus(HttpStatus.CONFLICT, mapHeaderMessage); } } - + @RequestMapping(value = "/master-satuan-standar", method = RequestMethod.GET) public ResponseEntity>> getAllMasterSatuanStandar(HttpServletRequest request) { List> result = new ArrayList<>(); @@ -377,4 +377,25 @@ public class PelayananController extends LocaleController { } } + @RequestMapping(value = "/klaim-diskon-karyawan", method = RequestMethod.GET) + public ResponseEntity> updateKlaimDiskonKaryawan(HttpServletRequest request, + @RequestParam(value = "noRegistrasi", required = true) String noRegistrasi, + @RequestParam(value = "totalKlaim", required = true) Double totalKlaim) { + try { + List result = pelayananPasienService.updateKlaimDiskonKaryawan(noRegistrasi, totalKlaim); + mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_SUCCESS, + getMessage(MessageResource.LABEL_SUCCESS, request)); + return RestUtil.getJsonResponse(result, HttpStatus.OK, mapHeaderMessage); + } catch (ServiceVOException e) { + LOGGER.error("Got exception {} when klaim diskon karyawan", e.getMessage()); + addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, e.getMessage()); + return RestUtil.getJsonHttptatus(HttpStatus.INTERNAL_SERVER_ERROR, mapHeaderMessage); + } catch (JpaSystemException jse) { + LOGGER.error("Got exception {} when klaim diskon karyawan", jse.getMessage()); + addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, jse.getMessage()); + return RestUtil.getJsonHttptatus(HttpStatus.CONFLICT, mapHeaderMessage); + } + + } + } diff --git a/jasamedika-sdm/src/main/webapp/WEB-INF/web.xml b/jasamedika-sdm/src/main/webapp/WEB-INF/web.xml index 1ca52a06..8eb49d68 100644 --- a/jasamedika-sdm/src/main/webapp/WEB-INF/web.xml +++ b/jasamedika-sdm/src/main/webapp/WEB-INF/web.xml @@ -15,7 +15,7 @@ spring.profiles.default - production + sdm