From 1dd28f5b6bc86ee67b379f07a0150cdf3b6d5055 Mon Sep 17 00:00:00 2001 From: salmanoe Date: Mon, 24 May 2021 14:28:49 +0700 Subject: [PATCH] perbaikan service simpan rekam data pegawai baru terhadap perhitungan nilai jabatan, mapping kelompok jabatan, dan sumber data --- .../impl/RekamDataPegawaiServiceImpl.java | 109 +++++++++++++++++- 1 file changed, 108 insertions(+), 1 deletion(-) 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 00a3aa3f..342cac4b 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 @@ -20,6 +20,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.LoginUserDao; import com.jasamedika.medifirst2000.dao.MapPegawaiJabatanToUnitKerjaDao; @@ -195,6 +196,9 @@ public class RekamDataPegawaiServiceImpl extends BaseVoServiceImpl implements Re @Autowired private MapPegawaiJabatanToUnitKerjaDao mapPegawaiJabatanToUnitkerjaDao; + @Autowired + private EvaluasiJabatanDao evaluasiJabatanDao; + @Autowired private BaseConverterImpl levelTingkatConverter; @@ -1609,6 +1613,21 @@ public class RekamDataPegawaiServiceImpl extends BaseVoServiceImpl implements Re mapVo.setJabatan(null); } } + if (CommonUtil.isNotNullOrEmpty(mapVo.getSumberData())) { + if (mapVo.getSumberData().equals(0)) { + mapVo.setSumberData(null); + } + } + if (CommonUtil.isNotNullOrEmpty(mapVo.getGrade())) { + if (mapVo.getGrade().getId().equals(Master.EMPTY_DATA)) { + mapVo.setGrade(null); + } + } + if (CommonUtil.isNotNullOrEmpty(mapVo.getNilaiJabatan())) { + if (mapVo.getNilaiJabatan().equals(0)) { + mapVo.setSumberData(null); + } + } if (CommonUtil.isNotNullOrEmpty(mapVo.getUnitKerjaPegawai())) { if (mapVo.getUnitKerjaPegawai().getId().equals(Master.EMPTY_DATA)) { mapVo.setUnitKerjaPegawai(null); @@ -1638,6 +1657,22 @@ public class RekamDataPegawaiServiceImpl extends BaseVoServiceImpl implements Re map.setId(vo.getId()); map.setKdProfile(Master.KODE_PROFILE); + if (CommonUtil.isNotNullOrEmpty(map.getSumberData()) + && CommonUtil.isNotNullOrEmpty(mapVo.getSumberData())) { + if (!map.getSumberData().equals(mapVo.getSumberData())) { + map.setSumberData(mapVo.getSumberData()); + perubahan += "ubah sumber data, "; + } + } else if (CommonUtil.isNullOrEmpty(map.getSumberData()) + && CommonUtil.isNotNullOrEmpty(mapVo.getSumberData())) { + map.setSumberData(mapVo.getSumberData()); + perubahan += "sumber data, "; + } else if (CommonUtil.isNotNullOrEmpty(map.getSumberData()) + && CommonUtil.isNullOrEmpty(mapVo.getSumberData())) { + map.setSumberData(mapVo.getSumberData()); + perubahan += "hapus sumber data, "; + } + if (CommonUtil.isNotNullOrEmpty(map.getStatusEnabled()) && CommonUtil.isNotNullOrEmpty(vo.getStatusEnabled())) { if (!map.getStatusEnabled().equals(vo.getStatusEnabled())) { @@ -1679,8 +1714,20 @@ public class RekamDataPegawaiServiceImpl extends BaseVoServiceImpl implements Re riwayatJabatanVo.setJabatan(mapVo.getJabatan()); riwayatJabatanVo.setNamaJabatan(mapVo.getJabatan().getNamaJabatan()); riwayatJabatanVo.setPegawai(mapVo.getPegawai()); + riwayatJabatanVo.setSumberData(mapVo.getSumberData()); riwayatJabatanVo.setStatusEnabled(Master.STATUS_ENABLE_TRUE); riwayatJabatanService.add(riwayatJabatanVo); + + // Find nilai jabatan dan grade + List> ej = evaluasiJabatanDao + .findEvaluasiByJabatan(mapVo.getJabatan().getId()); + if (CommonUtil.isNotNullOrEmpty(ej)) { + 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(mapVo.getJabatan())) { @@ -1692,12 +1739,26 @@ public class RekamDataPegawaiServiceImpl extends BaseVoServiceImpl implements Re riwayatJabatanVo.setJabatan(mapVo.getJabatan()); riwayatJabatanVo.setNamaJabatan(mapVo.getJabatan().getNamaJabatan()); riwayatJabatanVo.setPegawai(mapVo.getPegawai()); + riwayatJabatanVo.setSumberData(mapVo.getSumberData()); riwayatJabatanVo.setStatusEnabled(Master.STATUS_ENABLE_TRUE); riwayatJabatanService.add(riwayatJabatanVo); + + // Find nilai jabatan dan grade + List> ej = evaluasiJabatanDao + .findEvaluasiByJabatan(mapVo.getJabatan().getId()); + if (CommonUtil.isNotNullOrEmpty(ej)) { + 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(mapVo.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()) @@ -1878,6 +1939,12 @@ public class RekamDataPegawaiServiceImpl extends BaseVoServiceImpl implements Re map.setKdProfile(Master.KODE_PROFILE); map.setStatusEnabled(Master.STATUS_ENABLE_TRUE); map.setPegawai(resultDomain); + + if (CommonUtil.isNotNullOrEmpty(mapVo.getSumberData())) { + map.setSumberData(mapVo.getSumberData()); + perubahan += "sumber data, "; + } + if (CommonUtil.isNotNullOrEmpty(mapVo.getJabatan())) { map.setJabatan(jabatanConverter.transferVOToModel(mapVo.getJabatan(), new Jabatan())); perubahan += "jabatan, "; @@ -1888,8 +1955,31 @@ public class RekamDataPegawaiServiceImpl extends BaseVoServiceImpl implements Re riwayatJabatanVo.setNamaJabatan(mapVo.getJabatan().getNamaJabatan()); riwayatJabatanVo .setPegawai(pegawaiConverter.transferModelToVO(resultDomain, new PegawaiVO())); + riwayatJabatanVo.setSumberData(mapVo.getSumberData()); riwayatJabatanVo.setStatusEnabled(Master.STATUS_ENABLE_TRUE); riwayatJabatanService.add(riwayatJabatanVo); + + // Find nilai jabatan dan grade + List> ej = evaluasiJabatanDao + .findEvaluasiByJabatan(mapVo.getJabatan().getId()); + if (CommonUtil.isNotNullOrEmpty(ej)) { + 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(mapVo.getGrade())) { + map.setGrade(detailkelompokJabatanConverter.transferVOToModel(mapVo.getGrade(), + new NilaiKelompokJabatan())); + perubahan += "kelompok jabatan, "; + } + + if (CommonUtil.isNotNullOrEmpty(mapVo.getNilaiJabatan())) { + map.setNilaiJabatan(mapVo.getNilaiJabatan()); + perubahan += "nilai jabatan, "; } if (CommonUtil.isNotNullOrEmpty(mapVo.getUnitKerjaPegawai())) { @@ -1963,6 +2053,23 @@ public class RekamDataPegawaiServiceImpl extends BaseVoServiceImpl implements Re this.saveHistoryPegawai(map, perubahan); } + // setting jabatan utama + if (CommonUtil.isNotNullOrEmpty(resultDomain)) { + List> lnj = mapPegawaiJabatanToUnitKerjaDao + .findNilaiJabatanByPegawai(resultDomain.getId()); + if (lnj.size() > 1) { + if (!Boolean.valueOf(lnj.get(0).get("isPrimary").toString())) { + mapPegawaiJabatanToUnitKerjaDao.changeIsNotPrimary(resultDomain.getId(), + Integer.valueOf(lnj.get(0).get("id").toString())); + mapPegawaiJabatanToUnitKerjaDao.changeIsPrimary(resultDomain.getId(), + Integer.valueOf(lnj.get(0).get("id").toString())); + } + } else if (lnj.size() == 1) { + mapPegawaiJabatanToUnitKerjaDao.changeIsPrimary(resultDomain.getId(), + Integer.valueOf(lnj.get(0).get("id").toString())); + } + } + tmp.put("id", map.getId()); listMappingId.add(tmp); }