- penyesuaian aturan jam kerja untuk perhitungan target pelayanan medis bulanan
- penyesuaian detail indikator kinerja dokter di dalam kontrak kinerja dokter - pembuatan service cek duplikat data pengaturan bobot jenis indikator - penyesuaian aturan 115% untuk skoring tindakan eksekutif - penambahan informasi tanggal hitung untuk pencarian data hasil hitung target pelayanan medis bulanan - pembuatan service get persentase bobot jenis indikator di dalam kontrak kinerja individu
This commit is contained in:
parent
e49884c679
commit
28db7ea50b
@ -80,6 +80,10 @@ public class Master {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static final class IndikatorKinerja {
|
public static final class IndikatorKinerja {
|
||||||
|
public static final Integer PELAYANAN_MEDIS = 466;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static final class IndikatorKinerjaDetail {
|
||||||
public static final Integer KONSUL_EKS = 1;
|
public static final Integer KONSUL_EKS = 1;
|
||||||
public static final Integer KONSUL_GADAR = 2;
|
public static final Integer KONSUL_GADAR = 2;
|
||||||
public static final Integer KONSUL_REG = 3;
|
public static final Integer KONSUL_REG = 3;
|
||||||
@ -250,10 +254,11 @@ public class Master {
|
|||||||
public static final class Produk {
|
public static final class Produk {
|
||||||
public static final int KARCIS = 395;
|
public static final int KARCIS = 395;
|
||||||
|
|
||||||
|
public static final Integer[] DOKTER_UMUM_IGD = { 783, 401333, 402413, 402414, 402449, 402484 };
|
||||||
|
public static final Integer[] KONSULTASI_EKSEKUTIF = { 401092, 401093 };
|
||||||
public static final Integer[] PENUNJANG_BUKAN_ANASTESI = { 13409, 15208, 19325, 19346, 19371, 19405, 19406,
|
public static final Integer[] PENUNJANG_BUKAN_ANASTESI = { 13409, 15208, 19325, 19346, 19371, 19405, 19406,
|
||||||
19535, 19599, 402009, 10009835, 10012269, 1002117344, 1002117938, 1002117963, 1002117964, 1002117965,
|
19535, 19599, 402009, 10009835, 10012269, 1002117344, 1002117938, 1002117963, 1002117964, 1002117965,
|
||||||
1002117966 };
|
1002117966 };
|
||||||
public static final Integer[] DOKTER_UMUM_IGD = { 783, 401333, 402413, 402414, 402449, 402484 };
|
|
||||||
|
|
||||||
public static final Integer KONSULTASI_DOKTER_JAGA = 400;
|
public static final Integer KONSULTASI_DOKTER_JAGA = 400;
|
||||||
}
|
}
|
||||||
@ -266,6 +271,7 @@ public class Master {
|
|||||||
public static final Double BOBOT_PERILAKU = 30.0;
|
public static final Double BOBOT_PERILAKU = 30.0;
|
||||||
public static final Double IKI_STANDAR = 1.0;
|
public static final Double IKI_STANDAR = 1.0;
|
||||||
|
|
||||||
|
public static final Double PERSEN_SKOR_EKSEKUTIF = 1.15;
|
||||||
public static final Double PERSEN_P1 = 0.3;
|
public static final Double PERSEN_P1 = 0.3;
|
||||||
public static final Double PERSEN_P2 = 0.7;
|
public static final Double PERSEN_P2 = 0.7;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -25,19 +25,44 @@ public interface BobotJenisIndikatorDao extends PagingAndSortingRepository<Bobot
|
|||||||
+ "order by bj.bulan desc, kj.namaKelompokJabatan, bj.jenisIndikator ")
|
+ "order by bj.bulan desc, kj.namaKelompokJabatan, bj.jenisIndikator ")
|
||||||
public List<Map<String, Object>> findAllBobotJenis(@Param("periode") String periode);
|
public List<Map<String, Object>> findAllBobotJenis(@Param("periode") String periode);
|
||||||
|
|
||||||
|
@Query("select distinct bj.bulan " + "from BobotJenisIndikator bj, Jabatan jb "
|
||||||
|
+ "where bj.kelompokJabatanId = jb.kelompokJabatanId " + "and bj.statusEnabled is true "
|
||||||
|
+ "and to_char(bj.bulan,'yyyy-MM') <= :periode " + "and jb.id = :jabatanId " + "order by bj.bulan desc")
|
||||||
|
public List<Date> findBulanBerlaku(@Param("periode") String periode, @Param("jabatanId") Integer idJabatan);
|
||||||
|
|
||||||
@Query("select distinct bj.bulan " + "from BobotJenisIndikator bj " + "where bj.statusEnabled is true "
|
@Query("select distinct bj.bulan " + "from BobotJenisIndikator bj " + "where bj.statusEnabled is true "
|
||||||
+ "and bj.bulan <= :periode " + "order by bj.bulan desc")
|
+ "and to_char(bj.bulan,'yyyy-MM') <= :periode " + "and bj.kelompokJabatanId is null "
|
||||||
public List<Date> findBulanBerlakuByPeriode(@Param("periode") Date periode);
|
+ "order by bj.bulan desc")
|
||||||
|
public List<Date> findBulanBerlaku(@Param("periode") String periode);
|
||||||
|
|
||||||
@Query("select new Map(bj.jenisIndikator as jenisIndikatorId," + "bj.persentase as persentase) "
|
@Query("select distinct new Map(bj.jenisIndikator as id," + "(case when bj.jenisIndikator = 1 then 'Kuantitas' "
|
||||||
+ "from BobotJenisIndikator bj " + "where bj.statusEnabled is true " + "and bj.bulan = :periode "
|
+ "when bj.jenisIndikator = 2 then 'Kualitas' "
|
||||||
|
+ "when bj.jenisIndikator = 3 then 'Perilaku' end) as jenisIndikator," + "bj.persentase as persentase) "
|
||||||
|
+ "from BobotJenisIndikator bj, Jabatan jb " + "where bj.kelompokJabatanId = jb.kelompokJabatanId "
|
||||||
|
+ "and bj.statusEnabled is true " + "and bj.bulan = :periode " + "and jb.id = :jabatanId "
|
||||||
+ "order by bj.jenisIndikator")
|
+ "order by bj.jenisIndikator")
|
||||||
public List<Map<String, Object>> findBobotJenis(@Param("periode") Date periode);
|
public List<Map<String, Object>> findBobotJenisKontrak(@Param("periode") Date periode,
|
||||||
|
@Param("jabatanId") Integer idJabatan);
|
||||||
|
|
||||||
@Query("select new Map(bj.jenisIndikator as jenisIndikatorId," + "bj.persentase as persentase) "
|
@Query("select distinct new Map(bj.jenisIndikator as id," + "(case when bj.jenisIndikator = 1 then 'Kuantitas' "
|
||||||
+ "from BobotJenisIndikator bj " + "inner join bj.kelompokJabatan kj " + "where bj.statusEnabled is true "
|
+ "when bj.jenisIndikator = 2 then 'Kualitas' "
|
||||||
+ "and bj.bulan = :periode " + "and kj.id = :kelompokJabatanId " + "order by bj.jenisIndikator")
|
+ "when bj.jenisIndikator = 3 then 'Perilaku' end) as jenisIndikator," + "bj.persentase as persentase) "
|
||||||
public List<Map<String, Object>> findBobotJenis(@Param("periode") Date periode,
|
+ "from BobotJenisIndikator bj " + "where bj.statusEnabled is true " + "and bj.bulan = :periode "
|
||||||
@Param("kelompokJabatanId") Integer idKelompokJabatan);
|
+ "and bj.kelompokJabatanId is null " + "order by bj.jenisIndikator")
|
||||||
|
public List<Map<String, Object>> findBobotJenisKontrak(@Param("periode") Date periode);
|
||||||
|
|
||||||
|
@Query("select new Map(bj.noRec as noRec,bj.jenisIndikator as id,bj.persentase as persentase) "
|
||||||
|
+ "from BobotJenisIndikator bj " + "where bj.statusEnabled is true "
|
||||||
|
+ "and to_char(bj.bulan,'yyyy-MM-dd') = :periode " + "and bj.jenisIndikator = :jenisIndikator "
|
||||||
|
+ "and bj.kelompokJabatanId = :kelompokJabatanId")
|
||||||
|
public List<Map<String, Object>> findBobotJenis(@Param("periode") String periode,
|
||||||
|
@Param("jenisIndikator") Integer jenisIndikator, @Param("kelompokJabatanId") Integer idKelompokJabatan);
|
||||||
|
|
||||||
|
@Query("select new Map(bj.noRec as noRec,bj.jenisIndikator as id,bj.persentase as persentase) "
|
||||||
|
+ "from BobotJenisIndikator bj " + "where bj.statusEnabled is true "
|
||||||
|
+ "and to_char(bj.bulan,'yyyy-MM-dd') = :periode " + "and bj.jenisIndikator = :jenisIndikator "
|
||||||
|
+ "and bj.kelompokJabatanId is null")
|
||||||
|
public List<Map<String, Object>> findBobotJenis(@Param("periode") String periode,
|
||||||
|
@Param("jenisIndikator") Integer jenisIndikator);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -112,6 +112,10 @@ public interface IkiDanRemunerasiDao extends PagingAndSortingRepository<IkiDanRe
|
|||||||
+ "and mpju.unitKerjaPegawaiId in (:listKsmId)" + "and mrtp.statusEnabled is true "
|
+ "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 mpju.statusEnabled is true " + "and pg.statusEnabled is true " + "and su.statusEnabled is true "
|
||||||
+ "and pd.statusEnabled is true " + "and pp.tglPelayanan between :tglAwal and :tglAkhir "
|
+ "and pd.statusEnabled is true " + "and pp.tglPelayanan between :tglAwal and :tglAkhir "
|
||||||
|
+ "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 = :dokterId " + "and djp.jenisProdukId not in (:listNontindakanId) "
|
+ "and pg.jenisPegawaiId = :dokterId " + "and djp.jenisProdukId not in (:listNontindakanId) "
|
||||||
+ "and pr.id <> :karcisId order by su.name, pr.id")
|
+ "and pr.id <> :karcisId order by su.name, pr.id")
|
||||||
public List<Map<String, Object>> getDataLayanan(@Param("tglAwal") Date tglAwal, @Param("tglAkhir") Date tglAkhir,
|
public List<Map<String, Object>> getDataLayanan(@Param("tglAwal") Date tglAwal, @Param("tglAkhir") Date tglAkhir,
|
||||||
|
|||||||
@ -1,6 +1,11 @@
|
|||||||
package com.jasamedika.medifirst2000.dao;
|
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;
|
import org.springframework.data.repository.PagingAndSortingRepository;
|
||||||
|
import org.springframework.data.repository.query.Param;
|
||||||
import org.springframework.stereotype.Repository;
|
import org.springframework.stereotype.Repository;
|
||||||
|
|
||||||
import com.jasamedika.medifirst2000.entities.LogbookKinerjaDokter;
|
import com.jasamedika.medifirst2000.entities.LogbookKinerjaDokter;
|
||||||
@ -8,4 +13,13 @@ import com.jasamedika.medifirst2000.entities.LogbookKinerjaDokter;
|
|||||||
@Repository("logbookKinerjaDokterDao")
|
@Repository("logbookKinerjaDokterDao")
|
||||||
public interface LogbookKinerjaDokterDao extends PagingAndSortingRepository<LogbookKinerjaDokter, String> {
|
public interface LogbookKinerjaDokterDao extends PagingAndSortingRepository<LogbookKinerjaDokter, String> {
|
||||||
|
|
||||||
|
@Query("select new Map(ikd.id as id,ikd.detailIndikator as detailIndikator,ld.detailTarget as detailTarget) "
|
||||||
|
+ "from LogbookKinerjaDokter ld " + "inner join ld.indikatorDetail ikd " + "where ld.statusEnabled is true "
|
||||||
|
+ "and ikd.statusEnabled is true " + "and to_char(ld.bulan,'yyyy-MM') = :bulan "
|
||||||
|
+ "and ld.jabatanId = :jabatanId " + "and ld.pegawaiId = :pegawaiId "
|
||||||
|
+ "and ikd.indikatorKinerjaId = :indikatorId")
|
||||||
|
public List<Map<String, Object>> findDetailKontrakKinerja(@Param("bulan") String bulan,
|
||||||
|
@Param("jabatanId") Integer idJabatan, @Param("pegawaiId") Integer idPegawai,
|
||||||
|
@Param("indikatorId") Integer idIndikator);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -9,5 +9,9 @@ import com.jasamedika.medifirst2000.vo.BobotJenisIndikatorVO;
|
|||||||
public interface BobotJenisIndikatorService extends BaseVoService<BobotJenisIndikator, BobotJenisIndikatorVO, String> {
|
public interface BobotJenisIndikatorService extends BaseVoService<BobotJenisIndikator, BobotJenisIndikatorVO, String> {
|
||||||
|
|
||||||
public List<Map<String, Object>> findAllBobotJenis(Long periode);
|
public List<Map<String, Object>> findAllBobotJenis(Long periode);
|
||||||
|
|
||||||
|
public List<Map<String, Object>> findBobotJenisJabatan(Long periode, Integer idJabatan);
|
||||||
|
|
||||||
|
public List<Map<String, Object>> findBobotJenis(Long periode, Integer idjenisIndikator, Integer idKelompokJabatan);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,5 +1,6 @@
|
|||||||
package com.jasamedika.medifirst2000.service.impl;
|
package com.jasamedika.medifirst2000.service.impl;
|
||||||
|
|
||||||
|
import java.text.DateFormat;
|
||||||
import java.text.SimpleDateFormat;
|
import java.text.SimpleDateFormat;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
@ -119,4 +120,42 @@ public class BobotJenisIndikatorServiceImpl extends BaseVoServiceImpl implements
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<Map<String, Object>> findBobotJenisJabatan(Long periode, Integer idJabatan) {
|
||||||
|
List<Map<String, Object>> result = new ArrayList<>();
|
||||||
|
List<Date> bulanBerlaku = new ArrayList<>();
|
||||||
|
|
||||||
|
DateFormat df = new SimpleDateFormat("yyyy-MM");
|
||||||
|
|
||||||
|
bulanBerlaku = bobotJenisIndikatorDao.findBulanBerlaku(df.format(new Date(periode)), idJabatan);
|
||||||
|
if (CommonUtil.isNullOrEmpty(bulanBerlaku)) {
|
||||||
|
bulanBerlaku = bobotJenisIndikatorDao.findBulanBerlaku(df.format(new Date(periode)));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (CommonUtil.isNotNullOrEmpty(bulanBerlaku)) {
|
||||||
|
result = bobotJenisIndikatorDao.findBobotJenisKontrak(bulanBerlaku.get(0), idJabatan);
|
||||||
|
if (CommonUtil.isNullOrEmpty(result)) {
|
||||||
|
result = bobotJenisIndikatorDao.findBobotJenisKontrak(bulanBerlaku.get(0));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<Map<String, Object>> findBobotJenis(Long periode, Integer idjenisIndikator, Integer idKelompokJabatan) {
|
||||||
|
List<Map<String, Object>> result = new ArrayList<>();
|
||||||
|
|
||||||
|
DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
|
||||||
|
|
||||||
|
if (CommonUtil.isNotNullOrEmpty(idKelompokJabatan)) {
|
||||||
|
result = bobotJenisIndikatorDao.findBobotJenis(df.format(new Date(periode)), idjenisIndikator,
|
||||||
|
idKelompokJabatan);
|
||||||
|
} else {
|
||||||
|
result = bobotJenisIndikatorDao.findBobotJenis(df.format(new Date(periode)), idjenisIndikator);
|
||||||
|
}
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -489,7 +489,7 @@ public class IkiDanRemunerasiServiceImpl extends BaseVoServiceImpl implements Ik
|
|||||||
|
|
||||||
List<Integer> listRuangEks = splitDataSettingDatafixed("IdRuanganEksekutif");
|
List<Integer> listRuangEks = splitDataSettingDatafixed("IdRuanganEksekutif");
|
||||||
|
|
||||||
List<Integer> listIndikatorPelayanan = Arrays.asList(Master.IndikatorKinerja.INDIKATOR_PELAYANAN_MEDIS);
|
List<Integer> listIndikatorPelayanan = Arrays.asList(Master.IndikatorKinerjaDetail.INDIKATOR_PELAYANAN_MEDIS);
|
||||||
|
|
||||||
List<Map<String, Object>> dataLayananRaw = new ArrayList<>();
|
List<Map<String, Object>> dataLayananRaw = new ArrayList<>();
|
||||||
if (CommonUtil.isNotNullOrEmpty(idKsm)) {
|
if (CommonUtil.isNotNullOrEmpty(idKsm)) {
|
||||||
@ -601,8 +601,17 @@ public class IkiDanRemunerasiServiceImpl extends BaseVoServiceImpl implements Ik
|
|||||||
&& layanan.get("idKelompokKerja").equals(skoring.get("kelompokKerjaId"))
|
&& layanan.get("idKelompokKerja").equals(skoring.get("kelompokKerjaId"))
|
||||||
&& (((Date) skoring.get("tglBerlaku")).before(((Date) layanan.get("tglPelayanan")))
|
&& (((Date) skoring.get("tglBerlaku")).before(((Date) layanan.get("tglPelayanan")))
|
||||||
|| ((Date) skoring.get("tglBerlaku")).equals(((Date) layanan.get("tglPelayanan"))))) {
|
|| ((Date) skoring.get("tglBerlaku")).equals(((Date) layanan.get("tglPelayanan"))))) {
|
||||||
layanan.put("jumlahTindakan", Double.valueOf(layanan.get("jumlahTindakan").toString())
|
if (listRuangEks.contains(layanan.get("idRuangan"))
|
||||||
* Double.valueOf(skoring.get("skor").toString()));
|
&& !Arrays.asList(Master.Produk.KONSULTASI_EKSEKUTIF).contains(layanan.get("idTindakan"))) {
|
||||||
|
layanan.put("jumlahTindakan",
|
||||||
|
Double.valueOf(layanan.get("jumlahTindakan").toString())
|
||||||
|
* Double.valueOf(skoring.get("skor").toString())
|
||||||
|
* Master.Remunerasi.PERSEN_SKOR_EKSEKUTIF);
|
||||||
|
} else {
|
||||||
|
layanan.put("jumlahTindakan", Double.valueOf(layanan.get("jumlahTindakan").toString())
|
||||||
|
* Double.valueOf(skoring.get("skor").toString()));
|
||||||
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -633,7 +642,7 @@ public class IkiDanRemunerasiServiceImpl extends BaseVoServiceImpl implements Ik
|
|||||||
for (Map<String, Object> data : dataLayananScored) {
|
for (Map<String, Object> data : dataLayananScored) {
|
||||||
if (kelompokKerja.get("subunitKerjaId").equals(data.get("idKelompokKerja"))
|
if (kelompokKerja.get("subunitKerjaId").equals(data.get("idKelompokKerja"))
|
||||||
&& datePelayanan.equals(sdf.format(data.get("tglPelayanan")))) {
|
&& datePelayanan.equals(sdf.format(data.get("tglPelayanan")))) {
|
||||||
if (idIndikator.equals(Master.IndikatorKinerja.KONSUL_EKS)
|
if (idIndikator.equals(Master.IndikatorKinerjaDetail.KONSUL_EKS)
|
||||||
&& data.get("namaTindakan").equals(Master.KONSUL)
|
&& data.get("namaTindakan").equals(Master.KONSUL)
|
||||||
&& listRuangEks.contains(data.get("idRuangan"))) {
|
&& listRuangEks.contains(data.get("idRuangan"))) {
|
||||||
capaianBulanan += Double.valueOf(data.get("jumlahTindakan").toString());
|
capaianBulanan += Double.valueOf(data.get("jumlahTindakan").toString());
|
||||||
@ -651,7 +660,7 @@ public class IkiDanRemunerasiServiceImpl extends BaseVoServiceImpl implements Ik
|
|||||||
targetBulanan = Math
|
targetBulanan = Math
|
||||||
.floor(capaianTriwulanKE / (listBulanPelayananSorted.size() - 1));
|
.floor(capaianTriwulanKE / (listBulanPelayananSorted.size() - 1));
|
||||||
}
|
}
|
||||||
} else if (idIndikator.equals(Master.IndikatorKinerja.KONSUL_GADAR)
|
} else if (idIndikator.equals(Master.IndikatorKinerjaDetail.KONSUL_GADAR)
|
||||||
&& data.get("namaTindakan").equals(Master.KONSUL)
|
&& data.get("namaTindakan").equals(Master.KONSUL)
|
||||||
&& data.get("idDepartemen").equals(Master.Departemen.IGD)) {
|
&& data.get("idDepartemen").equals(Master.Departemen.IGD)) {
|
||||||
capaianBulanan += Double.valueOf(data.get("jumlahTindakan").toString());
|
capaianBulanan += Double.valueOf(data.get("jumlahTindakan").toString());
|
||||||
@ -669,7 +678,7 @@ public class IkiDanRemunerasiServiceImpl extends BaseVoServiceImpl implements Ik
|
|||||||
targetBulanan = Math
|
targetBulanan = Math
|
||||||
.floor(capaianTriwulanKG / (listBulanPelayananSorted.size() - 1));
|
.floor(capaianTriwulanKG / (listBulanPelayananSorted.size() - 1));
|
||||||
}
|
}
|
||||||
} else if (idIndikator.equals(Master.IndikatorKinerja.KONSUL_REG)
|
} else if (idIndikator.equals(Master.IndikatorKinerjaDetail.KONSUL_REG)
|
||||||
&& data.get("namaTindakan").equals(Master.KONSUL)) {
|
&& data.get("namaTindakan").equals(Master.KONSUL)) {
|
||||||
capaianBulanan += Double.valueOf(data.get("jumlahTindakan").toString());
|
capaianBulanan += Double.valueOf(data.get("jumlahTindakan").toString());
|
||||||
if (i < listBulanPelayananSorted.size()) {
|
if (i < listBulanPelayananSorted.size()) {
|
||||||
@ -686,7 +695,7 @@ public class IkiDanRemunerasiServiceImpl extends BaseVoServiceImpl implements Ik
|
|||||||
targetBulanan = Math
|
targetBulanan = Math
|
||||||
.floor(capaianTriwulanKR / (listBulanPelayananSorted.size() - 1));
|
.floor(capaianTriwulanKR / (listBulanPelayananSorted.size() - 1));
|
||||||
}
|
}
|
||||||
} else if (idIndikator.equals(Master.IndikatorKinerja.VISITE)
|
} else if (idIndikator.equals(Master.IndikatorKinerjaDetail.VISITE)
|
||||||
&& data.get("namaTindakan").equals(Master.VISIT)) {
|
&& data.get("namaTindakan").equals(Master.VISIT)) {
|
||||||
capaianBulanan += Double.valueOf(data.get("jumlahTindakan").toString());
|
capaianBulanan += Double.valueOf(data.get("jumlahTindakan").toString());
|
||||||
if (i < listBulanPelayananSorted.size()) {
|
if (i < listBulanPelayananSorted.size()) {
|
||||||
@ -703,7 +712,7 @@ public class IkiDanRemunerasiServiceImpl extends BaseVoServiceImpl implements Ik
|
|||||||
targetBulanan = Math
|
targetBulanan = Math
|
||||||
.floor(capaianTriwulanVI / (listBulanPelayananSorted.size() - 1));
|
.floor(capaianTriwulanVI / (listBulanPelayananSorted.size() - 1));
|
||||||
}
|
}
|
||||||
} else if (idIndikator.equals(Master.IndikatorKinerja.TINDAKAN_EKS)
|
} else if (idIndikator.equals(Master.IndikatorKinerjaDetail.TINDAKAN_EKS)
|
||||||
&& listRuangEks.contains(data.get("idRuangan"))) {
|
&& listRuangEks.contains(data.get("idRuangan"))) {
|
||||||
capaianBulanan += Double.valueOf(data.get("jumlahTindakan").toString());
|
capaianBulanan += Double.valueOf(data.get("jumlahTindakan").toString());
|
||||||
if (i < listBulanPelayananSorted.size()) {
|
if (i < listBulanPelayananSorted.size()) {
|
||||||
@ -720,7 +729,7 @@ public class IkiDanRemunerasiServiceImpl extends BaseVoServiceImpl implements Ik
|
|||||||
targetBulanan = Math
|
targetBulanan = Math
|
||||||
.floor(capaianTriwulanTE / (listBulanPelayananSorted.size() - 1));
|
.floor(capaianTriwulanTE / (listBulanPelayananSorted.size() - 1));
|
||||||
}
|
}
|
||||||
} else if (idIndikator.equals(Master.IndikatorKinerja.TINDAKAN_GADAR)
|
} else if (idIndikator.equals(Master.IndikatorKinerjaDetail.TINDAKAN_GADAR)
|
||||||
&& data.get("idDepartemen").equals(Master.Departemen.IGD)) {
|
&& data.get("idDepartemen").equals(Master.Departemen.IGD)) {
|
||||||
capaianBulanan += Double.valueOf(data.get("jumlahTindakan").toString());
|
capaianBulanan += Double.valueOf(data.get("jumlahTindakan").toString());
|
||||||
if (i < listBulanPelayananSorted.size()) {
|
if (i < listBulanPelayananSorted.size()) {
|
||||||
@ -737,7 +746,7 @@ public class IkiDanRemunerasiServiceImpl extends BaseVoServiceImpl implements Ik
|
|||||||
targetBulanan = Math
|
targetBulanan = Math
|
||||||
.floor(capaianTriwulanTG / (listBulanPelayananSorted.size() - 1));
|
.floor(capaianTriwulanTG / (listBulanPelayananSorted.size() - 1));
|
||||||
}
|
}
|
||||||
} else if (idIndikator.equals(Master.IndikatorKinerja.TINDAKAN_OPS)
|
} else if (idIndikator.equals(Master.IndikatorKinerjaDetail.TINDAKAN_OPS)
|
||||||
&& data.get("idRuangan").equals(Master.Ruangan.OK)) {
|
&& data.get("idRuangan").equals(Master.Ruangan.OK)) {
|
||||||
capaianBulanan += Double.valueOf(data.get("jumlahTindakan").toString());
|
capaianBulanan += Double.valueOf(data.get("jumlahTindakan").toString());
|
||||||
if (i < listBulanPelayananSorted.size()) {
|
if (i < listBulanPelayananSorted.size()) {
|
||||||
@ -754,7 +763,7 @@ public class IkiDanRemunerasiServiceImpl extends BaseVoServiceImpl implements Ik
|
|||||||
targetBulanan = Math
|
targetBulanan = Math
|
||||||
.floor(capaianTriwulanTO / (listBulanPelayananSorted.size() - 1));
|
.floor(capaianTriwulanTO / (listBulanPelayananSorted.size() - 1));
|
||||||
}
|
}
|
||||||
} else if (idIndikator.equals(Master.IndikatorKinerja.TINDAKAN_REG)) {
|
} else if (idIndikator.equals(Master.IndikatorKinerjaDetail.TINDAKAN_REG)) {
|
||||||
capaianBulanan += Double.valueOf(data.get("jumlahTindakan").toString());
|
capaianBulanan += Double.valueOf(data.get("jumlahTindakan").toString());
|
||||||
if (i < listBulanPelayananSorted.size()) {
|
if (i < listBulanPelayananSorted.size()) {
|
||||||
capaianTriwulanTR += Double.valueOf(data.get("jumlahTindakan").toString());
|
capaianTriwulanTR += Double.valueOf(data.get("jumlahTindakan").toString());
|
||||||
@ -846,8 +855,7 @@ public class IkiDanRemunerasiServiceImpl extends BaseVoServiceImpl implements Ik
|
|||||||
logbook.setStatusEnabled(true);
|
logbook.setStatusEnabled(true);
|
||||||
logbook.setBulan(targetLayanan.getPeriode());
|
logbook.setBulan(targetLayanan.getPeriode());
|
||||||
logbook.setDetailTarget(detailTarget);
|
logbook.setDetailTarget(detailTarget);
|
||||||
logbook.setDetailCapaian(
|
logbook.setDetailCapaian(0.0);
|
||||||
CommonUtil.isNotNullOrEmpty(targetLayanan.getCapaian()) ? targetLayanan.getCapaian() : 0);
|
|
||||||
logbook.setIndikatorDetail(targetLayanan.getIndikatorDetail());
|
logbook.setIndikatorDetail(targetLayanan.getIndikatorDetail());
|
||||||
Jabatan jabatan = new Jabatan();
|
Jabatan jabatan = new Jabatan();
|
||||||
jabatan.setId(Integer.valueOf(map.get("jabatanId").toString()));
|
jabatan.setId(Integer.valueOf(map.get("jabatanId").toString()));
|
||||||
@ -871,6 +879,7 @@ public class IkiDanRemunerasiServiceImpl extends BaseVoServiceImpl implements Ik
|
|||||||
List<Integer> listIdKelompokKerja = new ArrayList<>();
|
List<Integer> listIdKelompokKerja = new ArrayList<>();
|
||||||
|
|
||||||
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM");
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM");
|
||||||
|
SimpleDateFormat formatter = new SimpleDateFormat("dd-MM-yyyy HH:mm:ss");
|
||||||
SimpleDateFormat sdfINA = new SimpleDateFormat("MMMM yyyy", new Locale("in", "ID"));
|
SimpleDateFormat sdfINA = new SimpleDateFormat("MMMM yyyy", new Locale("in", "ID"));
|
||||||
|
|
||||||
Date periode = sdf.parse(strPeriode);
|
Date periode = sdf.parse(strPeriode);
|
||||||
@ -910,7 +919,7 @@ public class IkiDanRemunerasiServiceImpl extends BaseVoServiceImpl implements Ik
|
|||||||
}
|
}
|
||||||
|
|
||||||
List<Map<String, Object>> listIndikatorPelayanan = indikatorKinerjaDetailDao
|
List<Map<String, Object>> listIndikatorPelayanan = indikatorKinerjaDetailDao
|
||||||
.findByListId(Arrays.asList(Master.IndikatorKinerja.INDIKATOR_PELAYANAN_MEDIS));
|
.findByListId(Arrays.asList(Master.IndikatorKinerjaDetail.INDIKATOR_PELAYANAN_MEDIS));
|
||||||
|
|
||||||
for (Map<String, Object> kelompokKerja : listKelompokKerja) {
|
for (Map<String, Object> kelompokKerja : listKelompokKerja) {
|
||||||
for (Map<String, Object> indikator : listIndikatorPelayanan) {
|
for (Map<String, Object> indikator : listIndikatorPelayanan) {
|
||||||
@ -926,6 +935,7 @@ public class IkiDanRemunerasiServiceImpl extends BaseVoServiceImpl implements Ik
|
|||||||
detail.setBulan(sdfINA.format(targetLayanan.getPeriode()));
|
detail.setBulan(sdfINA.format(targetLayanan.getPeriode()));
|
||||||
detail.setTarget(targetLayanan.getTarget());
|
detail.setTarget(targetLayanan.getTarget());
|
||||||
detail.setCapaian(targetLayanan.getCapaian());
|
detail.setCapaian(targetLayanan.getCapaian());
|
||||||
|
detail.setTglHitung(formatter.format(targetLayanan.getTglHitung()));
|
||||||
|
|
||||||
if (!paramPeriode.contains(sdf.format(targetLayanan.getPeriode()))) {
|
if (!paramPeriode.contains(sdf.format(targetLayanan.getPeriode()))) {
|
||||||
listDetail.add(detail);
|
listDetail.add(detail);
|
||||||
|
|||||||
@ -24,6 +24,7 @@ import com.jasamedika.medifirst2000.dao.AnggaranRemunerasiDao;
|
|||||||
import com.jasamedika.medifirst2000.dao.IndikatorKinerjaDao;
|
import com.jasamedika.medifirst2000.dao.IndikatorKinerjaDao;
|
||||||
import com.jasamedika.medifirst2000.dao.LogbookKinerjaDao;
|
import com.jasamedika.medifirst2000.dao.LogbookKinerjaDao;
|
||||||
import com.jasamedika.medifirst2000.dao.LogbookKinerjaDetailDao;
|
import com.jasamedika.medifirst2000.dao.LogbookKinerjaDetailDao;
|
||||||
|
import com.jasamedika.medifirst2000.dao.LogbookKinerjaDokterDao;
|
||||||
import com.jasamedika.medifirst2000.dao.PegawaiDao;
|
import com.jasamedika.medifirst2000.dao.PegawaiDao;
|
||||||
import com.jasamedika.medifirst2000.entities.IndikatorKinerja;
|
import com.jasamedika.medifirst2000.entities.IndikatorKinerja;
|
||||||
import com.jasamedika.medifirst2000.entities.Jabatan;
|
import com.jasamedika.medifirst2000.entities.Jabatan;
|
||||||
@ -72,6 +73,9 @@ public class LogbookKinerjaServiceImpl extends BaseVoServiceImpl implements Logb
|
|||||||
@Autowired
|
@Autowired
|
||||||
private PegawaiDao pegawaiDao;
|
private PegawaiDao pegawaiDao;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private LogbookKinerjaDokterDao logbookKinerjaDokterDao;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public LogbookKinerjaVO add(LogbookKinerjaVO vo) throws JpaSystemException, ServiceVOException {
|
public LogbookKinerjaVO add(LogbookKinerjaVO vo) throws JpaSystemException, ServiceVOException {
|
||||||
Pegawai pegawai = pegawaiConverter.transferVOToModel(vo.getPegawai(), new Pegawai());
|
Pegawai pegawai = pegawaiConverter.transferVOToModel(vo.getPegawai(), new Pegawai());
|
||||||
@ -274,6 +278,20 @@ public class LogbookKinerjaServiceImpl extends BaseVoServiceImpl implements Logb
|
|||||||
for (Map<String, Object> map : listMap) {
|
for (Map<String, Object> map : listMap) {
|
||||||
if (!listIdIndikator.contains(map.get("indikatorId"))) {
|
if (!listIdIndikator.contains(map.get("indikatorId"))) {
|
||||||
listIdIndikator.add(Integer.valueOf(map.get("indikatorId").toString()));
|
listIdIndikator.add(Integer.valueOf(map.get("indikatorId").toString()));
|
||||||
|
|
||||||
|
List<Map<String, Object>> detailIndikator = logbookKinerjaDokterDao.findDetailKontrakKinerja(
|
||||||
|
df.format(new Date(bulan)), idJabatan, idPegawai,
|
||||||
|
Integer.valueOf(map.get("indikatorId").toString()));
|
||||||
|
|
||||||
|
if (CommonUtil.isNotNullOrEmpty(detailIndikator)) {
|
||||||
|
double detailTarget = 0.0;
|
||||||
|
for (Map<String, Object> detail : detailIndikator) {
|
||||||
|
detailTarget += Double.parseDouble(detail.get("detailTarget").toString());
|
||||||
|
}
|
||||||
|
map.put("target", detailTarget);
|
||||||
|
map.put("detail", detailIndikator);
|
||||||
|
}
|
||||||
|
|
||||||
listRes.add(map);
|
listRes.add(map);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -297,7 +315,11 @@ public class LogbookKinerjaServiceImpl extends BaseVoServiceImpl implements Logb
|
|||||||
}
|
}
|
||||||
if (CommonUtil.isNullOrEmpty(res.get("noRec"))) {
|
if (CommonUtil.isNullOrEmpty(res.get("noRec"))) {
|
||||||
res.put("noRec", null);
|
res.put("noRec", null);
|
||||||
res.put("target", null);
|
if (CommonUtil.isNotNullOrEmpty(res.get("target"))) {
|
||||||
|
res.put("target", res.get("target"));
|
||||||
|
} else {
|
||||||
|
res.put("target", null);
|
||||||
|
}
|
||||||
res.put("bobot", null);
|
res.put("bobot", null);
|
||||||
res.put("isStatusVerifikasi", null);
|
res.put("isStatusVerifikasi", null);
|
||||||
res.put("statusVerifikasi", null);
|
res.put("statusVerifikasi", null);
|
||||||
|
|||||||
@ -16,6 +16,9 @@ public class TargetLayananCustomDetailVO {
|
|||||||
@Caption(value = "Target")
|
@Caption(value = "Target")
|
||||||
Double target;
|
Double target;
|
||||||
|
|
||||||
|
@Caption(value = "Tanggal Hitung")
|
||||||
|
String tglHitung;
|
||||||
|
|
||||||
public String getDate() {
|
public String getDate() {
|
||||||
return date;
|
return date;
|
||||||
}
|
}
|
||||||
@ -48,4 +51,12 @@ public class TargetLayananCustomDetailVO {
|
|||||||
this.target = target;
|
this.target = target;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String getTglHitung() {
|
||||||
|
return tglHitung;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setTglHitung(String tglHitung) {
|
||||||
|
this.tglHitung = tglHitung;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -391,7 +391,7 @@ public class IkiDanRemunerasiController extends LocaleController<IkiDanRemuneras
|
|||||||
}
|
}
|
||||||
|
|
||||||
@RequestMapping(value = "/get-duplicate-indikator-kinerja", method = RequestMethod.GET)
|
@RequestMapping(value = "/get-duplicate-indikator-kinerja", method = RequestMethod.GET)
|
||||||
public ResponseEntity<List<Map<String, Object>>> getDuplicateIndikatorKinerja(HttpServletRequest request,
|
public ResponseEntity<List<Map<String, Object>>> getDuplikatIndikatorKinerja(HttpServletRequest request,
|
||||||
@RequestParam(value = "idIndikator", required = false) Integer idIndikator,
|
@RequestParam(value = "idIndikator", required = false) Integer idIndikator,
|
||||||
@RequestParam(value = "namaIndikator", required = true) String namaIndikator) throws ParseException {
|
@RequestParam(value = "namaIndikator", required = true) String namaIndikator) throws ParseException {
|
||||||
try {
|
try {
|
||||||
@ -507,7 +507,7 @@ public class IkiDanRemunerasiController extends LocaleController<IkiDanRemuneras
|
|||||||
}
|
}
|
||||||
|
|
||||||
@RequestMapping(value = "/get-duplicate-indikator-jabatan", method = RequestMethod.GET)
|
@RequestMapping(value = "/get-duplicate-indikator-jabatan", method = RequestMethod.GET)
|
||||||
public ResponseEntity<List<Map<String, Object>>> getDupIndikatorJabatan(HttpServletRequest request,
|
public ResponseEntity<List<Map<String, Object>>> getDuplikatIndikatorJabatan(HttpServletRequest request,
|
||||||
@RequestParam(value = "indikatorId", required = true) Integer idIndikator,
|
@RequestParam(value = "indikatorId", required = true) Integer idIndikator,
|
||||||
@RequestParam(value = "jabatanId", required = true) Integer idJabatan,
|
@RequestParam(value = "jabatanId", required = true) Integer idJabatan,
|
||||||
@RequestParam(value = "tglBerlaku", required = true) Long tglBerlaku) throws ParseException {
|
@RequestParam(value = "tglBerlaku", required = true) Long tglBerlaku) throws ParseException {
|
||||||
@ -601,7 +601,7 @@ public class IkiDanRemunerasiController extends LocaleController<IkiDanRemuneras
|
|||||||
}
|
}
|
||||||
|
|
||||||
@RequestMapping(value = "/get-duplicate-skoring-tindakan-medis", method = RequestMethod.GET)
|
@RequestMapping(value = "/get-duplicate-skoring-tindakan-medis", method = RequestMethod.GET)
|
||||||
public ResponseEntity<List<Map<String, Object>>> getDuplicateSkoringTindakanMedis(HttpServletRequest request,
|
public ResponseEntity<List<Map<String, Object>>> getDuplikatSkoringTindakanMedis(HttpServletRequest request,
|
||||||
@RequestParam(value = "noRec", required = false) String noRec,
|
@RequestParam(value = "noRec", required = false) String noRec,
|
||||||
@RequestParam(value = "namaProduk", required = true) String namaProduk,
|
@RequestParam(value = "namaProduk", required = true) String namaProduk,
|
||||||
@RequestParam(value = "kelompokKerjaId", required = true) Integer idKelompokKerja,
|
@RequestParam(value = "kelompokKerjaId", required = true) Integer idKelompokKerja,
|
||||||
@ -804,7 +804,7 @@ public class IkiDanRemunerasiController extends LocaleController<IkiDanRemuneras
|
|||||||
}
|
}
|
||||||
|
|
||||||
@RequestMapping(value = "/get-duplicate-kontrak-kinerja", method = RequestMethod.GET)
|
@RequestMapping(value = "/get-duplicate-kontrak-kinerja", method = RequestMethod.GET)
|
||||||
public ResponseEntity<List<Map<String, Object>>> getDuplicateKontrakKinerja(HttpServletRequest request,
|
public ResponseEntity<List<Map<String, Object>>> getDuplikatKontrakKinerja(HttpServletRequest request,
|
||||||
@RequestParam(value = "pegawaiId", required = true) Integer idPegawai,
|
@RequestParam(value = "pegawaiId", required = true) Integer idPegawai,
|
||||||
@RequestParam(value = "jabatanId", required = true) Integer idJabatan,
|
@RequestParam(value = "jabatanId", required = true) Integer idJabatan,
|
||||||
@RequestParam(value = "bulan", required = true) Long bulan,
|
@RequestParam(value = "bulan", required = true) Long bulan,
|
||||||
@ -1004,4 +1004,47 @@ public class IkiDanRemunerasiController extends LocaleController<IkiDanRemuneras
|
|||||||
return RestUtil.getJsonHttptatus(HttpStatus.CONFLICT, mapHeaderMessage);
|
return RestUtil.getJsonHttptatus(HttpStatus.CONFLICT, mapHeaderMessage);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@RequestMapping(value = "/get-bobot-jenis-by-jabatan", method = RequestMethod.GET)
|
||||||
|
public ResponseEntity<List<Map<String, Object>>> 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);
|
||||||
|
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 bobot jenis indikator by jabatan", 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 bobot jenis indikator by jabatan", jse.getMessage());
|
||||||
|
addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, jse.getMessage());
|
||||||
|
return RestUtil.getJsonHttptatus(HttpStatus.CONFLICT, mapHeaderMessage);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@RequestMapping(value = "/get-duplikat-bobot-jenis-indikator", method = RequestMethod.GET)
|
||||||
|
public ResponseEntity<List<Map<String, Object>>> getDuplikatBobotJenisIndikator(HttpServletRequest request,
|
||||||
|
@RequestParam(value = "periode", required = true) Long periode,
|
||||||
|
@RequestParam(value = "jenisIndikatorId", required = true) Integer idJenisIndikator,
|
||||||
|
@RequestParam(value = "kelompokJabatanId", required = false) Integer idKelompokJabatan)
|
||||||
|
throws ParseException {
|
||||||
|
try {
|
||||||
|
List<Map<String, Object>> result = bobotJenisIndikatorService.findBobotJenis(periode, idJenisIndikator,
|
||||||
|
idKelompokJabatan);
|
||||||
|
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 duplikat bobot jenis indikator", 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 duplikat bobot jenis indikator", jse.getMessage());
|
||||||
|
addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, jse.getMessage());
|
||||||
|
return RestUtil.getJsonHttptatus(HttpStatus.CONFLICT, mapHeaderMessage);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user