- pembuatan service logbook kinerja dokter
- penyesuaian service persen bobot jenis indikator karena validasi saat pencarian kontrak kinerja
This commit is contained in:
parent
28db7ea50b
commit
8b44abb491
@ -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;
|
||||
|
||||
@ -98,7 +98,7 @@ public interface IkiDanRemunerasiDao extends PagingAndSortingRepository<IkiDanRe
|
||||
+ "where to_char(strukHistori.tglHistori,'yyyy-MM') =:periode " + "and pegawai.id = :idPegawai")
|
||||
public Double findRemunerasi(@Param("periode") String periode, @Param("idPegawai") Integer idPegawai);
|
||||
|
||||
// Target_Pelayanan
|
||||
// Target_pelayanan
|
||||
@Query("select distinct new Map(pp.noRec as noRec,pp.tglPelayanan as tglPelayanan,"
|
||||
+ "su.id as idKelompokKerja,su.name as kelompokKerja,"
|
||||
+ "pr.id as idTindakan,pr.namaProduk as namaTindakan,"
|
||||
@ -116,9 +116,30 @@ public interface IkiDanRemunerasiDao extends PagingAndSortingRepository<IkiDanRe
|
||||
+ "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 = :dokterId " + "and djp.jenisProdukId not in (:listNontindakanId) "
|
||||
+ "and pr.id <> :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<Map<String, Object>> getDataLayanan(@Param("tglAwal") Date tglAwal, @Param("tglAkhir") Date tglAkhir,
|
||||
@Param("dokterId") Integer dokterId, @Param("listKsmId") List<Integer> listKsmId,
|
||||
@Param("listNontindakanId") List<Integer> listNontindakanId, @Param("karcisId") Integer karcisId);
|
||||
@Param("jenisPegawaiId") Integer idJenisPegawai, @Param("listKsmId") List<Integer> listIdKsm,
|
||||
@Param("listNontindakanId") List<Integer> 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<Map<String, Object>> getDataLogbookDokter(@Param("bulan") String bulan,
|
||||
@Param("jenisPegawaiId") Integer idJenisPegawai, @Param("pegawaiId") Integer idPegawai,
|
||||
@Param("listNontindakanId") List<Integer> listIdNontindakan, @Param("karcisId") Integer idKarcis);
|
||||
}
|
||||
@ -16,5 +16,8 @@ public interface IndikatorKinerjaDetailDao extends PagingAndSortingRepository<In
|
||||
@Query("select new Map(ikd.id as id,ikd.detailIndikator as detailIndikator) " + "from IndikatorKinerjaDetail ikd "
|
||||
+ "where ikd.statusEnabled is true and ikd.id in (:listDetailId) " + "order by ikd.detailIndikator")
|
||||
public List<Map<String, Object>> findByListId(@Param("listDetailId") List<Integer> listIdDetail);
|
||||
|
||||
@Query("select ikd.detailIndikator from IndikatorKinerjaDetail ikd where ikd.id = :indikatorId")
|
||||
public String findNamaIndikator(@Param("indikatorId") Integer idIndikator);
|
||||
|
||||
}
|
||||
|
||||
@ -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<Skor
|
||||
+ "order by sk.name asc, stm.produkId asc, stm.tanggalPembaharuanData desc")
|
||||
List<Map<String, Object>> 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<Map<String, Object>> findSkoringLogbookDokter(@Param("bulan") String bulan,
|
||||
@Param("pegawaiId") Integer idPegawai, @Param("listKsmId") List<Integer> listIdKsm);
|
||||
|
||||
}
|
||||
|
||||
@ -10,7 +10,7 @@ public interface BobotJenisIndikatorService extends BaseVoService<BobotJenisIndi
|
||||
|
||||
public List<Map<String, Object>> findAllBobotJenis(Long periode);
|
||||
|
||||
public List<Map<String, Object>> findBobotJenisJabatan(Long periode, Integer idJabatan);
|
||||
public List<Double> findBobotJenisJabatan(Long periode, Integer idJabatan);
|
||||
|
||||
public List<Map<String, Object>> findBobotJenis(Long periode, Integer idjenisIndikator, Integer idKelompokJabatan);
|
||||
|
||||
|
||||
@ -38,4 +38,6 @@ public interface IkiDanRemunerasiService {
|
||||
public List<TargetLayananCustomVO> findAllTargetCapaianLayanan(String strPeriode, Integer idKsm)
|
||||
throws ParseException;
|
||||
|
||||
public List<Map<String, Object>> findLogbookSkoringDokter(Integer idPegawai, Long bulan);
|
||||
|
||||
}
|
||||
|
||||
@ -121,8 +121,10 @@ public class BobotJenisIndikatorServiceImpl extends BaseVoServiceImpl implements
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<Map<String, Object>> findBobotJenisJabatan(Long periode, Integer idJabatan) {
|
||||
List<Map<String, Object>> result = new ArrayList<>();
|
||||
public List<Double> findBobotJenisJabatan(Long periode, Integer idJabatan) {
|
||||
List<Double> result = new ArrayList<>();
|
||||
|
||||
List<Map<String, Object>> data = new ArrayList<>();
|
||||
List<Date> 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<String, Object> map : data) {
|
||||
result.add(Double.parseDouble(map.get("persentase").toString()));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -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<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().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<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;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -1006,11 +1006,11 @@ public class IkiDanRemunerasiController extends LocaleController<IkiDanRemuneras
|
||||
}
|
||||
|
||||
@RequestMapping(value = "/get-bobot-jenis-by-jabatan", method = RequestMethod.GET)
|
||||
public ResponseEntity<List<Map<String, Object>>> getBobotJenisIndikatorByJabatan(HttpServletRequest request,
|
||||
public ResponseEntity<List<Double>> getBobotJenisIndikatorByJabatan(HttpServletRequest request,
|
||||
@RequestParam(value = "periode", required = true) Long periode,
|
||||
@RequestParam(value = "jabatanId", required = true) Integer idJabatan) throws ParseException {
|
||||
try {
|
||||
List<Map<String, Object>> result = bobotJenisIndikatorService.findBobotJenisJabatan(periode, idJabatan);
|
||||
List<Double> 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<IkiDanRemuneras
|
||||
return RestUtil.getJsonHttptatus(HttpStatus.CONFLICT, mapHeaderMessage);
|
||||
}
|
||||
}
|
||||
|
||||
@RequestMapping(value = "/get-logbook-skoring-dokter", method = RequestMethod.GET)
|
||||
public ResponseEntity<List<Map<String, Object>>> getLogbookSkoringDokter(HttpServletRequest request,
|
||||
@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);
|
||||
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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user