From dd8c3db33b8ff6a686c9084ef065f82da3d97dbf Mon Sep 17 00:00:00 2001 From: salmanoe Date: Thu, 27 May 2021 14:30:19 +0700 Subject: [PATCH] - 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 --- .../medifirst2000/constants/Master.java | 13 + .../dao/IkiDanRemunerasiDao.java | 26 +- .../dao/IndikatorKinerjaDao.java | 6 +- .../medifirst2000/dao/PegawaiDao.java | 7 +- .../medifirst2000/dao/PelayananPasienDao.java | 14 - .../dao/SkoringTindakanMedisDao.java | 34 +- .../medifirst2000/dao/SubUnitKerjaDao.java | 5 + .../medifirst2000/dao/TargetLayananDao.java | 15 +- .../dao/custom/PegawaiDaoCustomImpl.java | 14 +- .../service/IkiDanRemunerasiService.java | 4 +- .../service/PelayananPasienService.java | 2 - .../service/TargetLayananService.java | 13 +- .../impl/IkiDanRemunerasiServiceImpl.java | 581 +++++++++--------- .../impl/IndikatorKinerjaServiceImpl.java | 2 +- .../impl/PelayananPasienServiceImpl.java | 93 --- .../impl/SkoringTindakanMedisServiceImpl.java | 63 +- .../impl/TargetLayananServiceImpl.java | 88 ++- .../medifirst2000/entities/TargetLayanan.java | 222 ++----- .../vo/TargetLayananCustomDetailVO.java | 51 ++ .../vo/TargetLayananCustomVO.java | 67 ++ .../medifirst2000/vo/TargetLayananVO.java | 200 +----- .../controller/ReportingController.java | 19 - .../IkiDanRemunerasiController.java | 27 +- .../controller/PelayananController.java | 19 - .../controller/SdmController.java | 8 +- 25 files changed, 701 insertions(+), 892 deletions(-) create mode 100644 jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/vo/TargetLayananCustomDetailVO.java create mode 100644 jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/vo/TargetLayananCustomVO.java diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/constants/Master.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/constants/Master.java index 64287d56..7ba3ca41 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/constants/Master.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/constants/Master.java @@ -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 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 int DIRUT_STRUKTURAL = 896; public static final int DIRUT_INTERNAL = 137; diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/IkiDanRemunerasiDao.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/IkiDanRemunerasiDao.java index 3b6081de..e76ea33f 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/IkiDanRemunerasiDao.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/IkiDanRemunerasiDao.java @@ -19,10 +19,11 @@ public interface IkiDanRemunerasiDao extends PagingAndSortingRepository :karcisId") + + "and pr.id <> :karcisId order by su.name, pr.id") public List> getDataLayanan(@Param("tglAwal") Date tglAwal, @Param("tglAkhir") Date tglAkhir, @Param("dokterId") Integer dokterId, @Param("listKsmId") List listKsmId, @Param("listNontindakanId") List listNontindakanId, @Param("karcisId") Integer karcisId); diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/IndikatorKinerjaDao.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/IndikatorKinerjaDao.java index 8805a838..81fdd480 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/IndikatorKinerjaDao.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/IndikatorKinerjaDao.java @@ -27,7 +27,7 @@ public interface IndikatorKinerjaDao extends PagingAndSortingRepository> findAllDup(@Param("listIdDup") List listIdDup); + + "where ik.statusEnabled is true " + "and ik.id in (:listIdIndikator)") + List> findIndikator(@Param("listIdIndikator") List listIdIndikator); } diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/PegawaiDao.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/PegawaiDao.java index ea76cb0b..ef0040a5 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/PegawaiDao.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/PegawaiDao.java @@ -386,9 +386,10 @@ public interface PegawaiDao extends PagingAndSortingRepository + "jabatanFungsional.namaJabatan as namaJabatan," + "jabatanLamar.namaJabatan as jabatanLamar," + "jabatanStruktural.namaJabatan as jabatanStruktural," + "jenisKelamin.jenisKelamin as jenisKelamin," + "jenisPegawai.jenisPegawai as jenisPegawai," + "jenisPegawaiLamar.jenisPegawai as jenisPegawaiLamar," - + "kategoriPegawai.kategoryPegawai as kategoriPegawai," + "kedudukan.name as kedudukan," - + "kualifikasiJurusan.kualifikasiJurusan as kualifikasiJurusan," + "negara.namaNegara as namaNegara," - + "pangkat.namaPangkat as namaPangkat," + "pendidikan.namaPendidikan as namaPendidikan," + + "kategoriPegawai.kategoryPegawai as kategoriPegawai," + "kedudukan.id as kedudukanId," + + "kedudukan.name as kedudukan," + "kualifikasiJurusan.kualifikasiJurusan as kualifikasiJurusan," + + "negara.namaNegara as namaNegara," + "pangkat.namaPangkat as namaPangkat," + + "pendidikan.namaPendidikan as namaPendidikan," + "penghasilanTidakKenaPajak.deskripsi as penghasilanTidakKenaPajak," + "pegawai.totalNilaiScore as totalNilaiScore," + "pegawai.tunjanganFungsional as tunjanganFungsional," + "pegawai.tunjanganPapua as tunjanganPapua," + "pegawai.tunjanganUmum as tunjanganUmum," diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/PelayananPasienDao.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/PelayananPasienDao.java index 012b1f7e..c1439604 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/PelayananPasienDao.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/PelayananPasienDao.java @@ -140,20 +140,6 @@ public interface PelayananPasienDao extends PagingAndSortingRepository 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> findDataLayananAllRuangan(@Param("tglAwal") Date tglAwal, - @Param("tglAkhir") Date tglAkhir, @Param("listNontindakanId") List listNontindakanId); - @Query("select new Map(" + "pg.id as idPegawai, " + "pg.namaLengkap as namaPegawai, " + "pg.typePegawaiId as tipePegawai, " + "kp.id as idKelPasien, " + "pr.id as idLayanan, " + "pr.namaProduk as namaLayanan, " + "ru.departemenId as idDepartemen, " diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/SkoringTindakanMedisDao.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/SkoringTindakanMedisDao.java index 9c69d66b..18dfe2e9 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/SkoringTindakanMedisDao.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/SkoringTindakanMedisDao.java @@ -1,5 +1,6 @@ package com.jasamedika.medifirst2000.dao; +import java.util.Date; import java.util.List; import java.util.Map; @@ -19,7 +20,7 @@ public interface SkoringTindakanMedisDao extends PagingAndSortingRepository> findAllEnabled(); @@ -73,25 +74,28 @@ public interface SkoringTindakanMedisDao extends PagingAndSortingRepository> findAllEnabledByUnitProdukDetail(@Param("listSubunitKerjaId") List listIdKelompokKerja, - @Param("namaProduk") String namaProduk, @Param("detailProduk") String detailProduk); + List> findAllEnabledByUnitProdukDetail( + @Param("listSubunitKerjaId") List listIdKelompokKerja, @Param("namaProduk") String namaProduk, + @Param("detailProduk") String detailProduk); @Query(strAllEnabled + kelompokKerja + produk + statusVerifikasi + sortSearch) - List> findAllEnabledByUnitProdukVerif(@Param("listSubunitKerjaId") List listIdKelompokKerja, - @Param("namaProduk") String namaProduk, @Param("isStatusVerifikasi") Boolean statusVerifikasi); + List> findAllEnabledByUnitProdukVerif( + @Param("listSubunitKerjaId") List listIdKelompokKerja, @Param("namaProduk") String namaProduk, + @Param("isStatusVerifikasi") Boolean statusVerifikasi); @Query(strAllEnabled + kelompokKerja + detailProduk + statusVerifikasi + sortSearch) - List> findAllEnabledByUnitDetailVerif(@Param("listSubunitKerjaId") List listIdKelompokKerja, - @Param("detailProduk") String detailProduk, @Param("isStatusVerifikasi") Boolean statusVerifikasi); + List> findAllEnabledByUnitDetailVerif( + @Param("listSubunitKerjaId") List listIdKelompokKerja, @Param("detailProduk") String detailProduk, + @Param("isStatusVerifikasi") Boolean statusVerifikasi); @Query(strAllEnabled + produk + detailProduk + statusVerifikasi + sortSearch) List> findAllEnabledByProdukDetailVerif(@Param("namaProduk") String namaProduk, @Param("detailProduk") String detailProduk, @Param("isStatusVerifikasi") Boolean statusVerifikasi); @Query(strAllEnabled + kelompokKerja + produk + detailProduk + statusVerifikasi + sortSearch) - List> findAllEnabledByUnitProdukDetailVerif(@Param("listSubunitKerjaId") List listIdKelompokKerja, - @Param("namaProduk") String namaProduk, @Param("detailProduk") String detailProduk, - @Param("isStatusVerifikasi") Boolean statusVerifikasi); + List> findAllEnabledByUnitProdukDetailVerif( + @Param("listSubunitKerjaId") List listIdKelompokKerja, @Param("namaProduk") String namaProduk, + @Param("detailProduk") String detailProduk, @Param("isStatusVerifikasi") Boolean statusVerifikasi); String strCekDupSkoring = "select stm.noRec " + "from SkoringTindakanMedis stm " + "inner join stm.produk pd " + "where stm.statusEnabled is true " @@ -116,4 +120,12 @@ public interface SkoringTindakanMedisDao extends PagingAndSortingRepository> findAllDup(@Param("listNorec") List 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> findLatestActiveSkor(); + } diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/SubUnitKerjaDao.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/SubUnitKerjaDao.java index e16cf09c..2bb727d9 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/SubUnitKerjaDao.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/SubUnitKerjaDao.java @@ -28,6 +28,11 @@ public interface SubUnitKerjaDao extends PagingAndSortingRepository> findSubunitKerja(@Param("listSubunitKerjaId") List listIdSubunitKerja); + @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") List> getSubunitKerjaByUnitKerja(@Param("idUnitKerjaPegawai") Integer idUnitKerjaPegawai); diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/TargetLayananDao.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/TargetLayananDao.java index 6bf3e1a3..83718ecc 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/TargetLayananDao.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/TargetLayananDao.java @@ -13,12 +13,13 @@ import com.jasamedika.medifirst2000.entities.TargetLayanan; @Repository("targetLayananDao") public interface TargetLayananDao extends CrudRepository { - @Query("select new Map(tl.subUnitKerjaPegawaiId as idSubunit," - + "tl.targetOperasi as targetOperasi,tl.targetNonoperasi as targetNonoperasi," - + "tl.targetVisite as targetVisite,tl.targetKonsultasi as targetKonsultasi," - + "to_char(tl.periode,'yyyy-MM') as periode,max(tl.tglHitung) as lastTglHitung) " + "from TargetLayanan tl " - + "where 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')") - public List> getLastTargetLayanan(@Param("tglAwal") String tglAwal, @Param("tglAkhir") String tglAkhir); + @Query("select new Map(sk.id as kelompokKerjaId," + "ikm.id as indikatorId," + + "tl.target as target,to_char(tl.periode,'yyyy-MM') as periode,tl.tglHitung as tglHitung) " + + "from TargetLayanan tl " + "inner join tl.subUnitKerjaPegawai sk " + "inner join tl.indikator ikm " + + "where sk.statusEnabled is true " + "and ikm.statusEnabled is true and ikm.statusVerifikasi is true " + + "and to_char(tl.periode,'yyyy-MM') between :tglAwal and :tglAkhir " + + "order by sk.name, tl.tglHitung desc") + public List> getLastTargetLayanan(@Param("tglAwal") String tglAwal, + @Param("tglAkhir") String tglAkhir); } diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/custom/PegawaiDaoCustomImpl.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/custom/PegawaiDaoCustomImpl.java index 0be4e87e..9f45d137 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/custom/PegawaiDaoCustomImpl.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/custom/PegawaiDaoCustomImpl.java @@ -329,9 +329,10 @@ public class PegawaiDaoCustomImpl extends CoreDaoImpl implements Pegawa + "jabatanFungsional.namaJabatan as namaJabatan," + "jabatanLamar.namaJabatan as jabatanLamar," + "jabatanStruktural.namaJabatan as jabatanStruktural," + "jenisKelamin.jenisKelamin as jenisKelamin," + "jenisPegawai.jenisPegawai as jenisPegawai," + "jenisPegawaiLamar.jenisPegawai as jenisPegawaiLamar," - + "kategoriPegawai.kategoryPegawai as kategoriPegawai," + "kedudukan.name as kedudukan," - + "kualifikasiJurusan.kualifikasiJurusan as kualifikasiJurusan," + "negara.namaNegara as namaNegara," - + "pangkat.namaPangkat as namaPangkat," + "pendidikan.namaPendidikan as namaPendidikan," + + "kategoriPegawai.kategoryPegawai as kategoriPegawai," + "kedudukan.id as kedudukanId," + + "kedudukan.name as kedudukan," + "kualifikasiJurusan.kualifikasiJurusan as kualifikasiJurusan," + + "negara.namaNegara as namaNegara," + "pangkat.namaPangkat as namaPangkat," + + "pendidikan.namaPendidikan as namaPendidikan," + "penghasilanTidakKenaPajak.deskripsi as penghasilanTidakKenaPajak," + "pegawai.totalNilaiScore as totalNilaiScore," + "pegawai.tunjanganFungsional as tunjanganFungsional," + "pegawai.tunjanganPapua as tunjanganPapua," + "pegawai.tunjanganUmum as tunjanganUmum," @@ -470,9 +471,10 @@ public class PegawaiDaoCustomImpl extends CoreDaoImpl implements Pegawa + "jabatanFungsional.namaJabatan as namaJabatan," + "jabatanLamar.namaJabatan as jabatanLamar," + "jabatanStruktural.namaJabatan as jabatanStruktural," + "jenisKelamin.jenisKelamin as jenisKelamin," + "jenisPegawai.jenisPegawai as jenisPegawai," + "jenisPegawaiLamar.jenisPegawai as jenisPegawaiLamar," - + "kategoriPegawai.kategoryPegawai as kategoriPegawai," + "kedudukan.name as kedudukan," - + "kualifikasiJurusan.kualifikasiJurusan as kualifikasiJurusan," + "negara.namaNegara as namaNegara," - + "pangkat.namaPangkat as namaPangkat," + "pendidikan.namaPendidikan as namaPendidikan," + + "kategoriPegawai.kategoryPegawai as kategoriPegawai," + "kedudukan.id as kedudukanId," + + "kedudukan.name as kedudukan," + "kualifikasiJurusan.kualifikasiJurusan as kualifikasiJurusan," + + "negara.namaNegara as namaNegara," + "pangkat.namaPangkat as namaPangkat," + + "pendidikan.namaPendidikan as namaPendidikan," + "penghasilanTidakKenaPajak.deskripsi as penghasilanTidakKenaPajak," + "pegawai.totalNilaiScore as totalNilaiScore," + "pegawai.tunjanganFungsional as tunjanganFungsional," + "pegawai.tunjanganPapua as tunjanganPapua," + "pegawai.tunjanganUmum as tunjanganUmum," diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/IkiDanRemunerasiService.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/IkiDanRemunerasiService.java index c2988de3..111c62d6 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/IkiDanRemunerasiService.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/IkiDanRemunerasiService.java @@ -28,9 +28,7 @@ public interface IkiDanRemunerasiService { public List> findAllIKU(); public Map savePirDanIku(List vo); - - public List> calculateTargetLayananBulanan(); - public List> findAllTargetCapaianLayanan(String strPeriode) throws ParseException; + public List> findAllTargetCapaianLayanan(String strPeriode, Integer jmlBulan) throws ParseException; } diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/PelayananPasienService.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/PelayananPasienService.java index 9d62c83e..ec76ffe1 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/PelayananPasienService.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/PelayananPasienService.java @@ -14,8 +14,6 @@ public interface PelayananPasienService { Map findTindakanPasienMeninggal(Integer noCm); - List> getRekapPendapatanAllRuangan(String tglAwal, String tglAkhir) throws ParseException; - List> hitungRemunerasiDokterDenganFfs(String tglAwal, String tglAkhir); List updateKlaimDiskonKaryawan(String noRegistrasi, Double totalKlaim); diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/TargetLayananService.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/TargetLayananService.java index 4222ed0b..f25ff0b5 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/TargetLayananService.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/TargetLayananService.java @@ -1,13 +1,18 @@ package com.jasamedika.medifirst2000.service; +import java.text.ParseException; import java.util.List; -import java.util.Map; + +import org.springframework.orm.jpa.JpaSystemException; import com.jasamedika.medifirst2000.entities.TargetLayanan; +import com.jasamedika.medifirst2000.exception.ServiceVOException; +import com.jasamedika.medifirst2000.vo.TargetLayananCustomVO; import com.jasamedika.medifirst2000.vo.TargetLayananVO; public interface TargetLayananService extends BaseVoService { - - Map addAll(List vos); - + + List addAll(List vos) + throws JpaSystemException, ServiceVOException, ParseException; + } diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/IkiDanRemunerasiServiceImpl.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/IkiDanRemunerasiServiceImpl.java index 08d17697..4d002d4e 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/IkiDanRemunerasiServiceImpl.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/IkiDanRemunerasiServiceImpl.java @@ -9,8 +9,10 @@ import java.util.Date; import java.util.HashMap; import java.util.HashSet; import java.util.List; +import java.util.Locale; import java.util.Map; import java.util.Set; +import java.util.stream.Collectors; import org.springframework.beans.factory.annotation.Autowired; 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.converter.BaseConverterImpl; import com.jasamedika.medifirst2000.dao.IkiDanRemunerasiDao; +import com.jasamedika.medifirst2000.dao.IndikatorKinerjaDao; import com.jasamedika.medifirst2000.dao.MonitoringAbsenDao; import com.jasamedika.medifirst2000.dao.RunningNumberDao; import com.jasamedika.medifirst2000.dao.SettingPirSdmDao; +import com.jasamedika.medifirst2000.dao.SkoringTindakanMedisDao; import com.jasamedika.medifirst2000.dao.StrukHistoriDao; import com.jasamedika.medifirst2000.dao.StrukPelayananDao; +import com.jasamedika.medifirst2000.dao.SubUnitKerjaDao; import com.jasamedika.medifirst2000.dao.TargetLayananDao; import com.jasamedika.medifirst2000.entities.EvaluasiJabatan; import com.jasamedika.medifirst2000.entities.IkiDanRemunerasi; @@ -52,7 +57,7 @@ import com.jasamedika.medifirst2000.vo.SuratKeputusanVO; import com.jasamedika.medifirst2000.vo.UnitKerjaPegawaiVO; @Service("IkiDanRemunerasiService") -public class IkiDanRemunerasiServiceImpl implements IkiDanRemunerasiService { +public class IkiDanRemunerasiServiceImpl extends BaseVoServiceImpl implements IkiDanRemunerasiService { @Autowired private IkiDanRemunerasiDao ikiDanRemunerasiDao; @@ -66,6 +71,27 @@ public class IkiDanRemunerasiServiceImpl implements IkiDanRemunerasiService { @Autowired private SettingPirSdmDao settingPirSdmDao; + @Autowired + private RunningNumberDao runningNumberDao; + + @Autowired + private StrukHistoriDao strukHistoriDao; + + @Autowired + private BaseConverterImpl strukHistoriConverter; + + @Autowired + private TargetLayananDao targetLayananDao; + + @Autowired + private SkoringTindakanMedisDao skoringTindakanMedisDao; + + @Autowired + private IndikatorKinerjaDao indikatorKinerjaDao; + + @Autowired + private SubUnitKerjaDao subunitKerjaDao; + @Autowired private BaseConverterImpl ikiDanRemunerasiConverter; @@ -90,18 +116,6 @@ public class IkiDanRemunerasiServiceImpl implements IkiDanRemunerasiService { @Autowired private BaseConverterImpl pegawaiConverter; - @Autowired - private RunningNumberDao runningNumberDao; - - @Autowired - private StrukHistoriDao strukHistoriDao; - - @Autowired - private BaseConverterImpl strukHistoriConverter; - - @Autowired - private TargetLayananDao targetLayananDao; - @Override public Map loadData() { Map result = new HashMap<>(); @@ -433,158 +447,15 @@ public class IkiDanRemunerasiServiceImpl implements IkiDanRemunerasiService { } @Override - public List> calculateTargetLayananBulanan() { - List> result = new ArrayList<>(); - 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> 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 listBulanPelayanan = new ArrayList<>(); - for (Map dat : dataLayanan) { - if (!listBulanPelayanan.contains(sdf.format(dat.get("tglPelayanan")))) { - listBulanPelayanan.add(sdf.format(dat.get("tglPelayanan"))); - } - } - - // get_kategori_kelompok_kerja - List listIdKK = new ArrayList<>(); - List> listKK = new ArrayList<>(); - for (Map map : dataLayanan) { - if (!listIdKK.contains(map.get("idKelompokKerja"))) { - listIdKK.add(Integer.parseInt(map.get("idKelompokKerja").toString())); - - Map 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 kk : listKK) { - Map 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 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 mapKsm = new HashMap<>(); - mapKsm.put("id", kk.get("idKsm")); - mapKsm.put("name", kk.get("namaKsm")); - - Map 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> findAllTargetCapaianLayanan(String strPeriode) throws ParseException { + public List> findAllTargetCapaianLayanan(String strPeriode, Integer jmlBulan) + throws ParseException { List> result = new ArrayList<>(); + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM"); + SimpleDateFormat sdfINA = new SimpleDateFormat("MMMM yyyy", new Locale("in", "ID")); 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 Calendar calTglAwal = Calendar.getInstance(); calTglAwal.setTime(periode); @@ -592,7 +463,7 @@ public class IkiDanRemunerasiServiceImpl implements IkiDanRemunerasiService { calTglAwal.set(Calendar.MINUTE, 0); calTglAwal.set(Calendar.SECOND, 0); calTglAwal.set(Calendar.DAY_OF_MONTH, 1); - calTglAwal.add(Calendar.MONTH, -3); + calTglAwal.add(Calendar.MONTH, -jmlBulan); // get_this_period Calendar bulan = Calendar.getInstance(); @@ -602,147 +473,303 @@ public class IkiDanRemunerasiServiceImpl implements IkiDanRemunerasiService { bulan.set(Calendar.SECOND, 0); bulan.set(Calendar.DAY_OF_MONTH, bulan.getActualMaximum(Calendar.DAY_OF_MONTH)); - List> dataLayanan = ikiDanRemunerasiDao.getDataLayanan(calTglAwal.getTime(), + List listRuangEks = splitDataSettingDatafixed("IdRuanganEksekutif"); + + List> listIndikatorPelayanan = indikatorKinerjaDao + .findIndikator(Arrays.asList(Master.IndikatorKinerja.INDIKATOR_PELAYANAN_MEDIS)); + + List> dataLayananRaw = ikiDanRemunerasiDao.getDataLayanan(calTglAwal.getTime(), bulan.getTime(), Master.JenisPegawai.DOKTER, Arrays.asList(Master.UnitKerja.KSM), Arrays.asList(Master.JenisProduk.NONTINDAKAN), Master.Produk.KARCIS); - List> dataLastTargetLayanan = targetLayananDao - .getLastTargetLayanan(sdf.format(calTglAwal.getTime()), sdf.format(bulan.getTime())); - // get_kategori_bulan List listBulanPelayanan = new ArrayList<>(); - for (Map dat : dataLayanan) { + List listBulanPelayananSorted = new ArrayList<>(); + for (Map dat : dataLayananRaw) { if (!listBulanPelayanan.contains(sdf.format(dat.get("tglPelayanan")))) { listBulanPelayanan.add(sdf.format(dat.get("tglPelayanan"))); } } + listBulanPelayananSorted = listBulanPelayanan.stream().sorted().collect(Collectors.toList()); // get_kategori_kelompok_kerja List listIdKK = new ArrayList<>(); - List> listKK = new ArrayList<>(); - for (Map map : dataLayanan) { + for (Map map : dataLayananRaw) { if (!listIdKK.contains(map.get("idKelompokKerja"))) { listIdKK.add(Integer.parseInt(map.get("idKelompokKerja").toString())); + } + } + List> listKelompokKerja = subunitKerjaDao.findSubunitKerja(listIdKK); - Map 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); + List> dataLastTargetLayanan = targetLayananDao + .getLastTargetLayanan(sdf.format(calTglAwal.getTime()), sdf.format(bulan.getTime())); + + List> filterTarget = new ArrayList<>(); + // filtering target + for (Map mapData : dataLastTargetLayanan) { + boolean isContained = false; + for (Map mapFilter : filterTarget) { + if (mapData.get("kelompokKerjaId").equals(mapFilter.get("kelompokKerjaId")) + && mapData.get("indikatorId").equals(mapFilter.get("indikatorId")) + && mapData.get("periode").equals(mapFilter.get("periode"))) { + isContained = true; + break; + } + } + if (!isContained) { + Map mapFilter = new HashMap<>(); + mapFilter.put("kelompokKerjaId", mapData.get("kelompokKerjaId")); + mapFilter.put("indikatorId", mapData.get("indikatorId")); + mapFilter.put("periode", mapData.get("periode")); + filterTarget.add(mapFilter); } } - for (Map kk : listKK) { - Map 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 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()); - for (Map 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 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 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 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")); - } - } + List> dataTargetFiltered = new ArrayList<>(); + // processing Target + for (Map mapFilter : filterTarget) { + for (Map mapData : dataLastTargetLayanan) { + if (mapData.get("kelompokKerjaId").equals(mapFilter.get("kelompokKerjaId")) + && mapData.get("indikatorId").equals(mapFilter.get("indikatorId")) + && mapData.get("periode").equals(mapFilter.get("periode"))) { + dataTargetFiltered.add(mapData); + break; } } - 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); + List> dataSkoringRaw = skoringTindakanMedisDao.findLatestActiveSkor(); - Map mapKsm = new HashMap<>(); - mapKsm.put("id", kk.get("idKsm")); - mapKsm.put("name", kk.get("namaKsm")); + List> filterSkoring = new ArrayList<>(); + // filtering skoring + for (Map mapData : dataSkoringRaw) { + boolean isContained = false; + for (Map mapFilter : filterSkoring) { + if (mapData.get("produkId").equals(mapFilter.get("produkId")) + && mapData.get("kelompokKerjaId").equals(mapFilter.get("kelompokKerjaId"))) { + isContained = true; + break; + } + } + if (!isContained) { + Map mapFilter = new HashMap<>(); + mapFilter.put("produkId", mapData.get("produkId")); + mapFilter.put("kelompokKerjaId", mapData.get("kelompokKerjaId")); + filterSkoring.add(mapFilter); + } + } - Map mapKk = new HashMap<>(); - mapKk.put("id", kk.get("id")); - mapKk.put("name", kk.get("name")); + List> dataSkoringFiltered = new ArrayList<>(); + // processing skoring + for (Map mapFilter : filterSkoring) { + for (Map mapData : dataSkoringRaw) { + if (mapFilter.get("produkId").equals(mapData.get("produkId")) + && mapFilter.get("kelompokKerjaId").equals(mapData.get("kelompokKerjaId"))) { + dataSkoringFiltered.add(mapData); + break; + } + } + } - mapping.put("unitKerjaPegawai", mapKsm); - mapping.put("subUnitKerjaPegawai", mapKk); + List> dataLayananScored = new ArrayList<>(); + // scoring data layanan + for (Map layanan : dataLayananRaw) { + for (Map 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 kelompokKerja : listKelompokKerja) { + for (Map indikator : listIndikatorPelayanan) { + Map rsMap = new HashMap<>(); + List> listDetail = new ArrayList<>(); + + double capaianTriwulanKE = 0.0; + double capaianTriwulanKG = 0.0; + double capaianTriwulanKR = 0.0; + double capaianTriwulanTE = 0.0; + double capaianTriwulanTG = 0.0; + double capaianTriwulanTO = 0.0; + double capaianTriwulanTR = 0.0; + double capaianTriwulanVI = 0.0; + + int i = 0; + for (String datePelayanan : listBulanPelayananSorted) { + i++; + Map detail = new HashMap<>(); + + double capaianBulanan = 0.0; + double targetBulanan = 0.0; + for (Map 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 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 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 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 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 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 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 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 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; diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/IndikatorKinerjaServiceImpl.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/IndikatorKinerjaServiceImpl.java index 377b29d9..708fd809 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/IndikatorKinerjaServiceImpl.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/IndikatorKinerjaServiceImpl.java @@ -158,7 +158,7 @@ public class IndikatorKinerjaServiceImpl extends BaseVoServiceImpl implements In } if (CommonUtil.isNotNullOrEmpty(listIdDup)) { - result = indikatorKinerjaDao.findAllDup(listIdDup); + result = indikatorKinerjaDao.findIndikator(listIdDup); } return result; diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/PelayananPasienServiceImpl.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/PelayananPasienServiceImpl.java index 14f95979..324d6dc5 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/PelayananPasienServiceImpl.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/PelayananPasienServiceImpl.java @@ -139,99 +139,6 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel return result; } - @Override - public List> getRekapPendapatanAllRuangan(String strTgl1, String strTgl2) - throws ParseException { - List> result = new ArrayList<>(); - SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); - - Date tglAwal = sdf.parse(strTgl1); - Date tglAkhir = sdf.parse(strTgl2); - - List> data = pelayananPasienDao.findDataLayananAllRuangan(tglAwal, tglAkhir, - Arrays.asList(Master.JenisProduk.NONTINDAKAN)); - - if (CommonUtil.isNotNullOrEmpty(data)) { - List listIdRuangan = new ArrayList<>(); - for (Map 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 mapResult = new HashMap<>(); - Map mapDepartemen = new HashMap<>(); - Map mapRuangan = new HashMap<>(); - for (Map 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, String namaLayanan, Integer tipePegawai, Double hargaJual, Double hargaDiskon, Double jumlahLayanan) { Double result = 0.0; diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/SkoringTindakanMedisServiceImpl.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/SkoringTindakanMedisServiceImpl.java index b2e682d7..179d8df3 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/SkoringTindakanMedisServiceImpl.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/SkoringTindakanMedisServiceImpl.java @@ -169,64 +169,93 @@ public class SkoringTindakanMedisServiceImpl extends BaseVoServiceImpl implement public List> findAllEnabled(List listIdKelompokKerja, String namaProduk, String detailProduk, Boolean statusVerifikasi) throws JpaSystemException { List> result = new ArrayList<>(); + List> data = new ArrayList<>(); + List> filter = new ArrayList<>(); if (CommonUtil.isNullOrEmpty(listIdKelompokKerja) && CommonUtil.isNullOrEmpty(namaProduk) && CommonUtil.isNullOrEmpty(detailProduk) && CommonUtil.isNullOrEmpty(statusVerifikasi)) { - result = skoringTindakanMedisDao.findAllEnabled(); + data = skoringTindakanMedisDao.findAllEnabled(); } else if (CommonUtil.isNotNullOrEmpty(listIdKelompokKerja) && CommonUtil.isNullOrEmpty(namaProduk) && CommonUtil.isNullOrEmpty(detailProduk) && CommonUtil.isNullOrEmpty(statusVerifikasi)) { - result = skoringTindakanMedisDao.findAllEnabledByUnit(listIdKelompokKerja); + data = skoringTindakanMedisDao.findAllEnabledByUnit(listIdKelompokKerja); } else if (CommonUtil.isNullOrEmpty(listIdKelompokKerja) && CommonUtil.isNotNullOrEmpty(namaProduk) && CommonUtil.isNullOrEmpty(detailProduk) && CommonUtil.isNullOrEmpty(statusVerifikasi)) { - result = skoringTindakanMedisDao.findAllEnabledByProduk(namaProduk.toLowerCase()); + data = skoringTindakanMedisDao.findAllEnabledByProduk(namaProduk.toLowerCase()); } else if (CommonUtil.isNullOrEmpty(listIdKelompokKerja) && CommonUtil.isNullOrEmpty(namaProduk) && CommonUtil.isNotNullOrEmpty(detailProduk) && CommonUtil.isNullOrEmpty(statusVerifikasi)) { - result = skoringTindakanMedisDao.findAllEnabledByDetail(detailProduk.toLowerCase()); + data = skoringTindakanMedisDao.findAllEnabledByDetail(detailProduk.toLowerCase()); } else if (CommonUtil.isNullOrEmpty(listIdKelompokKerja) && CommonUtil.isNullOrEmpty(namaProduk) && CommonUtil.isNullOrEmpty(detailProduk) && CommonUtil.isNotNullOrEmpty(statusVerifikasi)) { - result = skoringTindakanMedisDao.findAllEnabledByVerif(statusVerifikasi); + data = skoringTindakanMedisDao.findAllEnabledByVerif(statusVerifikasi); } else if (CommonUtil.isNotNullOrEmpty(listIdKelompokKerja) && CommonUtil.isNotNullOrEmpty(namaProduk) && 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) && CommonUtil.isNotNullOrEmpty(detailProduk) && CommonUtil.isNullOrEmpty(statusVerifikasi)) { - result = skoringTindakanMedisDao.findAllEnabledByUnitDetail(listIdKelompokKerja, - detailProduk.toLowerCase()); + data = skoringTindakanMedisDao.findAllEnabledByUnitDetail(listIdKelompokKerja, detailProduk.toLowerCase()); } else if (CommonUtil.isNotNullOrEmpty(listIdKelompokKerja) && CommonUtil.isNullOrEmpty(namaProduk) && CommonUtil.isNullOrEmpty(detailProduk) && CommonUtil.isNotNullOrEmpty(statusVerifikasi)) { - result = skoringTindakanMedisDao.findAllEnabledByUnitVerif(listIdKelompokKerja, statusVerifikasi); + data = skoringTindakanMedisDao.findAllEnabledByUnitVerif(listIdKelompokKerja, statusVerifikasi); } else if (CommonUtil.isNullOrEmpty(listIdKelompokKerja) && CommonUtil.isNotNullOrEmpty(namaProduk) && CommonUtil.isNotNullOrEmpty(detailProduk) && CommonUtil.isNullOrEmpty(statusVerifikasi)) { - result = skoringTindakanMedisDao.findAllEnabledByProdukDetail(namaProduk.toLowerCase(), + data = skoringTindakanMedisDao.findAllEnabledByProdukDetail(namaProduk.toLowerCase(), detailProduk.toLowerCase()); } else if (CommonUtil.isNullOrEmpty(listIdKelompokKerja) && CommonUtil.isNotNullOrEmpty(namaProduk) && 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) && 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) && CommonUtil.isNotNullOrEmpty(detailProduk) && CommonUtil.isNullOrEmpty(statusVerifikasi)) { - result = skoringTindakanMedisDao.findAllEnabledByUnitProdukDetail(listIdKelompokKerja, + data = skoringTindakanMedisDao.findAllEnabledByUnitProdukDetail(listIdKelompokKerja, namaProduk.toLowerCase(), detailProduk.toLowerCase()); } else if (CommonUtil.isNotNullOrEmpty(listIdKelompokKerja) && CommonUtil.isNotNullOrEmpty(namaProduk) && CommonUtil.isNullOrEmpty(detailProduk) && CommonUtil.isNotNullOrEmpty(statusVerifikasi)) { - result = skoringTindakanMedisDao.findAllEnabledByUnitProdukVerif(listIdKelompokKerja, + data = skoringTindakanMedisDao.findAllEnabledByUnitProdukVerif(listIdKelompokKerja, namaProduk.toLowerCase(), statusVerifikasi); } else if (CommonUtil.isNotNullOrEmpty(listIdKelompokKerja) && CommonUtil.isNullOrEmpty(namaProduk) && CommonUtil.isNotNullOrEmpty(detailProduk) && CommonUtil.isNotNullOrEmpty(statusVerifikasi)) { - result = skoringTindakanMedisDao.findAllEnabledByUnitDetailVerif(listIdKelompokKerja, + data = skoringTindakanMedisDao.findAllEnabledByUnitDetailVerif(listIdKelompokKerja, detailProduk.toLowerCase(), statusVerifikasi); } else if (CommonUtil.isNullOrEmpty(listIdKelompokKerja) && CommonUtil.isNotNullOrEmpty(namaProduk) && CommonUtil.isNotNullOrEmpty(detailProduk) && CommonUtil.isNotNullOrEmpty(statusVerifikasi)) { - result = skoringTindakanMedisDao.findAllEnabledByProdukDetailVerif(namaProduk.toLowerCase(), + data = skoringTindakanMedisDao.findAllEnabledByProdukDetailVerif(namaProduk.toLowerCase(), detailProduk.toLowerCase(), statusVerifikasi); } else if (CommonUtil.isNotNullOrEmpty(listIdKelompokKerja) && CommonUtil.isNotNullOrEmpty(namaProduk) && CommonUtil.isNotNullOrEmpty(detailProduk) && CommonUtil.isNotNullOrEmpty(statusVerifikasi)) { - result = skoringTindakanMedisDao.findAllEnabledByUnitProdukDetailVerif(listIdKelompokKerja, + data = skoringTindakanMedisDao.findAllEnabledByUnitProdukDetailVerif(listIdKelompokKerja, namaProduk.toLowerCase(), detailProduk.toLowerCase(), statusVerifikasi); } + // filtering + for (Map mapData : data) { + boolean isContained = false; + for (Map mapFilter : filter) { + if (mapData.get("produkId").equals(mapFilter.get("produkId")) + && mapData.get("kelompokKerjaId").equals(mapFilter.get("kelompokKerjaId"))) { + isContained = true; + break; + } + } + if (!isContained) { + Map mapFilter = new HashMap<>(); + mapFilter.put("produkId", mapData.get("produkId")); + mapFilter.put("kelompokKerjaId", mapData.get("kelompokKerjaId")); + filter.add(mapFilter); + } + } + + for (Map mapFilter : filter) { + for (Map mapData : data) { + if (mapFilter.get("produkId").equals(mapData.get("produkId")) + && mapFilter.get("kelompokKerjaId").equals(mapData.get("kelompokKerjaId"))) { + result.add(mapData); + break; + } + } + } + return result; } diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/TargetLayananServiceImpl.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/TargetLayananServiceImpl.java index b140a7c3..3a5a35d6 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/TargetLayananServiceImpl.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/TargetLayananServiceImpl.java @@ -1,7 +1,9 @@ package com.jasamedika.medifirst2000.service.impl; +import java.text.ParseException; +import java.text.SimpleDateFormat; import java.util.ArrayList; -import java.util.HashMap; +import java.util.Date; import java.util.List; import java.util.Map; @@ -9,46 +11,86 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.orm.jpa.JpaSystemException; import org.springframework.stereotype.Service; +import com.jasamedika.medifirst2000.converter.BaseConverterImpl; import com.jasamedika.medifirst2000.converter.TargetLayananConverter; 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.UnitKerjaPegawai; import com.jasamedika.medifirst2000.exception.ServiceVOException; import com.jasamedika.medifirst2000.service.TargetLayananService; 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; @Service("targetLayananService") public class TargetLayananServiceImpl implements TargetLayananService { - + @Autowired private TargetLayananConverter targetLayananConverter; - + + @Autowired + private BaseConverterImpl subunitKerjaConverter; + + @Autowired + private BaseConverterImpl indikatorKinerjaConverter; + @Autowired private TargetLayananDao targetLayananDao; - + @Override - public Map addAll(List vos) throws JpaSystemException, ServiceVOException { - Map result = new HashMap(); - List listModel = new ArrayList<>(); - - for (TargetLayananVO vo : vos) { - TargetLayanan targetLayanan = targetLayananConverter.transferVOToModel(vo, new TargetLayanan()); - listModel.add(targetLayanan); + public List addAll(List vos) + throws JpaSystemException, ServiceVOException, ParseException { + List resultListVO = new ArrayList<>(); + List listTargetLayanan = new ArrayList<>(); + + Date tglHitung = new Date(); + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM"); + 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)) { - targetLayananDao.save(listModel); - result.put("Info", "Success"); + + Iterable listResultModel = targetLayananDao.save(listTargetLayanan); + for (TargetLayanan resultModel : listResultModel) { + TargetLayananVO resultVo = new TargetLayananVO(); + resultVo = targetLayananConverter.transferModelToVO(resultModel, resultVo); + + resultListVO.add(resultVo.getNoRec()); } - - return result; + + return resultListVO; } @Override public TargetLayananVO add(TargetLayananVO vo) throws JpaSystemException, ServiceVOException { TargetLayanan targetLayanan = targetLayananConverter.transferVOToModel(vo, new TargetLayanan()); TargetLayanan resultModel = targetLayananDao.save(targetLayanan); - + TargetLayananVO resultVo = new TargetLayananVO(); resultVo = targetLayananConverter.transferModelToVO(resultModel, resultVo); return resultVo; @@ -59,7 +101,7 @@ public class TargetLayananServiceImpl implements TargetLayananService { TargetLayanan targetLayananLama = targetLayananDao.findOne(vo.getNoRec()); TargetLayanan targetLayananBaru = targetLayananConverter.transferVOToModel(vo, targetLayananLama); TargetLayanan resultModel = targetLayananDao.save(targetLayananBaru); - + TargetLayananVO resultVo = new TargetLayananVO(); resultVo = targetLayananConverter.transferModelToVO(resultModel, resultVo); return resultVo; @@ -74,19 +116,19 @@ public class TargetLayananServiceImpl implements TargetLayananService { @Override public TargetLayananVO findById(String key) throws JpaSystemException { TargetLayananVO result = new TargetLayananVO(); - + TargetLayanan targetLayanan = targetLayananDao.findOne(key); if (CommonUtil.isNotNullOrEmpty(targetLayanan)) { result = targetLayananConverter.transferModelToVO(targetLayanan, result); } - + return result; } @Override public List findAll() throws JpaSystemException { List result = new ArrayList<>(); - + Iterable models = targetLayananDao.findAll(); if (CommonUtil.isNotNullOrEmpty(models)) { for (TargetLayanan model : models) { @@ -95,7 +137,7 @@ public class TargetLayananServiceImpl implements TargetLayananService { result.add(vo); } } - + return result; } diff --git a/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/entities/TargetLayanan.java b/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/entities/TargetLayanan.java index 717429a2..664d845a 100644 --- a/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/entities/TargetLayanan.java +++ b/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/entities/TargetLayanan.java @@ -16,98 +16,50 @@ import com.jasamedika.medifirst2000.helper.Caption; @Entity @Table(name = "TargetLayanan_T") public class TargetLayanan extends BaseTransaction { - + private static final long serialVersionUID = -8426274186046883050L; - + @ManyToOne @JoinColumn(name = "objectunitkerjafk") @Caption(value = "Unit Kerja") public UnitKerjaPegawai unitKerjaPegawai; - + @Column(name = "objectunitkerjafk", insertable = false, updatable = false) public Integer unitKerjaPegawaiId; - + @ManyToOne @JoinColumn(name = "objectsubunitkerjafk") @Caption(value = "Subunit Kerja") public SubUnitKerjaPegawai subUnitKerjaPegawai; - + @Column(name = "objectsubunitkerjafk", insertable = false, updatable = false) public Integer subUnitKerjaPegawaiId; - + @Column(name = "tglhitung") @Temporal(TemporalType.TIMESTAMP) @Caption(value = "Tanggal Hitung") public Date tglHitung; - + @Column(name = "periode") @Temporal(TemporalType.DATE) @Caption(value = "Periode") public Date periode; - - @Column(name = "capaianoperasi3bulanlalu") - @Caption(value = "Capaian Operasi") - public Integer capaianOperasi3bulanlalu; - - @Column(name = "capaiannonoperasi3bulanlalu") - @Caption(value = "Capaian Nonoperasi") - public Integer capaianNonoperasi3bulanlalu; - - @Column(name = "capaianvisite3bulanlalu") - @Caption(value = "Capaian Visite") - public Integer capaianVisit3bulanlalu; - - @Column(name = "capaiankonsultasi3bulanlalu") - @Caption(value = "Capaian Konsultasi") - public Integer capaianKonsultasi3bulanlalu; - - @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; + + @ManyToOne + @JoinColumn(name = "objectindikatorfk") + @Caption(value = "Indikator Kinerja") + public IndikatorKinerja indikator; + + @Column(name = "objectindikatorfk", insertable = false, updatable = false) + public Integer indikatorId; + + @Column(name = "capaian") + @Caption(value = "Capaian") + public Double capaian; + + @Column(name = "target") + @Caption(value = "Target") + public Double target; public UnitKerjaPegawai getUnitKerjaPegawai() { return unitKerjaPegawai; @@ -157,132 +109,36 @@ public class TargetLayanan extends BaseTransaction { this.periode = periode; } - public Integer getCapaianOperasi3bulanlalu() { - return capaianOperasi3bulanlalu; + public IndikatorKinerja getIndikator() { + return indikator; } - public void setCapaianOperasi3bulanlalu(Integer capaianOperasi3bulanlalu) { - this.capaianOperasi3bulanlalu = capaianOperasi3bulanlalu; + public void setIndikator(IndikatorKinerja indikator) { + this.indikator = indikator; } - public Integer getCapaianNonoperasi3bulanlalu() { - return capaianNonoperasi3bulanlalu; + public Integer getIndikatorId() { + return indikatorId; } - public void setCapaianNonoperasi3bulanlalu(Integer capaianNonoperasi3bulanlalu) { - this.capaianNonoperasi3bulanlalu = capaianNonoperasi3bulanlalu; + public void setIndikatorId(Integer indikatorId) { + this.indikatorId = indikatorId; } - public Integer getCapaianVisit3bulanlalu() { - return capaianVisit3bulanlalu; + public Double getCapaian() { + return capaian; } - public void setCapaianVisit3bulanlalu(Integer capaianVisit3bulanlalu) { - this.capaianVisit3bulanlalu = capaianVisit3bulanlalu; + public void setCapaian(Double capaian) { + this.capaian = capaian; } - public Integer getCapaianKonsultasi3bulanlalu() { - return capaianKonsultasi3bulanlalu; + public Double getTarget() { + return target; } - public void setCapaianKonsultasi3bulanlalu(Integer capaianKonsultasi3bulanlalu) { - this.capaianKonsultasi3bulanlalu = capaianKonsultasi3bulanlalu; + public void setTarget(Double target) { + 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; - } - } diff --git a/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/vo/TargetLayananCustomDetailVO.java b/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/vo/TargetLayananCustomDetailVO.java new file mode 100644 index 00000000..ca8631a8 --- /dev/null +++ b/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/vo/TargetLayananCustomDetailVO.java @@ -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; + } + +} diff --git a/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/vo/TargetLayananCustomVO.java b/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/vo/TargetLayananCustomVO.java new file mode 100644 index 00000000..b6dffed0 --- /dev/null +++ b/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/vo/TargetLayananCustomVO.java @@ -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 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 getDetail() { + return detail; + } + + public void setDetail(List detail) { + this.detail = detail; + } + +} diff --git a/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/vo/TargetLayananVO.java b/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/vo/TargetLayananVO.java index fa6cb1db..727ac290 100644 --- a/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/vo/TargetLayananVO.java +++ b/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/vo/TargetLayananVO.java @@ -6,74 +6,38 @@ import com.jasamedika.medifirst2000.base.vo.BaseTransactionVO; import com.jasamedika.medifirst2000.helper.Caption; public class TargetLayananVO extends BaseTransactionVO { - + private static final long serialVersionUID = 5911581479133016976L; @Caption(value = "Unit Kerja") public UnitKerjaPegawaiVO unitKerjaPegawai; - + @Caption(value = "Id Unit Kerja") public Integer unitKerjaPegawaiId; - + @Caption(value = "Subunit Kerja") public SubUnitKerjaPegawaiVO subUnitKerjaPegawai; - + @Caption(value = "Id Subunit Kerja") public Integer subUnitKerjaPegawaiId; - + @Caption(value = "Tanggal Hitung") public Date tglHitung; - + @Caption(value = "Periode") public Date periode; - - @Caption(value = "Capaian Operasi") - public Integer capaianOperasi3bulanlalu; - - @Caption(value = "Capaian Nonoperasi") - public Integer capaianNonoperasi3bulanlalu; - - @Caption(value = "Capaian Visite") - public Integer capaianVisit3bulanlalu; - - @Caption(value = "Capaian Konsultasi") - public Integer capaianKonsultasi3bulanlalu; - - @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; + + @Caption(value = "Indikator Kinerja") + public IndikatorKinerjaVO indikator; + + @Caption(value = "Id Indikator Kinerja") + public Integer indikatorId; + + @Caption(value = "Capaian") + public Double capaian; + + @Caption(value = "Target") + public Double target; public UnitKerjaPegawaiVO getUnitKerjaPegawai() { return unitKerjaPegawai; @@ -123,132 +87,36 @@ public class TargetLayananVO extends BaseTransactionVO { this.periode = periode; } - public Integer getCapaianOperasi3bulanlalu() { - return capaianOperasi3bulanlalu; + public IndikatorKinerjaVO getIndikator() { + return indikator; } - public void setCapaianOperasi3bulanlalu(Integer capaianOperasi3bulanlalu) { - this.capaianOperasi3bulanlalu = capaianOperasi3bulanlalu; + public void setIndikator(IndikatorKinerjaVO indikator) { + this.indikator = indikator; } - public Integer getCapaianNonoperasi3bulanlalu() { - return capaianNonoperasi3bulanlalu; + public Integer getIndikatorId() { + return indikatorId; } - public void setCapaianNonoperasi3bulanlalu(Integer capaianNonoperasi3bulanlalu) { - this.capaianNonoperasi3bulanlalu = capaianNonoperasi3bulanlalu; + public void setIndikatorId(Integer indikatorId) { + this.indikatorId = indikatorId; } - public Integer getCapaianVisit3bulanlalu() { - return capaianVisit3bulanlalu; + public Double getCapaian() { + return capaian; } - public void setCapaianVisit3bulanlalu(Integer capaianVisit3bulanlalu) { - this.capaianVisit3bulanlalu = capaianVisit3bulanlalu; + public void setCapaian(Double capaian) { + this.capaian = capaian; } - public Integer getCapaianKonsultasi3bulanlalu() { - return capaianKonsultasi3bulanlalu; + public Double getTarget() { + return target; } - public void setCapaianKonsultasi3bulanlalu(Integer capaianKonsultasi3bulanlalu) { - this.capaianKonsultasi3bulanlalu = capaianKonsultasi3bulanlalu; + public void setTarget(Double target) { + 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; - } - } diff --git a/jasamedika-reporting/src/main/java/com/jasamedika/medifirst2000/controller/ReportingController.java b/jasamedika-reporting/src/main/java/com/jasamedika/medifirst2000/controller/ReportingController.java index 4c263e42..17eec05a 100644 --- a/jasamedika-reporting/src/main/java/com/jasamedika/medifirst2000/controller/ReportingController.java +++ b/jasamedika-reporting/src/main/java/com/jasamedika/medifirst2000/controller/ReportingController.java @@ -7547,25 +7547,6 @@ public class ReportingController extends LocaleController } } - @RequestMapping(value = "/rekapitulasi-laporan-pendapatan-ruangan", method = RequestMethod.GET) - public ResponseEntity>> getMappingAkomodasi(HttpServletRequest request, - @RequestParam("tglAwal") String tglAwal, @RequestParam("tglAkhir") String tglAkhir) throws ParseException { - try { - List> 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) public ResponseEntity>> getRekapKunjunganPasien(HttpServletRequest request, @RequestParam("tglAwal") String tglAwal, @RequestParam("tglAkhir") String tglAkhir, diff --git a/jasamedika-sdm/src/main/java/com/jasamedika/medifirst2000/controller/IkiDanRemunerasiController.java b/jasamedika-sdm/src/main/java/com/jasamedika/medifirst2000/controller/IkiDanRemunerasiController.java index 0b11fcd5..889f6136 100644 --- a/jasamedika-sdm/src/main/java/com/jasamedika/medifirst2000/controller/IkiDanRemunerasiController.java +++ b/jasamedika-sdm/src/main/java/com/jasamedika/medifirst2000/controller/IkiDanRemunerasiController.java @@ -233,33 +233,12 @@ public class IkiDanRemunerasiController extends LocaleController>> getTargetLayananBulanan(HttpServletRequest request) { - try { - List> 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) public ResponseEntity>> 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 { - List> result = service.findAllTargetCapaianLayanan(periode); + List> result = service.findAllTargetCapaianLayanan(periode, jumlahBulan); mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_SUCCESS, getMessage(MessageResource.LABEL_SUCCESS, request)); return RestUtil.getJsonResponse(result, HttpStatus.OK, mapHeaderMessage); diff --git a/jasamedika-sdm/src/main/java/com/jasamedika/medifirst2000/controller/PelayananController.java b/jasamedika-sdm/src/main/java/com/jasamedika/medifirst2000/controller/PelayananController.java index 6de84dbd..45bf6c52 100644 --- a/jasamedika-sdm/src/main/java/com/jasamedika/medifirst2000/controller/PelayananController.java +++ b/jasamedika-sdm/src/main/java/com/jasamedika/medifirst2000/controller/PelayananController.java @@ -63,25 +63,6 @@ public class PelayananController extends LocaleController { @Autowired private SatuanStandarService satuanStandarService; - @RequestMapping(value = "/rekapitulasi-laporan-pendapatan-ruangan", method = RequestMethod.GET) - public ResponseEntity>> getMappingAkomodasi(HttpServletRequest request, - @RequestParam("tglAwal") String tglAwal, @RequestParam("tglAkhir") String tglAkhir) throws ParseException { - try { - List> 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) public ResponseEntity>> calculateIndikatorPelayanan(HttpServletRequest request, @RequestParam("tahun") String tahun) throws ParseException { diff --git a/jasamedika-sdm/src/main/java/com/jasamedika/medifirst2000/controller/SdmController.java b/jasamedika-sdm/src/main/java/com/jasamedika/medifirst2000/controller/SdmController.java index aea2c7cc..5bd6ff63 100644 --- a/jasamedika-sdm/src/main/java/com/jasamedika/medifirst2000/controller/SdmController.java +++ b/jasamedika-sdm/src/main/java/com/jasamedika/medifirst2000/controller/SdmController.java @@ -5523,10 +5523,10 @@ public class SdmController extends LocaleController { } @RequestMapping(value = "/save-target-layanan/", method = RequestMethod.POST) - public ResponseEntity> addAllTargetLayanan(@RequestBody List vos, - HttpServletRequest request) { + public ResponseEntity> addAllTargetLayanan(@RequestBody List vos, + HttpServletRequest request) throws ParseException { try { - Map result = targetLayananService.addAll(vos); + List result = targetLayananService.addAll(vos); if (null != result) mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_SUCCESS, getMessage(MessageResource.LABEL_SUCCESS, request)); @@ -5536,7 +5536,7 @@ public class SdmController extends LocaleController { addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, e.getMessage()); return RestUtil.getJsonHttptatus(HttpStatus.INTERNAL_SERVER_ERROR, mapHeaderMessage); } 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()); return RestUtil.getJsonHttptatus(HttpStatus.CONFLICT, mapHeaderMessage); }