From 15be0c79bf9a7b9562f571780676f1eb2f9d409a Mon Sep 17 00:00:00 2001 From: salmanoe Date: Fri, 8 Jan 2021 17:19:28 +0700 Subject: [PATCH] - persiapan optimalisasi service update data cuti - perbaikan tata letak cetakan cuti dan surat izin sementara --- .../medifirst2000/constants/Master.java | 1 + .../PermohonanStatusPegawaiService.java | 6 +- .../impl/PermohonanStatusPegawaiImpl.java | 625 ++---------------- .../jrxml/lapPermohonanCuti2021.jrxml | 36 +- .../templates/jrxml/suratIzinSementara.jrxml | 7 +- .../controller/SdmController.java | 20 +- 6 files changed, 88 insertions(+), 607 deletions(-) diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/constants/Master.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/constants/Master.java index 74840e9e..87cfb25b 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/constants/Master.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/constants/Master.java @@ -173,6 +173,7 @@ public class Master { } public static final class KomponenIndex { + public static final Integer CUTI_BERSAMA = 21; public static final Integer CUTI_NONSHIFT = 5; public static final Integer CUTI_SHIFT = 6; } diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/PermohonanStatusPegawaiService.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/PermohonanStatusPegawaiService.java index ac0e8acc..01355344 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/PermohonanStatusPegawaiService.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/PermohonanStatusPegawaiService.java @@ -12,6 +12,7 @@ import com.jasamedika.medifirst2000.vo.ListTanggalCutiVO; import com.jasamedika.medifirst2000.vo.PlanningPegawaiStatusVO; public interface PermohonanStatusPegawaiService { + public Map getUserLogin(Integer idPegawai); public Map noUsulan(); @@ -24,11 +25,9 @@ public interface PermohonanStatusPegawaiService { public Map getDataCuti(Integer pegawaiId, String year, Integer statusPegawaiId); - public Map getDataCuti(String norec, Integer pegawaiId, String year, Integer statusPegawaiId); - public Map savePlanningPegawaiStatus(PlanningPegawaiStatusVO vo); - public Map updateDataCuti(String penandaTangan, String noRec); + public Map perbaruiDataCuti(Integer idPegawai, Integer idStatusPegawai); public Map savePlanningPegawaiStatusRev(PlanningPegawaiStatusVO vo); @@ -115,4 +114,5 @@ public interface PermohonanStatusPegawaiService { String noPlanning); public Map checkPermohonanStatusPegawai(String norec); + } diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/PermohonanStatusPegawaiImpl.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/PermohonanStatusPegawaiImpl.java index 1db63341..f3a5aa5b 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/PermohonanStatusPegawaiImpl.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/PermohonanStatusPegawaiImpl.java @@ -255,567 +255,6 @@ public class PermohonanStatusPegawaiImpl implements PermohonanStatusPegawaiServi return difCutiTerpakai; } - @Override - public Map getDataCuti(String norec, Integer pegawaiId, String year, Integer statusPegawaiId) { - Map result = new HashMap<>(); - - List listKomponenIndex = new ArrayList<>(); - - Integer sisaCuti = 0; - Integer sisaCutiB2 = 0; - Integer sisaCutiB1 = 0; - Integer sisaCutiB = 0; - Integer sisaCutiN2 = 0; - Integer sisaCutiN1 = 0; - Integer sisaCutiN = 0; - Integer jatahCuti = 0; - Integer sisaJatahRawatJalan = 0; - Integer sisaJatahRawatInap = 0; - Integer sisaIzin = 0; - - SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); - - SimpleDateFormat formatter = new SimpleDateFormat("yyyy"); - if (CommonUtil.isNullOrEmpty(year)) { - year = formatter.format(DateUtil.now()); - } - - Integer yearn1 = Integer.parseInt(year) - 1; - Integer yearn2 = Integer.parseInt(year) - 2; - Integer yearn3 = Integer.parseInt(year) + 1; - String yearN1 = yearn1.toString(); - String yearN2 = yearn2.toString(); - String yearN3 = yearn3.toString(); - - if (statusPegawaiId == 5 || statusPegawaiId == 1 || statusPegawaiId == 21) { - // ------------------------------------------SETTING_DATA_FIX------------------------------------------ - String komponen = settingDataFixedDao.getSettingDataFixed("komponenIndeksCuti");// 5 - String komponenIndeksCutiShift = settingDataFixedDao.getSettingDataFixed("komponenIndeksCutiShift");// 6 - String komponenIndeksCutiBersama = settingDataFixedDao.getSettingDataFixed("komponenIndeksCutiBersama");// 21 - - listKomponenIndex.add(Integer.valueOf(komponen)); - listKomponenIndex.add(Integer.valueOf(komponenIndeksCutiShift)); - - // Initiate cuti bersama - Integer cutiTerpakaiB2 = 0; - Integer cutiTerpakaiB1 = 0; - Integer cutiTerpakaiB = 0; - // 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; - } - - 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; - } - } - } - } else { - // impossible scenario - } - - // 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 - result.put("dataCutiB2", dataCutiB2); - result.put("dataCutiB1", dataCutiB1); - result.put("dataCutiB", dataCutiB); - result.put("dataCutiN2", dataCutiN2); - result.put("dataCutiN1", dataCutiN1); - result.put("dataCutiN", dataCutiN); - result.put("dataCutiN3", dataCutiN3); - - // Hitung Absen di tanggal cuti bersama - List listTglCutiBersama = mapKalenderToHariLiburDao.getTglCutiBersama(year); - int countDataHabsen = 0; - for (String tglStr : listTglCutiBersama) { - List dataHabsen = new ArrayList<>(); - - // cek shift malam - String tglPrev = sdf.format(java.sql.Date.valueOf(LocalDate.parse(tglStr).minusDays(1))); - List> listMap = pegawaiJadwalKerjaDao.getNamaShiftKerjaPegawaiByTanggal(tglPrev, - tglStr, pegawaiId); - if (listMap.size() == 2) { - if (!listMap.get(0).get("namaShift").toString().toLowerCase().contains("malam") - && listMap.get(1).get("namaShift").toString().toLowerCase().contains("malam")) { - dataHabsen = habsenDao.countAbsenTglCutiBersama(tglStr, pegawaiDao.getidFinger(pegawaiId)); - } else if (listMap.get(0).get("namaShift").toString().toLowerCase().contains("malam") - && listMap.get(1).get("namaShift").toString().toLowerCase().contains("malam")) { - dataHabsen = habsenDao.countAbsenTglCutiBersama(tglStr, pegawaiDao.getidFinger(pegawaiId)); - } else if (!listMap.get(0).get("namaShift").toString().toLowerCase().contains("malam") - && !listMap.get(1).get("namaShift").toString().toLowerCase().contains("malam")) { - dataHabsen = habsenDao.countAbsenTglCutiBersama(tglStr, pegawaiDao.getidFinger(pegawaiId)); - } - } - - if (CommonUtil.isNotNullOrEmpty(dataHabsen)) { - if (Arrays.asList(Master.ShiftKerja.TUJUH_BELAS_JAM_SHIFT) - .contains(Integer.parseInt(listMap.get(1).get("idShift").toString()))) { - countDataHabsen += 2; - } else { - countDataHabsen += 1; - } - } else { - // cuti tahunan di tanggal cuti bersama - List tglCutiTahunanDiTglCutiBersama = jatahCutiDanIzinDao - .getCutiTahunanDiTglCutiBersama(Master.StatusPegawai.CUTI_TAHUNAN, pegawaiId, tglStr); - if (CommonUtil.isNotNullOrEmpty(tglCutiTahunanDiTglCutiBersama)) { - if (Arrays.asList(Master.ShiftKerja.TUJUH_BELAS_JAM_SHIFT) - .contains(Integer.parseInt(listMap.get(1).get("idShift").toString()))) { - countDataHabsen += 2; - } else { - countDataHabsen += 1; - } - } - } - } - dataCutiB = countDataHabsen; - result.put("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 - result.put("isTangguhkanB2", false); - result.put("isTangguhkanB1", false); - result.put("isTangguhkanB", false); - Boolean jCutiN2 = jatahCutiDanIzinDao.getPenangguhanSisaCuti(yearN2, pegawaiId, Integer.valueOf(komponen)); - if (CommonUtil.isNotNullOrEmpty(jCutiN2)) { - result.put("isTangguhkanN2", jCutiN2); - } else { - jCutiN2 = false; - result.put("isTangguhkanN2", false); - } - Boolean jCutiN1 = jatahCutiDanIzinDao.getPenangguhanSisaCuti(yearN1, pegawaiId, Integer.valueOf(komponen)); - if (CommonUtil.isNotNullOrEmpty(jCutiN1)) { - result.put("isTangguhkanN1", jCutiN1); - } else { - jCutiN1 = false; - result.put("isTangguhkanN1", false); - } - Boolean jCutiN = jatahCutiDanIzinDao.getPenangguhanSisaCuti(year, pegawaiId, Integer.valueOf(komponen)); - if (CommonUtil.isNotNullOrEmpty(jCutiN)) { - result.put("isTangguhkanN", jCutiN); - } else { - jCutiN = false; - result.put("isTangguhkanN", false); - } - - // formula menghitung sisa cuti bersama dan mapping - if (dataCutiB >= cutiTerpakaiN) { - sisaCutiB = dataCutiB - cutiTerpakaiN; - cutiTerpakaiB = cutiTerpakaiN; - result.put("sisaCutiB2", sisaCutiB2); - result.put("sisaCutiB1", sisaCutiB1); - result.put("sisaCutiB", sisaCutiB); - result.put("cutiTerpakaiB2", cutiTerpakaiB2); - result.put("cutiTerpakaiB1", cutiTerpakaiB1); - result.put("cutiTerpakaiB", cutiTerpakaiB); - } else { - // jika cuti terpakai tahun berjalan lebih besar dari jatahcuti - // bersama - sisaCutiB = 0; - cutiTerpakaiB = dataCutiB; - result.put("sisaCutiB2", sisaCutiB2); - result.put("sisaCutiB1", sisaCutiB1); - result.put("sisaCutiB", sisaCutiB); - result.put("cutiTerpakaiB2", cutiTerpakaiB2); - result.put("cutiTerpakaiB1", cutiTerpakaiB1); - result.put("cutiTerpakaiB", cutiTerpakaiB); - } - - // menghitung jatah cuti yang terpakai - Integer jatahCutiTerpakaiN2 = 0, jatahCutiTerpakaiN1 = 0, jatahCutiTerpakaiN = 0; - Integer 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; - } - - // menghitung sisa cuti terlebih dahulu - if (difCutiTerpakai(cutiTerpakaiN2, dataCutiB2) - + difCutiTerpakai(cutiTerpakaiN1, dataCutiB1) < 12) { - if (difCutiTerpakai(cutiTerpakaiN2, dataCutiB2) >= 0 && !jCutiN2) { - sisaCutiN2 = 0; // hangus - } else { - if (difCutiTerpakai(cutiTerpakaiN2, dataCutiB2) - + difCutiTerpakai(cutiTerpakaiN1, dataCutiB1) < 6 && dataCutiN2 > 0) { - sisaCutiN2 = 6 - jatahCutiTerpakaiN2; - } else if (difCutiTerpakai(cutiTerpakaiN2, dataCutiB2) - + difCutiTerpakai(cutiTerpakaiN1, dataCutiB1) < 6 && dataCutiN2 <= 0) { - sisaCutiN2 = 0; - } else { - sisaCutiN2 = dataCutiN2 - jatahCutiTerpakaiN2; - } - } - } else { - if (dataCutiN2 - jatahCutiTerpakaiN2 >= 6 && !jCutiN2) { - sisaCutiN2 = 6 - jatahCutiTerpakaiN2; - } else { - sisaCutiN2 = dataCutiN2 - jatahCutiTerpakaiN2; - } - } - // hitung ulang jatah cuti terpakai karena pengajuan cuti - // tahun n menggunakan sisa n-2 - 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 (difCutiTerpakai(cutiTerpakaiN2, dataCutiB2) - + difCutiTerpakai(cutiTerpakaiN1, dataCutiB1) < 12) { - jatahCutiTerpakaiN2 = difCutiTerpakai(cutiTerpakaiN2, dataCutiB2) - + difCutiTerpakai(cutiTerpakaiN1, dataCutiB1); - } else { - jatahCutiTerpakaiN2 = allCutiTerpakai; - } - - // menghitung sisa cuti terlebih dahulu - if (difCutiTerpakai(cutiTerpakaiN2, dataCutiB2) - + difCutiTerpakai(cutiTerpakaiN1, dataCutiB1) < 12) { - if (difCutiTerpakai(cutiTerpakaiN2, dataCutiB2) >= 0 && !jCutiN2) { - sisaCutiN2 = 0; // hangus - } else { - if (difCutiTerpakai(cutiTerpakaiN2, dataCutiB2) - + difCutiTerpakai(cutiTerpakaiN1, dataCutiB1) < 6 && dataCutiN2 > 0) { - sisaCutiN2 = 6 - jatahCutiTerpakaiN2; - } else if (difCutiTerpakai(cutiTerpakaiN2, dataCutiB2) - + difCutiTerpakai(cutiTerpakaiN1, dataCutiB1) < 6 && dataCutiN2 <= 0) { - sisaCutiN2 = 0; - } else { - sisaCutiN2 = dataCutiN2 - jatahCutiTerpakaiN2; - } - } - } else { - if (dataCutiN2 - jatahCutiTerpakaiN2 >= 6 && !jCutiN2) { - sisaCutiN2 = 6 - jatahCutiTerpakaiN2; - } else { - sisaCutiN2 = dataCutiN2 - jatahCutiTerpakaiN2; - } - } - // hitung ulang jatah cuti terpakai karena pengajuan cuti - // tahun n menggunakan sisa n-2 - 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 (cutiTerpakaiN3 > 0 && 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 - result.put("cutiTerpakaiN2", jatahCutiTerpakaiN2); - result.put("cutiTerpakaiN1", jatahCutiTerpakaiN1); - result.put("cutiTerpakaiN", jatahCutiTerpakaiN); - - // menghitung sisa cuti - if (difCutiTerpakai(cutiTerpakaiN2, dataCutiB2) + difCutiTerpakai(cutiTerpakaiN1, dataCutiB1) < 12) { - if (difCutiTerpakai(cutiTerpakaiN2, dataCutiB2) >= 0 && !jCutiN2) { - sisaCutiN2 = 0; // hangus - } else { - if (difCutiTerpakai(cutiTerpakaiN2, dataCutiB2) + difCutiTerpakai(cutiTerpakaiN1, dataCutiB1) < 6) { - sisaCutiN2 = 6 - jatahCutiTerpakaiN2; - } else { - sisaCutiN2 = dataCutiN2 - jatahCutiTerpakaiN2; - } - } - } else { - if (dataCutiN2 - jatahCutiTerpakaiN2 >= 6 && !jCutiN2) { - sisaCutiN2 = 6 - jatahCutiTerpakaiN2; - } else { - sisaCutiN2 = dataCutiN2 - jatahCutiTerpakaiN2; - } - } - if (dataCutiN1 - jatahCutiTerpakaiN1 >= 6 && !jCutiN1) { - sisaCutiN1 = 6 - jatahCutiTerpakaiN1; - } else { - sisaCutiN1 = dataCutiN1 - jatahCutiTerpakaiN1; - } - sisaCutiN = dataCutiN - jatahCutiTerpakaiN; - - // put all data sisa cuti - result.put("sisaCutiN2", sisaCutiN2); - result.put("sisaCutiN1", sisaCutiN1); - result.put("sisaCutiN", sisaCutiN); - } - if (statusPegawaiId == 24) { - // ------------------------------------------SETTING_DATA_FIX------------------------------------------ - if (CommonUtil.isNotNullOrEmpty(jatahCuti)) { - result.put("jatahCuti", "-"); - } - result.put("sisaCuti", "-"); - } - - if (statusPegawaiId == 25) { - // ------------------------------------------SETTING_DATA_FIX------------------------------------------ - Map data = planningPegawaiStatusDao.getJatahCutiMelahirkan(statusPegawaiId); - if (CommonUtil.isNotNullOrEmpty(jatahCuti)) { - result.put("jatahCuti", data.get("kuotaTotalHari")); - } - result.put("sisaCuti", "-"); - } - - if (statusPegawaiId == 26) { - // ------------------------------------------SETTING_DATA_FIX------------------------------------------ - if (CommonUtil.isNotNullOrEmpty(jatahCuti)) { - result.put("jatahCuti", "-"); - } - result.put("sisaCuti", "-"); - } - // Izin - if (statusPegawaiId == 27) { - Integer komponenIzin = 17; // komponenIndex untuk izin - Integer jatahIzin = 2; // sesuai kesepakatan - - Integer jumlahIzinTerpakai = pegawaiHistoriRekapIndexDao.getIzinTerpakai(norec, pegawaiId, komponenIzin); - if (CommonUtil.isNotNullOrEmpty(jumlahIzinTerpakai)) { - sisaIzin = jatahIzin - jumlahIzinTerpakai; - } else { - sisaIzin = jatahIzin; - } - - result.put("jatahIzin", jatahIzin); - result.put("sisaIzin", sisaIzin); - } - if (statusPegawaiId == 28) { - // ------------------------------------------SETTING_DATA_FIX------------------------------------------ - if (CommonUtil.isNotNullOrEmpty(jatahCuti)) { - result.put("jatahCuti", "-"); - } - result.put("sisaCuti", "-"); - } - if (statusPegawaiId == 17) { - // ------------------------------------------SETTING_DATA_FIX------------------------------------------ - 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; - } - result.put("sisaCuti", sisaCuti); - result.put("jatahCuti", dataCuti); - } - // sakit - if (statusPegawaiId == 29 || statusPegawaiId == 6) { - // ------------------------------------------SETTING_DATA_FIX------------------------------------------ - 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; - } - result.put("sisaJatahRawatJalan", sisaJatahRawatJalan); - result.put("sisaJatahRawatInap", sisaJatahRawatInap); - } - - return result; - } - @Override public Map getDataCuti(Integer pegawaiId, String year, Integer statusPegawaiId) { Map result = new HashMap<>(); @@ -850,9 +289,9 @@ public class PermohonanStatusPegawaiImpl implements PermohonanStatusPegawaiServi if (statusPegawaiId == 5 || statusPegawaiId == 1 || statusPegawaiId == 21) { // ------------------------------------------SETTING_DATA_FIX------------------------------------------ - String komponen = settingDataFixedDao.getSettingDataFixed("komponenIndeksCuti");// 5 - String komponenIndeksCutiShift = settingDataFixedDao.getSettingDataFixed("komponenIndeksCutiShift");// 6 - String komponenIndeksCutiBersama = settingDataFixedDao.getSettingDataFixed("komponenIndeksCutiBersama");// 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)); @@ -3221,14 +2660,56 @@ public class PermohonanStatusPegawaiImpl implements PermohonanStatusPegawaiServi } @Override - public Map updateDataCuti(String penandaTangan, String noRec) { - Map result = new HashMap(); - PlanningPegawaiStatus planningPegawaiStatus = planningPegawaiStatusDao.findOne(noRec); - planningPegawaiStatus.setKeterangan(penandaTangan); - if (CommonUtil.isNotNullOrEmpty(planningPegawaiStatus)) { - PlanningPegawaiStatus model = planningPegawaiStatusDao.save(planningPegawaiStatus); - result.put("noRec", model.getNoRec()); - } + public Map perbaruiDataCuti(Integer idPegawai, Integer idStatusPegawai) { + PegawaiVO pegawaiVo = new PegawaiVO(); + pegawaiVo.setId(idPegawai); + + KomponenIndexVO komponenIndexVo = new KomponenIndexVO(); + komponenIndexVo.setId(Master.KomponenIndex.CUTI_BERSAMA); + + SimpleDateFormat formatter = new SimpleDateFormat("yyyy"); + String year = formatter.format(DateUtil.now()); + + Integer yearn1 = Integer.parseInt(year) - 1; + String yearN1 = yearn1.toString(); + + Integer yearn2 = Integer.parseInt(year) - 2; + String yearN2 = yearn2.toString(); + + Map dataCuti = this.getDataCuti(idPegawai, year, idStatusPegawai); + + JatahCutiDanIzinVO voTahunIni = new JatahCutiDanIzinVO(); + voTahunIni.setStatusEnabled(Master.STATUS_ENABLE_TRUE); + voTahunIni.setTahun(year); + voTahunIni.setKdProfile(Master.KODE_PROFILE); + voTahunIni.setPegawai(pegawaiVo); + voTahunIni.setValue(Integer.valueOf(dataCuti.get("dataCutiB").toString())); + voTahunIni.setKomponenIndex(komponenIndexVo); + voTahunIni.setIsTangguhkan(false); + this.setJatahCutiPegawaiRecursive(voTahunIni); + + JatahCutiDanIzinVO voTahunLalu = new JatahCutiDanIzinVO(); + voTahunLalu.setStatusEnabled(Master.STATUS_ENABLE_TRUE); + voTahunLalu.setTahun(yearN1); + voTahunLalu.setKdProfile(Master.KODE_PROFILE); + voTahunLalu.setPegawai(pegawaiVo); + voTahunLalu.setValue(Integer.valueOf(dataCuti.get("dataCutiB1").toString())); + voTahunLalu.setKomponenIndex(komponenIndexVo); + voTahunLalu.setIsTangguhkan(false); + this.setJatahCutiPegawaiRecursive(voTahunLalu); + + JatahCutiDanIzinVO voDuaTahunLalu = new JatahCutiDanIzinVO(); + voDuaTahunLalu.setStatusEnabled(Master.STATUS_ENABLE_TRUE); + voDuaTahunLalu.setTahun(yearN2); + voDuaTahunLalu.setKdProfile(Master.KODE_PROFILE); + voDuaTahunLalu.setPegawai(pegawaiVo); + voDuaTahunLalu.setValue(Integer.valueOf(dataCuti.get("dataCutiB2").toString())); + voDuaTahunLalu.setKomponenIndex(komponenIndexVo); + voDuaTahunLalu.setIsTangguhkan(false); + this.setJatahCutiPegawaiRecursive(voDuaTahunLalu); + + Map result = new HashMap<>(); + result.putAll(dataCuti); return result; } diff --git a/jasamedika-reporting/src/main/webapp/WEB-INF/templates/jrxml/lapPermohonanCuti2021.jrxml b/jasamedika-reporting/src/main/webapp/WEB-INF/templates/jrxml/lapPermohonanCuti2021.jrxml index b24c5a66..f337ae3e 100644 --- a/jasamedika-reporting/src/main/webapp/WEB-INF/templates/jrxml/lapPermohonanCuti2021.jrxml +++ b/jasamedika-reporting/src/main/webapp/WEB-INF/templates/jrxml/lapPermohonanCuti2021.jrxml @@ -314,7 +314,7 @@ - + @@ -326,7 +326,7 @@ - + @@ -337,7 +337,7 @@ - + @@ -350,7 +350,7 @@ - + @@ -369,7 +369,7 @@ - + @@ -382,7 +382,7 @@ - + @@ -434,7 +434,7 @@ - + @@ -446,7 +446,7 @@ - + @@ -627,7 +627,7 @@ - + @@ -639,7 +639,7 @@ - + @@ -655,7 +655,7 @@ - + @@ -666,7 +666,7 @@ - + @@ -680,7 +680,7 @@ - + @@ -693,7 +693,7 @@ - + @@ -705,7 +705,7 @@ - + @@ -720,7 +720,7 @@ - + @@ -735,7 +735,7 @@ - + @@ -748,7 +748,7 @@ - + diff --git a/jasamedika-reporting/src/main/webapp/WEB-INF/templates/jrxml/suratIzinSementara.jrxml b/jasamedika-reporting/src/main/webapp/WEB-INF/templates/jrxml/suratIzinSementara.jrxml index 2e15c362..5a81101d 100644 --- a/jasamedika-reporting/src/main/webapp/WEB-INF/templates/jrxml/suratIzinSementara.jrxml +++ b/jasamedika-reporting/src/main/webapp/WEB-INF/templates/jrxml/suratIzinSementara.jrxml @@ -88,12 +88,13 @@ - - + + - + + diff --git a/jasamedika-sdm/src/main/java/com/jasamedika/medifirst2000/controller/SdmController.java b/jasamedika-sdm/src/main/java/com/jasamedika/medifirst2000/controller/SdmController.java index ed63e7b9..c02b70b6 100644 --- a/jasamedika-sdm/src/main/java/com/jasamedika/medifirst2000/controller/SdmController.java +++ b/jasamedika-sdm/src/main/java/com/jasamedika/medifirst2000/controller/SdmController.java @@ -3296,28 +3296,26 @@ public class SdmController extends LocaleController { } } - @RequestMapping(value = "/get-data-cuti-edit", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE) - public ResponseEntity> getDataCuti(@RequestParam(value = "norec", required = true) String norec, - @RequestParam(value = "pegawaiId", required = true) Integer pegawaiId, + @RequestMapping(value = "/perbarui-data-cuti", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE) + public ResponseEntity> perbaruiDataCuti(HttpServletRequest request, + @RequestParam(value = "pegawaiId", required = true) Integer idPegawai, @RequestParam(value = "year", required = false) String year, - @RequestParam(value = "statusPegawaiId", required = true) Integer statusPegawaiId, - @RequestParam(value = "kategoriPegawaiId", required = false) Integer kategoriPegawaiId, - HttpServletRequest request) { + @RequestParam(value = "statusPegawaiId", required = true) Integer idStatusPegawai) { try { - Map result = servicePermohonanStatus.getDataCuti(norec, pegawaiId, year, statusPegawaiId); + Map result = servicePermohonanStatus.perbaruiDataCuti(idPegawai, idStatusPegawai); if (null != result) { - mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_SUCCESS_OK, - getMessage(MessageResource.LABEL_SUCCESS_OK, request)); + mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_SUCCESS, + getMessage(MessageResource.LABEL_UPDATE_DATA_CUTI, request)); return RestUtil.getJsonResponse(result, HttpStatus.OK, mapHeaderMessage); } else { return RestUtil.getJsonResponse(result, HttpStatus.NOT_FOUND, mapHeaderMessage); } } catch (ServiceVOException e) { - LOGGER.error("Got exception {} when getDataCuti", e.getMessage()); + LOGGER.error("Got exception {} when perbaruiDataCuti", e.getMessage()); addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, e.getMessage()); return RestUtil.getJsonHttptatus(HttpStatus.INTERNAL_SERVER_ERROR, mapHeaderMessage); } catch (JpaSystemException jse) { - LOGGER.error("Got exception {} when getDataCuti", jse.getMessage()); + LOGGER.error("Got exception {} when perbaruiDataCuti", jse.getMessage()); addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, jse.getMessage()); return RestUtil.getJsonHttptatus(HttpStatus.CONFLICT, mapHeaderMessage); }