- perombakan service hitung target pelayanan

- penambahan komponen id kedudukan untuk validasi hapus data pegawai
- hapus service rekapitulasi pendapatan ruangan harian
- penyesuaian service skoring dengan penerapan tanggal pembaharuan data
- pembuatan service simpan target pelayanan triwulan
This commit is contained in:
salmanoe 2021-05-27 14:30:19 +07:00
parent 1dd28f5b6b
commit dd8c3db33b
25 changed files with 701 additions and 892 deletions

View File

@ -79,6 +79,19 @@ public class Master {
public static final Double HK_02_04_III_558_2015_5_B_C_D = 0.35; public static final Double HK_02_04_III_558_2015_5_B_C_D = 0.35;
} }
public static final class IndikatorKinerja {
public static final Integer KONSUL_EKS = 447;
public static final Integer KONSUL_GADAR = 448;
public static final Integer KONSUL_REG = 449;
public static final Integer TINDAKAN_EKS = 450;
public static final Integer TINDAKAN_GADAR = 451;
public static final Integer TINDAKAN_OPS = 452;
public static final Integer TINDAKAN_REG = 453;
public static final Integer VISITE = 454;
public static final Integer[] INDIKATOR_PELAYANAN_MEDIS = { 447, 448, 449, 454, 450, 451, 452, 453 };
}
public static final class Jabatan { public static final class Jabatan {
public static final int DIRUT_STRUKTURAL = 896; public static final int DIRUT_STRUKTURAL = 896;
public static final int DIRUT_INTERNAL = 137; public static final int DIRUT_INTERNAL = 137;

View File

@ -19,10 +19,11 @@ public interface IkiDanRemunerasiDao extends PagingAndSortingRepository<IkiDanRe
// grade_nilai_jabatan // grade_nilai_jabatan
@Query("select NEW Map ( " + "jabatanInternal.namaJabatan as namaJabatan, " @Query("select NEW Map ( " + "jabatanInternal.namaJabatan as namaJabatan, "
+ "kelompokJabatan.id as kelompokJabatanId, " + "nilaiKelompokJabatan.id as nilaiKelompokJabatan, " + "kelompokJabatan.id as kelompokJabatanId, " + "nilaiKelompokJabatan.id as nilaiKelompokJabatan, "
+ "nilaiKelompokJabatan.gradeDesc as grade, " + "pegawai.nipPns as nipPns, " + "pegawai.nipPns as nipPns, " + "nilaiKelompokJabatan.gradeDesc as grade, " + "pegawai.nipPns as nipPns, "
+ "pegawai.namaLengkap as namaLengkap, " + "pegawai.nilaiJabatan as nilaiJabatan, " + "pegawai.nipPns as nipPns, " + "pegawai.namaLengkap as namaLengkap, "
+ "golongan.id as idGolongan, " + "golongan.golonganPegawai as golongan, " + "pegawai.nilaiJabatan as nilaiJabatan, " + "golongan.id as idGolongan, "
+ "unitKerja.name as unitKerja, " + "unitKerja.id as idUnitKerja, " + "subUnitKerja.id as idSubUnitKerja, " + "golongan.golonganPegawai as golongan, " + "unitKerja.name as unitKerja, "
+ "unitKerja.id as idUnitKerja, " + "subUnitKerja.id as idSubUnitKerja, "
+ "subUnitKerja.name as subUnitKerja, " + "pegawai.id as idPegawai) " + "subUnitKerja.name as subUnitKerja, " + "pegawai.id as idPegawai) "
+ "from MapPegawaiJabatanToUnitKerja mapPegawai " + "left join mapPegawai.pegawai pegawai " + "from MapPegawaiJabatanToUnitKerja mapPegawai " + "left join mapPegawai.pegawai pegawai "
+ "left join pegawai.detailKelompokJabatan nilaiKelompokJabatan " + "left join pegawai.detailKelompokJabatan nilaiKelompokJabatan "
@ -98,22 +99,21 @@ public interface IkiDanRemunerasiDao extends PagingAndSortingRepository<IkiDanRe
public Double findRemunerasi(@Param("periode") String periode, @Param("idPegawai") Integer 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," + "uk.id as idKsm,uk.name as Ksm," @Query("select distinct new Map(pp.noRec as noRec,pp.tglPelayanan as tglPelayanan,"
+ "su.id as idKelompokKerja,su.name as kelompokKerja," + "su.id as idKelompokKerja,su.name as kelompokKerja,"
+ "pr.id as idTindakan,pr.namaProduk as namaTindakan," + "ru.id as idRuangan, pp.jumlah as jumlahTindakan) " + "pr.id as idTindakan,pr.namaProduk as namaTindakan,"
+ "ru.departemenId as idDepartemen, ru.id as idRuangan, " + "pp.jumlah as jumlahTindakan) "
+ "from PelayananPasienPetugas ppp, MapRuanganToProduk mrtp, MapPegawaiJabatanToUnitKerja mpju " + "from PelayananPasienPetugas ppp, MapRuanganToProduk mrtp, MapPegawaiJabatanToUnitKerja mpju "
+ "left join ppp.pelayananPasien pp " + "left join ppp.kdpegawai pg " + "left join pp.produk pr " + "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 pp.pasienDaftar apd " + "left join pr.detailJenisProduk djp "
+ "left join apd.pasienDaftar pd " + "left join apd.ruangan ru " + "left join apd.kelas kl " + "left join apd.pasienDaftar pd " + "left join apd.ruangan ru " + "left join mpju.subUnitKerjaPegawai su "
+ "left join pd.pasien ps " + "left join pd.kelompokPasien kps " + "left join mrtp.ruangan ru1 "
+ "left join mpju.unitKerjaPegawai uk " + "left join mpju.subUnitKerjaPegawai su "
+ "where mrtp.produkId = pr.id " + "and mrtp.ruanganId = apd.ruanganId " + "where mrtp.produkId = pr.id " + "and mrtp.ruanganId = apd.ruanganId "
+ "and ppp.kdpegawai = mpju.pegawai " + "and mpju.pegawaiId = pg.id " + "and ppp.kdpegawai = mpju.pegawai " + "and mpju.pegawaiId = pg.id "
+ "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 uk.statusEnabled is true " + "and mpju.statusEnabled is true " + "and pg.statusEnabled is true " + "and su.statusEnabled is true "
+ "and su.statusEnabled is true " + "and pp.tglPelayanan between :tglAwal and :tglAkhir " + "and pd.statusEnabled is true " + "and pp.tglPelayanan between :tglAwal and :tglAkhir "
+ "and pg.jenisPegawaiId = :dokterId " + "and djp.jenisProdukId not in (:listNontindakanId) " + "and pg.jenisPegawaiId = :dokterId " + "and djp.jenisProdukId not in (:listNontindakanId) "
+ "and pr.id <> :karcisId") + "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,
@Param("dokterId") Integer dokterId, @Param("listKsmId") List<Integer> listKsmId, @Param("dokterId") Integer dokterId, @Param("listKsmId") List<Integer> listKsmId,
@Param("listNontindakanId") List<Integer> listNontindakanId, @Param("karcisId") Integer karcisId); @Param("listNontindakanId") List<Integer> listNontindakanId, @Param("karcisId") Integer karcisId);

View File

@ -71,7 +71,7 @@ public interface IndikatorKinerjaDao extends PagingAndSortingRepository<Indikato
@Param("namaIndikator") String namaIndikator); @Param("namaIndikator") String namaIndikator);
@Query("select new Map(ik.id as id,ik.namaIndikator as namaIndikator) " + "from IndikatorKinerja ik " @Query("select new Map(ik.id as id,ik.namaIndikator as namaIndikator) " + "from IndikatorKinerja ik "
+ "where ik.statusEnabled is true " + "and ik.id in (:listIdDup)") + "where ik.statusEnabled is true " + "and ik.id in (:listIdIndikator)")
List<Map<String, Object>> findAllDup(@Param("listIdDup") List<Integer> listIdDup); List<Map<String, Object>> findIndikator(@Param("listIdIndikator") List<Integer> listIdIndikator);
} }

View File

@ -386,9 +386,10 @@ public interface PegawaiDao extends PagingAndSortingRepository<Pegawai, Integer>
+ "jabatanFungsional.namaJabatan as namaJabatan," + "jabatanLamar.namaJabatan as jabatanLamar," + "jabatanFungsional.namaJabatan as namaJabatan," + "jabatanLamar.namaJabatan as jabatanLamar,"
+ "jabatanStruktural.namaJabatan as jabatanStruktural," + "jenisKelamin.jenisKelamin as jenisKelamin," + "jabatanStruktural.namaJabatan as jabatanStruktural," + "jenisKelamin.jenisKelamin as jenisKelamin,"
+ "jenisPegawai.jenisPegawai as jenisPegawai," + "jenisPegawaiLamar.jenisPegawai as jenisPegawaiLamar," + "jenisPegawai.jenisPegawai as jenisPegawai," + "jenisPegawaiLamar.jenisPegawai as jenisPegawaiLamar,"
+ "kategoriPegawai.kategoryPegawai as kategoriPegawai," + "kedudukan.name as kedudukan," + "kategoriPegawai.kategoryPegawai as kategoriPegawai," + "kedudukan.id as kedudukanId,"
+ "kualifikasiJurusan.kualifikasiJurusan as kualifikasiJurusan," + "negara.namaNegara as namaNegara," + "kedudukan.name as kedudukan," + "kualifikasiJurusan.kualifikasiJurusan as kualifikasiJurusan,"
+ "pangkat.namaPangkat as namaPangkat," + "pendidikan.namaPendidikan as namaPendidikan," + "negara.namaNegara as namaNegara," + "pangkat.namaPangkat as namaPangkat,"
+ "pendidikan.namaPendidikan as namaPendidikan,"
+ "penghasilanTidakKenaPajak.deskripsi as penghasilanTidakKenaPajak," + "penghasilanTidakKenaPajak.deskripsi as penghasilanTidakKenaPajak,"
+ "pegawai.totalNilaiScore as totalNilaiScore," + "pegawai.tunjanganFungsional as tunjanganFungsional," + "pegawai.totalNilaiScore as totalNilaiScore," + "pegawai.tunjanganFungsional as tunjanganFungsional,"
+ "pegawai.tunjanganPapua as tunjanganPapua," + "pegawai.tunjanganUmum as tunjanganUmum," + "pegawai.tunjanganPapua as tunjanganPapua," + "pegawai.tunjanganUmum as tunjanganUmum,"

View File

