diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/MapKalenderToHariLiburDao.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/MapKalenderToHariLiburDao.java index acd2859d..c5472f5e 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/MapKalenderToHariLiburDao.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/MapKalenderToHariLiburDao.java @@ -49,10 +49,4 @@ public interface MapKalenderToHariLiburDao extends PagingAndSortingRepository getByTahun(@Param("idHariLibur") Integer idHariLibur, @Param("tglAwal") Date tglAwal, - @Param("tglAkhir") Date tglAkhir); - } diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/JatahCutiDanIzinServiceImpl.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/JatahCutiDanIzinServiceImpl.java index 06e6a9f6..22593f02 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/JatahCutiDanIzinServiceImpl.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/JatahCutiDanIzinServiceImpl.java @@ -6,7 +6,6 @@ import com.jasamedika.medifirst2000.dto.DataCutiDto; import com.jasamedika.medifirst2000.dto.JatahCutiRequest; import com.jasamedika.medifirst2000.dto.PresensiHariLibur; import com.jasamedika.medifirst2000.entities.ListTanggalCuti; -import com.jasamedika.medifirst2000.entities.MapKalenderToHariLibur; import com.jasamedika.medifirst2000.service.JatahCutiDanIzinService; import com.jasamedika.medifirst2000.util.CommonUtil; import com.jasamedika.medifirst2000.util.DateUtil; @@ -288,7 +287,7 @@ public class JatahCutiDanIzinServiceImpl implements JatahCutiDanIzinService { if (dataCutiN2 > 0) { if (allCutiTerpakai >= dataCutiN2) { if (difCutiTerpakai(cutiTerpakaiN2, dataCutiB2) - + difCutiTerpakai(cutiTerpakaiN1, dataCutiB1) < 12) { + + difCutiTerpakai(cutiTerpakaiN1, dataCutiB1) < dataCutiN2) { jatahCutiTerpakaiN2 = difCutiTerpakai(cutiTerpakaiN2, dataCutiB2) + difCutiTerpakai(cutiTerpakaiN1, dataCutiB1); } else { @@ -296,14 +295,15 @@ public class JatahCutiDanIzinServiceImpl implements JatahCutiDanIzinService { } } else { if (difCutiTerpakai(cutiTerpakaiN2, dataCutiB2) - + difCutiTerpakai(cutiTerpakaiN1, dataCutiB1) < 12) { + + difCutiTerpakai(cutiTerpakaiN1, dataCutiB1) < dataCutiN2) { jatahCutiTerpakaiN2 = difCutiTerpakai(cutiTerpakaiN2, dataCutiB2) + difCutiTerpakai(cutiTerpakaiN1, dataCutiB1); } else { jatahCutiTerpakaiN2 = allCutiTerpakai; } } - if (difCutiTerpakai(cutiTerpakaiN2, dataCutiB2) + difCutiTerpakai(cutiTerpakaiN1, dataCutiB1) < 12) { + if (difCutiTerpakai(cutiTerpakaiN2, dataCutiB2) + + difCutiTerpakai(cutiTerpakaiN1, dataCutiB1) < dataCutiN2) { if (difCutiTerpakai(cutiTerpakaiN2, dataCutiB2) > 0) { sisaCutiN2 = 0; // hangus } else { @@ -556,34 +556,22 @@ public class JatahCutiDanIzinServiceImpl implements JatahCutiDanIzinService { Date tahunLalu = DateUtil.getInstanceCalendar(-1); Date awalTahunLalu = DateUtil.startYear(tahunLalu); Date akhirTahunLalu = DateUtil.endYear(tahunLalu); - List listKalenderCutiBersama = mapKalenderToHariLiburDao.getByTahun(LIBUR_CB, - awalTahunLalu, akhirTahunLalu); - List listKalenderCutiBersamaBisaDitangguhkan = listKalenderCutiBersama.stream() - .filter(MapKalenderToHariLibur::getIsCutiBersamaDitangguhkan).collect(Collectors.toList()); - List listCutiTahunLaluBelumDisetujui = tanggalCutiDao - .notApprovedByPermohonan(request.getPegawaiId(), CUTI_TAHUNAN, awalTahunLalu, akhirTahunLalu); List listPresensiTahunLalu = mapKalenderToHariLiburDao .getPresensiByTahun(request.getPegawaiId(), LIBUR_CB, awalTahunLalu, akhirTahunLalu); - int presensiCutiBersama = countValidPresensi(listPresensiTahunLalu, listKalenderCutiBersama); - int jatahDitangguhkan = countValidPresensi(listPresensiTahunLalu, listKalenderCutiBersamaBisaDitangguhkan); + List listPresensiCutiBersamaBisaDitangguhkan = listPresensiTahunLalu.stream() + .filter(PresensiHariLibur::getIsCutiBersamaDitangguhkan).collect(Collectors.toList()); + if (listPresensiCutiBersamaBisaDitangguhkan.isEmpty()) + return dto; + List listCutiTahunLaluBelumDisetujui = tanggalCutiDao + .notApprovedByPermohonan(request.getPegawaiId(), CUTI_TAHUNAN, awalTahunLalu, akhirTahunLalu); + int presensiCutiBersama = listPresensiTahunLalu.size(); + int jatahDitangguhkan = listPresensiCutiBersamaBisaDitangguhkan.size(); if (presensiCutiBersama - dto.getCutiTerpakaiB1() - + listCutiTahunLaluBelumDisetujui.size() > jatahDitangguhkan) { + - listCutiTahunLaluBelumDisetujui.size() >= jatahDitangguhkan) { dto.setDataCutiB(dto.getDataCutiB() + jatahDitangguhkan); dto.setSisaCutiB(dto.getDataCutiB() - dto.getCutiTerpakaiB()); } return dto; } - private int countValidPresensi(List listPresensiDiCutiBersama, - List listKalenderCutiBersama) { - int result = 0; - for (PresensiHariLibur presensiDiCutiBersama : listPresensiDiCutiBersama) { - Optional any = listKalenderCutiBersama.stream() - .filter(k -> presensiDiCutiBersama.getTanggal().equals(k.getTanggal().getTanggal())).findAny(); - if (any.isPresent()) - result++; - } - return result; - } - } diff --git a/jasamedika-config/src/main/resources/jdbc.development.properties b/jasamedika-config/src/main/resources/jdbc.development.properties index 5db229ff..57bb2f0b 100644 --- a/jasamedika-config/src/main/resources/jdbc.development.properties +++ b/jasamedika-config/src/main/resources/jdbc.development.properties @@ -8,11 +8,11 @@ hibernate.show_sql = true hikari.config.maximum.pool.size = 5 # 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.password = 1miwhir3yr jdbc.serverName = 192.168.12.3 -jdbc.databaseName = rsab_hk_24_08_20 +jdbc.databaseName = rsab_hk_25_01_14 jdbc.portNumber = 5432 corePoolSizeAsyncConfigurer = 5