From 3bf212b62195e15604b85dc359398e3eeb665315 Mon Sep 17 00:00:00 2001 From: salmanoe Date: Thu, 28 Jan 2021 15:07:18 +0700 Subject: [PATCH] - penambahan informasi grade di rekap evaluasi jabatan - penyesuaian list jabatan anjab dan nonanjab - penyesuaian rekam data pegawai baru langsung dengan mapping jabatan --- .../medifirst2000/dao/EvaluasiJabatanDao.java | 2 +- .../medifirst2000/dao/JabatanDao.java | 21 +- .../medifirst2000/service/JabatanService.java | 2 +- .../service/RekamDataPegawaiService.java | 3 + .../impl/EvaluasiJabatanServiceImpl.java | 2 +- .../service/impl/JabatanServiceImpl.java | 60 ++- ...pPegawaiJabatanToUnitKerjaServiceImpl.java | 15 +- .../service/impl/PegawaiServiceImpl.java | 97 ++-- .../impl/RekamDataPegawaiServiceImpl.java | 495 +++++++++++++++++- .../medifirst2000/vo/RekamDataPegawaiVO.java | 7 +- .../controller/JabatanController.java | 7 +- ...apPegawaiJabatanToUnitKerjaController.java | 9 +- .../controller/PegawaiController.java | 6 + .../controller/SdmController.java | 6 +- 14 files changed, 610 insertions(+), 122 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 e9410bc5..7c6eb86a 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 @@ -42,7 +42,7 @@ public interface EvaluasiJabatanDao extends PagingAndSortingRepository + "from Jabatan model where model.statusEnabled is true") List> findAllJabatan(); - @Query("SELECT new Map (model.id as id,model.namaJabatan as namaJabatan) " + @Query("SELECT new Map (model.id as id,model.namaJabatan as namaJabatan,model.kdJabatan as kdJabatan) " + "from Jabatan model where model.id =:id and model.statusEnabled is true") Map getJabatanById(@Param("id") Integer id); @@ -34,11 +34,22 @@ public interface JabatanDao extends PagingAndSortingRepository @Query("SELECT model from Jabatan model where model.jenisJabatanId = :jenisJabatanId ") List getJabatanStruktural(@Param("jenisJabatanId") Integer jenisJabatanId); + + String strQryJabatanByJenis = "SELECT new Map(model.id as idJabatan, model.namaJabatan as namaJabatan) from Jabatan model " + + "where model.statusEnabled is true " + "and model.jenisJabatanId = :jenisJabatanId "; + + String kdJabatanAnjab = "and model.kdJabatan = :kdJabatan "; + + String kdJabatanNonanjab = "and model.kdJabatan <> 'ANJAB' "; + + String sortNamaJabatan = "order by namaJabatan"; - @Query("SELECT new Map(model.id as idJabatan, model.namaJabatan as namaJabatan) from Jabatan model " - + "where model.statusEnabled is true " + "and model.jenisJabatanId = :jenisJabatanId " - + "order by namaJabatan") - List> getJabatanByJenisJabatan(@Param("jenisJabatanId") Integer jenisJabatanId); + @Query(strQryJabatanByJenis + kdJabatanAnjab + sortNamaJabatan) + List> getJabatanByJenisJabatanAnjab(@Param("jenisJabatanId") Integer jenisJabatanId, + @Param("kdJabatan") String kdJabatan); + + @Query(strQryJabatanByJenis + kdJabatanNonanjab + sortNamaJabatan) + List> getJabatanByJenisJabatanNonanjab(@Param("jenisJabatanId") Integer jenisJabatanId); @Query("select new Map(jab.id as id, jab.namaJabatan as namaJabatan) " + "from Jabatan jab where jab.statusEnabled is true " + "and jab.jenisJabatanId in (1,5) " diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/JabatanService.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/JabatanService.java index b9f30909..a975522b 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/JabatanService.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/JabatanService.java @@ -19,7 +19,7 @@ public interface JabatanService extends BaseVoService> getListJabatanAnjab(); - List> getJabatanByJenisJabatan(Integer idJenisJabatan); + List> getJabatanByJenisJabatan(Integer idJenisJabatan, String kdJabatan); Map saveKelompokJabatan(KelompokJabatanVO vo); diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/RekamDataPegawaiService.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/RekamDataPegawaiService.java index 7fc9cb71..23abbaf0 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/RekamDataPegawaiService.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/RekamDataPegawaiService.java @@ -2,6 +2,7 @@ package com.jasamedika.medifirst2000.service; import java.util.Map; +import com.jasamedika.medifirst2000.entities.MapPegawaiJabatanToUnitKerja; import com.jasamedika.medifirst2000.vo.RekamDataPegawaiCustomVO; import com.jasamedika.medifirst2000.vo.RekamDataPegawaiVO; @@ -25,5 +26,7 @@ public interface RekamDataPegawaiService { Map getpegawaiStrExpiredByPegawai(); Map getpegawaiSipStrExpiredByPegawai(); + + void saveHistoryPegawai(MapPegawaiJabatanToUnitKerja model, String perubahan); } 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 38063419..4c9ec980 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 @@ -334,7 +334,7 @@ public class EvaluasiJabatanServiceImpl extends BaseVoServiceImpl implements Eva total += localTotal; Integer idJabatan = evaluasiJabatan.getJabatan().getId(); - getGrade = getGrade(idJabatan, total); + getGrade = evaluasiJabatanDao.findDetailKelompokJabatan(idJabatan, (int) total); } catch (Exception e) { e.printStackTrace(); 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 811badce..32f777a7 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 @@ -74,24 +74,24 @@ public class JabatanServiceImpl extends BaseVoServiceImpl implements JabatanServ @Transactional(readOnly = false) public JabatanVO update(JabatanVO vo) throws JpaSystemException, ServiceVOException { Jabatan jabatan = jabatanDao.findOne(vo.getId()); - + if (CommonUtil.isNotNullOrEmpty(jabatan)) { JenisJabatan jenisJabatan = new JenisJabatan(); jenisJabatan.setId(vo.getJenisJabatan().getId()); - + Eselon eselon = new Eselon(); eselon.setId(vo.getEselon().getId()); - + BeanUtils.copyProperties(vo, jabatan); - + jabatan.setJenisJabatan(jenisJabatan); jabatan.setEselon(eselon); - + jabatanDao.save(jabatan); - + vo.setNoRec(jabatan.getNoRec()); } - + return vo; } @@ -125,24 +125,26 @@ public class JabatanServiceImpl extends BaseVoServiceImpl implements JabatanServ @Override public Map saveJabatan(JabatanVO vo) { Map result = new HashMap(); - - //organization business validation - if ((vo.getLevelJabatan() == 1 || vo.getLevelJabatan() == 5) && CommonUtil.isNotNullOrEmpty(vo.getSubLevelJabatan())) { - vo.setSubLevelJabatan(null); //direktur utama dan staf/ ketua tim tidak memiliki level direksi + + // organization business validation + if ((vo.getLevelJabatan() == 1 || vo.getLevelJabatan() == 5) + && CommonUtil.isNotNullOrEmpty(vo.getSubLevelJabatan())) { + vo.setSubLevelJabatan(null); // direktur utama dan staf/ ketua tim + // tidak memiliki level direksi } - + if (CommonUtil.isNullOrEmpty(vo.getId())) { Jabatan model = new Jabatan(); BeanUtils.copyProperties(vo, model); - + JenisJabatan jenisJabatan = new JenisJabatan(); jenisJabatan.setId(vo.getJenisJabatan().getId()); model.setJenisJabatan(jenisJabatan); - + Eselon eselon = new Eselon(); eselon.setId(vo.getEselon().getId()); model.setEselon(eselon); - + if (CommonUtil.isNotNullOrEmpty(vo.getLevelJabatan())) { model.setLevelJabatan(vo.getLevelJabatan()); } @@ -154,7 +156,7 @@ public class JabatanServiceImpl extends BaseVoServiceImpl implements JabatanServ result.put("noRec", model.getNoRec()); } } else { - result.put("noRec", update(vo).getNoRec()); + result.put("noRec", update(vo).getNoRec()); } return result; } @@ -174,10 +176,16 @@ public class JabatanServiceImpl extends BaseVoServiceImpl implements JabatanServ } return result; } - + @Override - public List> getJabatanByJenisJabatan(Integer idJenisJabatan) { - List> result = jabatanDao.getJabatanByJenisJabatan(idJenisJabatan); + public List> getJabatanByJenisJabatan(Integer idJenisJabatan, String kdJabatan) { + List> result = new ArrayList<>(); + + if (CommonUtil.isNotNullOrEmpty(kdJabatan) && kdJabatan.equals("ANJAB")) { + result = jabatanDao.getJabatanByJenisJabatanAnjab(idJenisJabatan, kdJabatan); + } else { + result = jabatanDao.getJabatanByJenisJabatanNonanjab(idJenisJabatan); + } return result; } @@ -203,7 +211,7 @@ public class JabatanServiceImpl extends BaseVoServiceImpl implements JabatanServ @Override public JabatanVO deleteJabatan(JabatanVO vo) { Jabatan jabatan = jabatanDao.findOne(vo.getId()); - if (CommonUtil.isNotNullOrEmpty(jabatan)) { + if (CommonUtil.isNotNullOrEmpty(jabatan)) { jabatan.setStatusEnabled(false); jabatanDao.save(jabatan); return vo; @@ -220,23 +228,23 @@ public class JabatanServiceImpl extends BaseVoServiceImpl implements JabatanServ @Override public Map validateNamaJabatan(String namaJabatan, Integer idJenisJabatan) { Map result = new HashMap<>(); - + String replacedNamaJabatan = namaJabatan.replaceAll("[^0-9a-zA-Z]", "").toLowerCase(); List> listNamaJabatan = jabatanDao.checkNamaJabatan(replacedNamaJabatan, idJenisJabatan); if (CommonUtil.isNotNullOrEmpty(listNamaJabatan)) { - result.put("msg", "Jabatan "+ namaJabatan + " sudah tersedia!"); + result.put("msg", "Jabatan " + namaJabatan + " sudah tersedia!"); } - + return result; } @Override public List> getListJabatanAnjab() { List> result = new ArrayList<>(); - + result = jabatanDao.listJabatanAnjab(); - + return result; } - + } \ No newline at end of file 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 9610c7d7..a1486945 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 @@ -86,19 +86,19 @@ public class MapPegawaiJabatanToUnitKerjaServiceImpl implements MapPegawaiJabata private HistoryDataPegawaiDao historyDataPegawaiDao; @Autowired - BaseConverterImpl pegawaiConverter; + private BaseConverterImpl pegawaiConverter; @Autowired - BaseConverterImpl jabatanConverter; + private BaseConverterImpl jabatanConverter; @Autowired - BaseConverterImpl subunitKerjaConverter; + private BaseConverterImpl subunitKerjaConverter; @Autowired - BaseConverterImpl unitKerjaConverter; + private BaseConverterImpl unitKerjaConverter; @Autowired - BaseConverterImpl mapPegawaiJabatanToUnitKerjaConverter; + private BaseConverterImpl mapPegawaiJabatanToUnitKerjaConverter; @Autowired private BaseConverterImpl jenisJabatanConverter; @@ -1019,6 +1019,11 @@ public class MapPegawaiJabatanToUnitKerjaServiceImpl implements MapPegawaiJabata mapFilter.put("jenisJabatan", jenisJabatan); mapFilter.put("atasanLangsung", atasanLangsung); mapFilter.put("pejabatPenilai", pejabatPenilai); + if (jabatan.get("kdJabatan").equals("ANJAB")) { + mapFilter.put("kdJabatan", "ANJAB"); + } else { + mapFilter.put("kdJabatan", "NONANJAB"); + } result.add(mapFilter); } diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/PegawaiServiceImpl.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/PegawaiServiceImpl.java index 02310765..cf847ed7 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/PegawaiServiceImpl.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/PegawaiServiceImpl.java @@ -2496,58 +2496,51 @@ public class PegawaiServiceImpl extends BaseVoServiceImpl implements PegawaiServ return result; } - + @Override - public String hitungMasaKerja(Date tglMasuk) - { - int years = 0; - int months = 0; - int days = 0; - - Calendar birthDay = Calendar.getInstance(); - birthDay.setTimeInMillis(tglMasuk.getTime()); - - long currentTime = System.currentTimeMillis(); - Calendar now = Calendar.getInstance(); - now.setTimeInMillis(currentTime); - - years = now.get(Calendar.YEAR) - birthDay.get(Calendar.YEAR); - int currMonth = now.get(Calendar.MONTH) + 1; - int birthMonth = birthDay.get(Calendar.MONTH) + 1; - - months = currMonth - birthMonth; - - if (months < 0) - { - years--; - months = 12 - birthMonth + currMonth; - if (now.get(Calendar.DATE) < birthDay.get(Calendar.DATE)) - months--; - } else if (months == 0 && now.get(Calendar.DATE) < birthDay.get(Calendar.DATE)) - { - years--; - months = 11; - } - - if (now.get(Calendar.DATE) > birthDay.get(Calendar.DATE)) - days = now.get(Calendar.DATE) - birthDay.get(Calendar.DATE); - else if (now.get(Calendar.DATE) < birthDay.get(Calendar.DATE)) - { - int today = now.get(Calendar.DAY_OF_MONTH); - now.add(Calendar.MONTH, -1); - days = now.getActualMaximum(Calendar.DAY_OF_MONTH) - birthDay.get(Calendar.DAY_OF_MONTH) + today; - } - else - { - days = 0; - if (months == 12) - { - years++; - months = 0; - } - } - - return years + " tahun " + months + " bulan"; - } + public String hitungMasaKerja(Date tglMasuk) { + int years = 0; + int months = 0; + int days = 0; + + Calendar birthDay = Calendar.getInstance(); + birthDay.setTimeInMillis(tglMasuk.getTime()); + + long currentTime = System.currentTimeMillis(); + Calendar now = Calendar.getInstance(); + now.setTimeInMillis(currentTime); + + years = now.get(Calendar.YEAR) - birthDay.get(Calendar.YEAR); + int currMonth = now.get(Calendar.MONTH) + 1; + int birthMonth = birthDay.get(Calendar.MONTH) + 1; + + months = currMonth - birthMonth; + + if (months < 0) { + years--; + months = 12 - birthMonth + currMonth; + if (now.get(Calendar.DATE) < birthDay.get(Calendar.DATE)) + months--; + } else if (months == 0 && now.get(Calendar.DATE) < birthDay.get(Calendar.DATE)) { + years--; + months = 11; + } + + if (now.get(Calendar.DATE) > birthDay.get(Calendar.DATE)) + days = now.get(Calendar.DATE) - birthDay.get(Calendar.DATE); + else if (now.get(Calendar.DATE) < birthDay.get(Calendar.DATE)) { + int today = now.get(Calendar.DAY_OF_MONTH); + now.add(Calendar.MONTH, -1); + days = now.getActualMaximum(Calendar.DAY_OF_MONTH) - birthDay.get(Calendar.DAY_OF_MONTH) + today; + } else { + days = 0; + if (months == 12) { + years++; + months = 0; + } + } + + return years + " tahun " + months + " bulan"; + } } 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 c7b03350..4b5fd83b 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 @@ -21,6 +21,8 @@ import com.google.gson.Gson; import com.jasamedika.medifirst2000.constants.Master; import com.jasamedika.medifirst2000.converter.BaseConverterImpl; import com.jasamedika.medifirst2000.dao.HistoryDataPegawaiDao; +import com.jasamedika.medifirst2000.dao.JabatanDao; +import com.jasamedika.medifirst2000.dao.JenisJabatanDao; import com.jasamedika.medifirst2000.dao.LoginUserDao; import com.jasamedika.medifirst2000.dao.MapPegawaiJabatanToUnitKerjaDao; import com.jasamedika.medifirst2000.dao.PangkatDao; @@ -35,6 +37,7 @@ import com.jasamedika.medifirst2000.entities.GolonganDarah; import com.jasamedika.medifirst2000.entities.GolonganPegawai; import com.jasamedika.medifirst2000.entities.HistoryDataPegawai; import com.jasamedika.medifirst2000.entities.Jabatan; +import com.jasamedika.medifirst2000.entities.JenisJabatan; import com.jasamedika.medifirst2000.entities.JenisKelamin; import com.jasamedika.medifirst2000.entities.JenisPegawai; import com.jasamedika.medifirst2000.entities.KategoryPegawai; @@ -44,6 +47,7 @@ import com.jasamedika.medifirst2000.entities.KelompokUser; import com.jasamedika.medifirst2000.entities.KualifikasiJurusan; import com.jasamedika.medifirst2000.entities.LevelTingkat; import com.jasamedika.medifirst2000.entities.LoginUser; +import com.jasamedika.medifirst2000.entities.MapPegawaiJabatanToUnitKerja; import com.jasamedika.medifirst2000.entities.Negara; import com.jasamedika.medifirst2000.entities.NilaiKelompokJabatan; import com.jasamedika.medifirst2000.entities.Pangkat; @@ -59,9 +63,11 @@ import com.jasamedika.medifirst2000.entities.StatusPerkawinanPegawai; import com.jasamedika.medifirst2000.entities.SubUnitKerjaPegawai; import com.jasamedika.medifirst2000.entities.Suku; import com.jasamedika.medifirst2000.entities.TypePegawai; +import com.jasamedika.medifirst2000.entities.UnitKerjaPegawai; import com.jasamedika.medifirst2000.service.LoginUserService; import com.jasamedika.medifirst2000.service.PegawaiService; import com.jasamedika.medifirst2000.service.RekamDataPegawaiService; +import com.jasamedika.medifirst2000.service.RiwayatJabatanService; import com.jasamedika.medifirst2000.util.CommonUtil; import com.jasamedika.medifirst2000.util.PasswordUtil; import com.jasamedika.medifirst2000.vo.AgamaVO; @@ -70,8 +76,8 @@ import com.jasamedika.medifirst2000.vo.DokumenVO; import com.jasamedika.medifirst2000.vo.EselonVO; import com.jasamedika.medifirst2000.vo.GolonganDarahVO; import com.jasamedika.medifirst2000.vo.GolonganPegawaiVO; -import com.jasamedika.medifirst2000.vo.GolonganVO; import com.jasamedika.medifirst2000.vo.JabatanVO; +import com.jasamedika.medifirst2000.vo.JenisJabatanVO; import com.jasamedika.medifirst2000.vo.JenisKelaminVO; import com.jasamedika.medifirst2000.vo.JenisPegawaiVO; import com.jasamedika.medifirst2000.vo.KategoryPegawaiVO; @@ -79,6 +85,7 @@ import com.jasamedika.medifirst2000.vo.KedudukanVO; import com.jasamedika.medifirst2000.vo.KelompokShiftVO; import com.jasamedika.medifirst2000.vo.KualifikasiJurusanVO; import com.jasamedika.medifirst2000.vo.LevelTingkatVO; +import com.jasamedika.medifirst2000.vo.MapPegawaiJabatanToUnitKerjaVO; import com.jasamedika.medifirst2000.vo.NegaraVO; import com.jasamedika.medifirst2000.vo.NilaiKelompokJabatanVO; import com.jasamedika.medifirst2000.vo.PangkatVO; @@ -88,6 +95,7 @@ import com.jasamedika.medifirst2000.vo.PenghasilanTidakKenaPajakVO; import com.jasamedika.medifirst2000.vo.RekamDataPegawaiCustomVO; import com.jasamedika.medifirst2000.vo.RekamDataPegawaiVO; import com.jasamedika.medifirst2000.vo.RekananVO; +import com.jasamedika.medifirst2000.vo.RiwayatJabatanVO; import com.jasamedika.medifirst2000.vo.RuanganVO; import com.jasamedika.medifirst2000.vo.SatuanKerjaVO; import com.jasamedika.medifirst2000.vo.StatusPegawaiVO; @@ -96,6 +104,7 @@ import com.jasamedika.medifirst2000.vo.StatusPerkawinanVO; import com.jasamedika.medifirst2000.vo.SubUnitKerjaPegawaiVO; import com.jasamedika.medifirst2000.vo.SukuVO; import com.jasamedika.medifirst2000.vo.TypePegawaiVO; +import com.jasamedika.medifirst2000.vo.UnitKerjaPegawaiVO; /** * Implement class for RekamDataPegawaiService @@ -138,9 +147,6 @@ public class RekamDataPegawaiServiceImpl extends BaseVoServiceImpl implements Re @Autowired private BaseConverterImpl golonganPegawaiConverter; - - @Autowired - private BaseConverterImpl golonganConverter; @Autowired private BaseConverterImpl agamaConverter; @@ -186,7 +192,7 @@ public class RekamDataPegawaiServiceImpl extends BaseVoServiceImpl implements Re @Autowired private PegawaiJadwalKerjaDao pegawaiJadwalKerjaDao; - + @Autowired private PangkatDao pangkatDao; @@ -223,6 +229,33 @@ public class RekamDataPegawaiServiceImpl extends BaseVoServiceImpl implements Re @Autowired private BaseConverterImpl negaraConverter; + @Autowired + private BaseConverterImpl pegawaiConverter; + + @Autowired + private BaseConverterImpl jenisJabatanConverter; + + @Autowired + private JenisJabatanDao jenisJabatanDao; + + @Autowired + private JabatanDao jabatanDao; + + @Autowired + private RiwayatJabatanService riwayatJabatanService; + + @Autowired + private BaseConverterImpl unitKerjaConverter; + + @Autowired + private BaseConverterImpl subunitKerjaConverter; + + @Autowired + private MapPegawaiJabatanToUnitKerjaDao mapPegawaiJabatanToUnitKerjaDao; + + @Autowired + private BaseConverterImpl mapPegawaiJabatanToUnitKerjaConverter; + @Override @Transactional public Map saveRekamDataPegawaiRev(RekamDataPegawaiVO vo) { @@ -769,13 +802,13 @@ public class RekamDataPegawaiServiceImpl extends BaseVoServiceImpl implements Re perubahan += "ubah pangkat, "; } /** - * field golongan dan golonganPegawai sudah deprecated - * karena field pangkat sudah terasosiasi langsung dengan + * field golongan dan golonganPegawai sudah deprecated karena + * field pangkat sudah terasosiasi langsung dengan * golonganPegawai */ GolonganPegawai gp = pangkatDao.getGolonganAssociate(vo.getPangkat().getId()); pegawai.setGolonganPegawai(gp); - + Golongan gol = new Golongan(); gol.setId(gp.getId()); pegawai.setGolongan(gol); @@ -783,13 +816,13 @@ public class RekamDataPegawaiServiceImpl extends BaseVoServiceImpl implements Re pegawai.setPangkat(pangkatConverter.transferVOToModel(vo.getPangkat(), new Pangkat())); perubahan += "pangkat, "; /** - * field golongan dan golonganPegawai sudah deprecated - * karena field pangkat sudah terasosiasi langsung dengan + * field golongan dan golonganPegawai sudah deprecated karena + * field pangkat sudah terasosiasi langsung dengan * golonganPegawai */ GolonganPegawai gp = pangkatDao.getGolonganAssociate(vo.getPangkat().getId()); pegawai.setGolonganPegawai(gp); - + Golongan gol = new Golongan(); gol.setId(gp.getId()); pegawai.setGolongan(gol); @@ -797,8 +830,8 @@ public class RekamDataPegawaiServiceImpl extends BaseVoServiceImpl implements Re pegawai.setPangkat(null); perubahan += "hapus pangkat, "; /** - * field golongan dan golonganPegawai sudah deprecated - * karena field pangkat sudah terasosiasi langsung dengan + * field golongan dan golonganPegawai sudah deprecated karena + * field pangkat sudah terasosiasi langsung dengan * golonganPegawai */ pegawai.setGolongan(null); @@ -1401,13 +1434,13 @@ public class RekamDataPegawaiServiceImpl extends BaseVoServiceImpl implements Re pegawai.setPangkat(pangkatConverter.transferVOToModel(vo.getPangkat(), new Pangkat())); perubahan += "pangkat, "; /** - * field golongan dan golonganPegawai sudah deprecated - * karena field pangkat sudah terasosiasi langsung dengan + * field golongan dan golonganPegawai sudah deprecated karena + * field pangkat sudah terasosiasi langsung dengan * golonganPegawai */ GolonganPegawai gp = pangkatDao.getGolonganAssociate(vo.getPangkat().getId()); pegawai.setGolonganPegawai(gp); - + Golongan gol = new Golongan(); gol.setId(gp.getId()); pegawai.setGolongan(gol); @@ -1551,9 +1584,401 @@ public class RekamDataPegawaiServiceImpl extends BaseVoServiceImpl implements Re } } } + + // Simpan mapping jabatan untuk pegawai baru saja + List> listMappingId = new ArrayList>(); + if (CommonUtil.isNotNullOrEmpty(vo.getMappingJabatan()) && CommonUtil.isNullOrEmpty(vo.getId())) { + for (MapPegawaiJabatanToUnitKerjaVO mapVo : vo.getMappingJabatan()) { + MapPegawaiJabatanToUnitKerja map = new MapPegawaiJabatanToUnitKerja(); + Map tmp = new HashMap<>(); + + // exceptional dynamic data entry + if (CommonUtil.isNotNullOrEmpty(mapVo.getJabatan())) { + if (mapVo.getJabatan().getId().equals(Master.EMPTY_DATA)) { + mapVo.setJabatan(null); + } + } + if (CommonUtil.isNotNullOrEmpty(mapVo.getUnitKerjaPegawai())) { + if (mapVo.getUnitKerjaPegawai().getId().equals(Master.EMPTY_DATA)) { + mapVo.setUnitKerjaPegawai(null); + } + } + if (CommonUtil.isNotNullOrEmpty(mapVo.getSubUnitKerjaPegawai())) { + if (mapVo.getSubUnitKerjaPegawai().getId().equals(Master.EMPTY_DATA)) { + mapVo.setSubUnitKerjaPegawai(null); + } + } + if (CommonUtil.isNotNullOrEmpty(mapVo.getAtasanLangsung())) { + if (mapVo.getAtasanLangsung().getId().equals(Master.EMPTY_DATA)) { + mapVo.setAtasanLangsung(null); + } + } + if (CommonUtil.isNotNullOrEmpty(mapVo.getPejabatPenilai())) { + if (mapVo.getPejabatPenilai().getId().equals(Master.EMPTY_DATA)) { + mapVo.setPejabatPenilai(null); + } + } + + Integer idKategoryPegawai = pegawai.getKategoryPegawai().getId(); + + if (CommonUtil.isNotNullOrEmpty(mapVo.getId())) { + map = mapPegawaiJabatanToUnitkerjaDao.findOne(mapVo.getId()); + + map.setId(vo.getId()); + map.setKdProfile(Master.KODE_PROFILE); + + if (CommonUtil.isNotNullOrEmpty(map.getStatusEnabled()) + && CommonUtil.isNotNullOrEmpty(vo.getStatusEnabled())) { + if (!map.getStatusEnabled().equals(vo.getStatusEnabled())) { + map.setStatusEnabled(vo.getStatusEnabled()); + if (idKategoryPegawai.equals(Master.KategoryPegawai.PESERTA_DIDIK)) { + perubahan += "status hapus mapping dokter penanggung jawab, "; + } else { + perubahan += "status hapus mapping jabatan, "; + } + } + } else if (CommonUtil.isNullOrEmpty(map.getStatusEnabled()) + && CommonUtil.isNotNullOrEmpty(vo.getStatusEnabled())) { + map.setStatusEnabled(vo.getStatusEnabled()); + if (idKategoryPegawai.equals(Master.KategoryPegawai.PESERTA_DIDIK)) { + perubahan += "status hapus mapping dokter penanggung jawab, "; + } else { + perubahan += "status hapus mapping jabatan, "; + } + } + + if (CommonUtil.isNotNullOrEmpty(map.getPegawaiId()) + && CommonUtil.isNotNullOrEmpty(mapVo.getPegawai())) { + if (!map.getPegawaiId().equals(mapVo.getPegawai().getId())) { + map.setPegawai(pegawaiConverter.transferVOToModel(mapVo.getPegawai(), new Pegawai())); + } + } else if (CommonUtil.isNullOrEmpty(map.getPegawaiId()) + && CommonUtil.isNotNullOrEmpty(mapVo.getPegawai())) { + map.setPegawai(pegawaiConverter.transferVOToModel(mapVo.getPegawai(), new Pegawai())); + } + + if (CommonUtil.isNotNullOrEmpty(map.getJabatanId()) + && CommonUtil.isNotNullOrEmpty(mapVo.getJabatan())) { + if (!map.getJabatanId().equals(mapVo.getJabatan().getId())) { + map.setJabatan(jabatanConverter.transferVOToModel(mapVo.getJabatan(), new Jabatan())); + perubahan += "ubah jabatan, "; + + RiwayatJabatanVO riwayatJabatanVo = new RiwayatJabatanVO(); + JenisJabatanVO jenisJabatanVo = new JenisJabatanVO(); + riwayatJabatanVo.setTglSK(new Date()); + riwayatJabatanVo.setJenisJabatan(jenisJabatanConverter.transferModelToVO( + jenisJabatanDao.findOne( + jabatanDao.getIdJenisJabatanByJabatan(mapVo.getJabatan().getId())), + jenisJabatanVo)); + riwayatJabatanVo.setJabatan(mapVo.getJabatan()); + riwayatJabatanVo.setNamaJabatan(mapVo.getJabatan().getNamaJabatan()); + riwayatJabatanVo.setPegawai(mapVo.getPegawai()); + riwayatJabatanVo.setStatusEnabled(Master.STATUS_ENABLE_TRUE); + riwayatJabatanService.add(riwayatJabatanVo); + } + } else if (CommonUtil.isNullOrEmpty(map.getJabatanId()) + && CommonUtil.isNotNullOrEmpty(mapVo.getJabatan())) { + map.setJabatan(jabatanConverter.transferVOToModel(mapVo.getJabatan(), new Jabatan())); + perubahan += "jabatan, "; + + RiwayatJabatanVO riwayatJabatanVo = new RiwayatJabatanVO(); + JenisJabatanVO jenisJabatanVo = new JenisJabatanVO(); + riwayatJabatanVo.setTglSK(new Date()); + riwayatJabatanVo.setJenisJabatan(jenisJabatanConverter.transferModelToVO( + jenisJabatanDao + .findOne(jabatanDao.getIdJenisJabatanByJabatan(mapVo.getJabatan().getId())), + jenisJabatanVo)); + riwayatJabatanVo.setJabatan(mapVo.getJabatan()); + riwayatJabatanVo.setNamaJabatan(mapVo.getJabatan().getNamaJabatan()); + riwayatJabatanVo.setPegawai(mapVo.getPegawai()); + riwayatJabatanVo.setStatusEnabled(Master.STATUS_ENABLE_TRUE); + riwayatJabatanService.add(riwayatJabatanVo); + } else if (CommonUtil.isNotNullOrEmpty(map.getJabatanId()) + && CommonUtil.isNullOrEmpty(mapVo.getJabatan())) { + map.setJabatan(null); + perubahan += "hapus jabatan, "; + } + + if (CommonUtil.isNotNullOrEmpty(map.getUnitKerjaPegawaiId()) + && CommonUtil.isNotNullOrEmpty(mapVo.getUnitKerjaPegawai())) { + if (!map.getUnitKerjaPegawaiId().equals(mapVo.getUnitKerjaPegawai().getId())) { + map.setUnitKerjaPegawai(unitKerjaConverter + .transferVOToModel(mapVo.getUnitKerjaPegawai(), new UnitKerjaPegawai())); + perubahan += "ubah unit kerja, "; + } + } else if (CommonUtil.isNullOrEmpty(map.getUnitKerjaPegawaiId()) + && CommonUtil.isNotNullOrEmpty(mapVo.getUnitKerjaPegawai())) { + map.setUnitKerjaPegawai(unitKerjaConverter.transferVOToModel(mapVo.getUnitKerjaPegawai(), + new UnitKerjaPegawai())); + perubahan += "unit kerja, "; + } else if (CommonUtil.isNotNullOrEmpty(map.getUnitKerjaPegawaiId()) + && CommonUtil.isNullOrEmpty(mapVo.getUnitKerjaPegawai())) { + map.setUnitKerjaPegawai(null); + perubahan += "hapus unit kerja, "; + } + + if (CommonUtil.isNotNullOrEmpty(map.getSubUnitKerjaPegawaiId()) + && CommonUtil.isNotNullOrEmpty(mapVo.getSubUnitKerjaPegawai())) { + if (!map.getSubUnitKerjaPegawaiId().equals(mapVo.getSubUnitKerjaPegawai().getId())) { + map.setSubUnitKerjaPegawai(subunitKerjaConverter + .transferVOToModel(mapVo.getSubUnitKerjaPegawai(), new SubUnitKerjaPegawai())); + perubahan += "ubah subunit kerja, "; + } + } else if (CommonUtil.isNullOrEmpty(map.getSubUnitKerjaPegawaiId()) + && CommonUtil.isNotNullOrEmpty(mapVo.getSubUnitKerjaPegawai())) { + map.setSubUnitKerjaPegawai(subunitKerjaConverter + .transferVOToModel(mapVo.getSubUnitKerjaPegawai(), new SubUnitKerjaPegawai())); + perubahan += "subunit kerja, "; + } else if (CommonUtil.isNotNullOrEmpty(map.getSubUnitKerjaPegawaiId()) + && CommonUtil.isNullOrEmpty(mapVo.getSubUnitKerjaPegawai())) { + map.setSubUnitKerjaPegawai(null); + perubahan += "hapus subunit kerja, "; + } + + if (CommonUtil.isNotNullOrEmpty(map.getAtasanLangsungId()) + && CommonUtil.isNotNullOrEmpty(mapVo.getAtasanLangsung())) { + if (!map.getAtasanLangsungId().equals(mapVo.getAtasanLangsung().getId())) { + map.setAtasanLangsung( + pegawaiConverter.transferVOToModel(mapVo.getAtasanLangsung(), new Pegawai())); + if (idKategoryPegawai.equals(Master.KategoryPegawai.PESERTA_DIDIK)) { + perubahan += "ubah dokter penanggung jawab, "; + } else { + perubahan += "ubah atasan langsung, "; + } + } + } else if (CommonUtil.isNullOrEmpty(map.getAtasanLangsungId()) + && CommonUtil.isNotNullOrEmpty(mapVo.getAtasanLangsung())) { + map.setAtasanLangsung( + pegawaiConverter.transferVOToModel(mapVo.getAtasanLangsung(), new Pegawai())); + if (idKategoryPegawai.equals(Master.KategoryPegawai.PESERTA_DIDIK)) { + perubahan += "dokter penanggung jawab, "; + } else { + perubahan += "atasan langsung, "; + } + } else if (CommonUtil.isNotNullOrEmpty(map.getAtasanLangsungId()) + && CommonUtil.isNullOrEmpty(mapVo.getAtasanLangsung())) { + map.setAtasanLangsung(null); + if (idKategoryPegawai.equals(Master.KategoryPegawai.PESERTA_DIDIK)) { + perubahan += "hapus dokter penanggung jawab, "; + } else { + perubahan += "hapus atasan langsung, "; + } + } + + if (CommonUtil.isNotNullOrEmpty(map.getAtasanLangsungDireksi()) + && CommonUtil.isNotNullOrEmpty(mapVo.getAtasanLangsungDireksi())) { + if (!map.getAtasanLangsungDireksi().equals(mapVo.getAtasanLangsungDireksi())) { + map.setAtasanLangsungDireksi(mapVo.getAtasanLangsungDireksi()); + perubahan += "ubah atasan langsung direksi, "; + } + } else if (CommonUtil.isNullOrEmpty(map.getAtasanLangsungDireksi()) + && CommonUtil.isNotNullOrEmpty(mapVo.getAtasanLangsungDireksi())) { + map.setAtasanLangsungDireksi(mapVo.getAtasanLangsungDireksi()); + perubahan += "atasan langsung direksi, "; + } else if (CommonUtil.isNotNullOrEmpty(map.getAtasanLangsungDireksi()) + && CommonUtil.isNullOrEmpty(mapVo.getAtasanLangsungDireksi())) { + map.setAtasanLangsungDireksi(mapVo.getAtasanLangsungDireksi()); + perubahan += "hapus atasan langsung direksi, "; + } + + if (CommonUtil.isNotNullOrEmpty(map.getPejabatPenilaiId()) + && CommonUtil.isNotNullOrEmpty(mapVo.getPejabatPenilai())) { + if (!map.getPejabatPenilaiId().equals(mapVo.getPejabatPenilai().getId())) { + map.setPejabatPenilai( + pegawaiConverter.transferVOToModel(mapVo.getPejabatPenilai(), new Pegawai())); + perubahan += "ubah pejabat penilai, "; + } + } else if (CommonUtil.isNullOrEmpty(map.getPejabatPenilaiId()) + && CommonUtil.isNotNullOrEmpty(mapVo.getPejabatPenilai())) { + map.setPejabatPenilai( + pegawaiConverter.transferVOToModel(mapVo.getPejabatPenilai(), new Pegawai())); + perubahan += "pejabat penilai, "; + } else if (CommonUtil.isNotNullOrEmpty(map.getPejabatPenilaiId()) + && CommonUtil.isNullOrEmpty(mapVo.getPejabatPenilai())) { + map.setPejabatPenilai(null); + perubahan += "hapus pejabat penilai, "; + } + + if (CommonUtil.isNotNullOrEmpty(map.getPejabatPenilaiDireksi()) + && CommonUtil.isNotNullOrEmpty(mapVo.getPejabatPenilaiDireksi())) { + if (!map.getPejabatPenilaiDireksi().equals(mapVo.getPejabatPenilaiDireksi())) { + map.setPejabatPenilaiDireksi(mapVo.getPejabatPenilaiDireksi()); + perubahan += "ubah pejabat penilai direksi, "; + } + } else if (CommonUtil.isNullOrEmpty(map.getPejabatPenilaiDireksi()) + && CommonUtil.isNotNullOrEmpty(mapVo.getPejabatPenilaiDireksi())) { + map.setPejabatPenilaiDireksi(mapVo.getPejabatPenilaiDireksi()); + perubahan += "pejabat penilai direksi, "; + } else if (CommonUtil.isNotNullOrEmpty(map.getPejabatPenilaiDireksi()) + && CommonUtil.isNullOrEmpty(mapVo.getPejabatPenilaiDireksi())) { + map.setPejabatPenilaiDireksi(mapVo.getPejabatPenilaiDireksi()); + perubahan += "hapus pejabat penilai direksi, "; + } + + if (CommonUtil.isNotNullOrEmpty(map.getIsPrimary()) + && CommonUtil.isNotNullOrEmpty(mapVo.getIsPrimary())) { + if (!map.getIsPrimary().equals(mapVo.getIsPrimary())) { + map.setIsPrimary(mapVo.getIsPrimary()); + if (mapVo.getIsPrimary()) { + disableIsprimary(mapVo.getPegawai().getId(), mapVo.getId()); + } + perubahan += "ubah status jabatan utama, "; + } + } else if (CommonUtil.isNullOrEmpty(map.getIsPrimary()) + && CommonUtil.isNotNullOrEmpty(mapVo.getIsPrimary())) { + map.setIsPrimary(mapVo.getIsPrimary()); + if (mapVo.getIsPrimary()) { + disableIsprimary(mapVo.getPegawai().getId(), vo.getId()); + } + perubahan += "status jabatan utama, "; + } else if (CommonUtil.isNotNullOrEmpty(map.getIsPrimary()) + && CommonUtil.isNullOrEmpty(mapVo.getIsPrimary())) { + map.setIsPrimary(false); + } + + if (CommonUtil.isNotNullOrEmpty(map.getIsMonitoring()) + && CommonUtil.isNotNullOrEmpty(mapVo.getIsMonitoring())) { + if (!map.getIsMonitoring().equals(mapVo.getIsMonitoring())) { + map.setIsMonitoring(mapVo.getIsMonitoring()); + perubahan += "ubah status monitoring, "; + } + } else if (CommonUtil.isNullOrEmpty(map.getIsMonitoring()) + && CommonUtil.isNotNullOrEmpty(mapVo.getIsMonitoring())) { + map.setIsMonitoring(mapVo.getIsMonitoring()); + perubahan += "status monitoring, "; + } else if (CommonUtil.isNotNullOrEmpty(map.getIsMonitoring()) + && CommonUtil.isNullOrEmpty(mapVo.getIsMonitoring())) { + map.setIsMonitoring(false); + } + + if (CommonUtil.isNotNullOrEmpty(map.getIsCanCreateJadwal()) + && CommonUtil.isNotNullOrEmpty(mapVo.getIsCanCreateJadwal())) { + if (!map.getIsCanCreateJadwal().equals(mapVo.getIsCanCreateJadwal())) { + map.setIsCanCreateJadwal(mapVo.getIsCanCreateJadwal()); + perubahan += "ubah status buat jadwal dinas, "; + } + } else if (CommonUtil.isNullOrEmpty(map.getIsCanCreateJadwal()) + && CommonUtil.isNotNullOrEmpty(mapVo.getIsCanCreateJadwal())) { + map.setIsCanCreateJadwal(mapVo.getIsCanCreateJadwal()); + perubahan += "status buat jadwal dinas, "; + } else if (CommonUtil.isNotNullOrEmpty(map.getIsCanCreateJadwal()) + && CommonUtil.isNullOrEmpty(mapVo.getIsCanCreateJadwal())) { + map.setIsCanCreateJadwal(false); + } + + if (CommonUtil.isNullOrEmpty(perubahan)) { + result.put("data", Master.TIDAK_ADA_PERUBAHAN_DATA); + return result; + } + + map = mapPegawaiJabatanToUnitkerjaDao.save(map); + this.saveHistoryPegawai(map, perubahan); + } else { + map.setKdProfile(Master.KODE_PROFILE); + map.setStatusEnabled(Master.STATUS_ENABLE_TRUE); + map.setPegawai(resultDomain); + if (CommonUtil.isNotNullOrEmpty(mapVo.getJabatan())) { + map.setJabatan(jabatanConverter.transferVOToModel(mapVo.getJabatan(), new Jabatan())); + perubahan += "jabatan, "; + + RiwayatJabatanVO riwayatJabatanVo = new RiwayatJabatanVO(); + JenisJabatanVO jenisJabatanVo = new JenisJabatanVO(); + riwayatJabatanVo.setTglSK(new Date()); + riwayatJabatanVo.setJenisJabatan(jenisJabatanConverter.transferModelToVO( + jenisJabatanDao + .findOne(jabatanDao.getIdJenisJabatanByJabatan(mapVo.getJabatan().getId())), + jenisJabatanVo)); + riwayatJabatanVo.setJabatan(mapVo.getJabatan()); + riwayatJabatanVo.setNamaJabatan(mapVo.getJabatan().getNamaJabatan()); + riwayatJabatanVo + .setPegawai(pegawaiConverter.transferModelToVO(resultDomain, new PegawaiVO())); + riwayatJabatanVo.setStatusEnabled(Master.STATUS_ENABLE_TRUE); + riwayatJabatanService.add(riwayatJabatanVo); + } + + if (CommonUtil.isNotNullOrEmpty(mapVo.getUnitKerjaPegawai())) { + map.setUnitKerjaPegawai(unitKerjaConverter.transferVOToModel(mapVo.getUnitKerjaPegawai(), + new UnitKerjaPegawai())); + perubahan += "unit kerja, "; + } + + if (CommonUtil.isNotNullOrEmpty(mapVo.getSubUnitKerjaPegawai())) { + map.setSubUnitKerjaPegawai(subunitKerjaConverter + .transferVOToModel(mapVo.getSubUnitKerjaPegawai(), new SubUnitKerjaPegawai())); + perubahan += "subunit kerja, "; + } + + if (CommonUtil.isNotNullOrEmpty(mapVo.getAtasanLangsung())) { + map.setAtasanLangsung( + pegawaiConverter.transferVOToModel(mapVo.getAtasanLangsung(), new Pegawai())); + if (idKategoryPegawai.equals(Master.KategoryPegawai.PESERTA_DIDIK)) { + perubahan += "dokter penanggung jawab, "; + } else { + perubahan += "atasan langsung, "; + } + } + + if (CommonUtil.isNotNullOrEmpty(mapVo.getAtasanLangsungDireksi())) { + map.setAtasanLangsungDireksi(mapVo.getAtasanLangsungDireksi()); + perubahan += "atasan langsung direksi, "; + } + + if (CommonUtil.isNotNullOrEmpty(mapVo.getPejabatPenilai())) { + map.setPejabatPenilai( + pegawaiConverter.transferVOToModel(mapVo.getPejabatPenilai(), new Pegawai())); + perubahan += "pejabat penilai, "; + } + + if (CommonUtil.isNotNullOrEmpty(mapVo.getPejabatPenilaiDireksi())) { + map.setPejabatPenilaiDireksi(mapVo.getPejabatPenilaiDireksi()); + perubahan += "pejabat penilai direksi, "; + } + + if (CommonUtil.isNotNullOrEmpty(mapVo.getIsPrimary())) { + map.setIsPrimary(mapVo.getIsPrimary()); + if (mapVo.getIsPrimary()) { + disableIsprimary(resultDomain.getId()); + } + if (!idKategoryPegawai.equals(Master.KategoryPegawai.PESERTA_DIDIK)) { + perubahan += "status jabatan utama, "; + } + } + + if (CommonUtil.isNotNullOrEmpty(mapVo.getIsMonitoring())) { + map.setIsMonitoring(mapVo.getIsMonitoring()); + if (!idKategoryPegawai.equals(Master.KategoryPegawai.PESERTA_DIDIK)) { + perubahan += "status monitoring, "; + } + } + + if (CommonUtil.isNotNullOrEmpty(mapVo.getIsCanCreateJadwal())) { + map.setIsCanCreateJadwal(mapVo.getIsCanCreateJadwal()); + if (!idKategoryPegawai.equals(Master.KategoryPegawai.PESERTA_DIDIK)) { + perubahan += "status buat jadwal dinas, "; + } + } + + if (CommonUtil.isNullOrEmpty(perubahan)) { + result.put("data", Master.TIDAK_ADA_PERUBAHAN_DATA); + return result; + } + + map = mapPegawaiJabatanToUnitKerjaDao.save(map); + this.saveHistoryPegawai(map, perubahan); + } + + tmp.put("id", map.getId()); + listMappingId.add(tmp); + } + } + + if (CommonUtil.isNotNullOrEmpty(listMappingId)) { + result.put("listMappigId", listMappingId); + } result.put("noRec", resultDomain.getId()); result.put("namaUser", username); } + return result; } @@ -2367,4 +2792,42 @@ public class RekamDataPegawaiServiceImpl extends BaseVoServiceImpl implements Re return cal.getTime(); } + @Transactional(readOnly = false) + public void disableIsprimary(Integer idPegawai, Integer id) { + mapPegawaiJabatanToUnitKerjaDao.changeIsPrimary(idPegawai, id); + } + + @Transactional(readOnly = false) + public void disableIsprimary(Integer idPegawai) { + mapPegawaiJabatanToUnitKerjaDao.changeIsPrimary(idPegawai); + } + + @Override + public void saveHistoryPegawai(MapPegawaiJabatanToUnitKerja model, String perubahan) { + HistoryDataPegawai historyDataPegawai = new HistoryDataPegawai(); + if (CommonUtil.isNotNullOrEmpty(model)) { + LoginUser loginUser = loginUserService.getLoginUser(); + model = mapPegawaiJabatanToUnitKerjaDao.findOne(model.getId()); + if (CommonUtil.isNotNullOrEmpty(loginUser.getPegawai())) { + historyDataPegawai.setPetugas(loginUser.getPegawai()); + } + + MapPegawaiJabatanToUnitKerjaVO data = mapPegawaiJabatanToUnitKerjaConverter.transferModelToVO(model, + new MapPegawaiJabatanToUnitKerjaVO()); + + Gson gson = new Gson(); + String detail = gson.toJson(data); + if (CommonUtil.isNotNullOrEmpty(detail)) { + historyDataPegawai.setDetail(detail); + } + + historyDataPegawai.setPerubahan(perubahan); + historyDataPegawai.setTanggal(new Date()); + historyDataPegawai.setPegawai(model.getPegawai()); + if (CommonUtil.isNotNullOrEmpty(historyDataPegawai)) { + historyDataPegawaiDao.save(historyDataPegawai); + } + } + } + } \ No newline at end of file diff --git a/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/vo/RekamDataPegawaiVO.java b/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/vo/RekamDataPegawaiVO.java index 74984c68..ab47607d 100644 --- a/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/vo/RekamDataPegawaiVO.java +++ b/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/vo/RekamDataPegawaiVO.java @@ -1,6 +1,7 @@ package com.jasamedika.medifirst2000.vo; import java.util.Date; +import java.util.List; import com.jasamedika.medifirst2000.base.vo.BaseTransactionVO; @@ -266,7 +267,7 @@ public class RekamDataPegawaiVO extends BaseTransactionVO { private Boolean isMenanggung; - private MapPegawaiJabatanToUnitKerjaVO mappingJabatan; + private List mappingJabatan; public Double getGrade() { return grade; @@ -1284,11 +1285,11 @@ public class RekamDataPegawaiVO extends BaseTransactionVO { this.pegawaiPembimbingId = pegawaiPembimbingId; } - public MapPegawaiJabatanToUnitKerjaVO getMappingJabatan() { + public List getMappingJabatan() { return mappingJabatan; } - public void setMappingJabatan(MapPegawaiJabatanToUnitKerjaVO mappingJabatan) { + public void setMappingJabatan(List mappingJabatan) { this.mappingJabatan = mappingJabatan; } diff --git a/jasamedika-sdm/src/main/java/com/jasamedika/medifirst2000/controller/JabatanController.java b/jasamedika-sdm/src/main/java/com/jasamedika/medifirst2000/controller/JabatanController.java index 4c01c9a1..0d1bce33 100644 --- a/jasamedika-sdm/src/main/java/com/jasamedika/medifirst2000/controller/JabatanController.java +++ b/jasamedika-sdm/src/main/java/com/jasamedika/medifirst2000/controller/JabatanController.java @@ -171,13 +171,12 @@ public class JabatanController extends LocaleController implements IB } @RequestMapping(value = "/get-list-jabatan", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE) - public ResponseEntity>> getAllJabatanByJenisJabatan( - @RequestParam(value = "idJenisJabatan", required = true) Integer idJenisJabatan, - HttpServletRequest request) { + public ResponseEntity>> getAllJabatanByJenisJabatan(HttpServletRequest request, + @RequestParam(value = "idJenisJabatan", required = true) Integer idJenisJabatan) { List> result = new ArrayList>(); try { - result = jabatanService.getJabatanByJenisJabatan(idJenisJabatan); + result = jabatanService.getJabatanByJenisJabatan(idJenisJabatan,"NONANJAB"); mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_SUCCESS, getMessage(MessageResource.LABEL_SUCCESS, request)); diff --git a/jasamedika-sdm/src/main/java/com/jasamedika/medifirst2000/controller/MapPegawaiJabatanToUnitKerjaController.java b/jasamedika-sdm/src/main/java/com/jasamedika/medifirst2000/controller/MapPegawaiJabatanToUnitKerjaController.java index ca5cfb5a..4e35ce19 100644 --- a/jasamedika-sdm/src/main/java/com/jasamedika/medifirst2000/controller/MapPegawaiJabatanToUnitKerjaController.java +++ b/jasamedika-sdm/src/main/java/com/jasamedika/medifirst2000/controller/MapPegawaiJabatanToUnitKerjaController.java @@ -114,11 +114,11 @@ public class MapPegawaiJabatanToUnitKerjaController extends LocaleController result = new HashMap<>(); try { - result.put("data", - mapPegawaiJabatanToUnitKerjaService.getMapSubunitKerjaByUnitPegawai(id, idUnit)); + result.put("data", mapPegawaiJabatanToUnitKerjaService.getMapSubunitKerjaByUnitPegawai(id, idUnit)); mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_SUCCESS, getMessage(MessageResource.LABEL_SUCCESS, request)); return RestUtil.getJsonResponse(result, HttpStatus.OK, mapHeaderMessage); @@ -307,7 +306,7 @@ public class MapPegawaiJabatanToUnitKerjaController extends LocaleController>> getJabatanPegawai(HttpServletRequest request) { List> result = new ArrayList>(); diff --git a/jasamedika-sdm/src/main/java/com/jasamedika/medifirst2000/controller/PegawaiController.java b/jasamedika-sdm/src/main/java/com/jasamedika/medifirst2000/controller/PegawaiController.java index 8627193c..377e4af3 100644 --- a/jasamedika-sdm/src/main/java/com/jasamedika/medifirst2000/controller/PegawaiController.java +++ b/jasamedika-sdm/src/main/java/com/jasamedika/medifirst2000/controller/PegawaiController.java @@ -40,6 +40,7 @@ import com.jasamedika.medifirst2000.security.model.AppPermission; import com.jasamedika.medifirst2000.security.service.TokenAuthenticationService; import com.jasamedika.medifirst2000.service.KeluargaPegawaiService; import com.jasamedika.medifirst2000.service.LoginUserService; +import com.jasamedika.medifirst2000.service.MapPegawaiJabatanToUnitKerjaService; import com.jasamedika.medifirst2000.service.PegawaiJadwalKerjaService; import com.jasamedika.medifirst2000.service.PegawaiService; import com.jasamedika.medifirst2000.service.RiwayatJabatanService; @@ -105,6 +106,9 @@ public class PegawaiController extends LocaleController implements IB @Autowired private PegawaiJadwalKerjaService pegawaiJadwalKerjaServices; + @Autowired + private MapPegawaiJabatanToUnitKerjaService mapPegawaiJabatanToUnitKerjaService; + @RequestMapping(value = "/get-all-dokter2", method = RequestMethod.GET) public ResponseEntity> getAllDokter2(HttpServletRequest request) { try { @@ -459,6 +463,8 @@ public class PegawaiController extends LocaleController implements IB Map rekamDataPegawaiVO = new HashMap<>(); try { rekamDataPegawaiVO = pegawaiService.findPegawaiDetailById(id); + List> mappingJabatan = mapPegawaiJabatanToUnitKerjaService.findAllDetailByPegawai(id); + rekamDataPegawaiVO.put("mappingJabatan", mappingJabatan); } catch (Exception e) { e.printStackTrace(); } diff --git a/jasamedika-sdm/src/main/java/com/jasamedika/medifirst2000/controller/SdmController.java b/jasamedika-sdm/src/main/java/com/jasamedika/medifirst2000/controller/SdmController.java index 21c4d13f..e5d78851 100644 --- a/jasamedika-sdm/src/main/java/com/jasamedika/medifirst2000/controller/SdmController.java +++ b/jasamedika-sdm/src/main/java/com/jasamedika/medifirst2000/controller/SdmController.java @@ -4850,12 +4850,12 @@ public class SdmController extends LocaleController { } @RequestMapping(value = "/get-all-jabatan-by-jenis-jabatan", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE) - public ResponseEntity>> getJabatanByJenisJabatan( + public ResponseEntity>> getJabatanByJenisJabatan(HttpServletRequest request, @RequestParam(value = "idJenisJabatan", required = true) Integer idJenisJabatan, - HttpServletRequest request) { + @RequestParam(value = "kdJabatan", required = false) String kdJabatan) { List> result = null; try { - result = jabatanService.getJabatanByJenisJabatan(idJenisJabatan); + result = jabatanService.getJabatanByJenisJabatan(idJenisJabatan, kdJabatan); mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_SUCCESS, getMessage(MessageResource.LABEL_SUCCESS, request)); } catch (Exception e) {