From ef5067ee34673cac0e488ff2307e98db38c3ee0c Mon Sep 17 00:00:00 2001 From: salmanoe Date: Sun, 7 Mar 2021 17:11:03 +0700 Subject: [PATCH] pembuatan service akses menu skoring tindakan medis dan penyesuaian untuk front-end --- .../dao/MapPegawaiJabatanToUnitKerjaDao.java | 46 ++++- .../dao/SkoringTindakanMedisDao.java | 18 +- .../medifirst2000/dao/SubUnitKerjaDao.java | 48 +++-- .../service/SkoringTindakanMedisService.java | 4 +- .../impl/SkoringTindakanMedisServiceImpl.java | 170 +++++++++++++++--- .../IkiDanRemunerasiController.java | 25 ++- 6 files changed, 242 insertions(+), 69 deletions(-) diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/MapPegawaiJabatanToUnitKerjaDao.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/MapPegawaiJabatanToUnitKerjaDao.java index f4379983..a851b000 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/MapPegawaiJabatanToUnitKerjaDao.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/MapPegawaiJabatanToUnitKerjaDao.java @@ -14,7 +14,7 @@ import com.jasamedika.medifirst2000.entities.MapPegawaiJabatanToUnitKerja; /** * Repository class for AbsensiPegawai * - * @author Gunandi + * @author Gunandi ft Salman */ @Repository("mapPegawaiJabatanToUnitKerjaDao") public interface MapPegawaiJabatanToUnitKerjaDao extends CrudRepository { @@ -395,4 +395,48 @@ public interface MapPegawaiJabatanToUnitKerjaDao extends CrudRepository> findEvaluasiJabatanByAllJabatanPegawaiBaru( @Param("listJabatanId") List listIdJabatan); + String strAksesPegawaiStaf = "select new Map(mjp.unitKerjaPegawaiId as unitKerjaId,pg.id as pegawaiId) " + + "from MapPegawaiJabatanToUnitKerja mjp " + "inner join mjp.pegawai pg " + "inner join mjp.jabatan jb " + + "where mjp.statusEnabled is true " + "and pg.statusEnabled is true " + "and jb.statusEnabled is true " + + "and pg.id = :pegawaiId " + "and jb.levelJabatan in (5) "; + + String strAksesPegawaiAtasan = "select distinct new Map(mjp.unitKerjaPegawaiId as unitKerjaId,pg.id as pegawaiId) " + + "from MapPegawaiJabatanToUnitKerja mjp, MapPegawaiJabatanToUnitKerja mja " + + "inner join mjp.atasanLangsung pg " + "inner join mja.jabatan jb " + + "where mjp.atasanLangsungId = mja.pegawaiId " + "and mja.pegawaiId = pg.id " + + "and mjp.statusEnabled is true " + "and mja.statusEnabled is true " + "and pg.statusEnabled is true " + + "and jb.statusEnabled is true " + "and pg.id = :pegawaiId " + "and jb.levelJabatan in (4,3) "; + + String strAksesPegawaiPenilai = "select distinct new Map(mjp.unitKerjaPegawaiId as unitKerjaId,pg.id as pegawaiId) " + + "from MapPegawaiJabatanToUnitKerja mjp, MapPegawaiJabatanToUnitKerja mjn " + + "inner join mjp.pejabatPenilai pg " + "inner join mjn.jabatan jb " + + "where mjp.pejabatPenilaiId = mjn.pegawaiId " + "and mjn.pegawaiId = pg.id " + + "and mjp.statusEnabled is true " + "and mjn.statusEnabled is true " + "and pg.statusEnabled is true " + + "and jb.statusEnabled is true " + "and pg.id = :pegawaiId " + "and jb.levelJabatan in (2,1) "; + + String unitKerja = "and mjp.unitKerjaPegawaiId in (:listUnitKerjaId) "; + + String sortUnitKerja = "order by mjp.unitKerjaPegawaiId"; + + @Query(strAksesPegawaiStaf + unitKerja + sortUnitKerja) + List> findAksesPegawaiStaf(@Param("listUnitKerjaId") List listIdUnitKerja, + @Param("pegawaiId") Integer idPegawai); + + @Query(strAksesPegawaiAtasan + unitKerja + sortUnitKerja) + List> findAksesPegawaiAtasan(@Param("listUnitKerjaId") List listIdUnitKerja, + @Param("pegawaiId") Integer idPegawai); + + @Query(strAksesPegawaiPenilai + unitKerja + sortUnitKerja) + List> findAksesPegawaiPenilai(@Param("listUnitKerjaId") List listIdUnitKerja, + @Param("pegawaiId") Integer idPegawai); + + @Query(strAksesPegawaiStaf + sortUnitKerja) + List> findAksesPegawaiStaf(@Param("pegawaiId") Integer idPegawai); + + @Query(strAksesPegawaiAtasan + sortUnitKerja) + List> findAksesPegawaiAtasan(@Param("pegawaiId") Integer idPegawai); + + @Query(strAksesPegawaiPenilai + sortUnitKerja) + List> findAksesPegawaiPenilai(@Param("pegawaiId") Integer idPegawai); + } 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 d3e8591f..9c69d66b 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 @@ -23,7 +23,7 @@ public interface SkoringTindakanMedisDao extends PagingAndSortingRepository> findAllEnabled(); @Query(strAllEnabled + kelompokKerja + sortSearch) - List> findAllEnabledByUnit(@Param("subunitKerjaId") Integer idKelompokKerja); + List> findAllEnabledByUnit(@Param("listSubunitKerjaId") List listIdKelompokKerja); @Query(strAllEnabled + produk + sortSearch) List> findAllEnabledByProduk(@Param("namaProduk") String namaProduk); @@ -49,15 +49,15 @@ public interface SkoringTindakanMedisDao extends PagingAndSortingRepository> findAllEnabledByVerif(@Param("isStatusVerifikasi") Boolean statusVerifikasi); @Query(strAllEnabled + kelompokKerja + produk + sortSearch) - List> findAllEnabledByUnitProduk(@Param("subunitKerjaId") Integer idKelompokKerja, + List> findAllEnabledByUnitProduk(@Param("listSubunitKerjaId") List listIdKelompokKerja, @Param("namaProduk") String namaProduk); @Query(strAllEnabled + kelompokKerja + detailProduk + sortSearch) - List> findAllEnabledByUnitDetail(@Param("subunitKerjaId") Integer idKelompokKerja, + List> findAllEnabledByUnitDetail(@Param("listSubunitKerjaId") List listIdKelompokKerja, @Param("detailProduk") String detailProduk); @Query(strAllEnabled + kelompokKerja + statusVerifikasi + sortSearch) - List> findAllEnabledByUnitVerif(@Param("subunitKerjaId") Integer idKelompokKerja, + List> findAllEnabledByUnitVerif(@Param("listSubunitKerjaId") List listIdKelompokKerja, @Param("isStatusVerifikasi") Boolean statusVerifikasi); @Query(strAllEnabled + produk + detailProduk + sortSearch) @@ -73,15 +73,15 @@ public interface SkoringTindakanMedisDao extends PagingAndSortingRepository> findAllEnabledByUnitProdukDetail(@Param("subunitKerjaId") Integer idKelompokKerja, + List> findAllEnabledByUnitProdukDetail(@Param("listSubunitKerjaId") List listIdKelompokKerja, @Param("namaProduk") String namaProduk, @Param("detailProduk") String detailProduk); @Query(strAllEnabled + kelompokKerja + produk + statusVerifikasi + sortSearch) - List> findAllEnabledByUnitProdukVerif(@Param("subunitKerjaId") Integer idKelompokKerja, + List> findAllEnabledByUnitProdukVerif(@Param("listSubunitKerjaId") List listIdKelompokKerja, @Param("namaProduk") String namaProduk, @Param("isStatusVerifikasi") Boolean statusVerifikasi); @Query(strAllEnabled + kelompokKerja + detailProduk + statusVerifikasi + sortSearch) - List> findAllEnabledByUnitDetailVerif(@Param("subunitKerjaId") Integer idKelompokKerja, + List> findAllEnabledByUnitDetailVerif(@Param("listSubunitKerjaId") List listIdKelompokKerja, @Param("detailProduk") String detailProduk, @Param("isStatusVerifikasi") Boolean statusVerifikasi); @Query(strAllEnabled + produk + detailProduk + statusVerifikasi + sortSearch) @@ -89,7 +89,7 @@ public interface SkoringTindakanMedisDao extends PagingAndSortingRepository> findAllEnabledByUnitProdukDetailVerif(@Param("subunitKerjaId") Integer idKelompokKerja, + List> findAllEnabledByUnitProdukDetailVerif(@Param("listSubunitKerjaId") List listIdKelompokKerja, @Param("namaProduk") String namaProduk, @Param("detailProduk") String detailProduk, @Param("isStatusVerifikasi") Boolean statusVerifikasi); 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 54f06ef3..e16cf09c 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 @@ -12,43 +12,37 @@ import com.jasamedika.medifirst2000.entities.SubUnitKerjaPegawai; @Repository public interface SubUnitKerjaDao extends PagingAndSortingRepository { - + @Query("select model from SubUnitKerjaPegawai model where model.statusEnabled is true and model.id != 0 order by model.name") List getAllSubUnitKerja(); - + @Query("select model from SubUnitKerjaPegawai model where model.statusEnabled is true and lower(model.name) like lower(:name) order by model.name") List getSubUnitKerjaByName(@Param("name") String name); - + @Query("select model from SubUnitKerjaPegawai model where model.statusEnabled is true and model.unitKerjaId = :id order by model.name") List getSubUnitKerjaByUnitkerja(@Param("id") Integer id); - - @Query("select subUnitKerja.id "+ - "from MapPegawaiJabatanToUnitKerja mappeg "+ - "left join mappeg.pegawai p "+ - "inner join mappeg.subUnitKerjaPegawai subUnitKerja "+ - "where mappeg.statusEnabled is true "+ - "and mappeg.isPrimary is true "+ - "and mappeg.statusEnabled is true "+ - "and p.statusEnabled is true "+ - "and p.id = :idPegawai") + + @Query("select subUnitKerja.id " + "from MapPegawaiJabatanToUnitKerja mappeg " + "left join mappeg.pegawai p " + + "inner join mappeg.subUnitKerjaPegawai subUnitKerja " + "where mappeg.statusEnabled is true " + + "and mappeg.isPrimary is true " + "and mappeg.statusEnabled is true " + "and p.statusEnabled is true " + + "and p.id = :idPegawai") Integer getByIdPegawai(@Param("idPegawai") Integer idPegawai); - - @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") + + @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); - - @Query("select new Map(model.id as id, model.name as name) "+ - "from SubUnitKerjaPegawai model "+ - "where model.id=:id and model.statusEnabled is true") + + @Query("select model.id " + "from SubUnitKerjaPegawai model " + "where model.statusEnabled is true " + + "and model.unitKerjaId in (:listUnitKerjaId) " + "order by model.id") + List getSubunitKerjaByUnitKerja(@Param("listUnitKerjaId") List listIdUnitKerja); + + @Query("select new Map(model.id as id, model.name as name) " + "from SubUnitKerjaPegawai model " + + "where model.id=:id and model.statusEnabled is true") Map getSubunitKerjaById(@Param("id") Integer id); - + @Query("select new Map(subunit.id as id, subunit.name as name, subunit.name as names) " - + "from SubUnitKerjaPegawai subunit " - + "where subunit.statusEnabled is true " - + "and subunit.unitKerjaId = :idUnitKerja " - + "order by subunit.name") + + "from SubUnitKerjaPegawai subunit " + "where subunit.statusEnabled is true " + + "and subunit.unitKerjaId = :idUnitKerja " + "order by subunit.name") List> getSubUnitKerjaCustomByUnitKerja(@Param("idUnitKerja") Integer idUnitKerja); } diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/SkoringTindakanMedisService.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/SkoringTindakanMedisService.java index e2d19542..d647447b 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/SkoringTindakanMedisService.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/SkoringTindakanMedisService.java @@ -11,7 +11,7 @@ import com.jasamedika.medifirst2000.vo.SkoringTindakanMedisVO; public interface SkoringTindakanMedisService extends BaseVoService { - List> findAllEnabled(Integer idKelompokKerja, String namaProduk, String detailProduk, + List> findAllEnabled(List listIdKelompokKerja, String namaProduk, String detailProduk, Boolean statusVerifikasi) throws JpaSystemException; List> findDaftarInputTindakanByRuanganKelas(Integer idRuangan) throws JpaSystemException; @@ -19,4 +19,6 @@ public interface SkoringTindakanMedisService List> findDuplicateSkoring(String namaProduk, Integer idKelompokKerja, Double skor, String detailProduk, String noRec) throws JpaSystemException; + Map findAkses(Integer idPegawai) throws JpaSystemException; + } 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 8ff3a60a..ebbe1150 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 @@ -1,7 +1,9 @@ package com.jasamedika.medifirst2000.service.impl; import java.util.ArrayList; +import java.util.Arrays; import java.util.Date; +import java.util.HashMap; import java.util.List; import java.util.Map; @@ -9,11 +11,14 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.orm.jpa.JpaSystemException; import org.springframework.stereotype.Service; +import com.jasamedika.medifirst2000.constants.Master; import com.jasamedika.medifirst2000.converter.BaseConverterImpl; import com.jasamedika.medifirst2000.dao.LoggingUserDao; +import com.jasamedika.medifirst2000.dao.MapPegawaiJabatanToUnitKerjaDao; import com.jasamedika.medifirst2000.dao.ProdukDao; import com.jasamedika.medifirst2000.dao.SettingDataFixedDao; import com.jasamedika.medifirst2000.dao.SkoringTindakanMedisDao; +import com.jasamedika.medifirst2000.dao.SubUnitKerjaDao; import com.jasamedika.medifirst2000.entities.LoggingUser; import com.jasamedika.medifirst2000.entities.LoginUser; import com.jasamedika.medifirst2000.entities.Produk; @@ -50,6 +55,12 @@ public class SkoringTindakanMedisServiceImpl extends BaseVoServiceImpl implement @Autowired private LoggingUserDao loggingUserDao; + @Autowired + private MapPegawaiJabatanToUnitKerjaDao mappingJabatanDao; + + @Autowired + private SubUnitKerjaDao subUnitKerjaDao; + public void addLoggingUser(Integer idLoginUser, String idReferensi, String keterangan) { LoggingUser loggingUser = new LoggingUser(); LoginUser loginUser = new LoginUser(); @@ -151,63 +162,64 @@ public class SkoringTindakanMedisServiceImpl extends BaseVoServiceImpl implement } @Override - public List> findAllEnabled(Integer idKelompokKerja, String namaProduk, String detailProduk, - Boolean statusVerifikasi) throws JpaSystemException { + public List> findAllEnabled(List listIdKelompokKerja, String namaProduk, + String detailProduk, Boolean statusVerifikasi) throws JpaSystemException { List> result = new ArrayList<>(); - if (CommonUtil.isNullOrEmpty(idKelompokKerja) && CommonUtil.isNullOrEmpty(namaProduk) + if (CommonUtil.isNullOrEmpty(listIdKelompokKerja) && CommonUtil.isNullOrEmpty(namaProduk) && CommonUtil.isNullOrEmpty(detailProduk) && CommonUtil.isNullOrEmpty(statusVerifikasi)) { result = skoringTindakanMedisDao.findAllEnabled(); - } else if (CommonUtil.isNotNullOrEmpty(idKelompokKerja) && CommonUtil.isNullOrEmpty(namaProduk) + } else if (CommonUtil.isNotNullOrEmpty(listIdKelompokKerja) && CommonUtil.isNullOrEmpty(namaProduk) && CommonUtil.isNullOrEmpty(detailProduk) && CommonUtil.isNullOrEmpty(statusVerifikasi)) { - result = skoringTindakanMedisDao.findAllEnabledByUnit(idKelompokKerja); - } else if (CommonUtil.isNullOrEmpty(idKelompokKerja) && CommonUtil.isNotNullOrEmpty(namaProduk) + result = skoringTindakanMedisDao.findAllEnabledByUnit(listIdKelompokKerja); + } else if (CommonUtil.isNullOrEmpty(listIdKelompokKerja) && CommonUtil.isNotNullOrEmpty(namaProduk) && CommonUtil.isNullOrEmpty(detailProduk) && CommonUtil.isNullOrEmpty(statusVerifikasi)) { result = skoringTindakanMedisDao.findAllEnabledByProduk(namaProduk.toLowerCase()); - } else if (CommonUtil.isNullOrEmpty(idKelompokKerja) && CommonUtil.isNullOrEmpty(namaProduk) + } else if (CommonUtil.isNullOrEmpty(listIdKelompokKerja) && CommonUtil.isNullOrEmpty(namaProduk) && CommonUtil.isNotNullOrEmpty(detailProduk) && CommonUtil.isNullOrEmpty(statusVerifikasi)) { result = skoringTindakanMedisDao.findAllEnabledByDetail(detailProduk.toLowerCase()); - } else if (CommonUtil.isNullOrEmpty(idKelompokKerja) && CommonUtil.isNullOrEmpty(namaProduk) + } else if (CommonUtil.isNullOrEmpty(listIdKelompokKerja) && CommonUtil.isNullOrEmpty(namaProduk) && CommonUtil.isNullOrEmpty(detailProduk) && CommonUtil.isNotNullOrEmpty(statusVerifikasi)) { result = skoringTindakanMedisDao.findAllEnabledByVerif(statusVerifikasi); - } else if (CommonUtil.isNotNullOrEmpty(idKelompokKerja) && CommonUtil.isNotNullOrEmpty(namaProduk) + } else if (CommonUtil.isNotNullOrEmpty(listIdKelompokKerja) && CommonUtil.isNotNullOrEmpty(namaProduk) && CommonUtil.isNullOrEmpty(detailProduk) && CommonUtil.isNullOrEmpty(statusVerifikasi)) { - result = skoringTindakanMedisDao.findAllEnabledByUnitProduk(idKelompokKerja, namaProduk.toLowerCase()); - } else if (CommonUtil.isNotNullOrEmpty(idKelompokKerja) && CommonUtil.isNullOrEmpty(namaProduk) + result = skoringTindakanMedisDao.findAllEnabledByUnitProduk(listIdKelompokKerja, namaProduk.toLowerCase()); + } else if (CommonUtil.isNotNullOrEmpty(listIdKelompokKerja) && CommonUtil.isNullOrEmpty(namaProduk) && CommonUtil.isNotNullOrEmpty(detailProduk) && CommonUtil.isNullOrEmpty(statusVerifikasi)) { - result = skoringTindakanMedisDao.findAllEnabledByUnitDetail(idKelompokKerja, detailProduk.toLowerCase()); - } else if (CommonUtil.isNotNullOrEmpty(idKelompokKerja) && CommonUtil.isNullOrEmpty(namaProduk) + result = skoringTindakanMedisDao.findAllEnabledByUnitDetail(listIdKelompokKerja, + detailProduk.toLowerCase()); + } else if (CommonUtil.isNotNullOrEmpty(listIdKelompokKerja) && CommonUtil.isNullOrEmpty(namaProduk) && CommonUtil.isNullOrEmpty(detailProduk) && CommonUtil.isNotNullOrEmpty(statusVerifikasi)) { - result = skoringTindakanMedisDao.findAllEnabledByUnitVerif(idKelompokKerja, statusVerifikasi); - } else if (CommonUtil.isNullOrEmpty(idKelompokKerja) && CommonUtil.isNotNullOrEmpty(namaProduk) + result = skoringTindakanMedisDao.findAllEnabledByUnitVerif(listIdKelompokKerja, statusVerifikasi); + } else if (CommonUtil.isNullOrEmpty(listIdKelompokKerja) && CommonUtil.isNotNullOrEmpty(namaProduk) && CommonUtil.isNotNullOrEmpty(detailProduk) && CommonUtil.isNullOrEmpty(statusVerifikasi)) { result = skoringTindakanMedisDao.findAllEnabledByProdukDetail(namaProduk.toLowerCase(), detailProduk.toLowerCase()); - } else if (CommonUtil.isNullOrEmpty(idKelompokKerja) && CommonUtil.isNotNullOrEmpty(namaProduk) + } else if (CommonUtil.isNullOrEmpty(listIdKelompokKerja) && CommonUtil.isNotNullOrEmpty(namaProduk) && CommonUtil.isNullOrEmpty(detailProduk) && CommonUtil.isNotNullOrEmpty(statusVerifikasi)) { result = skoringTindakanMedisDao.findAllEnabledByProdukVerif(namaProduk.toLowerCase(), statusVerifikasi); - } else if (CommonUtil.isNullOrEmpty(idKelompokKerja) && CommonUtil.isNullOrEmpty(namaProduk) + } else if (CommonUtil.isNullOrEmpty(listIdKelompokKerja) && CommonUtil.isNullOrEmpty(namaProduk) && CommonUtil.isNotNullOrEmpty(detailProduk) && CommonUtil.isNotNullOrEmpty(statusVerifikasi)) { result = skoringTindakanMedisDao.findAllEnabledByDetailVerif(detailProduk.toLowerCase(), statusVerifikasi); - } else if (CommonUtil.isNotNullOrEmpty(idKelompokKerja) && CommonUtil.isNotNullOrEmpty(namaProduk) + } else if (CommonUtil.isNotNullOrEmpty(listIdKelompokKerja) && CommonUtil.isNotNullOrEmpty(namaProduk) && CommonUtil.isNotNullOrEmpty(detailProduk) && CommonUtil.isNullOrEmpty(statusVerifikasi)) { - result = skoringTindakanMedisDao.findAllEnabledByUnitProdukDetail(idKelompokKerja, namaProduk.toLowerCase(), - detailProduk.toLowerCase()); - } else if (CommonUtil.isNotNullOrEmpty(idKelompokKerja) && CommonUtil.isNotNullOrEmpty(namaProduk) + result = skoringTindakanMedisDao.findAllEnabledByUnitProdukDetail(listIdKelompokKerja, + namaProduk.toLowerCase(), detailProduk.toLowerCase()); + } else if (CommonUtil.isNotNullOrEmpty(listIdKelompokKerja) && CommonUtil.isNotNullOrEmpty(namaProduk) && CommonUtil.isNullOrEmpty(detailProduk) && CommonUtil.isNotNullOrEmpty(statusVerifikasi)) { - result = skoringTindakanMedisDao.findAllEnabledByUnitProdukVerif(idKelompokKerja, namaProduk.toLowerCase(), - statusVerifikasi); - } else if (CommonUtil.isNotNullOrEmpty(idKelompokKerja) && CommonUtil.isNullOrEmpty(namaProduk) + result = skoringTindakanMedisDao.findAllEnabledByUnitProdukVerif(listIdKelompokKerja, + namaProduk.toLowerCase(), statusVerifikasi); + } else if (CommonUtil.isNotNullOrEmpty(listIdKelompokKerja) && CommonUtil.isNullOrEmpty(namaProduk) && CommonUtil.isNotNullOrEmpty(detailProduk) && CommonUtil.isNotNullOrEmpty(statusVerifikasi)) { - result = skoringTindakanMedisDao.findAllEnabledByUnitDetailVerif(idKelompokKerja, + result = skoringTindakanMedisDao.findAllEnabledByUnitDetailVerif(listIdKelompokKerja, detailProduk.toLowerCase(), statusVerifikasi); - } else if (CommonUtil.isNullOrEmpty(idKelompokKerja) && CommonUtil.isNotNullOrEmpty(namaProduk) + } else if (CommonUtil.isNullOrEmpty(listIdKelompokKerja) && CommonUtil.isNotNullOrEmpty(namaProduk) && CommonUtil.isNotNullOrEmpty(detailProduk) && CommonUtil.isNotNullOrEmpty(statusVerifikasi)) { result = skoringTindakanMedisDao.findAllEnabledByProdukDetailVerif(namaProduk.toLowerCase(), detailProduk.toLowerCase(), statusVerifikasi); - } else if (CommonUtil.isNotNullOrEmpty(idKelompokKerja) && CommonUtil.isNotNullOrEmpty(namaProduk) + } else if (CommonUtil.isNotNullOrEmpty(listIdKelompokKerja) && CommonUtil.isNotNullOrEmpty(namaProduk) && CommonUtil.isNotNullOrEmpty(detailProduk) && CommonUtil.isNotNullOrEmpty(statusVerifikasi)) { - result = skoringTindakanMedisDao.findAllEnabledByUnitProdukDetailVerif(idKelompokKerja, + result = skoringTindakanMedisDao.findAllEnabledByUnitProdukDetailVerif(listIdKelompokKerja, namaProduk.toLowerCase(), detailProduk.toLowerCase(), statusVerifikasi); } @@ -246,4 +258,106 @@ public class SkoringTindakanMedisServiceImpl extends BaseVoServiceImpl implement return result; } + @Override + public Map findAkses(Integer idPegawai) throws JpaSystemException { + Map result = new HashMap<>(); + List listRs = new ArrayList<>(); + List listIdUnitKerja = new ArrayList<>(); + List listUnitKerjaSuperuser = new ArrayList<>(); + + listIdUnitKerja.addAll(Arrays.asList(Master.UnitKerja.KSM)); + listUnitKerjaSuperuser.add(Master.UnitKerja.BAG_SDM); + + List> listSuperuser = mappingJabatanDao.findAksesPegawaiPenilai(listIdUnitKerja, idPegawai); + listSuperuser.addAll(mappingJabatanDao.findAksesPegawaiStaf(listUnitKerjaSuperuser, idPegawai)); + listSuperuser.addAll(mappingJabatanDao.findAksesPegawaiAtasan(listUnitKerjaSuperuser, idPegawai)); + listSuperuser.addAll(mappingJabatanDao.findAksesPegawaiPenilai(listUnitKerjaSuperuser, idPegawai)); + if (CommonUtil.isNotNullOrEmpty(listSuperuser)) { + listRs.addAll(listIdUnitKerja); + + result.put("isSuperuser", true); + result.put("isAtasan", false); + result.put("isStaf", false); + result.put("listId", listRs); + result.put("listKk", subUnitKerjaDao.getSubunitKerjaByUnitKerja(listRs)); + } else { + List> listAtasan = mappingJabatanDao.findAksesPegawaiAtasan(listIdUnitKerja, idPegawai); + if (CommonUtil.isNotNullOrEmpty(listAtasan)) { + for (Map map : listAtasan) { + if (!listRs.contains(Integer.valueOf(map.get("unitKerjaId").toString()))) { + listRs.add(Integer.valueOf(map.get("unitKerjaId").toString())); + } + } + + result.put("isSuperuser", false); + result.put("isAtasan", true); + result.put("isStaf", false); + result.put("listId", listRs); + result.put("listKk", subUnitKerjaDao.getSubunitKerjaByUnitKerja(listRs)); + } else { + List> listStaf = mappingJabatanDao.findAksesPegawaiStaf(listIdUnitKerja, idPegawai); + if (CommonUtil.isNotNullOrEmpty(listStaf)) { + for (Map map : listStaf) { + if (!listRs.contains(Integer.valueOf(map.get("unitKerjaId").toString()))) { + listRs.add(Integer.valueOf(map.get("unitKerjaId").toString())); + } + } + + result.put("isSuperuser", false); + result.put("isAtasan", false); + result.put("isStaf", true); + result.put("listId", listRs); + result.put("listKk", subUnitKerjaDao.getSubunitKerjaByUnitKerja(listRs)); + } else { + List> listSuperElse = mappingJabatanDao.findAksesPegawaiPenilai(idPegawai); + if (CommonUtil.isNotNullOrEmpty(listSuperElse)) { + for (Map map : listSuperElse) { + if (!listRs.contains(Integer.valueOf(map.get("unitKerjaId").toString()))) { + listRs.add(Integer.valueOf(map.get("unitKerjaId").toString())); + } + } + + result.put("isSuperuser", false); + result.put("isAtasan", false); + result.put("isStaf", false); + result.put("listId", listRs); + result.put("listKk", subUnitKerjaDao.getSubunitKerjaByUnitKerja(listRs)); + } else { + List> listAtasanElse = mappingJabatanDao.findAksesPegawaiAtasan(idPegawai); + if (CommonUtil.isNotNullOrEmpty(listAtasanElse)) { + for (Map map : listAtasanElse) { + if (!listRs.contains(Integer.valueOf(map.get("unitKerjaId").toString()))) { + listRs.add(Integer.valueOf(map.get("unitKerjaId").toString())); + } + } + + result.put("isSuperuser", false); + result.put("isAtasan", false); + result.put("isStaf", false); + result.put("listId", listRs); + result.put("listKk", subUnitKerjaDao.getSubunitKerjaByUnitKerja(listRs)); + } else { + List> listStafElse = mappingJabatanDao.findAksesPegawaiStaf(idPegawai); + if (CommonUtil.isNotNullOrEmpty(listStafElse)) { + for (Map map : listStafElse) { + if (!listRs.contains(Integer.valueOf(map.get("unitKerjaId").toString()))) { + listRs.add(Integer.valueOf(map.get("unitKerjaId").toString())); + } + } + + result.put("isSuperuser", false); + result.put("isAtasan", false); + result.put("isStaf", false); + result.put("listId", listRs); + result.put("listKk", subUnitKerjaDao.getSubunitKerjaByUnitKerja(listRs)); + } + } + } + } + } + } + + return result; + } + } 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 4a09d96a..6772abdf 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 @@ -361,14 +361,14 @@ public class IkiDanRemunerasiController extends LocaleController>> getAllSkoringTindakanMedis(HttpServletRequest request, - @RequestParam(value = "kelompokKerjaId", required = false) Integer idKelompokKerja, + @RequestParam(value = "listKelompokKerjaId", required = false) List listIdKelompokKerja, @RequestParam(value = "namaProduk", required = false) String namaProduk, @RequestParam(value = "detailProduk", required = false) String detailProduk, @RequestParam(value = "isStatusVerifikasi", required = false) Boolean statusVerifikasi) throws ParseException { try { - List> result = skoringTindakanMedisService.findAllEnabled(idKelompokKerja, namaProduk, - detailProduk, statusVerifikasi); + List> result = skoringTindakanMedisService.findAllEnabled(listIdKelompokKerja, + namaProduk, detailProduk, statusVerifikasi); mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_SUCCESS, getMessage(MessageResource.LABEL_SUCCESS, request)); return RestUtil.getJsonResponse(result, HttpStatus.OK, mapHeaderMessage); @@ -427,6 +427,25 @@ public class IkiDanRemunerasiController extends LocaleController> getDuplicateSkoringTindakanMedis(HttpServletRequest request, + @RequestParam(value = "pegawaiId", required = true) Integer idPegawai) throws ParseException { + try { + Map result = skoringTindakanMedisService.findAkses(idPegawai); + 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 akses skoring tindakan medis", 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 akses skoring tindakan medis", jse.getMessage()); + addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, jse.getMessage()); + return RestUtil.getJsonHttptatus(HttpStatus.CONFLICT, mapHeaderMessage); + } + } + @RequestMapping(value = "/save-kontrak-kinerja", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE, consumes = MediaType.APPLICATION_JSON_VALUE) public ResponseEntity saveKontrakKinerja(HttpServletRequest request, @Valid @RequestBody LogbookKinerjaVO vo) {