@ -140,20 +140,6 @@ public interface PelayananPasienDao extends PagingAndSortingRepository<Pelayanan
+ "from Pasien pasien " + "left join pasien.alamats alamat " + "where pasien.id = :noCm") + "from Pasien pasien " + "left join pasien.alamats alamat " + "where pasien.id = :noCm")
Map<String, Object> getDataPasienMeninggal(@Param("noCm") Integer noCm); Map<String, Object> getDataPasienMeninggal(@Param("noCm") Integer noCm);
@Query("select distinct new Map(pp.noRec as noRec,pp.tglPelayanan as tglPelayanan,"
+ "pr.id as idProduk,pr.namaProduk as namaProduk,"
+ "dp.id as idDepartemen, dp.namaDepartemen as namaDepartemen,"
+ "ru.id as idRuangan,ru.namaRuangan as namaRuangan,"
+ "jp.id as idJenisProduk,pp.jumlah as jumlahTindakan,pp.hargaJual as hargaJual,pp.hargaDiscount as hargaDiskon) "
+ "from PelayananPasien pp, MapRuanganToProduk mrtp " + "left join pp.produk pr "
+ "left join pp.pasienDaftar apd " + "left join pr.detailJenisProduk djp " + "left join apd.ruangan ru "
+ "left join ru.departemen dp " + "left join djp.jenisProduk jp " + "where mrtp.produkId = pr.id "
+ "and mrtp.ruanganId = apd.ruanganId " + "and mrtp.statusEnabled is true "
+ "and pp.tglPelayanan between :tglAwal " + "and :tglAkhir "
+ "and djp.jenisProdukId not in (:listNontindakanId) " + "order by dp.id, ru.id")
List<Map<String, Object>> findDataLayananAllRuangan(@Param("tglAwal") Date tglAwal,
@Param("tglAkhir") Date tglAkhir, @Param("listNontindakanId") List<Integer> listNontindakanId);
@Query("select new Map(" + "pg.id as idPegawai, " + "pg.namaLengkap as namaPegawai, " @Query("select new Map(" + "pg.id as idPegawai, " + "pg.namaLengkap as namaPegawai, "
+ "pg.typePegawaiId as tipePegawai, " + "kp.id as idKelPasien, " + "pr.id as idLayanan, " + "pg.typePegawaiId as tipePegawai, " + "kp.id as idKelPasien, " + "pr.id as idLayanan, "
+ "pr.namaProduk as namaLayanan, " + "ru.departemenId as idDepartemen, " + "pr.namaProduk as namaLayanan, " + "ru.departemenId as idDepartemen, "

View File

@ -1,5 +1,6 @@
package com.jasamedika.medifirst2000.dao; package com.jasamedika.medifirst2000.dao;
import java.util.Date;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@ -19,7 +20,7 @@ public interface SkoringTindakanMedisDao extends PagingAndSortingRepository<Skor
+ "stm.skor as skor," + "stm.statusVerifikasi as isStatusVerifikasi," + "stm.skor as skor," + "stm.statusVerifikasi as isStatusVerifikasi,"
+ "(case when stm.statusVerifikasi is false then 'Belum Terverifikasi' " + "(case when stm.statusVerifikasi is false then 'Belum Terverifikasi' "
+ "when stm.statusVerifikasi is true then 'Terverifikasi' end) as statusVerifikasi," + "when stm.statusVerifikasi is true then 'Terverifikasi' end) as statusVerifikasi,"
+ "stm.tanggalMulaiBerlaku as tglMulaiBerlaku) " + "from SkoringTindakanMedis stm " + "stm.tanggalPembaharuanData as tglPembaharuanData) " + "from SkoringTindakanMedis stm "
+ "inner join stm.produk pr " + "inner join stm.kelompokKerja sk " + "inner join sk.unitKerja uk " + "inner join stm.produk pr " + "inner join stm.kelompokKerja sk " + "inner join sk.unitKerja uk "
+ "where stm.statusEnabled is true"; + "where stm.statusEnabled is true";
@ -31,7 +32,7 @@ public interface SkoringTindakanMedisDao extends PagingAndSortingRepository<Skor
String statusVerifikasi = " and stm.statusVerifikasi = :isStatusVerifikasi"; String statusVerifikasi = " and stm.statusVerifikasi = :isStatusVerifikasi";
String sortSearch = " order by sk.name asc,pr.namaProduk asc,stm.detailProduk asc,stm.tanggalMulaiBerlaku desc"; String sortSearch = " order by sk.name asc,pr.namaProduk asc,stm.detailProduk asc,stm.tanggalPembaharuanData desc";
@Query(strAllEnabled + sortSearch) @Query(strAllEnabled + sortSearch)
List<Map<String, Object>> findAllEnabled(); List<Map<String, Object>> findAllEnabled();
@ -73,25 +74,28 @@ public interface SkoringTindakanMedisDao extends PagingAndSortingRepository<Skor
@Param("isStatusVerifikasi") Boolean statusVerifikasi); @Param("isStatusVerifikasi") Boolean statusVerifikasi);
@Query(strAllEnabled + kelompokKerja + produk + detailProduk + sortSearch) @Query(strAllEnabled + kelompokKerja + produk + detailProduk + sortSearch)
List<Map<String, Object>> findAllEnabledByUnitProdukDetail(@Param("listSubunitKerjaId") List<Integer> listIdKelompokKerja, List<Map<String, Object>> findAllEnabledByUnitProdukDetail(
@Param("namaProduk") String namaProduk, @Param("detailProduk") String detailProduk); @Param("listSubunitKerjaId") List<Integer> listIdKelompokKerja, @Param("namaProduk") String namaProduk,
@Param("detailProduk") String detailProduk);
@Query(strAllEnabled + kelompokKerja + produk + statusVerifikasi + sortSearch) @Query(strAllEnabled + kelompokKerja + produk + statusVerifikasi + sortSearch)
List<Map<String, Object>> findAllEnabledByUnitProdukVerif(@Param("listSubunitKerjaId") List<Integer> listIdKelompokKerja, List<Map<String, Object>> findAllEnabledByUnitProdukVerif(
@Param("namaProduk") String namaProduk, @Param("isStatusVerifikasi") Boolean statusVerifikasi); @Param("listSubunitKerjaId") List<Integer> listIdKelompokKerja, @Param("namaProduk") String namaProduk,
@Param("isStatusVerifikasi") Boolean statusVerifikasi);
@Query(strAllEnabled + kelompokKerja + detailProduk + statusVerifikasi + sortSearch) @Query(strAllEnabled + kelompokKerja + detailProduk + statusVerifikasi + sortSearch)
List<Map<String, Object>> findAllEnabledByUnitDetailVerif(@Param("listSubunitKerjaId") List<Integer> listIdKelompokKerja, List<Map<String, Object>> findAllEnabledByUnitDetailVerif(
@Param("detailProduk") String detailProduk, @Param("isStatusVerifikasi") Boolean statusVerifikasi); @Param("listSubunitKerjaId") List<Integer> listIdKelompokKerja, @Param("detailProduk") String detailProduk,
@Param("isStatusVerifikasi") Boolean statusVerifikasi);
@Query(strAllEnabled + produk + detailProduk + statusVerifikasi + sortSearch) @Query(strAllEnabled + produk + detailProduk + statusVerifikasi + sortSearch)
List<Map<String, Object>> findAllEnabledByProdukDetailVerif(@Param("namaProduk") String namaProduk, List<Map<String, Object>> findAllEnabledByProdukDetailVerif(@Param("namaProduk") String namaProduk,
@Param("detailProduk") String detailProduk, @Param("isStatusVerifikasi") Boolean statusVerifikasi); @Param("detailProduk") String detailProduk, @Param("isStatusVerifikasi") Boolean statusVerifikasi);
@Query(strAllEnabled + kelompokKerja + produk + detailProduk + statusVerifikasi + sortSearch) @Query(strAllEnabled + kelompokKerja + produk + detailProduk + statusVerifikasi + sortSearch)
List<Map<String, Object>> findAllEnabledByUnitProdukDetailVerif(@Param("listSubunitKerjaId") List<Integer> listIdKelompokKerja, List<Map<String, Object>> findAllEnabledByUnitProdukDetailVerif(
@Param("namaProduk") String namaProduk, @Param("detailProduk") String detailProduk, @Param("listSubunitKerjaId") List<Integer> listIdKelompokKerja, @Param("namaProduk") String namaProduk,
@Param("isStatusVerifikasi") Boolean statusVerifikasi); @Param("detailProduk") String detailProduk, @Param("isStatusVerifikasi") Boolean statusVerifikasi);
String strCekDupSkoring = "select stm.noRec " + "from SkoringTindakanMedis stm " + "inner join stm.produk pd " String strCekDupSkoring = "select stm.noRec " + "from SkoringTindakanMedis stm " + "inner join stm.produk pd "
+ "where stm.statusEnabled is true " + "where stm.statusEnabled is true "
@ -116,4 +120,12 @@ public interface SkoringTindakanMedisDao extends PagingAndSortingRepository<Skor
+ "where stm.statusEnabled is true " + "and stm.noRec in (:listNorec)") + "where stm.statusEnabled is true " + "and stm.noRec in (:listNorec)")
List<Map<String, Object>> findAllDup(@Param("listNorec") List<String> listNorec); List<Map<String, Object>> findAllDup(@Param("listNorec") List<String> listNorec);
@Query("select new Map(sk.id as kelompokKerjaId,sk.name as kelompokKerja,"
+ "stm.produkId as produkId,stm.skor as skor,"
+ "stm.tanggalMulaiBerlaku as tglBerlaku,stm.tanggalPembaharuanData as tglPembaharuanData) "
+ "from SkoringTindakanMedis stm " + "inner join stm.kelompokKerja sk "
+ "where stm.statusEnabled is true and stm.statusVerifikasi is true " + "and sk.statusEnabled is true "
+ "order by sk.name asc, stm.produkId asc, stm.tanggalPembaharuanData desc")
List<Map<String, Object>> findLatestActiveSkor();
} }

View File

@ -28,6 +28,11 @@ public interface SubUnitKerjaDao extends PagingAndSortingRepository<SubUnitKerja
+ "and p.id = :idPegawai") + "and p.id = :idPegawai")
Integer getByIdPegawai(@Param("idPegawai") Integer idPegawai); Integer getByIdPegawai(@Param("idPegawai") Integer idPegawai);
@Query("select new Map(model.id as id, model.name as name, model.unitKerjaId as unitKerjaId) "
+ "from SubUnitKerjaPegawai model " + "where model.statusEnabled is true "
+ "and model.id in (:listSubunitKerjaId) " + "order by model.name")
List<Map<String, Object>> findSubunitKerja(@Param("listSubunitKerjaId") List<Integer> listIdSubunitKerja);
@Query("select new Map(model.id as id, model.name as namaSubunitKerja) " + "from SubUnitKerjaPegawai model " @Query("select new Map(model.id as id, model.name as namaSubunitKerja) " + "from SubUnitKerjaPegawai model "
+ "where model.statusEnabled is true and model.unitKerjaId=:idUnitKerjaPegawai " + "order by model.name") + "where model.statusEnabled is true and model.unitKerjaId=:idUnitKerjaPegawai " + "order by model.name")
List<Map<String, Object>> getSubunitKerjaByUnitKerja(@Param("idUnitKerjaPegawai") Integer idUnitKerjaPegawai); List<Map<String, Object>> getSubunitKerjaByUnitKerja(@Param("idUnitKerjaPegawai") Integer idUnitKerjaPegawai);

View File

@ -13,12 +13,13 @@ import com.jasamedika.medifirst2000.entities.TargetLayanan;
@Repository("targetLayananDao") @Repository("targetLayananDao")
public interface TargetLayananDao extends CrudRepository<TargetLayanan, String> { public interface TargetLayananDao extends CrudRepository<TargetLayanan, String> {
@Query("select new Map(tl.subUnitKerjaPegawaiId as idSubunit," @Query("select new Map(sk.id as kelompokKerjaId," + "ikm.id as indikatorId,"
+ "tl.targetOperasi as targetOperasi,tl.targetNonoperasi as targetNonoperasi," + "tl.target as target,to_char(tl.periode,'yyyy-MM') as periode,tl.tglHitung as tglHitung) "
+ "tl.targetVisite as targetVisite,tl.targetKonsultasi as targetKonsultasi," + "from TargetLayanan tl " + "inner join tl.subUnitKerjaPegawai sk " + "inner join tl.indikator ikm "
+ "to_char(tl.periode,'yyyy-MM') as periode,max(tl.tglHitung) as lastTglHitung) " + "from TargetLayanan tl " + "where sk.statusEnabled is true " + "and ikm.statusEnabled is true and ikm.statusVerifikasi is true "
+ "where to_char(tl.periode,'yyyy-MM') between :tglAwal and :tglAkhir " + "and to_char(tl.periode,'yyyy-MM') between :tglAwal and :tglAkhir "
+ "group by tl.subUnitKerjaPegawaiId, tl.targetOperasi, tl.targetNonoperasi, tl.targetVisite, tl.targetKonsultasi, to_char(periode,'yyyy-MM')") + "order by sk.name, tl.tglHitung desc")
public List<Map<String, Object>> getLastTargetLayanan(@Param("tglAwal") String tglAwal, @Param("tglAkhir") String tglAkhir); public List<Map<String, Object>> getLastTargetLayanan(@Param("tglAwal") String tglAwal,
@Param("tglAkhir") String tglAkhir);
} }

View File

@ -329,9 +329,10 @@ public class PegawaiDaoCustomImpl extends CoreDaoImpl<Pegawai> implements Pegawa
+ "jabatanFungsional.namaJabatan as namaJabatan," + "jabatanLamar.namaJabatan as jabatanLamar," + "jabatanFungsional.namaJabatan as namaJabatan," + "jabatanLamar.namaJabatan as jabatanLamar,"
+ "jabatanStruktural.namaJabatan as jabatanStruktural," + "jenisKelamin.jenisKelamin as jenisKelamin," + "jabatanStruktural.namaJabatan as jabatanStruktural," + "jenisKelamin.jenisKelamin as jenisKelamin,"
+ "jenisPegawai.jenisPegawai as jenisPegawai," + "jenisPegawaiLamar.jenisPegawai as jenisPegawaiLamar," + "jenisPegawai.jenisPegawai as jenisPegawai," + "jenisPegawaiLamar.jenisPegawai as jenisPegawaiLamar,"
+ "kategoriPegawai.kategoryPegawai as kategoriPegawai," + "kedudukan.name as kedudukan," + "kategoriPegawai.kategoryPegawai as kategoriPegawai," + "kedudukan.id as kedudukanId,"
+ "kualifikasiJurusan.kualifikasiJurusan as kualifikasiJurusan," + "negara.namaNegara as namaNegara," + "kedudukan.name as kedudukan," + "kualifikasiJurusan.kualifikasiJurusan as kualifikasiJurusan,"
+ "pangkat.namaPangkat as namaPangkat," + "pendidikan.namaPendidikan as namaPendidikan," + "negara.namaNegara as namaNegara," + "pangkat.namaPangkat as namaPangkat,"
+ "pendidikan.namaPendidikan as namaPendidikan,"
+ "penghasilanTidakKenaPajak.deskripsi as penghasilanTidakKenaPajak," + "penghasilanTidakKenaPajak.deskripsi as penghasilanTidakKenaPajak,"
+ "pegawai.totalNilaiScore as totalNilaiScore," + "pegawai.tunjanganFungsional as tunjanganFungsional," + "pegawai.totalNilaiScore as totalNilaiScore," + "pegawai.tunjanganFungsional as tunjanganFungsional,"
+ "pegawai.tunjanganPapua as tunjanganPapua," + "pegawai.tunjanganUmum as tunjanganUmum," + "pegawai.tunjanganPapua as tunjanganPapua," + "pegawai.tunjanganUmum as tunjanganUmum,"
@ -470,9 +471,10 @@ public class PegawaiDaoCustomImpl extends CoreDaoImpl<Pegawai> implements Pegawa
+ "jabatanFungsional.namaJabatan as namaJabatan," + "jabatanLamar.namaJabatan as jabatanLamar," + "jabatanFungsional.namaJabatan as namaJabatan," + "jabatanLamar.namaJabatan as jabatanLamar,"
+ "jabatanStruktural.namaJabatan as jabatanStruktural," + "jenisKelamin.jenisKelamin as jenisKelamin," + "jabatanStruktural.namaJabatan as jabatanStruktural," + "jenisKelamin.jenisKelamin as jenisKelamin,"
+ "jenisPegawai.jenisPegawai as jenisPegawai," + "jenisPegawaiLamar.jenisPegawai as jenisPegawaiLamar," + "jenisPegawai.jenisPegawai as jenisPegawai," + "jenisPegawaiLamar.jenisPegawai as jenisPegawaiLamar,"
+ "kategoriPegawai.kategoryPegawai as kategoriPegawai," + "kedudukan.name as kedudukan," + "kategoriPegawai.kategoryPegawai as kategoriPegawai," + "kedudukan.id as kedudukanId,"
+ "kualifikasiJurusan.kualifikasiJurusan as kualifikasiJurusan," + "negara.namaNegara as namaNegara," + "kedudukan.name as kedudukan," + "kualifikasiJurusan.kualifikasiJurusan as kualifikasiJurusan,"
+ "pangkat.namaPangkat as namaPangkat," + "pendidikan.namaPendidikan as namaPendidikan," + "negara.namaNegara as namaNegara," + "pangkat.namaPangkat as namaPangkat,"
+ "pendidikan.namaPendidikan as namaPendidikan,"
+ "penghasilanTidakKenaPajak.deskripsi as penghasilanTidakKenaPajak," + "penghasilanTidakKenaPajak.deskripsi as penghasilanTidakKenaPajak,"
+ "pegawai.totalNilaiScore as totalNilaiScore," + "pegawai.tunjanganFungsional as tunjanganFungsional," + "pegawai.totalNilaiScore as totalNilaiScore," + "pegawai.tunjanganFungsional as tunjanganFungsional,"
+ "pegawai.tunjanganPapua as tunjanganPapua," + "pegawai.tunjanganUmum as tunjanganUmum," + "pegawai.tunjanganPapua as tunjanganPapua," + "pegawai.tunjanganUmum as tunjanganUmum,"

