Merge branch 'dev/pegawai/cuti' of ssh://172.16.55.31/volume1/git/SC-be-java into dev/pegawai/cuti

This commit is contained in:
Salman Manoe 2025-01-17 08:48:55 +07:00
commit 1e3a960414
3 changed files with 15 additions and 33 deletions

View File

@ -49,10 +49,4 @@ public interface MapKalenderToHariLiburDao extends PagingAndSortingRepository<Ma
@Param("idHariLibur") Integer idHariLibur, @Param("tglAwal") Date tglAwal, @Param("idHariLibur") Integer idHariLibur, @Param("tglAwal") Date tglAwal,
@Param("tglAkhir") Date tglAkhir); @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<MapKalenderToHariLibur> getByTahun(@Param("idHariLibur") Integer idHariLibur, @Param("tglAwal") Date tglAwal,
@Param("tglAkhir") Date tglAkhir);
} }

View File

@ -6,7 +6,6 @@ import com.jasamedika.medifirst2000.dto.DataCutiDto;
import com.jasamedika.medifirst2000.dto.JatahCutiRequest; import com.jasamedika.medifirst2000.dto.JatahCutiRequest;
import com.jasamedika.medifirst2000.dto.PresensiHariLibur; import com.jasamedika.medifirst2000.dto.PresensiHariLibur;
import com.jasamedika.medifirst2000.entities.ListTanggalCuti; import com.jasamedika.medifirst2000.entities.ListTanggalCuti;
import com.jasamedika.medifirst2000.entities.MapKalenderToHariLibur;
import com.jasamedika.medifirst2000.service.JatahCutiDanIzinService; import com.jasamedika.medifirst2000.service.JatahCutiDanIzinService;
import com.jasamedika.medifirst2000.util.CommonUtil; import com.jasamedika.medifirst2000.util.CommonUtil;
import com.jasamedika.medifirst2000.util.DateUtil; import com.jasamedika.medifirst2000.util.DateUtil;
@ -288,7 +287,7 @@ public class JatahCutiDanIzinServiceImpl implements JatahCutiDanIzinService {
if (dataCutiN2 > 0) { if (dataCutiN2 > 0) {
if (allCutiTerpakai >= dataCutiN2) { if (allCutiTerpakai >= dataCutiN2) {
if (difCutiTerpakai(cutiTerpakaiN2, dataCutiB2) if (difCutiTerpakai(cutiTerpakaiN2, dataCutiB2)
+ difCutiTerpakai(cutiTerpakaiN1, dataCutiB1) < 12) { + difCutiTerpakai(cutiTerpakaiN1, dataCutiB1) < dataCutiN2) {
jatahCutiTerpakaiN2 = difCutiTerpakai(cutiTerpakaiN2, dataCutiB2) jatahCutiTerpakaiN2 = difCutiTerpakai(cutiTerpakaiN2, dataCutiB2)
+ difCutiTerpakai(cutiTerpakaiN1, dataCutiB1); + difCutiTerpakai(cutiTerpakaiN1, dataCutiB1);
} else { } else {
@ -296,14 +295,15 @@ public class JatahCutiDanIzinServiceImpl implements JatahCutiDanIzinService {
} }
} else { } else {
if (difCutiTerpakai(cutiTerpakaiN2, dataCutiB2) if (difCutiTerpakai(cutiTerpakaiN2, dataCutiB2)
+ difCutiTerpakai(cutiTerpakaiN1, dataCutiB1) < 12) { + difCutiTerpakai(cutiTerpakaiN1, dataCutiB1) < dataCutiN2) {
jatahCutiTerpakaiN2 = difCutiTerpakai(cutiTerpakaiN2, dataCutiB2) jatahCutiTerpakaiN2 = difCutiTerpakai(cutiTerpakaiN2, dataCutiB2)
+ difCutiTerpakai(cutiTerpakaiN1, dataCutiB1); + difCutiTerpakai(cutiTerpakaiN1, dataCutiB1);
} else { } else {
jatahCutiTerpakaiN2 = allCutiTerpakai; jatahCutiTerpakaiN2 = allCutiTerpakai;
} }
} }
if (difCutiTerpakai(cutiTerpakaiN2, dataCutiB2) + difCutiTerpakai(cutiTerpakaiN1, dataCutiB1) < 12) { if (difCutiTerpakai(cutiTerpakaiN2, dataCutiB2)
+ difCutiTerpakai(cutiTerpakaiN1, dataCutiB1) < dataCutiN2) {
if (difCutiTerpakai(cutiTerpakaiN2, dataCutiB2) > 0) { if (difCutiTerpakai(cutiTerpakaiN2, dataCutiB2) > 0) {
sisaCutiN2 = 0; // hangus sisaCutiN2 = 0; // hangus
} else { } else {
@ -556,34 +556,22 @@ public class JatahCutiDanIzinServiceImpl implements JatahCutiDanIzinService {
Date tahunLalu = DateUtil.getInstanceCalendar(-1); Date tahunLalu = DateUtil.getInstanceCalendar(-1);
Date awalTahunLalu = DateUtil.startYear(tahunLalu); Date awalTahunLalu = DateUtil.startYear(tahunLalu);
Date akhirTahunLalu = DateUtil.endYear(tahunLalu); Date akhirTahunLalu = DateUtil.endYear(tahunLalu);
List<MapKalenderToHariLibur> listKalenderCutiBersama = mapKalenderToHariLiburDao.getByTahun(LIBUR_CB,
awalTahunLalu, akhirTahunLalu);
List<MapKalenderToHariLibur> listKalenderCutiBersamaBisaDitangguhkan = listKalenderCutiBersama.stream()
.filter(MapKalenderToHariLibur::getIsCutiBersamaDitangguhkan).collect(Collectors.toList());
List<ListTanggalCuti> listCutiTahunLaluBelumDisetujui = tanggalCutiDao
.notApprovedByPermohonan(request.getPegawaiId(), CUTI_TAHUNAN, awalTahunLalu, akhirTahunLalu);
List<PresensiHariLibur> listPresensiTahunLalu = mapKalenderToHariLiburDao List<PresensiHariLibur> listPresensiTahunLalu = mapKalenderToHariLiburDao
.getPresensiByTahun(request.getPegawaiId(), LIBUR_CB, awalTahunLalu, akhirTahunLalu); .getPresensiByTahun(request.getPegawaiId(), LIBUR_CB, awalTahunLalu, akhirTahunLalu);
int presensiCutiBersama = countValidPresensi(listPresensiTahunLalu, listKalenderCutiBersama); List<PresensiHariLibur> listPresensiCutiBersamaBisaDitangguhkan = listPresensiTahunLalu.stream()
int jatahDitangguhkan = countValidPresensi(listPresensiTahunLalu, listKalenderCutiBersamaBisaDitangguhkan); .filter(PresensiHariLibur::getIsCutiBersamaDitangguhkan).collect(Collectors.toList());
if (listPresensiCutiBersamaBisaDitangguhkan.isEmpty())
return dto;
List<ListTanggalCuti> listCutiTahunLaluBelumDisetujui = tanggalCutiDao
.notApprovedByPermohonan(request.getPegawaiId(), CUTI_TAHUNAN, awalTahunLalu, akhirTahunLalu);
int presensiCutiBersama = listPresensiTahunLalu.size();
int jatahDitangguhkan = listPresensiCutiBersamaBisaDitangguhkan.size();
if (presensiCutiBersama - dto.getCutiTerpakaiB1() if (presensiCutiBersama - dto.getCutiTerpakaiB1()
+ listCutiTahunLaluBelumDisetujui.size() > jatahDitangguhkan) { - listCutiTahunLaluBelumDisetujui.size() >= jatahDitangguhkan) {
dto.setDataCutiB(dto.getDataCutiB() + jatahDitangguhkan); dto.setDataCutiB(dto.getDataCutiB() + jatahDitangguhkan);
dto.setSisaCutiB(dto.getDataCutiB() - dto.getCutiTerpakaiB()); dto.setSisaCutiB(dto.getDataCutiB() - dto.getCutiTerpakaiB());
} }
return dto; return dto;
} }
private int countValidPresensi(List<PresensiHariLibur> listPresensiDiCutiBersama,
List<MapKalenderToHariLibur> listKalenderCutiBersama) {
int result = 0;
for (PresensiHariLibur presensiDiCutiBersama : listPresensiDiCutiBersama) {
Optional<MapKalenderToHariLibur> any = listKalenderCutiBersama.stream()
.filter(k -> presensiDiCutiBersama.getTanggal().equals(k.getTanggal().getTanggal())).findAny();
if (any.isPresent())
result++;
}
return result;
}
} }

View File

@ -8,11 +8,11 @@ hibernate.show_sql = true
hikari.config.maximum.pool.size = 5 hikari.config.maximum.pool.size = 5
# DB Development # DB Development
jdbc.url = jdbc:postgresql://192.168.12.3:5432/rsab_hk_24_08_20 jdbc.url = jdbc:postgresql://192.168.12.3:5432/rsab_hk_25_01_14
jdbc.username = smart_user jdbc.username = smart_user
jdbc.password = 1miwhir3yr jdbc.password = 1miwhir3yr
jdbc.serverName = 192.168.12.3 jdbc.serverName = 192.168.12.3
jdbc.databaseName = rsab_hk_24_08_20 jdbc.databaseName = rsab_hk_25_01_14
jdbc.portNumber = 5432 jdbc.portNumber = 5432
corePoolSizeAsyncConfigurer = 5 corePoolSizeAsyncConfigurer = 5