penerapan logbook kinerja dokter untuk tampilan dashboard pencatatan kinerja

This commit is contained in:
salmanoe 2021-06-21 16:11:27 +07:00
parent 62cae9f3e2
commit aff09769a5
6 changed files with 224 additions and 196 deletions

View File

@ -74,7 +74,7 @@ public interface LogbookKinerjaDao extends PagingAndSortingRepository<LogbookKin
+ "when ik.jenisIndikator = 3 then 'Perilaku' end) as jenisIndikator,"
+ "ik.id as idIndikator,ik.namaIndikator as namaIndikator,"
+ "si.id as satuanId,si.satuanIndikator as satuanIndikator,"
+ "lk.capaian/lk.target as fragCapaian,lk.bobot as bobot) "
+ "lk.target as target,lk.capaian/lk.target as fragCapaian,lk.bobot as bobot) "
+ "from LogbookKinerja lk, MapPegawaiJabatanToUnitKerja mj " + "inner join lk.indikatorKinerja ik "
+ "inner join ik.satuanIndikator si " + "inner join lk.pegawai pg " + "inner join lk.jabatan jb "
+ "where lk.pegawaiId = mj.pegawaiId " + "and lk.jabatanId = mj.jabatanId " + "and mj.pegawaiId = pg.id "

View File

@ -38,6 +38,4 @@ public interface IkiDanRemunerasiService {
public List<TargetLayananCustomVO> findAllTargetCapaianLayanan(String strPeriode, Integer idKsm)
throws ParseException;
public List<Map<String, Object>> findLogbookSkoringDokter(Integer idPegawai, Long bulan);
}

View File

@ -33,4 +33,6 @@ public interface LogbookKinerjaService extends BaseVoService<LogbookKinerja, Log
public List<Map<String, Object>> findAksesPegawai(Integer idPegawai);
public List<Map<String, Object>> findLogbookSkoringDokter(Integer idPegawai, Long bulan);
}

View File

