From 8ec1d0e728a88339ab9052be77e6d0f1965fee28 Mon Sep 17 00:00:00 2001 From: Salman Manoe Date: Fri, 28 Feb 2025 13:49:18 +0700 Subject: [PATCH] Update service rekam data pegawai Penerapan entri kewenangan klinis dan tanggal berlakunya, penyesuaian notifikasi dan monitoring masa berlaku sip str kedaluwarsa --- .../medifirst2000/dao/PegawaiDao.java | 159 +++++++++++------- .../dao/custom/impl/PegawaiDaoCustomImpl.java | 33 ++-- .../medifirst2000/service/PegawaiService.java | 2 + .../service/RekamDataPegawaiService.java | 12 +- .../service/impl/PegawaiServiceImpl.java | 7 +- .../impl/RekamDataPegawaiServiceImpl.java | 157 ++++++++++++++++- .../medifirst2000/entities/Pegawai.java | 14 ++ .../vo/RekamDataPegawaiCustomVO.java | 24 ++- .../medifirst2000/vo/RekamDataPegawaiVO.java | 8 + .../controller/PegawaiController.java | 18 ++ .../controller/SdmController.java | 18 ++ 11 files changed, 360 insertions(+), 92 deletions(-) diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/PegawaiDao.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/PegawaiDao.java index 0d9736b3..caa18643 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/PegawaiDao.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/PegawaiDao.java @@ -126,9 +126,10 @@ public interface PegawaiDao extends JpaRepository, JpaSpecific + "model.nilaiJabatan as nilaiJabatan, " + "model.nip as nip, " + "model.nipPns as nipPns, " + "model.noBPJS as noBPJS, " + "model.noCm as noCm, " + "model.noHandphone as noHandphone, " + "model.noIdentitas as noIdentitas, " + "model.noRec as noRec, " + "model.noSip as noSip, " - + "model.noStr as noStr, " + "model.noStruk_TTujuanLastId as noStruk_TTujuanLastId, " - + "model.noTlp as noTlp, " + "model.nomorRekening as nomorRekening, " + "model.npwp as npwp, " - + "model.pangkatId as pangkatId, " + "model.pendidikanId as pendidikanId, " + + "model.noStr as noStr, " + "model.noPenugasanKlinis as noPenugasanKlinis, " + + "model.noStruk_TTujuanLastId as noStruk_TTujuanLastId, " + "model.noTlp as noTlp, " + + "model.nomorRekening as nomorRekening, " + "model.npwp as npwp, " + "model.pangkatId as pangkatId, " + + "model.pendidikanId as pendidikanId, " + "model.penghasilanTidakKenaPajakId as penghasilanTidakKenaPajakId, " + "model.pensiun as pensiun, " + "model.periodePengajarId as periodePengajarId, " + "model.photoDiri as photoDiri, " + "model.qPegawai as qPegawai, " + "model.qtyAnak as qtyAnak, " + "model.qtyTanggungan as qtyTanggungan, " @@ -140,15 +141,16 @@ public interface PegawaiDao extends JpaRepository, JpaSpecific + "model.statusPerkawinanPegawaiId as statusPerkawinanPegawaiId, " + "model.statusRhesus as statusRhesus, " + "model.sukuId as sukuId, " + "model.tanggalMeninggal as tanggalMeninggal, " + "model.tempatLahir as tempatLahir, " + "model.tglBerakhirSip as tglBerakhirSip, " - + "model.tglBerakhirStr as tglBerakhirStr, " + "model.tglLahir as tglLahir, " + + "model.tglBerakhirStr as tglBerakhirStr, " + + "model.tglBerakhirPenugasanKlinis as tglBerakhirPenugasanKlinis, " + "model.tglLahir as tglLahir, " + "model.tglMasuk as tglMasuk, " + "model.tglPensiun as tglPensiun, " + "model.tglTerbitSip as tglTerbitSip, " + "model.tglTerbitStr as tglTerbitStr, " - + "model.tglkeluar as tglkeluar, " + "model.titlePasienId as titlePasienId, " - + "model.totalNilaiScore as totalNilaiScore, " + "model.tunjanganFungsional as tunjanganFungsional, " - + "model.tunjanganPapua as tunjanganPapua, " + "model.tunjanganUmum as tunjanganUmum, " - + "model.typePegawaiId as typePegawaiId, " + "mapPeg.unitKerjaPegawaiId as unitKerjaId, " - + "model.wilayahTerperinci as wilayahTerperinci, " + "loginUser.namaUser as namaUser) " - + "from LoginUser loginUser, " + "MapPegawaiJabatanToUnitKerja mapPeg " + + "model.tglTerbitPenugasanKlinis as tglTerbitPenugasanKlinis, " + "model.tglkeluar as tglkeluar, " + + "model.titlePasienId as titlePasienId, " + "model.totalNilaiScore as totalNilaiScore, " + + "model.tunjanganFungsional as tunjanganFungsional, " + "model.tunjanganPapua as tunjanganPapua, " + + "model.tunjanganUmum as tunjanganUmum, " + "model.typePegawaiId as typePegawaiId, " + + "mapPeg.unitKerjaPegawaiId as unitKerjaId, " + "model.wilayahTerperinci as wilayahTerperinci, " + + "loginUser.namaUser as namaUser) " + "from LoginUser loginUser, " + "MapPegawaiJabatanToUnitKerja mapPeg " + "inner join loginUser.pegawai model " + "where model.id = :id " + "and mapPeg.pegawaiId = model.id " + "and loginUser.statusEnabled is true " + "and mapPeg.isPrimary is true " + "and mapPeg.statusEnabled is true " + "and model.statusEnabled is true " @@ -176,9 +178,10 @@ public interface PegawaiDao extends JpaRepository, JpaSpecific + "model.nilaiJabatan as nilaiJabatan, " + "model.nip as nip, " + "model.nipPns as nipPns, " + "model.noBPJS as noBPJS, " + "model.noCm as noCm, " + "model.noHandphone as noHandphone, " + "model.noIdentitas as noIdentitas, " + "model.noRec as noRec, " + "model.noSip as noSip, " - + "model.noStr as noStr, " + "model.noStruk_TTujuanLastId as noStruk_TTujuanLastId, " - + "model.noTlp as noTlp, " + "model.nomorRekening as nomorRekening, " + "model.npwp as npwp, " - + "model.pangkatId as pangkatId, " + "model.pendidikanId as pendidikanId, " + + "model.noStr as noStr, " + "model.noPenugasanKlinis as noPenugasanKlinis, " + + "model.noStruk_TTujuanLastId as noStruk_TTujuanLastId, " + "model.noTlp as noTlp, " + + "model.nomorRekening as nomorRekening, " + "model.npwp as npwp, " + "model.pangkatId as pangkatId, " + + "model.pendidikanId as pendidikanId, " + "model.penghasilanTidakKenaPajakId as penghasilanTidakKenaPajakId, " + "model.pensiun as pensiun, " + "model.periodePengajarId as periodePengajarId, " + "model.photoDiri as photoDiri, " + "model.qPegawai as qPegawai, " + "model.qtyAnak as qtyAnak, " + "model.qtyTanggungan as qtyTanggungan, " @@ -190,15 +193,16 @@ public interface PegawaiDao extends JpaRepository, JpaSpecific + "model.statusPerkawinanPegawaiId as statusPerkawinanPegawaiId, " + "model.statusRhesus as statusRhesus, " + "model.sukuId as sukuId, " + "model.tanggalMeninggal as tanggalMeninggal, " + "model.tempatLahir as tempatLahir, " + "model.tglBerakhirSip as tglBerakhirSip, " - + "model.tglBerakhirStr as tglBerakhirStr, " + "model.tglLahir as tglLahir, " + + "model.tglBerakhirStr as tglBerakhirStr, " + + "model.tglBerakhirPenugasanKlinis as tglBerakhirPenugasanKlinis, " + "model.tglLahir as tglLahir, " + "model.tglMasuk as tglMasuk, " + "model.tglPensiun as tglPensiun, " + "model.tglTerbitSip as tglTerbitSip, " + "model.tglTerbitStr as tglTerbitStr, " - + "model.tglkeluar as tglkeluar, " + "model.titlePasienId as titlePasienId, " - + "model.totalNilaiScore as totalNilaiScore, " + "model.tunjanganFungsional as tunjanganFungsional, " - + "model.tunjanganPapua as tunjanganPapua, " + "model.tunjanganUmum as tunjanganUmum, " - + "model.typePegawaiId as typePegawaiId, " + "mapPegawai.subUnitKerjaPegawaiId as unitKerjaId, " - + "model.wilayahTerperinci as wilayahTerperinci, " + "loginUser.namaUser as namaUser) " - + "from LoginUser loginUser, MapPegawaiJabatanToUnitKerja mapPegawai " + + "model.tglTerbitPenugasanKlinis as tglTerbitPenugasanKlinis, " + "model.tglkeluar as tglkeluar, " + + "model.titlePasienId as titlePasienId, " + "model.totalNilaiScore as totalNilaiScore, " + + "model.tunjanganFungsional as tunjanganFungsional, " + "model.tunjanganPapua as tunjanganPapua, " + + "model.tunjanganUmum as tunjanganUmum, " + "model.typePegawaiId as typePegawaiId, " + + "mapPegawai.subUnitKerjaPegawaiId as unitKerjaId, " + "model.wilayahTerperinci as wilayahTerperinci, " + + "loginUser.namaUser as namaUser) " + "from LoginUser loginUser, MapPegawaiJabatanToUnitKerja mapPegawai " + "inner join loginUser.pegawai model " + "where mapPegawai.pegawaiId = model.id " + "and mapPegawai.isPrimary is true " + "and mapPegawai.statusEnabled is true " + "and loginUser.statusEnabled is true " + "and model.statusEnabled is true " + "and model.id = :id") @@ -300,10 +304,12 @@ public interface PegawaiDao extends JpaRepository, JpaSpecific + "pegawai.noSip as noSip, " + "pegawai.tglTerbitSip as tglTerbitSip," + "pegawai.tglBerakhirSip as tglBerakhirSip," + "pegawai.noStr as noStr, " + "pegawai.tglTerbitStr as tglTerbitStr, " + "pegawai.tglBerakhirStr as tglBerakhirStr," - + "pegawai.gelarDepan as gelarDepan, " + " pegawai.gelarBelakang as gelarBelakang, " - + " pegawai.tempatLahir as tempatLahir," + "golongan.golonganPegawai as namaGolongan, " - + "golonganPPPK.namaGolongan as golonganPPPK, " + "agama.agama as agama, " - + "detailKategoryPegawai.detailKategoryPegawai as detailKategoryPegawai, " + + "pegawai.noPenugasanKlinis as noPenugasanKlinis, " + + "pegawai.tglTerbitPenugasanKlinis as tglTerbitPenugasanKlinis, " + + "pegawai.tglBerakhirPenugasanKlinis as tglBerakhirPenugasanKlinis," + "pegawai.gelarDepan as gelarDepan, " + + " pegawai.gelarBelakang as gelarBelakang, " + " pegawai.tempatLahir as tempatLahir," + + "golongan.golonganPegawai as namaGolongan, " + "golonganPPPK.namaGolongan as golonganPPPK, " + + "agama.agama as agama, " + "detailKategoryPegawai.detailKategoryPegawai as detailKategoryPegawai, " + "dokumen.namaJudulDokumen as namaJudulDokumen, " + "eselon.eselon as eselon, " + "golonganDarah.golonganDarah as golonganDarah, " + "jabatanFungsional.namaJabatan as namaJabatan, " + "jabatanLamar.namaJabatan as jabatanLamar, " + "jabatanStruktural.namaJabatan as jabatanStruktural, " @@ -359,7 +365,9 @@ public interface PegawaiDao extends JpaRepository, JpaSpecific + "pegawai.tglTerbitSip as tglTerbitSip," + "pegawai.tglBerakhirSip as tglBerakhirSip," + "pegawai.isSipSeumurHidup as isSipSeumurHidup," + "pegawai.noStr as noStr," + "pegawai.tglTerbitStr as tglTerbitStr," + "pegawai.tglBerakhirStr as tglBerakhirStr," - + "pegawai.isStrSeumurHidup as isStrSeumurHidup," + "pegawai.gelarDepan as gelarDepan," + + "pegawai.isStrSeumurHidup as isStrSeumurHidup," + "pegawai.noPenugasanKlinis as noPenugasanKlinis," + + "pegawai.tglTerbitPenugasanKlinis as tglTerbitPenugasanKlinis," + + "pegawai.tglBerakhirPenugasanKlinis as tglBerakhirPenugasanKlinis," + "pegawai.gelarDepan as gelarDepan," + "pegawai.gelarBelakang as gelarBelakang," + "pegawai.tempatLahir as tempatLahir," + "golongan.golonganPegawai as namaGolongan," + "golonganPPPK.namaGolongan as golonganPPPK," + "agama.agama as agama," + "detailKategoryPegawai.detailKategoryPegawai as detailKategoryPegawai," @@ -647,27 +655,45 @@ public interface PegawaiDao extends JpaRepository, JpaSpecific @Param("endPeriode") String endPeriode); @Query("select new map (p.id as id, " + "p.tglBerakhirSip as tglBerakhirSip, " - + "p.tglBerakhirStr as tglBerakhirStr, " + "to_char(p.tglBerakhirSip,'dd-MM-yyyy') as tglBerakhirSip2, " - + "to_char(p.tglBerakhirStr,'dd-MM-yyyy') as tglBerakhirStr2, " + "p.noSip as noSip, " - + "p.noStr as noStr, " + "p.nipPns as nipPns, " + "p.namaLengkap as namaLengkap, " - + "subUnitKerja.name as subUnitKerja, " + "unitKerja.name as unitKerja) " - + "from MapPegawaiJabatanToUnitKerja mapPegawai " + "left join mapPegawai.pegawai p " - + "left join mapPegawai.subUnitKerjaPegawai subUnitKerja " + + "p.tglBerakhirStr as tglBerakhirStr, " + "p.tglBerakhirPenugasanKlinis as tglBerakhirPenugasanKlinis, " + + "to_char(p.tglBerakhirSip,'dd-MM-yyyy') as tglBerakhirSip2, " + + "to_char(p.tglBerakhirStr,'dd-MM-yyyy') as tglBerakhirStr2, " + + "to_char(p.tglBerakhirPenugasanKlinis,'dd-MM-yyyy') as tglBerakhirPenugasanKlinis2, " + + "p.noSip as noSip, " + "p.noStr as noStr, " + "p.noPenugasanKlinis as noPenugasanKlinis, " + + "p.nipPns as nipPns, " + "p.namaLengkap as namaLengkap, " + "subUnitKerja.name as subUnitKerja, " + + "unitKerja.name as unitKerja) " + "from MapPegawaiJabatanToUnitKerja mapPegawai " + + "left join mapPegawai.pegawai p " + "left join mapPegawai.subUnitKerjaPegawai subUnitKerja " + "left join mapPegawai.unitKerjaPegawai unitKerja " + "where mapPegawai.isPrimary is true " - + "and mapPegawai.statusEnabled is true " + "and p.statusEnabled is true " + "and tglBerakhirStr <= :date " - + "order by tglBerakhirStr, namaLengkap") + + "and mapPegawai.statusEnabled is true " + "and p.statusEnabled is true " + + "and p.tglBerakhirPenugasanKlinis <= :date " + "order by p.tglBerakhirPenugasanKlinis, p.namaLengkap") + List> findPenugasanKlinisExpired(@Param("date") Date date); + + @Query("select new map (p.id as id, " + "p.tglBerakhirSip as tglBerakhirSip, " + + "p.tglBerakhirStr as tglBerakhirStr, " + "p.tglBerakhirPenugasanKlinis as tglBerakhirPenugasanKlinis, " + + "to_char(p.tglBerakhirSip,'dd-MM-yyyy') as tglBerakhirSip2, " + + "to_char(p.tglBerakhirStr,'dd-MM-yyyy') as tglBerakhirStr2, " + + "to_char(p.tglBerakhirPenugasanKlinis,'dd-MM-yyyy') as tglBerakhirPenugasanKlinis2, " + + "p.noSip as noSip, " + "p.noStr as noStr, " + "p.noPenugasanKlinis as noPenugasanKlinis, " + + "p.nipPns as nipPns, " + "p.namaLengkap as namaLengkap, " + "subUnitKerja.name as subUnitKerja, " + + "unitKerja.name as unitKerja) " + "from MapPegawaiJabatanToUnitKerja mapPegawai " + + "left join mapPegawai.pegawai p " + "left join mapPegawai.subUnitKerjaPegawai subUnitKerja " + + "left join mapPegawai.unitKerjaPegawai unitKerja " + "where mapPegawai.isPrimary is true " + + "and mapPegawai.statusEnabled is true " + "and p.statusEnabled is true " + + "and p.tglBerakhirStr <= :date " + "order by p.tglBerakhirStr, p.namaLengkap") List> findStrExpired(@Param("date") Date date); @Query("select new map (p.id as id, " + "p.tglBerakhirSip as tglBerakhirSip, " - + "p.tglBerakhirStr as tglBerakhirStr, " + "to_char(p.tglBerakhirSip,'dd-MM-yyyy') as tglBerakhirSip2, " - + "to_char(p.tglBerakhirStr,'dd-MM-yyyy') as tglBerakhirStr2, " + "p.noSip as noSip, " - + "p.noStr as noStr, " + "p.nipPns as nipPns, " + "p.namaLengkap as namaLengkap, " - + "subUnitKerja.name as subUnitKerja, " + "unitKerja.name as unitKerja) " - + "from MapPegawaiJabatanToUnitKerja mapPegawai " + "left join mapPegawai.pegawai p " - + "left join mapPegawai.subUnitKerjaPegawai subUnitKerja " + + "p.tglBerakhirStr as tglBerakhirStr, " + "p.tglBerakhirPenugasanKlinis as tglBerakhirPenugasanKlinis, " + + "to_char(p.tglBerakhirSip,'dd-MM-yyyy') as tglBerakhirSip2, " + + "to_char(p.tglBerakhirStr,'dd-MM-yyyy') as tglBerakhirStr2, " + + "to_char(p.tglBerakhirPenugasanKlinis,'dd-MM-yyyy') as tglBerakhirPenugasanKlinis2, " + + "p.noSip as noSip, " + "p.noStr as noStr, " + "p.noPenugasanKlinis as noPenugasanKlinis, " + + "p.nipPns as nipPns, " + "p.namaLengkap as namaLengkap, " + "subUnitKerja.name as subUnitKerja, " + + "unitKerja.name as unitKerja) " + "from MapPegawaiJabatanToUnitKerja mapPegawai " + + "left join mapPegawai.pegawai p " + "left join mapPegawai.subUnitKerjaPegawai subUnitKerja " + "left join mapPegawai.unitKerjaPegawai unitKerja " + "where mapPegawai.isPrimary is true " - + "and mapPegawai.statusEnabled is true " + "and p.statusEnabled is true " + "and tglBerakhirSip <= :date " - + "order by tglBerakhirSip, namaLengkap") + + "and mapPegawai.statusEnabled is true " + "and p.statusEnabled is true " + + "and p.tglBerakhirSip <= :date " + "order by p.tglBerakhirSip, p.namaLengkap") List> findSipExpired(@Param("date") Date date); @Query("select new map (p.id as id, " + "p.tglBerakhirSip as tglBerakhirSip, " @@ -677,8 +703,8 @@ public interface PegawaiDao extends JpaRepository, JpaSpecific + "left join mapPegawai.pegawai p " + "left join mapPegawai.subUnitKerjaPegawai subUnitKerja " + "left join mapPegawai.unitKerjaPegawai unitKerja " + "where mapPegawai.isPrimary is true " + "and mapPegawai.statusEnabled is true " + "and p.statusEnabled is true " + "and p.id = :id " - + "and tglBerakhirSip <= :date " + "and p.isSipSeumurHidup is false " - + "order by tglBerakhirSip, namaLengkap") + + "and p.tglBerakhirSip <= :date " + "and p.isSipSeumurHidup is false " + + "order by p.tglBerakhirSip, namaLengkap") Map findSipExpiredByPegawai(@Param("date") Date date, @Param("id") Integer id); @Query("select new map (p.id as id, " + "p.tglBerakhirStr as tglBerakhirStr, " @@ -688,10 +714,21 @@ public interface PegawaiDao extends JpaRepository, JpaSpecific + "left join mapPegawai.pegawai p " + "left join mapPegawai.subUnitKerjaPegawai subUnitKerja " + "left join mapPegawai.unitKerjaPegawai unitKerja " + "where mapPegawai.isPrimary is true " + "and mapPegawai.statusEnabled is true " + "and p.statusEnabled is true " + "and p.id = :id " - + "and tglBerakhirStr <= :date " + "and p.isStrSeumurHidup is false " - + "order by tglBerakhirStr, namaLengkap") + + "and p.tglBerakhirStr <= :date " + "and p.isStrSeumurHidup is false " + + "order by p.tglBerakhirStr, namaLengkap") Map findStrExpiredByPegawai(@Param("date") Date date, @Param("id") Integer id); + @Query("select new map (p.id as id, " + "p.tglBerakhirPenugasanKlinis as tglBerakhirPenugasanKlinis, " + + "to_char(p.tglBerakhirPenugasanKlinis,'dd-MM-yyyy') as tglBerakhirPenugasanKlinis2, " + + "p.noPenugasanKlinis as noPenugasanKlinis, " + "p.nipPns as nipPns, " + "p.namaLengkap as namaLengkap, " + + "subUnitKerja.name as subUnitKerja, " + "unitKerja.name as unitKerja) " + + "from MapPegawaiJabatanToUnitKerja mapPegawai " + "left join mapPegawai.pegawai p " + + "left join mapPegawai.subUnitKerjaPegawai subUnitKerja " + + "left join mapPegawai.unitKerjaPegawai unitKerja " + "where mapPegawai.isPrimary is true " + + "and mapPegawai.statusEnabled is true " + "and p.statusEnabled is true " + "and p.id = :id " + + "and p.tglBerakhirPenugasanKlinis <= :date " + "order by p.tglBerakhirPenugasanKlinis, p.namaLengkap") + Map findPenugasanKlinisExpiredByPegawai(@Param("date") Date date, @Param("id") Integer id); + @Query("select new map (unitKerja.name as unitKerja, count(pegawai.id) as value )" + "from MapPegawaiJabatanToUnitKerja mapPegawai " + "left join mapPegawai.pegawai pegawai " + "left join mapPegawai.subUnitKerjaPegawai subUnitKerja " @@ -867,18 +904,21 @@ public interface PegawaiDao extends JpaRepository, JpaSpecific + "pegawai.nilaiJabatan as nilaiJabatan, " + "pegawai.nip as nip, " + "pegawai.nipPns as nipPns, " + "pegawai.noBPJS as noBPJS, " + "pegawai.noHandphone as noHandphone, " + "pegawai.noIdentitas as noIdentitas, " + "pegawai.noSip as noSip, " + "pegawai.noStr as noStr, " - + "pegawai.noTlp as noTlp, " + "pegawai.npwp as npwp, " + "pegawai.negaraId as negaraId, " - + "pegawai.pensiun as pensiun, " + "pegawai.pangkatId as pangkatId, " + + "pegawai.noPenugasanKlinis as noPenugasanKlinis, " + "pegawai.noTlp as noTlp, " + "pegawai.npwp as npwp, " + + "pegawai.negaraId as negaraId, " + "pegawai.pensiun as pensiun, " + "pegawai.pangkatId as pangkatId, " + "pegawai.golonganPPPKId as golonganPPPKId, " + "pegawai.ruanganId as ruanganId, " + "pegawai.rekananId as rekananId," + "pegawai.statusRhesus as statusRhesus, " + "pegawai.shiftKerjaId as shiftKerjaId, " + "pegawai.statusKawinId as statusKawinId, " + "pegawai.sukuId as sukuId, " + "pegawai.tempatLahir as tempatLahir, " + "pegawai.tglBerakhirSip as tglBerakhirSip, " + "pegawai.isSipSeumurHidup as isSipSeumurHidup, " - + "pegawai.tglBerakhirStr as tglBerakhirStr, " + "pegawai.isStrSeumurHidup as isStrSeumurHidup, " - + "pegawai.tglLahir as tglLahir, " + "pegawai.tglMasuk as tglMasuk, " + "pegawai.tglkeluar as tglkeluar, " + + "pegawai.tglBerakhirStr as tglBerakhirStr, " + + "pegawai.tglBerakhirPenugasanKlinis as tglBerakhirPenugasanKlinis, " + + "pegawai.isStrSeumurHidup as isStrSeumurHidup, " + "pegawai.tglLahir as tglLahir, " + + "pegawai.tglMasuk as tglMasuk, " + "pegawai.tglkeluar as tglkeluar, " + "pegawai.tglPensiun as tglPensiun, " + "pegawai.tglTerbitSip as tglTerbitSip, " - + "pegawai.tglTerbitStr as tglTerbitStr, " + "pegawai.typePegawaiId as typePegawaiId) " - + "from Pegawai pegawai where pegawai.id = :idPegawai") + + "pegawai.tglTerbitStr as tglTerbitStr, " + + "pegawai.tglTerbitPenugasanKlinis as tglTerbitPenugasanKlinis, " + + "pegawai.typePegawaiId as typePegawaiId) " + "from Pegawai pegawai where pegawai.id = :idPegawai") Map getPegawaiDetailById(@Param("idPegawai") Integer idPegawai); @Query("select new Map(pegawai.alamat as alamat, " + "pegawai.agamaId as agamaId, " + "pegawai.email as email, " @@ -891,13 +931,16 @@ public interface PegawaiDao extends JpaRepository, JpaSpecific + "pegawai.namaLengkap as namaLengkap, " + "pegawai.nikIntern as nikIntern, " + "pegawai.nip as nip, " + "pegawai.nipPns as nipPns, " + "pegawai.nim as nim, " + "pegawai.noHandphone as noHandphone, " + "pegawai.noIdentitas as noIdentitas, " + "pegawai.noSip as noSip, " + "pegawai.noStr as noStr, " - + "pegawai.noTlp as noTlp, " + "pegawai.negaraId as negaraId, " - + "pegawai.pegawaiPembimbingId as pegawaiPembimbingId, " + "pegawai.pendidikanId as pendidikanId, " - + "pegawai.statusRhesus as statusRhesus, " + "pegawai.statusKawinId as statusKawinId, " - + "pegawai.sukuId as sukuId, " + "pegawai.tempatLahir as tempatLahir, " - + "pegawai.tglBerakhirSip as tglBerakhirSip, " + "pegawai.tglBerakhirStr as tglBerakhirStr, " - + "pegawai.tglLahir as tglLahir, " + "pegawai.tglMasuk as tglMasuk, " + "pegawai.tglkeluar as tglkeluar, " - + "pegawai.tglTerbitSip as tglTerbitSip, " + "pegawai.tglTerbitStr as tglTerbitStr)" + + "pegawai.noPenugasanKlinis as noPenugasanKlinis, " + "pegawai.noTlp as noTlp, " + + "pegawai.negaraId as negaraId, " + "pegawai.pegawaiPembimbingId as pegawaiPembimbingId, " + + "pegawai.pendidikanId as pendidikanId, " + "pegawai.statusRhesus as statusRhesus, " + + "pegawai.statusKawinId as statusKawinId, " + "pegawai.sukuId as sukuId, " + + "pegawai.tempatLahir as tempatLahir, " + "pegawai.tglBerakhirSip as tglBerakhirSip, " + + "pegawai.tglBerakhirStr as tglBerakhirStr, " + + "pegawai.tglBerakhirPenugasanKlinis as tglBerakhirPenugasanKlinis, " + "pegawai.tglLahir as tglLahir, " + + "pegawai.tglMasuk as tglMasuk, " + "pegawai.tglkeluar as tglkeluar, " + + "pegawai.tglTerbitSip as tglTerbitSip, " + "pegawai.tglTerbitStr as tglTerbitStr, " + + "pegawai.tglTerbitPenugasanKlinis as tglTerbitPenugasanKlinis)" + "from Pegawai pegawai where pegawai.id = :idPegawai") Map getPesertaDidikDetailById(@Param("idPegawai") Integer idPegawai); diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/custom/impl/PegawaiDaoCustomImpl.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/custom/impl/PegawaiDaoCustomImpl.java index 4a3dc62f..a726bf18 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/custom/impl/PegawaiDaoCustomImpl.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/custom/impl/PegawaiDaoCustomImpl.java @@ -303,10 +303,13 @@ public class PegawaiDaoCustomImpl extends CoreDaoImpl implements Pegawa + "pegawai.tglTerbitSip as tglTerbitSip," + "pegawai.tglBerakhirSip as tglBerakhirSip," + "pegawai.isSipSeumurHidup as isSipSeumurHidup," + "pegawai.noStr as noStr," + "pegawai.tglTerbitStr as tglTerbitStr," + "pegawai.tglBerakhirStr as tglBerakhirStr," - + "pegawai.isStrSeumurHidup as isStrSeumurHidup," + "pegawai.gelarDepan as gelarDepan," - + "pegawai.gelarBelakang as gelarBelakang," + "pegawai.tempatLahir as tempatLahir," - + "golongan.golonganPegawai as namaGolongan," + "golonganPPPK.namaGolongan as golonganPPPK," - + "agama.agama as agama," + "detailKategoryPegawai.detailKategoryPegawai as detailKategoryPegawai," + + "pegawai.isStrSeumurHidup as isStrSeumurHidup," + "pegawai.noPenugasanKlinis as noPenugasanKlinis," + + "pegawai.tglTerbitPenugasanKlinis as tglTerbitPenugasanKlinis," + + "pegawai.tglBerakhirPenugasanKlinis as tglBerakhirPenugasanKlinis," + + "pegawai.gelarDepan as gelarDepan," + "pegawai.gelarBelakang as gelarBelakang," + + "pegawai.tempatLahir as tempatLahir," + "golongan.golonganPegawai as namaGolongan," + + "golonganPPPK.namaGolongan as golonganPPPK," + "agama.agama as agama," + + "detailKategoryPegawai.detailKategoryPegawai as detailKategoryPegawai," + "dokumen.namaJudulDokumen as namaJudulDokumen," + "eselon.eselon as eselon," + "golonganDarah.golonganDarah as golonganDarah," + "pegawai.statusRhesus as rhesusGolonganDarah," + "jabatanFungsional.namaJabatan as namaJabatan," + "jabatanLamar.namaJabatan as jabatanLamar," @@ -444,10 +447,13 @@ public class PegawaiDaoCustomImpl extends CoreDaoImpl implements Pegawa + "levelTingkat.levelTingkat as levelTingkat," + "pegawai.grade as grade," + "pegawai.noSip as noSip," + "pegawai.tglTerbitSip as tglTerbitSip," + "pegawai.tglBerakhirSip as tglBerakhirSip," + "pegawai.noStr as noStr," + "pegawai.tglTerbitStr as tglTerbitStr," - + "pegawai.tglBerakhirStr as tglBerakhirStr," + "pegawai.gelarDepan as gelarDepan," - + "pegawai.gelarBelakang as gelarBelakang," + "pegawai.tempatLahir as tempatLahir," - + "golongan.golonganPegawai as namaGolongan," + "golonganPPPK.namaGolongan as golonganPPPK," - + "agama.agama as agama," + "detailKategoryPegawai.detailKategoryPegawai as detailKategoryPegawai," + + "pegawai.tglBerakhirStr as tglBerakhirStr," + "pegawai.noPenugasanKlinis as noPenugasanKlinis," + + "pegawai.tglTerbitPenugasanKlinis as tglTerbitPenugasanKlinis," + + "pegawai.tglBerakhirPenugasanKlinis as tglBerakhirPenugasanKlinis," + + "pegawai.gelarDepan as gelarDepan," + "pegawai.gelarBelakang as gelarBelakang," + + "pegawai.tempatLahir as tempatLahir," + "golongan.golonganPegawai as namaGolongan," + + "golonganPPPK.namaGolongan as golonganPPPK," + "agama.agama as agama," + + "detailKategoryPegawai.detailKategoryPegawai as detailKategoryPegawai," + "dokumen.namaJudulDokumen as namaJudulDokumen," + "eselon.eselon as eselon," + "golonganDarah.golonganDarah as golonganDarah," + "pegawai.statusRhesus as rhesusGolonganDarah," + "jabatanFungsional.namaJabatan as namaJabatan," + "jabatanLamar.namaJabatan as jabatanLamar," @@ -551,10 +557,13 @@ public class PegawaiDaoCustomImpl extends CoreDaoImpl implements Pegawa + "levelTingkat.levelTingkat as levelTingkat," + "pegawai.grade as grade," + "pegawai.noSip as noSip," + "pegawai.tglTerbitSip as tglTerbitSip," + "pegawai.tglBerakhirSip as tglBerakhirSip," + "pegawai.noStr as noStr," + "pegawai.tglTerbitStr as tglTerbitStr," - + "pegawai.tglBerakhirStr as tglBerakhirStr," + "pegawai.gelarDepan as gelarDepan," - + "pegawai.gelarBelakang as gelarBelakang," + "pegawai.tempatLahir as tempatLahir," - + "golongan.golonganPegawai as namaGolongan," + "golonganPPPK.namaGolongan as golonganPPPK," - + "agama.agama as agama," + "detailKategoryPegawai.detailKategoryPegawai as detailKategoryPegawai," + + "pegawai.tglBerakhirStr as tglBerakhirStr," + "pegawai.noPenugasanKlinis as noPenugasanKlinis," + + "pegawai.tglTerbitPenugasanKlinis as tglTerbitPenugasanKlinis," + + "pegawai.tglBerakhirPenugasanKlinis as tglBerakhirPenugasanKlinis," + + "pegawai.gelarDepan as gelarDepan," + "pegawai.gelarBelakang as gelarBelakang," + + "pegawai.tempatLahir as tempatLahir," + "golongan.golonganPegawai as namaGolongan," + + "golonganPPPK.namaGolongan as golonganPPPK," + "agama.agama as agama," + + "detailKategoryPegawai.detailKategoryPegawai as detailKategoryPegawai," + "dokumen.namaJudulDokumen as namaJudulDokumen," + "eselon.eselon as eselon," + "golonganDarah.golonganDarah as golonganDarah," + "pegawai.statusRhesus as rhesusGolonganDarah," + "jabatanFungsional.namaJabatan as namaJabatan," + "jabatanLamar.namaJabatan as jabatanLamar," diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/PegawaiService.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/PegawaiService.java index ee6cbe4e..86633cf6 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/PegawaiService.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/PegawaiService.java @@ -109,6 +109,8 @@ public interface PegawaiService extends BaseVoService> getpegawaiSipExpired(); + List> getpegawaiPenugasanKlinisExpired(); + List> getpegawaiByUnitKerja(); List> getpegawaiByKelompokJabatan(); 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 23abbaf0..4ae00ce5 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 @@ -1,11 +1,11 @@ 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; +import java.util.Map; + /** * class RekamDataPegawaiService * @@ -22,11 +22,13 @@ public interface RekamDataPegawaiService { RekamDataPegawaiCustomVO getDetailPerubahan(String idHistory); void resetLoginUser(Integer idPegawai); - + Map getpegawaiStrExpiredByPegawai(); - + Map getpegawaiSipStrExpiredByPegawai(); - + + Map getpegawaiSipStrKewenanganKlinisExpiredByPegawai(); + void saveHistoryPegawai(MapPegawaiJabatanToUnitKerja model, String perubahan); } 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 b449e215..f296c885 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 @@ -1581,6 +1581,11 @@ public class PegawaiServiceImpl extends BaseVoServiceImpl implements PegawaiServ return pegawaiDao.findSipExpired(getNextSixMonth()); } + @Override + public List> getpegawaiPenugasanKlinisExpired() { + return pegawaiDao.findPenugasanKlinisExpired(getNextSixMonth()); + } + public Date getNextSixMonth() { Calendar cal = Calendar.getInstance(); cal.setTime(new Date()); @@ -1904,7 +1909,7 @@ public class PegawaiServiceImpl extends BaseVoServiceImpl implements PegawaiServ } if (CommonUtil.isNotNullOrEmpty(result.get("golonganPPPKId"))) { Optional byId = golonganPPPKDao.findById(result.get("golonganPPPKId").toString()); - byId.ifPresent(golonganPPPK -> { + byId.ifPresent(golonganPPPK -> { result.put("golonganPPPK", golonganPPPK); result.remove("golonganPPPKId"); }); 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 a941bae7..f8335145 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 @@ -783,15 +783,20 @@ public class RekamDataPegawaiServiceImpl extends BaseVoServiceImpl implements Re pegawai.setGolonganPegawai(null); } - if (CommonUtil.isNotNullOrEmpty(pegawai.getGolonganPPPKId()) && CommonUtil.isNotNullOrEmpty(vo.getGolonganPPPK())) { + if (CommonUtil.isNotNullOrEmpty(pegawai.getGolonganPPPKId()) + && CommonUtil.isNotNullOrEmpty(vo.getGolonganPPPK())) { if (!pegawai.getGolonganPPPKId().equals(vo.getGolonganPPPK().getId())) { - pegawai.setGolonganPPPK(golonganPPPKConverter.transferVOToModel(vo.getGolonganPPPK(), new GolonganPPPK())); + pegawai.setGolonganPPPK( + golonganPPPKConverter.transferVOToModel(vo.getGolonganPPPK(), new GolonganPPPK())); perubahan += "ubah golongan pppk, "; } - } else if (CommonUtil.isNullOrEmpty(pegawai.getGolonganPPPKId()) && CommonUtil.isNotNullOrEmpty(vo.getGolonganPPPK())) { - pegawai.setGolonganPPPK(golonganPPPKConverter.transferVOToModel(vo.getGolonganPPPK(), new GolonganPPPK())); + } else if (CommonUtil.isNullOrEmpty(pegawai.getGolonganPPPKId()) + && CommonUtil.isNotNullOrEmpty(vo.getGolonganPPPK())) { + pegawai.setGolonganPPPK( + golonganPPPKConverter.transferVOToModel(vo.getGolonganPPPK(), new GolonganPPPK())); perubahan += "golongan pppk, "; - } else if (CommonUtil.isNotNullOrEmpty(pegawai.getGolonganPPPKId()) && CommonUtil.isNullOrEmpty(vo.getGolonganPPPK())) { + } else if (CommonUtil.isNotNullOrEmpty(pegawai.getGolonganPPPKId()) + && CommonUtil.isNullOrEmpty(vo.getGolonganPPPK())) { pegawai.setGolonganPPPK(null); perubahan += "hapus golongan pppk, "; } @@ -1138,6 +1143,54 @@ public class RekamDataPegawaiServiceImpl extends BaseVoServiceImpl implements Re perubahan += "hapus status STR berlaku seumur hidup, "; } + if (CommonUtil.isNotNullOrEmpty(pegawai.getNoPenugasanKlinis()) + && CommonUtil.isNotNullOrEmpty(vo.getNoPenugasanKlinis())) { + if (!pegawai.getNoPenugasanKlinis().equals(vo.getNoPenugasanKlinis())) { + pegawai.setNoPenugasanKlinis(vo.getNoPenugasanKlinis()); + perubahan += "ubah no penugasan klinis, "; + } + } else if (CommonUtil.isNullOrEmpty(pegawai.getNoPenugasanKlinis()) + && CommonUtil.isNotNullOrEmpty(vo.getNoPenugasanKlinis())) { + pegawai.setNoPenugasanKlinis(vo.getNoPenugasanKlinis()); + perubahan += "no penugasan klinis, "; + } else if (CommonUtil.isNotNullOrEmpty(pegawai.getNoPenugasanKlinis()) + && CommonUtil.isNullOrEmpty(vo.getNoPenugasanKlinis())) { + pegawai.setNoPenugasanKlinis(vo.getNoPenugasanKlinis()); + perubahan += "hapus no penugasan klinis, "; + } + + if (CommonUtil.isNotNullOrEmpty(pegawai.getTglTerbitPenugasanKlinis()) + && CommonUtil.isNotNullOrEmpty(vo.getTglTerbitPenugasanKlinis())) { + if (!pegawai.getTglTerbitPenugasanKlinis().equals(vo.getTglTerbitPenugasanKlinis())) { + pegawai.setTglTerbitPenugasanKlinis(vo.getTglTerbitPenugasanKlinis()); + perubahan += "ubah tanggal terbit penugasan klinis, "; + } + } else if (CommonUtil.isNullOrEmpty(pegawai.getTglTerbitPenugasanKlinis()) + && CommonUtil.isNotNullOrEmpty(vo.getTglTerbitPenugasanKlinis())) { + pegawai.setTglTerbitPenugasanKlinis(vo.getTglTerbitPenugasanKlinis()); + perubahan += "tanggal terbit penugasan klinis, "; + } else if (CommonUtil.isNotNullOrEmpty(pegawai.getTglTerbitPenugasanKlinis()) + && CommonUtil.isNullOrEmpty(vo.getTglTerbitPenugasanKlinis())) { + pegawai.setTglTerbitPenugasanKlinis(vo.getTglTerbitPenugasanKlinis()); + perubahan += "hapus tanggal terbit penugasan klinis, "; + } + + if (CommonUtil.isNotNullOrEmpty(pegawai.getTglBerakhirPenugasanKlinis()) + && CommonUtil.isNotNullOrEmpty(vo.getTglBerakhirPenugasanKlinis())) { + if (!pegawai.getTglBerakhirPenugasanKlinis().equals(vo.getTglBerakhirPenugasanKlinis())) { + pegawai.setTglBerakhirPenugasanKlinis(vo.getTglBerakhirPenugasanKlinis()); + perubahan += "ubah tanggal berakhir penugasan klinis, "; + } + } else if (CommonUtil.isNullOrEmpty(pegawai.getTglBerakhirPenugasanKlinis()) + && CommonUtil.isNotNullOrEmpty(vo.getTglBerakhirPenugasanKlinis())) { + pegawai.setTglBerakhirPenugasanKlinis(vo.getTglBerakhirPenugasanKlinis()); + perubahan += "tanggal berakhir penugasan klinis, "; + } else if (CommonUtil.isNotNullOrEmpty(pegawai.getTglBerakhirPenugasanKlinis()) + && CommonUtil.isNullOrEmpty(vo.getTglBerakhirPenugasanKlinis())) { + pegawai.setTglBerakhirPenugasanKlinis(vo.getTglBerakhirPenugasanKlinis()); + perubahan += "hapus tanggal berakhir penugasan klinis, "; + } + if (CommonUtil.isNotNullOrEmpty(pegawai.getTypePegawaiId()) && CommonUtil.isNotNullOrEmpty(vo.getTypePegawai())) { if (!pegawai.getTypePegawaiId().equals(vo.getTypePegawai().getId())) { @@ -1451,7 +1504,8 @@ public class RekamDataPegawaiServiceImpl extends BaseVoServiceImpl implements Re pegawai.setGolongan(gol); } if (CommonUtil.isNotNullOrEmpty(vo.getGolonganPPPK())) { - pegawai.setGolonganPPPK(golonganPPPKConverter.transferVOToModel(vo.getGolonganPPPK(), new GolonganPPPK())); + pegawai.setGolonganPPPK( + golonganPPPKConverter.transferVOToModel(vo.getGolonganPPPK(), new GolonganPPPK())); perubahan += "golongan pppk, "; } if (CommonUtil.isNotNullOrEmpty(vo.getEselon())) { @@ -1526,6 +1580,18 @@ public class RekamDataPegawaiServiceImpl extends BaseVoServiceImpl implements Re pegawai.setIsStrSeumurHidup(vo.getIsStrSeumurHidup()); perubahan += "status str seumur hidup, "; } + if (CommonUtil.isNotNullOrEmpty(vo.getNoPenugasanKlinis())) { + pegawai.setNoPenugasanKlinis(vo.getNoPenugasanKlinis()); + perubahan += "no penugasan klinis, "; + } + if (CommonUtil.isNotNullOrEmpty(vo.getTglTerbitPenugasanKlinis())) { + pegawai.setTglTerbitPenugasanKlinis(vo.getTglTerbitPenugasanKlinis()); + perubahan += "tanggal terbit penugasan klinis, "; + } + if (CommonUtil.isNotNullOrEmpty(vo.getTglBerakhirPenugasanKlinis())) { + pegawai.setTglBerakhirPenugasanKlinis(vo.getTglBerakhirPenugasanKlinis()); + perubahan += "tanggal berakhir penugasan klinis, "; + } if (CommonUtil.isNotNullOrEmpty(vo.getTypePegawai())) { pegawai.setTypePegawai(typePegawaiConverter.transferVOToModel(vo.getTypePegawai(), new TypePegawai())); perubahan += "tipe pegawai, "; @@ -2218,8 +2284,7 @@ public class RekamDataPegawaiServiceImpl extends BaseVoServiceImpl implements Re } // Golongan PPPK if (CommonUtil.isNotNullOrEmpty(vo.getGolonganPPPK())) { - model.setGolonganPPPK( - golonganPPPKConverter.transferVOToModel(vo.getGolonganPPPK(), new GolonganPPPK())); + model.setGolonganPPPK(golonganPPPKConverter.transferVOToModel(vo.getGolonganPPPK(), new GolonganPPPK())); perubahan += "golongan pppk, "; } // Jabatan Internal @@ -2275,6 +2340,17 @@ public class RekamDataPegawaiServiceImpl extends BaseVoServiceImpl implements Re // } } + if (dataPegawai.containsKey("noPenugasanKlinis")) { + model.setNoPenugasanKlinis(vo.getNoPenugasanKlinis()); + perubahan += "no penugasan klinis, "; + + model.setTglTerbitPenugasanKlinis(vo.getTglTerbitPenugasanKlinis()); + perubahan += "tanggal terbit penugasan klinis, "; + + model.setTglBerakhirPenugasanKlinis(vo.getTglBerakhirPenugasanKlinis()); + perubahan += "tanggal berakhir penugasan klinis, "; + } + // Agama if (CommonUtil.isNotNullOrEmpty(vo.getAgama())) { model.setAgama(agamaConverter.transferVOToModel(vo.getAgama(), new Agama())); @@ -2477,6 +2553,10 @@ public class RekamDataPegawaiServiceImpl extends BaseVoServiceImpl implements Re model.setNoStr(vo.getNoStr()); perubahan += "nomor STR, "; } + if (dataPegawai.containsKey("noPenugasanKlinis")) { + model.setNoPenugasanKlinis(vo.getNoPenugasanKlinis()); + perubahan += "nomor penugasan klinis, "; + } if (dataPegawai.containsKey("noTlp")) { model.setNoTlp(vo.getNoTlp()); perubahan += "nomor telepon, "; @@ -2659,6 +2739,15 @@ public class RekamDataPegawaiServiceImpl extends BaseVoServiceImpl implements Re if (CommonUtil.isNotNullOrEmpty(pegawai.getTglBerakhirStr())) { model.setTglBerakhirStr(pegawai.getTglBerakhirStr()); } + if (CommonUtil.isNotNullOrEmpty(pegawai.getNoPenugasanKlinis())) { + model.setNoPenugasanKlinis(pegawai.getNoPenugasanKlinis()); + } + if (CommonUtil.isNotNullOrEmpty(pegawai.getTglTerbitPenugasanKlinis())) { + model.setTglTerbitPenugasanKlinis(pegawai.getTglTerbitPenugasanKlinis()); + } + if (CommonUtil.isNotNullOrEmpty(pegawai.getTglBerakhirPenugasanKlinis())) { + model.setTglBerakhirPenugasanKlinis(pegawai.getTglBerakhirPenugasanKlinis()); + } // Negara if (CommonUtil.isNotNullOrEmpty(pegawai.getNegara())) { model.setNegara(pegawai.getNegara().getNamaNegara()); @@ -2851,6 +2940,58 @@ public class RekamDataPegawaiServiceImpl extends BaseVoServiceImpl implements Re return result; } + @Override + public Map getpegawaiSipStrKewenanganKlinisExpiredByPegawai() { + Map result = new HashMap<>(); + + LoginUser loginUser = loginUserService.getLoginUser(); + + Map sip = pegawaiDao.findSipExpiredByPegawai(getNextSixMonth(), loginUser.getPegawai().getId()); + Map str = pegawaiDao.findStrExpiredByPegawai(getNextSixMonth(), loginUser.getPegawai().getId()); + Map kewenanganKlinis = pegawaiDao.findPenugasanKlinisExpiredByPegawai(getNextSixMonth(), + loginUser.getPegawai().getId()); + + if (CommonUtil.isNotNullOrEmpty(sip) && CommonUtil.isNotNullOrEmpty(str) + && CommonUtil.isNotNullOrEmpty(kewenanganKlinis)) { + result.putAll(sip); + result.put("tglBerakhirStr", str.get("tglBerakhirStr")); + result.put("tglBerakhirStr2", str.get("tglBerakhirStr2")); + result.put("noStr", str.get("noStr")); + result.put("tglBerakhirPenugasanKlinis", kewenanganKlinis.get("tglBerakhirPenugasanKlinis")); + result.put("tglBerakhirPenugasanKlinis2", kewenanganKlinis.get("tglBerakhirPenugasanKlinis2")); + result.put("noPenugasanKlinis", kewenanganKlinis.get("noPenugasanKlinis")); + } else if (CommonUtil.isNotNullOrEmpty(sip) && CommonUtil.isNotNullOrEmpty(str) + && CommonUtil.isNullOrEmpty(kewenanganKlinis)) { + result.putAll(sip); + result.put("tglBerakhirStr", str.get("tglBerakhirStr")); + result.put("tglBerakhirStr2", str.get("tglBerakhirStr2")); + result.put("noStr", str.get("noStr")); + } else if (CommonUtil.isNotNullOrEmpty(sip) && CommonUtil.isNullOrEmpty(str) + && CommonUtil.isNotNullOrEmpty(kewenanganKlinis)) { + result.putAll(sip); + result.put("tglBerakhirPenugasanKlinis", kewenanganKlinis.get("tglBerakhirPenugasanKlinis")); + result.put("tglBerakhirPenugasanKlinis2", kewenanganKlinis.get("tglBerakhirPenugasanKlinis2")); + result.put("noPenugasanKlinis", kewenanganKlinis.get("noPenugasanKlinis")); + } else if (CommonUtil.isNullOrEmpty(sip) && CommonUtil.isNotNullOrEmpty(str) + && CommonUtil.isNotNullOrEmpty(kewenanganKlinis)) { + result.putAll(str); + result.put("tglBerakhirPenugasanKlinis", kewenanganKlinis.get("tglBerakhirPenugasanKlinis")); + result.put("tglBerakhirPenugasanKlinis2", kewenanganKlinis.get("tglBerakhirPenugasanKlinis2")); + result.put("noPenugasanKlinis", kewenanganKlinis.get("noPenugasanKlinis")); + } else if (CommonUtil.isNotNullOrEmpty(sip) && CommonUtil.isNullOrEmpty(str) + && CommonUtil.isNullOrEmpty(kewenanganKlinis)) { + result.putAll(sip); + } else if (CommonUtil.isNullOrEmpty(sip) && CommonUtil.isNotNullOrEmpty(str) + && CommonUtil.isNullOrEmpty(kewenanganKlinis)) { + result.putAll(str); + } else if (CommonUtil.isNullOrEmpty(sip) && CommonUtil.isNullOrEmpty(str) + && CommonUtil.isNotNullOrEmpty(kewenanganKlinis)) { + result.putAll(kewenanganKlinis); + } + + return result; + } + public Date getNextSixMonth() { Calendar cal = Calendar.getInstance(); cal.setTime(new Date()); diff --git a/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/entities/Pegawai.java b/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/entities/Pegawai.java index 34aed3b8..b9d1825d 100644 --- a/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/entities/Pegawai.java +++ b/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/entities/Pegawai.java @@ -8,11 +8,13 @@ import lombok.NoArgsConstructor; import lombok.Setter; import javax.persistence.*; +import javax.validation.constraints.Size; import java.util.Date; import java.util.HashSet; import java.util.Set; import static javax.persistence.FetchType.LAZY; +import static javax.persistence.TemporalType.DATE; @Getter @Setter @@ -622,4 +624,16 @@ public class Pegawai extends BaseMasterPegawai { @Column(name = "nim", length = 32) private String nim; + @Size(max = 200, message = "No penugasan klinis maksimal {max} karakter") + @Column(name = "no_penugasan_klinis", length = 200) + private String noPenugasanKlinis; + + @Column(name = "tgl_terbit_penugasan_klinis") + @Temporal(DATE) + private Date tglTerbitPenugasanKlinis; + + @Column(name = "tgl_berakhir_penugasan_klinis") + @Temporal(DATE) + private Date tglBerakhirPenugasanKlinis; + } diff --git a/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/vo/RekamDataPegawaiCustomVO.java b/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/vo/RekamDataPegawaiCustomVO.java index e34544ef..1bef6a47 100644 --- a/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/vo/RekamDataPegawaiCustomVO.java +++ b/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/vo/RekamDataPegawaiCustomVO.java @@ -4,16 +4,17 @@ import com.jasamedika.medifirst2000.base.vo.BaseTransactionVO; import lombok.Getter; import lombok.Setter; +import javax.validation.constraints.Size; import java.util.Date; /** - * class RekamDataPegawaiVO + * class RekamDataPegawaiVO * * @author Lukman Hakim */ @Getter @Setter -public class RekamDataPegawaiCustomVO extends BaseTransactionVO{ +public class RekamDataPegawaiCustomVO extends BaseTransactionVO { private String nip; private String nama; private String kedudukan; @@ -37,8 +38,8 @@ public class RekamDataPegawaiCustomVO extends BaseTransactionVO{ private Integer statusKawinId; private String beras; private String sewaRumah; - private String alamat; - private String kodePos; + private String alamat; + private String kodePos; private String bankRekeningAtasNama; private String bankRekeningNama; private String bankRekeningNomor; @@ -122,7 +123,7 @@ public class RekamDataPegawaiCustomVO extends BaseTransactionVO{ private String emailAlternatif; private String noTlp; private String noHandphone; - private Date tglkeluar; + private Date tglkeluar; private String noSip; private Date tglTerbitSip; private Date tglBerakhirSip; @@ -135,7 +136,7 @@ public class RekamDataPegawaiCustomVO extends BaseTransactionVO{ private Date tglLahir; private Date tglPensiun; private String noBPJS; - + private String satuanKerja; private Integer satuanKerjaId; @@ -143,9 +144,16 @@ public class RekamDataPegawaiCustomVO extends BaseTransactionVO{ private Integer rekananId; private String periodePengajar; private String periodePengajarId; - + private Double grade; - + private Double nilaiJabatan; + @Size(max = 200, message = "No penugasan klinis maksimal {max} karakter") + private String noPenugasanKlinis; + + private Date tglTerbitPenugasanKlinis; + + private Date tglBerakhirPenugasanKlinis; + } \ 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 2ec0cbf7..9a944dac 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 @@ -5,6 +5,7 @@ import com.jasamedika.medifirst2000.helper.Caption; import lombok.Getter; import lombok.Setter; +import javax.validation.constraints.Size; import java.util.Date; import java.util.List; @@ -286,4 +287,11 @@ public class RekamDataPegawaiVO extends BaseTransactionVO { private String nim; + @Size(max = 200, message = "No penugasan klinis maksimal {max} karakter") + private String noPenugasanKlinis; + + private Date tglTerbitPenugasanKlinis; + + private Date tglBerakhirPenugasanKlinis; + } 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 ca250ac3..5288a5bd 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 @@ -1006,6 +1006,24 @@ public class PegawaiController extends LocaleController implements IB } } + @RequestMapping(value = "/get-pegawai-kewenangan-klinis-expired", method = RequestMethod.GET) + public ResponseEntity>> getPegawaiKewenanganKlinisExpired(HttpServletRequest request) { + try { + List> pegawais = pegawaiService.getpegawaiPenugasanKlinisExpired(); + mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_SUCCESS, + getMessage(MessageResource.LABEL_SUCCESS, request)); + return RestUtil.getJsonResponse(pegawais, HttpStatus.OK, mapHeaderMessage); + } catch (ServiceVOException e) { + LOGGER.error("Got exception {} when getpegawaiPenugasanKlinisExpired", e.getMessage()); + addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, e.getMessage()); + return RestUtil.getJsonHttptatus(HttpStatus.INTERNAL_SERVER_ERROR, mapHeaderMessage); + } catch (JpaSystemException jse) { + LOGGER.error("Got exception {} when getpegawaiPenugasanKlinisExpired", jse.getMessage()); + addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, jse.getMessage()); + return RestUtil.getJsonHttptatus(HttpStatus.CONFLICT, mapHeaderMessage); + } + } + @RequestMapping(value = "/get-pegawai-str-expired", method = RequestMethod.GET) public ResponseEntity>> getPegawaiStrExpired(HttpServletRequest request) { try { 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 a7847f44..d789bbb3 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 @@ -5332,6 +5332,24 @@ public class SdmController extends LocaleController { } } + @RequestMapping(value = "/get-kewenangan-klinis-expired-pegawai", method = RequestMethod.GET) + public ResponseEntity> getPegawaiKewenanganKlinisExpiredByPegawai(HttpServletRequest request) { + try { + Map pegawais = rekamDataPegawaiService.getpegawaiSipStrKewenanganKlinisExpiredByPegawai(); + mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_SUCCESS, + getMessage(MessageResource.LABEL_SUCCESS, request)); + return RestUtil.getJsonResponse(pegawais, HttpStatus.OK, mapHeaderMessage); + } catch (ServiceVOException e) { + LOGGER.error("Got ServiceVOException {} when get data kewenangan klinis login user", e.getMessage()); + addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, e.getMessage()); + return RestUtil.getJsonHttptatus(HttpStatus.INTERNAL_SERVER_ERROR, mapHeaderMessage); + } catch (JpaSystemException jse) { + LOGGER.error("Got JpaSystemException {} when get data kewenangan klinis login user", jse.getMessage()); + addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, jse.getMessage()); + return RestUtil.getJsonHttptatus(HttpStatus.CONFLICT, mapHeaderMessage); + } + } + @RequestMapping(value = "/get-daftar-ruangan", method = RequestMethod.GET) public ResponseEntity>> getListRuanganDepartemen(HttpServletRequest request, @RequestParam(value = "departemenId") Integer departemenId) {