diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/constants/Master.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/constants/Master.java index 9f661fd5..436c2c5c 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/constants/Master.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/constants/Master.java @@ -58,6 +58,10 @@ public final class Master { public static final Integer VISIT = 29; } + public static final class HariLibur { + public static final Integer LIBUR_CB = 8; + } + public static final class IndikatorKinerja { public static final Integer KEPATUHAN_PELAYANAN_MEDIS = 674; public static final Integer KETEPATAN_KEHADIRAN = 357; diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/JatahCutiDanIzinDao.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/JatahCutiDanIzinDao.java index 0a2df3ef..f6e22ff1 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/JatahCutiDanIzinDao.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/JatahCutiDanIzinDao.java @@ -1,41 +1,41 @@ package com.jasamedika.medifirst2000.dao; +import com.jasamedika.medifirst2000.entities.JatahCutiDanIzin; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.Query; +import org.springframework.data.repository.query.Param; +import org.springframework.stereotype.Repository; + import java.util.Date; import java.util.List; import java.util.Map; -import org.springframework.data.jpa.repository.Query; -import org.springframework.data.repository.PagingAndSortingRepository; -import org.springframework.data.repository.query.Param; -import org.springframework.stereotype.Repository; - -import com.jasamedika.medifirst2000.entities.JatahCutiDanIzin; - @Repository("JatahCutiDanIzinDao") -public interface JatahCutiDanIzinDao extends PagingAndSortingRepository { +public interface JatahCutiDanIzinDao extends JpaRepository { + @Query("select jatahCuti " + "from JatahCutiDanIzin jatahCuti " + "left join jatahCuti.pegawai pegawai " + "left join jatahCuti.komponenIndex komponenIndex " + "where jatahCuti.tahun = :tahun and pegawai.id = :idPegawai " + "and komponenIndex.id = :komponenIndexId") - public JatahCutiDanIzin getJatahCuti(@Param("tahun") String tahun, @Param("idPegawai") Integer idPegawai, + JatahCutiDanIzin getJatahCuti(@Param("tahun") String tahun, @Param("idPegawai") Integer idPegawai, @Param("komponenIndexId") Integer komponenIndexId); @Query("select jatahCuti " + "from JatahCutiDanIzin jatahCuti " + "left join jatahCuti.pegawai pegawai " + "left join jatahCuti.komponenIndex komponenIndex " + "where jatahCuti.tahun = :tahun and pegawai.id = :idPegawai " + "and komponenIndex.id in (:komponenIndexId)") - public JatahCutiDanIzin getJatahCuti(@Param("tahun") String tahun, @Param("idPegawai") Integer idPegawai, + JatahCutiDanIzin getJatahCuti(@Param("tahun") String tahun, @Param("idPegawai") Integer idPegawai, @Param("komponenIndexId") List komponenIndexId); @Query("select coalesce(jatahCuti.value,0) " + "from JatahCutiDanIzin jatahCuti " + "left join jatahCuti.pegawai pegawai " + "left join jatahCuti.komponenIndex komponenIndex " + "where jatahCuti.tahun = :tahun and pegawai.id = :idPegawai " + "and komponenIndex.id = :komponenIndexId") - public Integer getDataCuti(@Param("tahun") String tahun, @Param("idPegawai") Integer idPegawai, + Integer getDataCuti(@Param("tahun") String tahun, @Param("idPegawai") Integer idPegawai, @Param("komponenIndexId") Integer komponenIndexId); @Query("select jatahCuti.isTangguhkan " + "from JatahCutiDanIzin jatahCuti " + "left join jatahCuti.pegawai pegawai " + "left join jatahCuti.komponenIndex komponenIndex " + "where jatahCuti.tahun = :tahun and pegawai.id = :idPegawai " + "and komponenIndex.id = :komponenIndexId") - public Boolean getPenangguhanSisaCuti(@Param("tahun") String tahun, @Param("idPegawai") Integer idPegawai, + Boolean getPenangguhanSisaCuti(@Param("tahun") String tahun, @Param("idPegawai") Integer idPegawai, @Param("komponenIndexId") Integer komponenIndexId); @Query("select new map(" + "jatahCuti.value as value, " + "jatahCuti.sisaCuti as sisaCuti, " @@ -49,22 +49,7 @@ public interface JatahCutiDanIzinDao extends PagingAndSortingRepository> getAllJatahCuti(@Param("komponenIndexId") Integer komponenIndexId); - - @Query("select new map(" + "jatahCuti.noRec as noRec, " + "jatahCuti.komponenIndexId as komponenIndexId, " - + "jatahCuti.tahun as tahun, " + "jatahCuti.value as value, " + "jatahCuti.sisaCuti as sisaCuti, " - + "jatahCuti.cutiTerpakai as cutiTerpakai, " + "jatahCuti.isTangguhkan as isTangguhkan, " - + "pegawai.id as idPegawai, " + "pegawai.namaLengkap as namaPegawai, " + "pegawai.nipPns as nipPegawai, " - + "unitKerja.name as unitKerja," + "subUnitKerja.name as subUnitKerja) " - + "from JatahCutiDanIzin jatahCuti, MapPegawaiJabatanToUnitKerja mapPegawai " - + "left join jatahCuti.pegawai pegawai " + "left join jatahCuti.komponenIndex komponenIndex " - + "left join mapPegawai.subUnitKerjaPegawai subUnitKerja " - + "left join mapPegawai.unitKerjaPegawai unitKerja " + "where mapPegawai.pegawaiId = pegawai.id " - + "and mapPegawai.isPrimary is true " + "and mapPegawai.statusEnabled is true " - + "and pegawai.id = :pegawaiId " + "and komponenIndex.id = :komponenIndexId " - + "order by pegawai.id, jatahCuti.tahun") - public List> getAllJatahCuti(@Param("komponenIndexId") Integer komponenIndexId, - @Param("pegawaiId") Integer pegawaiId); + List> getAllJatahCuti(@Param("komponenIndexId") Integer komponenIndexId); @Query("select new map(" + "jatahCuti.noRec as noRec, " + "jatahCuti.komponenIndexId as komponenIndexId, " + "komponenIndex.komponenIndex as komponenIndex, " + "jatahCuti.tahun as tahun, " @@ -80,18 +65,18 @@ public interface JatahCutiDanIzinDao extends PagingAndSortingRepository= cast(to_char(current_date,'yyyy') as int)-2 " + "and pegawai.id = :pegawaiId " + "and komponenIndex.id in (:komponenIndexId) " + "order by jatahCuti.tahun, komponenIndex.komponenIndex") - public List> getAllJatahCuti(@Param("komponenIndexId") List komponenIndexId, + List> getAllJatahCuti(@Param("komponenIndexId") List komponenIndexId, @Param("pegawaiId") Integer pegawaiId); @Query("select l.tgl " + "from PlanningPegawaiStatus p " + "left join p.listTanggal l " + "where p.statusEnabled is true and l.statusEnabled is true " + "and p.approvalStatus = 1 and l.approvalStatus is true " + "and p.statusPegawaiPlanId = :idStatusPlan " + "and p.pegawaiId = :idPegawai " + "and to_char(l.tgl, 'yyyy-MM-dd') = :tglCuti " + "order by l.tgl") - public List getCutiTahunanDiTglCutiBersama(@Param("idStatusPlan") Integer idStatusPlan, + List getCutiTahunanDiTglCutiBersama(@Param("idStatusPlan") Integer idStatusPlan, @Param("idPegawai") Integer idPegawai, @Param("tglCuti") String tglCuti); @Query("select sum(jc.cutiTerpakai) from JatahCutiDanIzin jc " + "where jc.pegawaiId = :pegawaiId and jc.tahun < :tahun") - public Integer getHistoriCutiTerpakai(@Param("pegawaiId") Integer idPegawai, @Param("tahun") String tahun); + Integer getHistoriCutiTerpakai(@Param("pegawaiId") Integer idPegawai, @Param("tahun") String tahun); } diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/ListTanggalCutiDao.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/ListTanggalCutiDao.java index b534f13e..637de75f 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/ListTanggalCutiDao.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/ListTanggalCutiDao.java @@ -1,6 +1,5 @@ package com.jasamedika.medifirst2000.dao; - import java.util.Date; import java.util.List; import java.util.Map; @@ -14,52 +13,52 @@ import org.springframework.stereotype.Repository; import com.jasamedika.medifirst2000.entities.ListTanggalCuti; @Repository("ListTanggalCutiDao") -public interface ListTanggalCutiDao extends PagingAndSortingRepository{ +public interface ListTanggalCutiDao extends PagingAndSortingRepository { @Modifying @Query("update ListTanggalCuti m set m.statusEnabled=false where m.planningPegawaiStatusId =:id") void deleteDatas(@Param("id") String id); - - @Query("select distinct new Map(to_char(listTglCuti.tgl, 'yyyy') as tahun, "+ - "to_char(listTglCuti.tgl, 'MM') as bulan) "+ - "from ListTanggalCuti listTglCuti "+ - "where listTglCuti.statusEnabled is true "+ - "and listTglCuti.noRec in (:listNorec)") + + @Query("select distinct new Map(to_char(listTglCuti.tgl, 'yyyy') as tahun, " + + "to_char(listTglCuti.tgl, 'MM') as bulan) " + "from ListTanggalCuti listTglCuti " + + "where listTglCuti.statusEnabled is true " + "and listTglCuti.noRec in (:listNorec)") List> getListTglCutiByNorec(@Param("listNorec") List listNorec); - - @Query("select distinct new Map(to_char(kalender.tanggal, 'yyyy') as tahun,"+ - "to_char(kalender.tanggal, 'MM') as bulan) "+ - "from Kalender kalender "+ - "where kalender.statusEnabled is true "+ - "and kalender.id between :idKalAwal and :idKalAkhir "+ - "order by to_char(kalender.tanggal, 'yyyy'), to_char(kalender.tanggal, 'MM')") - List> getListTglCutiByNorec(@Param("idKalAwal") Integer idKalAwal, @Param("idKalAkhir") Integer idKalAkhir); - - @Query("select to_char(listTglCuti.tgl, 'yyyy-MM-dd') "+ - "from ListTanggalCuti listTglCuti "+ - "where listTglCuti.statusEnabled is true "+ - "and listTglCuti.noRec in (:listNorec)") + + @Query("select distinct new Map(to_char(kalender.tanggal, 'yyyy') as tahun," + + "to_char(kalender.tanggal, 'MM') as bulan) " + "from Kalender kalender " + + "where kalender.statusEnabled is true " + "and kalender.id between :idKalAwal and :idKalAkhir " + + "order by to_char(kalender.tanggal, 'yyyy'), to_char(kalender.tanggal, 'MM')") + List> getListTglCutiByNorec(@Param("idKalAwal") Integer idKalAwal, + @Param("idKalAkhir") Integer idKalAkhir); + + @Query("select to_char(listTglCuti.tgl, 'yyyy-MM-dd') " + "from ListTanggalCuti listTglCuti " + + "where listTglCuti.statusEnabled is true " + "and listTglCuti.noRec in (:listNorec)") List getListTglCutiByNorecDetail(@Param("listNorec") List listNorec); - - @Query("select kalender.id from Kalender kalender where kalender.statusEnabled is true and to_char(kalender.tanggal, 'yyyy-MM-dd') = :tglCuti") + + @Query("select kalender.id " + "from Kalender kalender " + "where kalender.statusEnabled is true " + + "and to_char(kalender.tanggal, 'yyyy-MM-dd') = :tglCuti") Integer getIdKalenderByTglCuti(@Param("tglCuti") String tglCuti); - - @Query("select mapStatus.shiftKerjaId "+ - "from MapStatusPegawaiToShiftKerja mapStatus "+ - "where mapStatus.statusEnabled is true "+ - "and mapStatus.statusPegawaiId = :idStatusExec "+ - "and mapStatus.kelompokShiftId = :idKelShift") + + @Query("select mapStatus.shiftKerjaId " + "from MapStatusPegawaiToShiftKerja mapStatus " + + "where mapStatus.statusEnabled is true " + "and mapStatus.statusPegawaiId = :idStatusExec " + + "and mapStatus.kelompokShiftId = :idKelShift") Integer getMappingShiftKerja(@Param("idStatusExec") Integer idStatusExec, @Param("idKelShift") Integer idKelShift); - - @Query("select pegawai.shiftKerjaId from Pegawai pegawai where pegawai.statusEnabled is true and pegawai.id = :idPegawai") + + @Query("select pegawai.shiftKerjaId " + "from Pegawai pegawai " + "where pegawai.statusEnabled is true " + + "and pegawai.id = :idPegawai") Integer getKelShift(@Param("idPegawai") Integer idPegawai); - - @Query("select listTgl.tgl " - + "from ListTanggalCuti listTgl " - + "left join listTgl.planningPegawaiStatus planning " - + "where planning.noRec = :noRec " - + "and planning.statusEnabled is true " + + @Query("select listTgl.tgl " + "from ListTanggalCuti listTgl " + "left join listTgl.planningPegawaiStatus planning " + + "where planning.noRec = :noRec " + "and planning.statusEnabled is true " + "and planning.approvalStatus <> 3") List getTglCuti(@Param("noRec") String noRec); - + + @Query("select tc from ListTanggalCuti tc " + "inner join tc.planningPegawaiStatus ps " + + "where tc.statusEnabled is true " + "and ps.statusEnabled is true " + "and ps.noSkId is null " + + "and ps.approvalStatus not in (1, 3) " + "and ps.pegawaiId = :idPegawai " + + "and ps.statusPegawaiPlanId = :idJenisPermohonan " + "and tc.tgl between :tglAwal and :tglAkhir") + List notApprovedByPermohonan(@Param("idPegawai") Integer idPegawai, + @Param("idJenisPermohonan") Integer idJenisPermohonan, @Param("tglAwal") Date tglAwal, + @Param("tglAkhir") Date tglAkhir); + } diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/MapKalenderToHariLiburDao.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/MapKalenderToHariLiburDao.java index 49bd9770..acd2859d 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/MapKalenderToHariLiburDao.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/MapKalenderToHariLiburDao.java @@ -1,43 +1,58 @@ package com.jasamedika.medifirst2000.dao; -import java.util.List; -import java.util.Map; - +import com.jasamedika.medifirst2000.dto.PresensiHariLibur; +import com.jasamedika.medifirst2000.entities.Kalender; +import com.jasamedika.medifirst2000.entities.MapKalenderToHariLibur; import org.springframework.data.jpa.repository.Query; import org.springframework.data.repository.PagingAndSortingRepository; import org.springframework.data.repository.query.Param; import org.springframework.stereotype.Repository; -import com.jasamedika.medifirst2000.entities.Kalender; -import com.jasamedika.medifirst2000.entities.MapKalenderToHariLibur; +import java.util.Date; +import java.util.List; +import java.util.Map; @Repository public interface MapKalenderToHariLiburDao extends PagingAndSortingRepository { - - @Query("select new map (model.id as id, model.namaExternal as name, model.tanggal.tanggal as tanggal) from MapKalenderToHariLibur model where model.statusEnabled is true") - public List> getAllByStatusEnabled(); - - @Query("select model from Kalender model where model.statusEnabled is true and to_char(tanggal,'yyyy-MM-dd') = :tanggal") - public Kalender getKalender(@Param("tanggal") String tgl); - - @Query("select to_char(kalender.tanggal,'yyyy-MM-dd') "+ - "from MapKalenderToHariLibur mapLibur "+ - "inner join mapLibur.tanggal kalender "+ - "inner join mapLibur.hariLibur hariLibur "+ - "where hariLibur.id in (8,17) "+ - "and to_char(kalender.tanggal,'yyyy')=:tahun "+ - "and mapLibur.statusEnabled is true") - public List getTglCutiBersama(@Param("tahun") String tahun); - + + @Query("select new map (model.id as id, model.namaExternal as name, model.tanggal.tanggal as tanggal) " + + "from MapKalenderToHariLibur model where model.statusEnabled is true") + List> getAllByStatusEnabled(); + + @Query("select model from Kalender model " + + "where model.statusEnabled is true and to_char(tanggal,'yyyy-MM-dd') = :tanggal") + Kalender getKalender(@Param("tanggal") String tgl); + + @Query("select to_char(kalender.tanggal,'yyyy-MM-dd') " + "from MapKalenderToHariLibur mapLibur " + + "inner join mapLibur.tanggal kalender " + "inner join mapLibur.hariLibur hariLibur " + + "where hariLibur.id in (8,17) " + "and to_char(kalender.tanggal,'yyyy')=:tahun " + + "and mapLibur.statusEnabled is true") + List getTglCutiBersama(@Param("tahun") String tahun); + @Query("select new Map(model.statusEnabled as statusEnabled,model.namaExternal as namaExternal," + "to_char(kalender.tanggal,'dd-MM-yyyy') as tanggal,to_char(kalender.tanggal,'yyyy-MM-dd') as tanggalId," + "model.reportDisplay as reportDisplay,model.id as id,model.kodeExternal as kodeExternal," - + "hariLibur.id as hariLiburId,hariLibur.namaHariLibur as hariLiburName," - + "model.noRec as noRec) " - + "from MapKalenderToHariLibur model " - + "inner join model.tanggal kalender " - + "inner join model.hariLibur hariLibur " - + "where model.statusEnabled is true " + + "hariLibur.id as hariLiburId,hariLibur.namaHariLibur as hariLiburName," + "model.noRec as noRec) " + + "from MapKalenderToHariLibur model " + "inner join model.tanggal kalender " + + "inner join model.hariLibur hariLibur " + "where model.statusEnabled is true " + "and to_char(kalender.tanggal,'yyyy')>=:tahun") - public List> getMappingHariLibur(@Param("tahun") String tahun); + List> getMappingHariLibur(@Param("tahun") String tahun); + + @Query("select distinct new com.jasamedika.medifirst2000.dto.PresensiHariLibur(" + + "pg.id as idPegawai, pg.namaLengkap as namaLengkap, " + "kld.tanggal as tanggal, " + + "mkl.isCutiBersamaDitangguhkan as isCBDitangguhkan) " + + "from Pegawai pg, Habsen hab, MapKalenderToHariLibur mkl " + "inner join mkl.tanggal kld " + + "where pg.id = :idPegawai " + "and pg.idFinger = hab.empl_code " + + "and cast(hab.tr_date as date) = kld.tanggal " + "and mkl.hariLiburId = :idHariLibur " + + "and kld.tanggal between :tglAwal and :tglAkhir") + List getPresensiByTahun(@Param("idPegawai") Integer idPegawai, + @Param("idHariLibur") Integer idHariLibur, @Param("tglAwal") Date tglAwal, + @Param("tglAkhir") Date tglAkhir); + + @Query("select mkl from MapKalenderToHariLibur mkl " + "inner join mkl.tanggal kld " + + "where mkl.statusEnabled is true " + "and kld.tanggal between :tglAwal and :tglAkhir " + + "and mkl.hariLiburId = :idHariLibur") + List getByTahun(@Param("idHariLibur") Integer idHariLibur, @Param("tglAwal") Date tglAwal, + @Param("tglAkhir") Date tglAkhir); + } diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/PlanningPegawaiStatusDao.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/PlanningPegawaiStatusDao.java index 3955c7c7..258c3128 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/PlanningPegawaiStatusDao.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/PlanningPegawaiStatusDao.java @@ -1,673 +1,322 @@ package com.jasamedika.medifirst2000.dao; -import java.util.Date; import java.util.List; import java.util.Map; +import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.Query; -import org.springframework.data.repository.PagingAndSortingRepository; import org.springframework.data.repository.query.Param; import org.springframework.stereotype.Repository; import com.jasamedika.medifirst2000.entities.PlanningPegawaiStatus; @Repository("PlanningPegawaiStatusDao") -public interface PlanningPegawaiStatusDao extends PagingAndSortingRepository{ - - @Query("select a.noPlanning " - + "from PlanningPegawaiStatus a " - + "where a.noPlanning LIKE %:kode% " +public interface PlanningPegawaiStatusDao extends JpaRepository { + + @Query("select a.noPlanning " + "from PlanningPegawaiStatus a " + "where a.noPlanning LIKE %:kode% " + "order by a.noPlanning asc") List noPlanning(@Param("kode") String kode); - @Query("select count(a.noPlanning) " - + "from PlanningPegawaiStatus a " - + "where a.noPlanning LIKE %:kode% ") - Long countNoPlanning(@Param("kode") String kode) ; - - @Query("select NEW Map (" - + "a.id as id, " - + "a.namaLengkap as namaLengkap," - + "c.id as kategoriPegawaiId) " - + "from MapPegawaiJabatanToUnitKerja m " - + "left join m.pegawai a " - + "left join m.subUnitKerjaPegawai b " - + "left join m.unitKerjaPegawai e " - + "left join a.kategoryPegawai c " - + "left join a.statusPegawai d " - + "where m.isPrimary is true " - + "and m.statusEnabled is true " - + "and e.id=:id " - + "and c.id!=11 " + @Query("select NEW Map (" + "a.id as id, " + "a.namaLengkap as namaLengkap," + "c.id as kategoriPegawaiId) " + + "from MapPegawaiJabatanToUnitKerja m " + "left join m.pegawai a " + "left join m.subUnitKerjaPegawai b " + + "left join m.unitKerjaPegawai e " + "left join a.kategoryPegawai c " + "left join a.statusPegawai d " + + "where m.isPrimary is true " + "and m.statusEnabled is true " + "and e.id=:id " + "and c.id!=11 " + "and d.id=2") - List> getListPegawai( - @Param("id") Integer id); - - @Query("select NEW Map (" - + "a.id as id," - + "a.statusPegawai as statusPegawai) " - + "from StatusPegawai a " - + "where a.id=1 or " - + "a.id=24 or " - + "a.id=25 or " - + "a.id=26 or " - + "a.id=27 or " - + "a.id=28 or " + List> getListPegawai(@Param("id") Integer id); + + @Query("select NEW Map (" + "a.id as id," + "a.statusPegawai as statusPegawai) " + "from StatusPegawai a " + + "where a.id=1 or " + "a.id=24 or " + "a.id=25 or " + "a.id=26 or " + "a.id=27 or " + "a.id=28 or " + "a.id=29") List> getListStatusPegawai(); - - @Query("select NEW Map (" - + "a.nipPns as nip," - + "a.id as idPegawai," - + "b.id as jabatanId," - + "b.namaJabatan as jabatan," - + "d.id as unitKerjaId," - + "d.name as unitKerja," - + "c.id as subUnitKerjaId," - + "c.name as subUnitKerja," - + "a.tglMasuk as tglMasuk," - + "a.alamat as alamat," - + "a.noHandphone as noHandphone," - + "kategori.id as kategoriPegawaiId ) " - + "from MapPegawaiJabatanToUnitKerja m " - + "left join m.pegawai a " - + "left join m.jabatan b " - + "left join a.kategoryPegawai kategori " - + "left join m.subUnitKerjaPegawai c " - + "left join m.unitKerjaPegawai d " - + "where m.isPrimary is true " - + "and m.statusEnabled is true " + + @Query("select NEW Map (" + "a.nipPns as nip," + "a.id as idPegawai," + "b.id as jabatanId," + + "b.namaJabatan as jabatan," + "d.id as unitKerjaId," + "d.name as unitKerja," + "c.id as subUnitKerjaId," + + "c.name as subUnitKerja," + "a.tglMasuk as tglMasuk," + "a.alamat as alamat," + + "a.noHandphone as noHandphone," + "kategori.id as kategoriPegawaiId ) " + + "from MapPegawaiJabatanToUnitKerja m " + "left join m.pegawai a " + "left join m.jabatan b " + + "left join a.kategoryPegawai kategori " + "left join m.subUnitKerjaPegawai c " + + "left join m.unitKerjaPegawai d " + "where m.isPrimary is true " + "and m.statusEnabled is true " + "and a.id=:id") - Map getDataPermohonanStatus( - @Param("id") Integer id); - - @Query("select NEW Map(a.nipPns as nip,a.id as idPegawai,a.tglMasuk as tglMasuk,a.alamat as alamat,a.noHandphone as noHandphone,b.id as kategoriPegawaiId) " + Map getDataPermohonanStatus(@Param("id") Integer id); + + @Query("select NEW Map(a.nipPns as nip," + "a.id as idPegawai" + ",a.tglMasuk as tglMasuk" + ",a.alamat as alamat," + + "a.noHandphone as noHandphone," + "b.id as kategoriPegawaiId) " + "from Pegawai a left join a.kategoryPegawai b where a.id=:id") Map getDataMapPermohonanStatus(@Param("id") Integer id); - //--------------------------CUTI TAHUNAN---------------------- - @Query("select Count(a.id) " - + "from MapKalenderToHariLibur a " - + "left join a.hariLibur b " - + "left join a.tanggal c " - + "where b.id=:id and year(c.tanggal)=:thisYear") - Long getCutiBersama( - @Param("id") Integer id, - @Param("thisYear") Integer thisYear); - - //--------------------------CUTI MELAHIRKAN----------------------// - - @Query("select NEW Map (" - + "a.id as id," - + "a.kuotaTotalHari as kuotaTotalHari," - + "a.kuotaMinHariTake as kuotaMinHariTake," - + "a.qtyMaxTake as qtyMaxTake," - + "a.isAkumulasi as isAkumulasi) " - + "from PegawaiSKCuti a " - + "left join a.statusPegawai b " + @Query("select NEW Map (" + "a.id as id," + "a.kuotaTotalHari as kuotaTotalHari," + + "a.kuotaMinHariTake as kuotaMinHariTake," + "a.qtyMaxTake as qtyMaxTake," + + "a.isAkumulasi as isAkumulasi) " + "from PegawaiSKCuti a " + "left join a.statusPegawai b " + "where b.id=:statusPegawaiId") - Map getJatahCutiMelahirkan( - @Param("statusPegawaiId") Integer statusPegawaiId); - - //---------------------APPROVAL--------------------------------- - - @Query("select NEW Map (" - + "a.noRec as noRec," - + "a.noPlanning as noPlanning," - + "a.approvalStatus as approvalStatus," - + "a.deskripsiStatusPegawaiPlan as deskripsiStatusPegawaiPlan," - + "a.keteranganLainyaPlan as keteranganLainyaPlan," - + "a.tglPengajuan as tglPengajuan," - + "b.id as pegwaiId," - + "b.namaLengkap as namaPegawai," - + "c.id as statusPegawaiId," - + "c.statusPegawai as statusPegawai," - + "d.id as unitKerjaId," - + "d.name as unitKerja," - + "d.id as unitKerjaId," - + "f.namaJabatan as namaJabatan) " - + "from PlanningPegawaiStatus a, MapPegawaiJabatanToUnitKerja m " - + "left join a.pegawai b " - + "left join a.statusPegawaiPlan c " - + "left join m.subUnitKerjaPegawai g " - + "left join m.unitKerjaPegawai d " - + "left join a.noSk e " - + "left join m.jabatan f " - + "where m.pegawaiId = b.id " - + "and m.isPrimary is true " - + "and m.statusEnabled is true " - + "and e.noRec is null " - + "and a.statusEnabled is true " - + "and d.id=:id " + Map getJatahCutiMelahirkan(@Param("statusPegawaiId") Integer statusPegawaiId); + + @Query("select NEW Map (" + "a.noRec as noRec," + "a.noPlanning as noPlanning," + + "a.approvalStatus as approvalStatus," + "a.deskripsiStatusPegawaiPlan as deskripsiStatusPegawaiPlan," + + "a.keteranganLainyaPlan as keteranganLainyaPlan," + "a.tglPengajuan as tglPengajuan," + + "b.id as pegwaiId," + "b.namaLengkap as namaPegawai," + "c.id as statusPegawaiId," + + "c.statusPegawai as statusPegawai," + "d.id as unitKerjaId," + "d.name as unitKerja," + + "d.id as unitKerjaId," + "f.namaJabatan as namaJabatan) " + + "from PlanningPegawaiStatus a, MapPegawaiJabatanToUnitKerja m " + "left join a.pegawai b " + + "left join a.statusPegawaiPlan c " + "left join m.subUnitKerjaPegawai g " + + "left join m.unitKerjaPegawai d " + "left join a.noSk e " + "left join m.jabatan f " + + "where m.pegawaiId = b.id " + "and m.isPrimary is true " + "and m.statusEnabled is true " + + "and e.noRec is null " + "and a.statusEnabled is true " + "and d.id=:id " + "and (c.id=1 or c.id=24 or c.id=25 or c.id=26 or c.id=27 or c.id=28 or c.id=29)") - List> getListPermohonanStatus( - @Param("id") Integer id); - - @Query("select NEW Map (" - + "a.noRec as noRec," - + "a.noPlanning as noPlanning," - + "a.approvalStatus as approvalStatus," + List> getListPermohonanStatus(@Param("id") Integer id); + + String planningStatusPegawai = "select NEW Map (" + "a.noRec as noRec," + "a.noPlanning as noPlanning," + "a.deskripsiStatusPegawaiPlan as deskripsiStatusPegawaiPlan," - + "a.keteranganLainyaPlan as keteranganLainyaPlan," - + "a.tglPengajuan as tglPengajuan," - + "b.id as pegwaiId," - + "b.namaLengkap as namaPegawai," - + "c.id as statusPegawaiId," - + "c.statusPegawai as statusPegawai," - + "d.id as unitKerjaId," - + "d.name as unitKerja," - + "f.namaJabatan as namaJabatan) " - + "from PlanningPegawaiStatus a, MapPegawaiJabatanToUnitKerja m " - + "left join a.pegawai b " - + "left join a.statusPegawaiPlan c " - + "left join m.subUnitKerjaPegawai g " - + "left join m.unitKerjaPegawai d " - + "left join a.noSk e " - + "left join m.jabatan f " - + "where m.pegawaiId = b.id " - + "and m.isPrimary is true " - + "and m.statusEnabled is true " - + "and e.noRec is null " - + "and a.statusEnabled is true " - + "and b.id=:id ") - List> getListPermohonanStatusByPegawai2( - @Param("id") Integer id); - - String planningStatusPegawai = "select NEW Map (" - + "a.noRec as noRec," - + "a.noPlanning as noPlanning," - + "a.deskripsiStatusPegawaiPlan as deskripsiStatusPegawaiPlan," - + "a.keteranganLainyaPlan as keteranganLainyaPlan," - + "a.tglPengajuan as tglPengajuan," - + "b.id as pegwaiId," - + "a.approvalStatus as approvalStatus, " - + "b.namaLengkap as namaPegawai," - + "c.id as statusPegawaiId," - + "c.statusPegawai as statusPegawai," - + "d.id as unitKerjaId," - + "d.name as unitKerja," - + "g.id as subUnitKerjaId," - + "g.name as subUnitKerja," - + "f.namaJabatan as namaJabatan) " - + "from PlanningPegawaiStatus a, MapPegawaiJabatanToUnitKerja m " - + "left join a.pegawai b " - + "left join a.statusPegawaiPlan c " - + "left join m.subUnitKerjaPegawai g " - + "left join m.unitKerjaPegawai d " - + "left join a.noSk e " - + "left join m.jabatan f " - + "where m.pegawaiId = b.id " - + "and m.isPrimary is true " - + "and m.statusEnabled is true " - + "and e.noRec is null " - + "and a.statusEnabled is true " - + "and a.approvalStatus =1 " - + "and b.id=:id "; - - @Query( planningStatusPegawai - + "and " - + "(c.id=1 or " - + "c.id=24 or " - + "c.id=25 or " - + "c.id=26 or " - + "c.id=27 or " - + "c.id=28 or " - + "c.id=29)") - List> getListPermohonanStatusByPegawai( - @Param("id") Integer id); - - @Query(planningStatusPegawai - + "and " - + "c.statusPegawai=:statusPegawai and " + + "a.keteranganLainyaPlan as keteranganLainyaPlan," + "a.tglPengajuan as tglPengajuan," + + "b.id as pegwaiId," + "a.approvalStatus as approvalStatus, " + "b.namaLengkap as namaPegawai," + + "c.id as statusPegawaiId," + "c.statusPegawai as statusPegawai," + "d.id as unitKerjaId," + + "d.name as unitKerja," + "g.id as subUnitKerjaId," + "g.name as subUnitKerja," + + "f.namaJabatan as namaJabatan) " + "from PlanningPegawaiStatus a, MapPegawaiJabatanToUnitKerja m " + + "left join a.pegawai b " + "left join a.statusPegawaiPlan c " + "left join m.subUnitKerjaPegawai g " + + "left join m.unitKerjaPegawai d " + "left join a.noSk e " + "left join m.jabatan f " + + "where m.pegawaiId = b.id " + "and m.isPrimary is true " + "and m.statusEnabled is true " + + "and e.noRec is null " + "and a.statusEnabled is true " + "and a.approvalStatus =1 " + "and b.id=:id "; + + @Query(planningStatusPegawai + "and " + "(c.id=1 or " + "c.id=24 or " + "c.id=25 or " + "c.id=26 or " + + "c.id=27 or " + "c.id=28 or " + "c.id=29)") + List> getListPermohonanStatusByPegawai(@Param("id") Integer id); + + @Query(planningStatusPegawai + "and " + "c.statusPegawai=:statusPegawai and " + "to_char(a.tglKeputusan,'yyyy')=to_char(current_timestamp,'yyyy') ") - List> getListPermohonanStatusByPegawai(@Param("id") Integer id, @Param("statusPegawai") String statusPegawai); - - @Query(planningStatusPegawai - + "and " - + "c.statusPegawai=:statusPegawai") - List> getListPermohonanStatusByPegawaiAll(@Param("id") Integer id, @Param("statusPegawai") String statusPegawai); - - @Query("select NEW Map (" - + "a.noRec as noRec," - + "a.noPlanning as noPlanning," + List> getListPermohonanStatusByPegawai(@Param("id") Integer id, + @Param("statusPegawai") String statusPegawai); + + @Query(planningStatusPegawai + "and " + "c.statusPegawai=:statusPegawai") + List> getListPermohonanStatusByPegawaiAll(@Param("id") Integer id, + @Param("statusPegawai") String statusPegawai); + + @Query("select NEW Map (" + "a.noRec as noRec," + "a.noPlanning as noPlanning," + "a.deskripsiStatusPegawaiPlan as deskripsiStatusPegawaiPlan," - + "a.keteranganLainyaPlan as keteranganLainyaPlan," - + "a.tglPengajuan as tglPengajuan," - + "b.id as pegwaiId," - + "a.approvalStatus as approvalStatus, " - + "b.namaLengkap as namaPegawai," - + "c.id as statusPegawaiId," - + "c.statusPegawai as statusPegawai," - + "d.id as unitKerjaId," - + "d.name as unitKerja," - + "g.id as subUnitKerjaId," - + "g.name as subUnitKerja," - + "f.namaJabatan as namaJabatan) " - + "from PlanningPegawaiStatus a, MapPegawaiJabatanToUnitKerja m " - + "left join a.pegawai b " - + "left join a.statusPegawaiPlan c " - + "left join a.noSk e " - + "left join m.jabatan f " - + "left join m.subUnitKerjaPegawai g " - + "left join m.unitKerjaPegawai d " - + "where m.pegawaiId = b.id " - + "and m.isPrimary is true " - + "and m.statusEnabled is true " - + "and e.noRec is null " - + "and a.statusEnabled is true " - + "and a.approvalStatus =1 " + + "a.keteranganLainyaPlan as keteranganLainyaPlan," + "a.tglPengajuan as tglPengajuan," + + "b.id as pegwaiId," + "a.approvalStatus as approvalStatus, " + "b.namaLengkap as namaPegawai," + + "c.id as statusPegawaiId," + "c.statusPegawai as statusPegawai," + "d.id as unitKerjaId," + + "d.name as unitKerja," + "g.id as subUnitKerjaId," + "g.name as subUnitKerja," + + "f.namaJabatan as namaJabatan) " + "from PlanningPegawaiStatus a, MapPegawaiJabatanToUnitKerja m " + + "left join a.pegawai b " + "left join a.statusPegawaiPlan c " + "left join a.noSk e " + + "left join m.jabatan f " + "left join m.subUnitKerjaPegawai g " + "left join m.unitKerjaPegawai d " + + "where m.pegawaiId = b.id " + "and m.isPrimary is true " + "and m.statusEnabled is true " + + "and e.noRec is null " + "and a.statusEnabled is true " + "and a.approvalStatus =1 " + "and (c.id=1 or c.id=24 or c.id=25 or c.id=26 or c.id=27 or c.id=28 or c.id=29)") List> getListPermohonanStatusAll(); - - @Query("select NEW Map (" - + "a.noRec as noRec," - + "a.noPlanning as noPlanning," + + @Query("select NEW Map (" + "a.noRec as noRec," + "a.noPlanning as noPlanning," + "a.deskripsiStatusPegawaiPlan as deskripsiStatusPegawaiPlan," + "a.keteranganLainyaPlan as keteranganLainyaPlan," + "a.deskripsiStatusPegawaiExec as deskripsiStatusPegawaiExec," - + "a.keteranganLainyaExec as keteranganLainyaExec," - + "a.tglPengajuan as tglPengajuan," - + "a.tglKeputusan as tglKeputusan," - + "a.approvalStatus as approvalStatus," - + "b.id as pegwaiId," - + "b.namaLengkap as namaPegawai," - + "b.nipPns as nip," - + "c.id as statusPegawaiId," - + "c.statusPegawai as statusPegawai," - + "d.id as unitKerjaId," - + "d.name as unitKerja," - + "f.namaJabatan as namaJabatan) " - + "from PlanningPegawaiStatus a, MapPegawaiJabatanToUnitKerja m " - + "left join a.pegawai b " - + "left join a.statusPegawaiPlan c " - + "left join m.subUnitKerjaPegawai g " - + "left join m.unitKerjaPegawai d " - + "left join a.noSk e " - + "left join m.jabatan f " - + "where m.pegawaiId = b.id " - + "and m.isPrimary is true " - + "and m.statusEnabled is true " - + "and e.noRec is null " - + "and (c.id=1 or c.id=24 or c.id=25 or c.id=26 or c.id=27 or c.id=28 or c.id=29)") + + "a.keteranganLainyaExec as keteranganLainyaExec," + "a.tglPengajuan as tglPengajuan," + + "a.tglKeputusan as tglKeputusan," + "a.approvalStatus as approvalStatus," + "b.id as pegwaiId," + + "b.namaLengkap as namaPegawai," + "b.nipPns as nip," + "c.id as statusPegawaiId," + + "c.statusPegawai as statusPegawai," + "d.id as unitKerjaId," + "d.name as unitKerja," + + "f.namaJabatan as namaJabatan) " + "from PlanningPegawaiStatus a, MapPegawaiJabatanToUnitKerja m " + + "left join a.pegawai b " + "left join a.statusPegawaiPlan c " + "left join m.subUnitKerjaPegawai g " + + "left join m.unitKerjaPegawai d " + "left join a.noSk e " + "left join m.jabatan f " + + "where m.pegawaiId = b.id " + "and m.isPrimary is true " + "and m.statusEnabled is true " + + "and e.noRec is null " + "and (c.id=1 or c.id=24 or c.id=25 or c.id=26 or c.id=27 or c.id=28 or c.id=29)") List> getApprovalStatus(); - - @Query("select NEW Map (" - + "b.id as id) " - + "from Pegawai a " - + "left join a.shiftKerja b " - + "where a.id=:id") - Map getKelompokShift( - @Param("id") Integer id); - - @Query("select NEW Map (" - + "a.id as id," - + "a.factorRate as factorRate," - + "a.operatorFactorRate as operatorFactorRate," - + "a.komponenIndex as komponenIndex) " - + "from KomponenIndex a " - + "where a.id=:id") - Map getKomponenIndex( - @Param("id") Integer id); - - - @Query("select pegawai.id "+ - "from PegawaiSisaCuti psc "+ - "left join psc.pegawai pegawai "+ - "where psc.sisaCuti=:sisaCuti") - List getIdPegawai( - @Param("sisaCuti") Integer sisaCuti); - - @Query("select count(jadwalKerja.id) "+ - "from PegawaiJadwalKerja jadwalKerja "+ - "left join jadwalKerja.pegawai pegawai "+ - "left join jadwalKerja.tanggal kalender "+ - "left join jadwalKerja.shift shift "+ - "where to_char(kalender.tanggal,'yyyy-MM-dd') between :startDate and :endDate "+ - "and shift.id not in (:listKomponenIndexId) "+ - "and pegawai.id = :pegawaiId") - Integer getDayHadir(@Param("pegawaiId") Integer pegawaiId,@Param("listKomponenIndexId") List listKomponenIndexId,@Param("startDate") String startDate,@Param("endDate") String endDate); - - @Query("select new map (list.noRec as noRec, list.tgl as tgl) from ListTanggalCuti list where list.planningPegawaiStatusId = :noRec and list.statusEnabled is true order by list.tgl asc") - List> getListTanggalCuti(@Param("noRec") String noRec); - - @Query("select new map (list.noRec as noRec, list.tgl as tgl) from ListTanggalCuti list where list.approvalStatus is true and list.planningPegawaiStatusId = :noRec and list.statusEnabled is true order by list.tgl") - List> getListTanggalCutiApproved(@Param("noRec") String noRec); - - @Query("select list.tgl as tgl " - + "from ListTanggalCuti list " - + "where list.planningPegawaiStatusId in (:listNorec) " - + "and list.statusEnabled is true " - + "and list.tgl in (:listTgl) " - + "and list.approvalStatus is true " - + "and list.planningPegawaiStatus.approvalStatus = 1") - List getListAllTanggalCutiApproved(@Param("listNorec") List listNorec, @Param("listTgl") List listTgl); - - @Query("select list.tgl as tgl " - + "from ListTanggalCuti list " - + "where list.planningPegawaiStatusId in (:listNorec) " - + "and list.statusEnabled is true " - + "and list.tgl in (:listTgl) " - + "and list.planningPegawaiStatus.approvalStatus = 0") - List getListAllTanggalCutiNotYetApprove(@Param("listNorec") List listNorec, @Param("listTgl") List listTgl); - - @Query("select distinct new Map (tglCuti.tgl as tglCuti) "+ - "from MapPegawaiJabatanToUnitKerja mapPegawaiPelimpah, "+ - "PlanningPegawaiStatus planningCuti "+ - "left join mapPegawaiPelimpah.pegawai pegawaiPelimpah "+ - "left join planningCuti.listTanggal tglCuti "+ - "where mapPegawaiPelimpah.pegawaiId = planningCuti.pegawaiId "+ - "and planningCuti.pegawaiId = pegawaiPelimpah.id "+ - "and planningCuti.noRec = :noRecPlanning "+ - "and pegawaiPelimpah.id = :idPegawaiPelimpah "+ - "and mapPegawaiPelimpah.statusEnabled is true "+ - "and planningCuti.statusEnabled is true "+ - "and pegawaiPelimpah.statusEnabled is true "+ - "and tglCuti.statusEnabled is true "+ - "order by tglCuti.tgl asc") - public List> getListTglCutiPelimpah(@Param("noRecPlanning") String noRecPlanning, @Param("idPegawaiPelimpah") Integer idPegawaiPelimpah); - -// @Query("select new Map (pegawaiPelimpah.namaLengkap as namaPegawai, "+ -// "pegawaiPelimpah.nipPns as nipPegawai, "+ -// "jabatanPelimpah.namaJabatan as jabatanPegawai, "+ -// "atasanLangsung.namaLengkap as namaAtasanLangsung, "+ -// "atasanLangsung.nipPns as nipAtasanLangsung) "+ -// "from MapPegawaiJabatanToUnitKerja mapPegawaiPelimpah, "+ -// "MappingPegawaiToAtasan mapAtasan "+ -// "left join mapPegawaiPelimpah.pegawai pegawaiPelimpah "+ -// "left join mapPegawaiPelimpah.jabatan jabatanPelimpah "+ -// "left join mapAtasan.atasanLangsung atasanLangsung "+ -// "where mapAtasan.pegawai = pegawaiPelimpah "+ -// "and mapPegawaiPelimpah.pegawai = mapAtasan.pegawai "+ -// "and pegawaiPelimpah.id = :idPegawaiPelimpah "+ -// "and mapPegawaiPelimpah.jabatanId = :idJabatanPelimpah "+ -// "and mapPegawaiPelimpah.statusEnabled is true "+ -// "and mapAtasan.statusEnabled is true "+ -// "and pegawaiPelimpah.statusEnabled is true "+ -// "and jabatanPelimpah.statusEnabled is true "+ -// "and atasanLangsung.statusEnabled is true") - @Query("select new Map (pegawaiPelimpah.namaLengkap as namaPegawai, "+ - "pegawaiPelimpah.nipPns as nipPegawai, "+ - "jabatanPelimpah.namaJabatan as jabatanPegawai, "+ - "atasanLangsung.namaLengkap as namaAtasanLangsung, "+ - "atasanLangsung.nipPns as nipAtasanLangsung) "+ - "from MapPegawaiJabatanToUnitKerja mapPegawaiPelimpah "+ - "left join mapPegawaiPelimpah.pegawai pegawaiPelimpah "+ - "left join mapPegawaiPelimpah.jabatan jabatanPelimpah "+ - "left join mapPegawaiPelimpah.atasanLangsung atasanLangsung "+ - "where pegawaiPelimpah.id = :idPegawaiPelimpah "+ - "and mapPegawaiPelimpah.jabatanId = :idJabatanPelimpah "+ - "and mapPegawaiPelimpah.statusEnabled is true "+ - "and pegawaiPelimpah.statusEnabled is true "+ - "and jabatanPelimpah.statusEnabled is true "+ - "and atasanLangsung.statusEnabled is true") - public Map getDataPelimpah(@Param("idPegawaiPelimpah") Integer idPegawaiPelimpah, @Param("idJabatanPelimpah") Integer idJabatanPelimpah); - - @Query("select new Map(pegawaiDilimpah.namaLengkap as namaPegawai, "+ - "pegawaiDilimpah.nipPns as nipPegawai, "+ - "coalesce(pangkatPegawaiDilimpah.namaPangkat, '-') as pangkatPegawai, "+ - "coalesce(golonganPegawaiDilimpah.name, '-') as golonganPegawai, "+ - "jabatanPegawaiDilimpah.namaJabatan as jabatanPegawai) "+ - "from MapPegawaiJabatanToUnitKerja mapPegawaiDilimpah "+ - "left join mapPegawaiDilimpah.pegawai pegawaiDilimpah "+ - "left join mapPegawaiDilimpah.jabatan jabatanPegawaiDilimpah "+ - "left join pegawaiDilimpah.pangkat pangkatPegawaiDilimpah "+ - "left join pegawaiDilimpah.Golongan golonganPegawaiDilimpah "+ - "where pegawaiDilimpah.id = :idPegawaiDilimpah "+ - "and mapPegawaiDilimpah.statusEnabled is true "+ - "and pegawaiDilimpah.statusEnabled is true "+ - "and jabatanPegawaiDilimpah.statusEnabled is true "+ -// "and pangkatPegawaiDilimpah.statusEnabled is true "+ -// "and golonganPegawaiDilimpah.statusEnabled is true "+ - "and mapPegawaiDilimpah.isPrimary is true") - public Map getDataDilimpah(@Param("idPegawaiDilimpah") Integer idPegawaiDilimpah); - - @Query("select count(l.tgl) from PlanningPegawaiStatus p " - + "left join p.listTanggal l " - + "where p.statusEnabled is true " - + "and l.statusEnabled is true " + + @Query("select NEW Map (" + "b.id as id) " + "from Pegawai a " + "left join a.shiftKerja b " + "where a.id=:id") + Map getKelompokShift(@Param("id") Integer id); + + @Query("select NEW Map (" + "a.id as id," + "a.factorRate as factorRate," + + "a.operatorFactorRate as operatorFactorRate," + "a.komponenIndex as komponenIndex) " + + "from KomponenIndex a " + "where a.id=:id") + Map getKomponenIndex(@Param("id") Integer id); + + @Query("select new map (list.noRec as noRec, list.tgl as tgl) " + "from ListTanggalCuti list " + + "where list.planningPegawaiStatusId = :noRec " + "and list.statusEnabled is true " + + "order by list.tgl asc") + List> getListTanggalCuti(@Param("noRec") String noRec); + + @Query("select new map (list.noRec as noRec, list.tgl as tgl) " + "from ListTanggalCuti list " + + "where list.approvalStatus is true " + "and list.planningPegawaiStatusId = :noRec" + + " and list.statusEnabled is true " + "order by list.tgl") + List> getListTanggalCutiApproved(@Param("noRec") String noRec); + + @Query("select distinct new Map (tglCuti.tgl as tglCuti) " + + "from MapPegawaiJabatanToUnitKerja mapPegawaiPelimpah, " + "PlanningPegawaiStatus planningCuti " + + "left join mapPegawaiPelimpah.pegawai pegawaiPelimpah " + "left join planningCuti.listTanggal tglCuti " + + "where mapPegawaiPelimpah.pegawaiId = planningCuti.pegawaiId " + + "and planningCuti.pegawaiId = pegawaiPelimpah.id " + "and planningCuti.noRec = :noRecPlanning " + + "and pegawaiPelimpah.id = :idPegawaiPelimpah " + "and mapPegawaiPelimpah.statusEnabled is true " + + "and planningCuti.statusEnabled is true " + "and pegawaiPelimpah.statusEnabled is true " + + "and tglCuti.statusEnabled is true " + "order by tglCuti.tgl asc") + List> getListTglCutiPelimpah(@Param("noRecPlanning") String noRecPlanning, + @Param("idPegawaiPelimpah") Integer idPegawaiPelimpah); + + @Query("select new Map (pegawaiPelimpah.namaLengkap as namaPegawai, " + "pegawaiPelimpah.nipPns as nipPegawai, " + + "jabatanPelimpah.namaJabatan as jabatanPegawai, " + "atasanLangsung.namaLengkap as namaAtasanLangsung, " + + "atasanLangsung.nipPns as nipAtasanLangsung) " + "from MapPegawaiJabatanToUnitKerja mapPegawaiPelimpah " + + "left join mapPegawaiPelimpah.pegawai pegawaiPelimpah " + + "left join mapPegawaiPelimpah.jabatan jabatanPelimpah " + + "left join mapPegawaiPelimpah.atasanLangsung atasanLangsung " + + "where pegawaiPelimpah.id = :idPegawaiPelimpah " + + "and mapPegawaiPelimpah.jabatanId = :idJabatanPelimpah " + "and mapPegawaiPelimpah.statusEnabled is true " + + "and pegawaiPelimpah.statusEnabled is true " + "and jabatanPelimpah.statusEnabled is true " + + "and atasanLangsung.statusEnabled is true") + Map getDataPelimpah(@Param("idPegawaiPelimpah") Integer idPegawaiPelimpah, + @Param("idJabatanPelimpah") Integer idJabatanPelimpah); + + @Query("select new Map(pegawaiDilimpah.namaLengkap as namaPegawai, " + "pegawaiDilimpah.nipPns as nipPegawai, " + + "coalesce(pangkatPegawaiDilimpah.namaPangkat, '-') as pangkatPegawai, " + + "coalesce(golonganPegawaiDilimpah.name, '-') as golonganPegawai, " + + "jabatanPegawaiDilimpah.namaJabatan as jabatanPegawai) " + + "from MapPegawaiJabatanToUnitKerja mapPegawaiDilimpah " + + "left join mapPegawaiDilimpah.pegawai pegawaiDilimpah " + + "left join mapPegawaiDilimpah.jabatan jabatanPegawaiDilimpah " + + "left join pegawaiDilimpah.pangkat pangkatPegawaiDilimpah " + + "left join pegawaiDilimpah.Golongan golonganPegawaiDilimpah " + + "where pegawaiDilimpah.id = :idPegawaiDilimpah " + "and mapPegawaiDilimpah.statusEnabled is true " + + "and pegawaiDilimpah.statusEnabled is true " + "and jabatanPegawaiDilimpah.statusEnabled is true " + + "and mapPegawaiDilimpah.isPrimary is true") + Map getDataDilimpah(@Param("idPegawaiDilimpah") Integer idPegawaiDilimpah); + + @Query("select count(l.tgl) from PlanningPegawaiStatus p " + "left join p.listTanggal l " + + "where p.statusEnabled is true " + "and l.statusEnabled is true " + "and p.approvalStatus = 0 and l.approvalStatus is null " + "and p.pegawaiId = :idPegawai and p.statusPegawaiPlanId = :idPlan") -// + "and to_char(l.tgl,'yyyy') = to_char(current_date,'yyyy')") - public Integer getJumlahPengajuanDiprosesByPegawai(@Param("idPegawai") Integer idPegawai, @Param("idPlan") Integer idPlan); - - @Query("select count(l.tgl) from PlanningPegawaiStatus p " - + "left join p.listTanggal l " - + "where p.statusEnabled is true " - + "and l.statusEnabled is true " + Integer getJumlahPengajuanDiprosesByPegawai(@Param("idPegawai") Integer idPegawai, @Param("idPlan") Integer idPlan); + + @Query("select count(l.tgl) from PlanningPegawaiStatus p " + "left join p.listTanggal l " + + "where p.statusEnabled is true " + "and l.statusEnabled is true " + "and p.approvalStatus = 0 and l.approvalStatus is null " + "and p.pegawaiId = :idPegawai and p.statusPegawaiPlanId = :idPlan " + "and to_char(l.tgl,'yyyy') = to_char(current_date,'yyyy')") - public Integer getJumlahPengajuanDiprosesTahunIniByPegawai(@Param("idPegawai") Integer idPegawai, @Param("idPlan") Integer idPlan); - - @Query("select count(l.tgl) from PlanningPegawaiStatus p " - + "left join p.listTanggal l " - + "where p.statusEnabled is true " - + "and l.statusEnabled is true " + Integer getJumlahPengajuanDiprosesTahunIniByPegawai(@Param("idPegawai") Integer idPegawai, + @Param("idPlan") Integer idPlan); + + @Query("select count(l.tgl) from PlanningPegawaiStatus p " + "left join p.listTanggal l " + + "where p.statusEnabled is true " + "and l.statusEnabled is true " + "and p.approvalStatus = 0 and l.approvalStatus is null " + "and p.pegawaiId = :idPegawai and p.statusPegawaiPlanId = :idPlan " + "and to_char(l.tgl,'yyyy') > to_char(current_date,'yyyy')") - public Integer getJumlahPengajuanDiprosesTahunDepanByPegawai(@Param("idPegawai") Integer idPegawai, @Param("idPlan") Integer idPlan); - - @Query("select count(l.tgl) from PlanningPegawaiStatus p " - + "left join p.listTanggal l " - + "where p.statusEnabled is true " - + "and l.statusEnabled is true " - + "and p.approvalStatus = 0 and l.approvalStatus is null " - + "and p.pegawaiId = :idPegawai " - + "and p.noPlanning <> :noPlanning " - + "and p.statusPegawaiPlanId = :idPlan") -// + "and to_char(l.tgl,'yyyy') = to_char(current_date,'yyyy')") - public Integer getJumlahPengajuanDiprosesByPegawai(@Param("idPegawai") Integer idPegawai, @Param("idPlan") Integer idPlan, @Param("noPlanning") String noPlanning); - - @Query("select count(l.tgl) from PlanningPegawaiStatus p " - + "left join p.listTanggal l " - + "where p.statusEnabled is true " - + "and l.statusEnabled is true " - + "and p.approvalStatus = 0 and l.approvalStatus is null " - + "and p.pegawaiId = :idPegawai " - + "and p.noPlanning <> :noPlanning " - + "and p.statusPegawaiPlanId = :idPlan " + Integer getJumlahPengajuanDiprosesTahunDepanByPegawai(@Param("idPegawai") Integer idPegawai, + @Param("idPlan") Integer idPlan); + + @Query("select count(l.tgl) from PlanningPegawaiStatus p " + "left join p.listTanggal l " + + "where p.statusEnabled is true " + "and l.statusEnabled is true " + + "and p.approvalStatus = 0 and l.approvalStatus is null " + "and p.pegawaiId = :idPegawai " + + "and p.noPlanning <> :noPlanning " + "and p.statusPegawaiPlanId = :idPlan") + Integer getJumlahPengajuanDiprosesByPegawai(@Param("idPegawai") Integer idPegawai, @Param("idPlan") Integer idPlan, + @Param("noPlanning") String noPlanning); + + @Query("select count(l.tgl) from PlanningPegawaiStatus p " + "left join p.listTanggal l " + + "where p.statusEnabled is true " + "and l.statusEnabled is true " + + "and p.approvalStatus = 0 and l.approvalStatus is null " + "and p.pegawaiId = :idPegawai " + + "and p.noPlanning <> :noPlanning " + "and p.statusPegawaiPlanId = :idPlan " + "and to_char(l.tgl,'yyyy') = to_char(current_date,'yyyy')") - public Integer getJumlahPengajuanDiprosesTahunIniByPegawai(@Param("idPegawai") Integer idPegawai, @Param("idPlan") Integer idPlan, @Param("noPlanning") String noPlanning); - - @Query("select count(l.tgl) from PlanningPegawaiStatus p " - + "left join p.listTanggal l " - + "where p.statusEnabled is true " - + "and l.statusEnabled is true " - + "and p.approvalStatus = 0 and l.approvalStatus is null " - + "and p.pegawaiId = :idPegawai " - + "and p.noPlanning <> :noPlanning " - + "and p.statusPegawaiPlanId = :idPlan " + Integer getJumlahPengajuanDiprosesTahunIniByPegawai(@Param("idPegawai") Integer idPegawai, + @Param("idPlan") Integer idPlan, @Param("noPlanning") String noPlanning); + + @Query("select count(l.tgl) from PlanningPegawaiStatus p " + "left join p.listTanggal l " + + "where p.statusEnabled is true " + "and l.statusEnabled is true " + + "and p.approvalStatus = 0 and l.approvalStatus is null " + "and p.pegawaiId = :idPegawai " + + "and p.noPlanning <> :noPlanning " + "and p.statusPegawaiPlanId = :idPlan " + "and to_char(l.tgl,'yyyy') > to_char(current_date,'yyyy')") - public Integer getJumlahPengajuanDiprosesTahunDepanByPegawai(@Param("idPegawai") Integer idPegawai, @Param("idPlan") Integer idPlan, @Param("noPlanning") String noPlanning); - - @Query("select NEW Map (a.noRec as noRec, " - + "a.statusEnabled as statusEnabled, " - + "a.noPlanning as noPlanning, " + Integer getJumlahPengajuanDiprosesTahunDepanByPegawai(@Param("idPegawai") Integer idPegawai, + @Param("idPlan") Integer idPlan, @Param("noPlanning") String noPlanning); + + @Query("select NEW Map (a.noRec as noRec, " + "a.statusEnabled as statusEnabled, " + "a.noPlanning as noPlanning, " + "a.deskripsiStatusPegawaiPlan as deskripsiStatusPegawaiPlan, " + "a.keteranganLainyaPlan as keteranganLainyaPlan, " + "a.deskripsiStatusPegawaiExec as deskripsiStatusPegawaiExec, " - + "a.keteranganLainyaExec as keteranganLainyaExec, " - + "a.tglPengajuan as tglPengajuan, " - + "a.tglKeputusan as tglKeputusan, " - + "a.approvalStatus as approvalStatus, " - + "a.alamatCuti as alamatCuti, " - + "a.nomorTelepon as nomorTelepon, " - + "a.isCutiLuarNegeri as isCutiLuarNegeri, " - + "a.isCutiLuarKota as isCutiLuarKota, " - + "a.noSuratTugas as noSuratTugas, " - + "a.noNotaDinas as noNotaDinas, " - + "a.tglNotaDinas as tglNotaDinas, " - + "a.alamatTugas as alamatTugas, " - + "a.jenisPerawatan as sakit, " - + "a.jabatanIdPemberiNotaDinas as jabatanIdPemberiNotaDinas, " - + "listTgl.noRec as norecTgl, " - + "listTgl.tgl as tgl, " - + "listTgl.approvalStatus as approvalStatusTgl, " - + "fp.namaJabatan as jabatanPemberiNotaDinas, " - + "subUnitKerja.id as idUnitKerja, " - + "subUnitKerja.name as unitKerja, " - + "b.id as pegwaiId, " - + "b.namaLengkap as namaPegawai, " - + "b.nipPns as nip, " - + "b.eselonId as eselonId, " - + "c.id as statusPegawaiId, " - + "c.statusPegawai as statusPegawai, " - + "f.namaJabatan as namaJabatan) " - + "from PlanningPegawaiStatus a, " - + "MapPegawaiJabatanToUnitKerja mp " - + "left join a.pegawai b " - + "left join a.statusPegawaiPlan c " - + "left join a.noSk e " - + "left join a.listTanggal listTgl " - + "left join a.jabatanPemberiNotaDinas fp " - + "left join mp.jabatan f " - + "left join mp.subUnitKerjaPegawai subUnitKerja " - + "where mp.pegawaiId = b.id " - + "and a.pegawaiId = mp.pegawaiId " - + "and a.statusEnabled is true " - + "and listTgl.statusEnabled is true " - + "and mp.statusEnabled is true " - + "and mp.isPrimary is true " + + "a.keteranganLainyaExec as keteranganLainyaExec, " + "a.tglPengajuan as tglPengajuan, " + + "a.tglKeputusan as tglKeputusan, " + "a.approvalStatus as approvalStatus, " + + "a.alamatCuti as alamatCuti, " + "a.nomorTelepon as nomorTelepon, " + + "a.isCutiLuarNegeri as isCutiLuarNegeri, " + "a.isCutiLuarKota as isCutiLuarKota, " + + "a.noSuratTugas as noSuratTugas, " + "a.noNotaDinas as noNotaDinas, " + "a.tglNotaDinas as tglNotaDinas, " + + "a.alamatTugas as alamatTugas, " + "a.jenisPerawatan as sakit, " + + "a.jabatanIdPemberiNotaDinas as jabatanIdPemberiNotaDinas, " + "listTgl.noRec as norecTgl, " + + "listTgl.tgl as tgl, " + "listTgl.approvalStatus as approvalStatusTgl, " + + "fp.namaJabatan as jabatanPemberiNotaDinas, " + "subUnitKerja.id as idUnitKerja, " + + "subUnitKerja.name as unitKerja, " + "b.id as pegwaiId, " + "b.namaLengkap as namaPegawai, " + + "b.nipPns as nip, " + "b.eselonId as eselonId, " + "c.id as statusPegawaiId, " + + "c.statusPegawai as statusPegawai, " + "f.namaJabatan as namaJabatan) " + "from PlanningPegawaiStatus a, " + + "MapPegawaiJabatanToUnitKerja mp " + "left join a.pegawai b " + "left join a.statusPegawaiPlan c " + + "left join a.noSk e " + "left join a.listTanggal listTgl " + "left join a.jabatanPemberiNotaDinas fp " + + "left join mp.jabatan f " + "left join mp.subUnitKerjaPegawai subUnitKerja " + + "where mp.pegawaiId = b.id " + "and a.pegawaiId = mp.pegawaiId " + "and a.statusEnabled is true " + + "and listTgl.statusEnabled is true " + "and mp.statusEnabled is true " + "and mp.isPrimary is true " + "and e.noRec is null " + "and ((to_char(listTgl.tgl, 'yyyy') = :currentYear and a.approvalStatus <> :approvalStatusId1) " + "or (to_char(listTgl.tgl, 'yyyy') <> :currentYear and a.approvalStatus = :approvalStatusId2)) " - + "and c.id in (:ketidakhadiranId) " - + "and b.id = :idPegawai " + + "and c.id in (:ketidakhadiranId) " + "and b.id = :idPegawai " + "order by a.tglPengajuan desc, listTgl.tgl asc") - public List> getApprovalStatus(@Param("idPegawai") Integer idPegawai, @Param("currentYear") String currentYear, - @Param("approvalStatusId1") Integer approvalStatusId1, @Param("approvalStatusId2") Integer approvalStatusId2, + List> getApprovalStatus(@Param("idPegawai") Integer idPegawai, + @Param("currentYear") String currentYear, @Param("approvalStatusId1") Integer approvalStatusId1, + @Param("approvalStatusId2") Integer approvalStatusId2, @Param("ketidakhadiranId") List ketidakhadiranId); - - @Query("select NEW Map (a.noRec as noRec, " - + "a.statusEnabled as statusEnabled, " - + "a.noPlanning as noPlanning, " + + @Query("select NEW Map (a.noRec as noRec, " + "a.statusEnabled as statusEnabled, " + "a.noPlanning as noPlanning, " + "a.deskripsiStatusPegawaiPlan as deskripsiStatusPegawaiPlan, " + "a.keteranganLainyaPlan as keteranganLainyaPlan, " + "a.deskripsiStatusPegawaiExec as deskripsiStatusPegawaiExec, " - + "a.keteranganLainyaExec as keteranganLainyaExec, " - + "a.tglPengajuan as tglPengajuan, " - + "a.tglKeputusan as tglKeputusan, " - + "a.approvalStatus as approvalStatus, " - + "a.alamatCuti as alamatCuti, " - + "a.nomorTelepon as nomorTelepon, " - + "a.isCutiLuarNegeri as isCutiLuarNegeri, " - + "a.isCutiLuarKota as isCutiLuarKota, " - + "a.noSuratTugas as noSuratTugas, " - + "a.noNotaDinas as noNotaDinas, " - + "a.tglNotaDinas as tglNotaDinas, " - + "a.alamatTugas as alamatTugas, " - + "a.jabatanIdPemberiNotaDinas as jabatanIdPemberiNotaDinas, " - + "listTgl.noRec as norecTgl, " - + "listTgl.tgl as tgl, " - + "listTgl.approvalStatus as approvalStatusTgl, " - + "fp.namaJabatan as jabatanPemberiNotaDinas, " - + "subUnitKerja.id as idUnitKerja, " - + "subUnitKerja.name as unitKerja, " - + "b.id as pegwaiId, " - + "b.namaLengkap as namaPegawai, " - + "b.nipPns as nip, " - + "b.eselonId as eselonId, " - + "c.id as statusPegawaiId, " - + "c.statusPegawai as statusPegawai, " - + "f.namaJabatan as namaJabatan) " - + "from PlanningPegawaiStatus a, " - + "MapPegawaiJabatanToUnitKerja mp " - + "left join a.pegawai b " - + "left join a.statusPegawaiPlan c " - + "left join a.noSk e " - + "left join a.listTanggal listTgl " - + "left join a.jabatanPemberiNotaDinas fp " - + "left join mp.jabatan f " - + "left join mp.subUnitKerjaPegawai subUnitKerja " - + "where mp.pegawaiId = b.id " - + "and a.pegawaiId = mp.pegawaiId " - + "and a.statusEnabled is true " - + "and listTgl.statusEnabled is true " - + "and mp.statusEnabled is true " - + "and mp.isPrimary is true " + + "a.keteranganLainyaExec as keteranganLainyaExec, " + "a.tglPengajuan as tglPengajuan, " + + "a.tglKeputusan as tglKeputusan, " + "a.approvalStatus as approvalStatus, " + + "a.alamatCuti as alamatCuti, " + "a.nomorTelepon as nomorTelepon, " + + "a.isCutiLuarNegeri as isCutiLuarNegeri, " + "a.isCutiLuarKota as isCutiLuarKota, " + + "a.noSuratTugas as noSuratTugas, " + "a.noNotaDinas as noNotaDinas, " + "a.tglNotaDinas as tglNotaDinas, " + + "a.alamatTugas as alamatTugas, " + "a.jabatanIdPemberiNotaDinas as jabatanIdPemberiNotaDinas, " + + "listTgl.noRec as norecTgl, " + "listTgl.tgl as tgl, " + "listTgl.approvalStatus as approvalStatusTgl, " + + "fp.namaJabatan as jabatanPemberiNotaDinas, " + "subUnitKerja.id as idUnitKerja, " + + "subUnitKerja.name as unitKerja, " + "b.id as pegwaiId, " + "b.namaLengkap as namaPegawai, " + + "b.nipPns as nip, " + "b.eselonId as eselonId, " + "c.id as statusPegawaiId, " + + "c.statusPegawai as statusPegawai, " + "f.namaJabatan as namaJabatan) " + "from PlanningPegawaiStatus a, " + + "MapPegawaiJabatanToUnitKerja mp " + "left join a.pegawai b " + "left join a.statusPegawaiPlan c " + + "left join a.noSk e " + "left join a.listTanggal listTgl " + "left join a.jabatanPemberiNotaDinas fp " + + "left join mp.jabatan f " + "left join mp.subUnitKerjaPegawai subUnitKerja " + + "where mp.pegawaiId = b.id " + "and a.pegawaiId = mp.pegawaiId " + "and a.statusEnabled is true " + + "and listTgl.statusEnabled is true " + "and mp.statusEnabled is true " + "and mp.isPrimary is true " + "and ((to_char(listTgl.tgl, 'yyyy') = :currentYear and a.approvalStatus <> :approvalStatusId1) " + "or (to_char(listTgl.tgl, 'yyyy') <> :currentYear and a.approvalStatus = :approvalStatusId2)) " - + "and e.noRec is null " - + "and c.id in (:ketidakhadiranId) " + + "and e.noRec is null " + "and c.id in (:ketidakhadiranId) " + "order by a.tglPengajuan desc, listTgl.tgl asc") - public List> getApprovalStatus(@Param("currentYear") String currentYear, @Param("approvalStatusId1") Integer approvalStatusId1, - @Param("approvalStatusId2") Integer approvalStatusId2, @Param("ketidakhadiranId") List ketidakhadiranId); - - @Query("select NEW Map (a.noRec as noRec, " - + "a.noPlanning as noPlanning, " + List> getApprovalStatus(@Param("currentYear") String currentYear, + @Param("approvalStatusId1") Integer approvalStatusId1, + @Param("approvalStatusId2") Integer approvalStatusId2, + @Param("ketidakhadiranId") List ketidakhadiranId); + + @Query("select NEW Map (a.noRec as noRec, " + "a.noPlanning as noPlanning, " + "a.deskripsiStatusPegawaiPlan as deskripsiStatusPegawaiPlan, " + "a.keteranganLainyaPlan as keteranganLainyaPlan, " + "a.deskripsiStatusPegawaiExec as deskripsiStatusPegawaiExec, " - + "a.keteranganLainyaExec as keteranganLainyaExec, " - + "a.tglPengajuan as tglPengajuan, " - + "a.tglKeputusan as tglKeputusan, " - + "a.approvalStatus as approvalStatus, " - + "a.alamatCuti as alamatCuti, " - + "a.nomorTelepon as nomorTelepon, " - + "a.isCutiLuarNegeri as isCutiLuarNegeri, " - + "a.isCutiLuarKota as isCutiLuarKota, " - + "a.noSuratTugas as noSuratTugas, " - + "a.noNotaDinas as noNotaDinas, " - + "a.tglNotaDinas as tglNotaDinas, " - + "a.alamatTugas as alamatTugas, " - + "a.jenisPerawatan as sakit, " - + "a.jabatanIdPemberiNotaDinas as jabatanIdPemberiNotaDinas, " - + "listTgl.noRec as norecTgl, " - + "listTgl.tgl as tgl, " - + "listTgl.approvalStatus as approvalStatusTgl, " - + "fp.namaJabatan as jabatanPemberiNotaDinas, " - + "subUnitKerja.id as idUnitKerja, " - + "subUnitKerja.name as unitKerja, " - + "b.id as pegwaiId, " - + "b.namaLengkap as namaPegawai, " - + "b.nipPns as nip, " - + "c.id as statusPegawaiId, " - + "c.statusPegawai as statusPegawai, " - + "f.namaJabatan as namaJabatan) " - + "from PlanningPegawaiStatus a, " - + "MapPegawaiJabatanToUnitKerja mp " - + "left join a.pegawai b " - + "left join a.statusPegawaiPlan c " - + "left join a.noSk e " - + "left join a.jabatanPemberiNotaDinas fp " - + "left join a.listTanggal listTgl " - + "left join mp.jabatan f " - + "left join mp.subUnitKerjaPegawai subUnitKerja " - + "where mp.pegawaiId = b.id " - + "and a.pegawaiId = mp.pegawaiId " - + "and a.statusEnabled = true " - + "and listTgl.statusEnabled = true " - + "and mp.statusEnabled is true " - + "and mp.isPrimary is true " - + "and a.approvalStatus = :approvalStatusId " - + "and e.noRec is null " - + "and c.id in (:ketidakhadiranId) " + + "a.keteranganLainyaExec as keteranganLainyaExec, " + "a.tglPengajuan as tglPengajuan, " + + "a.tglKeputusan as tglKeputusan, " + "a.approvalStatus as approvalStatus, " + + "a.alamatCuti as alamatCuti, " + "a.nomorTelepon as nomorTelepon, " + + "a.isCutiLuarNegeri as isCutiLuarNegeri, " + "a.isCutiLuarKota as isCutiLuarKota, " + + "a.noSuratTugas as noSuratTugas, " + "a.noNotaDinas as noNotaDinas, " + "a.tglNotaDinas as tglNotaDinas, " + + "a.alamatTugas as alamatTugas, " + "a.jenisPerawatan as sakit, " + + "a.jabatanIdPemberiNotaDinas as jabatanIdPemberiNotaDinas, " + "listTgl.noRec as norecTgl, " + + "listTgl.tgl as tgl, " + "listTgl.approvalStatus as approvalStatusTgl, " + + "fp.namaJabatan as jabatanPemberiNotaDinas, " + "subUnitKerja.id as idUnitKerja, " + + "subUnitKerja.name as unitKerja, " + "b.id as pegwaiId, " + "b.namaLengkap as namaPegawai, " + + "b.nipPns as nip, " + "c.id as statusPegawaiId, " + "c.statusPegawai as statusPegawai, " + + "f.namaJabatan as namaJabatan) " + "from PlanningPegawaiStatus a, " + "MapPegawaiJabatanToUnitKerja mp " + + "left join a.pegawai b " + "left join a.statusPegawaiPlan c " + "left join a.noSk e " + + "left join a.jabatanPemberiNotaDinas fp " + "left join a.listTanggal listTgl " + "left join mp.jabatan f " + + "left join mp.subUnitKerjaPegawai subUnitKerja " + "where mp.pegawaiId = b.id " + + "and a.pegawaiId = mp.pegawaiId " + "and a.statusEnabled = true " + "and listTgl.statusEnabled = true " + + "and mp.statusEnabled is true " + "and mp.isPrimary is true " + + "and a.approvalStatus = :approvalStatusId " + "and e.noRec is null " + "and c.id in (:ketidakhadiranId) " + "order by a.tglPengajuan desc, listTgl.tgl asc") - public List> getApprovalStatusSdm(@Param("approvalStatusId") Integer approvalStatusId, + List> getApprovalStatusSdm(@Param("approvalStatusId") Integer approvalStatusId, @Param("ketidakhadiranId") List ketidakhadiranId); - - @Query("select new Map(pegawai.namaLengkap as namaLengkap, " - + "coalesce(pegawai.nipPns, pegawai.nip) as nip, " + + @Query("select new Map(pegawai.namaLengkap as namaLengkap, " + "coalesce(pegawai.nipPns, pegawai.nip) as nip, " + "pangkat.namaPangkat || ' / ' || golongan.golonganPegawai as pangkatGol, " - + "jabatan.namaJabatan as namaJabatan, " - + "transaksiCuti.statusPegawaiPlanId as idPlanning, " - + "statusPegawai.statusPegawai as statusPegawai, " - + "tglCuti.tgl as tglCuti) " + + "jabatan.namaJabatan as namaJabatan, " + "transaksiCuti.statusPegawaiPlanId as idPlanning, " + + "statusPegawai.statusPegawai as statusPegawai, " + "tglCuti.tgl as tglCuti) " + "from MapPegawaiJabatanToUnitKerja mappingJabatan, PlanningPegawaiStatus transaksiCuti " - + "left join mappingJabatan.pegawai pegawai " - + "left join mappingJabatan.jabatan jabatan " + + "left join mappingJabatan.pegawai pegawai " + "left join mappingJabatan.jabatan jabatan " + "left join transaksiCuti.listTanggal tglCuti " - + "left join transaksiCuti.statusPegawaiPlan statusPegawai " - + "left join pegawai.pangkat pangkat " - + "left join pangkat.kdGolonganPegawai golongan " - + "where transaksiCuti.pegawaiId = pegawai.id " - + "and mappingJabatan.pegawaiId = transaksiCuti.pegawaiId " - + "and mappingJabatan.statusEnabled is true " - + "and pegawai.statusEnabled is true " - + "and mappingJabatan.isPrimary is true " - + "and tglCuti.statusEnabled is true " - + "and transaksiCuti.noRec = :norec") - public List> getCetakCutiLuarNegeri(@Param("norec") String norec); - + + "left join transaksiCuti.statusPegawaiPlan statusPegawai " + "left join pegawai.pangkat pangkat " + + "left join pangkat.kdGolonganPegawai golongan " + "where transaksiCuti.pegawaiId = pegawai.id " + + "and mappingJabatan.pegawaiId = transaksiCuti.pegawaiId " + "and mappingJabatan.statusEnabled is true " + + "and pegawai.statusEnabled is true " + "and mappingJabatan.isPrimary is true " + + "and tglCuti.statusEnabled is true " + "and transaksiCuti.noRec = :norec") + List> getCetakCutiLuarNegeri(@Param("norec") String norec); + } diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/JatahCutiDanIzinService.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/JatahCutiDanIzinService.java new file mode 100644 index 00000000..f0d2f819 --- /dev/null +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/JatahCutiDanIzinService.java @@ -0,0 +1,14 @@ +package com.jasamedika.medifirst2000.service; + +import com.jasamedika.medifirst2000.dto.DataCutiDto; + +/** + * @author Salman + * @version 1.0.0 + * @since 09/01/2025 + */ +public interface JatahCutiDanIzinService { + + DataCutiDto getDataCuti(Integer pegawaiId, String year, Integer statusPegawaiId); + +} diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/PermohonanStatusPegawaiService.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/PermohonanStatusPegawaiService.java index 4856ec81..3d9861bd 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/PermohonanStatusPegawaiService.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/PermohonanStatusPegawaiService.java @@ -1,5 +1,6 @@ package com.jasamedika.medifirst2000.service; +import com.jasamedika.medifirst2000.dto.DataCutiDto; import com.jasamedika.medifirst2000.entities.PegawaiHistoriRekapIndex; import com.jasamedika.medifirst2000.vo.JatahCutiDanIzinVO; import com.jasamedika.medifirst2000.vo.KelompokShiftKerjaCustomVO; @@ -27,7 +28,7 @@ public interface PermohonanStatusPegawaiService { Map savePlanningPegawaiStatus(PlanningPegawaiStatusVO vo); - Map perbaruiDataCuti(Integer idPegawai, Integer idStatusPegawai); + DataCutiDto perbaruiDataCuti(Integer idPegawai, Integer idStatusPegawai); boolean validateTanggalPermohonanRev(Integer statusPegawaiPlanId, Set listTanggalCutiVO, Integer idPegawai); @@ -89,8 +90,6 @@ public interface PermohonanStatusPegawaiService { JatahCutiDanIzinVO setJatahCutiDanIzinVo(Integer idPegawai, Integer idStatusPegawai); - Integer difCutiTerpakai(Integer cutiTerpakai, Integer dataCuti); - Integer countJumlahPengajuanDiprosesByPegawai(Integer idPegawai, Integer idPlan); Integer countJumlahPengajuanDiprosesByPegawai(Integer idPegawai, Integer idPlan, String noPlanning); diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/IndekKinerjaServiceImpl.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/IndekKinerjaServiceImpl.java index a59ab48b..9a739bf3 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/IndekKinerjaServiceImpl.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/IndekKinerjaServiceImpl.java @@ -1564,7 +1564,7 @@ public class IndekKinerjaServiceImpl extends BaseVoServiceImpl implements IndekK if (CommonUtil.isNotNullOrEmpty(vo.getTanggal())) { Kalender kalender = mapKalenderToHariLiburDao .getKalender(new SimpleDateFormat("yyyy-MM-dd").format(vo.getTanggal().getTanggal())); - mapKalenderToHariLibur.setTgl(kalender); + mapKalenderToHariLibur.setTanggal(kalender); } if (CommonUtil.isNotNullOrEmpty(mapKalenderToHariLibur)) { MapKalenderToHariLibur model = mapKalenderToHariLiburDao.save(mapKalenderToHariLibur); diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/JatahCutiDanIzinServiceImpl.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/JatahCutiDanIzinServiceImpl.java new file mode 100644 index 00000000..06e6a9f6 --- /dev/null +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/JatahCutiDanIzinServiceImpl.java @@ -0,0 +1,589 @@ +package com.jasamedika.medifirst2000.service.impl; + +import com.jasamedika.medifirst2000.constants.Master; +import com.jasamedika.medifirst2000.dao.*; +import com.jasamedika.medifirst2000.dto.DataCutiDto; +import com.jasamedika.medifirst2000.dto.JatahCutiRequest; +import com.jasamedika.medifirst2000.dto.PresensiHariLibur; +import com.jasamedika.medifirst2000.entities.ListTanggalCuti; +import com.jasamedika.medifirst2000.entities.MapKalenderToHariLibur; +import com.jasamedika.medifirst2000.service.JatahCutiDanIzinService; +import com.jasamedika.medifirst2000.util.CommonUtil; +import com.jasamedika.medifirst2000.util.DateUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.text.SimpleDateFormat; +import java.time.LocalDate; +import java.util.*; +import java.util.stream.Collectors; + +import static com.jasamedika.medifirst2000.constants.Master.HariLibur.LIBUR_CB; +import static com.jasamedika.medifirst2000.constants.Master.StatusPegawai.CUTI_TAHUNAN; + +/** + * @author Salman + * @version 1.0.0 + * @since 09/01/2025 + */ +@Service +public class JatahCutiDanIzinServiceImpl implements JatahCutiDanIzinService { + + @Autowired + private PlanningPegawaiStatusDao planningPegawaiStatusDao; + + @Autowired + private JatahCutiDanIzinDao jatahCutiDanIzinDao; + + @Autowired + private PegawaiDao pegawaiDao; + + @Autowired + private PegawaiHistoriRekapIndexDao pegawaiHistoriRekapIndexDao; + + @Autowired + private PegawaiJadwalKerjaDao pegawaiJadwalKerjaDao; + + @Autowired + private MapKalenderToHariLiburDao mapKalenderToHariLiburDao; + + @Autowired + private HabsenDao habsenDao; + + @Autowired + private ListTanggalCutiDao tanggalCutiDao; + + @Override + public DataCutiDto getDataCuti(Integer pegawaiId, String year, Integer statusPegawaiId) { + DataCutiDto dto = calculateCutiIzin(pegawaiId, year, statusPegawaiId); + JatahCutiRequest jatahCutiRequest = transform(pegawaiId, year, statusPegawaiId); + return tangguhkanCutiBersama(dto, jatahCutiRequest); + } + + private DataCutiDto calculateCutiIzin(Integer pegawaiId, String year, Integer statusPegawaiId) { + DataCutiDto.DataCutiDtoBuilder cutiIzinBuilder = DataCutiDto.builder(); + List listKomponenIndex = new ArrayList<>(); + int sisaCuti; + Integer sisaCutiB2 = 0; + Integer sisaCutiB1 = 0; + int sisaCutiB; + int sisaCutiN2; + int sisaCutiN1; + int sisaCutiN; + Integer jatahCuti = 0; + int sisaJatahRawatJalan = 0; + int sisaJatahRawatInap = 0; + int sisaIzin; + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + SimpleDateFormat formatter = new SimpleDateFormat("yyyy"); + if (CommonUtil.isNullOrEmpty(year)) + year = formatter.format(DateUtil.now()); + int yearn1 = Integer.parseInt(year) - 1; + int yearn2 = Integer.parseInt(year) - 2; + int yearn3 = Integer.parseInt(year) + 1; + String yearN1 = Integer.toString(yearn1); + String yearN2 = Integer.toString(yearn2); + String yearN3 = Integer.toString(yearn3); + if (statusPegawaiId == 5 || statusPegawaiId == 1 || statusPegawaiId == 21) { + String komponen = Master.KomponenIndex.CUTI_NONSHIFT.toString(); + String komponenIndeksCutiShift = Master.KomponenIndex.CUTI_SHIFT.toString(); + String komponenIndeksCutiBersama = Master.KomponenIndex.CUTI_BERSAMA.toString(); + listKomponenIndex.add(Integer.valueOf(komponen)); + listKomponenIndex.add(Integer.valueOf(komponenIndeksCutiShift)); + // Initiate cuti bersama + Integer cutiTerpakaiB2; + Integer cutiTerpakaiB1; + Integer cutiTerpakaiB; + // Menghitung cuti terpakai tahun n-2 + Integer cutiTerpakaiN2 = pegawaiHistoriRekapIndexDao.getCutiTerpakai(yearN2, pegawaiId, listKomponenIndex); + if (CommonUtil.isNullOrEmpty(cutiTerpakaiN2)) + cutiTerpakaiN2 = 0; + // Menghitung cuti terpakai tahun n-1 + Integer cutiTerpakaiN1 = pegawaiHistoriRekapIndexDao.getCutiTerpakai(yearN1, pegawaiId, listKomponenIndex); + if (CommonUtil.isNullOrEmpty(cutiTerpakaiN1)) + cutiTerpakaiN1 = 0; + // Menghitung cuti terpakai tahun n + Integer cutiTerpakaiN = pegawaiHistoriRekapIndexDao.getCutiTerpakai(year, pegawaiId, listKomponenIndex); + if (CommonUtil.isNullOrEmpty(cutiTerpakaiN)) + cutiTerpakaiN = 0; + // Menghitung cuti terpakai by histori pengajuan + Integer jumlahTglByPengajuan = pegawaiHistoriRekapIndexDao.getHistoriCutiTerpakaiByTahunPengajuan(year, + pegawaiId, listKomponenIndex); + if (CommonUtil.isNullOrEmpty(jumlahTglByPengajuan)) + jumlahTglByPengajuan = 0; + Integer rekapHistoriCutiTerpakai = pegawaiHistoriRekapIndexDao.getHistoriCutiTerpakai(yearN2, pegawaiId, + listKomponenIndex); + if (CommonUtil.isNullOrEmpty(rekapHistoriCutiTerpakai)) + rekapHistoriCutiTerpakai = 0; + Integer dataHistoriCutiTerpakai = jatahCutiDanIzinDao.getHistoriCutiTerpakai(pegawaiId, yearN2); + if (CommonUtil.isNullOrEmpty(dataHistoriCutiTerpakai)) + dataHistoriCutiTerpakai = 0; + Integer diffHistori = dataHistoriCutiTerpakai - rekapHistoriCutiTerpakai; + if (rekapHistoriCutiTerpakai < dataHistoriCutiTerpakai) { + if (cutiTerpakaiN2 > diffHistori) { + cutiTerpakaiN2 -= diffHistori; + } else { + diffHistori -= cutiTerpakaiN2; + cutiTerpakaiN2 = 0; + if (cutiTerpakaiN1 > diffHistori) { + cutiTerpakaiN1 -= diffHistori; + } else { + diffHistori -= cutiTerpakaiN1; + cutiTerpakaiN1 = 0; + if (cutiTerpakaiN > diffHistori) { + cutiTerpakaiN -= diffHistori; + } else { + cutiTerpakaiN = 0; + } + } + } + } + // Mendapatkan seluruh data jatah cuti untuk pegawai tertentu + Integer dataCutiB2 = jatahCutiDanIzinDao.getDataCuti(yearN2, pegawaiId, + Integer.valueOf(komponenIndeksCutiBersama)); // dataCutiBersama_di_n-2 + Integer dataCutiB1 = jatahCutiDanIzinDao.getDataCuti(yearN1, pegawaiId, + Integer.valueOf(komponenIndeksCutiBersama)); // dataCutiBersama_di_n-1 + Integer dataCutiB = jatahCutiDanIzinDao.getDataCuti(year, pegawaiId, + Integer.valueOf(komponenIndeksCutiBersama)); // dataCutiBersama_di_n + Integer dataCutiN2 = jatahCutiDanIzinDao.getDataCuti(yearN2, pegawaiId, Integer.valueOf(komponen)); // dataCutiTahunan_tahun_n-2 + Integer dataCutiN1 = jatahCutiDanIzinDao.getDataCuti(yearN1, pegawaiId, Integer.valueOf(komponen)); // dataCutiTahunan_tahun_n-1 + Integer dataCutiN = jatahCutiDanIzinDao.getDataCuti(year, pegawaiId, Integer.valueOf(komponen)); // dataCutiTahunan_tahun_n + Integer dataCutiN3 = jatahCutiDanIzinDao.getDataCuti(yearN3, pegawaiId, Integer.valueOf(komponen)); // dataCutiTahunan_tahun_n+1 + // Validasi existing data + if (CommonUtil.isNullOrEmpty(dataCutiB2)) + dataCutiB2 = 0; + if (CommonUtil.isNullOrEmpty(dataCutiB1)) + dataCutiB1 = 0; + if (CommonUtil.isNullOrEmpty(dataCutiB)) + dataCutiB = 0; + if (CommonUtil.isNullOrEmpty(dataCutiN2)) + dataCutiN2 = 0; + if (CommonUtil.isNullOrEmpty(dataCutiN1)) + dataCutiN1 = 0; + if (CommonUtil.isNullOrEmpty(dataCutiN)) + dataCutiN = 0; + if (CommonUtil.isNullOrEmpty(dataCutiN3)) + dataCutiN3 = 12; + // mapping jatah cuti + cutiIzinBuilder.dataCutiB2(dataCutiB2); + cutiIzinBuilder.dataCutiB1(dataCutiB1); + cutiIzinBuilder.dataCutiB(dataCutiB); + cutiIzinBuilder.dataCutiN2(dataCutiN2); + cutiIzinBuilder.dataCutiN1(dataCutiN1); + cutiIzinBuilder.dataCutiN(dataCutiN); + cutiIzinBuilder.dataCutiN3(dataCutiN3); + + // Hitung Absen di tanggal cuti bersama + List listTglCutiBersama = mapKalenderToHariLiburDao.getTglCutiBersama(year); + int countDataHabsen = 0; + for (String tglStr : listTglCutiBersama) { + List dataHabsen = new ArrayList<>(); + // cek shift malam + String tglPrev = sdf.format(java.sql.Date.valueOf(LocalDate.parse(tglStr).minusDays(1))); + List> listMap = pegawaiJadwalKerjaDao.getNamaShiftKerjaPegawaiByTanggal(tglPrev, + tglStr, pegawaiId); + if (listMap.size() == 2) { + if (!listMap.get(0).get("namaShift").toString().toLowerCase().contains("malam") + && listMap.get(1).get("namaShift").toString().toLowerCase().contains("malam")) { + dataHabsen = habsenDao.countAbsenTglCutiBersama(tglStr, pegawaiDao.getidFinger(pegawaiId)); + } else if (listMap.get(0).get("namaShift").toString().toLowerCase().contains("malam") + && listMap.get(1).get("namaShift").toString().toLowerCase().contains("malam")) { + dataHabsen = habsenDao.countAbsenTglCutiBersama(tglStr, pegawaiDao.getidFinger(pegawaiId)); + } else if (!listMap.get(0).get("namaShift").toString().toLowerCase().contains("malam") + && !listMap.get(1).get("namaShift").toString().toLowerCase().contains("malam")) { + dataHabsen = habsenDao.countAbsenTglCutiBersama(tglStr, pegawaiDao.getidFinger(pegawaiId)); + } + } + if (CommonUtil.isNotNullOrEmpty(dataHabsen)) { + if (listMap.size() == 2) { + if (Arrays.asList(Master.ShiftKerja.TUJUH_BELAS_JAM_SHIFT) + .contains(Integer.parseInt(listMap.get(1).get("idShift").toString()))) { + if (Integer.parseInt(year) < 2023) { + countDataHabsen += 2; + } else { + countDataHabsen += 1; + } + } else { + countDataHabsen += 1; + } + } else { + countDataHabsen += 1; + } + } else { + // cuti tahunan di tanggal cuti bersama + List tglCutiTahunanDiTglCutiBersama = jatahCutiDanIzinDao + .getCutiTahunanDiTglCutiBersama(CUTI_TAHUNAN, pegawaiId, tglStr); + if (CommonUtil.isNotNullOrEmpty(tglCutiTahunanDiTglCutiBersama)) { + if (listMap.size() == 2) { + if (Arrays.asList(Master.ShiftKerja.TUJUH_BELAS_JAM_SHIFT) + .contains(Integer.parseInt(listMap.get(1).get("idShift").toString()))) { + if (Integer.parseInt(year) < 2023) { + countDataHabsen += 2; + } else { + countDataHabsen += 1; + } + } else { + countDataHabsen += 1; + } + } else { + countDataHabsen += 1; + } + } + } + } + dataCutiB = countDataHabsen; + cutiIzinBuilder.dataCutiB(dataCutiB); + // kondisikan cuti bersama yg sudah berlalu + if (cutiTerpakaiN2 > dataCutiB2) { + cutiTerpakaiB2 = dataCutiB2; + } else { + cutiTerpakaiB2 = cutiTerpakaiN2; + } + if (cutiTerpakaiN1 > dataCutiB1) { + cutiTerpakaiB1 = dataCutiB1; + } else { + cutiTerpakaiB1 = cutiTerpakaiN1; + } + // Mendapatkan kondisi penangguhan saat ini + cutiIzinBuilder.isTangguhkanB2(false); + cutiIzinBuilder.isTangguhkanB1(false); + cutiIzinBuilder.isTangguhkanB(false); + Boolean jCutiN2 = jatahCutiDanIzinDao.getPenangguhanSisaCuti(yearN2, pegawaiId, Integer.valueOf(komponen)); + if (CommonUtil.isNotNullOrEmpty(jCutiN2)) { + cutiIzinBuilder.isTangguhkanN2(jCutiN2); + } else { + jCutiN2 = false; + cutiIzinBuilder.isTangguhkanN2(false); + } + Boolean jCutiN1 = jatahCutiDanIzinDao.getPenangguhanSisaCuti(yearN1, pegawaiId, Integer.valueOf(komponen)); + if (CommonUtil.isNotNullOrEmpty(jCutiN1)) { + cutiIzinBuilder.isTangguhkanN1(jCutiN1); + } else { + jCutiN1 = false; + cutiIzinBuilder.isTangguhkanN1(false); + } + Boolean jCutiN = jatahCutiDanIzinDao.getPenangguhanSisaCuti(year, pegawaiId, Integer.valueOf(komponen)); + if (CommonUtil.isNotNullOrEmpty(jCutiN)) { + cutiIzinBuilder.isTangguhkanN(jCutiN); + } else { + cutiIzinBuilder.isTangguhkanN(false); + } + if (dataCutiB >= cutiTerpakaiN) { + sisaCutiB = dataCutiB - cutiTerpakaiN; + cutiTerpakaiB = cutiTerpakaiN; + } else { + sisaCutiB = 0; + cutiTerpakaiB = dataCutiB; + } + cutiIzinBuilder.sisaCutiB2(sisaCutiB2); + cutiIzinBuilder.sisaCutiB1(sisaCutiB1); + cutiIzinBuilder.sisaCutiB(sisaCutiB); + cutiIzinBuilder.cutiTerpakaiB2(cutiTerpakaiB2); + cutiIzinBuilder.cutiTerpakaiB1(cutiTerpakaiB1); + cutiIzinBuilder.cutiTerpakaiB(cutiTerpakaiB); + // menghitung jatah cuti yang terpakai + Integer jatahCutiTerpakaiN2 = 0, jatahCutiTerpakaiN1 = 0, jatahCutiTerpakaiN = 0; + int allCutiTerpakai = difCutiTerpakai(cutiTerpakaiN2, dataCutiB2) + + difCutiTerpakai(cutiTerpakaiN1, dataCutiB1) + difCutiTerpakai(cutiTerpakaiN, dataCutiB); + if (dataCutiN2 > 0) { + if (allCutiTerpakai >= dataCutiN2) { + if (difCutiTerpakai(cutiTerpakaiN2, dataCutiB2) + + difCutiTerpakai(cutiTerpakaiN1, dataCutiB1) < 12) { + jatahCutiTerpakaiN2 = difCutiTerpakai(cutiTerpakaiN2, dataCutiB2) + + difCutiTerpakai(cutiTerpakaiN1, dataCutiB1); + } else { + jatahCutiTerpakaiN2 = dataCutiN2; + } + } else { + if (difCutiTerpakai(cutiTerpakaiN2, dataCutiB2) + + difCutiTerpakai(cutiTerpakaiN1, dataCutiB1) < 12) { + jatahCutiTerpakaiN2 = difCutiTerpakai(cutiTerpakaiN2, dataCutiB2) + + difCutiTerpakai(cutiTerpakaiN1, dataCutiB1); + } else { + jatahCutiTerpakaiN2 = allCutiTerpakai; + } + } + if (difCutiTerpakai(cutiTerpakaiN2, dataCutiB2) + difCutiTerpakai(cutiTerpakaiN1, dataCutiB1) < 12) { + if (difCutiTerpakai(cutiTerpakaiN2, dataCutiB2) > 0) { + sisaCutiN2 = 0; // hangus + } else { + if (difCutiTerpakai(cutiTerpakaiN2, dataCutiB2) + + difCutiTerpakai(cutiTerpakaiN1, dataCutiB1) < 6) { + if (jatahCutiTerpakaiN2 == 0 && !jCutiN1) { + sisaCutiN2 = 6; + } else if (jatahCutiTerpakaiN2 == 0) { + sisaCutiN2 = 0; + } else if (!jCutiN2 && !jCutiN1) { + sisaCutiN2 = 6 - jatahCutiTerpakaiN2; + } else { + sisaCutiN2 = 0; + } + } else { + sisaCutiN2 = dataCutiN2 - jatahCutiTerpakaiN2; + } + } + } else { + if (dataCutiN2 - jatahCutiTerpakaiN2 >= 6 && !jCutiN2) { + sisaCutiN2 = 6 - jatahCutiTerpakaiN2; + } else { + sisaCutiN2 = dataCutiN2 - jatahCutiTerpakaiN2; + } + } + if (sisaCutiN2 > 0 && difCutiTerpakai(cutiTerpakaiN, dataCutiB) > 0) { + if (sisaCutiN2 > difCutiTerpakai(cutiTerpakaiN, dataCutiB)) { + jatahCutiTerpakaiN2 += difCutiTerpakai(cutiTerpakaiN, dataCutiB); + } else { + jatahCutiTerpakaiN2 += sisaCutiN2; + } + } + allCutiTerpakai = allCutiTerpakai - jatahCutiTerpakaiN2; + if (allCutiTerpakai > 0) { + if (allCutiTerpakai >= dataCutiN1) { + jatahCutiTerpakaiN1 = dataCutiN1; + allCutiTerpakai = allCutiTerpakai - jatahCutiTerpakaiN1; + if ((allCutiTerpakai > 0) && (allCutiTerpakai <= dataCutiN)) { + jatahCutiTerpakaiN = allCutiTerpakai; + } else { + jatahCutiTerpakaiN = 0; + } + } else { + jatahCutiTerpakaiN1 = allCutiTerpakai; + } + } + } else if (dataCutiN1 > 0) { + if (allCutiTerpakai >= dataCutiN1) { + jatahCutiTerpakaiN1 = dataCutiN1; + allCutiTerpakai = allCutiTerpakai - jatahCutiTerpakaiN1; + if ((allCutiTerpakai > 0) && (allCutiTerpakai <= dataCutiN)) { + jatahCutiTerpakaiN = allCutiTerpakai; + } else { + jatahCutiTerpakaiN = 0; + } + } else { + jatahCutiTerpakaiN1 = allCutiTerpakai; + } + } else if (dataCutiN > 0) { + if (allCutiTerpakai <= dataCutiN) { + jatahCutiTerpakaiN = allCutiTerpakai; + } else { + jatahCutiTerpakaiN = 0; + } + } + // Menghitung cuti terpakai tahun n+1 + Integer cutiTerpakaiN3 = pegawaiHistoriRekapIndexDao.getCutiTerpakai(yearN3, pegawaiId, listKomponenIndex); + if (CommonUtil.isNullOrEmpty(cutiTerpakaiN3)) + cutiTerpakaiN3 = 0; + if (cutiTerpakaiN3 > 0) { + // menghitung sisa cuti n-1 terlebih dahulu + if (dataCutiN1 - jatahCutiTerpakaiN1 >= 6 && !jCutiN1) { + sisaCutiN1 = 6 - jatahCutiTerpakaiN1; + } else { + sisaCutiN1 = dataCutiN1 - jatahCutiTerpakaiN1; + } + // juga menghitung sisa cuti n terlebih dahulu + sisaCutiN = dataCutiN - jatahCutiTerpakaiN; + // menghitung jatah cuti terpakai karena pengajuan lintas tahun + if (difCutiTerpakai(cutiTerpakaiN1, dataCutiB1) == 0 && !jCutiN1) { + if (sisaCutiN1 > 0) { + if (cutiTerpakaiN3 > sisaCutiN1) { + jatahCutiTerpakaiN1 += sisaCutiN1; + cutiTerpakaiN3 -= sisaCutiN1; + if (sisaCutiN > 0) { + if (cutiTerpakaiN3 > sisaCutiN) { + jatahCutiTerpakaiN += sisaCutiN; + } else { + jatahCutiTerpakaiN += cutiTerpakaiN3; + } + } + } else { + jatahCutiTerpakaiN1 += cutiTerpakaiN3; + } + } else if (sisaCutiN > 0) { + if (cutiTerpakaiN3 > sisaCutiN) { + jatahCutiTerpakaiN += sisaCutiN; + } else { + jatahCutiTerpakaiN += cutiTerpakaiN3; + } + } + } else { + if (sisaCutiN > 0) { + if (cutiTerpakaiN3 > sisaCutiN) { + jatahCutiTerpakaiN += sisaCutiN; + } else { + jatahCutiTerpakaiN += cutiTerpakaiN3; + } + } + } + } + // put all data jatah cuti terpakai + cutiIzinBuilder.cutiTerpakaiN2(jatahCutiTerpakaiN2); + cutiIzinBuilder.cutiTerpakaiN1(jatahCutiTerpakaiN1); + cutiIzinBuilder.cutiTerpakaiN(jatahCutiTerpakaiN); + // menghitung sisa cuti + if (difCutiTerpakai(cutiTerpakaiN2, dataCutiB2) + difCutiTerpakai(cutiTerpakaiN1, dataCutiB1) < 12) { + if (difCutiTerpakai(cutiTerpakaiN2, dataCutiB2) > 0) { + sisaCutiN2 = 0; // hangus + } else { + if (difCutiTerpakai(cutiTerpakaiN2, dataCutiB2) + difCutiTerpakai(cutiTerpakaiN1, dataCutiB1) < 6 + && dataCutiN2 > 0) { + if (jatahCutiTerpakaiN2 == 0 && !jCutiN1) { + sisaCutiN2 = 6; + } else if (jatahCutiTerpakaiN2 == 0) { + sisaCutiN2 = 0; + } else if (!jCutiN2 && !jCutiN1) { + sisaCutiN2 = 6 - jatahCutiTerpakaiN2; + } else { + sisaCutiN2 = 0; + } + } else if (difCutiTerpakai(cutiTerpakaiN2, dataCutiB2) + + difCutiTerpakai(cutiTerpakaiN1, dataCutiB1) < 6 && dataCutiN2 <= 0) { + sisaCutiN2 = 0; + } else if (difCutiTerpakai(cutiTerpakaiN2, dataCutiB2) + + difCutiTerpakai(cutiTerpakaiN1, dataCutiB1) > 6 && jCutiN1) { + sisaCutiN2 = 0; + } else { + sisaCutiN2 = dataCutiN2 - jatahCutiTerpakaiN2; + } + } + } else { + if (dataCutiN2 - jatahCutiTerpakaiN2 >= 6 && !jCutiN2) { + sisaCutiN2 = 6 - jatahCutiTerpakaiN2; + } else { + sisaCutiN2 = dataCutiN2 - jatahCutiTerpakaiN2; + } + } + if (dataCutiN1 - jatahCutiTerpakaiN1 >= 6 && !jCutiN1) { + jumlahTglByPengajuan -= (dataHistoriCutiTerpakai + jatahCutiTerpakaiN2 + cutiTerpakaiB + cutiTerpakaiB1 + + cutiTerpakaiB2); + if (jumlahTglByPengajuan < 0) + jumlahTglByPengajuan = 0; + if (jumlahTglByPengajuan > jatahCutiTerpakaiN1) { + sisaCutiN1 = 6; + } else { + sisaCutiN1 = 6 - (jatahCutiTerpakaiN1 - jumlahTglByPengajuan); + } + } else { + sisaCutiN1 = dataCutiN1 - jatahCutiTerpakaiN1; + } + sisaCutiN = dataCutiN - jatahCutiTerpakaiN; + // put all data sisa cuti + cutiIzinBuilder.sisaCutiN2(sisaCutiN2); + cutiIzinBuilder.sisaCutiN1(sisaCutiN1); + cutiIzinBuilder.sisaCutiN(sisaCutiN); + } + if (statusPegawaiId == 24) { + if (CommonUtil.isNotNullOrEmpty(jatahCuti)) + cutiIzinBuilder.jatahCuti("-"); + cutiIzinBuilder.sisaCuti("-"); + } + if (statusPegawaiId == 25) { + Map data = planningPegawaiStatusDao.getJatahCutiMelahirkan(statusPegawaiId); + if (CommonUtil.isNotNullOrEmpty(jatahCuti)) + cutiIzinBuilder.jatahCuti(data.get("kuotaTotalHari").toString()); + cutiIzinBuilder.sisaCuti("-"); + } + if (statusPegawaiId == 26) { + if (CommonUtil.isNotNullOrEmpty(jatahCuti)) + cutiIzinBuilder.jatahCuti("-"); + cutiIzinBuilder.sisaCuti("-"); + } + // Izin + if (statusPegawaiId == 27) { + Integer komponenIzin = 17; // komponenIndex untuk izin + Integer jatahIzin = 2; // sesuai kesepakatan + Integer jumlahIzinTerpakai = pegawaiHistoriRekapIndexDao.getIzinTerpakai(pegawaiId, komponenIzin); + if (CommonUtil.isNotNullOrEmpty(jumlahIzinTerpakai)) { + sisaIzin = jatahIzin - jumlahIzinTerpakai; + } else { + sisaIzin = jatahIzin; + } + cutiIzinBuilder.jatahIzin(jatahIzin); + cutiIzinBuilder.sisaIzin(sisaIzin); + } + if (statusPegawaiId == 28) { + if (CommonUtil.isNotNullOrEmpty(jatahCuti)) + cutiIzinBuilder.jatahCuti("-"); + cutiIzinBuilder.sisaCuti("-"); + } + if (statusPegawaiId == 17) { + Integer cutiTerpakai = pegawaiHistoriRekapIndexDao.getNilaiIndexPegawaiHistoriRekapIndex(pegawaiId, 17); + Integer dataCuti = jatahCutiDanIzinDao.getDataCuti(year, pegawaiId, 17); + if (CommonUtil.isNotNullOrEmpty(dataCuti)) { + if (CommonUtil.isNullOrEmpty(cutiTerpakai)) + cutiTerpakai = 0; + sisaCuti = dataCuti - cutiTerpakai; + if (sisaCuti < 0) + sisaCuti = 0; + } else { + sisaCuti = 0; + dataCuti = 0; + } + cutiIzinBuilder.sisaCuti(String.valueOf(sisaCuti)); + cutiIzinBuilder.jatahCuti(String.valueOf(dataCuti)); + } + // sakit + if (statusPegawaiId == 29 || statusPegawaiId == 6) { + Integer komponenSakit = 7; + Integer komponenSakitShift = 8; + Integer jumlahRawatJalan = pegawaiHistoriRekapIndexDao.getSakitTerpakai(pegawaiId, komponenSakit, 1); + if (CommonUtil.isNullOrEmpty(jumlahRawatJalan)) + jumlahRawatJalan = pegawaiHistoriRekapIndexDao.getSakitTerpakai(pegawaiId, komponenSakitShift, 1); + Integer jumlahRawatInap = pegawaiHistoriRekapIndexDao.getSakitTerpakai(pegawaiId, komponenSakit, 2); + if (CommonUtil.isNullOrEmpty(jumlahRawatInap)) + jumlahRawatInap = pegawaiHistoriRekapIndexDao.getSakitTerpakai(pegawaiId, komponenSakitShift, 2); + if ((CommonUtil.isNotNullOrEmpty(jumlahRawatJalan)) || (CommonUtil.isNotNullOrEmpty(jumlahRawatInap))) { + sisaJatahRawatJalan = 3 - jumlahRawatJalan; + sisaJatahRawatInap = 5 - jumlahRawatInap; + } + cutiIzinBuilder.sisaJatahRawatJalan(sisaJatahRawatJalan); + cutiIzinBuilder.sisaJatahRawatInap(sisaJatahRawatInap); + } + return cutiIzinBuilder.build(); + } + + private Integer difCutiTerpakai(Integer cutiTerpakai, Integer dataCuti) { + int difCutiTerpakai = 0; + if (cutiTerpakai > dataCuti) + difCutiTerpakai = cutiTerpakai - dataCuti; + return difCutiTerpakai; + } + + private JatahCutiRequest transform(Integer pegawaiId, String year, Integer statusPegawaiId) { + return JatahCutiRequest.builder().pegawaiId(pegawaiId).year(year).statusPegawaiId(statusPegawaiId).build(); + } + + private DataCutiDto tangguhkanCutiBersama(DataCutiDto dto, JatahCutiRequest request) { + Date tahunLalu = DateUtil.getInstanceCalendar(-1); + Date awalTahunLalu = DateUtil.startYear(tahunLalu); + Date akhirTahunLalu = DateUtil.endYear(tahunLalu); + List listKalenderCutiBersama = mapKalenderToHariLiburDao.getByTahun(LIBUR_CB, + awalTahunLalu, akhirTahunLalu); + List listKalenderCutiBersamaBisaDitangguhkan = listKalenderCutiBersama.stream() + .filter(MapKalenderToHariLibur::getIsCutiBersamaDitangguhkan).collect(Collectors.toList()); + List listCutiTahunLaluBelumDisetujui = tanggalCutiDao + .notApprovedByPermohonan(request.getPegawaiId(), CUTI_TAHUNAN, awalTahunLalu, akhirTahunLalu); + List listPresensiTahunLalu = mapKalenderToHariLiburDao + .getPresensiByTahun(request.getPegawaiId(), LIBUR_CB, awalTahunLalu, akhirTahunLalu); + int presensiCutiBersama = countValidPresensi(listPresensiTahunLalu, listKalenderCutiBersama); + int jatahDitangguhkan = countValidPresensi(listPresensiTahunLalu, listKalenderCutiBersamaBisaDitangguhkan); + if (presensiCutiBersama - dto.getCutiTerpakaiB1() + + listCutiTahunLaluBelumDisetujui.size() > jatahDitangguhkan) { + dto.setDataCutiB(dto.getDataCutiB() + jatahDitangguhkan); + dto.setSisaCutiB(dto.getDataCutiB() - dto.getCutiTerpakaiB()); + } + return dto; + } + + private int countValidPresensi(List listPresensiDiCutiBersama, + List listKalenderCutiBersama) { + int result = 0; + for (PresensiHariLibur presensiDiCutiBersama : listPresensiDiCutiBersama) { + Optional any = listKalenderCutiBersama.stream() + .filter(k -> presensiDiCutiBersama.getTanggal().equals(k.getTanggal().getTanggal())).findAny(); + if (any.isPresent()) + result++; + } + return result; + } + +} diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/PermohonanStatusPegawaiImpl.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/PermohonanStatusPegawaiImpl.java index aa71d99a..dda2938a 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/PermohonanStatusPegawaiImpl.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/PermohonanStatusPegawaiImpl.java @@ -4,8 +4,10 @@ import com.jasamedika.medifirst2000.constants.Master; import com.jasamedika.medifirst2000.converter.BaseConverterImpl; import com.jasamedika.medifirst2000.dao.*; import com.jasamedika.medifirst2000.dao.custom.PlanningPegawaiStatusDaoCustom; +import com.jasamedika.medifirst2000.dto.DataCutiDto; import com.jasamedika.medifirst2000.entities.*; import com.jasamedika.medifirst2000.exception.ServiceVOException; +import com.jasamedika.medifirst2000.service.JatahCutiDanIzinService; import com.jasamedika.medifirst2000.service.LoginUserService; import com.jasamedika.medifirst2000.service.MonitoringAbsenService; import com.jasamedika.medifirst2000.service.PermohonanStatusPegawaiService; @@ -25,6 +27,9 @@ import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.util.*; +import static java.util.Calendar.DAY_OF_MONTH; +import static java.util.Calendar.MONTH; + @Service("PegawaiCutiService") public class PermohonanStatusPegawaiImpl implements PermohonanStatusPegawaiService { @@ -34,6 +39,9 @@ public class PermohonanStatusPegawaiImpl implements PermohonanStatusPegawaiServi @Autowired private MonitoringAbsenService monitoringAbsenService; + @Autowired + private JatahCutiDanIzinService jatahCutiDanIzinService; + @Autowired private PlanningPegawaiStatusDao planningPegawaiStatusDao; @@ -187,7 +195,6 @@ public class PermohonanStatusPegawaiImpl implements PermohonanStatusPegawaiServi return result; } - @Override public Integer difCutiTerpakai(Integer cutiTerpakai, Integer dataCuti) { int difCutiTerpakai = 0; if (cutiTerpakai > dataCuti) @@ -1820,80 +1827,24 @@ public class PermohonanStatusPegawaiImpl implements PermohonanStatusPegawaiServi Map result = new HashMap<>(); if (CommonUtil.isNotNullOrEmpty(vo)) { for (FactoRateKelompokShiftVO vos : vo.getFactorRateKelompokShift()) { - Date monthDayNow = new Date(); - Calendar cal = Calendar.getInstance(); - cal.setTime(monthDayNow); - String monthPeriodInput = String.valueOf(cal.get(Calendar.MONTH) + 1); - if (monthPeriodInput.length() == 1) { - monthPeriodInput = "0" + monthPeriodInput; - } - String dayPeriodInput = String.valueOf(cal.get(Calendar.DAY_OF_MONTH)); - if (dayPeriodInput.length() == 1) { - dayPeriodInput = "0" + dayPeriodInput; - } - String periodeInput = Integer.parseInt(vos.getPeriode()) - 1 + "-" + monthPeriodInput + "-" - + dayPeriodInput; + String periodeInput = getString(vos); List listpegawai = pegawaiDao.findPegawaiStatusAktif(vos.getKelompokShift().getId(), periodeInput); for (Pegawai pegawai : listpegawai) { int todaysYear = Calendar.getInstance().get(Calendar.YEAR); int todaysYear1 = Integer .parseInt(settingDataFixedDao.getSettingDataFixed("tahunPenangguhanException")); - // storing data cuti - Map dataCuti = getDataCuti(pegawai.getId(), String.valueOf(todaysYear), - vos.getKomponenIndex().getId()); // menghitung data - // cuti selalu - // based on - // tahun - // berjalan - List> listDataCuti = new ArrayList<>(); - Map mapDataCutiB2 = new HashMap<>(); - Map mapDataCutiB1 = new HashMap<>(); - Map mapDataCutiB = new HashMap<>(); - Map mapDataCutiN = new HashMap<>(); - Map mapDataCutiN1 = new HashMap<>(); - Map mapDataCutiN2 = new HashMap<>(); - mapDataCutiB2.put("sisaCuti", dataCuti.get("sisaCutiB2")); - mapDataCutiB2.put("cutiTerpakai", dataCuti.get("cutiTerpakaiB2")); - mapDataCutiB2.put("isTangguhkan", dataCuti.get("isTangguhkanB2")); - mapDataCutiB2.put("tahun", todaysYear - 2); - mapDataCutiB2.put("komponenIndex", 21); - mapDataCutiB1.put("sisaCuti", dataCuti.get("sisaCutiB1")); - mapDataCutiB1.put("cutiTerpakai", dataCuti.get("cutiTerpakaiB1")); - mapDataCutiB1.put("isTangguhkan", dataCuti.get("isTangguhkanB1")); - mapDataCutiB1.put("tahun", todaysYear - 1); - mapDataCutiB1.put("komponenIndex", 21); - mapDataCutiB.put("sisaCuti", dataCuti.get("sisaCutiB")); - mapDataCutiB.put("cutiTerpakai", dataCuti.get("cutiTerpakaiB")); - mapDataCutiB.put("isTangguhkan", dataCuti.get("isTangguhkanB")); - mapDataCutiB.put("tahun", todaysYear); - mapDataCutiB.put("komponenIndex", 21); - mapDataCutiN.put("sisaCuti", dataCuti.get("sisaCutiN")); - mapDataCutiN.put("cutiTerpakai", dataCuti.get("cutiTerpakaiN")); - mapDataCutiN.put("isTangguhkan", dataCuti.get("isTangguhkanN")); - mapDataCutiN.put("tahun", todaysYear); - mapDataCutiN.put("komponenIndex", 5); - mapDataCutiN1.put("sisaCuti", dataCuti.get("sisaCutiN1")); - mapDataCutiN1.put("cutiTerpakai", dataCuti.get("cutiTerpakaiN1")); - mapDataCutiN1.put("isTangguhkan", dataCuti.get("isTangguhkanN1")); - mapDataCutiN1.put("tahun", todaysYear - 1); - mapDataCutiN1.put("komponenIndex", 5); - mapDataCutiN2.put("sisaCuti", dataCuti.get("sisaCutiN2")); - mapDataCutiN2.put("cutiTerpakai", dataCuti.get("cutiTerpakaiN2")); - mapDataCutiN2.put("isTangguhkan", dataCuti.get("isTangguhkanN2")); - mapDataCutiN2.put("tahun", todaysYear - 2); - mapDataCutiN2.put("komponenIndex", 5); - listDataCuti.add(mapDataCutiB2); - listDataCuti.add(mapDataCutiB1); - listDataCuti.add(mapDataCutiB); - listDataCuti.add(mapDataCutiN); - listDataCuti.add(mapDataCutiN1); - listDataCuti.add(mapDataCutiN2); + /* + * storing data cuti, menghitung data cuti selalu based on + * tahun berjalan + */ + DataCutiDto cutiIzin = jatahCutiDanIzinService.getDataCuti(pegawai.getId(), + String.valueOf(todaysYear), vos.getKomponenIndex().getId()); + List> listDataCuti = getMaps(cutiIzin, todaysYear); KomponenIndexVO kompIndexVoB = new KomponenIndexVO(); kompIndexVoB.setId(21); KomponenIndexVO kompIndexVoT = new KomponenIndexVO(); kompIndexVoT.setId(5); - for (Map mapDataCuti : listDataCuti) { JatahCutiDanIzin jatahCutiDanIzin = new JatahCutiDanIzin(); jatahCutiDanIzin.setPegawai(pegawai); @@ -2009,6 +1960,66 @@ public class PermohonanStatusPegawaiImpl implements PermohonanStatusPegawaiServi return result; } + private static List> getMaps(DataCutiDto cutiIzin, int todaysYear) { + List> listDataCuti = new ArrayList<>(); + Map mapDataCutiB2 = new HashMap<>(); + Map mapDataCutiB1 = new HashMap<>(); + Map mapDataCutiB = new HashMap<>(); + Map mapDataCutiN = new HashMap<>(); + Map mapDataCutiN1 = new HashMap<>(); + Map mapDataCutiN2 = new HashMap<>(); + mapDataCutiB2.put("sisaCuti", cutiIzin.getSisaCutiB2()); + mapDataCutiB2.put("cutiTerpakai", cutiIzin.getCutiTerpakaiB2()); + mapDataCutiB2.put("isTangguhkan", cutiIzin.getIsTangguhkanB2()); + mapDataCutiB2.put("tahun", todaysYear - 2); + mapDataCutiB2.put("komponenIndex", 21); + mapDataCutiB1.put("sisaCuti", cutiIzin.getSisaCutiB1()); + mapDataCutiB1.put("cutiTerpakai", cutiIzin.getCutiTerpakaiB1()); + mapDataCutiB1.put("isTangguhkan", cutiIzin.getIsTangguhkanB1()); + mapDataCutiB1.put("tahun", todaysYear - 1); + mapDataCutiB1.put("komponenIndex", 21); + mapDataCutiB.put("sisaCuti", cutiIzin.getSisaCutiB()); + mapDataCutiB.put("cutiTerpakai", cutiIzin.getCutiTerpakaiB()); + mapDataCutiB.put("isTangguhkan", cutiIzin.getIsTangguhkanB()); + mapDataCutiB.put("tahun", todaysYear); + mapDataCutiB.put("komponenIndex", 21); + mapDataCutiN.put("sisaCuti", cutiIzin.getSisaCutiN()); + mapDataCutiN.put("cutiTerpakai", cutiIzin.getCutiTerpakaiN()); + mapDataCutiN.put("isTangguhkan", cutiIzin.getIsTangguhkanN()); + mapDataCutiN.put("tahun", todaysYear); + mapDataCutiN.put("komponenIndex", 5); + mapDataCutiN1.put("sisaCuti", cutiIzin.getSisaCutiN1()); + mapDataCutiN1.put("cutiTerpakai", cutiIzin.getCutiTerpakaiN1()); + mapDataCutiN1.put("isTangguhkan", cutiIzin.getIsTangguhkanN1()); + mapDataCutiN1.put("tahun", todaysYear - 1); + mapDataCutiN1.put("komponenIndex", 5); + mapDataCutiN2.put("sisaCuti", cutiIzin.getSisaCutiN2()); + mapDataCutiN2.put("cutiTerpakai", cutiIzin.getCutiTerpakaiN2()); + mapDataCutiN2.put("isTangguhkan", cutiIzin.getIsTangguhkanN2()); + mapDataCutiN2.put("tahun", todaysYear - 2); + mapDataCutiN2.put("komponenIndex", 5); + listDataCuti.add(mapDataCutiB2); + listDataCuti.add(mapDataCutiB1); + listDataCuti.add(mapDataCutiB); + listDataCuti.add(mapDataCutiN); + listDataCuti.add(mapDataCutiN1); + listDataCuti.add(mapDataCutiN2); + return listDataCuti; + } + + private static String getString(FactoRateKelompokShiftVO vos) { + Date monthDayNow = new Date(); + Calendar cal = Calendar.getInstance(); + cal.setTime(monthDayNow); + String monthPeriodInput = String.valueOf(cal.get(MONTH) + 1); + if (monthPeriodInput.length() == 1) + monthPeriodInput = "0" + monthPeriodInput; + String dayPeriodInput = String.valueOf(cal.get(DAY_OF_MONTH)); + if (dayPeriodInput.length() == 1) + dayPeriodInput = "0" + dayPeriodInput; + return Integer.parseInt(vos.getPeriode()) - 1 + "-" + monthPeriodInput + "-" + dayPeriodInput; + } + @Override public Map setJatahCutiPegawai(JatahCutiDanIzinVO vo) { Map result = new HashMap<>(); @@ -2016,53 +2027,13 @@ public class PermohonanStatusPegawaiImpl implements PermohonanStatusPegawaiServi int todaysYear = Calendar.getInstance().get(Calendar.YEAR); int todaysYear1 = todaysYear - 1; - // storing_data_cuti - Map dataCuti = getDataCuti(vo.getPegawai().getId(), String.valueOf(todaysYear), - vo.getKomponenIndex().getId()); // menghitung_data_cuti_selalu_based_on_tahun_berjalan - - List> listDataCuti = new ArrayList<>(); - Map mapDataCutiB2 = new HashMap<>(); - Map mapDataCutiB1 = new HashMap<>(); - Map mapDataCutiB = new HashMap<>(); - Map mapDataCutiN = new HashMap<>(); - Map mapDataCutiN1 = new HashMap<>(); - Map mapDataCutiN2 = new HashMap<>(); - mapDataCutiB2.put("sisaCuti", dataCuti.get("sisaCutiB2")); - mapDataCutiB2.put("cutiTerpakai", dataCuti.get("cutiTerpakaiB2")); - mapDataCutiB2.put("isTangguhkan", dataCuti.get("isTangguhkanB2")); - mapDataCutiB2.put("tahun", todaysYear - 2); - mapDataCutiB2.put("komponenIndex", 21); - mapDataCutiB1.put("sisaCuti", dataCuti.get("sisaCutiB1")); - mapDataCutiB1.put("cutiTerpakai", dataCuti.get("cutiTerpakaiB1")); - mapDataCutiB1.put("isTangguhkan", dataCuti.get("isTangguhkanB1")); - mapDataCutiB1.put("tahun", todaysYear - 1); - mapDataCutiB1.put("komponenIndex", 21); - mapDataCutiB.put("sisaCuti", dataCuti.get("sisaCutiB")); - mapDataCutiB.put("cutiTerpakai", dataCuti.get("cutiTerpakaiB")); - mapDataCutiB.put("isTangguhkan", dataCuti.get("isTangguhkanB")); - mapDataCutiB.put("tahun", todaysYear); - mapDataCutiB.put("komponenIndex", 21); - mapDataCutiN.put("sisaCuti", dataCuti.get("sisaCutiN")); - mapDataCutiN.put("cutiTerpakai", dataCuti.get("cutiTerpakaiN")); - mapDataCutiN.put("isTangguhkan", dataCuti.get("isTangguhkanN")); - mapDataCutiN.put("tahun", todaysYear); - mapDataCutiN.put("komponenIndex", 5); - mapDataCutiN1.put("sisaCuti", dataCuti.get("sisaCutiN1")); - mapDataCutiN1.put("cutiTerpakai", dataCuti.get("cutiTerpakaiN1")); - mapDataCutiN1.put("isTangguhkan", dataCuti.get("isTangguhkanN1")); - mapDataCutiN1.put("tahun", todaysYear - 1); - mapDataCutiN1.put("komponenIndex", 5); - mapDataCutiN2.put("sisaCuti", dataCuti.get("sisaCutiN2")); - mapDataCutiN2.put("cutiTerpakai", dataCuti.get("cutiTerpakaiN2")); - mapDataCutiN2.put("isTangguhkan", dataCuti.get("isTangguhkanN2")); - mapDataCutiN2.put("tahun", todaysYear - 2); - mapDataCutiN2.put("komponenIndex", 5); - listDataCuti.add(mapDataCutiB2); - listDataCuti.add(mapDataCutiB1); - listDataCuti.add(mapDataCutiB); - listDataCuti.add(mapDataCutiN); - listDataCuti.add(mapDataCutiN1); - listDataCuti.add(mapDataCutiN2); + /* + * storing_data_cuti + * menghitung_data_cuti_selalu_based_on_tahun_berjalan + */ + DataCutiDto cutiIzin = jatahCutiDanIzinService.getDataCuti(vo.getPegawai().getId(), + String.valueOf(todaysYear), vo.getKomponenIndex().getId()); + List> listDataCuti = getMaps(cutiIzin, todaysYear); KomponenIndexVO kompIndexVoB = new KomponenIndexVO(); kompIndexVoB.setId(21); KomponenIndexVO kompIndexVoT = new KomponenIndexVO(); @@ -2227,7 +2198,7 @@ public class PermohonanStatusPegawaiImpl implements PermohonanStatusPegawaiServi } @Override - public Map perbaruiDataCuti(Integer idPegawai, Integer idStatusPegawai) { + public DataCutiDto perbaruiDataCuti(Integer idPegawai, Integer idStatusPegawai) { PegawaiVO pegawaiVo = new PegawaiVO(); pegawaiVo.setId(idPegawai); @@ -2243,14 +2214,14 @@ public class PermohonanStatusPegawaiImpl implements PermohonanStatusPegawaiServi int yearn2 = Integer.parseInt(year) - 2; String yearN2 = Integer.toString(yearn2); - Map dataCuti = this.getDataCuti(idPegawai, year, idStatusPegawai); + DataCutiDto cutiIzin = jatahCutiDanIzinService.getDataCuti(idPegawai, year, idStatusPegawai); JatahCutiDanIzinVO voTahunIni = new JatahCutiDanIzinVO(); voTahunIni.setStatusEnabled(Master.STATUS_ENABLE_TRUE); voTahunIni.setTahun(year); voTahunIni.setKdProfile(Master.KODE_PROFILE); voTahunIni.setPegawai(pegawaiVo); - voTahunIni.setValue(Integer.valueOf(dataCuti.get("dataCutiB").toString())); + voTahunIni.setValue(Integer.valueOf(cutiIzin.getDataCutiB().toString())); voTahunIni.setKomponenIndex(komponenIndexVo); voTahunIni.setIsTangguhkan(false); this.setJatahCutiPegawaiRecursive(voTahunIni); @@ -2260,7 +2231,7 @@ public class PermohonanStatusPegawaiImpl implements PermohonanStatusPegawaiServi voTahunLalu.setTahun(yearN1); voTahunLalu.setKdProfile(Master.KODE_PROFILE); voTahunLalu.setPegawai(pegawaiVo); - voTahunLalu.setValue(Integer.valueOf(dataCuti.get("dataCutiB1").toString())); + voTahunLalu.setValue(Integer.valueOf(cutiIzin.getDataCutiB1().toString())); voTahunLalu.setKomponenIndex(komponenIndexVo); voTahunLalu.setIsTangguhkan(false); this.setJatahCutiPegawaiRecursive(voTahunLalu); @@ -2270,12 +2241,12 @@ public class PermohonanStatusPegawaiImpl implements PermohonanStatusPegawaiServi voDuaTahunLalu.setTahun(yearN2); voDuaTahunLalu.setKdProfile(Master.KODE_PROFILE); voDuaTahunLalu.setPegawai(pegawaiVo); - voDuaTahunLalu.setValue(Integer.valueOf(dataCuti.get("dataCutiB2").toString())); + voDuaTahunLalu.setValue(Integer.valueOf(cutiIzin.getDataCutiB2().toString())); voDuaTahunLalu.setKomponenIndex(komponenIndexVo); voDuaTahunLalu.setIsTangguhkan(false); this.setJatahCutiPegawaiRecursive(voDuaTahunLalu); - return new HashMap<>(dataCuti); + return cutiIzin; } @Override diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/ReportServiceImpl.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/ReportServiceImpl.java index f9b42512..c9cb8fb2 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/ReportServiceImpl.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/ReportServiceImpl.java @@ -76,9 +76,6 @@ public class ReportServiceImpl extends BaseVoServiceImpl implements ReportServic @Autowired private MonitoringAbsenService monitoringAbsenService; - @Autowired - private PermohonanStatusPegawaiService permohonanStatusPegawaiService; - @Autowired private SlipGajiService slipGajiService; @@ -115,6 +112,9 @@ public class ReportServiceImpl extends BaseVoServiceImpl implements ReportServic @Autowired private SlipGajiDao slipGajiDao; + @Autowired + private JatahCutiDanIzinService jatahCutiDanIzinService; + private static final String[] INDONESIAN_WEEK = new String[] { "Senin", "Selasa", "Rabu", "Kamis", "Jumat", "Sabtu", "Minggu" }; @@ -1861,12 +1861,10 @@ public class ReportServiceImpl extends BaseVoServiceImpl implements ReportServic result.put("noHandphone", planningPegawaiStatus.getNomorTelepon()); result.put("unitKerja", pegawai.get("unitKerja")); result.put("tahun", pegawai.get("tahun")); - Map cutiTahunan = permohonanStatusPegawaiService - .getDataCuti(planningPegawaiStatus.getPegawai().getId(), null, 1); - if (CommonUtil.isNotNullOrEmpty(cutiTahunan)) { - result.put("cutiTerpakai", cutiTahunan.get("cutiTerpakai")); - result.put("sisaCuti", cutiTahunan.get("sisaCuti")); - } + DataCutiDto cutiIzin = jatahCutiDanIzinService.getDataCuti(planningPegawaiStatus.getPegawai().getId(), + null, 1); + result.put("cutiTerpakai", cutiIzin.getCutiTerpakaiN()); + result.put("sisaCuti", cutiIzin.getSisaCuti()); } } return result; @@ -2094,18 +2092,16 @@ public class ReportServiceImpl extends BaseVoServiceImpl implements ReportServic result.put("noHandphone", planningPegawaiStatus.getNomorTelepon()); result.put("unitKerja", unitKerja.getName()); result.put("tahun", pegawai.get("tahun")); - Map cutiTahunan = permohonanStatusPegawaiService - .getDataCuti(planningPegawaiStatus.getPegawai().getId(), null, 1); - if (CommonUtil.isNotNullOrEmpty(cutiTahunan)) { - result.put("cutiTerpakai", cutiTahunan.get("cutiTerpakaiN")); - result.put("sisaCuti", cutiTahunan.get("sisaCutiN")); - result.put("cutiTerpakaiN1", cutiTahunan.get("cutiTerpakaiN1")); - result.put("sisaCutiN1", cutiTahunan.get("sisaCutiN1")); - result.put("cutiTerpakaiN2", cutiTahunan.get("cutiTerpakaiN2")); - result.put("sisaCutiN2", cutiTahunan.get("sisaCutiN2")); - result.put("cutiTerpakaiB", cutiTahunan.get("cutiTerpakaiB")); - result.put("sisaCutiB", cutiTahunan.get("sisaCutiB")); - } + DataCutiDto cutiIzin = jatahCutiDanIzinService.getDataCuti(planningPegawaiStatus.getPegawai().getId(), + null, 1); + result.put("cutiTerpakai", cutiIzin.getCutiTerpakaiN()); + result.put("sisaCuti", cutiIzin.getSisaCutiN()); + result.put("cutiTerpakaiN1", cutiIzin.getCutiTerpakaiN1()); + result.put("sisaCutiN1", cutiIzin.getSisaCutiN1()); + result.put("cutiTerpakaiN2", cutiIzin.getCutiTerpakaiN2()); + result.put("sisaCutiN2", cutiIzin.getSisaCutiN2()); + result.put("cutiTerpakaiB", cutiIzin.getCutiTerpakaiB()); + result.put("sisaCutiB", cutiIzin.getSisaCutiB()); } } return result; @@ -2292,18 +2288,16 @@ public class ReportServiceImpl extends BaseVoServiceImpl implements ReportServic result.put("noHandphone", planningPegawaiStatus.getNomorTelepon()); result.put("unitKerja", pegawai.get("unitKerja")); result.put("tahun", pegawai.get("tahun")); - Map cutiTahunan = permohonanStatusPegawaiService - .getDataCuti(planningPegawaiStatus.getPegawai().getId(), null, 1); - if (CommonUtil.isNotNullOrEmpty(cutiTahunan)) { - result.put("cutiTerpakai", cutiTahunan.get("cutiTerpakaiN")); - result.put("sisaCuti", cutiTahunan.get("sisaCutiN")); - result.put("cutiTerpakaiN1", cutiTahunan.get("cutiTerpakaiN1")); - result.put("sisaCutiN1", cutiTahunan.get("sisaCutiN1")); - result.put("cutiTerpakaiN2", cutiTahunan.get("cutiTerpakaiN2")); - result.put("sisaCutiN2", cutiTahunan.get("sisaCutiN2")); - result.put("cutiTerpakaiB", cutiTahunan.get("cutiTerpakaiB")); - result.put("sisaCutiB", cutiTahunan.get("sisaCutiB")); - } + DataCutiDto cutiIzin = jatahCutiDanIzinService.getDataCuti(planningPegawaiStatus.getPegawai().getId(), + null, 1); + result.put("cutiTerpakai", cutiIzin.getCutiTerpakaiN()); + result.put("sisaCuti", cutiIzin.getSisaCutiN()); + result.put("cutiTerpakaiN1", cutiIzin.getCutiTerpakaiN1()); + result.put("sisaCutiN1", cutiIzin.getSisaCutiN1()); + result.put("cutiTerpakaiN2", cutiIzin.getCutiTerpakaiN2()); + result.put("sisaCutiN2", cutiIzin.getSisaCutiN2()); + result.put("cutiTerpakaiB", cutiIzin.getCutiTerpakaiB()); + result.put("sisaCutiB", cutiIzin.getSisaCutiB()); } } return result; @@ -2404,12 +2398,10 @@ public class ReportServiceImpl extends BaseVoServiceImpl implements ReportServic result.put("noHandphone", planningPegawaiStatus.getNomorTelepon()); result.put("unitKerja", unitKerja.getName()); result.put("tahun", pegawai.get("tahun")); - Map cutiTahunan = permohonanStatusPegawaiService - .getDataCuti(planningPegawaiStatus.getPegawai().getId(), null, 1); - if (CommonUtil.isNotNullOrEmpty(cutiTahunan)) { - result.put("cutiTerpakai", cutiTahunan.get("cutiTerpakai")); - result.put("sisaCuti", cutiTahunan.get("sisaCuti")); - } + DataCutiDto cutiIzin = jatahCutiDanIzinService.getDataCuti(planningPegawaiStatus.getPegawai().getId(), + null, 1); + result.put("cutiTerpakai", cutiIzin.getCutiTerpakaiN()); + result.put("sisaCuti", cutiIzin.getSisaCuti()); } } return result; @@ -2569,12 +2561,10 @@ public class ReportServiceImpl extends BaseVoServiceImpl implements ReportServic result.put("noHandphone", planningPegawaiStatus.getNomorTelepon()); result.put("unitKerja", unitKerja.getName()); result.put("tahun", pegawai.get("tahun")); - Map cutiTahunan = permohonanStatusPegawaiService - .getDataCuti(planningPegawaiStatus.getPegawai().getId(), null, 1); - if (CommonUtil.isNotNullOrEmpty(cutiTahunan)) { - result.put("cutiTerpakai", cutiTahunan.get("cutiTerpakai")); - result.put("sisaCuti", cutiTahunan.get("sisaCuti")); - } + DataCutiDto cutiIzin = jatahCutiDanIzinService.getDataCuti(planningPegawaiStatus.getPegawai().getId(), + null, 1); + result.put("cutiTerpakai", cutiIzin.getCutiTerpakaiN()); + result.put("sisaCuti", cutiIzin.getSisaCuti()); } } return result; diff --git a/jasamedika-core/src/main/java/com/jasamedika/medifirst2000/util/DateUtil.java b/jasamedika-core/src/main/java/com/jasamedika/medifirst2000/util/DateUtil.java index 7e9b4f58..a4a80dee 100644 --- a/jasamedika-core/src/main/java/com/jasamedika/medifirst2000/util/DateUtil.java +++ b/jasamedika-core/src/main/java/com/jasamedika/medifirst2000/util/DateUtil.java @@ -237,6 +237,12 @@ public final class DateUtil implements Serializable { return now.get(Calendar.YEAR); } + public static Date getInstanceCalendar(int addYear) { + Calendar calendar = Calendar.getInstance(); + calendar.add(Calendar.YEAR, addYear); + return calendar.getTime(); + } + public static final synchronized Integer getYearFromDate(Date date) { Calendar cal = Calendar.getInstance(); cal.setTime(date); diff --git a/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/dto/DataCutiDto.java b/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/dto/DataCutiDto.java new file mode 100644 index 00000000..bd9670ac --- /dev/null +++ b/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/dto/DataCutiDto.java @@ -0,0 +1,78 @@ +package com.jasamedika.medifirst2000.dto; + +import lombok.*; + +/** + * @author Salman + * @version 1.0.0 + * @since 09/01/2025 + */ +@Data +@Builder +@AllArgsConstructor +@NoArgsConstructor +public class DataCutiDto { + + private String sisaCuti; + + private Integer sisaIzin; + + private Integer sisaJatahRawatJalan; + + private Integer sisaJatahRawatInap; + + private Integer sisaCutiB; + + private Integer sisaCutiB1; + + private Integer sisaCutiB2; + + private Integer sisaCutiN; + + private Integer sisaCutiN1; + + private Integer sisaCutiN2; + + private Integer cutiTerpakaiB; + + private Integer cutiTerpakaiB1; + + private Integer cutiTerpakaiB2; + + private Integer cutiTerpakaiN; + + private Integer cutiTerpakaiN1; + + private Integer cutiTerpakaiN2; + + private Boolean isTangguhkanB; + + private Boolean isTangguhkanB1; + + private Boolean isTangguhkanB2; + + private Boolean isTangguhkanN; + + private Boolean isTangguhkanN1; + + private Boolean isTangguhkanN2; + + private Integer dataCutiB; + + private Integer dataCutiB1; + + private Integer dataCutiB2; + + private Integer dataCutiN; + + private Integer dataCutiN1; + + private Integer dataCutiN2; + + private Integer dataCutiN3; + + private String jatahCuti; + + private Integer jatahIzin; + +} diff --git a/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/dto/JatahCutiRequest.java b/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/dto/JatahCutiRequest.java new file mode 100644 index 00000000..9ed999e5 --- /dev/null +++ b/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/dto/JatahCutiRequest.java @@ -0,0 +1,25 @@ +package com.jasamedika.medifirst2000.dto; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @author Salman + * @version 1.0.0 + * @since 10/01/2025 + */ +@Data +@Builder +@AllArgsConstructor +@NoArgsConstructor +public class JatahCutiRequest { + + Integer pegawaiId; + + String year; + + Integer statusPegawaiId; + +} diff --git a/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/dto/PresensiHariLibur.java b/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/dto/PresensiHariLibur.java new file mode 100644 index 00000000..83de45f3 --- /dev/null +++ b/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/dto/PresensiHariLibur.java @@ -0,0 +1,29 @@ +package com.jasamedika.medifirst2000.dto; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Date; + +/** + * @author Salman + * @version 1.0.0 + * @since 10/01/2025 + */ +@Data +@Builder +@AllArgsConstructor +@NoArgsConstructor +public class PresensiHariLibur { + + private Integer idPegawai; + + private String namaLengkap; + + private Date tanggal; + + private Boolean isCutiBersamaDitangguhkan; + +} diff --git a/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/entities/JatahCutiDanIzin.java b/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/entities/JatahCutiDanIzin.java index 6f9e0cde..d07d20f1 100644 --- a/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/entities/JatahCutiDanIzin.java +++ b/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/entities/JatahCutiDanIzin.java @@ -1,128 +1,55 @@ package com.jasamedika.medifirst2000.entities; -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.JoinColumn; -import javax.persistence.ManyToOne; -import javax.persistence.Table; -import javax.validation.constraints.NotNull; - import com.jasamedika.medifirst2000.base.BaseTransaction; import com.jasamedika.medifirst2000.helper.Caption; +import lombok.Getter; +import lombok.Setter; -@Entity // @Audited +import javax.persistence.*; +import javax.validation.constraints.NotNull; + +@Getter +@Setter +@Entity @Table(name = "JatahCutiDanIzin_T") public class JatahCutiDanIzin extends BaseTransaction { - + @ManyToOne @JoinColumn(name = "PegawaiFK") - @NotNull(message="Pegawai Harus Diisi") - @Caption(value="Pegawai") + @NotNull(message = "Pegawai Harus Diisi") + @Caption(value = "Pegawai") private Pegawai pegawai; - @Column(name = "PegawaiFK", insertable=false,updatable=false,nullable = false) + @Column(name = "PegawaiFK", insertable = false, updatable = false, nullable = false) private Integer pegawaiId; - + @Column(name = "tahun") @Caption(value = "tahun") private String tahun; - + @ManyToOne @JoinColumn(name = "KomponenIndexFK") - @NotNull(message="KomponenIndex Harus Diisi") - @Caption(value="KomponenIndex") + @NotNull(message = "KomponenIndex Harus Diisi") + @Caption(value = "KomponenIndex") private KomponenIndex komponenIndex; - @Column(name = "KomponenIndexFK", insertable=false,updatable=false,nullable = false) + @Column(name = "KomponenIndexFK", insertable = false, updatable = false, nullable = false) private Integer komponenIndexId; - + @Column(name = "value") @Caption(value = "value") private Integer value; - + @Column(name = "CutiTerpakai") @Caption(value = "CutiTerpakai") private Integer cutiTerpakai; - + @Column(name = "SisaCuti") @Caption(value = "SisaCuti") private Integer sisaCuti; - + @Column(name = "isTangguhkanSisaCuti") @Caption(value = "Tangguhkan Sisa Cuti") private Boolean isTangguhkan; - - public Pegawai getPegawai() { - return pegawai; - } - - public void setPegawai(Pegawai pegawai) { - this.pegawai = pegawai; - } - - public Integer getPegawaiId() { - return pegawaiId; - } - - public void setPegawaiId(Integer pegawaiId) { - this.pegawaiId = pegawaiId; - } - - public String getTahun() { - return tahun; - } - - public void setTahun(String tahun) { - this.tahun = tahun; - } - - public KomponenIndex getKomponenIndex() { - return komponenIndex; - } - - public void setKomponenIndex(KomponenIndex komponenIndex) { - this.komponenIndex = komponenIndex; - } - - public Integer getKomponenIndexId() { - return komponenIndexId; - } - - public void setKomponenIndexId(Integer komponenIndexId) { - this.komponenIndexId = komponenIndexId; - } - - public Integer getValue() { - return value; - } - - public void setValue(Integer value) { - this.value = value; - } - - public Integer getCutiTerpakai() { - return cutiTerpakai; - } - - public void setCutiTerpakai(Integer cutiTerpakai) { - this.cutiTerpakai = cutiTerpakai; - } - - public Integer getSisaCuti() { - return sisaCuti; - } - - public void setSisaCuti(Integer sisaCuti) { - this.sisaCuti = sisaCuti; - } - - public Boolean getIsTangguhkan() { - return isTangguhkan; - } - - public void setIsTangguhkan(Boolean isTangguhkan) { - this.isTangguhkan = isTangguhkan; - } - } diff --git a/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/entities/ListTanggalCuti.java b/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/entities/ListTanggalCuti.java index fd307233..a99bd462 100644 --- a/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/entities/ListTanggalCuti.java +++ b/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/entities/ListTanggalCuti.java @@ -12,59 +12,30 @@ import javax.persistence.Table; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.jasamedika.medifirst2000.base.BaseTransaction; import com.jasamedika.medifirst2000.helper.Caption; +import lombok.Getter; +import lombok.Setter; +@Getter +@Setter @Entity -@Table(name="ListTanggalCuti_T") -@JsonIgnoreProperties({"hibernateLazyInitializer", "handler"}) -public class ListTanggalCuti extends BaseTransaction{ - - @Caption(value="tgl") - @Column(name="tgl", nullable=true) +@Table(name = "ListTanggalCuti_T") +@JsonIgnoreProperties({ "hibernateLazyInitializer", "handler" }) +public class ListTanggalCuti extends BaseTransaction { + + @Caption(value = "tgl") + @Column(name = "tgl") private Date tgl; - - @Caption(value="Approval Status") - @Column(name="ApprovalStatus", nullable=true) + + @Caption(value = "Approval Status") + @Column(name = "ApprovalStatus") private Boolean approvalStatus; - - @ManyToOne(fetch=FetchType.LAZY) - @JoinColumn(name="ObjectPlanningPegawaiStatusFK") - @Caption(value="Object Planning Pegawai Status") + + @ManyToOne(fetch = FetchType.LAZY) + @JoinColumn(name = "ObjectPlanningPegawaiStatusFK") + @Caption(value = "Object Planning Pegawai Status") private PlanningPegawaiStatus planningPegawaiStatus; - - @Column(name="ObjectPlanningPegawaiStatusFK", insertable=false, updatable=false, nullable = true) + + @Column(name = "ObjectPlanningPegawaiStatusFK", insertable = false, updatable = false) private String planningPegawaiStatusId; - public Date getTgl() { - return tgl; - } - - public void setTgl(Date tgl) { - this.tgl = tgl; - } - - public Boolean getApprovalStatus() { - return approvalStatus; - } - - public void setApprovalStatus(Boolean approvalStatus) { - this.approvalStatus = approvalStatus; - } - - public PlanningPegawaiStatus getPlanningPegawaiStatus() { - return planningPegawaiStatus; - } - - public void setPlanningPegawaiStatus(PlanningPegawaiStatus planningPegawaiStatus) { - this.planningPegawaiStatus = planningPegawaiStatus; - } - - public String getPlanningPegawaiStatusId() { - return planningPegawaiStatusId; - } - - public void setPlanningPegawaiStatusId(String planningPegawaiStatusId) { - this.planningPegawaiStatusId = planningPegawaiStatusId; - } - - } diff --git a/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/entities/MapKalenderToHariLibur.java b/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/entities/MapKalenderToHariLibur.java index 826d064a..bb1db93f 100644 --- a/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/entities/MapKalenderToHariLibur.java +++ b/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/entities/MapKalenderToHariLibur.java @@ -1,73 +1,52 @@ package com.jasamedika.medifirst2000.entities; -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.JoinColumn; -import javax.persistence.ManyToOne; -import javax.persistence.Table; -import javax.validation.constraints.NotNull; - import com.jasamedika.medifirst2000.base.BaseMaster; import com.jasamedika.medifirst2000.helper.Caption; +import lombok.Getter; +import lombok.Setter; + +import javax.persistence.*; +import javax.validation.constraints.NotNull; + +import static javax.persistence.GenerationType.SEQUENCE; /** * class MapKalenderToHariLibur * * @author Generator */ -@Entity // @Audited +@Getter +@Setter +@Entity @Table(name = "MapKalenderToHariLibur_M") public class MapKalenderToHariLibur extends BaseMaster { + + private static final long serialVersionUID = -1571116407894714011L; + + @Id + @GeneratedValue(strategy = SEQUENCE, generator = "public.mapkalendertoharilibur_m_id_seq") + @SequenceGenerator(name = "public.mapkalendertoharilibur_m_id_seq", sequenceName = "public.mapkalendertoharilibur_m_id_seq", allocationSize = 1) + @Column(name = "id") + protected Integer id; + @ManyToOne @JoinColumn(name = "ObjectHariLiburFk") @NotNull(message = "Kd Hari Libur tidak boleh kosong") - @Caption(value = "Object Hari Libur") private HariLibur hariLibur; - public void setHariLibur(HariLibur hariLibur) { - this.hariLibur = hariLibur; - } - - public HariLibur getHariLibur() { - return this.hariLibur; - } - @Column(name = "ObjectHariLiburFk", insertable = false, updatable = false) private Integer hariLiburId; @ManyToOne - @JoinColumn(name = "ObjectTanggalFk") - + @JoinColumn(name = "ObjectTanggalFk") @Caption(value = "Object Tanggal") private Kalender tanggal; - public void setTgl(Kalender tanggal) { - this.tanggal = tanggal; - } - - public Kalender getTgl() { - return this.tanggal; - } - @Column(name = "ObjectTanggalFk", insertable = false, updatable = false, nullable = false) private Integer tanggalId; - @Id - @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "public.mapkalendertoharilibur_m_id_seq") - @javax.persistence.SequenceGenerator(name = "public.mapkalendertoharilibur_m_id_seq", sequenceName = "public.mapkalendertoharilibur_m_id_seq", allocationSize = 1) - @Column(name = "id") - protected Integer id; + @Column(name = "is_cuti_bersama_ditangguhkan") + private Boolean isCutiBersamaDitangguhkan; - public Integer getId() { - - return id; - } - - public void setId(Integer id) { - this.id = id; - } } \ No newline at end of file diff --git a/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/entities/PlanningPegawaiStatus.java b/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/entities/PlanningPegawaiStatus.java index bfcd9f12..0daf867f 100644 --- a/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/entities/PlanningPegawaiStatus.java +++ b/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/entities/PlanningPegawaiStatus.java @@ -17,403 +17,142 @@ import com.fasterxml.jackson.annotation.JsonBackReference; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.jasamedika.medifirst2000.base.BaseTransaction; import com.jasamedika.medifirst2000.helper.Caption; +import lombok.Getter; +import lombok.Setter; +@Getter +@Setter @Entity -@Table(name="PlanningPegawaiStatus_T") +@Table(name = "PlanningPegawaiStatus_T") @JsonIgnoreProperties({ "hibernateLazyInitializer", "handler" }) -public class PlanningPegawaiStatus extends BaseTransaction{ +public class PlanningPegawaiStatus extends BaseTransaction { - @Caption(value="No Planning") - @Column(name="NoPlanning", length=15, nullable=true) + @Caption(value = "No Planning") + @Column(name = "NoPlanning", length = 15) private String noPlanning; - - @ManyToOne(fetch=FetchType.LAZY) - @Caption(value="Object Pegawai") - @JoinColumn(name="ObjectPegawaiFk") + + @ManyToOne(fetch = FetchType.LAZY) + @Caption(value = "Object Pegawai") + @JoinColumn(name = "ObjectPegawaiFk") private Pegawai pegawai; - - @Column(name="ObjectPegawaiFk", nullable=true, insertable=false, updatable=false) + + @Column(name = "ObjectPegawaiFk", insertable = false, updatable = false) private Integer pegawaiId; - - @ManyToOne(fetch=FetchType.LAZY) - @Caption(value="Object Status Pegawai Plan") - @JoinColumn(name="ObjectStatusPegawaiPlanFk") + + @ManyToOne(fetch = FetchType.LAZY) + @Caption(value = "Object Status Pegawai Plan") + @JoinColumn(name = "ObjectStatusPegawaiPlanFk") private StatusPegawai statusPegawaiPlan; - - @Column(name="ObjectStatusPegawaiPlanFk", nullable=true, insertable=false, updatable=false) + + @Column(name = "ObjectStatusPegawaiPlanFk", insertable = false, updatable = false) private Integer statusPegawaiPlanId; - + @JsonBackReference @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "planningPegawaiStatus", orphanRemoval = true) private Set listTanggal = new HashSet<>(); - - @ManyToOne(fetch=FetchType.LAZY) - @Caption(value="Object Departemen") - @JoinColumn(name="ObjectDepartemenFk") + + @ManyToOne(fetch = FetchType.LAZY) + @Caption(value = "Object Departemen") + @JoinColumn(name = "ObjectDepartemenFk") private Departemen departemen; - - @Column(name="ObjectDepartemenFk", nullable=true, insertable=false, updatable=false) + + @Column(name = "ObjectDepartemenFk", insertable = false, updatable = false) private Integer departemenId; - - @Caption(value="Deskripsi Status Pegawai Plan") - @Column(name="DeskripsiStatusPegawaiPlan", length=1000, nullable=true) + + @Caption(value = "Deskripsi Status Pegawai Plan") + @Column(name = "DeskripsiStatusPegawaiPlan", length = 1000) private String deskripsiStatusPegawaiPlan; - - @Caption(value="Keterangan Lainya Plan") - @Column(name="KeteranganLainyaPlan", length=1000, nullable=true) + + @Caption(value = "Keterangan Lainya Plan") + @Column(name = "KeteranganLainyaPlan", length = 1000) private String keteranganLainyaPlan; - - @ManyToOne(fetch=FetchType.LAZY) - @Caption(value="Object No SK") - @JoinColumn(name="ObjectNoSkFk") + + @ManyToOne(fetch = FetchType.LAZY) + @Caption(value = "Object No SK") + @JoinColumn(name = "ObjectNoSkFk") private SuratKeputusan noSk; - - @Column(name="ObjectNoSkFk", nullable=true, insertable=false, updatable=false) + + @Column(name = "ObjectNoSkFk", insertable = false, updatable = false) private Integer noSkId; - - @ManyToOne(fetch=FetchType.LAZY) - @Caption(value="Object Status Pegawai Exec") - @JoinColumn(name="ObjectStatusPegawaiExecFk") + + @ManyToOne(fetch = FetchType.LAZY) + @Caption(value = "Object Status Pegawai Exec") + @JoinColumn(name = "ObjectStatusPegawaiExecFk") private StatusPegawai statusPegawaiExec; - - @Column(name="ObjectStatusPegawaiExecFk", nullable=true, insertable=false, updatable=false) - private Integer statusPegawaiExecId; - - @Caption(value="Deskripsi Status Pegawai Exec") - @Column(name="DeskripsiStatusPegawaiExec", length=1000, nullable=true) + + @Column(name = "ObjectStatusPegawaiExecFk", insertable = false, updatable = false) + private Integer statusPegawaiExecId; + + @Caption(value = "Deskripsi Status Pegawai Exec") + @Column(name = "DeskripsiStatusPegawaiExec", length = 1000) private String deskripsiStatusPegawaiExec; - - @Caption(value="Keterangan Lainya Exec") - @Column(name="KeteranganLainyaExec", length=1000, nullable=true) + + @Caption(value = "Keterangan Lainya Exec") + @Column(name = "KeteranganLainyaExec", length = 1000) private String keteranganLainyaExec; - @Caption(value="Tgl Pengajuan") - @Column(name="TglPengajuan", nullable=true) + @Caption(value = "Tgl Pengajuan") + @Column(name = "TglPengajuan") private Date tglPengajuan; - - @Caption(value="Tgl Keputusan") - @Column(name="TglKeputusan", nullable=true) + + @Caption(value = "Tgl Keputusan") + @Column(name = "TglKeputusan") private Date tglKeputusan; - - @Caption(value="Approval Status") - @Column(name="ApprovalStatus", nullable=true) + + @Caption(value = "Approval Status") + @Column(name = "ApprovalStatus") private Integer approvalStatus; - - @Caption(value="jumlahHari") - @Column(name="jumlahHari", nullable=true) + + @Caption(value = "jumlahHari") + @Column(name = "jumlahHari") private Integer jumlahHari; - - @Caption(value="keterangan") - @Column(name="keterangan", nullable=true) + + @Caption(value = "keterangan") + @Column(name = "keterangan") private String keterangan; - - @Caption(value="Jenis Perawatan") - @Column(name="jenisPerawatan", nullable=true) - private Integer jenisPerawatan; //Add field untuk permohonan perubahan kehadiran karena sakit - - @Caption(value="Alamat Selama Cuti") - @Column(name="alamatCuti", nullable=true) - private String alamatCuti; //Add field untuk input alamat selama cuti di menu pengajuan Cuti - - @Caption(value="Nomor Telepon") - @Column(name="nomorTelepon", nullable=true) + + @Caption(value = "Jenis Perawatan") + @Column(name = "jenisPerawatan") + private Integer jenisPerawatan; + + @Caption(value = "Alamat Selama Cuti") + @Column(name = "alamatCuti") + private String alamatCuti; + + @Caption(value = "Nomor Telepon") + @Column(name = "nomorTelepon") private String nomorTelepon; - - @Caption(value="Nomor Surat Tugas") - @Column(name="noSuratTugas", nullable=true) + + @Caption(value = "Nomor Surat Tugas") + @Column(name = "noSuratTugas") private String noSuratTugas; - - @Caption(value="Nomor Nota Dinas") - @Column(name="noNotaDinas", nullable=true) + + @Caption(value = "Nomor Nota Dinas") + @Column(name = "noNotaDinas") private String noNotaDinas; - - @Caption(value="Tgl Nota Dinas") - @Column(name="TglNotaDinas", nullable=true) + + @Caption(value = "Tgl Nota Dinas") + @Column(name = "TglNotaDinas") private Date tglNotaDinas; - - @Caption(value="Alamat Tugas Dinas") - @Column(name="alamatTugas", nullable=true) - private String alamatTugas; - - @ManyToOne(optional=true,fetch=FetchType.LAZY) - @Caption(value="Object Jabatan Pemberi Nota Dinas") - @JoinColumn(name="ObjectJabatanPemberiNotaDinasFk", nullable=true) + + @Caption(value = "Alamat Tugas Dinas") + @Column(name = "alamatTugas") + private String alamatTugas; + + @ManyToOne(fetch = FetchType.LAZY) + @Caption(value = "Object Jabatan Pemberi Nota Dinas") + @JoinColumn(name = "ObjectJabatanPemberiNotaDinasFk") private Jabatan jabatanPemberiNotaDinas; - - @Column(name="ObjectJabatanPemberiNotaDinasFk", nullable=true, insertable=false, updatable=false) + + @Column(name = "ObjectJabatanPemberiNotaDinasFk", insertable = false, updatable = false) private Integer jabatanIdPemberiNotaDinas; - - @Caption(value="is Cuti Luar Negeri") - @Column(name="isCutiLuarNegeri", nullable=true) + + @Caption(value = "is Cuti Luar Negeri") + @Column(name = "isCutiLuarNegeri") private Boolean isCutiLuarNegeri; - - @Caption(value="is Cuti Luar Kota") - @Column(name="isCutiLuarKota", nullable=true) + + @Caption(value = "is Cuti Luar Kota") + @Column(name = "isCutiLuarKota") private Boolean isCutiLuarKota; - - public String getNoPlanning() { - return noPlanning; - } - public void setNoPlanning(String noPlanning) { - this.noPlanning = noPlanning; - } - - public Pegawai getPegawai() { - return pegawai; - } - - public void setPegawai(Pegawai pegawai) { - this.pegawai = pegawai; - } - - public Integer getPegawaiId() { - return pegawaiId; - } - - public void setPegawaiId(Integer pegawaiId) { - this.pegawaiId = pegawaiId; - } - - public StatusPegawai getStatusPegawaiPlan() { - return statusPegawaiPlan; - } - - public void setStatusPegawaiPlan(StatusPegawai statusPegawaiPlan) { - this.statusPegawaiPlan = statusPegawaiPlan; - } - - public Integer getStatusPegawaiPlanId() { - return statusPegawaiPlanId; - } - - public void setStatusPegawaiPlanId(Integer statusPegawaiPlanId) { - this.statusPegawaiPlanId = statusPegawaiPlanId; - } - - public Departemen getDepartemen() { - return departemen; - } - - public void setDepartemen(Departemen departemen) { - this.departemen = departemen; - } - - public Integer getDepartemenId() { - return departemenId; - } - - public void setDepartemenId(Integer departemenId) { - this.departemenId = departemenId; - } - - public String getDeskripsiStatusPegawaiPlan() { - return deskripsiStatusPegawaiPlan; - } - - public void setDeskripsiStatusPegawaiPlan(String deskripsiStatusPegawaiPlan) { - this.deskripsiStatusPegawaiPlan = deskripsiStatusPegawaiPlan; - } - - public String getKeteranganLainyaPlan() { - return keteranganLainyaPlan; - } - - public void setKeteranganLainyaPlan(String keteranganLainyaPlan) { - this.keteranganLainyaPlan = keteranganLainyaPlan; - } - - public SuratKeputusan getNoSk() { - return noSk; - } - - public void setNoSk(SuratKeputusan noSk) { - this.noSk = noSk; - } - - public Integer getNoSkId() { - return noSkId; - } - - public void setNoSkId(Integer noSkId) { - this.noSkId = noSkId; - } - - public StatusPegawai getStatusPegawaiExec() { - return statusPegawaiExec; - } - - public void setStatusPegawaiExec(StatusPegawai statusPegawaiExec) { - this.statusPegawaiExec = statusPegawaiExec; - } - - public Integer getStatusPegawaiExecId() { - return statusPegawaiExecId; - } - - public void setStatusPegawaiExecId(Integer statusPegawaiExecId) { - this.statusPegawaiExecId = statusPegawaiExecId; - } - public String getDeskripsiStatusPegawaiExec() { - return deskripsiStatusPegawaiExec; - } - - public void setDeskripsiStatusPegawaiExec(String deskripsiStatusPegawaiExec) { - this.deskripsiStatusPegawaiExec = deskripsiStatusPegawaiExec; - } - - public String getKeteranganLainyaExec() { - return keteranganLainyaExec; - } - - public void setKeteranganLainyaExec(String keteranganLainyaExec) { - this.keteranganLainyaExec = keteranganLainyaExec; - } - - public Date getTglPengajuan() { - return tglPengajuan; - } - - public void setTglPengajuan(Date tglPengajuan) { - this.tglPengajuan = tglPengajuan; - } - - public Date getTglKeputusan() { - return tglKeputusan; - } - - public void setTglKeputusan(Date tglKeputusan) { - this.tglKeputusan = tglKeputusan; - } - - public Integer getApprovalStatus() { - return approvalStatus; - } - - public void setApprovalStatus(Integer approvalStatus) { - this.approvalStatus = approvalStatus; - } - - public Integer getJumlahHari() { - return jumlahHari; - } - - public void setJumlahHari(Integer jumlahHari) { - this.jumlahHari = jumlahHari; - } - - public Set getListTanggal() { - return listTanggal; - } - - public void setListTanggal(Set listTanggal) { - this.listTanggal = listTanggal; - } - - public String getKeterangan() { - return keterangan; - } - - public void setKeterangan(String keterangan) { - this.keterangan = keterangan; - } - - public Integer getJenisPerawatan() { - return jenisPerawatan; - } - - public void setJenisPerawatan(Integer jenisPerawatan) { - this.jenisPerawatan = jenisPerawatan; - } - - public String getAlamatCuti() { - return alamatCuti; - } - - public void setAlamatCuti(String alamatCuti) { - this.alamatCuti = alamatCuti; - } - - public String getNomorTelepon() { - return nomorTelepon; - } - - public void setNomorTelepon(String nomorTelepon) { - this.nomorTelepon = nomorTelepon; - } - - public String getNoSuratTugas() { - return noSuratTugas; - } - - public void setNoSuratTugas(String noSuratTugas) { - this.noSuratTugas = noSuratTugas; - } - - public String getNoNotaDinas() { - return noNotaDinas; - } - - public void setNoNotaDinas(String noNotaDinas) { - this.noNotaDinas = noNotaDinas; - } - - public Date getTglNotaDinas() { - return tglNotaDinas; - } - - public void setTglNotaDinas(Date tglNotaDinas) { - this.tglNotaDinas = tglNotaDinas; - } - - public String getAlamatTugas() { - return alamatTugas; - } - - public void setAlamatTugas(String alamatTugas) { - this.alamatTugas = alamatTugas; - } - - public Jabatan getJabatanPemberiNotaDinas() { - return jabatanPemberiNotaDinas; - } - - public void setJabatanPemberiNotaDinas(Jabatan jabatanPemberiNotaDinas) { - this.jabatanPemberiNotaDinas = jabatanPemberiNotaDinas; - } - - public Integer getJabatanIdPemberiNotaDinas() { - return jabatanIdPemberiNotaDinas; - } - - public void setJabatanIdPemberiNotaDinas(Integer jabatanIdPemberiNotaDinas) { - this.jabatanIdPemberiNotaDinas = jabatanIdPemberiNotaDinas; - } - - public Boolean getIsCutiLuarNegeri() { - return isCutiLuarNegeri; - } - - public void setIsCutiLuarNegeri(Boolean isCutiLuarNegeri) { - this.isCutiLuarNegeri = isCutiLuarNegeri; - } - - public void addListTanggal(ListTanggalCuti listTgl) { - listTanggal.add(listTgl); - listTgl.setPlanningPegawaiStatus(this); - } - - public void removeListTanggal(ListTanggalCuti listTgl) { - listTanggal.remove(listTgl); - listTgl.setPlanningPegawaiStatus(null); - } - - public Boolean getIsCutiLuarKota() { - return isCutiLuarKota; - } - - public void setIsCutiLuarKota(Boolean isCutiLuarKota) { - this.isCutiLuarKota = isCutiLuarKota; - } - } diff --git a/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/vo/JatahCutiDanIzinVO.java b/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/vo/JatahCutiDanIzinVO.java index 34f0cbad..6057266a 100644 --- a/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/vo/JatahCutiDanIzinVO.java +++ b/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/vo/JatahCutiDanIzinVO.java @@ -1,98 +1,29 @@ package com.jasamedika.medifirst2000.vo; - import com.jasamedika.medifirst2000.base.vo.BaseTransactionVO; +import lombok.Getter; +import lombok.Setter; +@Getter +@Setter public class JatahCutiDanIzinVO extends BaseTransactionVO { - + private PegawaiVO pegawai; private Integer pegawaiId; - + private String tahun; - + private KomponenIndexVO komponenIndex; private Integer komponenIndexId; - + private Integer value; - + private Integer cutiTerpakai; - + private Integer sisaCuti; - + private Boolean isTangguhkan; - public PegawaiVO getPegawai() { - return pegawai; - } - - public void setPegawai(PegawaiVO pegawai) { - this.pegawai = pegawai; - } - - public Integer getPegawaiId() { - return pegawaiId; - } - - public void setPegawaiId(Integer pegawaiId) { - this.pegawaiId = pegawaiId; - } - - public String getTahun() { - return tahun; - } - - public void setTahun(String tahun) { - this.tahun = tahun; - } - - public KomponenIndexVO getKomponenIndex() { - return komponenIndex; - } - - public void setKomponenIndex(KomponenIndexVO komponenIndex) { - this.komponenIndex = komponenIndex; - } - - public Integer getKomponenIndexId() { - return komponenIndexId; - } - - public void setKomponenIndexId(Integer komponenIndexId) { - this.komponenIndexId = komponenIndexId; - } - - public Integer getValue() { - return value; - } - - public void setValue(Integer value) { - this.value = value; - } - - public Integer getCutiTerpakai() { - return cutiTerpakai; - } - - public void setCutiTerpakai(Integer cutiTerpakai) { - this.cutiTerpakai = cutiTerpakai; - } - - public Integer getSisaCuti() { - return sisaCuti; - } - - public void setSisaCuti(Integer sisaCuti) { - this.sisaCuti = sisaCuti; - } - - public Boolean getIsTangguhkan() { - return isTangguhkan; - } - - public void setIsTangguhkan(Boolean isTangguhkan) { - this.isTangguhkan = isTangguhkan; - } - } diff --git a/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/vo/ListTanggalCutiVO.java b/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/vo/ListTanggalCutiVO.java index 22c2d87d..7cdebaf7 100644 --- a/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/vo/ListTanggalCutiVO.java +++ b/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/vo/ListTanggalCutiVO.java @@ -2,49 +2,20 @@ package com.jasamedika.medifirst2000.vo; import java.util.Date; - import com.jasamedika.medifirst2000.base.vo.BaseTransactionVO; +import lombok.Getter; +import lombok.Setter; +@Getter +@Setter public class ListTanggalCutiVO extends BaseTransactionVO { - + private Date tgl; - + private Boolean approvalStatus; - + private PlanningPegawaiStatusVO planningPegawaiStatus; - - private Integer planningPegawaiStatusId; - public Date getTgl() { - return tgl; - } - - public void setTgl(Date tgl) { - this.tgl = tgl; - } - - public Boolean getApprovalStatus() { - return approvalStatus; - } - - public void setApprovalStatus(Boolean approvalStatus) { - this.approvalStatus = approvalStatus; - } - - public PlanningPegawaiStatusVO getPlanningPegawaiStatus() { - return planningPegawaiStatus; - } - - public void setPlanningPegawaiStatus(PlanningPegawaiStatusVO planningPegawaiStatus) { - this.planningPegawaiStatus = planningPegawaiStatus; - } - - public Integer getPlanningPegawaiStatusId() { - return planningPegawaiStatusId; - } - - public void setPlanningPegawaiStatusId(Integer planningPegawaiStatusId) { - this.planningPegawaiStatusId = planningPegawaiStatusId; - } + private String planningPegawaiStatusId; } diff --git a/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/vo/MapKalenderToHariLiburVO.java b/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/vo/MapKalenderToHariLiburVO.java index ae244cb2..dace8243 100644 --- a/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/vo/MapKalenderToHariLiburVO.java +++ b/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/vo/MapKalenderToHariLiburVO.java @@ -1,56 +1,26 @@ package com.jasamedika.medifirst2000.vo; -import java.io.Serializable; -import javax.persistence.*; -import java.util.Date; -import org.hibernate.validator.constraints.NotEmpty; - import com.jasamedika.medifirst2000.base.vo.BaseMasterVO; -import javax.validation.constraints.NotNull; -import org.hibernate.validator.constraints.Length; -import org.hibernate.validator.internal.util.logging.Messages; - -import com.fasterxml.jackson.annotation.JsonManagedReference; -import com.jasamedika.medifirst2000.base.vo.BaseMasterVO; -import com.jasamedika.medifirst2000.helper.Caption; +import lombok.Getter; +import lombok.Setter; /** - * class MapKalenderToHariLibur + * class MapKalenderToHariLibur * * @author Generator */ -//@Entity -//@Table(name = "MapKalenderToHariLibur_M") +@Getter +@Setter public class MapKalenderToHariLiburVO extends BaseMasterVO { - - private HariVO hariLibur; - public void setHariLibur(HariVO hariLibur) { - this.hariLibur = hariLibur; - } + private HariLiburVO hariLibur; - @Column(name = "KdHariLibur", nullable = false ) - public HariVO getHariLibur(){ - return this.hariLibur; - } - - @Column(name = "ObjectHariLiburFk", insertable=false,updatable=false) private Integer hariLiburId; - - private KalenderVO tanggal; + private KalenderVO tanggal; - public KalenderVO getTanggal() { - return tanggal; - } - - public void setTanggal(KalenderVO tanggal) { - this.tanggal = tanggal; - } - - @Column(name = "ObjectTanggalFk", insertable=false,updatable=false) private Integer tanggalId; + private Boolean isCutiBersamaDitangguhkan; } - diff --git a/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/vo/PlanningPegawaiStatusVO.java b/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/vo/PlanningPegawaiStatusVO.java index 96930c1a..c64fa087 100644 --- a/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/vo/PlanningPegawaiStatusVO.java +++ b/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/vo/PlanningPegawaiStatusVO.java @@ -4,374 +4,107 @@ import java.util.Date; import java.util.HashSet; import java.util.Set; -import javax.persistence.CascadeType; -import javax.persistence.FetchType; -import javax.persistence.ManyToOne; -import javax.persistence.OneToMany; - import com.jasamedika.medifirst2000.base.vo.BaseTransactionVO; import com.jasamedika.medifirst2000.helper.Caption; +import lombok.Getter; +import lombok.Setter; -public class PlanningPegawaiStatusVO extends BaseTransactionVO{ - - @Caption(value="No Planning") +@Getter +@Setter +public class PlanningPegawaiStatusVO extends BaseTransactionVO { + + @Caption(value = "No Planning") private String noPlanning; - - @ManyToOne(fetch=FetchType.LAZY) - @Caption(value="Object Pegawai") + + @Caption(value = "Object Pegawai") private PegawaiVO pegawai; - - @ManyToOne(fetch=FetchType.LAZY) - @Caption(value="Object Status Pegawai Plan") + + @Caption(value = "Object Status Pegawai Plan") private StatusPegawaiVO statusPegawaiPlan; - - @OneToMany(cascade=CascadeType.ALL,fetch = FetchType.LAZY, mappedBy = "planningPegawaiStatus") - private Set listTanggal = new HashSet(); - - @ManyToOne(fetch=FetchType.LAZY) - @Caption(value="Object Departemen") + + private Set listTanggal = new HashSet<>(); + + @Caption(value = "Object Departemen") private DepartemenVO departemen; - - @Caption(value="Deskripsi Status Pegawai Plan") + + @Caption(value = "Deskripsi Status Pegawai Plan") private String deskripsiStatusPegawaiPlan; - - @Caption(value="Keterangan Lainya Plan") + + @Caption(value = "Keterangan Lainya Plan") private String keteranganLainyaPlan; - + private Integer jumlahHari; - - @ManyToOne(fetch=FetchType.LAZY) - @Caption(value="Object No SK") + + @Caption(value = "Object No SK") private SuratKeputusanVO noSk; - - @ManyToOne(fetch=FetchType.LAZY) - @Caption(value="Object Status Pegawai Exec") + + @Caption(value = "Object Status Pegawai Exec") private StatusPegawaiVO statusPegawaiExec; - - @Caption(value="Deskripsi Status Pegawai Exec") + + @Caption(value = "Deskripsi Status Pegawai Exec") private String deskripsiStatusPegawaiExec; - - @Caption(value="Keterangan Lainya Exec") + + @Caption(value = "Keterangan Lainya Exec") private String keteranganLainyaExec; - - @Caption(value="Tgl Pengajuan") + + @Caption(value = "Tgl Pengajuan") private Date tglPengajuan; - - @Caption(value="Approval Status") + + @Caption(value = "Approval Status") private Integer approvalStatus; - - @Caption(value="Jenis Perawatan") - private Integer jenisPerawatan; //Add field untuk permohonan perubahan kehadiran karena sakit - - @Caption(value="Alamat Selama Cuti") - private String alamatCuti; //Add field untuk input di menu pengajuan cuti - - @Caption(value="Nomor Telepon") + + @Caption(value = "Jenis Perawatan") + private Integer jenisPerawatan; + + @Caption(value = "Alamat Selama Cuti") + private String alamatCuti; + + @Caption(value = "Nomor Telepon") private String nomorTelepon; - - @Caption(value="Nomor Surat Tugas") + + @Caption(value = "Nomor Surat Tugas") private String noSuratTugas; - - @Caption(value="Nomor Nota Dinas") + + @Caption(value = "Nomor Nota Dinas") private String noNotaDinas; - - @Caption(value="Tgl Nota Dinas") + + @Caption(value = "Tgl Nota Dinas") private Date tglNotaDinas; - - @Caption(value="Alamat Tugas Dinas") - private String alamatTugas; - - @ManyToOne(fetch=FetchType.LAZY) - @Caption(value="Object Jabatan Pemberi Nota Dinas") + + @Caption(value = "Alamat Tugas Dinas") + private String alamatTugas; + + @Caption(value = "Object Jabatan Pemberi Nota Dinas") private JabatanVO jabatanPemberiNotaDinas; - - @Caption(value="is Cuti Luar Negeri") + + @Caption(value = "is Cuti Luar Negeri") private Boolean isCutiLuarNegeri; - - @Caption(value="is Cuti Luar Kota") + + @Caption(value = "is Cuti Luar Kota") private Boolean isCutiLuarKota; - - //---------------------------------------- SURAT KEPUTUSAN ------------------------------------------ - - @ManyToOne(fetch = FetchType.LAZY) + @Caption(value = "Object Keputusan") private JenisKeputusanVO jenisKeputusan; - - @Caption(value="Tgl SK/SPMT") + + @Caption(value = "Tgl SK/SPMT") private Date tglSkSpmt; - - @Caption(value="No SK Temp") + + @Caption(value = "No SK Temp") private String noSkTemp; - - @Caption(value="Uraian") + + @Caption(value = "Uraian") private String uraian; - - @Caption(value="SK Dari") + + @Caption(value = "SK Dari") private String skDari; - - @Caption(value="Tgl TMT/SPMT") + + @Caption(value = "Tgl TMT/SPMT") private Date tglTmtSpmt; - - @Caption(value="Tgl Berlaku Akhir") + + @Caption(value = "Tgl Berlaku Akhir") private Date tglBerlakuAkhir; - - @Caption(value="Tgl Keputusan") + + @Caption(value = "Tgl Keputusan") private Date tglKeputusan; - - public Integer getJumlahHari() { - return jumlahHari; - } - - public void setJumlahHari(Integer jumlahHari) { - this.jumlahHari = jumlahHari; - } - - public String getNoPlanning() { - return noPlanning; - } - - public void setNoPlanning(String noPlanning) { - this.noPlanning = noPlanning; - } - - public PegawaiVO getPegawai() { - return pegawai; - } - - public void setPegawai(PegawaiVO pegawai) { - this.pegawai = pegawai; - } - - public StatusPegawaiVO getStatusPegawaiPlan() { - return statusPegawaiPlan; - } - - public void setStatusPegawaiPlan(StatusPegawaiVO statusPegawaiPlan) { - this.statusPegawaiPlan = statusPegawaiPlan; - } - - public DepartemenVO getDepartemen() { - return departemen; - } - - public void setDepartemen(DepartemenVO departemen) { - this.departemen = departemen; - } - - public String getDeskripsiStatusPegawaiPlan() { - return deskripsiStatusPegawaiPlan; - } - - public void setDeskripsiStatusPegawaiPlan(String deskripsiStatusPegawaiPlan) { - this.deskripsiStatusPegawaiPlan = deskripsiStatusPegawaiPlan; - } - - public String getKeteranganLainyaPlan() { - return keteranganLainyaPlan; - } - - public void setKeteranganLainyaPlan(String keteranganLainyaPlan) { - this.keteranganLainyaPlan = keteranganLainyaPlan; - } - - public SuratKeputusanVO getNoSk() { - return noSk; - } - - public void setNoSk(SuratKeputusanVO noSk) { - this.noSk = noSk; - } - - public StatusPegawaiVO getStatusPegawaiExec() { - return statusPegawaiExec; - } - - public void setStatusPegawaiExec(StatusPegawaiVO statusPegawaiExec) { - this.statusPegawaiExec = statusPegawaiExec; - } - - public String getDeskripsiStatusPegawaiExec() { - return deskripsiStatusPegawaiExec; - } - - public void setDeskripsiStatusPegawaiExec(String deskripsiStatusPegawaiExec) { - this.deskripsiStatusPegawaiExec = deskripsiStatusPegawaiExec; - } - - public String getKeteranganLainyaExec() { - return keteranganLainyaExec; - } - - public void setKeteranganLainyaExec(String keteranganLainyaExec) { - this.keteranganLainyaExec = keteranganLainyaExec; - } - - public JenisKeputusanVO getJenisKeputusan() { - return jenisKeputusan; - } - - public void setJenisKeputusan(JenisKeputusanVO jenisKeputusan) { - this.jenisKeputusan = jenisKeputusan; - } - - public Date getTglSkSpmt() { - return tglSkSpmt; - } - - public void setTglSkSpmt(Date tglSkSpmt) { - this.tglSkSpmt = tglSkSpmt; - } - - public String getNoSkTemp() { - return noSkTemp; - } - - public void setNoSkTemp(String noSkTemp) { - this.noSkTemp = noSkTemp; - } - - public String getUraian() { - return uraian; - } - - public void setUraian(String uraian) { - this.uraian = uraian; - } - - public String getSkDari() { - return skDari; - } - - public void setSkDari(String skDari) { - this.skDari = skDari; - } - - public Date getTglTmtSpmt() { - return tglTmtSpmt; - } - - public void setTglTmtSpmt(Date tglTmtSpmt) { - this.tglTmtSpmt = tglTmtSpmt; - } - - public Date getTglBerlakuAkhir() { - return tglBerlakuAkhir; - } - - public void setTglBerlakuAkhir(Date tglBerlakuAkhir) { - this.tglBerlakuAkhir = tglBerlakuAkhir; - } - - public Date getTglKeputusan() { - return tglKeputusan; - } - - public void setTglKeputusan(Date tglKeputusan) { - this.tglKeputusan = tglKeputusan; - } - - public Date getTglPengajuan() { - return tglPengajuan; - } - - public void setTglPengajuan(Date tglPengajuan) { - this.tglPengajuan = tglPengajuan; - } - - public Integer getApprovalStatus() { - return approvalStatus; - } - - public void setApprovalStatus(Integer approvalStatus) { - this.approvalStatus = approvalStatus; - } - - public Set getListTanggal() { - return listTanggal; - } - - public void setListTanggal(Set listTanggal) { - this.listTanggal = listTanggal; - } - - public Integer getJenisPerawatan() { - return jenisPerawatan; - } - - public void setJenisPerawatan(Integer jenisPerawatan) { - this.jenisPerawatan = jenisPerawatan; - } - - public String getAlamatCuti() { - return alamatCuti; - } - - public void setAlamatCuti(String alamatCuti) { - this.alamatCuti = alamatCuti; - } - - public String getNomorTelepon() { - return nomorTelepon; - } - - public void setNomorTelepon(String nomorTelepon) { - this.nomorTelepon = nomorTelepon; - } - - public String getNoSuratTugas() { - return noSuratTugas; - } - - public void setNoSuratTugas(String noSuratTugas) { - this.noSuratTugas = noSuratTugas; - } - - public String getNoNotaDinas() { - return noNotaDinas; - } - - public void setNoNotaDinas(String noNotaDinas) { - this.noNotaDinas = noNotaDinas; - } - - public Date getTglNotaDinas() { - return tglNotaDinas; - } - - public void setTglNotaDinas(Date tglNotaDinas) { - this.tglNotaDinas = tglNotaDinas; - } - - public String getAlamatTugas() { - return alamatTugas; - } - - public void setAlamatTugas(String alamatTugas) { - this.alamatTugas = alamatTugas; - } - - public JabatanVO getJabatanPemberiNotaDinas() { - return jabatanPemberiNotaDinas; - } - - public void setJabatanPemberiNotaDinas(JabatanVO jabatanPemberiNotaDinas) { - this.jabatanPemberiNotaDinas = jabatanPemberiNotaDinas; - } - - public Boolean getIsCutiLuarNegeri() { - return isCutiLuarNegeri; - } - - public void setIsCutiLuarNegeri(Boolean isCutiLuarNegeri) { - this.isCutiLuarNegeri = isCutiLuarNegeri; - } - - public Boolean getIsCutiLuarKota() { - return isCutiLuarKota; - } - - public void setIsCutiLuarKota(Boolean isCutiLuarKota) { - this.isCutiLuarKota = isCutiLuarKota; - } } 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 7d34b264..3983753e 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 @@ -7,6 +7,7 @@ import com.jasamedika.medifirst2000.controller.base.LocaleController; import com.jasamedika.medifirst2000.core.web.WebConstants; import com.jasamedika.medifirst2000.dao.JenisGajiDao; import com.jasamedika.medifirst2000.dao.MapUraianTugasToRincianKegiatanDao; +import com.jasamedika.medifirst2000.dto.DataCutiDto; import com.jasamedika.medifirst2000.entities.JenisGaji; import com.jasamedika.medifirst2000.entities.MapUraianTugasToRincianKegiatan; import com.jasamedika.medifirst2000.entities.Pegawai; @@ -327,6 +328,9 @@ public class SdmController extends LocaleController { @Autowired private LogAccService logAccService; + @Autowired + private JatahCutiDanIzinService jatahCutiDanIzinService; + @RequestMapping(value = "/save-custom-uraian-kerja", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE, consumes = MediaType.APPLICATION_JSON_VALUE) public ResponseEntity> saveBerkasLamaran(@Valid @RequestBody CustomIndexKerjaVO vo, HttpServletRequest request) { @@ -3189,20 +3193,16 @@ public class SdmController extends LocaleController { } @RequestMapping(value = "/get-data-cuti", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE) - public ResponseEntity> getDataCuti(@RequestParam(value = "pegawaiId") Integer pegawaiId, + public ResponseEntity getDataCuti(@RequestParam(value = "pegawaiId") Integer pegawaiId, @RequestParam(value = "year", required = false) String year, @RequestParam(value = "statusPegawaiId") Integer statusPegawaiId, @RequestParam(value = "kategoriPegawaiId", required = false) Integer kategoriPegawaiId, HttpServletRequest request) { try { - Map result = servicePermohonanStatus.getDataCuti(pegawaiId, year, statusPegawaiId); - if (null != result) { - mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_SUCCESS, - getMessage(MessageResource.LABEL_SUCCESS, request)); - return RestUtil.getJsonResponse(result, HttpStatus.OK, mapHeaderMessage); - } else { - return RestUtil.getJsonResponse(null, HttpStatus.NOT_FOUND, mapHeaderMessage); - } + DataCutiDto dto = jatahCutiDanIzinService.getDataCuti(pegawaiId, year, statusPegawaiId); + mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_SUCCESS, + getMessage(MessageResource.LABEL_SUCCESS, request)); + return RestUtil.getJsonResponse(dto, HttpStatus.OK, mapHeaderMessage); } catch (ServiceVOException e) { LOGGER.error("Got ServiceVOException {} when getDataCuti", e.getMessage()); addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, e.getMessage()); @@ -3215,19 +3215,15 @@ public class SdmController extends LocaleController { } @RequestMapping(value = "/perbarui-data-cuti", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE) - public ResponseEntity> perbaruiDataCuti(HttpServletRequest request, + public ResponseEntity perbaruiDataCuti(HttpServletRequest request, @RequestParam(value = "pegawaiId") Integer idPegawai, @RequestParam(value = "year", required = false) String year, @RequestParam(value = "statusPegawaiId") Integer idStatusPegawai) { try { - Map result = servicePermohonanStatus.perbaruiDataCuti(idPegawai, idStatusPegawai); - if (null != result) { - mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_SUCCESS, - getMessage(MessageResource.LABEL_UPDATE_DATA_CUTI, request)); - return RestUtil.getJsonResponse(result, HttpStatus.OK, mapHeaderMessage); - } else { - return RestUtil.getJsonResponse(null, HttpStatus.NOT_FOUND, mapHeaderMessage); - } + DataCutiDto dto = servicePermohonanStatus.perbaruiDataCuti(idPegawai, idStatusPegawai); + mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_SUCCESS, + getMessage(MessageResource.LABEL_UPDATE_DATA_CUTI, request)); + return RestUtil.getJsonResponse(dto, HttpStatus.OK, mapHeaderMessage); } catch (ServiceVOException e) { LOGGER.error("Got ServiceVOException {} when perbaruiDataCuti", e.getMessage()); addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, e.getMessage());