diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/LogbookKinerjaDao.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/LogbookKinerjaDao.java index aca9ab46..fe94284f 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/LogbookKinerjaDao.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/LogbookKinerjaDao.java @@ -98,6 +98,16 @@ public interface LogbookKinerjaDao extends PagingAndSortingRepository> findAksesPegawaiByStaf(@Param("pegawaiId") Integer idPegawai, @Param("listKategoryPegawaiId") List listIdKategoriPegawai); + @Query("select distinct new Map(pg.id as id,pg.namaLengkap as namaLengkap," + "pg.tglMasuk as tglMasuk," + + "pg.jenisPegawaiId as jenisPegawaiId) " + "from MapPegawaiJabatanToUnitKerja mj " + + "inner join mj.pegawai pg " + "inner join mj.jabatan jb " + "where mj.statusEnabled is true " + + "and pg.statusEnabled is true " + "and jb.statusEnabled is true " + "and pg.id = :pegawaiId " + + "and pg.kategoryPegawaiId in (:listKategoryPegawaiId) " + + "and jb.kelompokJabatanId in (:listKelompokJabatabId)") + List> findAksesPegawaiByStaf(@Param("pegawaiId") Integer idPegawai, + @Param("listKategoryPegawaiId") List listIdKategoriPegawai, + @Param("listKelompokJabatabId") List listIdKelompokJabatan); + @Query("select distinct new Map(pgb.id as id,pgb.namaLengkap as namaLengkap,pgb.tglMasuk as tglMasuk) " + "from MapPegawaiJabatanToUnitKerja mjp, MapPegawaiJabatanToUnitKerja mja " + "inner join mjp.pegawai pgb " + "inner join mjp.atasanLangsung pg " + "inner join mja.jabatan jb " @@ -108,6 +118,19 @@ public interface LogbookKinerjaDao extends PagingAndSortingRepository> findAksesPegawaiByAtasan(@Param("pegawaiId") Integer idPegawai, @Param("listKategoryPegawaiId") List listIdKategoriPegawai); + @Query("select distinct new Map(pgb.id as id,pgb.namaLengkap as namaLengkap," + "pgb.tglMasuk as tglMasuk," + + "pgb.jenisPegawaiId as jenisPegawaiId) " + + "from MapPegawaiJabatanToUnitKerja mjp, MapPegawaiJabatanToUnitKerja mja " + "inner join mjp.pegawai pgb " + + "inner join mjp.atasanLangsung pg " + "inner join mjp.jabatan jb " + + "where mjp.atasanLangsungId = mja.pegawaiId " + "and mja.pegawaiId = pg.id " + + "and mjp.statusEnabled is true " + "and mja.statusEnabled is true " + "and pgb.statusEnabled is true " + + "and pg.statusEnabled is true " + "and jb.statusEnabled is true " + "and pg.id = :pegawaiId " + + "and pgb.kategoryPegawaiId in (:listKategoryPegawaiId) " + + "and jb.kelompokJabatanId in (:listKelompokJabatabId)") + List> findAksesPegawaiByAtasan(@Param("pegawaiId") Integer idPegawai, + @Param("listKategoryPegawaiId") List listIdKategoriPegawai, + @Param("listKelompokJabatabId") List listIdKelompokJabatan); + @Query("select distinct new Map(pgb.id as id,pgb.namaLengkap as namaLengkap,pgb.tglMasuk as tglMasuk) " + "from MapPegawaiJabatanToUnitKerja mjp, MapPegawaiJabatanToUnitKerja mjn " + "inner join mjp.pegawai pgb " + "inner join mjp.pejabatPenilai pg " + "inner join mjn.jabatan jb " @@ -118,6 +141,19 @@ public interface LogbookKinerjaDao extends PagingAndSortingRepository> findAksesPegawaiByPenilai(@Param("pegawaiId") Integer idPegawai, @Param("listKategoryPegawaiId") List listIdKategoriPegawai); + @Query("select distinct new Map(pgb.id as id,pgb.namaLengkap as namaLengkap," + "pgb.tglMasuk as tglMasuk," + + "pgb.jenisPegawaiId as jenisPegawaiId) " + + "from MapPegawaiJabatanToUnitKerja mjp, MapPegawaiJabatanToUnitKerja mjn " + "inner join mjp.pegawai pgb " + + "inner join mjp.pejabatPenilai pg " + "inner join mjp.jabatan jb " + + "where mjp.pejabatPenilaiId = mjn.pegawaiId " + "and mjn.pegawaiId = pg.id " + + "and mjp.statusEnabled is true " + "and mjn.statusEnabled is true " + "and pgb.statusEnabled is true " + + "and pg.statusEnabled is true " + "and jb.statusEnabled is true " + "and pg.id = :pegawaiId " + + "and pgb.kategoryPegawaiId in (:listKategoryPegawaiId) " + + "and jb.kelompokJabatanId in (:listKelompokJabatabId)") + List> findAksesPegawaiByPenilai(@Param("pegawaiId") Integer idPegawai, + @Param("listKategoryPegawaiId") List listIdKategoriPegawai, + @Param("listKelompokJabatabId") List listIdKelompokJabatan); + @Query("select new Map(lk.noRec as noRec,lk.pegawaiId as pegawaiId) " + "from LogbookKinerja lk where lk.indikatorKinerjaId = :indikatorId " + "and lk.jabatanId = :jabatanId " + "and lk.statusEnabled is true " + "and to_char(lk.bulan,'yyyy-MM') >= to_char(now(),'yyyy-MM') " 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 7c4f38b1..c9203aec 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 @@ -1062,8 +1062,8 @@ public interface PegawaiDao extends PagingAndSortingRepository @Query("select new Map(pg.id as id,pg.shiftKerjaId as shiftKerjaId) from Pegawai pg where pg.statusEnabled is true and pg.id in (:listIdPegawai)") public List> getListKelompokShiftKerja(@Param("listIdPegawai") List listIdPegawai); - @Query("select distinct new Map (pg.id as id,pg.namaLengkap as namaLengkap,pg.tglMasuk as tglMasuk) " - + "from Pegawai pg " + "where pg.statusEnabled is true " + @Query("select distinct new Map (pg.id as id,pg.namaLengkap as namaLengkap," + "pg.tglMasuk as tglMasuk," + + "pg.jenisPegawaiId as jenisPegawaiId) " + "from Pegawai pg " + "where pg.statusEnabled is true " + "and pg.kategoryPegawaiId in (:listKategoryPegawaiId) " + "order by pg.namaLengkap") public List> findPegawaiByListKategori( @Param("listKategoryPegawaiId") List listIdKategoriPegawai); diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/LogbookKinerjaService.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/LogbookKinerjaService.java index 5d4291bb..33631934 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/LogbookKinerjaService.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/LogbookKinerjaService.java @@ -36,7 +36,7 @@ public interface LogbookKinerjaService extends BaseVoService findLogbookKinerja(Integer idPegawai, Integer idJabatan, Long bulan) throws JpaSystemException; - public List> findAksesPegawai(Integer idPegawai); + public List> findAksesPegawai(Integer idPegawai, List listIdKelompokJabatan); public List> findLogbookJamKerjaDokter(Integer idPegawai, Long bulan); diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/LogbookKinerjaServiceImpl.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/LogbookKinerjaServiceImpl.java index f12893b1..ad235866 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/LogbookKinerjaServiceImpl.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/LogbookKinerjaServiceImpl.java @@ -789,9 +789,13 @@ public class LogbookKinerjaServiceImpl extends BaseVoServiceImpl implements Logb } @Override - public List> findAksesPegawai(Integer idPegawai) { + public List> findAksesPegawai(Integer idPegawai, List listIdKelompokJabatan) { List> result = new ArrayList<>(); List> rsAll = new ArrayList<>(); + List> aksesByStaf = new ArrayList<>(); + List> aksesByAtasan = new ArrayList<>(); + List> aksesByPenilai = new ArrayList<>(); + List listPurnaWaktu = Arrays.asList(Master.KategoryPegawai.PURNA_WAKTU); List listIdSDM = pegawaiDao.getPegawaiSDMforCred(Master.UnitKerja.BAG_SDM, @@ -804,23 +808,37 @@ public class LogbookKinerjaServiceImpl extends BaseVoServiceImpl implements Logb } } - List> aksesByStaf = logbookKinerjaDao.findAksesPegawaiByStaf(idPegawai, listPurnaWaktu); - List> aksesByAtasan = logbookKinerjaDao.findAksesPegawaiByAtasan(idPegawai, listPurnaWaktu); - List> aksesByPenilai = logbookKinerjaDao.findAksesPegawaiByPenilai(idPegawai, - listPurnaWaktu); + if (CommonUtil.isNotNullOrEmpty(listIdKelompokJabatan)) { + aksesByStaf = logbookKinerjaDao.findAksesPegawaiByStaf(idPegawai, listPurnaWaktu, listIdKelompokJabatan); + aksesByAtasan = logbookKinerjaDao.findAksesPegawaiByAtasan(idPegawai, listPurnaWaktu, + listIdKelompokJabatan); + aksesByPenilai = logbookKinerjaDao.findAksesPegawaiByPenilai(idPegawai, listPurnaWaktu, + listIdKelompokJabatan); + } else { + aksesByStaf = logbookKinerjaDao.findAksesPegawaiByStaf(idPegawai, listPurnaWaktu); + aksesByAtasan = logbookKinerjaDao.findAksesPegawaiByAtasan(idPegawai, listPurnaWaktu); + aksesByPenilai = logbookKinerjaDao.findAksesPegawaiByPenilai(idPegawai, listPurnaWaktu); + } + List listIdPegawai = new ArrayList<>(); if (CommonUtil.isNotNullOrEmpty(aksesByStaf) && CommonUtil.isNullOrEmpty(rsAll)) { for (Map map : aksesByStaf) { map.put("isGranted", false); + if (!listIdPegawai.contains(map.get("id"))) { + listIdPegawai.add(Integer.parseInt(map.get("id").toString())); + result.add(map); + } } - result.addAll(aksesByStaf); } if (CommonUtil.isNotNullOrEmpty(aksesByAtasan)) { if (CommonUtil.isNullOrEmpty(rsAll)) { for (Map map : aksesByAtasan) { map.put("isGranted", true); + if (!listIdPegawai.contains(map.get("id"))) { + listIdPegawai.add(Integer.parseInt(map.get("id").toString())); + result.add(map); + } } - result.addAll(aksesByAtasan); } else { for (Map res : result) { for (Map map : aksesByAtasan) { @@ -835,8 +853,11 @@ public class LogbookKinerjaServiceImpl extends BaseVoServiceImpl implements Logb if (CommonUtil.isNotNullOrEmpty(aksesByPenilai) && CommonUtil.isNullOrEmpty(rsAll)) { for (Map map : aksesByPenilai) { map.put("isGranted", false); + if (!listIdPegawai.contains(map.get("id"))) { + listIdPegawai.add(Integer.parseInt(map.get("id").toString())); + result.add(map); + } } - result.addAll(aksesByPenilai); } if (CommonUtil.isNotNullOrEmpty(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 64bee640..15a04eac 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 @@ -830,9 +830,11 @@ public class IkiDanRemunerasiController extends LocaleController>> getPegawaiAksesKinerja(HttpServletRequest request, - @RequestParam(value = "pegawaiId", required = true) Integer idPegawai) throws ParseException { + @RequestParam(value = "pegawaiId", required = true) Integer idPegawai, + @RequestParam(value = "listKelompokJabatanId", required = false) List listIdKelompokJabatan) + throws ParseException { try { - List> result = logbookKinerjaService.findAksesPegawai(idPegawai); + List> result = logbookKinerjaService.findAksesPegawai(idPegawai, listIdKelompokJabatan); mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_SUCCESS, getMessage(MessageResource.LABEL_SUCCESS, request)); return RestUtil.getJsonResponse(result, HttpStatus.OK, mapHeaderMessage);