diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/constants/Master.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/constants/Master.java index 7c55f451..a5d13936 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/constants/Master.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/constants/Master.java @@ -271,6 +271,7 @@ public class Master { public static final Double BOBOT_PERILAKU = 30.0; public static final Double IKI_STANDAR = 1.0; + public static final Double PERSEN_SKOR_ASISTEN_SPESIALIS = 0.3; public static final Double PERSEN_SKOR_EKSEKUTIF = 1.15; public static final Double PERSEN_P1 = 0.3; public static final Double PERSEN_P2 = 0.7; diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/IkiDanRemunerasiDao.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/IkiDanRemunerasiDao.java index 322ebb00..59d862e9 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/IkiDanRemunerasiDao.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/IkiDanRemunerasiDao.java @@ -98,7 +98,7 @@ public interface IkiDanRemunerasiDao extends PagingAndSortingRepository :karcisId order by su.name, pr.id") + + "and pg.jenisPegawaiId = :jenisPegawaiId " + "and djp.jenisProdukId not in (:listNontindakanId) " + + "and pr.id <> :karcisId " + "order by su.name, pr.id") public List> getDataLayanan(@Param("tglAwal") Date tglAwal, @Param("tglAkhir") Date tglAkhir, - @Param("dokterId") Integer dokterId, @Param("listKsmId") List listKsmId, - @Param("listNontindakanId") List listNontindakanId, @Param("karcisId") Integer karcisId); + @Param("jenisPegawaiId") Integer idJenisPegawai, @Param("listKsmId") List listIdKsm, + @Param("listNontindakanId") List listIdNontindakan, @Param("karcisId") Integer idKarcis); + + // Logbook_kinerja_dokter + @Query("select distinct new Map(ppp.ObjectJenisPetugasPeId as jenisPetugasId," + + "pr.id as produkId,pr.namaProduk as namaProduk," + + "pp.noRec as noRec,pp.tglPelayanan as tglPelayanan,pp.jumlah as jumlah,pp.hargaDiscount as hargaDiskon," + + "ru.departemenId as departemenId,ru.id as ruanganId," + "pd.isDiskonPegawai as statusDiskon) " + + "from PelayananPasienPetugas ppp, MapRuanganToProduk mrtp " + "left join ppp.pelayananPasien pp " + + "left join ppp.kdpegawai pg " + "left join pp.produk pr " + "left join pp.pasienDaftar apd " + + "left join pr.detailJenisProduk djp " + "left join apd.pasienDaftar pd " + "left join apd.ruangan ru " + + "where mrtp.produkId = pr.id and mrtp.ruanganId = apd.ruanganId " + + "and mrtp.statusEnabled is true and pg.statusEnabled is true and pd.statusEnabled is true " + + "and to_char(pp.tglPelayanan,'yyyy-MM') = :bulan " + + "and ((to_char(pp.tglPelayanan,'dy') in ('mon','tue','wed','thu') " + + "and to_char(pp.tglPelayanan,'HH24:MM:ss') between '07:00:00' and '15:30:00') " + + "or (to_char(pp.tglPelayanan,'dy') in ('fri') " + + "and to_char(pp.tglPelayanan,'HH24:MM:ss') between '07:00:00' and '16:00:00')) " + + "and pg.jenisPegawaiId = :jenisPegawaiId " + "and djp.jenisProdukId not in (:listNontindakanId) " + + "and pr.id <> :karcisId " + "and pg.id = :pegawaiId " + "order by pr.namaProduk, pp.tglPelayanan") + public List> getDataLogbookDokter(@Param("bulan") String bulan, + @Param("jenisPegawaiId") Integer idJenisPegawai, @Param("pegawaiId") Integer idPegawai, + @Param("listNontindakanId") List listIdNontindakan, @Param("karcisId") Integer idKarcis); } \ No newline at end of file diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/IndikatorKinerjaDetailDao.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/IndikatorKinerjaDetailDao.java index 4970df1e..20e91b42 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/IndikatorKinerjaDetailDao.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/IndikatorKinerjaDetailDao.java @@ -16,5 +16,8 @@ public interface IndikatorKinerjaDetailDao extends PagingAndSortingRepository> findByListId(@Param("listDetailId") List listIdDetail); + + @Query("select ikd.detailIndikator from IndikatorKinerjaDetail ikd where ikd.id = :indikatorId") + public String findNamaIndikator(@Param("indikatorId") Integer idIndikator); } diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/SkoringTindakanMedisDao.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/SkoringTindakanMedisDao.java index 18dfe2e9..a53e13d9 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/SkoringTindakanMedisDao.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/SkoringTindakanMedisDao.java @@ -1,6 +1,5 @@ package com.jasamedika.medifirst2000.dao; -import java.util.Date; import java.util.List; import java.util.Map; @@ -128,4 +127,15 @@ public interface SkoringTindakanMedisDao extends PagingAndSortingRepository> findLatestActiveSkor(); + @Query("select distinct new Map(pr.id as produkId,pr.namaProduk as namaProduk," + + "stm.skor as skor,stm.tanggalMulaiBerlaku as tglMulaiBerlaku,stm.tanggalPembaharuanData as tglPembaharuanData) " + + "from SkoringTindakanMedis stm, MapPegawaiJabatanToUnitKerja mj " + "inner join stm.produk pr " + + "where stm.kelompokKerjaId = mj.subUnitKerjaPegawaiId " + + "and stm.statusEnabled is true and stm.statusVerifikasi is true " + "and pr.statusEnabled is true " + + "and mj.statusEnabled is true " + "and to_char(stm.tanggalMulaiBerlaku,'yyyy-MM') <= :bulan " + + "and mj.pegawaiId = :pegawaiId and mj.unitKerjaPegawaiId in (:listKsmId) " + + "order by pr.namaProduk, stm.skor desc, stm.tanggalPembaharuanData desc") + List> findSkoringLogbookDokter(@Param("bulan") String bulan, + @Param("pegawaiId") Integer idPegawai, @Param("listKsmId") List listIdKsm); + } diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/BobotJenisIndikatorService.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/BobotJenisIndikatorService.java index e6c68636..14b291d3 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/BobotJenisIndikatorService.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/BobotJenisIndikatorService.java @@ -10,7 +10,7 @@ public interface BobotJenisIndikatorService extends BaseVoService> findAllBobotJenis(Long periode); - public List> findBobotJenisJabatan(Long periode, Integer idJabatan); + public List findBobotJenisJabatan(Long periode, Integer idJabatan); public List> findBobotJenis(Long periode, Integer idjenisIndikator, Integer idKelompokJabatan); diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/IkiDanRemunerasiService.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/IkiDanRemunerasiService.java index 8ce4c0d8..7ea578bb 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/IkiDanRemunerasiService.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/IkiDanRemunerasiService.java @@ -38,4 +38,6 @@ public interface IkiDanRemunerasiService { public List findAllTargetCapaianLayanan(String strPeriode, Integer idKsm) throws ParseException; + public List> findLogbookSkoringDokter(Integer idPegawai, Long bulan); + } diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/BobotJenisIndikatorServiceImpl.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/BobotJenisIndikatorServiceImpl.java index cb61badb..aadc76a9 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/BobotJenisIndikatorServiceImpl.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/BobotJenisIndikatorServiceImpl.java @@ -121,8 +121,10 @@ public class BobotJenisIndikatorServiceImpl extends BaseVoServiceImpl implements } @Override - public List> findBobotJenisJabatan(Long periode, Integer idJabatan) { - List> result = new ArrayList<>(); + public List findBobotJenisJabatan(Long periode, Integer idJabatan) { + List result = new ArrayList<>(); + + List> data = new ArrayList<>(); List bulanBerlaku = new ArrayList<>(); DateFormat df = new SimpleDateFormat("yyyy-MM"); @@ -133,9 +135,15 @@ public class BobotJenisIndikatorServiceImpl extends BaseVoServiceImpl implements } if (CommonUtil.isNotNullOrEmpty(bulanBerlaku)) { - result = bobotJenisIndikatorDao.findBobotJenisKontrak(bulanBerlaku.get(0), idJabatan); - if (CommonUtil.isNullOrEmpty(result)) { - result = bobotJenisIndikatorDao.findBobotJenisKontrak(bulanBerlaku.get(0)); + data = bobotJenisIndikatorDao.findBobotJenisKontrak(bulanBerlaku.get(0), idJabatan); + if (CommonUtil.isNullOrEmpty(data) || data.size() != 3) { + data = bobotJenisIndikatorDao.findBobotJenisKontrak(bulanBerlaku.get(0)); + } + } + + if (CommonUtil.isNotNullOrEmpty(data)) { + for (Map map : data) { + result.add(Double.parseDouble(map.get("persentase").toString())); } } diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/IkiDanRemunerasiServiceImpl.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/IkiDanRemunerasiServiceImpl.java index e9ef5847..d95486d4 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/IkiDanRemunerasiServiceImpl.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/IkiDanRemunerasiServiceImpl.java @@ -1,5 +1,6 @@ package com.jasamedika.medifirst2000.service.impl; +import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.ArrayList; @@ -643,7 +644,7 @@ public class IkiDanRemunerasiServiceImpl extends BaseVoServiceImpl implements Ik if (kelompokKerja.get("subunitKerjaId").equals(data.get("idKelompokKerja")) && datePelayanan.equals(sdf.format(data.get("tglPelayanan")))) { if (idIndikator.equals(Master.IndikatorKinerjaDetail.KONSUL_EKS) - && data.get("namaTindakan").equals(Master.KONSUL) + && data.get("namaTindakan").toString().contains(Master.KONSUL) && listRuangEks.contains(data.get("idRuangan"))) { capaianBulanan += Double.valueOf(data.get("jumlahTindakan").toString()); if (i < listBulanPelayananSorted.size()) { @@ -661,7 +662,7 @@ public class IkiDanRemunerasiServiceImpl extends BaseVoServiceImpl implements Ik .floor(capaianTriwulanKE / (listBulanPelayananSorted.size() - 1)); } } else if (idIndikator.equals(Master.IndikatorKinerjaDetail.KONSUL_GADAR) - && data.get("namaTindakan").equals(Master.KONSUL) + && data.get("namaTindakan").toString().contains(Master.KONSUL) && data.get("idDepartemen").equals(Master.Departemen.IGD)) { capaianBulanan += Double.valueOf(data.get("jumlahTindakan").toString()); if (i < listBulanPelayananSorted.size()) { @@ -679,7 +680,7 @@ public class IkiDanRemunerasiServiceImpl extends BaseVoServiceImpl implements Ik .floor(capaianTriwulanKG / (listBulanPelayananSorted.size() - 1)); } } else if (idIndikator.equals(Master.IndikatorKinerjaDetail.KONSUL_REG) - && data.get("namaTindakan").equals(Master.KONSUL)) { + && data.get("namaTindakan").toString().contains(Master.KONSUL)) { capaianBulanan += Double.valueOf(data.get("jumlahTindakan").toString()); if (i < listBulanPelayananSorted.size()) { capaianTriwulanKR += Double.valueOf(data.get("jumlahTindakan").toString()); @@ -696,7 +697,7 @@ public class IkiDanRemunerasiServiceImpl extends BaseVoServiceImpl implements Ik .floor(capaianTriwulanKR / (listBulanPelayananSorted.size() - 1)); } } else if (idIndikator.equals(Master.IndikatorKinerjaDetail.VISITE) - && data.get("namaTindakan").equals(Master.VISIT)) { + && data.get("namaTindakan").toString().contains(Master.VISIT)) { capaianBulanan += Double.valueOf(data.get("jumlahTindakan").toString()); if (i < listBulanPelayananSorted.size()) { capaianTriwulanVI += Double.valueOf(data.get("jumlahTindakan").toString()); @@ -973,4 +974,188 @@ public class IkiDanRemunerasiServiceImpl extends BaseVoServiceImpl implements Ik return result; } + @Override + public List> findLogbookSkoringDokter(Integer idPegawai, Long bulan) { + List> result = new ArrayList<>(); + List listTglPelayanan = new ArrayList<>(); + List listIdIndikator = new ArrayList<>(); + List listIdProduk = new ArrayList<>(); + List listSkor = new ArrayList<>(); + + DateFormat mf = new SimpleDateFormat("yyyy-MM"); + DateFormat df = new SimpleDateFormat("yyyy-MM-dd"); + + List listRuangEks = splitDataSettingDatafixed("IdRuanganEksekutif"); + + List> dataLayanan = ikiDanRemunerasiDao.getDataLogbookDokter(mf.format(new Date(bulan)), + Master.JenisPegawai.DOKTER, idPegawai, Arrays.asList(Master.JenisProduk.NONTINDAKAN), + Master.Produk.KARCIS); + + List> dataSkor = skoringTindakanMedisDao + .findSkoringLogbookDokter(mf.format(new Date(bulan)), idPegawai, Arrays.asList(Master.UnitKerja.KSM)); + + // SCORE + for (Map mapLayanan : dataLayanan) { + for (Map mapSkor : dataSkor) { + if (mapLayanan.get("produkId").equals(mapSkor.get("produkId")) + && (((Date) mapLayanan.get("tglPelayanan")).after((Date) mapSkor.get("tglMulaiBerlaku")) + || ((Date) mapLayanan.get("tglPelayanan")) + .equals((Date) mapSkor.get("tglMulaiBerlaku")))) { + mapLayanan.put("skor", mapSkor.get("skor")); + break; + } + } + if (!mapLayanan.containsKey("skor")) { + mapLayanan.put("skor", 1.0); + } + } + + // RULES + for (Map mapLayanan : dataLayanan) { + if (mapLayanan.get("jenisPetugasId").equals(Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS)) { + mapLayanan.put("tSkor", + Double.valueOf(mapLayanan.get("skor").toString()) + * Master.Remunerasi.PERSEN_SKOR_ASISTEN_SPESIALIS + * Double.valueOf(mapLayanan.get("jumlah").toString())); + } else if (Double.valueOf(mapLayanan.get("hargaDiskon").toString()) > 0.0 + && (CommonUtil.isNullOrEmpty(mapLayanan.get("statusDiskon")) + || !Boolean.valueOf(mapLayanan.get("statusDiskon").toString()))) { + // tidak_dapat_skor_untuk_diskon_dpjp + mapLayanan.put("skor", 0.0); + mapLayanan.put("tSkor", 0.0); + } else { + mapLayanan.put("tSkor", Double.valueOf(mapLayanan.get("skor").toString()) + * Double.valueOf(mapLayanan.get("jumlah").toString())); + } + } + + // GROUPING_INDIKATOR + for (Map mapLayanan : dataLayanan) { + if (mapLayanan.get("namaProduk").toString().contains(Master.KONSUL) + && listRuangEks.contains(mapLayanan.get("ruanganId"))) { + mapLayanan.put("indikatorId", Master.IndikatorKinerjaDetail.KONSUL_EKS); + mapLayanan.put("namaIndikator", + indikatorKinerjaDetailDao.findNamaIndikator(Master.IndikatorKinerjaDetail.KONSUL_EKS)); + } else if (mapLayanan.get("namaProduk").toString().contains(Master.KONSUL) + && mapLayanan.get("departemenId").equals(Master.Departemen.IGD)) { + mapLayanan.put("indikatorId", Master.IndikatorKinerjaDetail.KONSUL_GADAR); + mapLayanan.put("namaIndikator", + indikatorKinerjaDetailDao.findNamaIndikator(Master.IndikatorKinerjaDetail.KONSUL_GADAR)); + } else if (mapLayanan.get("namaProduk").toString().contains(Master.KONSUL)) { + mapLayanan.put("indikatorId", Master.IndikatorKinerjaDetail.KONSUL_REG); + mapLayanan.put("namaIndikator", + indikatorKinerjaDetailDao.findNamaIndikator(Master.IndikatorKinerjaDetail.KONSUL_REG)); + } else if (mapLayanan.get("namaProduk").toString().contains(Master.VISIT)) { + mapLayanan.put("indikatorId", Master.IndikatorKinerjaDetail.VISITE); + mapLayanan.put("namaIndikator", + indikatorKinerjaDetailDao.findNamaIndikator(Master.IndikatorKinerjaDetail.VISITE)); + } else if (listRuangEks.contains(mapLayanan.get("ruanganId"))) { + mapLayanan.put("indikatorId", Master.IndikatorKinerjaDetail.TINDAKAN_EKS); + mapLayanan.put("namaIndikator", + indikatorKinerjaDetailDao.findNamaIndikator(Master.IndikatorKinerjaDetail.TINDAKAN_EKS)); + } else if (mapLayanan.get("departemenId").equals(Master.Departemen.IGD)) { + mapLayanan.put("indikatorId", Master.IndikatorKinerjaDetail.TINDAKAN_GADAR); + mapLayanan.put("namaIndikator", + indikatorKinerjaDetailDao.findNamaIndikator(Master.IndikatorKinerjaDetail.TINDAKAN_GADAR)); + } else if (mapLayanan.get("ruanganId").equals(Master.Ruangan.OK)) { + mapLayanan.put("indikatorId", Master.IndikatorKinerjaDetail.TINDAKAN_OPS); + mapLayanan.put("namaIndikator", + indikatorKinerjaDetailDao.findNamaIndikator(Master.IndikatorKinerjaDetail.TINDAKAN_OPS)); + } else { + mapLayanan.put("indikatorId", Master.IndikatorKinerjaDetail.TINDAKAN_REG); + mapLayanan.put("namaIndikator", + indikatorKinerjaDetailDao.findNamaIndikator(Master.IndikatorKinerjaDetail.TINDAKAN_REG)); + } + } + + for (Map mapLayanan : dataLayanan) { + if (!listIdIndikator.contains(mapLayanan.get("indikatorId"))) { + listIdIndikator.add(Integer.valueOf(mapLayanan.get("indikatorId").toString())); + } + if (!listIdProduk.contains(mapLayanan.get("produkId"))) { + listIdProduk.add(Integer.valueOf(mapLayanan.get("produkId").toString())); + } + if (!listSkor.contains(mapLayanan.get("skor"))) { + listSkor.add(Double.valueOf(mapLayanan.get("skor").toString())); + } + if (!listTglPelayanan.contains(df.format(((Date) mapLayanan.get("tglPelayanan"))))) { + listTglPelayanan.add(df.format(((Date) mapLayanan.get("tglPelayanan")))); + } + } + + List listTglPelayananSorted = listTglPelayanan.stream().sorted().collect(Collectors.toList()); + + // GROUPING_TANGGAL_PELAYANAN + List> dataTglPelayanan = new ArrayList<>(); + for (Integer idIndikator : listIdIndikator) { + for (Integer idProduk : listIdProduk) { + for (Double skor : listSkor) { + for (String tglPelayanan : listTglPelayananSorted) { + Map data = new HashMap<>(); + double jumlahTindakan = 0.0; + double jumlahSkor = 0.0; + for (Map mapLayanan : dataLayanan) { + if (idIndikator.equals(mapLayanan.get("indikatorId")) + && idProduk.equals(mapLayanan.get("produkId")) + && skor.equals(mapLayanan.get("skor")) + && tglPelayanan.equals(df.format(((Date) mapLayanan.get("tglPelayanan"))))) { + jumlahTindakan += Double.valueOf(mapLayanan.get("jumlah").toString()); + jumlahSkor += Double.valueOf(mapLayanan.get("tSkor").toString()); + data.putAll(mapLayanan); + data.put("tglPelayanan", df.format(((Date) mapLayanan.get("tglPelayanan")))); + } + } + if (CommonUtil.isNotNullOrEmpty(data)) { + data.put("jumlah", jumlahTindakan); + data.put("tSkor", jumlahSkor); + + dataTglPelayanan.add(data); + } + } + } + } + } + + // GROUPING_HEADER + for (Integer idIndikator : listIdIndikator) { + for (Integer idProduk : listIdProduk) { + for (Double skor : listSkor) { + Map data = new HashMap<>(); + List> detail = new ArrayList<>(); + double jumlahTindakan = 0.0; + double jumlahSkor = 0.0; + for (Map mapLayanan : dataTglPelayanan) { + if (idIndikator.equals(mapLayanan.get("indikatorId")) + && idProduk.equals(mapLayanan.get("produkId")) && skor.equals(mapLayanan.get("skor"))) { + jumlahTindakan += Double.valueOf(mapLayanan.get("jumlah").toString()); + jumlahSkor += Double.valueOf(mapLayanan.get("tSkor").toString()); + + Map mapDetail = new HashMap<>(); + mapDetail.put("jumlah", mapLayanan.get("jumlah")); + mapDetail.put("tglPelayanan", mapLayanan.get("tglPelayanan")); + detail.add(mapDetail); + + mapLayanan.remove("noRec"); + mapLayanan.remove("tglPelayanan"); + mapLayanan.remove("statusDiskon"); + mapLayanan.remove("hargaDiskon"); + mapLayanan.remove("departemenId"); + mapLayanan.remove("ruanganId"); + data.putAll(mapLayanan); + } + } + if (CommonUtil.isNotNullOrEmpty(data)) { + data.put("detail", detail); + data.put("jumlah", jumlahTindakan); + data.put("tSkor", jumlahSkor); + + result.add(data); + } + } + } + } + + return result; + } + } 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 46c2a5eb..e54dcee3 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 @@ -1006,11 +1006,11 @@ public class IkiDanRemunerasiController extends LocaleController>> getBobotJenisIndikatorByJabatan(HttpServletRequest request, + public ResponseEntity> getBobotJenisIndikatorByJabatan(HttpServletRequest request, @RequestParam(value = "periode", required = true) Long periode, @RequestParam(value = "jabatanId", required = true) Integer idJabatan) throws ParseException { try { - List> result = bobotJenisIndikatorService.findBobotJenisJabatan(periode, idJabatan); + List result = bobotJenisIndikatorService.findBobotJenisJabatan(periode, idJabatan); mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_SUCCESS, getMessage(MessageResource.LABEL_SUCCESS, request)); return RestUtil.getJsonResponse(result, HttpStatus.OK, mapHeaderMessage); @@ -1047,4 +1047,24 @@ public class IkiDanRemunerasiController extends LocaleController>> getLogbookSkoringDokter(HttpServletRequest request, + @RequestParam(value = "bulan", required = true) Long bulan, + @RequestParam(value = "pegawaiId", required = true) Integer idPegawai) throws ParseException { + try { + List> result = service.findLogbookSkoringDokter(idPegawai, bulan); + 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 logbook skoring dokter", 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 logbook skoring dokter", jse.getMessage()); + addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, jse.getMessage()); + return RestUtil.getJsonHttptatus(HttpStatus.CONFLICT, mapHeaderMessage); + } + } }