From 5d76c8e23cb88bc6a6c6d197c6dd0b19a792b825 Mon Sep 17 00:00:00 2001 From: salmanoe Date: Wed, 21 Apr 2021 21:02:32 +0700 Subject: [PATCH] - penambahan simpan nilai jabatan untuk rangkap jabatan saat evaluasi jabatan dan tambah data jabatan - --- .../medifirst2000/dao/EvaluasiJabatanDao.java | 9 ++ .../dao/MapPegawaiJabatanToUnitKerjaDao.java | 19 +-- .../impl/EvaluasiJabatanServiceImpl.java | 36 +++++- .../service/impl/JabatanServiceImpl.java | 53 ++++---- ...pPegawaiJabatanToUnitKerjaServiceImpl.java | 114 +++++++++++++++++- .../impl/RekamDataPegawaiServiceImpl.java | 2 +- .../MapPegawaiJabatanToUnitKerja.java | 38 ++++++ .../vo/MapPegawaiJabatanToUnitKerjaVO.java | 57 +++++++-- 8 files changed, 278 insertions(+), 50 deletions(-) diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/EvaluasiJabatanDao.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/EvaluasiJabatanDao.java index e53a18a3..1f3b82c4 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/EvaluasiJabatanDao.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/EvaluasiJabatanDao.java @@ -74,4 +74,13 @@ public interface EvaluasiJabatanDao extends PagingAndSortingRepository findAllPegawaiRemunByJabatan(@Param("jabatanId") Integer idJabatan, @Param("listKategoriId") List idListKategori); + @Query("select distinct mj.id " + "from MapPegawaiJabatanToUnitKerja mj " + "inner join mj.pegawai pg " + + "where mj.statusEnabled is true " + "and pg.statusEnabled is true " + "and mj.jabatanId = :jabatanId " + + "and pg.kategoryPegawaiId in (:listKategoriId)") + List findAllJabatanRemun(@Param("listKategoriId") List idListKategori); + + @Query("select new Map(ej.gradeId as gradeId,ej.totalNilai as totalNilai) " + "from EvaluasiJabatan ej " + + "where ej.statusEnabled is true " + "and ej.jabatanId = :jabatanId " + "order by ej.tglHitung desc") + List> findEvaluasiByJabatan(@Param("jabatanId") Integer idJabatan); + } 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 9f864974..48524069 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 @@ -28,6 +28,10 @@ public interface MapPegawaiJabatanToUnitKerjaDao extends CrudRepository> getJabatanInternalStrukturalByPegawai(@Param("idPegawai") Integer idPegawai); @Query("select distinct new Map(jb.id as id,jb.namaJabatan as namaJabatan,jb.levelJabatan as levelJabatan," - + "mj.unitKerjaPegawaiId as idUnitKerja," - + "mj.atasanLangsungId as atasanId) " - + "from MapPegawaiJabatanToUnitKerja mj " - + "left join mj.jabatan jb " - + "where mj.statusEnabled is true " - + "and jb.statusEnabled is true " - + "and mj.pegawaiId = :idPegawai") + + "mj.unitKerjaPegawaiId as idUnitKerja," + "mj.atasanLangsungId as atasanId) " + + "from MapPegawaiJabatanToUnitKerja mj " + "left join mj.jabatan jb " + "where mj.statusEnabled is true " + + "and jb.statusEnabled is true " + "and mj.pegawaiId = :idPegawai") List> findJabLvlUkAtasan(@Param("idPegawai") Integer idPegawai); @Query("select new Map(jabatan.id as idJabatan,jabatan.namaJabatan as namaJabatan," @@ -454,4 +454,9 @@ public interface MapPegawaiJabatanToUnitKerjaDao extends CrudRepository> findPegawaiByJabatan(@Param("jabatanId") Integer idJabatan); + @Query("select new Map(mj.id as id,mj.nilaiJabatan as nilaiJabatan,mj.isPrimary as isPrimary) " + + "from MapPegawaiJabatanToUnitKerja mj " + "where mj.statusEnabled is true " + + "and mj.pegawaiId = :pegawaiId " + "order by mj.nilaiJabatan desc, " + "mj.isPrimary desc") + List> findNilaiJabatanByPegawai(@Param("pegawaiId") Integer idPegawai); + } diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/EvaluasiJabatanServiceImpl.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/EvaluasiJabatanServiceImpl.java index 1153ba9b..db69d42b 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/EvaluasiJabatanServiceImpl.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/EvaluasiJabatanServiceImpl.java @@ -15,12 +15,14 @@ import com.jasamedika.medifirst2000.constants.Master; import com.jasamedika.medifirst2000.converter.BaseConverterImpl; import com.jasamedika.medifirst2000.dao.EvaluasiJabatanDao; import com.jasamedika.medifirst2000.dao.MapFaktorEvaluasiDao; +import com.jasamedika.medifirst2000.dao.MapPegawaiJabatanToUnitKerjaDao; import com.jasamedika.medifirst2000.dao.MasterEvaluasiJabatanDao; import com.jasamedika.medifirst2000.dao.PegawaiDao; import com.jasamedika.medifirst2000.entities.EvaluasiJabatan; import com.jasamedika.medifirst2000.entities.FaktorEvaluasi; import com.jasamedika.medifirst2000.entities.Jabatan; import com.jasamedika.medifirst2000.entities.MapFaktorEvaluasi; +import com.jasamedika.medifirst2000.entities.MapPegawaiJabatanToUnitKerja; import com.jasamedika.medifirst2000.entities.MasterEvaluasiJabatan; import com.jasamedika.medifirst2000.entities.NilaiKelompokJabatan; import com.jasamedika.medifirst2000.entities.Pegawai; @@ -68,6 +70,12 @@ public class EvaluasiJabatanServiceImpl extends BaseVoServiceImpl implements Eva @Autowired private PegawaiDao pegawaiDao; + @Autowired + private MapFaktorEvaluasiDao mapFaktorEvaluasiDao; + + @Autowired + private MapPegawaiJabatanToUnitKerjaDao mapPegawaiJabatanToUnitKerjaDao; + @Override public Map saveEvaluasiJabatan(EvaluasiJabatanVO vo) { Map result = new HashMap(); @@ -166,10 +174,10 @@ public class EvaluasiJabatanServiceImpl extends BaseVoServiceImpl implements Eva if (CommonUtil.isNotNullOrEmpty(resultDomain)) { result.put("noRec", resultDomain.getNoRec()); - /** - * Update data pegawai - */ if (CommonUtil.isNotNullOrEmpty(result)) { + /** + * Update data pegawai + */ List listIdPegawai = evaluasiJabatanDao.findAllPegawaiRemunByJabatan( model.getJabatan().getId(), Arrays.asList(Master.KategoryPegawai.REMUN)); List listPegawai = new ArrayList<>(); @@ -187,6 +195,25 @@ public class EvaluasiJabatanServiceImpl extends BaseVoServiceImpl implements Eva if (CommonUtil.isNotNullOrEmpty(listPegawai)) { pegawaiDao.save(listPegawai); } + /** + * Update data jabatan + */ + List listMapJabatan = new ArrayList<>(); + List listIdMapJabatan = evaluasiJabatanDao + .findAllJabatanRemun(Arrays.asList(Master.KategoryPegawai.REMUN)); + for (Integer id : listIdMapJabatan) { + MapPegawaiJabatanToUnitKerja mj = mapPegawaiJabatanToUnitKerjaDao.findOne(id); + if ((CommonUtil.isNotNullOrEmpty(mj.getNilaiJabatan()) + && mj.getNilaiJabatan() < model.getTotalNilai()) + || CommonUtil.isNullOrEmpty(mj.getNilaiJabatan())) { + mj.setNilaiJabatan(model.getTotalNilai()); + mj.setGrade(nilaiKelompokJabatan); + listMapJabatan.add(mj); + } + } + if (CommonUtil.isNotNullOrEmpty(listMapJabatan)) { + mapPegawaiJabatanToUnitKerjaDao.save(listMapJabatan); + } } } @@ -215,9 +242,6 @@ public class EvaluasiJabatanServiceImpl extends BaseVoServiceImpl implements Eva return result; } - @Autowired - private MapFaktorEvaluasiDao mapFaktorEvaluasiDao; - @Override public Map hitungPoinEvaluasi(EvaluasiJabatanVO vo) { Map result = new HashMap(); diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/JabatanServiceImpl.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/JabatanServiceImpl.java index aef71eb3..17c756de 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/JabatanServiceImpl.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/JabatanServiceImpl.java @@ -112,10 +112,23 @@ public class JabatanServiceImpl extends BaseVoServiceImpl implements JabatanServ Jabatan jabatanLama = jabatanDao.findOne(vo.getId()); Jabatan jabatanBaru = jabatanConverter.transferVOToModel(vo, jabatanLama); - UnitKerjaPegawai unitKerja = unitKerjaConverter.transferVOToModel(vo.getUnitKerja(), new UnitKerjaPegawai()); - JenisJabatan jenisJabatan = jenisJabatanConverter.transferVOToModel(vo.getJenisJabatan(), new JenisJabatan()); - KelompokJabatan kelompokJabatan = kelompokJabatanConverter.transferVOToModel(vo.getKelompokJabatan(), - new KelompokJabatan()); + if (CommonUtil.isNotNullOrEmpty(vo.getUnitKerja())) { + UnitKerjaPegawai unitKerja = unitKerjaConverter.transferVOToModel(vo.getUnitKerja(), + new UnitKerjaPegawai()); + jabatanBaru.setUnitKerja(unitKerja); + } + + if (CommonUtil.isNotNullOrEmpty(vo.getJenisJabatan())) { + JenisJabatan jenisJabatan = jenisJabatanConverter.transferVOToModel(vo.getJenisJabatan(), + new JenisJabatan()); + jabatanBaru.setJenisJabatan(jenisJabatan); + } + + if (CommonUtil.isNotNullOrEmpty(vo.getKelompokJabatan())) { + KelompokJabatan kelompokJabatan = kelompokJabatanConverter.transferVOToModel(vo.getKelompokJabatan(), + new KelompokJabatan()); + jabatanBaru.setKelompokJabatan(kelompokJabatan); + } if (CommonUtil.isNotNullOrEmpty(vo.getEselon())) { Eselon eselon = eselonConverter.transferVOToModel(vo.getEselon(), new Eselon()); @@ -124,9 +137,7 @@ public class JabatanServiceImpl extends BaseVoServiceImpl implements JabatanServ // hapus eselon jabatanBaru.setEselon(null); } - jabatanBaru.setUnitKerja(unitKerja); - jabatanBaru.setJenisJabatan(jenisJabatan); - jabatanBaru.setKelompokJabatan(kelompokJabatan); + Jabatan resultModel = jabatanDao.save(jabatanBaru); JabatanVO resultVO = new JabatanVO(); @@ -313,30 +324,30 @@ public class JabatanServiceImpl extends BaseVoServiceImpl implements JabatanServ public List> findJabatan(String namaJabatan, Integer idJenisJabatan, Integer idUnitKerja) { List> result = new ArrayList<>(); - if (CommonUtil.isNullOrEmpty(namaJabatan) && CommonUtil.isNullOrEmpty(idJenisJabatan) + if (CommonUtil.isNullOrEmpty(namaJabatan.toLowerCase()) && CommonUtil.isNullOrEmpty(idJenisJabatan) && CommonUtil.isNullOrEmpty(idUnitKerja)) { result = jabatanDao.findJabatan(); - } else if (CommonUtil.isNotNullOrEmpty(namaJabatan) && CommonUtil.isNullOrEmpty(idJenisJabatan) + } else if (CommonUtil.isNotNullOrEmpty(namaJabatan.toLowerCase()) && CommonUtil.isNullOrEmpty(idJenisJabatan) && CommonUtil.isNullOrEmpty(idUnitKerja)) { - result = jabatanDao.findJabatanByNama(namaJabatan); - } else if (CommonUtil.isNullOrEmpty(namaJabatan) && CommonUtil.isNotNullOrEmpty(idJenisJabatan) + result = jabatanDao.findJabatanByNama(namaJabatan.toLowerCase()); + } else if (CommonUtil.isNullOrEmpty(namaJabatan.toLowerCase()) && CommonUtil.isNotNullOrEmpty(idJenisJabatan) && CommonUtil.isNullOrEmpty(idUnitKerja)) { result = jabatanDao.findJabatanByJenis(idJenisJabatan); - } else if (CommonUtil.isNullOrEmpty(namaJabatan) && CommonUtil.isNullOrEmpty(idJenisJabatan) + } else if (CommonUtil.isNullOrEmpty(namaJabatan.toLowerCase()) && CommonUtil.isNullOrEmpty(idJenisJabatan) && CommonUtil.isNotNullOrEmpty(idUnitKerja)) { result = jabatanDao.findJabatanByUnit(idUnitKerja); - } else if (CommonUtil.isNotNullOrEmpty(namaJabatan) && CommonUtil.isNotNullOrEmpty(idJenisJabatan) + } else if (CommonUtil.isNotNullOrEmpty(namaJabatan.toLowerCase()) && CommonUtil.isNotNullOrEmpty(idJenisJabatan) && CommonUtil.isNullOrEmpty(idUnitKerja)) { - result = jabatanDao.findJabatanByNamaJenis(namaJabatan, idJenisJabatan); - } else if (CommonUtil.isNotNullOrEmpty(namaJabatan) && CommonUtil.isNullOrEmpty(idJenisJabatan) + result = jabatanDao.findJabatanByNamaJenis(namaJabatan.toLowerCase(), idJenisJabatan); + } else if (CommonUtil.isNotNullOrEmpty(namaJabatan.toLowerCase()) && CommonUtil.isNullOrEmpty(idJenisJabatan) && CommonUtil.isNotNullOrEmpty(idUnitKerja)) { - result = jabatanDao.findJabatanByNamaUnit(namaJabatan, idUnitKerja); - } else if (CommonUtil.isNullOrEmpty(namaJabatan) && CommonUtil.isNotNullOrEmpty(idJenisJabatan) + result = jabatanDao.findJabatanByNamaUnit(namaJabatan.toLowerCase(), idUnitKerja); + } else if (CommonUtil.isNullOrEmpty(namaJabatan.toLowerCase()) && CommonUtil.isNotNullOrEmpty(idJenisJabatan) && CommonUtil.isNotNullOrEmpty(idUnitKerja)) { result = jabatanDao.findJabatanByJenisUnit(idJenisJabatan, idUnitKerja); - } else if (CommonUtil.isNotNullOrEmpty(namaJabatan) && CommonUtil.isNotNullOrEmpty(idJenisJabatan) + } else if (CommonUtil.isNotNullOrEmpty(namaJabatan.toLowerCase()) && CommonUtil.isNotNullOrEmpty(idJenisJabatan) && CommonUtil.isNotNullOrEmpty(idUnitKerja)) { - result = jabatanDao.findJabatanByNamaJenisUnit(namaJabatan, idJenisJabatan, idUnitKerja); + result = jabatanDao.findJabatanByNamaJenisUnit(namaJabatan.toLowerCase(), idJenisJabatan, idUnitKerja); } return result; @@ -365,13 +376,13 @@ public class JabatanServiceImpl extends BaseVoServiceImpl implements JabatanServ && jabatan.get("kelompokJabatanId").equals(peringkat.get("kelompokJabatanId"))) { nilaiTerendah = Integer.valueOf(peringkat.get("nilaiTerendah").toString()); nilaiTertinggi = Integer.valueOf(peringkat.get("nilaiTertinggi").toString()); - + break; } } jabatan.put("nilaiTerendah", nilaiTerendah); jabatan.put("nilaiTertinggi", nilaiTertinggi); - + result.add(jabatan); } diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/MapPegawaiJabatanToUnitKerjaServiceImpl.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/MapPegawaiJabatanToUnitKerjaServiceImpl.java index d2cb64a1..c16c0b58 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/MapPegawaiJabatanToUnitKerjaServiceImpl.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/MapPegawaiJabatanToUnitKerjaServiceImpl.java @@ -14,6 +14,7 @@ import org.springframework.transaction.annotation.Transactional; import com.google.gson.Gson; import com.jasamedika.medifirst2000.constants.Master; import com.jasamedika.medifirst2000.converter.BaseConverterImpl; +import com.jasamedika.medifirst2000.dao.EvaluasiJabatanDao; import com.jasamedika.medifirst2000.dao.HistoryDataPegawaiDao; import com.jasamedika.medifirst2000.dao.JabatanDao; import com.jasamedika.medifirst2000.dao.JenisJabatanDao; @@ -86,6 +87,9 @@ public class MapPegawaiJabatanToUnitKerjaServiceImpl implements MapPegawaiJabata @Autowired private HistoryDataPegawaiDao historyDataPegawaiDao; + @Autowired + private EvaluasiJabatanDao evaluasiJabatanDao; + @Autowired private BaseConverterImpl pegawaiConverter; @@ -163,6 +167,20 @@ public class MapPegawaiJabatanToUnitKerjaServiceImpl implements MapPegawaiJabata if (CommonUtil.isNotNullOrEmpty(vo.getJabatan())) { map.setJabatan(jabatanConverter.transferVOToModel(vo.getJabatan(), new Jabatan())); perubahan += "jabatan, "; + + // Find nilai jabatan dan grade + List> ej = evaluasiJabatanDao + .findEvaluasiByJabatan(vo.getJabatan().getId()); + if (CommonUtil.isNotNullOrEmpty(ej) + && Arrays.asList(Master.KategoryPegawai.REMUN).contains(idKategoryPegawai) + && (CommonUtil.isNullOrEmpty(map.getNilaiJabatan()) || map.getNilaiJabatan() < Double + .valueOf(ej.get(0).get("totalNilai").toString()))) { + map.setNilaiJabatan(Double.valueOf(ej.get(0).get("totalNilai").toString())); + NilaiKelompokJabatan nj = new NilaiKelompokJabatan(); + nj.setId(Integer.valueOf(ej.get(0).get("gradeId").toString())); + map.setGrade(nj); + perubahan += "hitung nilai jabatan, grade jabatan "; + } } if (CommonUtil.isNotNullOrEmpty(vo.getUnitKerjaPegawai())) { map.setUnitKerjaPegawai( @@ -240,6 +258,20 @@ public class MapPegawaiJabatanToUnitKerjaServiceImpl implements MapPegawaiJabata if (CommonUtil.isNotNullOrEmpty(vo.getJabatan())) { map.setJabatan(jabatanConverter.transferVOToModel(vo.getJabatan(), new Jabatan())); perubahan += "jabatan, "; + + // Find nilai jabatan dan grade + List> ej = evaluasiJabatanDao + .findEvaluasiByJabatan(vo.getJabatan().getId()); + if (CommonUtil.isNotNullOrEmpty(ej) + && Arrays.asList(Master.KategoryPegawai.REMUN).contains(idKategoryPegawai) + && (CommonUtil.isNullOrEmpty(map.getNilaiJabatan()) || map.getNilaiJabatan() < Double + .valueOf(ej.get(0).get("totalNilai").toString()))) { + map.setNilaiJabatan(Double.valueOf(ej.get(0).get("totalNilai").toString())); + NilaiKelompokJabatan nj = new NilaiKelompokJabatan(); + nj.setId(Integer.valueOf(ej.get(0).get("gradeId").toString())); + map.setGrade(nj); + perubahan += "hitung nilai jabatan, grade jabatan "; + } } if (CommonUtil.isNotNullOrEmpty(vo.getUnitKerjaPegawai())) { map.setUnitKerjaPegawai( @@ -284,6 +316,24 @@ public class MapPegawaiJabatanToUnitKerjaServiceImpl implements MapPegawaiJabata listResult.add(evaluasiJabatan); } } + + // setting jabatan utama + if (CommonUtil.isNotNullOrEmpty(map.getPegawaiId())) { + List> lnj = mapPegawaiJabatanToUnitKerjaDao + .findNilaiJabatanByPegawai(map.getPegawaiId()); + if (lnj.size() > 1) { + if (!Boolean.valueOf(lnj.get(0).get("isPrimary").toString())) { + mapPegawaiJabatanToUnitKerjaDao.changeIsNotPrimary(map.getPegawaiId(), + Integer.valueOf(lnj.get(0).get("id").toString())); + mapPegawaiJabatanToUnitKerjaDao.changeIsPrimary(map.getPegawaiId(), + Integer.valueOf(lnj.get(0).get("id").toString())); + } + } else if (lnj.size() == 1) { + mapPegawaiJabatanToUnitKerjaDao.changeIsPrimary(map.getPegawaiId(), + Integer.valueOf(lnj.get(0).get("id").toString())); + } + + } } } result.put("data", listResult); @@ -385,6 +435,20 @@ public class MapPegawaiJabatanToUnitKerjaServiceImpl implements MapPegawaiJabata riwayatJabatanVo.setPegawai(vo.getPegawai()); riwayatJabatanVo.setStatusEnabled(Master.STATUS_ENABLE_TRUE); riwayatJabatanService.add(riwayatJabatanVo); + + // Find nilai jabatan dan grade + List> ej = evaluasiJabatanDao + .findEvaluasiByJabatan(vo.getJabatan().getId()); + if (CommonUtil.isNotNullOrEmpty(ej) + && Arrays.asList(Master.KategoryPegawai.REMUN).contains(idKategoryPegawai) + && (CommonUtil.isNullOrEmpty(map.getNilaiJabatan()) || map.getNilaiJabatan() < Double + .valueOf(ej.get(0).get("totalNilai").toString()))) { + map.setNilaiJabatan(Double.valueOf(ej.get(0).get("totalNilai").toString())); + NilaiKelompokJabatan nj = new NilaiKelompokJabatan(); + nj.setId(Integer.valueOf(ej.get(0).get("gradeId").toString())); + map.setGrade(nj); + perubahan += "hitung ulang nilai jabatan, ubah grade jabatan "; + } } } else if (CommonUtil.isNullOrEmpty(map.getJabatanId()) && CommonUtil.isNotNullOrEmpty(vo.getJabatan())) { @@ -402,10 +466,25 @@ public class MapPegawaiJabatanToUnitKerjaServiceImpl implements MapPegawaiJabata riwayatJabatanVo.setPegawai(vo.getPegawai()); riwayatJabatanVo.setStatusEnabled(Master.STATUS_ENABLE_TRUE); riwayatJabatanService.add(riwayatJabatanVo); + + // Find nilai jabatan dan grade + List> ej = evaluasiJabatanDao.findEvaluasiByJabatan(vo.getJabatan().getId()); + if (CommonUtil.isNotNullOrEmpty(ej) + && Arrays.asList(Master.KategoryPegawai.REMUN).contains(idKategoryPegawai) + && (CommonUtil.isNullOrEmpty(map.getNilaiJabatan()) || map.getNilaiJabatan() < Double + .valueOf(ej.get(0).get("totalNilai").toString()))) { + map.setNilaiJabatan(Double.valueOf(ej.get(0).get("totalNilai").toString())); + NilaiKelompokJabatan nj = new NilaiKelompokJabatan(); + nj.setId(Integer.valueOf(ej.get(0).get("gradeId").toString())); + map.setGrade(nj); + perubahan += "hitung nilai jabatan, grade jabatan"; + } } else if (CommonUtil.isNotNullOrEmpty(map.getJabatanId()) && CommonUtil.isNullOrEmpty(vo.getJabatan())) { map.setJabatan(null); - perubahan += "hapus jabatan, "; + map.setNilaiJabatan(null); + map.setGrade(null); + perubahan += "hapus jabatan, hapus hasil hitung nilai jabatan, hapus grade jabatan"; } if (CommonUtil.isNotNullOrEmpty(map.getUnitKerjaPegawaiId()) @@ -602,6 +681,19 @@ public class MapPegawaiJabatanToUnitKerjaServiceImpl implements MapPegawaiJabata riwayatJabatanVo.setPegawai(vo.getPegawai()); riwayatJabatanVo.setStatusEnabled(Master.STATUS_ENABLE_TRUE); riwayatJabatanService.add(riwayatJabatanVo); + + // Find nilai jabatan dan grade + List> ej = evaluasiJabatanDao.findEvaluasiByJabatan(vo.getJabatan().getId()); + if (CommonUtil.isNotNullOrEmpty(ej) + && Arrays.asList(Master.KategoryPegawai.REMUN).contains(idKategoryPegawai) + && (CommonUtil.isNullOrEmpty(map.getNilaiJabatan()) || map.getNilaiJabatan() < Double + .valueOf(ej.get(0).get("totalNilai").toString()))) { + map.setNilaiJabatan(Double.valueOf(ej.get(0).get("totalNilai").toString())); + NilaiKelompokJabatan nj = new NilaiKelompokJabatan(); + nj.setId(Integer.valueOf(ej.get(0).get("gradeId").toString())); + map.setGrade(nj); + perubahan += "hitung nilai jabatan, grade jabatan"; + } } if (CommonUtil.isNotNullOrEmpty(vo.getUnitKerjaPegawai())) { @@ -702,6 +794,24 @@ public class MapPegawaiJabatanToUnitKerjaServiceImpl implements MapPegawaiJabata listResult.add(evaluasiJabatan); } } + + // setting jabatan utama + if (CommonUtil.isNotNullOrEmpty(vo.getPegawai())) { + List> lnj = mapPegawaiJabatanToUnitKerjaDao + .findNilaiJabatanByPegawai(vo.getPegawai().getId()); + if (lnj.size() > 1) { + if (!Boolean.valueOf(lnj.get(0).get("isPrimary").toString())) { + mapPegawaiJabatanToUnitKerjaDao.changeIsNotPrimary(vo.getPegawai().getId(), + Integer.valueOf(lnj.get(0).get("id").toString())); + mapPegawaiJabatanToUnitKerjaDao.changeIsPrimary(vo.getPegawai().getId(), + Integer.valueOf(lnj.get(0).get("id").toString())); + } + } else if (lnj.size() == 1) { + mapPegawaiJabatanToUnitKerjaDao.changeIsPrimary(vo.getPegawai().getId(), + Integer.valueOf(lnj.get(0).get("id").toString())); + } + } + } result.put("data", listResult); @@ -910,7 +1020,7 @@ public class MapPegawaiJabatanToUnitKerjaServiceImpl implements MapPegawaiJabata @Transactional(readOnly = false) public void disableIsprimary(Integer idPegawai, Integer id) { - mapPegawaiJabatanToUnitKerjaDao.changeIsPrimary(idPegawai, id); + mapPegawaiJabatanToUnitKerjaDao.changeIsNotPrimary(idPegawai, id); } @Transactional(readOnly = false) diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/RekamDataPegawaiServiceImpl.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/RekamDataPegawaiServiceImpl.java index a29496cb..ed4a3362 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/RekamDataPegawaiServiceImpl.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/RekamDataPegawaiServiceImpl.java @@ -2817,7 +2817,7 @@ public class RekamDataPegawaiServiceImpl extends BaseVoServiceImpl implements Re @Transactional(readOnly = false) public void disableIsprimary(Integer idPegawai, Integer id) { - mapPegawaiJabatanToUnitKerjaDao.changeIsPrimary(idPegawai, id); + mapPegawaiJabatanToUnitKerjaDao.changeIsNotPrimary(idPegawai, id); } @Transactional(readOnly = false) diff --git a/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/entities/MapPegawaiJabatanToUnitKerja.java b/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/entities/MapPegawaiJabatanToUnitKerja.java index 325aa4bb..3e00d275 100644 --- a/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/entities/MapPegawaiJabatanToUnitKerja.java +++ b/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/entities/MapPegawaiJabatanToUnitKerja.java @@ -86,11 +86,25 @@ public class MapPegawaiJabatanToUnitKerja extends BaseMaster { private Integer pejabatPenilaiId; @Column(name = "atasanLangsungDireksi") + @Caption(value = "Atasan Langsung Direksi") private String atasanLangsungDireksi; @Column(name = "pejabatPenilaiDireksi") + @Caption(value = "Pejabat Penilai Direksi") private String pejabatPenilaiDireksi; + @Column(name = "nilaijabatan", nullable = true) + @Caption(value = "Nilai Jabatan") + private Double nilaiJabatan; + + @ManyToOne + @JoinColumn(name = "objectgradefk") + @Caption(value = "Grade") + private NilaiKelompokJabatan grade; + + @Column(name = "objectgradefk", insertable = false, updatable = false, nullable = true) + private Integer gradeId; + public SubUnitKerjaPegawai getSubUnitKerjaPegawai() { return subUnitKerjaPegawai; } @@ -235,4 +249,28 @@ public class MapPegawaiJabatanToUnitKerja extends BaseMaster { this.pejabatPenilaiDireksi = pejabatPenilaiDireksi; } + public Double getNilaiJabatan() { + return nilaiJabatan; + } + + public void setNilaiJabatan(Double nilaiJabatan) { + this.nilaiJabatan = nilaiJabatan; + } + + public NilaiKelompokJabatan getGrade() { + return grade; + } + + public void setGrade(NilaiKelompokJabatan grade) { + this.grade = grade; + } + + public Integer getGradeId() { + return gradeId; + } + + public void setGradeId(Integer gradeId) { + this.gradeId = gradeId; + } + } diff --git a/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/vo/MapPegawaiJabatanToUnitKerjaVO.java b/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/vo/MapPegawaiJabatanToUnitKerjaVO.java index 2e0c3796..8f6541c6 100644 --- a/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/vo/MapPegawaiJabatanToUnitKerjaVO.java +++ b/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/vo/MapPegawaiJabatanToUnitKerjaVO.java @@ -7,25 +7,25 @@ import com.jasamedika.medifirst2000.base.vo.BaseMasterVO; import com.jasamedika.medifirst2000.helper.Caption; public class MapPegawaiJabatanToUnitKerjaVO extends BaseMasterVO { - + private static final long serialVersionUID = 5850163476930576579L; - @Column(name = "pegawai") + @Column(name = "pegawai") @Caption(value = "Object Pegawai") private PegawaiVO pegawai; - @Column(name = "jabatan") + @Column(name = "jabatan") @Caption(value = "Object Jabatan") private JabatanVO jabatan; - @Column(name = "unitKerjaPegawai") + @Column(name = "unitKerjaPegawai") @Caption(value = "Object UnitKerjaPegawai") private UnitKerjaPegawaiVO unitKerjaPegawai; - @Column(name = "subUnitKerjaPegawai") + @Column(name = "subUnitKerjaPegawai") @Caption(value = "Object subUnitKerjaPegawai") private SubUnitKerjaPegawaiVO subUnitKerjaPegawai; - + @Column(name = "isCanCreateJadwal") @Caption(value = "isCanCreateJadwal") @NotNull @@ -40,21 +40,29 @@ public class MapPegawaiJabatanToUnitKerjaVO extends BaseMasterVO { @Caption(value = "isMonitoring") @NotNull private Boolean isMonitoring; - - @Column(name = "atasanLangsung") + + @Column(name = "atasanLangsung") @Caption(value = "Object Atasan Langsung") private PegawaiVO atasanLangsung; - - @Column(name = "pejabatPenilai") + + @Column(name = "pejabatPenilai") @Caption(value = "Object Pejabat Penilai") private PegawaiVO pejabatPenilai; - + @Caption(value = "atasanLangsungDireksi") private String atasanLangsungDireksi; - + @Caption(value = "pejabatPenilaiDireksi") private String pejabatPenilaiDireksi; + @Caption(value = "Nilai Jabatan") + private Double nilaiJabatan; + + @Caption(value = "Grade") + private NilaiKelompokJabatanVO grade; + + private Integer gradeId; + public PegawaiVO getPegawai() { return pegawai; } @@ -143,5 +151,28 @@ public class MapPegawaiJabatanToUnitKerjaVO extends BaseMasterVO { this.pejabatPenilaiDireksi = pejabatPenilaiDireksi; } - + public Double getNilaiJabatan() { + return nilaiJabatan; + } + + public void setNilaiJabatan(Double nilaiJabatan) { + this.nilaiJabatan = nilaiJabatan; + } + + public NilaiKelompokJabatanVO getGrade() { + return grade; + } + + public void setGrade(NilaiKelompokJabatanVO grade) { + this.grade = grade; + } + + public Integer getGradeId() { + return gradeId; + } + + public void setGradeId(Integer gradeId) { + this.gradeId = gradeId; + } + }