Add service jatah cuti dan izin
Persiapan legacy service sebelum enhancement feature cuti bersama bisa ditangguhkan ke tahun berikutnya
This commit is contained in:
parent
f4d24491b1
commit
172559120b
@ -1,41 +1,41 @@
|
|||||||
package com.jasamedika.medifirst2000.dao;
|
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.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
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")
|
@Repository("JatahCutiDanIzinDao")
|
||||||
public interface JatahCutiDanIzinDao extends PagingAndSortingRepository<JatahCutiDanIzin, String> {
|
public interface JatahCutiDanIzinDao extends JpaRepository<JatahCutiDanIzin, String> {
|
||||||
|
|
||||||
@Query("select jatahCuti " + "from JatahCutiDanIzin jatahCuti " + "left join jatahCuti.pegawai pegawai "
|
@Query("select jatahCuti " + "from JatahCutiDanIzin jatahCuti " + "left join jatahCuti.pegawai pegawai "
|
||||||
+ "left join jatahCuti.komponenIndex komponenIndex "
|
+ "left join jatahCuti.komponenIndex komponenIndex "
|
||||||
+ "where jatahCuti.tahun = :tahun and pegawai.id = :idPegawai " + "and komponenIndex.id = :komponenIndexId")
|
+ "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);
|
@Param("komponenIndexId") Integer komponenIndexId);
|
||||||
|
|
||||||
@Query("select jatahCuti " + "from JatahCutiDanIzin jatahCuti " + "left join jatahCuti.pegawai pegawai "
|
@Query("select jatahCuti " + "from JatahCutiDanIzin jatahCuti " + "left join jatahCuti.pegawai pegawai "
|
||||||
+ "left join jatahCuti.komponenIndex komponenIndex "
|
+ "left join jatahCuti.komponenIndex komponenIndex "
|
||||||
+ "where jatahCuti.tahun = :tahun and pegawai.id = :idPegawai "
|
+ "where jatahCuti.tahun = :tahun and pegawai.id = :idPegawai "
|
||||||
+ "and komponenIndex.id in (:komponenIndexId)")
|
+ "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<Integer> komponenIndexId);
|
@Param("komponenIndexId") List<Integer> komponenIndexId);
|
||||||
|
|
||||||
@Query("select coalesce(jatahCuti.value,0) " + "from JatahCutiDanIzin jatahCuti "
|
@Query("select coalesce(jatahCuti.value,0) " + "from JatahCutiDanIzin jatahCuti "
|
||||||
+ "left join jatahCuti.pegawai pegawai " + "left join jatahCuti.komponenIndex komponenIndex "
|
+ "left join jatahCuti.pegawai pegawai " + "left join jatahCuti.komponenIndex komponenIndex "
|
||||||
+ "where jatahCuti.tahun = :tahun and pegawai.id = :idPegawai " + "and komponenIndex.id = :komponenIndexId")
|
+ "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);
|
@Param("komponenIndexId") Integer komponenIndexId);
|
||||||
|
|
||||||
@Query("select jatahCuti.isTangguhkan " + "from JatahCutiDanIzin jatahCuti "
|
@Query("select jatahCuti.isTangguhkan " + "from JatahCutiDanIzin jatahCuti "
|
||||||
+ "left join jatahCuti.pegawai pegawai " + "left join jatahCuti.komponenIndex komponenIndex "
|
+ "left join jatahCuti.pegawai pegawai " + "left join jatahCuti.komponenIndex komponenIndex "
|
||||||
+ "where jatahCuti.tahun = :tahun and pegawai.id = :idPegawai " + "and komponenIndex.id = :komponenIndexId")
|
+ "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);
|
@Param("komponenIndexId") Integer komponenIndexId);
|
||||||
|
|
||||||
@Query("select new map(" + "jatahCuti.value as value, " + "jatahCuti.sisaCuti as sisaCuti, "
|
@Query("select new map(" + "jatahCuti.value as value, " + "jatahCuti.sisaCuti as sisaCuti, "
|
||||||
@ -49,22 +49,7 @@ public interface JatahCutiDanIzinDao extends PagingAndSortingRepository<JatahCut
|
|||||||
+ "left join mapPegawai.unitKerjaPegawai unitKerja " + "where mapPegawai.pegawaiId = pegawai.id "
|
+ "left join mapPegawai.unitKerjaPegawai unitKerja " + "where mapPegawai.pegawaiId = pegawai.id "
|
||||||
+ "and mapPegawai.isPrimary is true " + "and mapPegawai.statusEnabled is true "
|
+ "and mapPegawai.isPrimary is true " + "and mapPegawai.statusEnabled is true "
|
||||||
+ "and komponenIndex.id = :komponenIndexId " + "order by pegawai.id, jatahCuti.tahun")
|
+ "and komponenIndex.id = :komponenIndexId " + "order by pegawai.id, jatahCuti.tahun")
|
||||||
public List<Map<String, Object>> getAllJatahCuti(@Param("komponenIndexId") Integer komponenIndexId);
|
List<Map<String, Object>> 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<Map<String, Object>> getAllJatahCuti(@Param("komponenIndexId") Integer komponenIndexId,
|
|
||||||
@Param("pegawaiId") Integer pegawaiId);
|
|
||||||
|
|
||||||
@Query("select new map(" + "jatahCuti.noRec as noRec, " + "jatahCuti.komponenIndexId as komponenIndexId, "
|
@Query("select new map(" + "jatahCuti.noRec as noRec, " + "jatahCuti.komponenIndexId as komponenIndexId, "
|
||||||
+ "komponenIndex.komponenIndex as komponenIndex, " + "jatahCuti.tahun as tahun, "
|
+ "komponenIndex.komponenIndex as komponenIndex, " + "jatahCuti.tahun as tahun, "
|
||||||
@ -80,18 +65,18 @@ public interface JatahCutiDanIzinDao extends PagingAndSortingRepository<JatahCut
|
|||||||
+ "and cast(jatahCuti.tahun as int) >= cast(to_char(current_date,'yyyy') as int)-2 "
|
+ "and cast(jatahCuti.tahun as int) >= cast(to_char(current_date,'yyyy') as int)-2 "
|
||||||
+ "and pegawai.id = :pegawaiId " + "and komponenIndex.id in (:komponenIndexId) "
|
+ "and pegawai.id = :pegawaiId " + "and komponenIndex.id in (:komponenIndexId) "
|
||||||
+ "order by jatahCuti.tahun, komponenIndex.komponenIndex")
|
+ "order by jatahCuti.tahun, komponenIndex.komponenIndex")
|
||||||
public List<Map<String, Object>> getAllJatahCuti(@Param("komponenIndexId") List<Integer> komponenIndexId,
|
List<Map<String, Object>> getAllJatahCuti(@Param("komponenIndexId") List<Integer> komponenIndexId,
|
||||||
@Param("pegawaiId") Integer pegawaiId);
|
@Param("pegawaiId") Integer pegawaiId);
|
||||||
|
|
||||||
@Query("select l.tgl " + "from PlanningPegawaiStatus p " + "left join p.listTanggal l "
|
@Query("select l.tgl " + "from PlanningPegawaiStatus p " + "left join p.listTanggal l "
|
||||||
+ "where p.statusEnabled is true and l.statusEnabled is true "
|
+ "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.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")
|
+ "and p.pegawaiId = :idPegawai " + "and to_char(l.tgl, 'yyyy-MM-dd') = :tglCuti " + "order by l.tgl")
|
||||||
public List<Date> getCutiTahunanDiTglCutiBersama(@Param("idStatusPlan") Integer idStatusPlan,
|
List<Date> getCutiTahunanDiTglCutiBersama(@Param("idStatusPlan") Integer idStatusPlan,
|
||||||
@Param("idPegawai") Integer idPegawai, @Param("tglCuti") String tglCuti);
|
@Param("idPegawai") Integer idPegawai, @Param("tglCuti") String tglCuti);
|
||||||
|
|
||||||
@Query("select sum(jc.cutiTerpakai) from JatahCutiDanIzin jc "
|
@Query("select sum(jc.cutiTerpakai) from JatahCutiDanIzin jc "
|
||||||
+ "where jc.pegawaiId = :pegawaiId and jc.tahun < :tahun")
|
+ "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);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -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);
|
||||||
|
|
||||||
|
}
|
||||||
@ -1,5 +1,6 @@
|
|||||||
package com.jasamedika.medifirst2000.service;
|
package com.jasamedika.medifirst2000.service;
|
||||||
|
|
||||||
|
import com.jasamedika.medifirst2000.dto.DataCutiDto;
|
||||||
import com.jasamedika.medifirst2000.entities.PegawaiHistoriRekapIndex;
|
import com.jasamedika.medifirst2000.entities.PegawaiHistoriRekapIndex;
|
||||||
import com.jasamedika.medifirst2000.vo.JatahCutiDanIzinVO;
|
import com.jasamedika.medifirst2000.vo.JatahCutiDanIzinVO;
|
||||||
import com.jasamedika.medifirst2000.vo.KelompokShiftKerjaCustomVO;
|
import com.jasamedika.medifirst2000.vo.KelompokShiftKerjaCustomVO;
|
||||||
@ -27,7 +28,7 @@ public interface PermohonanStatusPegawaiService {
|
|||||||
|
|
||||||
Map<String, Object> savePlanningPegawaiStatus(PlanningPegawaiStatusVO vo);
|
Map<String, Object> savePlanningPegawaiStatus(PlanningPegawaiStatusVO vo);
|
||||||
|
|
||||||
Map<String, Object> perbaruiDataCuti(Integer idPegawai, Integer idStatusPegawai);
|
DataCutiDto perbaruiDataCuti(Integer idPegawai, Integer idStatusPegawai);
|
||||||
|
|
||||||
boolean validateTanggalPermohonanRev(Integer statusPegawaiPlanId, Set<ListTanggalCutiVO> listTanggalCutiVO,
|
boolean validateTanggalPermohonanRev(Integer statusPegawaiPlanId, Set<ListTanggalCutiVO> listTanggalCutiVO,
|
||||||
Integer idPegawai);
|
Integer idPegawai);
|
||||||
@ -89,8 +90,6 @@ public interface PermohonanStatusPegawaiService {
|
|||||||
|
|
||||||
JatahCutiDanIzinVO setJatahCutiDanIzinVo(Integer idPegawai, Integer idStatusPegawai);
|
JatahCutiDanIzinVO setJatahCutiDanIzinVo(Integer idPegawai, Integer idStatusPegawai);
|
||||||
|
|
||||||
Integer difCutiTerpakai(Integer cutiTerpakai, Integer dataCuti);
|
|
||||||
|
|
||||||
Integer countJumlahPengajuanDiprosesByPegawai(Integer idPegawai, Integer idPlan);
|
Integer countJumlahPengajuanDiprosesByPegawai(Integer idPegawai, Integer idPlan);
|
||||||
|
|
||||||
Integer countJumlahPengajuanDiprosesByPegawai(Integer idPegawai, Integer idPlan, String noPlanning);
|
Integer countJumlahPengajuanDiprosesByPegawai(Integer idPegawai, Integer idPlan, String noPlanning);
|
||||||
|
|||||||
@ -0,0 +1,540 @@
|
|||||||
|
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.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.*;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @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;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public DataCutiDto getDataCuti(Integer pegawaiId, String year, Integer statusPegawaiId) {
|
||||||
|
return calculateCutiIzin(pegawaiId, year, statusPegawaiId);
|
||||||
|
}
|
||||||
|
|
||||||
|
public DataCutiDto calculateCutiIzin(Integer pegawaiId, String year, Integer statusPegawaiId) {
|
||||||
|
DataCutiDto.DataCutiDtoBuilder cutiIzinBuilder = DataCutiDto.builder();
|
||||||
|
List<Integer> 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<String> listTglCutiBersama = mapKalenderToHariLiburDao.getTglCutiBersama(year);
|
||||||
|
int countDataHabsen = 0;
|
||||||
|
for (String tglStr : listTglCutiBersama) {
|
||||||
|
List<Date> dataHabsen = new ArrayList<>();
|
||||||
|
// cek shift malam
|
||||||
|
String tglPrev = sdf.format(java.sql.Date.valueOf(LocalDate.parse(tglStr).minusDays(1)));
|
||||||
|
List<Map<String, Object>> 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<Date> tglCutiTahunanDiTglCutiBersama = jatahCutiDanIzinDao
|
||||||
|
.getCutiTahunanDiTglCutiBersama(Master.StatusPegawai.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 {
|
||||||
|
difCutiTerpakai(cutiTerpakaiN2, dataCutiB2);
|
||||||
|
difCutiTerpakai(cutiTerpakaiN1, dataCutiB1);
|
||||||
|
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<String, Object> 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();
|
||||||
|
}
|
||||||
|
|
||||||
|
public Integer difCutiTerpakai(Integer cutiTerpakai, Integer dataCuti) {
|
||||||
|
int difCutiTerpakai = 0;
|
||||||
|
if (cutiTerpakai > dataCuti)
|
||||||
|
difCutiTerpakai = cutiTerpakai - dataCuti;
|
||||||
|
return difCutiTerpakai;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@ -4,8 +4,10 @@ import com.jasamedika.medifirst2000.constants.Master;
|
|||||||
import com.jasamedika.medifirst2000.converter.BaseConverterImpl;
|
import com.jasamedika.medifirst2000.converter.BaseConverterImpl;
|
||||||
import com.jasamedika.medifirst2000.dao.*;
|
import com.jasamedika.medifirst2000.dao.*;
|
||||||
import com.jasamedika.medifirst2000.dao.custom.PlanningPegawaiStatusDaoCustom;
|
import com.jasamedika.medifirst2000.dao.custom.PlanningPegawaiStatusDaoCustom;
|
||||||
|
import com.jasamedika.medifirst2000.dto.DataCutiDto;
|
||||||
import com.jasamedika.medifirst2000.entities.*;
|
import com.jasamedika.medifirst2000.entities.*;
|
||||||
import com.jasamedika.medifirst2000.exception.ServiceVOException;
|
import com.jasamedika.medifirst2000.exception.ServiceVOException;
|
||||||
|
import com.jasamedika.medifirst2000.service.JatahCutiDanIzinService;
|
||||||
import com.jasamedika.medifirst2000.service.LoginUserService;
|
import com.jasamedika.medifirst2000.service.LoginUserService;
|
||||||
import com.jasamedika.medifirst2000.service.MonitoringAbsenService;
|
import com.jasamedika.medifirst2000.service.MonitoringAbsenService;
|
||||||
import com.jasamedika.medifirst2000.service.PermohonanStatusPegawaiService;
|
import com.jasamedika.medifirst2000.service.PermohonanStatusPegawaiService;
|
||||||
@ -25,6 +27,9 @@ import java.time.LocalDateTime;
|
|||||||
import java.time.format.DateTimeFormatter;
|
import java.time.format.DateTimeFormatter;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
|
||||||
|
import static java.util.Calendar.DAY_OF_MONTH;
|
||||||
|
import static java.util.Calendar.MONTH;
|
||||||
|
|
||||||
@Service("PegawaiCutiService")
|
@Service("PegawaiCutiService")
|
||||||
public class PermohonanStatusPegawaiImpl implements PermohonanStatusPegawaiService {
|
public class PermohonanStatusPegawaiImpl implements PermohonanStatusPegawaiService {
|
||||||
|
|
||||||
@ -34,6 +39,9 @@ public class PermohonanStatusPegawaiImpl implements PermohonanStatusPegawaiServi
|
|||||||
@Autowired
|
@Autowired
|
||||||
private MonitoringAbsenService monitoringAbsenService;
|
private MonitoringAbsenService monitoringAbsenService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private JatahCutiDanIzinService jatahCutiDanIzinService;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private PlanningPegawaiStatusDao planningPegawaiStatusDao;
|
private PlanningPegawaiStatusDao planningPegawaiStatusDao;
|
||||||
|
|
||||||
@ -187,7 +195,6 @@ public class PermohonanStatusPegawaiImpl implements PermohonanStatusPegawaiServi
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public Integer difCutiTerpakai(Integer cutiTerpakai, Integer dataCuti) {
|
public Integer difCutiTerpakai(Integer cutiTerpakai, Integer dataCuti) {
|
||||||
int difCutiTerpakai = 0;
|
int difCutiTerpakai = 0;
|
||||||
if (cutiTerpakai > dataCuti)
|
if (cutiTerpakai > dataCuti)
|
||||||
@ -1820,80 +1827,24 @@ public class PermohonanStatusPegawaiImpl implements PermohonanStatusPegawaiServi
|
|||||||
Map<String, Object> result = new HashMap<>();
|
Map<String, Object> result = new HashMap<>();
|
||||||
if (CommonUtil.isNotNullOrEmpty(vo)) {
|
if (CommonUtil.isNotNullOrEmpty(vo)) {
|
||||||
for (FactoRateKelompokShiftVO vos : vo.getFactorRateKelompokShift()) {
|
for (FactoRateKelompokShiftVO vos : vo.getFactorRateKelompokShift()) {
|
||||||
Date monthDayNow = new Date();
|
String periodeInput = getString(vos);
|
||||||
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;
|
|
||||||
List<Pegawai> listpegawai = pegawaiDao.findPegawaiStatusAktif(vos.getKelompokShift().getId(),
|
List<Pegawai> listpegawai = pegawaiDao.findPegawaiStatusAktif(vos.getKelompokShift().getId(),
|
||||||
periodeInput);
|
periodeInput);
|
||||||
for (Pegawai pegawai : listpegawai) {
|
for (Pegawai pegawai : listpegawai) {
|
||||||
int todaysYear = Calendar.getInstance().get(Calendar.YEAR);
|
int todaysYear = Calendar.getInstance().get(Calendar.YEAR);
|
||||||
int todaysYear1 = Integer
|
int todaysYear1 = Integer
|
||||||
.parseInt(settingDataFixedDao.getSettingDataFixed("tahunPenangguhanException"));
|
.parseInt(settingDataFixedDao.getSettingDataFixed("tahunPenangguhanException"));
|
||||||
// storing data cuti
|
/*
|
||||||
Map<String, Object> dataCuti = getDataCuti(pegawai.getId(), String.valueOf(todaysYear),
|
* storing data cuti, menghitung data cuti selalu based on
|
||||||
vos.getKomponenIndex().getId()); // menghitung data
|
* tahun berjalan
|
||||||
// cuti selalu
|
*/
|
||||||
// based on
|
DataCutiDto cutiIzin = jatahCutiDanIzinService.getDataCuti(pegawai.getId(),
|
||||||
// tahun
|
String.valueOf(todaysYear), vos.getKomponenIndex().getId());
|
||||||
// berjalan
|
List<Map<String, Object>> listDataCuti = getMaps(cutiIzin, todaysYear);
|
||||||
List<Map<String, Object>> listDataCuti = new ArrayList<>();
|
|
||||||
Map<String, Object> mapDataCutiB2 = new HashMap<>();
|
|
||||||
Map<String, Object> mapDataCutiB1 = new HashMap<>();
|
|
||||||
Map<String, Object> mapDataCutiB = new HashMap<>();
|
|
||||||
Map<String, Object> mapDataCutiN = new HashMap<>();
|
|
||||||
Map<String, Object> mapDataCutiN1 = new HashMap<>();
|
|
||||||
Map<String, Object> 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);
|
|
||||||
KomponenIndexVO kompIndexVoB = new KomponenIndexVO();
|
KomponenIndexVO kompIndexVoB = new KomponenIndexVO();
|
||||||
kompIndexVoB.setId(21);
|
kompIndexVoB.setId(21);
|
||||||
KomponenIndexVO kompIndexVoT = new KomponenIndexVO();
|
KomponenIndexVO kompIndexVoT = new KomponenIndexVO();
|
||||||
kompIndexVoT.setId(5);
|
kompIndexVoT.setId(5);
|
||||||
|
|
||||||
for (Map<String, Object> mapDataCuti : listDataCuti) {
|
for (Map<String, Object> mapDataCuti : listDataCuti) {
|
||||||
JatahCutiDanIzin jatahCutiDanIzin = new JatahCutiDanIzin();
|
JatahCutiDanIzin jatahCutiDanIzin = new JatahCutiDanIzin();
|
||||||
jatahCutiDanIzin.setPegawai(pegawai);
|
jatahCutiDanIzin.setPegawai(pegawai);
|
||||||
@ -2009,6 +1960,66 @@ public class PermohonanStatusPegawaiImpl implements PermohonanStatusPegawaiServi
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static List<Map<String, Object>> getMaps(DataCutiDto cutiIzin, int todaysYear) {
|
||||||
|
List<Map<String, Object>> listDataCuti = new ArrayList<>();
|
||||||
|
Map<String, Object> mapDataCutiB2 = new HashMap<>();
|
||||||
|
Map<String, Object> mapDataCutiB1 = new HashMap<>();
|
||||||
|
Map<String, Object> mapDataCutiB = new HashMap<>();
|
||||||
|
Map<String, Object> mapDataCutiN = new HashMap<>();
|
||||||
|
Map<String, Object> mapDataCutiN1 = new HashMap<>();
|
||||||
|
Map<String, Object> 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
|
@Override
|
||||||
public Map<String, Object> setJatahCutiPegawai(JatahCutiDanIzinVO vo) {
|
public Map<String, Object> setJatahCutiPegawai(JatahCutiDanIzinVO vo) {
|
||||||
Map<String, Object> result = new HashMap<>();
|
Map<String, Object> result = new HashMap<>();
|
||||||
@ -2016,53 +2027,13 @@ public class PermohonanStatusPegawaiImpl implements PermohonanStatusPegawaiServi
|
|||||||
int todaysYear = Calendar.getInstance().get(Calendar.YEAR);
|
int todaysYear = Calendar.getInstance().get(Calendar.YEAR);
|
||||||
int todaysYear1 = todaysYear - 1;
|
int todaysYear1 = todaysYear - 1;
|
||||||
|
|
||||||
// storing_data_cuti
|
/*
|
||||||
Map<String, Object> dataCuti = getDataCuti(vo.getPegawai().getId(), String.valueOf(todaysYear),
|
* storing_data_cuti
|
||||||
vo.getKomponenIndex().getId()); // menghitung_data_cuti_selalu_based_on_tahun_berjalan
|
* menghitung_data_cuti_selalu_based_on_tahun_berjalan
|
||||||
|
*/
|
||||||
List<Map<String, Object>> listDataCuti = new ArrayList<>();
|
DataCutiDto cutiIzin = jatahCutiDanIzinService.getDataCuti(vo.getPegawai().getId(),
|
||||||
Map<String, Object> mapDataCutiB2 = new HashMap<>();
|
String.valueOf(todaysYear), vo.getKomponenIndex().getId());
|
||||||
Map<String, Object> mapDataCutiB1 = new HashMap<>();
|
List<Map<String, Object>> listDataCuti = getMaps(cutiIzin, todaysYear);
|
||||||
Map<String, Object> mapDataCutiB = new HashMap<>();
|
|
||||||
Map<String, Object> mapDataCutiN = new HashMap<>();
|
|
||||||
Map<String, Object> mapDataCutiN1 = new HashMap<>();
|
|
||||||
Map<String, Object> 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);
|
|
||||||
KomponenIndexVO kompIndexVoB = new KomponenIndexVO();
|
KomponenIndexVO kompIndexVoB = new KomponenIndexVO();
|
||||||
kompIndexVoB.setId(21);
|
kompIndexVoB.setId(21);
|
||||||
KomponenIndexVO kompIndexVoT = new KomponenIndexVO();
|
KomponenIndexVO kompIndexVoT = new KomponenIndexVO();
|
||||||
@ -2227,7 +2198,7 @@ public class PermohonanStatusPegawaiImpl implements PermohonanStatusPegawaiServi
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Map<String, Object> perbaruiDataCuti(Integer idPegawai, Integer idStatusPegawai) {
|
public DataCutiDto perbaruiDataCuti(Integer idPegawai, Integer idStatusPegawai) {
|
||||||
PegawaiVO pegawaiVo = new PegawaiVO();
|
PegawaiVO pegawaiVo = new PegawaiVO();
|
||||||
pegawaiVo.setId(idPegawai);
|
pegawaiVo.setId(idPegawai);
|
||||||
|
|
||||||
@ -2243,14 +2214,14 @@ public class PermohonanStatusPegawaiImpl implements PermohonanStatusPegawaiServi
|
|||||||
int yearn2 = Integer.parseInt(year) - 2;
|
int yearn2 = Integer.parseInt(year) - 2;
|
||||||
String yearN2 = Integer.toString(yearn2);
|
String yearN2 = Integer.toString(yearn2);
|
||||||
|
|
||||||
Map<String, Object> dataCuti = this.getDataCuti(idPegawai, year, idStatusPegawai);
|
DataCutiDto cutiIzin = jatahCutiDanIzinService.getDataCuti(idPegawai, year, idStatusPegawai);
|
||||||
|
|
||||||
JatahCutiDanIzinVO voTahunIni = new JatahCutiDanIzinVO();
|
JatahCutiDanIzinVO voTahunIni = new JatahCutiDanIzinVO();
|
||||||
voTahunIni.setStatusEnabled(Master.STATUS_ENABLE_TRUE);
|
voTahunIni.setStatusEnabled(Master.STATUS_ENABLE_TRUE);
|
||||||
voTahunIni.setTahun(year);
|
voTahunIni.setTahun(year);
|
||||||
voTahunIni.setKdProfile(Master.KODE_PROFILE);
|
voTahunIni.setKdProfile(Master.KODE_PROFILE);
|
||||||
voTahunIni.setPegawai(pegawaiVo);
|
voTahunIni.setPegawai(pegawaiVo);
|
||||||
voTahunIni.setValue(Integer.valueOf(dataCuti.get("dataCutiB").toString()));
|
voTahunIni.setValue(Integer.valueOf(cutiIzin.getDataCutiB().toString()));
|
||||||
voTahunIni.setKomponenIndex(komponenIndexVo);
|
voTahunIni.setKomponenIndex(komponenIndexVo);
|
||||||
voTahunIni.setIsTangguhkan(false);
|
voTahunIni.setIsTangguhkan(false);
|
||||||
this.setJatahCutiPegawaiRecursive(voTahunIni);
|
this.setJatahCutiPegawaiRecursive(voTahunIni);
|
||||||
@ -2260,7 +2231,7 @@ public class PermohonanStatusPegawaiImpl implements PermohonanStatusPegawaiServi
|
|||||||
voTahunLalu.setTahun(yearN1);
|
voTahunLalu.setTahun(yearN1);
|
||||||
voTahunLalu.setKdProfile(Master.KODE_PROFILE);
|
voTahunLalu.setKdProfile(Master.KODE_PROFILE);
|
||||||
voTahunLalu.setPegawai(pegawaiVo);
|
voTahunLalu.setPegawai(pegawaiVo);
|
||||||
voTahunLalu.setValue(Integer.valueOf(dataCuti.get("dataCutiB1").toString()));
|
voTahunLalu.setValue(Integer.valueOf(cutiIzin.getDataCutiB1().toString()));
|
||||||
voTahunLalu.setKomponenIndex(komponenIndexVo);
|
voTahunLalu.setKomponenIndex(komponenIndexVo);
|
||||||
voTahunLalu.setIsTangguhkan(false);
|
voTahunLalu.setIsTangguhkan(false);
|
||||||
this.setJatahCutiPegawaiRecursive(voTahunLalu);
|
this.setJatahCutiPegawaiRecursive(voTahunLalu);
|
||||||
@ -2270,12 +2241,12 @@ public class PermohonanStatusPegawaiImpl implements PermohonanStatusPegawaiServi
|
|||||||
voDuaTahunLalu.setTahun(yearN2);
|
voDuaTahunLalu.setTahun(yearN2);
|
||||||
voDuaTahunLalu.setKdProfile(Master.KODE_PROFILE);
|
voDuaTahunLalu.setKdProfile(Master.KODE_PROFILE);
|
||||||
voDuaTahunLalu.setPegawai(pegawaiVo);
|
voDuaTahunLalu.setPegawai(pegawaiVo);
|
||||||
voDuaTahunLalu.setValue(Integer.valueOf(dataCuti.get("dataCutiB2").toString()));
|
voDuaTahunLalu.setValue(Integer.valueOf(cutiIzin.getDataCutiB2().toString()));
|
||||||
voDuaTahunLalu.setKomponenIndex(komponenIndexVo);
|
voDuaTahunLalu.setKomponenIndex(komponenIndexVo);
|
||||||
voDuaTahunLalu.setIsTangguhkan(false);
|
voDuaTahunLalu.setIsTangguhkan(false);
|
||||||
this.setJatahCutiPegawaiRecursive(voDuaTahunLalu);
|
this.setJatahCutiPegawaiRecursive(voDuaTahunLalu);
|
||||||
|
|
||||||
return new HashMap<>(dataCuti);
|
return cutiIzin;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@ -76,9 +76,6 @@ public class ReportServiceImpl extends BaseVoServiceImpl implements ReportServic
|
|||||||
@Autowired
|
@Autowired
|
||||||
private MonitoringAbsenService monitoringAbsenService;
|
private MonitoringAbsenService monitoringAbsenService;
|
||||||
|
|
||||||
@Autowired
|
|
||||||
private PermohonanStatusPegawaiService permohonanStatusPegawaiService;
|
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private SlipGajiService slipGajiService;
|
private SlipGajiService slipGajiService;
|
||||||
|
|
||||||
@ -115,6 +112,9 @@ public class ReportServiceImpl extends BaseVoServiceImpl implements ReportServic
|
|||||||
@Autowired
|
@Autowired
|
||||||
private SlipGajiDao slipGajiDao;
|
private SlipGajiDao slipGajiDao;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private JatahCutiDanIzinService jatahCutiDanIzinService;
|
||||||
|
|
||||||
private static final String[] INDONESIAN_WEEK = new String[] { "Senin", "Selasa", "Rabu", "Kamis", "Jumat", "Sabtu",
|
private static final String[] INDONESIAN_WEEK = new String[] { "Senin", "Selasa", "Rabu", "Kamis", "Jumat", "Sabtu",
|
||||||
"Minggu" };
|
"Minggu" };
|
||||||
|
|
||||||
@ -1861,12 +1861,10 @@ public class ReportServiceImpl extends BaseVoServiceImpl implements ReportServic
|
|||||||
result.put("noHandphone", planningPegawaiStatus.getNomorTelepon());
|
result.put("noHandphone", planningPegawaiStatus.getNomorTelepon());
|
||||||
result.put("unitKerja", pegawai.get("unitKerja"));
|
result.put("unitKerja", pegawai.get("unitKerja"));
|
||||||
result.put("tahun", pegawai.get("tahun"));
|
result.put("tahun", pegawai.get("tahun"));
|
||||||
Map<String, Object> cutiTahunan = permohonanStatusPegawaiService
|
DataCutiDto cutiIzin = jatahCutiDanIzinService.getDataCuti(planningPegawaiStatus.getPegawai().getId(),
|
||||||
.getDataCuti(planningPegawaiStatus.getPegawai().getId(), null, 1);
|
null, 1);
|
||||||
if (CommonUtil.isNotNullOrEmpty(cutiTahunan)) {
|
result.put("cutiTerpakai", cutiIzin.getCutiTerpakaiN());
|
||||||
result.put("cutiTerpakai", cutiTahunan.get("cutiTerpakai"));
|
result.put("sisaCuti", cutiIzin.getSisaCuti());
|
||||||
result.put("sisaCuti", cutiTahunan.get("sisaCuti"));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
@ -2094,18 +2092,16 @@ public class ReportServiceImpl extends BaseVoServiceImpl implements ReportServic
|
|||||||
result.put("noHandphone", planningPegawaiStatus.getNomorTelepon());
|
result.put("noHandphone", planningPegawaiStatus.getNomorTelepon());
|
||||||
result.put("unitKerja", unitKerja.getName());
|
result.put("unitKerja", unitKerja.getName());
|
||||||
result.put("tahun", pegawai.get("tahun"));
|
result.put("tahun", pegawai.get("tahun"));
|
||||||
Map<String, Object> cutiTahunan = permohonanStatusPegawaiService
|
DataCutiDto cutiIzin = jatahCutiDanIzinService.getDataCuti(planningPegawaiStatus.getPegawai().getId(),
|
||||||
.getDataCuti(planningPegawaiStatus.getPegawai().getId(), null, 1);
|
null, 1);
|
||||||
if (CommonUtil.isNotNullOrEmpty(cutiTahunan)) {
|
result.put("cutiTerpakai", cutiIzin.getCutiTerpakaiN());
|
||||||
result.put("cutiTerpakai", cutiTahunan.get("cutiTerpakaiN"));
|
result.put("sisaCuti", cutiIzin.getSisaCutiN());
|
||||||
result.put("sisaCuti", cutiTahunan.get("sisaCutiN"));
|
result.put("cutiTerpakaiN1", cutiIzin.getCutiTerpakaiN1());
|
||||||
result.put("cutiTerpakaiN1", cutiTahunan.get("cutiTerpakaiN1"));
|
result.put("sisaCutiN1", cutiIzin.getSisaCutiN1());
|
||||||
result.put("sisaCutiN1", cutiTahunan.get("sisaCutiN1"));
|
result.put("cutiTerpakaiN2", cutiIzin.getCutiTerpakaiN2());
|
||||||
result.put("cutiTerpakaiN2", cutiTahunan.get("cutiTerpakaiN2"));
|
result.put("sisaCutiN2", cutiIzin.getSisaCutiN2());
|
||||||
result.put("sisaCutiN2", cutiTahunan.get("sisaCutiN2"));
|
result.put("cutiTerpakaiB", cutiIzin.getCutiTerpakaiB());
|
||||||
result.put("cutiTerpakaiB", cutiTahunan.get("cutiTerpakaiB"));
|
result.put("sisaCutiB", cutiIzin.getSisaCutiB());
|
||||||
result.put("sisaCutiB", cutiTahunan.get("sisaCutiB"));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
@ -2292,18 +2288,16 @@ public class ReportServiceImpl extends BaseVoServiceImpl implements ReportServic
|
|||||||
result.put("noHandphone", planningPegawaiStatus.getNomorTelepon());
|
result.put("noHandphone", planningPegawaiStatus.getNomorTelepon());
|
||||||
result.put("unitKerja", pegawai.get("unitKerja"));
|
result.put("unitKerja", pegawai.get("unitKerja"));
|
||||||
result.put("tahun", pegawai.get("tahun"));
|
result.put("tahun", pegawai.get("tahun"));
|
||||||
Map<String, Object> cutiTahunan = permohonanStatusPegawaiService
|
DataCutiDto cutiIzin = jatahCutiDanIzinService.getDataCuti(planningPegawaiStatus.getPegawai().getId(),
|
||||||
.getDataCuti(planningPegawaiStatus.getPegawai().getId(), null, 1);
|
null, 1);
|
||||||
if (CommonUtil.isNotNullOrEmpty(cutiTahunan)) {
|
result.put("cutiTerpakai", cutiIzin.getCutiTerpakaiN());
|
||||||
result.put("cutiTerpakai", cutiTahunan.get("cutiTerpakaiN"));
|
result.put("sisaCuti", cutiIzin.getSisaCutiN());
|
||||||
result.put("sisaCuti", cutiTahunan.get("sisaCutiN"));
|
result.put("cutiTerpakaiN1", cutiIzin.getCutiTerpakaiN1());
|
||||||
result.put("cutiTerpakaiN1", cutiTahunan.get("cutiTerpakaiN1"));
|
result.put("sisaCutiN1", cutiIzin.getSisaCutiN1());
|
||||||
result.put("sisaCutiN1", cutiTahunan.get("sisaCutiN1"));
|
result.put("cutiTerpakaiN2", cutiIzin.getCutiTerpakaiN2());
|
||||||
result.put("cutiTerpakaiN2", cutiTahunan.get("cutiTerpakaiN2"));
|
result.put("sisaCutiN2", cutiIzin.getSisaCutiN2());
|
||||||
result.put("sisaCutiN2", cutiTahunan.get("sisaCutiN2"));
|
result.put("cutiTerpakaiB", cutiIzin.getCutiTerpakaiB());
|
||||||
result.put("cutiTerpakaiB", cutiTahunan.get("cutiTerpakaiB"));
|
result.put("sisaCutiB", cutiIzin.getSisaCutiB());
|
||||||
result.put("sisaCutiB", cutiTahunan.get("sisaCutiB"));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
@ -2404,12 +2398,10 @@ public class ReportServiceImpl extends BaseVoServiceImpl implements ReportServic
|
|||||||
result.put("noHandphone", planningPegawaiStatus.getNomorTelepon());
|
result.put("noHandphone", planningPegawaiStatus.getNomorTelepon());
|
||||||
result.put("unitKerja", unitKerja.getName());
|
result.put("unitKerja", unitKerja.getName());
|
||||||
result.put("tahun", pegawai.get("tahun"));
|
result.put("tahun", pegawai.get("tahun"));
|
||||||
Map<String, Object> cutiTahunan = permohonanStatusPegawaiService
|
DataCutiDto cutiIzin = jatahCutiDanIzinService.getDataCuti(planningPegawaiStatus.getPegawai().getId(),
|
||||||
.getDataCuti(planningPegawaiStatus.getPegawai().getId(), null, 1);
|
null, 1);
|
||||||
if (CommonUtil.isNotNullOrEmpty(cutiTahunan)) {
|
result.put("cutiTerpakai", cutiIzin.getCutiTerpakaiN());
|
||||||
result.put("cutiTerpakai", cutiTahunan.get("cutiTerpakai"));
|
result.put("sisaCuti", cutiIzin.getSisaCuti());
|
||||||
result.put("sisaCuti", cutiTahunan.get("sisaCuti"));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
@ -2569,12 +2561,10 @@ public class ReportServiceImpl extends BaseVoServiceImpl implements ReportServic
|
|||||||
result.put("noHandphone", planningPegawaiStatus.getNomorTelepon());
|
result.put("noHandphone", planningPegawaiStatus.getNomorTelepon());
|
||||||
result.put("unitKerja", unitKerja.getName());
|
result.put("unitKerja", unitKerja.getName());
|
||||||
result.put("tahun", pegawai.get("tahun"));
|
result.put("tahun", pegawai.get("tahun"));
|
||||||
Map<String, Object> cutiTahunan = permohonanStatusPegawaiService
|
DataCutiDto cutiIzin = jatahCutiDanIzinService.getDataCuti(planningPegawaiStatus.getPegawai().getId(),
|
||||||
.getDataCuti(planningPegawaiStatus.getPegawai().getId(), null, 1);
|
null, 1);
|
||||||
if (CommonUtil.isNotNullOrEmpty(cutiTahunan)) {
|
result.put("cutiTerpakai", cutiIzin.getCutiTerpakaiN());
|
||||||
result.put("cutiTerpakai", cutiTahunan.get("cutiTerpakai"));
|
result.put("sisaCuti", cutiIzin.getSisaCuti());
|
||||||
result.put("sisaCuti", cutiTahunan.get("sisaCuti"));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
|
|||||||
@ -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;
|
||||||
|
|
||||||
|
}
|
||||||
@ -1,26 +1,26 @@
|
|||||||
package com.jasamedika.medifirst2000.entities;
|
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.base.BaseTransaction;
|
||||||
import com.jasamedika.medifirst2000.helper.Caption;
|
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")
|
@Table(name = "JatahCutiDanIzin_T")
|
||||||
public class JatahCutiDanIzin extends BaseTransaction {
|
public class JatahCutiDanIzin extends BaseTransaction {
|
||||||
|
|
||||||
@ManyToOne
|
@ManyToOne
|
||||||
@JoinColumn(name = "PegawaiFK")
|
@JoinColumn(name = "PegawaiFK")
|
||||||
@NotNull(message="Pegawai Harus Diisi")
|
@NotNull(message = "Pegawai Harus Diisi")
|
||||||
@Caption(value="Pegawai")
|
@Caption(value = "Pegawai")
|
||||||
private Pegawai 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;
|
private Integer pegawaiId;
|
||||||
|
|
||||||
@Column(name = "tahun")
|
@Column(name = "tahun")
|
||||||
@ -29,11 +29,11 @@ public class JatahCutiDanIzin extends BaseTransaction {
|
|||||||
|
|
||||||
@ManyToOne
|
@ManyToOne
|
||||||
@JoinColumn(name = "KomponenIndexFK")
|
@JoinColumn(name = "KomponenIndexFK")
|
||||||
@NotNull(message="KomponenIndex Harus Diisi")
|
@NotNull(message = "KomponenIndex Harus Diisi")
|
||||||
@Caption(value="KomponenIndex")
|
@Caption(value = "KomponenIndex")
|
||||||
private KomponenIndex 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;
|
private Integer komponenIndexId;
|
||||||
|
|
||||||
@Column(name = "value")
|
@Column(name = "value")
|
||||||
@ -52,77 +52,4 @@ public class JatahCutiDanIzin extends BaseTransaction {
|
|||||||
@Caption(value = "Tangguhkan Sisa Cuti")
|
@Caption(value = "Tangguhkan Sisa Cuti")
|
||||||
private Boolean isTangguhkan;
|
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;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,8 +1,11 @@
|
|||||||
package com.jasamedika.medifirst2000.vo;
|
package com.jasamedika.medifirst2000.vo;
|
||||||
|
|
||||||
|
|
||||||
import com.jasamedika.medifirst2000.base.vo.BaseTransactionVO;
|
import com.jasamedika.medifirst2000.base.vo.BaseTransactionVO;
|
||||||
|
import lombok.Getter;
|
||||||
|
import lombok.Setter;
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
@Setter
|
||||||
public class JatahCutiDanIzinVO extends BaseTransactionVO {
|
public class JatahCutiDanIzinVO extends BaseTransactionVO {
|
||||||
|
|
||||||
private PegawaiVO pegawai;
|
private PegawaiVO pegawai;
|
||||||
@ -23,76 +26,4 @@ public class JatahCutiDanIzinVO extends BaseTransactionVO {
|
|||||||
|
|
||||||
private Boolean isTangguhkan;
|
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;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -7,6 +7,7 @@ import com.jasamedika.medifirst2000.controller.base.LocaleController;
|
|||||||
import com.jasamedika.medifirst2000.core.web.WebConstants;
|
import com.jasamedika.medifirst2000.core.web.WebConstants;
|
||||||
import com.jasamedika.medifirst2000.dao.JenisGajiDao;
|
import com.jasamedika.medifirst2000.dao.JenisGajiDao;
|
||||||
import com.jasamedika.medifirst2000.dao.MapUraianTugasToRincianKegiatanDao;
|
import com.jasamedika.medifirst2000.dao.MapUraianTugasToRincianKegiatanDao;
|
||||||
|
import com.jasamedika.medifirst2000.dto.DataCutiDto;
|
||||||
import com.jasamedika.medifirst2000.entities.JenisGaji;
|
import com.jasamedika.medifirst2000.entities.JenisGaji;
|
||||||
import com.jasamedika.medifirst2000.entities.MapUraianTugasToRincianKegiatan;
|
import com.jasamedika.medifirst2000.entities.MapUraianTugasToRincianKegiatan;
|
||||||
import com.jasamedika.medifirst2000.entities.Pegawai;
|
import com.jasamedika.medifirst2000.entities.Pegawai;
|
||||||
@ -327,6 +328,9 @@ public class SdmController extends LocaleController<AkunVO> {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private LogAccService logAccService;
|
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)
|
@RequestMapping(value = "/save-custom-uraian-kerja", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE, consumes = MediaType.APPLICATION_JSON_VALUE)
|
||||||
public ResponseEntity<Map<String, Object>> saveBerkasLamaran(@Valid @RequestBody CustomIndexKerjaVO vo,
|
public ResponseEntity<Map<String, Object>> saveBerkasLamaran(@Valid @RequestBody CustomIndexKerjaVO vo,
|
||||||
HttpServletRequest request) {
|
HttpServletRequest request) {
|
||||||
@ -3189,20 +3193,16 @@ public class SdmController extends LocaleController<AkunVO> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@RequestMapping(value = "/get-data-cuti", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)
|
@RequestMapping(value = "/get-data-cuti", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)
|
||||||
public ResponseEntity<Map<String, Object>> getDataCuti(@RequestParam(value = "pegawaiId") Integer pegawaiId,
|
public ResponseEntity<DataCutiDto> getDataCuti(@RequestParam(value = "pegawaiId") Integer pegawaiId,
|
||||||
@RequestParam(value = "year", required = false) String year,
|
@RequestParam(value = "year", required = false) String year,
|
||||||
@RequestParam(value = "statusPegawaiId") Integer statusPegawaiId,
|
@RequestParam(value = "statusPegawaiId") Integer statusPegawaiId,
|
||||||
@RequestParam(value = "kategoriPegawaiId", required = false) Integer kategoriPegawaiId,
|
@RequestParam(value = "kategoriPegawaiId", required = false) Integer kategoriPegawaiId,
|
||||||
HttpServletRequest request) {
|
HttpServletRequest request) {
|
||||||
try {
|
try {
|
||||||
Map<String, Object> result = servicePermohonanStatus.getDataCuti(pegawaiId, year, statusPegawaiId);
|
DataCutiDto dto = jatahCutiDanIzinService.getDataCuti(pegawaiId, year, statusPegawaiId);
|
||||||
if (null != result) {
|
mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_SUCCESS,
|
||||||
mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_SUCCESS,
|
getMessage(MessageResource.LABEL_SUCCESS, request));
|
||||||
getMessage(MessageResource.LABEL_SUCCESS, request));
|
return RestUtil.getJsonResponse(dto, HttpStatus.OK, mapHeaderMessage);
|
||||||
return RestUtil.getJsonResponse(result, HttpStatus.OK, mapHeaderMessage);
|
|
||||||
} else {
|
|
||||||
return RestUtil.getJsonResponse(null, HttpStatus.NOT_FOUND, mapHeaderMessage);
|
|
||||||
}
|
|
||||||
} catch (ServiceVOException e) {
|
} catch (ServiceVOException e) {
|
||||||
LOGGER.error("Got ServiceVOException {} when getDataCuti", e.getMessage());
|
LOGGER.error("Got ServiceVOException {} when getDataCuti", e.getMessage());
|
||||||
addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, e.getMessage());
|
addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, e.getMessage());
|
||||||
@ -3215,19 +3215,15 @@ public class SdmController extends LocaleController<AkunVO> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@RequestMapping(value = "/perbarui-data-cuti", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)
|
@RequestMapping(value = "/perbarui-data-cuti", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)
|
||||||
public ResponseEntity<Map<String, Object>> perbaruiDataCuti(HttpServletRequest request,
|
public ResponseEntity<DataCutiDto> perbaruiDataCuti(HttpServletRequest request,
|
||||||
@RequestParam(value = "pegawaiId") Integer idPegawai,
|
@RequestParam(value = "pegawaiId") Integer idPegawai,
|
||||||
@RequestParam(value = "year", required = false) String year,
|
@RequestParam(value = "year", required = false) String year,
|
||||||
@RequestParam(value = "statusPegawaiId") Integer idStatusPegawai) {
|
@RequestParam(value = "statusPegawaiId") Integer idStatusPegawai) {
|
||||||
try {
|
try {
|
||||||
Map<String, Object> result = servicePermohonanStatus.perbaruiDataCuti(idPegawai, idStatusPegawai);
|
DataCutiDto dto = servicePermohonanStatus.perbaruiDataCuti(idPegawai, idStatusPegawai);
|
||||||
if (null != result) {
|
mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_SUCCESS,
|
||||||
mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_SUCCESS,
|
getMessage(MessageResource.LABEL_UPDATE_DATA_CUTI, request));
|
||||||
getMessage(MessageResource.LABEL_UPDATE_DATA_CUTI, request));
|
return RestUtil.getJsonResponse(dto, HttpStatus.OK, mapHeaderMessage);
|
||||||
return RestUtil.getJsonResponse(result, HttpStatus.OK, mapHeaderMessage);
|
|
||||||
} else {
|
|
||||||
return RestUtil.getJsonResponse(null, HttpStatus.NOT_FOUND, mapHeaderMessage);
|
|
||||||
}
|
|
||||||
} catch (ServiceVOException e) {
|
} catch (ServiceVOException e) {
|
||||||
LOGGER.error("Got ServiceVOException {} when perbaruiDataCuti", e.getMessage());
|
LOGGER.error("Got ServiceVOException {} when perbaruiDataCuti", e.getMessage());
|
||||||
addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, e.getMessage());
|
addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, e.getMessage());
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user