From 1fedc79d8f884bea164b6aa80a763b455ddb067a Mon Sep 17 00:00:00 2001 From: Salman Manoe Date: Tue, 1 Feb 2022 16:10:11 +0700 Subject: [PATCH] Update NilaiKelompokJabatanService Perbaikan service informasi total nilai jabatan tidak hanya melibatkan nilai jabatan terakhir yang dievaluasi untuk jabatan dan pegawai yang sama --- .../dao/NilaiKelompokJabatanDao.java | 5 +-- .../impl/NilaiKelompokJabatanServiceImpl.java | 31 ++++++++++++++++++- 2 files changed, 33 insertions(+), 3 deletions(-) diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/NilaiKelompokJabatanDao.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/NilaiKelompokJabatanDao.java index 411b6f92..0f2ac18e 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/NilaiKelompokJabatanDao.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/NilaiKelompokJabatanDao.java @@ -52,7 +52,8 @@ public interface NilaiKelompokJabatanDao extends PagingAndSortingRepository findIdsByGrade(@Param("grade") String grade); @Query("select distinct new Map(pg.id as idPegawai,pg.namaLengkap as namaPegawai," + "uk.name as unitKerja," - + "j.namaJabatan as namaJabatan," + "ej.totalNilai as nilaiJabatan," + "dkj.gradeDesc as grade," + + "j.id as idJabatan,j.namaJabatan as namaJabatan," + + "ej.totalNilai as nilaiJabatan,ej.tglHitung as tglHitung," + "dkj.gradeDesc as grade," + "kj.id as idKelompokJabatan,kj.namaKelompokJabatan as kelompokJabatan," + "dkj.id as idDetailKelompokJabatan,dkj.detailKelompokJabatan as detailKelompokJabatan) " + "from MapPegawaiJabatanToUnitKerja mj, EvaluasiJabatan ej " + "inner join mj.pegawai pg " @@ -62,7 +63,7 @@ public interface NilaiKelompokJabatanDao extends PagingAndSortingRepository> findPenempatanEvaluasiJabatan( @Param("listKategoriId") List idListKategori); diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/NilaiKelompokJabatanServiceImpl.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/NilaiKelompokJabatanServiceImpl.java index 8534e214..5d3292a9 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/NilaiKelompokJabatanServiceImpl.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/NilaiKelompokJabatanServiceImpl.java @@ -122,8 +122,37 @@ public class NilaiKelompokJabatanServiceImpl extends BaseVoServiceImpl implement @Override public List> getPenempatanEvaluasiJabatan() { - List> result = nilaiKelompokJabatanDao + List> result = new ArrayList<>(); + List> filter = new ArrayList<>(); + + List> data = nilaiKelompokJabatanDao .findPenempatanEvaluasiJabatan(Arrays.asList(Master.KategoryPegawai.REMUN)); + for (Map map : data) { + boolean isContained = false; + for (Map mapFilter : filter) { + if (map.get("idPegawai").equals(mapFilter.get("idPegawai")) + && map.get("idJabatan").equals(mapFilter.get("idJabatan"))) { + isContained = true; + break; + } + } + if (!isContained) { + Map mapFilter = new HashMap<>(); + mapFilter.put("idPegawai", map.get("idPegawai")); + mapFilter.put("idJabatan", map.get("idJabatan")); + filter.add(mapFilter); + } + } + + for (Map mapFilter : filter) { + for (Map map : data) { + if (map.get("idPegawai").equals(mapFilter.get("idPegawai")) + && map.get("idJabatan").equals(mapFilter.get("idJabatan"))) { + result.add(map); + break; + } + } + } return result; }