Update service jatah cuti dan iziin
Pembuatan subrutin get data presensi di cuti bersama yang bisa ditangguhkan di tahun sebelumnya
This commit is contained in:
parent
172559120b
commit
c72352c294
@ -1,5 +1,6 @@
|
||||
package com.jasamedika.medifirst2000.dao;
|
||||
|
||||
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;
|
||||
@ -7,6 +8,7 @@ import org.springframework.data.repository.PagingAndSortingRepository;
|
||||
import org.springframework.data.repository.query.Param;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
@ -36,4 +38,11 @@ public interface MapKalenderToHariLiburDao extends PagingAndSortingRepository<Ma
|
||||
+ "and to_char(kalender.tanggal,'yyyy')>=:tahun")
|
||||
List<Map<String, Object>> 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) "
|
||||
+ "from Pegawai pg, Habsen hab, MapKalenderToHariLibur mkl " + "inner join mkl.tanggal kld "
|
||||
+ "where pg.idFinger = hab.empl_code " + "and cast(hab.tr_date as date) = kld.tanggal "
|
||||
+ "and mkl.isCutiBersamaDitangguhkan is true " + "and kld.tanggal between :tglAwal and :tglAkhir")
|
||||
List<PresensiHariLibur> getByTahun(@Param("tglAwal") Date tglAwal, @Param("tglAkhir") Date tglAkhir);
|
||||
|
||||
}
|
||||
|
||||
@ -3,6 +3,8 @@ 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.service.JatahCutiDanIzinService;
|
||||
import com.jasamedika.medifirst2000.util.CommonUtil;
|
||||
import com.jasamedika.medifirst2000.util.DateUtil;
|
||||
@ -44,10 +46,12 @@ public class JatahCutiDanIzinServiceImpl implements JatahCutiDanIzinService {
|
||||
|
||||
@Override
|
||||
public DataCutiDto getDataCuti(Integer pegawaiId, String year, Integer statusPegawaiId) {
|
||||
return calculateCutiIzin(pegawaiId, year, statusPegawaiId);
|
||||
DataCutiDto dto = calculateCutiIzin(pegawaiId, year, statusPegawaiId);
|
||||
JatahCutiRequest jatahCutiRequest = transform(pegawaiId, year, statusPegawaiId);
|
||||
return tangguhkanCutiBersama(dto, jatahCutiRequest);
|
||||
}
|
||||
|
||||
public DataCutiDto calculateCutiIzin(Integer pegawaiId, String year, Integer statusPegawaiId) {
|
||||
private DataCutiDto calculateCutiIzin(Integer pegawaiId, String year, Integer statusPegawaiId) {
|
||||
DataCutiDto.DataCutiDtoBuilder cutiIzinBuilder = DataCutiDto.builder();
|
||||
List<Integer> listKomponenIndex = new ArrayList<>();
|
||||
int sisaCuti;
|
||||
@ -306,8 +310,6 @@ public class JatahCutiDanIzinServiceImpl implements JatahCutiDanIzinService {
|
||||
sisaCutiN2 = 0;
|
||||
}
|
||||
} else {
|
||||
difCutiTerpakai(cutiTerpakaiN2, dataCutiB2);
|
||||
difCutiTerpakai(cutiTerpakaiN1, dataCutiB1);
|
||||
sisaCutiN2 = dataCutiN2 - jatahCutiTerpakaiN2;
|
||||
}
|
||||
}
|
||||
@ -530,11 +532,24 @@ public class JatahCutiDanIzinServiceImpl implements JatahCutiDanIzinService {
|
||||
return cutiIzinBuilder.build();
|
||||
}
|
||||
|
||||
public Integer difCutiTerpakai(Integer cutiTerpakai, Integer dataCuti) {
|
||||
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) {
|
||||
DataCutiDto.DataCutiDtoBuilder builder = DataCutiDto.builder();
|
||||
Calendar calendar = Calendar.getInstance();
|
||||
calendar.add(Calendar.YEAR, -1);
|
||||
List<PresensiHariLibur> listPresensi = mapKalenderToHariLiburDao
|
||||
.getByTahun(DateUtil.startYear(calendar.getTime()), DateUtil.endYear(calendar.getTime()));
|
||||
return dto;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -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;
|
||||
|
||||
}
|
||||
@ -0,0 +1,27 @@
|
||||
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;
|
||||
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user