From 8adccc9c5d7f0e7bc8131daacbe55618bf1a4223 Mon Sep 17 00:00:00 2001 From: salmanoe Date: Thu, 8 Jul 2021 15:14:05 +0700 Subject: [PATCH] perbaikan desimal total skor dan subtotal skor logbook skoring kinerja dokter --- .../dao/IkiDanRemunerasiDao.java | 32 -- .../service/IkiDanRemunerasiService.java | 2 - .../impl/IkiDanRemunerasiServiceImpl.java | 355 ------------------ .../impl/LogbookKinerjaServiceImpl.java | 17 +- 4 files changed, 10 insertions(+), 396 deletions(-) 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 80fe03a4..8c48ff58 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 @@ -128,38 +128,6 @@ public interface IkiDanRemunerasiDao extends PagingAndSortingRepository listIdKsm, @Param("listNontindakanId") List listIdNontindakan, @Param("karcisId") Integer idKarcis); - // Target_pelayanan_luar_jam_kerja - @Query("select distinct new Map(ppp.ObjectJenisPetugasPeId as jenisPetugasId," - + "pp.noRec as noRec,pp.tglPelayanan as tglPelayanan,pp.hargaDiscount as hargaDiskon,pp.jumlah as jumlahTindakan," - + "pr.id as idTindakan,pr.namaProduk as namaTindakan," - + "ru.departemenId as idDepartemen,ru.id as idRuangan," + "pd.isDiskonPegawai as statusDiskon) " - + "from PelayananPasienPetugas ppp, MapRuanganToProduk mrtp, PegawaiJadwalKerja pjk " - + "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 " + "left join pjk.shift sk " - + "left join pjk.tanggal kl " + "where mrtp.produkId = pr.id " + "and mrtp.ruanganId = apd.ruanganId " - + "and ppp.ObjectPegawaiId = mpju.pegawaiId " + "and mpju.pegawaiId = pg.id " - + "and pjk.pegawaiId = ppp.ObjectPegawaiId " + "and pjk.pegawaiId = mpju.pegawaiId " - + "and pjk.pegawaiId = pg.id " + "and mpju.unitKerjaPegawaiId in (:listKsmId) " - + "and mrtp.statusEnabled is true " + "and mpju.statusEnabled is true " + "and pg.statusEnabled is true " - + "and su.statusEnabled is true " + "and pd.statusEnabled is true " + "and sk.statusEnabled is true " - + "and pp.tglPelayanan between :tglAwal and :tglAkhir " - + "and cast(pp.tglPelayanan as date) = cast(kl.tanggal as date) " - + "and (((to_char(pp.tglPelayanan,'dy') in ('mon','tue','wed','thu') " - + "and (to_char(pp.tglPelayanan,'HH24:MM:ss') between '15:30:01' and '23:59:59' " - + "or to_char(pp.tglPelayanan,'HH24:MM:ss') between '00:00:00' and '06:59:59') " - + "or (to_char(pp.tglPelayanan,'dy') in ('fri') " - + "and (to_char(pp.tglPelayanan,'HH24:MM:ss') between '16:00:00' and '23:59:59' " - + "or to_char(pp.tglPelayanan,'HH24:MM:ss') between '00:00:00' and '06:59:59'))) and sk.id not in (:listNonjadwalId)) " - + "or (to_char(pp.tglPelayanan,'dy') in ('mon','tue','wed','thu','fri') and sk.id in (:listNonjadwalId)) " - + "or (to_char(pp.tglPelayanan,'dy') in ('sat','sun') and sk.id in (:listNonjadwalId))) " - + "and pg.jenisPegawaiId = :jenisPegawaiId " + "and djp.jenisProdukId not in (:listNontindakanId) " - + "and pr.id <> :karcisId " + "order by su.name, pr.id") - public List> getDataLayananLuarJamKerja(@Param("tglAwal") Date tglAwal, - @Param("tglAkhir") Date tglAkhir, @Param("listNonjadwalId") List listIdNonjadwal, - @Param("jenisPegawaiId") Integer idJenisPegawai, - @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," 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 6c8a1fc6..f84a1388 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 @@ -32,8 +32,6 @@ public interface IkiDanRemunerasiService { public Map savePirDanIku(List vo); public void autoSaveTargetCapaianLayananJamKerja(String strPeriode, Integer idKsm) throws ParseException; - - public void autoSaveTargetCapaianLayananLuarJamKerja(String strPeriode) throws ParseException; public void saveTargetCapaianLayanan(TargetLayananCustomVO vo, Date periodeHitung) throws ParseException; 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 ef7ac886..1b03e5d3 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 @@ -829,361 +829,6 @@ public class IkiDanRemunerasiServiceImpl extends BaseVoServiceImpl implements Ik } } - @Override - public void autoSaveTargetCapaianLayananLuarJamKerja(String strPeriode) throws ParseException { - SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM"); - SimpleDateFormat sdfINA = new SimpleDateFormat("MMMM yyyy", new Locale("in", "ID")); - - Date periode = sdf.parse(strPeriode); - - // get_few_months_earlier - Calendar calTglAwal = Calendar.getInstance(); - calTglAwal.setTime(periode); - calTglAwal.set(Calendar.HOUR_OF_DAY, 0); - calTglAwal.set(Calendar.MINUTE, 0); - calTglAwal.set(Calendar.SECOND, 0); - calTglAwal.set(Calendar.DAY_OF_MONTH, 1); - calTglAwal.add(Calendar.MONTH, -Integer.valueOf(GetSettingDataFixed("jmlBlnHitungTargetMedis"))); - - // get_this_period - Calendar bulan = Calendar.getInstance(); - bulan.setTime(periode); - bulan.set(Calendar.HOUR_OF_DAY, 23); - bulan.set(Calendar.MINUTE, 59); - bulan.set(Calendar.SECOND, 0); - bulan.set(Calendar.DAY_OF_MONTH, bulan.getActualMaximum(Calendar.DAY_OF_MONTH)); - - List listRuangEks = splitDataSettingDatafixed("IdRuanganEksekutif"); - List listKonsulTapiVisit = splitDataSettingDatafixed("konsulTapiVisit"); - - List listIndikatorPelayanan = Arrays.asList(Master.IndikatorKinerjaDetail.INDIKATOR_PELAYANAN_MEDIS); - - List listIdNonjadwal = shiftKerjaDao.findListNonjadwal(); - - List> dataLayananRaw = ikiDanRemunerasiDao.getDataLayananLuarJamKerja(calTglAwal.getTime(), - bulan.getTime(), listIdNonjadwal, Master.JenisPegawai.DOKTER, - Arrays.asList(Master.JenisProduk.NONTINDAKAN), Master.Produk.KARCIS); - - // get_kategori_bulan - List listBulanPelayanan = new ArrayList<>(); - List listBulanPelayananSorted = new ArrayList<>(); - for (Map dat : dataLayananRaw) { - if (!listBulanPelayanan.contains(sdf.format(dat.get("tglPelayanan")))) { - listBulanPelayanan.add(sdf.format(dat.get("tglPelayanan"))); - } - } - listBulanPelayananSorted = listBulanPelayanan.stream().sorted().collect(Collectors.toList()); - - // get_kategori_kelompok_kerja - List listIdKK = new ArrayList<>(); - for (Map map : dataLayananRaw) { - if (!listIdKK.contains(map.get("idKelompokKerja"))) { - listIdKK.add(Integer.parseInt(map.get("idKelompokKerja").toString())); - } - } - - List> listKelompokKerja = subunitKerjaDao.findSubDanUnitKerjaById(listIdKK); - - List> dataLastTargetLayanan = targetLayananDao - .getLastTargetLayanan(sdf.format(calTglAwal.getTime()), sdf.format(bulan.getTime())); - - List> filterTarget = new ArrayList<>(); - // filtering target - for (Map mapData : dataLastTargetLayanan) { - boolean isContained = false; - for (Map mapFilter : filterTarget) { - if (mapData.get("kelompokKerjaId").equals(mapFilter.get("kelompokKerjaId")) - && mapData.get("indikatorId").equals(mapFilter.get("indikatorId")) - && mapData.get("periode").equals(mapFilter.get("periode"))) { - isContained = true; - break; - } - } - if (!isContained) { - Map mapFilter = new HashMap<>(); - mapFilter.put("kelompokKerjaId", mapData.get("kelompokKerjaId")); - mapFilter.put("indikatorId", mapData.get("indikatorId")); - mapFilter.put("periode", mapData.get("periode")); - filterTarget.add(mapFilter); - } - } - - List> dataTargetFiltered = new ArrayList<>(); - // processing Target - for (Map mapFilter : filterTarget) { - for (Map mapData : dataLastTargetLayanan) { - if (mapData.get("kelompokKerjaId").equals(mapFilter.get("kelompokKerjaId")) - && mapData.get("indikatorId").equals(mapFilter.get("indikatorId")) - && mapData.get("periode").equals(mapFilter.get("periode"))) { - dataTargetFiltered.add(mapData); - break; - } - } - } - - List> dataSkoringRaw = skoringTindakanMedisDao.findLatestActiveSkor(); - - List> filterSkoring = new ArrayList<>(); - // filtering skoring - for (Map mapData : dataSkoringRaw) { - boolean isContained = false; - for (Map mapFilter : filterSkoring) { - if (mapData.get("produkId").equals(mapFilter.get("produkId")) - && mapData.get("kelompokKerjaId").equals(mapFilter.get("kelompokKerjaId"))) { - isContained = true; - break; - } - } - if (!isContained) { - Map mapFilter = new HashMap<>(); - mapFilter.put("produkId", mapData.get("produkId")); - mapFilter.put("kelompokKerjaId", mapData.get("kelompokKerjaId")); - filterSkoring.add(mapFilter); - } - } - - List> dataSkoringFiltered = new ArrayList<>(); - // processing skoring - for (Map mapFilter : filterSkoring) { - for (Map mapData : dataSkoringRaw) { - if (mapFilter.get("produkId").equals(mapData.get("produkId")) - && mapFilter.get("kelompokKerjaId").equals(mapData.get("kelompokKerjaId"))) { - dataSkoringFiltered.add(mapData); - break; - } - } - } - - List> dataLayananScored = new ArrayList<>(); - // scoring data layanan - for (Map layanan : dataLayananRaw) { - for (Map skoring : dataSkoringFiltered) { - if (layanan.get("idTindakan").equals(skoring.get("produkId")) - && layanan.get("idKelompokKerja").equals(skoring.get("kelompokKerjaId")) - && (((Date) skoring.get("tglBerlaku")).before(((Date) layanan.get("tglPelayanan"))) - || ((Date) skoring.get("tglBerlaku")).equals(((Date) layanan.get("tglPelayanan"))))) { - - if (Double.valueOf(layanan.get("hargaDiskon").toString()) > 0.0 - && (CommonUtil.isNullOrEmpty(layanan.get("statusDiskon")) - || !Boolean.valueOf(layanan.get("statusDiskon").toString()))) { - layanan.put("jumlahTindakan", 0.0); - } else if (listRuangEks.contains(layanan.get("idRuangan")) - && !layanan.get("namaTindakan").toString().toLowerCase().contains(Master.KONSUL) - && !layanan.get("namaTindakan").toString().toLowerCase().contains(Master.VISIT)) { - layanan.put("jumlahTindakan", - Double.valueOf(layanan.get("jumlahTindakan").toString()) - * Double.valueOf(skoring.get("skor").toString()) - * Master.Remunerasi.PERSEN_SKOR_EKSEKUTIF); - } else if (layanan.get("jenisPetugasId").equals(Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS)) { - layanan.put("jumlahTindakan", - Double.valueOf(layanan.get("jumlahTindakan").toString()) - * Double.valueOf(skoring.get("skor").toString()) - * Master.Remunerasi.PERSEN_SKOR_ASISTEN_SPESIALIS); - } else { - layanan.put("jumlahTindakan", Double.valueOf(layanan.get("jumlahTindakan").toString()) - * Double.valueOf(skoring.get("skor").toString())); - } - - break; - } - } - dataLayananScored.add(layanan); - } - - for (Map kelompokKerja : listKelompokKerja) { - for (Integer idIndikator : listIndikatorPelayanan) { - TargetLayananCustomVO resultVo = new TargetLayananCustomVO(); - List listDetail = new ArrayList<>(); - - double capaianTriwulanKE = 0.0; - double capaianTriwulanKG = 0.0; - double capaianTriwulanKR = 0.0; - double capaianTriwulanTE = 0.0; - double capaianTriwulanTG = 0.0; - double capaianTriwulanTO = 0.0; - double capaianTriwulanTR = 0.0; - double capaianTriwulanVI = 0.0; - - int i = 0; - for (String datePelayanan : listBulanPelayananSorted) { - i++; - TargetLayananCustomDetailVO detail = new TargetLayananCustomDetailVO(); - - double capaianBulanan = 0.0; - double targetBulanan = 0.0; - for (Map data : dataLayananScored) { - if (kelompokKerja.get("subunitKerjaId").equals(data.get("idKelompokKerja")) - && datePelayanan.equals(sdf.format(data.get("tglPelayanan")))) { - if (idIndikator.equals(Master.IndikatorKinerjaDetail.VISITE) - && (listKonsulTapiVisit.contains(data.get("idTindakan")) || data.get("namaTindakan") - .toString().toLowerCase().contains(Master.VISIT))) { - capaianBulanan += Double.valueOf(data.get("jumlahTindakan").toString()); - if (i < listBulanPelayananSorted.size()) { - capaianTriwulanVI += Double.valueOf(data.get("jumlahTindakan").toString()); - for (Map target : dataTargetFiltered) { - if (kelompokKerja.get("subunitKerjaId").equals(target.get("kelompokKerjaId")) - && idIndikator.equals(target.get("indikatorId")) - && datePelayanan.equals(target.get("periode"))) { - targetBulanan = Double.valueOf(target.get("target").toString()); - break; - } - } - } else if (i == listBulanPelayananSorted.size()) { - targetBulanan = Math - .floor(capaianTriwulanVI / (listBulanPelayananSorted.size() - 1)); - } - } else if (idIndikator.equals(Master.IndikatorKinerjaDetail.KONSUL_EKS) - && data.get("namaTindakan").toString().toLowerCase().contains(Master.KONSUL) - && listRuangEks.contains(data.get("idRuangan"))) { - capaianBulanan += Double.valueOf(data.get("jumlahTindakan").toString()); - if (i < listBulanPelayananSorted.size()) { - capaianTriwulanKE += Double.valueOf(data.get("jumlahTindakan").toString()); - for (Map target : dataTargetFiltered) { - if (kelompokKerja.get("subunitKerjaId").equals(target.get("kelompokKerjaId")) - && idIndikator.equals(target.get("indikatorId")) - && datePelayanan.equals(target.get("periode"))) { - targetBulanan = Double.valueOf(target.get("target").toString()); - break; - } - } - } else if (i == listBulanPelayananSorted.size()) { - targetBulanan = Math - .floor(capaianTriwulanKE / (listBulanPelayananSorted.size() - 1)); - } - } else if (idIndikator.equals(Master.IndikatorKinerjaDetail.KONSUL_GADAR) - && data.get("namaTindakan").toString().toLowerCase().contains(Master.KONSUL) - && data.get("idDepartemen").equals(Master.Departemen.IGD)) { - capaianBulanan += Double.valueOf(data.get("jumlahTindakan").toString()); - if (i < listBulanPelayananSorted.size()) { - capaianTriwulanKG += Double.valueOf(data.get("jumlahTindakan").toString()); - for (Map target : dataTargetFiltered) { - if (kelompokKerja.get("subunitKerjaId").equals(target.get("kelompokKerjaId")) - && idIndikator.equals(target.get("indikatorId")) - && datePelayanan.equals(target.get("periode"))) { - targetBulanan = Double.valueOf(target.get("target").toString()); - break; - } - } - } else if (i == listBulanPelayananSorted.size()) { - targetBulanan = Math - .floor(capaianTriwulanKG / (listBulanPelayananSorted.size() - 1)); - } - } else if (idIndikator.equals(Master.IndikatorKinerjaDetail.KONSUL_REG) - && data.get("namaTindakan").toString().toLowerCase().contains(Master.KONSUL)) { - capaianBulanan += Double.valueOf(data.get("jumlahTindakan").toString()); - if (i < listBulanPelayananSorted.size()) { - capaianTriwulanKR += Double.valueOf(data.get("jumlahTindakan").toString()); - for (Map target : dataTargetFiltered) { - if (kelompokKerja.get("subunitKerjaId").equals(target.get("kelompokKerjaId")) - && idIndikator.equals(target.get("indikatorId")) - && datePelayanan.equals(target.get("periode"))) { - targetBulanan = Double.valueOf(target.get("target").toString()); - break; - } - } - } else if (i == listBulanPelayananSorted.size()) { - targetBulanan = Math - .floor(capaianTriwulanKR / (listBulanPelayananSorted.size() - 1)); - } - } else if (idIndikator.equals(Master.IndikatorKinerjaDetail.TINDAKAN_EKS) - && listRuangEks.contains(data.get("idRuangan"))) { - capaianBulanan += Double.valueOf(data.get("jumlahTindakan").toString()); - if (i < listBulanPelayananSorted.size()) { - capaianTriwulanTE += Double.valueOf(data.get("jumlahTindakan").toString()); - for (Map target : dataTargetFiltered) { - if (kelompokKerja.get("subunitKerjaId").equals(target.get("kelompokKerjaId")) - && idIndikator.equals(target.get("indikatorId")) - && datePelayanan.equals(target.get("periode"))) { - targetBulanan = Double.valueOf(target.get("target").toString()); - break; - } - } - } else if (i == listBulanPelayananSorted.size()) { - targetBulanan = Math - .floor(capaianTriwulanTE / (listBulanPelayananSorted.size() - 1)); - } - } else if (idIndikator.equals(Master.IndikatorKinerjaDetail.TINDAKAN_GADAR) - && data.get("idDepartemen").equals(Master.Departemen.IGD)) { - capaianBulanan += Double.valueOf(data.get("jumlahTindakan").toString()); - if (i < listBulanPelayananSorted.size()) { - capaianTriwulanTG += Double.valueOf(data.get("jumlahTindakan").toString()); - for (Map target : dataTargetFiltered) { - if (kelompokKerja.get("subunitKerjaId").equals(target.get("kelompokKerjaId")) - && idIndikator.equals(target.get("indikatorId")) - && datePelayanan.equals(target.get("periode"))) { - targetBulanan = Double.valueOf(target.get("target").toString()); - break; - } - } - } else if (i == listBulanPelayananSorted.size()) { - targetBulanan = Math - .floor(capaianTriwulanTG / (listBulanPelayananSorted.size() - 1)); - } - } else if (idIndikator.equals(Master.IndikatorKinerjaDetail.TINDAKAN_OPS) - && data.get("idRuangan").equals(Master.Ruangan.OK)) { - capaianBulanan += Double.valueOf(data.get("jumlahTindakan").toString()); - if (i < listBulanPelayananSorted.size()) { - capaianTriwulanTO += Double.valueOf(data.get("jumlahTindakan").toString()); - for (Map target : dataTargetFiltered) { - if (kelompokKerja.get("subunitKerjaId").equals(target.get("kelompokKerjaId")) - && idIndikator.equals(target.get("indikatorId")) - && datePelayanan.equals(target.get("periode"))) { - targetBulanan = Double.valueOf(target.get("target").toString()); - break; - } - } - } else if (i == listBulanPelayananSorted.size()) { - targetBulanan = Math - .floor(capaianTriwulanTO / (listBulanPelayananSorted.size() - 1)); - } - } else if (idIndikator.equals(Master.IndikatorKinerjaDetail.TINDAKAN_REG)) { - capaianBulanan += Double.valueOf(data.get("jumlahTindakan").toString()); - if (i < listBulanPelayananSorted.size()) { - capaianTriwulanTR += Double.valueOf(data.get("jumlahTindakan").toString()); - for (Map target : dataTargetFiltered) { - if (kelompokKerja.get("subunitKerjaId").equals(target.get("kelompokKerjaId")) - && idIndikator.equals(target.get("indikatorId")) - && datePelayanan.equals(target.get("periode"))) { - targetBulanan = Double.valueOf(target.get("target").toString()); - break; - } - } - } else if (i == listBulanPelayananSorted.size()) { - targetBulanan = Math - .floor(capaianTriwulanTR / (listBulanPelayananSorted.size() - 1)); - } - } - } - } - Date bulanPelayanan = sdf.parse(datePelayanan); - - detail.setDate(datePelayanan); - detail.setBulan(sdfINA.format(bulanPelayanan)); - detail.setTarget(targetBulanan); - detail.setCapaian(capaianBulanan); - listDetail.add(detail); - } - if (Double.valueOf(listDetail.get(listDetail.size() - 1).getTarget()) > 0.0) { - resultVo.setDetail(listDetail); - SubUnitKerjaPegawaiVO kelompokKerjaVO = new SubUnitKerjaPegawaiVO(); - kelompokKerjaVO.setId(Integer.valueOf(kelompokKerja.get("subunitKerjaId").toString())); - - UnitKerjaPegawaiVO unitKerjaVO = new UnitKerjaPegawaiVO(); - unitKerjaVO.setId(Integer.valueOf(kelompokKerja.get("unitKerjaId").toString())); - kelompokKerjaVO.setUnitKerja(unitKerjaVO); - - IndikatorKinerjaDetailVO detailIndikatorVO = new IndikatorKinerjaDetailVO(); - detailIndikatorVO.setId(idIndikator); - - resultVo.setKelompokKerja(kelompokKerjaVO); - resultVo.setIndikator(detailIndikatorVO); - - saveTargetCapaianLayanan(resultVo, sdf.parse(strPeriode)); - } - } - } - } - @Override @Transactional(readOnly = false) public void saveTargetCapaianLayanan(TargetLayananCustomVO vo, Date periodeHitung) throws ParseException { 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 index 9b949b7c..785c87cf 100644 --- 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 @@ -588,6 +588,9 @@ public class LogbookKinerjaServiceImpl extends BaseVoServiceImpl implements Logb DateFormat mf = new SimpleDateFormat("yyyy-MM"); DateFormat df = new SimpleDateFormat("yyyy-MM-dd"); + DecimalFormat decf = new DecimalFormat("0.00"); + decf.setRoundingMode(RoundingMode.HALF_UP); + List listRuangEks = splitDataSettingDatafixed("IdRuanganEksekutif"); List listKonsulTapiVisit = splitDataSettingDatafixed("konsulTapiVisit"); @@ -629,16 +632,16 @@ public class LogbookKinerjaServiceImpl extends BaseVoServiceImpl implements Logb && listRuangEks.contains(mapLayanan.get("ruanganId"))) { mapLayanan.put("skor", Double.valueOf(mapLayanan.get("skor").toString()) * Master.Remunerasi.PERSEN_SKOR_EKSEKUTIF); - mapLayanan.put("tSkor", Double.valueOf(mapLayanan.get("skor").toString()) - * Double.valueOf(mapLayanan.get("jumlah").toString())); + mapLayanan.put("tSkor", Double.parseDouble(decf.format(Double.valueOf(mapLayanan.get("skor").toString()) + * Double.valueOf(mapLayanan.get("jumlah").toString())))); } else if (mapLayanan.get("jenisPetugasId").equals(Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS)) { mapLayanan.put("skor", Double.valueOf(mapLayanan.get("skor").toString()) * Master.Remunerasi.PERSEN_SKOR_ASISTEN_SPESIALIS); - mapLayanan.put("tSkor", Double.valueOf(mapLayanan.get("skor").toString()) - * Double.valueOf(mapLayanan.get("jumlah").toString())); + mapLayanan.put("tSkor", Double.parseDouble(decf.format(Double.valueOf(mapLayanan.get("skor").toString()) + * Double.valueOf(mapLayanan.get("jumlah").toString())))); } else { - mapLayanan.put("tSkor", Double.valueOf(mapLayanan.get("skor").toString()) - * Double.valueOf(mapLayanan.get("jumlah").toString())); + mapLayanan.put("tSkor", Double.parseDouble(decf.format(Double.valueOf(mapLayanan.get("skor").toString()) + * Double.valueOf(mapLayanan.get("jumlah").toString())))); } } @@ -761,7 +764,7 @@ public class LogbookKinerjaServiceImpl extends BaseVoServiceImpl implements Logb if (CommonUtil.isNotNullOrEmpty(data)) { data.put("detail", detail); data.put("jumlah", jumlahTindakan); - data.put("tSkor", jumlahSkor); + data.put("tSkor", Double.parseDouble(decf.format(jumlahSkor))); result.add(data); }