View File

@ -29,8 +29,6 @@ public interface IkiDanRemunerasiService {
public Map<String, Object> savePirDanIku(List<SettingPirSdmVO> vo); public Map<String, Object> savePirDanIku(List<SettingPirSdmVO> vo);
public List<Map<String, Object>> calculateTargetLayananBulanan(); public List<Map<String, Object>> findAllTargetCapaianLayanan(String strPeriode, Integer jmlBulan) throws ParseException;
public List<Map<String, Object>> findAllTargetCapaianLayanan(String strPeriode) throws ParseException;
} }

View File

@ -14,8 +14,6 @@ public interface PelayananPasienService {
Map<String, Object> findTindakanPasienMeninggal(Integer noCm); Map<String, Object> findTindakanPasienMeninggal(Integer noCm);
List<Map<String, Object>> getRekapPendapatanAllRuangan(String tglAwal, String tglAkhir) throws ParseException;
List<Map<String, Object>> hitungRemunerasiDokterDenganFfs(String tglAwal, String tglAkhir); List<Map<String, Object>> hitungRemunerasiDokterDenganFfs(String tglAwal, String tglAkhir);
List<String> updateKlaimDiskonKaryawan(String noRegistrasi, Double totalKlaim); List<String> updateKlaimDiskonKaryawan(String noRegistrasi, Double totalKlaim);

View File

@ -1,13 +1,18 @@
package com.jasamedika.medifirst2000.service; package com.jasamedika.medifirst2000.service;
import java.text.ParseException;
import java.util.List; import java.util.List;
import java.util.Map;
import org.springframework.orm.jpa.JpaSystemException;
import com.jasamedika.medifirst2000.entities.TargetLayanan; import com.jasamedika.medifirst2000.entities.TargetLayanan;
import com.jasamedika.medifirst2000.exception.ServiceVOException;
import com.jasamedika.medifirst2000.vo.TargetLayananCustomVO;
import com.jasamedika.medifirst2000.vo.TargetLayananVO; import com.jasamedika.medifirst2000.vo.TargetLayananVO;
public interface TargetLayananService extends BaseVoService<TargetLayanan, TargetLayananVO, String> { public interface TargetLayananService extends BaseVoService<TargetLayanan, TargetLayananVO, String> {
Map<String, Object> addAll(List<TargetLayananVO> vos); List<String> addAll(List<TargetLayananCustomVO> vos)
throws JpaSystemException, ServiceVOException, ParseException;
} }

View File

@ -9,8 +9,10 @@ import java.util.Date;
import java.util.HashMap; import java.util.HashMap;
import java.util.HashSet; import java.util.HashSet;
import java.util.List; import java.util.List;
import java.util.Locale;
import java.util.Map; import java.util.Map;
import java.util.Set; import java.util.Set;
import java.util.stream.Collectors;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -19,11 +21,14 @@ import org.springframework.transaction.annotation.Transactional;
import com.jasamedika.medifirst2000.constants.Master; import com.jasamedika.medifirst2000.constants.Master;
import com.jasamedika.medifirst2000.converter.BaseConverterImpl; import com.jasamedika.medifirst2000.converter.BaseConverterImpl;
import com.jasamedika.medifirst2000.dao.IkiDanRemunerasiDao; import com.jasamedika.medifirst2000.dao.IkiDanRemunerasiDao;
import com.jasamedika.medifirst2000.dao.IndikatorKinerjaDao;
import com.jasamedika.medifirst2000.dao.MonitoringAbsenDao; import com.jasamedika.medifirst2000.dao.MonitoringAbsenDao;
import com.jasamedika.medifirst2000.dao.RunningNumberDao; import com.jasamedika.medifirst2000.dao.RunningNumberDao;
import com.jasamedika.medifirst2000.dao.SettingPirSdmDao; import com.jasamedika.medifirst2000.dao.SettingPirSdmDao;
import com.jasamedika.medifirst2000.dao.SkoringTindakanMedisDao;
import com.jasamedika.medifirst2000.dao.StrukHistoriDao; import com.jasamedika.medifirst2000.dao.StrukHistoriDao;
import com.jasamedika.medifirst2000.dao.StrukPelayananDao; import com.jasamedika.medifirst2000.dao.StrukPelayananDao;
import com.jasamedika.medifirst2000.dao.SubUnitKerjaDao;
import com.jasamedika.medifirst2000.dao.TargetLayananDao; import com.jasamedika.medifirst2000.dao.TargetLayananDao;
import com.jasamedika.medifirst2000.entities.EvaluasiJabatan; import com.jasamedika.medifirst2000.entities.EvaluasiJabatan;
import com.jasamedika.medifirst2000.entities.IkiDanRemunerasi; import com.jasamedika.medifirst2000.entities.IkiDanRemunerasi;
@ -52,7 +57,7 @@ import com.jasamedika.medifirst2000.vo.SuratKeputusanVO;
import com.jasamedika.medifirst2000.vo.UnitKerjaPegawaiVO; import com.jasamedika.medifirst2000.vo.UnitKerjaPegawaiVO;
@Service("IkiDanRemunerasiService") @Service("IkiDanRemunerasiService")
public class IkiDanRemunerasiServiceImpl implements IkiDanRemunerasiService { public class IkiDanRemunerasiServiceImpl extends BaseVoServiceImpl implements IkiDanRemunerasiService {
@Autowired @Autowired
private IkiDanRemunerasiDao ikiDanRemunerasiDao; private IkiDanRemunerasiDao ikiDanRemunerasiDao;
@ -66,6 +71,27 @@ public class IkiDanRemunerasiServiceImpl implements IkiDanRemunerasiService {
@Autowired @Autowired
private SettingPirSdmDao settingPirSdmDao; private SettingPirSdmDao settingPirSdmDao;
@Autowired
private RunningNumberDao runningNumberDao;
@Autowired
private StrukHistoriDao strukHistoriDao;
@Autowired
private BaseConverterImpl<StrukHistoriVO, StrukHistori> strukHistoriConverter;
@Autowired
private TargetLayananDao targetLayananDao;
@Autowired
private SkoringTindakanMedisDao skoringTindakanMedisDao;
@Autowired
private IndikatorKinerjaDao indikatorKinerjaDao;
@Autowired
private SubUnitKerjaDao subunitKerjaDao;
@Autowired @Autowired
private BaseConverterImpl<IkiDanRemunerasiVO, IkiDanRemunerasi> ikiDanRemunerasiConverter; private BaseConverterImpl<IkiDanRemunerasiVO, IkiDanRemunerasi> ikiDanRemunerasiConverter;
@ -90,18 +116,6 @@ public class IkiDanRemunerasiServiceImpl implements IkiDanRemunerasiService {
@Autowired @Autowired
private BaseConverterImpl<PegawaiVO, Pegawai> pegawaiConverter; private BaseConverterImpl<PegawaiVO, Pegawai> pegawaiConverter;
@Autowired
private RunningNumberDao runningNumberDao;
@Autowired
private StrukHistoriDao strukHistoriDao;
@Autowired
private BaseConverterImpl<StrukHistoriVO, StrukHistori> strukHistoriConverter;
@Autowired
private TargetLayananDao targetLayananDao;
@Override @Override
public Map<String, Object> loadData() { public Map<String, Object> loadData() {
Map<String, Object> result = new HashMap<>(); Map<String, Object> result = new HashMap<>();
@ -433,158 +447,15 @@ public class IkiDanRemunerasiServiceImpl implements IkiDanRemunerasiService {
} }
@Override @Override
public List<Map<String, Object>> calculateTargetLayananBulanan() { public List<Map<String, Object>> findAllTargetCapaianLayanan(String strPeriode, Integer jmlBulan)
List<Map<String, Object>> result = new ArrayList<>(); throws ParseException {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM");
// setting_checking_perimeter
Calendar bulan3 = Calendar.getInstance();
bulan3.add(Calendar.MONTH, -3);
Calendar bulan2 = Calendar.getInstance();
bulan2.add(Calendar.MONTH, -2);
Calendar bulan1 = Calendar.getInstance();
bulan1.add(Calendar.MONTH, -1);
// get_three_month_earlier
Calendar calTglAwal = Calendar.getInstance();
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, -3);
// get_last_month
Calendar calTglAkhir = Calendar.getInstance();
calTglAkhir.set(Calendar.HOUR_OF_DAY, 23);
calTglAkhir.set(Calendar.MINUTE, 59);
calTglAkhir.set(Calendar.SECOND, 0);
calTglAkhir.add(Calendar.MONTH, -1);
calTglAkhir.set(Calendar.DAY_OF_MONTH, calTglAkhir.getActualMaximum(Calendar.DAY_OF_MONTH));
List<Map<String, Object>> dataLayanan = ikiDanRemunerasiDao.getDataLayanan(calTglAwal.getTime(),
calTglAkhir.getTime(), Master.JenisPegawai.DOKTER, Arrays.asList(Master.UnitKerja.KSM),
Arrays.asList(Master.JenisProduk.NONTINDAKAN), Master.Produk.KARCIS);
// get_kategori_bulan
List<String> listBulanPelayanan = new ArrayList<>();
for (Map<String, Object> dat : dataLayanan) {
if (!listBulanPelayanan.contains(sdf.format(dat.get("tglPelayanan")))) {
listBulanPelayanan.add(sdf.format(dat.get("tglPelayanan")));
}
}
// get_kategori_kelompok_kerja
List<Integer> listIdKK = new ArrayList<>();
List<Map<String, Object>> listKK = new ArrayList<>();
for (Map<String, Object> map : dataLayanan) {
if (!listIdKK.contains(map.get("idKelompokKerja"))) {
listIdKK.add(Integer.parseInt(map.get("idKelompokKerja").toString()));
Map<String, Object> mapKK = new HashMap<>();
mapKK.put("idKsm", map.get("idKsm"));
mapKK.put("namaKsm", map.get("Ksm"));
mapKK.put("id", map.get("idKelompokKerja"));
mapKK.put("name", map.get("kelompokKerja"));
listKK.add(mapKK);
}
}
for (Map<String, Object> kk : listKK) {
Map<String, Object> mapping = new HashMap<>();
for (String bln : listBulanPelayanan) {
Double countKonsul = 0.0;
Double countVisit = 0.0;
Double countOperasi = 0.0;
Double countNonoperasi = 0.0;
for (Map<String, Object> dat : dataLayanan) {
if (dat.get("idKelompokKerja").equals(kk.get("id"))
&& sdf.format(dat.get("tglPelayanan")).equals(bln)) {
if (dat.get("namaTindakan").toString().toLowerCase().contains(Master.KONSUL)) {
countKonsul = countKonsul + Double.parseDouble(dat.get("jumlahTindakan").toString());
} else if (dat.get("namaTindakan").toString().toLowerCase()
.contains(Master.VISIT)) {
countVisit = countVisit + Double.parseDouble(dat.get("jumlahTindakan").toString());
} else if (dat.get("idRuangan").equals(Master.Ruangan.OK)) {
countOperasi = countOperasi + Double.parseDouble(dat.get("jumlahTindakan").toString());
} else {
countNonoperasi = countNonoperasi
+ Double.parseDouble(dat.get("jumlahTindakan").toString());
}
}
}
if (sdf.format(bulan3.getTime()).equals(bln)) {
mapping.put("capaianKonsulBulan3", countKonsul.intValue());
mapping.put("capaianVisitBulan3", countVisit.intValue());
mapping.put("capaianOperasiBulan3", countOperasi.intValue());
mapping.put("capaianNonoperasiBulan3", countNonoperasi.intValue());
} else if (sdf.format(bulan2.getTime()).equals(bln)) {
mapping.put("capaianKonsulBulan2", countKonsul.intValue());
mapping.put("capaianVisitBulan2", countVisit.intValue());
mapping.put("capaianOperasiBulan2", countOperasi.intValue());
mapping.put("capaianNonoperasiBulan2", countNonoperasi.intValue());
} else if (sdf.format(bulan1.getTime()).equals(bln)) {
mapping.put("capaianKonsulBulan1", countKonsul.intValue());
mapping.put("capaianVisitBulan1", countVisit.intValue());
mapping.put("capaianOperasiBulan1", countOperasi.intValue());
mapping.put("capaianNonoperasiBulan1", countNonoperasi.intValue());
}
}
Integer targetKonsulBulan = (int) Math
.floor((Integer.parseInt(mapping.get("capaianKonsulBulan3").toString())
+ Integer.parseInt(mapping.get("capaianKonsulBulan2").toString())
+ Integer.parseInt(mapping.get("capaianKonsulBulan1").toString())) / 3);
Integer targetVisitBulan = (int) Math.floor((Integer.parseInt(mapping.get("capaianVisitBulan3").toString())
+ Integer.parseInt(mapping.get("capaianVisitBulan2").toString())
+ Integer.parseInt(mapping.get("capaianVisitBulan1").toString())) / 3);
Integer targetOperasiBulan = (int) Math
.floor((Integer.parseInt(mapping.get("capaianOperasiBulan3").toString())
+ Integer.parseInt(mapping.get("capaianOperasiBulan2").toString())
+ Integer.parseInt(mapping.get("capaianOperasiBulan1").toString())) / 3);
Integer targetNonoperasiBulan = (int) Math
.floor((Integer.parseInt(mapping.get("capaianNonoperasiBulan3").toString())
+ Integer.parseInt(mapping.get("capaianNonoperasiBulan2").toString())
+ Integer.parseInt(mapping.get("capaianNonoperasiBulan1").toString())) / 3);
mapping.put("targetKonsulBulan", targetKonsulBulan);
mapping.put("targetVisitBulan", targetVisitBulan);
mapping.put("targetOperasiBulan", targetOperasiBulan);
mapping.put("targetNonoperasiBulan", targetNonoperasiBulan);
Map<String, Object> mapKsm = new HashMap<>();
mapKsm.put("id", kk.get("idKsm"));
mapKsm.put("name", kk.get("namaKsm"));
Map<String, Object> mapKk = new HashMap<>();
mapKk.put("id", kk.get("id"));
mapKk.put("name", kk.get("name"));
mapping.put("unitKerjaPegawai", mapKsm);
mapping.put("subUnitKerjaPegawai", mapKk);
result.add(mapping);
}
return result;
}
@Override
public List<Map<String, Object>> findAllTargetCapaianLayanan(String strPeriode) throws ParseException {
List<Map<String, Object>> result = new ArrayList<>(); List<Map<String, Object>> result = new ArrayList<>();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM"); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM");
SimpleDateFormat sdfINA = new SimpleDateFormat("MMMM yyyy", new Locale("in", "ID"));
Date periode = sdf.parse(strPeriode); Date periode = sdf.parse(strPeriode);
// setting_checking_perimeter
Calendar bulan3 = Calendar.getInstance();
bulan3.setTime(periode);
bulan3.add(Calendar.MONTH, -3);
Calendar bulan2 = Calendar.getInstance();
bulan2.setTime(periode);
bulan2.add(Calendar.MONTH, -2);
Calendar bulan1 = Calendar.getInstance();
bulan1.setTime(periode);
bulan1.add(Calendar.MONTH, -1);
// get_three_month_earlier // get_three_month_earlier
Calendar calTglAwal = Calendar.getInstance(); Calendar calTglAwal = Calendar.getInstance();
calTglAwal.setTime(periode); calTglAwal.setTime(periode);
@ -592,7 +463,7 @@ public class IkiDanRemunerasiServiceImpl implements IkiDanRemunerasiService {
calTglAwal.set(Calendar.MINUTE, 0); calTglAwal.set(Calendar.MINUTE, 0);
calTglAwal.set(Calendar.SECOND, 0); calTglAwal.set(Calendar.SECOND, 0);
calTglAwal.set(Calendar.DAY_OF_MONTH, 1); calTglAwal.set(Calendar.DAY_OF_MONTH, 1);
calTglAwal.add(Calendar.MONTH, -3); calTglAwal.add(Calendar.MONTH, -jmlBulan);
// get_this_period // get_this_period
Calendar bulan = Calendar.getInstance(); Calendar bulan = Calendar.getInstance();
@ -602,147 +473,303 @@ public class IkiDanRemunerasiServiceImpl implements IkiDanRemunerasiService {
bulan.set(Calendar.SECOND, 0); bulan.set(Calendar.SECOND, 0);
bulan.set(Calendar.DAY_OF_MONTH, bulan.getActualMaximum(Calendar.DAY_OF_MONTH)); bulan.set(Calendar.DAY_OF_MONTH, bulan.getActualMaximum(Calendar.DAY_OF_MONTH));
List<Map<String, Object>> dataLayanan = ikiDanRemunerasiDao.getDataLayanan(calTglAwal.getTime(), List<Integer> listRuangEks = splitDataSettingDatafixed("IdRuanganEksekutif");
List<Map<String, Object>> listIndikatorPelayanan = indikatorKinerjaDao
.findIndikator(Arrays.asList(Master.IndikatorKinerja.INDIKATOR_PELAYANAN_MEDIS));
List<Map<String, Object>> dataLayananRaw = ikiDanRemunerasiDao.getDataLayanan(calTglAwal.getTime(),
bulan.getTime(), Master.JenisPegawai.DOKTER, Arrays.asList(Master.UnitKerja.KSM), bulan.getTime(), Master.JenisPegawai.DOKTER, Arrays.asList(Master.UnitKerja.KSM),
Arrays.asList(Master.JenisProduk.NONTINDAKAN), Master.Produk.KARCIS); Arrays.asList(Master.JenisProduk.NONTINDAKAN), Master.Produk.KARCIS);
List<Map<String, Object>> dataLastTargetLayanan = targetLayananDao
.getLastTargetLayanan(sdf.format(calTglAwal.getTime()), sdf.format(bulan.getTime()));
// get_kategori_bulan // get_kategori_bulan
List<String> listBulanPelayanan = new ArrayList<>(); List<String> listBulanPelayanan = new ArrayList<>();
for (Map<String, Object> dat : dataLayanan) { List<String> listBulanPelayananSorted = new ArrayList<>();
for (Map<String, Object> dat : dataLayananRaw) {
if (!listBulanPelayanan.contains(sdf.format(dat.get("tglPelayanan")))) { if (!listBulanPelayanan.contains(sdf.format(dat.get("tglPelayanan")))) {
listBulanPelayanan.add(sdf.format(dat.get("tglPelayanan"))); listBulanPelayanan.add(sdf.format(dat.get("tglPelayanan")));
} }
} }
listBulanPelayananSorted = listBulanPelayanan.stream().sorted().collect(Collectors.toList());
// get_kategori_kelompok_kerja // get_kategori_kelompok_kerja
List<Integer> listIdKK = new ArrayList<>(); List<Integer> listIdKK = new ArrayList<>();
List<Map<String, Object>> listKK = new ArrayList<>(); for (Map<String, Object> map : dataLayananRaw) {
for (Map<String, Object> map : dataLayanan) {
if (!listIdKK.contains(map.get("idKelompokKerja"))) { if (!listIdKK.contains(map.get("idKelompokKerja"))) {
listIdKK.add(Integer.parseInt(map.get("idKelompokKerja").toString())); listIdKK.add(Integer.parseInt(map.get("idKelompokKerja").toString()));
}
}
List<Map<String, Object>> listKelompokKerja = subunitKerjaDao.findSubunitKerja(listIdKK);
Map<String, Object> mapKK = new HashMap<>(); List<Map<String, Object>> dataLastTargetLayanan = targetLayananDao
mapKK.put("idKsm", map.get("idKsm")); .getLastTargetLayanan(sdf.format(calTglAwal.getTime()), sdf.format(bulan.getTime()));
mapKK.put("namaKsm", map.get("Ksm"));
mapKK.put("id", map.get("idKelompokKerja")); List<Map<String, Object>> filterTarget = new ArrayList<>();
mapKK.put("name", map.get("kelompokKerja")); // filtering target
listKK.add(mapKK); for (Map<String, Object> mapData : dataLastTargetLayanan) {
boolean isContained = false;
for (Map<String, Object> 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<String, Object> mapFilter = new HashMap<>();
mapFilter.put("kelompokKerjaId", mapData.get("kelompokKerjaId"));
mapFilter.put("indikatorId", mapData.get("indikatorId"));
mapFilter.put("periode", mapData.get("periode"));
filterTarget.add(mapFilter);
} }
} }
for (Map<String, Object> kk : listKK) { List<Map<String, Object>> dataTargetFiltered = new ArrayList<>();
Map<String, Object> mapping = new HashMap<>(); // processing Target
for (String bln : listBulanPelayanan) { for (Map<String, Object> mapFilter : filterTarget) {
Double countKonsul = 0.0; for (Map<String, Object> mapData : dataLastTargetLayanan) {
Double countVisit = 0.0; if (mapData.get("kelompokKerjaId").equals(mapFilter.get("kelompokKerjaId"))
Double countOperasi = 0.0; && mapData.get("indikatorId").equals(mapFilter.get("indikatorId"))
Double countNonoperasi = 0.0; && mapData.get("periode").equals(mapFilter.get("periode"))) {
for (Map<String, Object> dat : dataLayanan) { dataTargetFiltered.add(mapData);
if (dat.get("idKelompokKerja").equals(kk.get("id")) break;
&& sdf.format(dat.get("tglPelayanan")).equals(bln)) {
if (dat.get("namaTindakan").toString().toLowerCase().contains(Master.KONSUL)) {
countKonsul = countKonsul + Double.parseDouble(dat.get("jumlahTindakan").toString());
} else if (dat.get("namaTindakan").toString().toLowerCase()
.contains(Master.VISIT)) {
countVisit = countVisit + Double.parseDouble(dat.get("jumlahTindakan").toString());
} else if (dat.get("idRuangan").equals(Master.Ruangan.OK)) {
countOperasi = countOperasi + Double.parseDouble(dat.get("jumlahTindakan").toString());
} else {
countNonoperasi = countNonoperasi
+ Double.parseDouble(dat.get("jumlahTindakan").toString());
}
}
}
if (sdf.format(bulan3.getTime()).equals(bln)) {
mapping.put("capaianKonsulBulan3", countKonsul.intValue());
mapping.put("capaianVisitBulan3", countVisit.intValue());
mapping.put("capaianOperasiBulan3", countOperasi.intValue());
mapping.put("capaianNonoperasiBulan3", countNonoperasi.intValue());
for (Map<String, Object> lastTarget : dataLastTargetLayanan) {
if (lastTarget.get("idSubunit").equals(kk.get("id")) && lastTarget.get("periode").equals(bln)) {
mapping.put("targetKonsulBulan3", lastTarget.get("targetKonsultasi"));
mapping.put("targetVisitBulan3", lastTarget.get("targetVisite"));
mapping.put("targetOperasiBulan3", lastTarget.get("targetOperasi"));
mapping.put("targetNonoperasiBulan3", lastTarget.get("targetNonoperasi"));
}
}
} else if (sdf.format(bulan2.getTime()).equals(bln)) {
mapping.put("capaianKonsulBulan2", countKonsul.intValue());
mapping.put("capaianVisitBulan2", countVisit.intValue());
mapping.put("capaianOperasiBulan2", countOperasi.intValue());
mapping.put("capaianNonoperasiBulan2", countNonoperasi.intValue());
for (Map<String, Object> lastTarget : dataLastTargetLayanan) {
if (lastTarget.get("idSubunit").equals(kk.get("id")) && lastTarget.get("periode").equals(bln)) {
mapping.put("targetKonsulBulan2", lastTarget.get("targetKonsultasi"));
mapping.put("targetVisitBulan2", lastTarget.get("targetVisite"));
mapping.put("targetOperasiBulan2", lastTarget.get("targetOperasi"));
mapping.put("targetNonoperasiBulan2", lastTarget.get("targetNonoperasi"));
}
}
} else if (sdf.format(bulan1.getTime()).equals(bln)) {
mapping.put("capaianKonsulBulan1", countKonsul.intValue());
mapping.put("capaianVisitBulan1", countVisit.intValue());
mapping.put("capaianOperasiBulan1", countOperasi.intValue());
mapping.put("capaianNonoperasiBulan1", countNonoperasi.intValue());
for (Map<String, Object> lastTarget : dataLastTargetLayanan) {
if (lastTarget.get("idSubunit").equals(kk.get("id")) && lastTarget.get("periode").equals(bln)) {
mapping.put("targetKonsulBulan1", lastTarget.get("targetKonsultasi"));
mapping.put("targetVisitBulan1", lastTarget.get("targetVisite"));
mapping.put("targetOperasiBulan1", lastTarget.get("targetOperasi"));
mapping.put("targetNonoperasiBulan1", lastTarget.get("targetNonoperasi"));
}
}
} else if (sdf.format(bulan.getTime()).equals(bln)) {
mapping.put("capaianKonsulBulan", countKonsul.intValue());
mapping.put("capaianVisitBulan", countVisit.intValue());
mapping.put("capaianOperasiBulan", countOperasi.intValue());
mapping.put("capaianNonoperasiBulan", countNonoperasi.intValue());
for (Map<String, Object> lastTarget : dataLastTargetLayanan) {
if (lastTarget.get("idSubunit").equals(kk.get("id")) && lastTarget.get("periode").equals(bln)) {
mapping.put("targetKonsulBulan", lastTarget.get("targetKonsultasi"));
mapping.put("targetVisitBulan", lastTarget.get("targetVisite"));
mapping.put("targetOperasiBulan", lastTarget.get("targetOperasi"));
mapping.put("targetNonoperasiBulan", lastTarget.get("targetNonoperasi"));
}
}
} }
} }
Integer targetKonsulBulan = (int) Math }
.floor((Integer.parseInt(mapping.get("capaianKonsulBulan3").toString())
+ Integer.parseInt(mapping.get("capaianKonsulBulan2").toString())
+ Integer.parseInt(mapping.get("capaianKonsulBulan1").toString())) / 3);
Integer targetVisitBulan = (int) Math.floor((Integer.parseInt(mapping.get("capaianVisitBulan3").toString())
+ Integer.parseInt(mapping.get("capaianVisitBulan2").toString())
+ Integer.parseInt(mapping.get("capaianVisitBulan1").toString())) / 3);
Integer targetOperasiBulan = (int) Math
.floor((Integer.parseInt(mapping.get("capaianOperasiBulan3").toString())
+ Integer.parseInt(mapping.get("capaianOperasiBulan2").toString())
+ Integer.parseInt(mapping.get("capaianOperasiBulan1").toString())) / 3);
Integer targetNonoperasiBulan = (int) Math
.floor((Integer.parseInt(mapping.get("capaianNonoperasiBulan3").toString())
+ Integer.parseInt(mapping.get("capaianNonoperasiBulan2").toString())
+ Integer.parseInt(mapping.get("capaianNonoperasiBulan1").toString())) / 3);
mapping.put("targetKonsulBulan", targetKonsulBulan); List<Map<String, Object>> dataSkoringRaw = skoringTindakanMedisDao.findLatestActiveSkor();
mapping.put("targetVisitBulan", targetVisitBulan);
mapping.put("targetOperasiBulan", targetOperasiBulan);
mapping.put("targetNonoperasiBulan", targetNonoperasiBulan);
Map<String, Object> mapKsm = new HashMap<>(); List<Map<String, Object>> filterSkoring = new ArrayList<>();
mapKsm.put("id", kk.get("idKsm")); // filtering skoring
mapKsm.put("name", kk.get("namaKsm")); for (Map<String, Object> mapData : dataSkoringRaw) {
boolean isContained = false;
for (Map<String, Object> mapFilter : filterSkoring) {
if (mapData.get("produkId").equals(mapFilter.get("produkId"))
&& mapData.get("kelompokKerjaId").equals(mapFilter.get("kelompokKerjaId"))) {
isContained = true;
break;
}
}
if (!isContained) {
Map<String, Object> mapFilter = new HashMap<>();
mapFilter.put("produkId", mapData.get("produkId"));
mapFilter.put("kelompokKerjaId", mapData.get("kelompokKerjaId"));
filterSkoring.add(mapFilter);
}
}
Map<String, Object> mapKk = new HashMap<>(); List<Map<String, Object>> dataSkoringFiltered = new ArrayList<>();
mapKk.put("id", kk.get("id")); // processing skoring
mapKk.put("name", kk.get("name")); for (Map<String, Object> mapFilter : filterSkoring) {
for (Map<String, Object> mapData : dataSkoringRaw) {
if (mapFilter.get("produkId").equals(mapData.get("produkId"))
&& mapFilter.get("kelompokKerjaId").equals(mapData.get("kelompokKerjaId"))) {
dataSkoringFiltered.add(mapData);
break;
}
}
}
mapping.put("unitKerjaPegawai", mapKsm); List<Map<String, Object>> dataLayananScored = new ArrayList<>();
mapping.put("subUnitKerjaPegawai", mapKk); // scoring data layanan
for (Map<String, Object> layanan : dataLayananRaw) {
for (Map<String, Object> skoring : dataSkoringFiltered) {
result.add(mapping); 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"))))) {
layanan.put("jumlahTindakan", Double.valueOf(layanan.get("jumlahTindakan").toString())
* Double.valueOf(skoring.get("skor").toString()));
break;
}
}
dataLayananScored.add(layanan);
}
for (Map<String, Object> kelompokKerja : listKelompokKerja) {
for (Map<String, Object> indikator : listIndikatorPelayanan) {
Map<String, Object> rsMap = new HashMap<>();
List<Map<String, Object>> 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++;
Map<String, Object> detail = new HashMap<>();
double capaianBulanan = 0.0;
double targetBulanan = 0.0;
for (Map<String, Object> data : dataLayananScored) {
if (kelompokKerja.get("id").equals(data.get("idKelompokKerja"))
&& datePelayanan.equals(sdf.format(data.get("tglPelayanan")))) {
if (indikator.get("id").equals(Master.IndikatorKinerja.KONSUL_EKS)
&& data.get("namaTindakan").equals(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<String, Object> target : dataTargetFiltered) {
if (kelompokKerja.get("id").equals(target.get("kelompokKerjaId"))
&& indikator.get("id").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 (indikator.get("id").equals(Master.IndikatorKinerja.KONSUL_GADAR)
&& data.get("namaTindakan").equals(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<String, Object> target : dataTargetFiltered) {
if (kelompokKerja.get("id").equals(target.get("kelompokKerjaId"))
&& indikator.get("id").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 (indikator.get("id").equals(Master.IndikatorKinerja.KONSUL_REG)
&& data.get("namaTindakan").equals(Master.KONSUL)) {
capaianBulanan += Double.valueOf(data.get("jumlahTindakan").toString());
if (i < listBulanPelayananSorted.size()) {
capaianTriwulanKR += Double.valueOf(data.get("jumlahTindakan").toString());
for (Map<String, Object> target : dataTargetFiltered) {
if (kelompokKerja.get("id").equals(target.get("kelompokKerjaId"))
&& indikator.get("id").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 (indikator.get("id").equals(Master.IndikatorKinerja.VISITE)
&& data.get("namaTindakan").equals(Master.VISIT)) {
capaianBulanan += Double.valueOf(data.get("jumlahTindakan").toString());
if (i < listBulanPelayananSorted.size()) {
capaianTriwulanVI += Double.valueOf(data.get("jumlahTindakan").toString());
for (Map<String, Object> target : dataTargetFiltered) {
if (kelompokKerja.get("id").equals(target.get("kelompokKerjaId"))
&& indikator.get("id").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 (indikator.get("id").equals(Master.IndikatorKinerja.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<String, Object> target : dataTargetFiltered) {
if (kelompokKerja.get("id").equals(target.get("kelompokKerjaId"))
&& indikator.get("id").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 (indikator.get("id").equals(Master.IndikatorKinerja.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<String, Object> target : dataTargetFiltered) {
if (kelompokKerja.get("id").equals(target.get("kelompokKerjaId"))
&& indikator.get("id").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 (indikator.get("id").equals(Master.IndikatorKinerja.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<String, Object> target : dataTargetFiltered) {
if (kelompokKerja.get("id").equals(target.get("kelompokKerjaId"))
&& indikator.get("id").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 (indikator.get("id").equals(Master.IndikatorKinerja.TINDAKAN_REG)) {
capaianBulanan += Double.valueOf(data.get("jumlahTindakan").toString());
if (i < listBulanPelayananSorted.size()) {
capaianTriwulanTR += Double.valueOf(data.get("jumlahTindakan").toString());
for (Map<String, Object> target : dataTargetFiltered) {
if (kelompokKerja.get("id").equals(target.get("kelompokKerjaId"))
&& indikator.get("id").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.put("date", datePelayanan);
detail.put("bulan", sdfINA.format(bulanPelayanan));
detail.put("target", targetBulanan);
detail.put("capaian", capaianBulanan);
listDetail.add(detail);
}
if (Double.valueOf(listDetail.get(listDetail.size() - 1).get("target").toString()) > 0.0) {
rsMap.put("detail", listDetail);
rsMap.put("kelompokKerja", kelompokKerja);
rsMap.put("indikator", indikator);
}
if (CommonUtil.isNotNullOrEmpty(rsMap)) {
result.add(rsMap);
}
}
} }
return result; return result;

View File

@ -158,7 +158,7 @@ public class IndikatorKinerjaServiceImpl extends BaseVoServiceImpl implements In
} }
if (CommonUtil.isNotNullOrEmpty(listIdDup)) { if (CommonUtil.isNotNullOrEmpty(listIdDup)) {
result = indikatorKinerjaDao.findAllDup(listIdDup); result = indikatorKinerjaDao.findIndikator(listIdDup);
} }
return result; return result;

View File

@ -139,99 +139,6 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
return result; return result;
} }
@Override
public List<Map<String, Object>> getRekapPendapatanAllRuangan(String strTgl1, String strTgl2)
throws ParseException {
List<Map<String, Object>> result = new ArrayList<>();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date tglAwal = sdf.parse(strTgl1);
Date tglAkhir = sdf.parse(strTgl2);
List<Map<String, Object>> data = pelayananPasienDao.findDataLayananAllRuangan(tglAwal, tglAkhir,
Arrays.asList(Master.JenisProduk.NONTINDAKAN));
if (CommonUtil.isNotNullOrEmpty(data)) {
List<Integer> listIdRuangan = new ArrayList<>();
for (Map<String, Object> map : data) {
if (!listIdRuangan.contains(map.get("idRuangan"))) {
listIdRuangan.add(Integer.valueOf(map.get("idRuangan").toString()));
}
}
for (Integer idRuangan : listIdRuangan) {
Double sumAdministrasi = 0.0;
Double sumVisite = 0.0;
Double sumKonsultasi = 0.0;
Double sumAkomodasi = 0.0;
Double sumAlatCanggih = 0.0;
Double sumTindakan = 0.0;
Double sumObatAlkes = 0.0;
Double sumDiskon = 0.0;
Map<String, Object> mapResult = new HashMap<>();
Map<String, Object> mapDepartemen = new HashMap<>();
Map<String, Object> mapRuangan = new HashMap<>();
for (Map<String, Object> map : data) {
if (map.get("idRuangan").equals(idRuangan)) {
if (Arrays.asList(Master.Departemen.KARCIS).contains(map.get("idDepartemen"))
&& map.get("namaProduk").toString().toLowerCase().contains(Master.KARCIS)) {
sumAdministrasi = sumAdministrasi + (Double.valueOf(map.get("hargaJual").toString())
* Double.valueOf(map.get("jumlahTindakan").toString()));
} else if (!Arrays.asList(Master.Departemen.KARCIS).contains(map.get("idDepartemen"))
&& Arrays.stream(Master.MATERAI_ADMINISTRASI)
.anyMatch(map.get("namaProduk").toString().toLowerCase()::contains)) {
sumAdministrasi = sumAdministrasi + (Double.valueOf(map.get("hargaJual").toString())
* Double.valueOf(map.get("jumlahTindakan").toString()));
} else if (map.get("namaProduk").toString().toLowerCase().contains(Master.VISIT)) {
sumVisite = sumVisite + (Double.valueOf(map.get("hargaJual").toString())
* Double.valueOf(map.get("jumlahTindakan").toString()));
} else if (map.get("namaProduk").toString().toLowerCase().contains(Master.KONSUL)) {
sumKonsultasi = sumKonsultasi + (Double.valueOf(map.get("hargaJual").toString())
* Double.valueOf(map.get("jumlahTindakan").toString()));
} else if (map.get("namaProduk").toString().toLowerCase().contains(Master.AKOMODASI)) {
sumAkomodasi = sumAkomodasi + (Double.valueOf(map.get("hargaJual").toString())
* Double.valueOf(map.get("jumlahTindakan").toString()));
} else if (map.get("idJenisProduk").equals(Master.JenisProduk.ALAT_CANGGIH)) {
sumAlatCanggih = sumAlatCanggih + (Double.valueOf(map.get("hargaJual").toString())
* Double.valueOf(map.get("jumlahTindakan").toString()));
} else if (map.get("idJenisProduk").equals(Master.JenisProduk.OBAT_ALKES)) {
sumObatAlkes = sumObatAlkes + (Double.valueOf(map.get("hargaJual").toString())
* Double.valueOf(map.get("jumlahTindakan").toString()));
} else {
sumTindakan = sumTindakan + (Double.valueOf(map.get("hargaJual").toString())
* Double.valueOf(map.get("jumlahTindakan").toString()));
}
sumDiskon = sumDiskon + (Double.valueOf(map.get("hargaDiskon").toString())
* Double.valueOf(map.get("jumlahTindakan").toString()));
mapDepartemen.put("id", map.get("idDepartemen"));
mapDepartemen.put("namaDepartemen", map.get("namaDepartemen"));
mapRuangan.put("id", map.get("idRuangan"));
mapRuangan.put("namaRuangan", map.get("namaRuangan"));
}
}
mapResult.put("departemen", mapDepartemen);
mapResult.put("ruangan", mapRuangan);
mapResult.put("administrasi", new BigDecimal(sumAdministrasi, MathContext.DECIMAL64));
mapResult.put("visite", new BigDecimal(sumVisite, MathContext.DECIMAL64));
mapResult.put("konsultasi", new BigDecimal(sumKonsultasi, MathContext.DECIMAL64));
mapResult.put("akomodasi", new BigDecimal(sumAkomodasi, MathContext.DECIMAL64));
mapResult.put("alatCanggih", new BigDecimal(sumAlatCanggih, MathContext.DECIMAL64));
mapResult.put("tindakan", new BigDecimal(sumTindakan, MathContext.DECIMAL64));
mapResult.put("obatAlkes", new BigDecimal(sumObatAlkes, MathContext.DECIMAL64));
mapResult.put("diskon", new BigDecimal(sumDiskon, MathContext.DECIMAL64));
mapResult
.put("totalDiRuangan",
new BigDecimal(sumAdministrasi + sumVisite + sumKonsultasi + sumAkomodasi
+ sumAlatCanggih + sumTindakan + sumObatAlkes - sumDiskon,
MathContext.DECIMAL64));
result.add(mapResult);
}
}
return result;
}
public Double calculateRemunWithFfs(Integer idKelPasien, Integer idDepartemen, Integer idLayanan, public Double calculateRemunWithFfs(Integer idKelPasien, Integer idDepartemen, Integer idLayanan,
String namaLayanan, Integer tipePegawai, Double hargaJual, Double hargaDiskon, Double jumlahLayanan) { String namaLayanan, Integer tipePegawai, Double hargaJual, Double hargaDiskon, Double jumlahLayanan) {
Double result = 0.0; Double result = 0.0;

View File

@ -169,64 +169,93 @@ public class SkoringTindakanMedisServiceImpl extends BaseVoServiceImpl implement
public List<Map<String, Object>> findAllEnabled(List<Integer> listIdKelompokKerja, String namaProduk, public List<Map<String, Object>> findAllEnabled(List<Integer> listIdKelompokKerja, String namaProduk,
String detailProduk, Boolean statusVerifikasi) throws JpaSystemException { String detailProduk, Boolean statusVerifikasi) throws JpaSystemException {
List<Map<String, Object>> result = new ArrayList<>(); List<Map<String, Object>> result = new ArrayList<>();
List<Map<String, Object>> data = new ArrayList<>();
List<Map<String, Object>> filter = new ArrayList<>();
if (CommonUtil.isNullOrEmpty(listIdKelompokKerja) && CommonUtil.isNullOrEmpty(namaProduk) if (CommonUtil.isNullOrEmpty(listIdKelompokKerja) && CommonUtil.isNullOrEmpty(namaProduk)
&& CommonUtil.isNullOrEmpty(detailProduk) && CommonUtil.isNullOrEmpty(statusVerifikasi)) { && CommonUtil.isNullOrEmpty(detailProduk) && CommonUtil.isNullOrEmpty(statusVerifikasi)) {
result = skoringTindakanMedisDao.findAllEnabled(); data = skoringTindakanMedisDao.findAllEnabled();
} else if (CommonUtil.isNotNullOrEmpty(listIdKelompokKerja) && CommonUtil.isNullOrEmpty(namaProduk) } else if (CommonUtil.isNotNullOrEmpty(listIdKelompokKerja) && CommonUtil.isNullOrEmpty(namaProduk)
&& CommonUtil.isNullOrEmpty(detailProduk) && CommonUtil.isNullOrEmpty(statusVerifikasi)) { && CommonUtil.isNullOrEmpty(detailProduk) && CommonUtil.isNullOrEmpty(statusVerifikasi)) {
result = skoringTindakanMedisDao.findAllEnabledByUnit(listIdKelompokKerja); data = skoringTindakanMedisDao.findAllEnabledByUnit(listIdKelompokKerja);
} else if (CommonUtil.isNullOrEmpty(listIdKelompokKerja) && CommonUtil.isNotNullOrEmpty(namaProduk) } else if (CommonUtil.isNullOrEmpty(listIdKelompokKerja) && CommonUtil.isNotNullOrEmpty(namaProduk)
&& CommonUtil.isNullOrEmpty(detailProduk) && CommonUtil.isNullOrEmpty(statusVerifikasi)) { && CommonUtil.isNullOrEmpty(detailProduk) && CommonUtil.isNullOrEmpty(statusVerifikasi)) {
result = skoringTindakanMedisDao.findAllEnabledByProduk(namaProduk.toLowerCase()); data = skoringTindakanMedisDao.findAllEnabledByProduk(namaProduk.toLowerCase());
} else if (CommonUtil.isNullOrEmpty(listIdKelompokKerja) && CommonUtil.isNullOrEmpty(namaProduk) } else if (CommonUtil.isNullOrEmpty(listIdKelompokKerja) && CommonUtil.isNullOrEmpty(namaProduk)
&& CommonUtil.isNotNullOrEmpty(detailProduk) && CommonUtil.isNullOrEmpty(statusVerifikasi)) { && CommonUtil.isNotNullOrEmpty(detailProduk) && CommonUtil.isNullOrEmpty(statusVerifikasi)) {
result = skoringTindakanMedisDao.findAllEnabledByDetail(detailProduk.toLowerCase()); data = skoringTindakanMedisDao.findAllEnabledByDetail(detailProduk.toLowerCase());
} else if (CommonUtil.isNullOrEmpty(listIdKelompokKerja) && CommonUtil.isNullOrEmpty(namaProduk) } else if (CommonUtil.isNullOrEmpty(listIdKelompokKerja) && CommonUtil.isNullOrEmpty(namaProduk)
&& CommonUtil.isNullOrEmpty(detailProduk) && CommonUtil.isNotNullOrEmpty(statusVerifikasi)) { && CommonUtil.isNullOrEmpty(detailProduk) && CommonUtil.isNotNullOrEmpty(statusVerifikasi)) {
result = skoringTindakanMedisDao.findAllEnabledByVerif(statusVerifikasi); data = skoringTindakanMedisDao.findAllEnabledByVerif(statusVerifikasi);
} else if (CommonUtil.isNotNullOrEmpty(listIdKelompokKerja) && CommonUtil.isNotNullOrEmpty(namaProduk) } else if (CommonUtil.isNotNullOrEmpty(listIdKelompokKerja) && CommonUtil.isNotNullOrEmpty(namaProduk)
&& CommonUtil.isNullOrEmpty(detailProduk) && CommonUtil.isNullOrEmpty(statusVerifikasi)) { && CommonUtil.isNullOrEmpty(detailProduk) && CommonUtil.isNullOrEmpty(statusVerifikasi)) {
result = skoringTindakanMedisDao.findAllEnabledByUnitProduk(listIdKelompokKerja, namaProduk.toLowerCase()); data = skoringTindakanMedisDao.findAllEnabledByUnitProduk(listIdKelompokKerja, namaProduk.toLowerCase());
} else if (CommonUtil.isNotNullOrEmpty(listIdKelompokKerja) && CommonUtil.isNullOrEmpty(namaProduk) } else if (CommonUtil.isNotNullOrEmpty(listIdKelompokKerja) && CommonUtil.isNullOrEmpty(namaProduk)
&& CommonUtil.isNotNullOrEmpty(detailProduk) && CommonUtil.isNullOrEmpty(statusVerifikasi)) { && CommonUtil.isNotNullOrEmpty(detailProduk) && CommonUtil.isNullOrEmpty(statusVerifikasi)) {
result = skoringTindakanMedisDao.findAllEnabledByUnitDetail(listIdKelompokKerja, data = skoringTindakanMedisDao.findAllEnabledByUnitDetail(listIdKelompokKerja, detailProduk.toLowerCase());
detailProduk.toLowerCase());
} else if (CommonUtil.isNotNullOrEmpty(listIdKelompokKerja) && CommonUtil.isNullOrEmpty(namaProduk) } else if (CommonUtil.isNotNullOrEmpty(listIdKelompokKerja) && CommonUtil.isNullOrEmpty(namaProduk)
&& CommonUtil.isNullOrEmpty(detailProduk) && CommonUtil.isNotNullOrEmpty(statusVerifikasi)) { && CommonUtil.isNullOrEmpty(detailProduk) && CommonUtil.isNotNullOrEmpty(statusVerifikasi)) {
result = skoringTindakanMedisDao.findAllEnabledByUnitVerif(listIdKelompokKerja, statusVerifikasi); data = skoringTindakanMedisDao.findAllEnabledByUnitVerif(listIdKelompokKerja, statusVerifikasi);
} else if (CommonUtil.isNullOrEmpty(listIdKelompokKerja) && CommonUtil.isNotNullOrEmpty(namaProduk) } else if (CommonUtil.isNullOrEmpty(listIdKelompokKerja) && CommonUtil.isNotNullOrEmpty(namaProduk)
&& CommonUtil.isNotNullOrEmpty(detailProduk) && CommonUtil.isNullOrEmpty(statusVerifikasi)) { && CommonUtil.isNotNullOrEmpty(detailProduk) && CommonUtil.isNullOrEmpty(statusVerifikasi)) {
result = skoringTindakanMedisDao.findAllEnabledByProdukDetail(namaProduk.toLowerCase(), data = skoringTindakanMedisDao.findAllEnabledByProdukDetail(namaProduk.toLowerCase(),
detailProduk.toLowerCase()); detailProduk.toLowerCase());
} else if (CommonUtil.isNullOrEmpty(listIdKelompokKerja) && CommonUtil.isNotNullOrEmpty(namaProduk) } else if (CommonUtil.isNullOrEmpty(listIdKelompokKerja) && CommonUtil.isNotNullOrEmpty(namaProduk)
&& CommonUtil.isNullOrEmpty(detailProduk) && CommonUtil.isNotNullOrEmpty(statusVerifikasi)) { && CommonUtil.isNullOrEmpty(detailProduk) && CommonUtil.isNotNullOrEmpty(statusVerifikasi)) {
result = skoringTindakanMedisDao.findAllEnabledByProdukVerif(namaProduk.toLowerCase(), statusVerifikasi); data = skoringTindakanMedisDao.findAllEnabledByProdukVerif(namaProduk.toLowerCase(), statusVerifikasi);
} else if (CommonUtil.isNullOrEmpty(listIdKelompokKerja) && CommonUtil.isNullOrEmpty(namaProduk) } else if (CommonUtil.isNullOrEmpty(listIdKelompokKerja) && CommonUtil.isNullOrEmpty(namaProduk)
&& CommonUtil.isNotNullOrEmpty(detailProduk) && CommonUtil.isNotNullOrEmpty(statusVerifikasi)) { && CommonUtil.isNotNullOrEmpty(detailProduk) && CommonUtil.isNotNullOrEmpty(statusVerifikasi)) {
result = skoringTindakanMedisDao.findAllEnabledByDetailVerif(detailProduk.toLowerCase(), statusVerifikasi); data = skoringTindakanMedisDao.findAllEnabledByDetailVerif(detailProduk.toLowerCase(), statusVerifikasi);
} else if (CommonUtil.isNotNullOrEmpty(listIdKelompokKerja) && CommonUtil.isNotNullOrEmpty(namaProduk) } else if (CommonUtil.isNotNullOrEmpty(listIdKelompokKerja) && CommonUtil.isNotNullOrEmpty(namaProduk)
&& CommonUtil.isNotNullOrEmpty(detailProduk) && CommonUtil.isNullOrEmpty(statusVerifikasi)) { && CommonUtil.isNotNullOrEmpty(detailProduk) && CommonUtil.isNullOrEmpty(statusVerifikasi)) {
result = skoringTindakanMedisDao.findAllEnabledByUnitProdukDetail(listIdKelompokKerja, data = skoringTindakanMedisDao.findAllEnabledByUnitProdukDetail(listIdKelompokKerja,
namaProduk.toLowerCase(), detailProduk.toLowerCase()); namaProduk.toLowerCase(), detailProduk.toLowerCase());
} else if (CommonUtil.isNotNullOrEmpty(listIdKelompokKerja) && CommonUtil.isNotNullOrEmpty(namaProduk) } else if (CommonUtil.isNotNullOrEmpty(listIdKelompokKerja) && CommonUtil.isNotNullOrEmpty(namaProduk)
&& CommonUtil.isNullOrEmpty(detailProduk) && CommonUtil.isNotNullOrEmpty(statusVerifikasi)) { && CommonUtil.isNullOrEmpty(detailProduk) && CommonUtil.isNotNullOrEmpty(statusVerifikasi)) {
result = skoringTindakanMedisDao.findAllEnabledByUnitProdukVerif(listIdKelompokKerja, data = skoringTindakanMedisDao.findAllEnabledByUnitProdukVerif(listIdKelompokKerja,
namaProduk.toLowerCase(), statusVerifikasi); namaProduk.toLowerCase(), statusVerifikasi);
} else if (CommonUtil.isNotNullOrEmpty(listIdKelompokKerja) && CommonUtil.isNullOrEmpty(namaProduk) } else if (CommonUtil.isNotNullOrEmpty(listIdKelompokKerja) && CommonUtil.isNullOrEmpty(namaProduk)
&& CommonUtil.isNotNullOrEmpty(detailProduk) && CommonUtil.isNotNullOrEmpty(statusVerifikasi)) { && CommonUtil.isNotNullOrEmpty(detailProduk) && CommonUtil.isNotNullOrEmpty(statusVerifikasi)) {
result = skoringTindakanMedisDao.findAllEnabledByUnitDetailVerif(listIdKelompokKerja, data = skoringTindakanMedisDao.findAllEnabledByUnitDetailVerif(listIdKelompokKerja,
detailProduk.toLowerCase(), statusVerifikasi); detailProduk.toLowerCase(), statusVerifikasi);
} else if (CommonUtil.isNullOrEmpty(listIdKelompokKerja) && CommonUtil.isNotNullOrEmpty(namaProduk) } else if (CommonUtil.isNullOrEmpty(listIdKelompokKerja) && CommonUtil.isNotNullOrEmpty(namaProduk)
&& CommonUtil.isNotNullOrEmpty(detailProduk) && CommonUtil.isNotNullOrEmpty(statusVerifikasi)) { && CommonUtil.isNotNullOrEmpty(detailProduk) && CommonUtil.isNotNullOrEmpty(statusVerifikasi)) {
result = skoringTindakanMedisDao.findAllEnabledByProdukDetailVerif(namaProduk.toLowerCase(), data = skoringTindakanMedisDao.findAllEnabledByProdukDetailVerif(namaProduk.toLowerCase(),
detailProduk.toLowerCase(), statusVerifikasi); detailProduk.toLowerCase(), statusVerifikasi);
} else if (CommonUtil.isNotNullOrEmpty(listIdKelompokKerja) && CommonUtil.isNotNullOrEmpty(namaProduk) } else if (CommonUtil.isNotNullOrEmpty(listIdKelompokKerja) && CommonUtil.isNotNullOrEmpty(namaProduk)
&& CommonUtil.isNotNullOrEmpty(detailProduk) && CommonUtil.isNotNullOrEmpty(statusVerifikasi)) { && CommonUtil.isNotNullOrEmpty(detailProduk) && CommonUtil.isNotNullOrEmpty(statusVerifikasi)) {
result = skoringTindakanMedisDao.findAllEnabledByUnitProdukDetailVerif(listIdKelompokKerja, data = skoringTindakanMedisDao.findAllEnabledByUnitProdukDetailVerif(listIdKelompokKerja,
namaProduk.toLowerCase(), detailProduk.toLowerCase(), statusVerifikasi); namaProduk.toLowerCase(), detailProduk.toLowerCase(), statusVerifikasi);
} }
// filtering
for (Map<String, Object> mapData : data) {
boolean isContained = false;
for (Map<String, Object> mapFilter : filter) {
if (mapData.get("produkId").equals(mapFilter.get("produkId"))
&& mapData.get("kelompokKerjaId").equals(mapFilter.get("kelompokKerjaId"))) {
isContained = true;
break;
}
}
if (!isContained) {
Map<String, Object> mapFilter = new HashMap<>();
mapFilter.put("produkId", mapData.get("produkId"));
mapFilter.put("kelompokKerjaId", mapData.get("kelompokKerjaId"));
filter.add(mapFilter);
}
}
for (Map<String, Object> mapFilter : filter) {
for (Map<String, Object> mapData : data) {
if (mapFilter.get("produkId").equals(mapData.get("produkId"))
&& mapFilter.get("kelompokKerjaId").equals(mapData.get("kelompokKerjaId"))) {
result.add(mapData);
break;
}
}
}
return result; return result;
} }

View File

@ -1,7 +1,9 @@
package com.jasamedika.medifirst2000.service.impl; package com.jasamedika.medifirst2000.service.impl;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap; import java.util.Date;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@ -9,12 +11,20 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.orm.jpa.JpaSystemException; import org.springframework.orm.jpa.JpaSystemException;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.jasamedika.medifirst2000.converter.BaseConverterImpl;
import com.jasamedika.medifirst2000.converter.TargetLayananConverter; import com.jasamedika.medifirst2000.converter.TargetLayananConverter;
import com.jasamedika.medifirst2000.dao.TargetLayananDao; import com.jasamedika.medifirst2000.dao.TargetLayananDao;
import com.jasamedika.medifirst2000.entities.IndikatorKinerja;
import com.jasamedika.medifirst2000.entities.SubUnitKerjaPegawai;
import com.jasamedika.medifirst2000.entities.TargetLayanan; import com.jasamedika.medifirst2000.entities.TargetLayanan;
import com.jasamedika.medifirst2000.entities.UnitKerjaPegawai;
import com.jasamedika.medifirst2000.exception.ServiceVOException; import com.jasamedika.medifirst2000.exception.ServiceVOException;
import com.jasamedika.medifirst2000.service.TargetLayananService; import com.jasamedika.medifirst2000.service.TargetLayananService;
import com.jasamedika.medifirst2000.util.CommonUtil; import com.jasamedika.medifirst2000.util.CommonUtil;
import com.jasamedika.medifirst2000.vo.IndikatorKinerjaVO;
import com.jasamedika.medifirst2000.vo.SubUnitKerjaPegawaiVO;
import com.jasamedika.medifirst2000.vo.TargetLayananCustomDetailVO;
import com.jasamedika.medifirst2000.vo.TargetLayananCustomVO;
import com.jasamedika.medifirst2000.vo.TargetLayananVO; import com.jasamedika.medifirst2000.vo.TargetLayananVO;
@Service("targetLayananService") @Service("targetLayananService")
@ -23,25 +33,57 @@ public class TargetLayananServiceImpl implements TargetLayananService {
@Autowired @Autowired
private TargetLayananConverter targetLayananConverter; private TargetLayananConverter targetLayananConverter;
@Autowired
private BaseConverterImpl<SubUnitKerjaPegawaiVO, SubUnitKerjaPegawai> subunitKerjaConverter;
@Autowired
private BaseConverterImpl<IndikatorKinerjaVO, IndikatorKinerja> indikatorKinerjaConverter;
@Autowired @Autowired
private TargetLayananDao targetLayananDao; private TargetLayananDao targetLayananDao;
@Override @Override
public Map<String, Object> addAll(List<TargetLayananVO> vos) throws JpaSystemException, ServiceVOException { public List<String> addAll(List<TargetLayananCustomVO> vos)
Map<String, Object> result = new HashMap<String, Object>(); throws JpaSystemException, ServiceVOException, ParseException {
List<TargetLayanan> listModel = new ArrayList<>(); List<String> resultListVO = new ArrayList<>();
List<TargetLayanan> listTargetLayanan = new ArrayList<>();
for (TargetLayananVO vo : vos) { Date tglHitung = new Date();
TargetLayanan targetLayanan = targetLayananConverter.transferVOToModel(vo, new TargetLayanan()); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM");
listModel.add(targetLayanan); for (TargetLayananCustomVO vo : vos) {
for (TargetLayananCustomDetailVO detail : vo.getDetail()) {
UnitKerjaPegawai unitKerja = new UnitKerjaPegawai();
unitKerja.setId(vo.getKelompokKerja().getUnitKerjaId());
SubUnitKerjaPegawai kelompokKerja = subunitKerjaConverter.transferVOToModel(vo.getKelompokKerja(),
new SubUnitKerjaPegawai());
IndikatorKinerja indikator = indikatorKinerjaConverter.transferVOToModel(vo.getIndikator(),
new IndikatorKinerja());
TargetLayanan targetLayanan = new TargetLayanan();
targetLayanan.setKdProfile((short) 0);
targetLayanan.setStatusEnabled(true);
targetLayanan.setUnitKerjaPegawai(unitKerja);
targetLayanan.setSubUnitKerjaPegawai(kelompokKerja);
targetLayanan.setTglHitung(tglHitung);
targetLayanan.setPeriode(sdf.parse(detail.getDate()));
targetLayanan.setIndikator(indikator);
targetLayanan.setTarget(detail.getTarget());
targetLayanan.setCapaian(detail.getCapaian());
listTargetLayanan.add(targetLayanan);
}
} }
if (CommonUtil.isNotNullOrEmpty(listModel)) { Iterable<TargetLayanan> listResultModel = targetLayananDao.save(listTargetLayanan);
targetLayananDao.save(listModel); for (TargetLayanan resultModel : listResultModel) {
result.put("Info", "Success"); TargetLayananVO resultVo = new TargetLayananVO();
resultVo = targetLayananConverter.transferModelToVO(resultModel, resultVo);
resultListVO.add(resultVo.getNoRec());
} }
return result; return resultListVO;
} }
@Override @Override

View File

@ -45,69 +45,21 @@ public class TargetLayanan extends BaseTransaction {
@Caption(value = "Periode") @Caption(value = "Periode")
public Date periode; public Date periode;
@Column(name = "capaianoperasi3bulanlalu") @ManyToOne
@Caption(value = "Capaian Operasi") @JoinColumn(name = "objectindikatorfk")
public Integer capaianOperasi3bulanlalu; @Caption(value = "Indikator Kinerja")
public IndikatorKinerja indikator;
@Column(name = "capaiannonoperasi3bulanlalu") @Column(name = "objectindikatorfk", insertable = false, updatable = false)
@Caption(value = "Capaian Nonoperasi") public Integer indikatorId;
public Integer capaianNonoperasi3bulanlalu;
@Column(name = "capaianvisite3bulanlalu") @Column(name = "capaian")
@Caption(value = "Capaian Visite") @Caption(value = "Capaian")
public Integer capaianVisit3bulanlalu; public Double capaian;
@Column(name = "capaiankonsultasi3bulanlalu") @Column(name = "target")
@Caption(value = "Capaian Konsultasi") @Caption(value = "Target")
public Integer capaianKonsultasi3bulanlalu; public Double target;
@Column(name = "capaianoperasi2bulanlalu")
@Caption(value = "Capaian Operasi")
public Integer capaianOperasi2bulanlalu;
@Column(name = "capaiannonoperasi2bulanlalu")
@Caption(value = "Capaian Nonoperasi")
public Integer capaianNonoperasi2bulanlalu;
@Column(name = "capaianvisite2bulanlalu")
@Caption(value = "Capaian Visite")
public Integer capaianVisit2bulanlalu;
@Column(name = "capaiankonsultasi2bulanlalu")
@Caption(value = "Capaian Konsultasi")
public Integer capaianKonsultasi2bulanlalu;
@Column(name = "capaianoperasibulanlalu")
@Caption(value = "Capaian Operasi")
public Integer capaianOperasi1bulanlalu;
@Column(name = "capaiannonoperasibulanlalu")
@Caption(value = "Capaian Nonoperasi")
public Integer capaianNonoperasi1bulanlalu;
@Column(name = "capaianvisitebulanlalu")
@Caption(value = "Capaian Visite")
public Integer capaianVisit1bulanlalu;
@Column(name = "capaiankonsultasibulanlalu")
@Caption(value = "Capaian Konsultasi")
public Integer capaianKonsultasi1bulanlalu;
@Column(name = "targetoperasi")
@Caption(value = "Target Operasi")
public Integer targetOperasi;
@Column(name = "targetnonoperasi")
@Caption(value = "Target Nonoperasi")
public Integer targetNonoperasi;
@Column(name = "targetvisite")
@Caption(value = "Target Visite")
public Integer targetVisite;
@Column(name = "targetkonsultasi")
@Caption(value = "Target Konsultasi")
public Integer targetKonsultasi;
public UnitKerjaPegawai getUnitKerjaPegawai() { public UnitKerjaPegawai getUnitKerjaPegawai() {
return unitKerjaPegawai; return unitKerjaPegawai;
@ -157,132 +109,36 @@ public class TargetLayanan extends BaseTransaction {
this.periode = periode; this.periode = periode;
} }
public Integer getCapaianOperasi3bulanlalu() { public IndikatorKinerja getIndikator() {
return capaianOperasi3bulanlalu; return indikator;
} }
public void setCapaianOperasi3bulanlalu(Integer capaianOperasi3bulanlalu) { public void setIndikator(IndikatorKinerja indikator) {
this.capaianOperasi3bulanlalu = capaianOperasi3bulanlalu; this.indikator = indikator;
} }
public Integer getCapaianNonoperasi3bulanlalu() { public Integer getIndikatorId() {
return capaianNonoperasi3bulanlalu; return indikatorId;
} }
public void setCapaianNonoperasi3bulanlalu(Integer capaianNonoperasi3bulanlalu) { public void setIndikatorId(Integer indikatorId) {
this.capaianNonoperasi3bulanlalu = capaianNonoperasi3bulanlalu; this.indikatorId = indikatorId;
} }
public Integer getCapaianVisit3bulanlalu() { public Double getCapaian() {
return capaianVisit3bulanlalu; return capaian;
} }
public void setCapaianVisit3bulanlalu(Integer capaianVisit3bulanlalu) { public void setCapaian(Double capaian) {
this.capaianVisit3bulanlalu = capaianVisit3bulanlalu; this.capaian = capaian;
} }
public Integer getCapaianKonsultasi3bulanlalu() { public Double getTarget() {
return capaianKonsultasi3bulanlalu; return target;
} }
public void setCapaianKonsultasi3bulanlalu(Integer capaianKonsultasi3bulanlalu) { public void setTarget(Double target) {
this.capaianKonsultasi3bulanlalu = capaianKonsultasi3bulanlalu; this.target = target;
}
public Integer getCapaianOperasi2bulanlalu() {
return capaianOperasi2bulanlalu;
}
public void setCapaianOperasi2bulanlalu(Integer capaianOperasi2bulanlalu) {
this.capaianOperasi2bulanlalu = capaianOperasi2bulanlalu;
}
public Integer getCapaianNonoperasi2bulanlalu() {
return capaianNonoperasi2bulanlalu;
}
public void setCapaianNonoperasi2bulanlalu(Integer capaianNonoperasi2bulanlalu) {
this.capaianNonoperasi2bulanlalu = capaianNonoperasi2bulanlalu;
}
public Integer getCapaianVisit2bulanlalu() {
return capaianVisit2bulanlalu;
}
public void setCapaianVisit2bulanlalu(Integer capaianVisit2bulanlalu) {
this.capaianVisit2bulanlalu = capaianVisit2bulanlalu;
}
public Integer getCapaianKonsultasi2bulanlalu() {
return capaianKonsultasi2bulanlalu;
}
public void setCapaianKonsultasi2bulanlalu(Integer capaianKonsultasi2bulanlalu) {
this.capaianKonsultasi2bulanlalu = capaianKonsultasi2bulanlalu;
}
public Integer getCapaianOperasi1bulanlalu() {
return capaianOperasi1bulanlalu;
}
public void setCapaianOperasi1bulanlalu(Integer capaianOperasi1bulanlalu) {
this.capaianOperasi1bulanlalu = capaianOperasi1bulanlalu;
}
public Integer getCapaianNonoperasi1bulanlalu() {
return capaianNonoperasi1bulanlalu;
}
public void setCapaianNonoperasi1bulanlalu(Integer capaianNonoperasi1bulanlalu) {
this.capaianNonoperasi1bulanlalu = capaianNonoperasi1bulanlalu;
}
public Integer getCapaianVisit1bulanlalu() {
return capaianVisit1bulanlalu;
}
public void setCapaianVisit1bulanlalu(Integer capaianVisit1bulanlalu) {
this.capaianVisit1bulanlalu = capaianVisit1bulanlalu;
}
public Integer getCapaianKonsultasi1bulanlalu() {
return capaianKonsultasi1bulanlalu;
}
public void setCapaianKonsultasi1bulanlalu(Integer capaianKonsultasi1bulanlalu) {
this.capaianKonsultasi1bulanlalu = capaianKonsultasi1bulanlalu;
}
public Integer getTargetOperasi() {
return targetOperasi;
}
public void setTargetOperasi(Integer targetOperasi) {
this.targetOperasi = targetOperasi;
}
public Integer getTargetNonoperasi() {
return targetNonoperasi;
}
public void setTargetNonoperasi(Integer targetNonoperasi) {
this.targetNonoperasi = targetNonoperasi;
}
public Integer getTargetVisit() {
return targetVisite;
}
public void setTargetVisit(Integer targetVisite) {
this.targetVisite = targetVisite;
}
public Integer getTargetKonsultasi() {
return targetKonsultasi;
}
public void setTargetKonsultasi(Integer targetKonsultasi) {
this.targetKonsultasi = targetKonsultasi;
} }
} }

View File

@ -0,0 +1,51 @@
package com.jasamedika.medifirst2000.vo;
import com.jasamedika.medifirst2000.helper.Caption;
public class TargetLayananCustomDetailVO {
@Caption(value = "Date")
String date;
@Caption(value = "Bulan")
String bulan;
@Caption(value = "Capaian")
Double capaian;
@Caption(value = "Target")
Double target;
public String getDate() {
return date;
}
public void setDate(String date) {
this.date = date;
}
public String getBulan() {
return bulan;
}
public void setBulan(String bulan) {
this.bulan = bulan;
}
public Double getCapaian() {
return capaian;
}
public void setCapaian(Double capaian) {
this.capaian = capaian;
}
public Double getTarget() {
return target;
}
public void setTarget(Double target) {
this.target = target;
}
}

View File

@ -0,0 +1,67 @@
package com.jasamedika.medifirst2000.vo;
import java.util.List;
import com.jasamedika.medifirst2000.base.vo.BaseTransactionVO;
import com.jasamedika.medifirst2000.helper.Caption;
public class TargetLayananCustomVO extends BaseTransactionVO {
private static final long serialVersionUID = 3163629696201167352L;
@Caption(value = "Indikator Kinerja")
public IndikatorKinerjaVO indikator;
@Caption(value = "Id Indikator Kinerja")
public Integer indikatorId;
@Caption(value = "Kelompok Kerja")
public SubUnitKerjaPegawaiVO kelompokKerja;
@Caption(value = "Id Kelompok Kerja")
public Integer kelompokKerjaId;
@Caption(value = "Detail")
public List<TargetLayananCustomDetailVO> detail;
public IndikatorKinerjaVO getIndikator() {
return indikator;
}
public void setIndikator(IndikatorKinerjaVO indikator) {
this.indikator = indikator;
}
public Integer getIndikatorId() {
return indikatorId;
}
public void setIndikatorId(Integer indikatorId) {
this.indikatorId = indikatorId;
}
public SubUnitKerjaPegawaiVO getKelompokKerja() {
return kelompokKerja;
}
public void setKelompokKerja(SubUnitKerjaPegawaiVO kelompokKerja) {
this.kelompokKerja = kelompokKerja;
}
public Integer getKelompokKerjaId() {
return kelompokKerjaId;
}
public void setKelompokKerjaId(Integer kelompokKerjaId) {
this.kelompokKerjaId = kelompokKerjaId;
}
public List<TargetLayananCustomDetailVO> getDetail() {
return detail;
}
public void setDetail(List<TargetLayananCustomDetailVO> detail) {
this.detail = detail;
}
}

View File

@ -27,53 +27,17 @@ public class TargetLayananVO extends BaseTransactionVO {
@Caption(value = "Periode") @Caption(value = "Periode")
public Date periode; public Date periode;
@Caption(value = "Capaian Operasi") @Caption(value = "Indikator Kinerja")
public Integer capaianOperasi3bulanlalu; public IndikatorKinerjaVO indikator;
@Caption(value = "Capaian Nonoperasi") @Caption(value = "Id Indikator Kinerja")
public Integer capaianNonoperasi3bulanlalu; public Integer indikatorId;
@Caption(value = "Capaian Visite") @Caption(value = "Capaian")
public Integer capaianVisit3bulanlalu; public Double capaian;
@Caption(value = "Capaian Konsultasi") @Caption(value = "Target")
public Integer capaianKonsultasi3bulanlalu; public Double target;
@Caption(value = "Capaian Operasi")
public Integer capaianOperasi2bulanlalu;
@Caption(value = "Capaian Nonoperasi")
public Integer capaianNonoperasi2bulanlalu;
@Caption(value = "Capaian Visite")
public Integer capaianVisit2bulanlalu;
@Caption(value = "Capaian Konsultasi")
public Integer capaianKonsultasi2bulanlalu;
@Caption(value = "Capaian Operasi")
public Integer capaianOperasi1bulanlalu;
@Caption(value = "Capaian Nonoperasi")
public Integer capaianNonoperasi1bulanlalu;
@Caption(value = "Capaian Visite")
public Integer capaianVisit1bulanlalu;
@Caption(value = "Capaian Konsultasi")
public Integer capaianKonsultasi1bulanlalu;
@Caption(value = "Target Operasi")
public Integer targetOperasi;
@Caption(value = "Target Nonoperasi")
public Integer targetNonoperasi;
@Caption(value = "Target Visite")
public Integer targetVisite;
@Caption(value = "Target Konsultasi")
public Integer targetKonsultasi;
public UnitKerjaPegawaiVO getUnitKerjaPegawai() { public UnitKerjaPegawaiVO getUnitKerjaPegawai() {
return unitKerjaPegawai; return unitKerjaPegawai;
@ -123,132 +87,36 @@ public class TargetLayananVO extends BaseTransactionVO {
this.periode = periode; this.periode = periode;
} }
public Integer getCapaianOperasi3bulanlalu() { public IndikatorKinerjaVO getIndikator() {
return capaianOperasi3bulanlalu; return indikator;
} }
public void setCapaianOperasi3bulanlalu(Integer capaianOperasi3bulanlalu) { public void setIndikator(IndikatorKinerjaVO indikator) {
this.capaianOperasi3bulanlalu = capaianOperasi3bulanlalu; this.indikator = indikator;
} }
public Integer getCapaianNonoperasi3bulanlalu() { public Integer getIndikatorId() {
return capaianNonoperasi3bulanlalu; return indikatorId;
} }
public void setCapaianNonoperasi3bulanlalu(Integer capaianNonoperasi3bulanlalu) { public void setIndikatorId(Integer indikatorId) {
this.capaianNonoperasi3bulanlalu = capaianNonoperasi3bulanlalu; this.indikatorId = indikatorId;
} }
public Integer getCapaianVisit3bulanlalu() { public Double getCapaian() {
return capaianVisit3bulanlalu; return capaian;
} }
public void setCapaianVisit3bulanlalu(Integer capaianVisit3bulanlalu) { public void setCapaian(Double capaian) {
this.capaianVisit3bulanlalu = capaianVisit3bulanlalu; this.capaian = capaian;
} }
public Integer getCapaianKonsultasi3bulanlalu() { public Double getTarget() {
return capaianKonsultasi3bulanlalu; return target;
} }
public void setCapaianKonsultasi3bulanlalu(Integer capaianKonsultasi3bulanlalu) { public void setTarget(Double target) {
this.capaianKonsultasi3bulanlalu = capaianKonsultasi3bulanlalu; this.target = target;
}
public Integer getCapaianOperasi2bulanlalu() {
return capaianOperasi2bulanlalu;
}
public void setCapaianOperasi2bulanlalu(Integer capaianOperasi2bulanlalu) {
this.capaianOperasi2bulanlalu = capaianOperasi2bulanlalu;
}
public Integer getCapaianNonoperasi2bulanlalu() {
return capaianNonoperasi2bulanlalu;
}
public void setCapaianNonoperasi2bulanlalu(Integer capaianNonoperasi2bulanlalu) {
this.capaianNonoperasi2bulanlalu = capaianNonoperasi2bulanlalu;
}
public Integer getCapaianVisit2bulanlalu() {
return capaianVisit2bulanlalu;
}
public void setCapaianVisit2bulanlalu(Integer capaianVisit2bulanlalu) {
this.capaianVisit2bulanlalu = capaianVisit2bulanlalu;
}
public Integer getCapaianKonsultasi2bulanlalu() {
return capaianKonsultasi2bulanlalu;
}
public void setCapaianKonsultasi2bulanlalu(Integer capaianKonsultasi2bulanlalu) {
this.capaianKonsultasi2bulanlalu = capaianKonsultasi2bulanlalu;
}
public Integer getCapaianOperasi1bulanlalu() {
return capaianOperasi1bulanlalu;
}
public void setCapaianOperasi1bulanlalu(Integer capaianOperasi1bulanlalu) {
this.capaianOperasi1bulanlalu = capaianOperasi1bulanlalu;
}
public Integer getCapaianNonoperasi1bulanlalu() {
return capaianNonoperasi1bulanlalu;
}
public void setCapaianNonoperasi1bulanlalu(Integer capaianNonoperasi1bulanlalu) {
this.capaianNonoperasi1bulanlalu = capaianNonoperasi1bulanlalu;
}
public Integer getCapaianVisit1bulanlalu() {
return capaianVisit1bulanlalu;
}
public void setCapaianVisit1bulanlalu(Integer capaianVisit1bulanlalu) {
this.capaianVisit1bulanlalu = capaianVisit1bulanlalu;
}
public Integer getCapaianKonsultasi1bulanlalu() {
return capaianKonsultasi1bulanlalu;
}
public void setCapaianKonsultasi1bulanlalu(Integer capaianKonsultasi1bulanlalu) {
this.capaianKonsultasi1bulanlalu = capaianKonsultasi1bulanlalu;
}
public Integer getTargetOperasi() {
return targetOperasi;
}
public void setTargetOperasi(Integer targetOperasi) {
this.targetOperasi = targetOperasi;
}
public Integer getTargetNonoperasi() {
return targetNonoperasi;
}
public void setTargetNonoperasi(Integer targetNonoperasi) {
this.targetNonoperasi = targetNonoperasi;
}
public Integer getTargetVisite() {
return targetVisite;
}
public void setTargetVisite(Integer targetVisite) {
this.targetVisite = targetVisite;
}
public Integer getTargetKonsultasi() {
return targetKonsultasi;
}
public void setTargetKonsultasi(Integer targetKonsultasi) {
this.targetKonsultasi = targetKonsultasi;
} }
} }

View File

@ -7547,25 +7547,6 @@ public class ReportingController extends LocaleController<RegistrasiPelayananVO>
} }
} }
@RequestMapping(value = "/rekapitulasi-laporan-pendapatan-ruangan", method = RequestMethod.GET)
public ResponseEntity<List<Map<String, Object>>> getMappingAkomodasi(HttpServletRequest request,
@RequestParam("tglAwal") String tglAwal, @RequestParam("tglAkhir") String tglAkhir) throws ParseException {
try {
List<Map<String, Object>> result = pelayananPasienService.getRekapPendapatanAllRuangan(tglAwal, tglAkhir);
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 all mapping akomodasi", 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 all mapping akomodasi", jse.getMessage());
addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, jse.getMessage());
return RestUtil.getJsonHttptatus(HttpStatus.CONFLICT, mapHeaderMessage);
}
}
@RequestMapping(value = "/rekapitulasi-kunjungan-pasien", method = RequestMethod.GET) @RequestMapping(value = "/rekapitulasi-kunjungan-pasien", method = RequestMethod.GET)
public ResponseEntity<List<Map<String, Object>>> getRekapKunjunganPasien(HttpServletRequest request, public ResponseEntity<List<Map<String, Object>>> getRekapKunjunganPasien(HttpServletRequest request,
@RequestParam("tglAwal") String tglAwal, @RequestParam("tglAkhir") String tglAkhir, @RequestParam("tglAwal") String tglAwal, @RequestParam("tglAkhir") String tglAkhir,

View File

@ -233,33 +233,12 @@ public class IkiDanRemunerasiController extends LocaleController<IkiDanRemuneras
} }
@RequestMapping(value = "/get-target-layanan-bulanan", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<List<Map<String, Object>>> getTargetLayananBulanan(HttpServletRequest request) {
try {
List<Map<String, Object>> result = service.calculateTargetLayananBulanan();
if (CommonUtil.isNotNullOrEmpty(result)) {
mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_SUCCESS,
getMessage(MessageResource.LABEL_SUCCESS, request));
return RestUtil.getJsonResponse(result, HttpStatus.OK, mapHeaderMessage);
} else {
return RestUtil.getJsonResponse(result, HttpStatus.NOT_FOUND, mapHeaderMessage);
}
} catch (ServiceVOException e) {
LOGGER.error("Got exception {} when calculate target layanan bulanan", e.getMessage());
addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, e.getMessage());
return RestUtil.getJsonHttptatus(HttpStatus.INTERNAL_SERVER_ERROR, mapHeaderMessage);
} catch (JpaSystemException jse) {
LOGGER.error("Got exception {} when calculate target layanan bulanan", jse.getMessage());
addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, jse.getMessage());
return RestUtil.getJsonHttptatus(HttpStatus.CONFLICT, mapHeaderMessage);
}
}
@RequestMapping(value = "/get-all-target-dan-capaian-layanan", method = RequestMethod.GET) @RequestMapping(value = "/get-all-target-dan-capaian-layanan", method = RequestMethod.GET)
public ResponseEntity<List<Map<String, Object>>> getAllTargetLayanan(HttpServletRequest request, public ResponseEntity<List<Map<String, Object>>> getAllTargetLayanan(HttpServletRequest request,
@RequestParam(value = "periode", required = true) String periode) throws ParseException { @RequestParam(value = "periode", required = true) String periode,
@RequestParam(value = "jumlahBulan", required = true) Integer jumlahBulan) throws ParseException {
try { try {
List<Map<String, Object>> result = service.findAllTargetCapaianLayanan(periode); List<Map<String, Object>> result = service.findAllTargetCapaianLayanan(periode, jumlahBulan);
mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_SUCCESS, mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_SUCCESS,
getMessage(MessageResource.LABEL_SUCCESS, request)); getMessage(MessageResource.LABEL_SUCCESS, request));
return RestUtil.getJsonResponse(result, HttpStatus.OK, mapHeaderMessage); return RestUtil.getJsonResponse(result, HttpStatus.OK, mapHeaderMessage);

View File

@ -63,25 +63,6 @@ public class PelayananController extends LocaleController<PelayananPasienVO> {
@Autowired @Autowired
private SatuanStandarService satuanStandarService; private SatuanStandarService satuanStandarService;
@RequestMapping(value = "/rekapitulasi-laporan-pendapatan-ruangan", method = RequestMethod.GET)
public ResponseEntity<List<Map<String, Object>>> getMappingAkomodasi(HttpServletRequest request,
@RequestParam("tglAwal") String tglAwal, @RequestParam("tglAkhir") String tglAkhir) throws ParseException {
try {
List<Map<String, Object>> result = pelayananPasienService.getRekapPendapatanAllRuangan(tglAwal, tglAkhir);
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 all mapping akomodasi", 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 all mapping akomodasi", jse.getMessage());
addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, jse.getMessage());
return RestUtil.getJsonHttptatus(HttpStatus.CONFLICT, mapHeaderMessage);
}
}
@RequestMapping(value = "/calculate-indikator-pelayanan", method = RequestMethod.GET) @RequestMapping(value = "/calculate-indikator-pelayanan", method = RequestMethod.GET)
public ResponseEntity<List<Map<String, Object>>> calculateIndikatorPelayanan(HttpServletRequest request, public ResponseEntity<List<Map<String, Object>>> calculateIndikatorPelayanan(HttpServletRequest request,
@RequestParam("tahun") String tahun) throws ParseException { @RequestParam("tahun") String tahun) throws ParseException {

View File

@ -5523,10 +5523,10 @@ public class SdmController extends LocaleController<AkunVO> {
} }
@RequestMapping(value = "/save-target-layanan/", method = RequestMethod.POST) @RequestMapping(value = "/save-target-layanan/", method = RequestMethod.POST)
public ResponseEntity<Map<String, Object>> addAllTargetLayanan(@RequestBody List<TargetLayananVO> vos, public ResponseEntity<List<String>> addAllTargetLayanan(@RequestBody List<TargetLayananCustomVO> vos,
HttpServletRequest request) { HttpServletRequest request) throws ParseException {
try { try {
Map<String, Object> result = targetLayananService.addAll(vos); List<String> result = targetLayananService.addAll(vos);
if (null != result) if (null != result)
mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_SUCCESS, mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_SUCCESS,
getMessage(MessageResource.LABEL_SUCCESS, request)); getMessage(MessageResource.LABEL_SUCCESS, request));
@ -5536,7 +5536,7 @@ public class SdmController extends LocaleController<AkunVO> {
addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, e.getMessage()); addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, e.getMessage());
return RestUtil.getJsonHttptatus(HttpStatus.INTERNAL_SERVER_ERROR, mapHeaderMessage); return RestUtil.getJsonHttptatus(HttpStatus.INTERNAL_SERVER_ERROR, mapHeaderMessage);
} catch (JpaSystemException jse) { } catch (JpaSystemException jse) {
LOGGER.error("Got exception {} when add target layanan", jse.getMessage()); LOGGER.error("Got exception {} when add target layanan", jse.getMessage());
addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, jse.getMessage()); addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, jse.getMessage());
return RestUtil.getJsonHttptatus(HttpStatus.CONFLICT, mapHeaderMessage); return RestUtil.getJsonHttptatus(HttpStatus.CONFLICT, mapHeaderMessage);
} }