@ -1,6 +1,5 @@
package com.jasamedika.medifirst2000.service.impl;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
@ -973,189 +972,4 @@ public class IkiDanRemunerasiServiceImpl extends BaseVoServiceImpl implements Ik
return result;
}
@Override
public List<Map<String, Object>> findLogbookSkoringDokter(Integer idPegawai, Long bulan) {
List<Map<String, Object>> result = new ArrayList<>();
List<String> listTglPelayanan = new ArrayList<>();
List<Integer> listIdIndikator = new ArrayList<>();
List<Integer> listIdProduk = new ArrayList<>();
List<Double> listSkor = new ArrayList<>();
DateFormat mf = new SimpleDateFormat("yyyy-MM");
DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
List<Integer> listRuangEks = splitDataSettingDatafixed("IdRuanganEksekutif");
List<Map<String, Object>> dataLayanan = ikiDanRemunerasiDao.getDataLogbookDokter(mf.format(new Date(bulan)),
Master.JenisPegawai.DOKTER, idPegawai, Arrays.asList(Master.JenisProduk.NONTINDAKAN),
Master.Produk.KARCIS);
List<Map<String, Object>> dataSkor = skoringTindakanMedisDao
.findSkoringLogbookDokter(mf.format(new Date(bulan)), idPegawai, Arrays.asList(Master.UnitKerja.KSM));
// SCORE
for (Map<String, Object> mapLayanan : dataLayanan) {
for (Map<String, Object> 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<String, Object> 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<String, Object> mapLayanan : dataLayanan) {
if (mapLayanan.get("namaProduk").toString().toLowerCase().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().toLowerCase().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().toLowerCase().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().toLowerCase().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<String, Object> 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<String> listTglPelayananSorted = listTglPelayanan.stream().sorted().collect(Collectors.toList());
// GROUPING_TANGGAL_PELAYANAN
List<Map<String, Object>> dataTglPelayanan = new ArrayList<>();
for (Integer idIndikator : listIdIndikator) {
for (Integer idProduk : listIdProduk) {
for (Double skor : listSkor) {
for (String tglPelayanan : listTglPelayananSorted) {
Map<String, Object> data = new HashMap<>();
double jumlahTindakan = 0.0;
double jumlahSkor = 0.0;
for (Map<String, Object> 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<String, Object> data = new HashMap<>();
List<Map<String, Object>> detail = new ArrayList<>();
double jumlahTindakan = 0.0;
double jumlahSkor = 0.0;
for (Map<String, Object> 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<String, Object> 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;
}
}

View File

@ -13,6 +13,7 @@ import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.orm.jpa.JpaSystemException;
@ -21,17 +22,21 @@ import org.springframework.stereotype.Service;
import com.jasamedika.medifirst2000.constants.Master;
import com.jasamedika.medifirst2000.converter.BaseConverterImpl;
import com.jasamedika.medifirst2000.dao.AnggaranRemunerasiDao;
import com.jasamedika.medifirst2000.dao.IkiDanRemunerasiDao;
import com.jasamedika.medifirst2000.dao.IndikatorKinerjaDao;
import com.jasamedika.medifirst2000.dao.IndikatorKinerjaDetailDao;
import com.jasamedika.medifirst2000.dao.LogbookKinerjaDao;
import com.jasamedika.medifirst2000.dao.LogbookKinerjaDetailDao;
import com.jasamedika.medifirst2000.dao.LogbookKinerjaDokterDao;
import com.jasamedika.medifirst2000.dao.PegawaiDao;
import com.jasamedika.medifirst2000.dao.SkoringTindakanMedisDao;
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.entities.SatuanIndikator;
import com.jasamedika.medifirst2000.exception.ServiceVOException;
import com.jasamedika.medifirst2000.service.IkiDanRemunerasiService;
import com.jasamedika.medifirst2000.service.LogbookKinerjaService;
import com.jasamedika.medifirst2000.util.CommonUtil;
import com.jasamedika.medifirst2000.vo.IndikatorKinerjaVO;
@ -76,6 +81,15 @@ public class LogbookKinerjaServiceImpl extends BaseVoServiceImpl implements Logb
@Autowired
private LogbookKinerjaDokterDao logbookKinerjaDokterDao;
@Autowired
private IkiDanRemunerasiDao ikiDanRemunerasiDao;
@Autowired
private SkoringTindakanMedisDao skoringTindakanMedisDao;
@Autowired
private IndikatorKinerjaDetailDao indikatorKinerjaDetailDao;
@Override
public LogbookKinerjaVO add(LogbookKinerjaVO vo) throws JpaSystemException, ServiceVOException {
Pegawai pegawai = pegawaiConverter.transferVOToModel(vo.getPegawai(), new Pegawai());
@ -404,12 +418,28 @@ public class LogbookKinerjaServiceImpl extends BaseVoServiceImpl implements Logb
jenisIndikator.put("jenisIndikator", ji);
for (Map<String, Object> map : rs) {
if (map.get("jenisIndikator").equals(ji)) {
hasil += Double.valueOf(map.get("fragCapaian").toString())
* Double.valueOf(map.get("bobot").toString());
map.put("persenCapaianDibulatkan",
new BigDecimal(Double.valueOf(map.get("fragCapaian").toString()) * 100).setScale(2,
RoundingMode.HALF_UP));
data.add(map);
if (map.get("idIndikator").equals(Master.IndikatorKinerja.PELAYANAN_MEDIS)) {
List<Map<String, Object>> logbookDokter = findLogbookSkoringDokter(idPegawai, bulan);
double capaian = 0.0;
for (Map<String, Object> ld : logbookDokter) {
capaian += Double.valueOf(ld.get("tSkor").toString());
}
double fragCapaian = capaian / Double.valueOf(map.get("target").toString());
hasil += capaian / Double.valueOf(map.get("target").toString())
* Double.valueOf(map.get("bobot").toString());
map.put("fragCapaian", fragCapaian);
map.put("persenCapaianDibulatkan",
new BigDecimal(Double.valueOf(map.get("fragCapaian").toString()) * 100).setScale(2,
RoundingMode.HALF_UP));
data.add(map);
} else {
hasil += Double.valueOf(map.get("fragCapaian").toString())
* Double.valueOf(map.get("bobot").toString());
map.put("persenCapaianDibulatkan",
new BigDecimal(Double.valueOf(map.get("fragCapaian").toString()) * 100).setScale(2,
RoundingMode.HALF_UP));
data.add(map);
}
}
}
@ -527,4 +557,188 @@ public class LogbookKinerjaServiceImpl extends BaseVoServiceImpl implements Logb
return result;
}
@Override
public List<Map<String, Object>> findLogbookSkoringDokter(Integer idPegawai, Long bulan) {
List<Map<String, Object>> result = new ArrayList<>();
List<String> listTglPelayanan = new ArrayList<>();
List<Integer> listIdIndikator = new ArrayList<>();
List<Integer> listIdProduk = new ArrayList<>();
List<Double> listSkor = new ArrayList<>();
DateFormat mf = new SimpleDateFormat("yyyy-MM");
DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
List<Integer> listRuangEks = splitDataSettingDatafixed("IdRuanganEksekutif");
List<Map<String, Object>> dataLayanan = ikiDanRemunerasiDao.getDataLogbookDokter(mf.format(new Date(bulan)),
Master.JenisPegawai.DOKTER, idPegawai, Arrays.asList(Master.JenisProduk.NONTINDAKAN),
Master.Produk.KARCIS);
List<Map<String, Object>> dataSkor = skoringTindakanMedisDao
.findSkoringLogbookDokter(mf.format(new Date(bulan)), idPegawai, Arrays.asList(Master.UnitKerja.KSM));
// SCORE
for (Map<String, Object> mapLayanan : dataLayanan) {
for (Map<String, Object> 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<String, Object> 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<String, Object> mapLayanan : dataLayanan) {
if (mapLayanan.get("namaProduk").toString().toLowerCase().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().toLowerCase().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().toLowerCase().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().toLowerCase().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<String, Object> 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<String> listTglPelayananSorted = listTglPelayanan.stream().sorted().collect(Collectors.toList());
// GROUPING_TANGGAL_PELAYANAN
List<Map<String, Object>> dataTglPelayanan = new ArrayList<>();
for (Integer idIndikator : listIdIndikator) {
for (Integer idProduk : listIdProduk) {
for (Double skor : listSkor) {
for (String tglPelayanan : listTglPelayananSorted) {
Map<String, Object> data = new HashMap<>();
double jumlahTindakan = 0.0;
double jumlahSkor = 0.0;
for (Map<String, Object> 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<String, Object> data = new HashMap<>();
List<Map<String, Object>> detail = new ArrayList<>();
double jumlahTindakan = 0.0;
double jumlahSkor = 0.0;
for (Map<String, Object> 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<String, Object> 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;
}
}

View File

@ -1138,7 +1138,7 @@ public class IkiDanRemunerasiController extends LocaleController<IkiDanRemuneras
@RequestParam(value = "bulan", required = true) Long bulan,
@RequestParam(value = "pegawaiId", required = true) Integer idPegawai) throws ParseException {
try {
List<Map<String, Object>> result = service.findLogbookSkoringDokter(idPegawai, bulan);
List<Map<String, Object>> result = logbookKinerjaService.findLogbookSkoringDokter(idPegawai, bulan);
mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_SUCCESS,
getMessage(MessageResource.LABEL_SUCCESS, request));
return RestUtil.getJsonResponse(result, HttpStatus.OK, mapHeaderMessage);