perbaikan service simpan rekam data pegawai baru terhadap perhitungan nilai jabatan, mapping kelompok jabatan, dan sumber data

This commit is contained in:
salmanoe 2021-05-24 14:28:49 +07:00
parent bc8f69c4b0
commit 1dd28f5b6b

View File

@ -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<LevelTingkatVO, LevelTingkat> 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<Map<String, Object>> 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<Map<String, Object>> 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<Map<String, Object>> 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<Map<String, Object>> 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);
}