Update NilaiKelompokJabatanService

Perbaikan service informasi total nilai jabatan tidak hanya melibatkan nilai jabatan terakhir yang dievaluasi untuk jabatan dan pegawai yang sama
This commit is contained in:
Salman Manoe 2022-02-01 16:10:11 +07:00
parent 1b8f2fcea2
commit 1fedc79d8f
2 changed files with 33 additions and 3 deletions

View File

@ -52,7 +52,8 @@ public interface NilaiKelompokJabatanDao extends PagingAndSortingRepository<Nila
public List<Integer> 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<Nila
+ "and mj.statusEnabled is true " + "and ej.statusEnabled is true " + "and pg.statusEnabled is true "
+ "and j.statusEnabled is true " + "and uk.statusEnabled is true " + "and dkj.statusEnabled is true "
+ "and kj.statusEnabled is true " + "and pg.kategoryPegawaiId in (:listKategoriId) "
+ "order by pg.namaLengkap")
+ "order by pg.namaLengkap,j.id,ej.tglHitung desc")
public List<Map<String, Object>> findPenempatanEvaluasiJabatan(
@Param("listKategoriId") List<Integer> idListKategori);

View File

@ -122,8 +122,37 @@ public class NilaiKelompokJabatanServiceImpl extends BaseVoServiceImpl implement
@Override
public List<Map<String, Object>> getPenempatanEvaluasiJabatan() {
List<Map<String, Object>> result = nilaiKelompokJabatanDao
List<Map<String, Object>> result = new ArrayList<>();
List<Map<String, Object>> filter = new ArrayList<>();
List<Map<String, Object>> data = nilaiKelompokJabatanDao
.findPenempatanEvaluasiJabatan(Arrays.asList(Master.KategoryPegawai.REMUN));
for (Map<String, Object> map : data) {
boolean isContained = false;
for (Map<String, Object> mapFilter : filter) {
if (map.get("idPegawai").equals(mapFilter.get("idPegawai"))
&& map.get("idJabatan").equals(mapFilter.get("idJabatan"))) {
isContained = true;
break;
}
}
if (!isContained) {
Map<String, Object> mapFilter = new HashMap<>();
mapFilter.put("idPegawai", map.get("idPegawai"));
mapFilter.put("idJabatan", map.get("idJabatan"));
filter.add(mapFilter);
}
}
for (Map<String, Object> mapFilter : filter) {
for (Map<String, Object> map : data) {
if (map.get("idPegawai").equals(mapFilter.get("idPegawai"))
&& map.get("idJabatan").equals(mapFilter.get("idJabatan"))) {
result.add(map);
break;
}
}
}
return result;
}