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 3eacfdca..d2503bec 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 @@ -377,18 +377,16 @@ public final class Master { public static final class ShiftKerja { public static final float FACTOR_RATE_NONSHIFT = 8; - public static final Integer[] HOLIDAY = { 8, 14, 15, 40 }; - public static final Integer[] HOLIDAY_INCLUDED = { 7, 13, 67, 69, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, - 83 }; - public static final Integer NONSHIFT_J = 19; - public static final Integer NONSHIFT_SK = 18; - public static final Integer NONSHIFT_PLUS_J = 85; - public static final Integer NONSHIFT_PLUS_SK = 84; + public static final Integer[] HOLIDAY = { 8, 14, 15, 40 }; // sudah di cek tidak ada penambahan master baru + public static final Integer[] HOLIDAY_INCLUDED = { 7, 13, 67, 69, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83 }; // sudah di cek tidak ada penambahan master baru + public static final Integer NONSHIFT_J = 177; // sudah di update dengan penambahan master baru + public static final Integer NONSHIFT_SK = 175; // sudah di update dengan penambahan master baru + public static final Integer NONSHIFT_PLUS_J = 178; // sudah di update dengan penambahan master baru + public static final Integer NONSHIFT_PLUS_SK = 176; // sudah di update dengan penambahan master baru public static final String OPERATOR_FACTOR_RATE_NONSHIFT = "x"; - public static final Integer[] PSM = { 31, 47, 106 }; + public static final Integer[] PSM = { 31, 47, 106, 203, 204 }; // id shift kerja -> ada penambahan 203, 204 public static final Integer RESET = 0; - public static final Integer[] TUJUH_BELAS_JAM_SHIFT = { 22, 24, 31, 33, 46, 47, 50, 58, 64, 65, 66, 86, 91, 106, - 114, 115 }; + public static final Integer[] TUJUH_BELAS_JAM_SHIFT = { 22, 24, 31, 33, 46, 47, 50, 58, 64, 65, 66, 86, 91, 106, 114, 115, 203, 204}; // id shift kerja -> ada penambahan 203, 204 } public static final class StatusPegawai { diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/LogbookKinerjaDetailDao.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/LogbookKinerjaDetailDao.java index 3e886775..8fba6fe2 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/LogbookKinerjaDetailDao.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/LogbookKinerjaDetailDao.java @@ -51,6 +51,10 @@ public interface LogbookKinerjaDetailDao extends PagingAndSortingRepository> findWorkingRecordTanpaStatusVerif(@Param("pegawaiId") Integer idPegawai, + @Param("jabatanId") Integer idJabatan, @Param("start") Date start, @Param("end") Date end); + @Query("select new Map(lkd.logbookKinerjaId as logbookId,sum(lkd.capaian) as sumCapaian,ikm.satuanIndikatorId as satuanId) " + "from LogbookKinerjaDetail lkd " + "inner join lkd.logbookKinerja lk " + "inner join lk.indikatorKinerja ikm " + "where lkd.statusEnabled is true " diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/PelayananPasienDao.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/PelayananPasienDao.java index 1892600e..9622dfe1 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/PelayananPasienDao.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/PelayananPasienDao.java @@ -204,8 +204,8 @@ public interface PelayananPasienDao extends JpaRepository> findByKelompokShiftId(@Param("id") Integer idShift); + @Query("select new Map(model.factorRate as factorRate, " + "model.flagKetidakhadiran as flagKetidakhadiran, " + + "model.id as id, " + "model.jadwalPraktekId as jadwalPraktekId, " + + "model.jamBreakAkhir as jamBreakAkhir, " + "model.jamBreakAwal as jamBreakAwal, " + + "model.jamMasuk as jamMasuk, " + "model.jamPraktekId as jamPraktekId, " + "model.jamPulang as jamPulang, " + + "model.kdProfile as kdProfile, " + "model.kdShift as kdShift, " + + "model.kelompokShiftId as kelompokShiftId, " + "model.kodeExternal as kodeExternal, " + + "model.komponenIndexId as komponenIndexId, " + "model.namaExternal as namaExternal, " + + "model.namaShift as namaShift, " + "model.noRec as noRec, " + + "model.operatorFactorRate as operatorFactorRate, " + "model.qShift as qShift, " + + "model.reportDisplay as reportDisplay, " + "model.statusEnabled as statusEnabled, " + + "model.waktuIstirahat as waktuIstirahat) " + "from ShiftKerja model " + + "where model.kelompokShift.id=:id ") + List> findByKelompokShiftIdWithoutStatusEnabled(@Param("id") Integer idShift); + @Query(" select new map (komponenIndex.komponenIndex as namaKomponen, " + " komponenIndex.id as idKomponenIndex) " + " from KomponenIndex komponenIndex") public List> getListKomponenIndex(); diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/LogbookKinerjaDetailService.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/LogbookKinerjaDetailService.java index 7af4c340..6e1ea8e4 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/LogbookKinerjaDetailService.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/LogbookKinerjaDetailService.java @@ -13,6 +13,9 @@ public interface LogbookKinerjaDetailService List> findWorkingRecord(Integer idPegawai, Integer idJabatan, Long bulan, Boolean statusVerif) throws JpaSystemException; + List> findWorkingRecordTanpaStatusVerif(Integer idPegawai, Integer idJabatan, Long bulan) + throws JpaSystemException; + List> findWorkingRecord(Integer idPegawai, Integer idJabatan, Integer idIndikator, Long bulan) throws JpaSystemException; diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/LogbookKinerjaDetailServiceImpl.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/LogbookKinerjaDetailServiceImpl.java index 3381080e..32fef4cc 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/LogbookKinerjaDetailServiceImpl.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/LogbookKinerjaDetailServiceImpl.java @@ -205,6 +205,28 @@ public class LogbookKinerjaDetailServiceImpl extends BaseVoServiceImpl implement return result; } + @Override + public List> findWorkingRecordTanpaStatusVerif(Integer idPegawai, Integer idJabatan, Long bulan) throws JpaSystemException { + DateFormat df = new SimpleDateFormat("yyyy-MM"); + Date start = DateUtil.startMonth(bulan); + Date end = DateUtil.endMonth(bulan); + + String strTglLimitVerif = settingDataFixedDao.getSettingDataFixed("tglLimitVerifWorkingRecord"); + LocalDateTime tglLimitVerif = LocalDateTime + .of(LocalDate.parse(df.format(new Date(bulan)) + strTglLimitVerif).plusMonths(1), LocalTime.MAX); + + List> result = logbookKinerjaDetailDao.findWorkingRecordTanpaStatusVerif(idPegawai, idJabatan, start, end); + for (Map map : result) { + Map logbook = new HashMap<>(); + logbook.put("noRec", map.get("logbookNoRec")); + map.put("logbookKinerja", logbook); + map.put("tglBatasAkhirVerif", Date.from(tglLimitVerif.atZone(ZoneId.systemDefault()).toInstant())); + map.remove("logbookNoRec"); + } + + return result; + } + @Override public List> findWorkingRecord(Integer idPegawai, Integer idJabatan, Integer idIndikator, Long bulan) throws JpaSystemException { diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/MonitoringAbsenServiceImpl.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/MonitoringAbsenServiceImpl.java index 734fce2f..d643d028 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/MonitoringAbsenServiceImpl.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/MonitoringAbsenServiceImpl.java @@ -745,7 +745,7 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon Date jadwalPulang = null; Date jam_masuk; Date jam_pulang; - + Date tanggal = (Date) data.get("tanggal"); String tgl = df.format(tanggal); data.put("dates", tanggal.getTime()); @@ -1390,6 +1390,7 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon } } + List> newResultDataShift = new ArrayList<>(); for (Integer id : listIdPegawaiFilter) { PegawaiStatusDto pegawaiStatus = pegawaiDao.findStatusById(id); String idFinger = pegawaiStatus.getIdFinger(); @@ -1406,6 +1407,8 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon Integer cuti = 0; Integer sakit = 0; Integer absenTunggal = 0; + Integer absenTunggalNonJadwal = 0; + Integer hadir_tanpa_jadwal = 0; int jumlahCountTerlambat = 0; Long jumlahTerlambat = (long) 0; int jumlahCountKelebihanJamKerja = 0; @@ -1740,18 +1743,35 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon } if (CommonUtil.isNotNullOrEmpty(listTrNo)) { dataPM.put("listTrNo", listTrNo); + } + if (CommonUtil.isNullOrEmpty(dataPM.get("kodeShift"))){ + if ((CommonUtil.isNullOrEmpty(dataPM.get("absensiPulang")) + && CommonUtil.isNotNullOrEmpty(dataPM.get("absensiMasuk"))) + && (CommonUtil.isNotNullOrEmpty(jamMasuk) + && CommonUtil.isNotNullOrEmpty(jamPulang))) { + absenTunggalNonJadwal++; + } else if ((CommonUtil.isNotNullOrEmpty(dataPM.get("absensiPulang")) + && CommonUtil.isNullOrEmpty(dataPM.get("absensiMasuk"))) + && (CommonUtil.isNotNullOrEmpty(jamMasuk) + && CommonUtil.isNotNullOrEmpty(jamPulang))) { + absenTunggalNonJadwal++; + } else if ((CommonUtil.isNotNullOrEmpty(dataPM.get("absensiPulang")) && CommonUtil.isNotNullOrEmpty(dataPM.get("absensiMasuk")))) { + hadir_tanpa_jadwal++; + } + }else{ + if ((CommonUtil.isNullOrEmpty(dataPM.get("absensiPulang")) + && CommonUtil.isNotNullOrEmpty(dataPM.get("absensiMasuk"))) + && (CommonUtil.isNotNullOrEmpty(jamMasuk) + && CommonUtil.isNotNullOrEmpty(jamPulang))) { + absenTunggal++; + } else if ((CommonUtil.isNotNullOrEmpty(dataPM.get("absensiPulang")) + && CommonUtil.isNullOrEmpty(dataPM.get("absensiMasuk"))) + && (CommonUtil.isNotNullOrEmpty(jamMasuk) + && CommonUtil.isNotNullOrEmpty(jamPulang))) { + absenTunggal++; + } } - if ((CommonUtil.isNullOrEmpty(dataPM.get("absensiPulang")) - && CommonUtil.isNotNullOrEmpty(dataPM.get("absensiMasuk"))) - && (CommonUtil.isNotNullOrEmpty(jamMasuk) - && CommonUtil.isNotNullOrEmpty(jamPulang))) { - absenTunggal++; - } else if ((CommonUtil.isNotNullOrEmpty(dataPM.get("absensiPulang")) - && CommonUtil.isNullOrEmpty(dataPM.get("absensiMasuk"))) - && (CommonUtil.isNotNullOrEmpty(jamMasuk) - && CommonUtil.isNotNullOrEmpty(jamPulang))) { - absenTunggal++; - } + if (CommonUtil.isNullOrEmpty(dataPM.get("absensiMasuk"))) { dataPM.put("absensiMasuk", "-"); } @@ -1976,15 +1996,31 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon if (CommonUtil.isNotNullOrEmpty(listTrNo)) { data.put("listTrNo", listTrNo); } - if ((CommonUtil.isNullOrEmpty(data.get("absensiPulang")) - && CommonUtil.isNotNullOrEmpty(data.get("absensiMasuk"))) - && (CommonUtil.isNotNullOrEmpty(jamMasuk) && CommonUtil.isNotNullOrEmpty(jamPulang))) { - absenTunggal++; - } else if ((CommonUtil.isNotNullOrEmpty(data.get("absensiPulang")) - && CommonUtil.isNullOrEmpty(data.get("absensiMasuk"))) - && (CommonUtil.isNotNullOrEmpty(jamMasuk) && CommonUtil.isNotNullOrEmpty(jamPulang))) { - absenTunggal++; + + if (CommonUtil.isNullOrEmpty(data.get("kodeShift"))){ + if ((CommonUtil.isNullOrEmpty(data.get("absensiPulang")) + && CommonUtil.isNotNullOrEmpty(data.get("absensiMasuk"))) + && (CommonUtil.isNotNullOrEmpty(jamMasuk) && CommonUtil.isNotNullOrEmpty(jamPulang))) { + absenTunggalNonJadwal++; + } else if ((CommonUtil.isNotNullOrEmpty(data.get("absensiPulang")) + && CommonUtil.isNullOrEmpty(data.get("absensiMasuk"))) + && (CommonUtil.isNotNullOrEmpty(jamMasuk) && CommonUtil.isNotNullOrEmpty(jamPulang))) { + absenTunggalNonJadwal++; + } else if ((CommonUtil.isNotNullOrEmpty(data.get("absensiPulang")) && CommonUtil.isNotNullOrEmpty(data.get("absensiMasuk")))) { + hadir_tanpa_jadwal++; + } + }else{ + if ((CommonUtil.isNullOrEmpty(data.get("absensiPulang")) + && CommonUtil.isNotNullOrEmpty(data.get("absensiMasuk"))) + && (CommonUtil.isNotNullOrEmpty(jamMasuk) && CommonUtil.isNotNullOrEmpty(jamPulang))) { + absenTunggal++; + } else if ((CommonUtil.isNotNullOrEmpty(data.get("absensiPulang")) + && CommonUtil.isNullOrEmpty(data.get("absensiMasuk"))) + && (CommonUtil.isNotNullOrEmpty(jamMasuk) && CommonUtil.isNotNullOrEmpty(jamPulang))) { + absenTunggal++; + } } + if (CommonUtil.isNullOrEmpty(data.get("absensiMasuk"))) { data.put("absensiMasuk", "-"); } @@ -2097,7 +2133,13 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon listkehadiran.add(data); } } + + Set uniqueKodeShift = new LinkedHashSet<>(); + Set uniqueNipPegawai = new LinkedHashSet<>(); + for (Map mapKehadiran : listkehadiran) { + uniqueKodeShift.add(mapKehadiran.get("kodeShift")); + uniqueNipPegawai.add(mapKehadiran.get("nip")); mapKehadiran.put("absenTunggal", absenTunggal); mapKehadiran.put("p1", p1); mapKehadiran.put("pagi", pagi); @@ -2108,6 +2150,37 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon mapKehadiran.put("cuti", cuti); mapKehadiran.put("sakit", sakit); } + + List> listShiftArray = new ArrayList<>(); + Map listInformasiAbsensi = new HashMap<>(); + Map listInformasiAbsensiLainnya = new HashMap<>(); + + Map dataShift = new HashMap<>(); + Map collectDataShift = new HashMap<>(); + for (Object groupNip : uniqueNipPegawai) { + // Loop NIP Pegawai + for (Object groupKodeShift : uniqueKodeShift) { + listInformasiAbsensi.put("absen_tunggal", absenTunggal); + listInformasiAbsensi.put("mangkir", mangkir); + + listInformasiAbsensiLainnya.put("hadir_tanpa_jadwal", hadir_tanpa_jadwal); + listInformasiAbsensiLainnya.put("absen_tunggal_tanpa_jadwal", absenTunggalNonJadwal); + + if (CommonUtil.isNotNullOrEmpty(listkehadiran) && CommonUtil.isNotNullOrEmpty(groupKodeShift)) { + dataShift.put(groupKodeShift, listkehadiran.stream().filter(p -> p.containsKey("kodeShift") && groupKodeShift.equals(p.get("kodeShift"))).count()); + } + } + listShiftArray.add(dataShift); + + collectDataShift.put("nip", groupNip); + collectDataShift.put("listShift", listShiftArray.get(0)); + collectDataShift.put("listInformasiAbsensi", listInformasiAbsensi); + collectDataShift.put("listInformasiAbsensiLainnya", listInformasiAbsensiLainnya); + collectDataShift.put("jumlahTerlambat", jumlahTerlambat.toString()); + collectDataShift.put("jumlahPulangAwal", jumlahPulangAwal.toString()); + collectDataShift.put("jumlahJamEfektif", jumlahJamEfektif.toString()); + newResultDataShift.add(collectDataShift); + } rsMap.put("jumlahJamLemburSdm", jumlahJamLemburUnitSdm); rsMap.put("jumlahJamLemburUnitKerja", jumlahJamLemburUnitKerja); rsMap.put("jumlahCountTerlambat", jumlahCountTerlambat); @@ -2122,6 +2195,7 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon rsMap.put("mangkir", mangkir); rsMap.put("hariKerja", hariKerja); rsMap.put("listkehadiran", listkehadiran); + rsMap.put("totalQtyShift", newResultDataShift); listRs.addAll(listkehadiran); result.putAll(rsMap); diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/PegawaiJadwalKerjaServiceImpl.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/PegawaiJadwalKerjaServiceImpl.java index de4c9825..e9162458 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/PegawaiJadwalKerjaServiceImpl.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/PegawaiJadwalKerjaServiceImpl.java @@ -261,8 +261,7 @@ public class PegawaiJadwalKerjaServiceImpl extends BaseVoServiceImpl implements if (!listKdShift.contains(xvo.getKdShift())) { listKdShift.add(xvo.getKdShift().toLowerCase()); } - if (CommonUtil.isNotNullOrEmpty(xvo.getPegawai()) && CommonUtil.isNotNullOrEmpty(xvo.getPegawai().getId()) - && !listIdPegawai.contains(xvo.getPegawai().getId())) { + if (CommonUtil.isNotNullOrEmpty(xvo.getPegawai()) && CommonUtil.isNotNullOrEmpty(xvo.getPegawai().getId()) && !listIdPegawai.contains(xvo.getPegawai().getId())) { listIdPegawai.add(xvo.getPegawai().getId()); } } @@ -314,7 +313,7 @@ public class PegawaiJadwalKerjaServiceImpl extends BaseVoServiceImpl implements List listNorec = new ArrayList<>(); List result = new ArrayList<>(); DateFormat df = new SimpleDateFormat("yyyy-MM-dd"); - Integer[] intStatusCutiBesarMelahirkan = { 2, 14, 24, 25, 6, 29, 26 }; + Integer[] intStatusCutiBesarMelahirkan = { 2, 14, 24, 25, 6, 29, 26 }; // harusnya aman karena diambil dari master statuspegawai_m Integer idTglCuti1 = null; Integer idTglCuti2 = null; @@ -351,11 +350,8 @@ public class PegawaiJadwalKerjaServiceImpl extends BaseVoServiceImpl implements for (Map map : listTglCuti) { List> getShiftTglFilled = new ArrayList<>(); List> getShiftTglEmpty = new ArrayList<>(); - Map generatePegawaiJadwal = pegawaiService.findPegawaiByRuanganRev2(subUnitKerja, - Integer.parseInt((String) map.get("tahun")), Integer.parseInt((String) map.get("bulan")), - vo.getPegawai().getId()); - List> getShiftTanggal = (List>) ((Map) ((List>) (List>) generatePegawaiJadwal - .get("data")).get(0)).get("jadwal"); + Map generatePegawaiJadwal = pegawaiService.findPegawaiByRuanganRev2(subUnitKerja, Integer.parseInt((String) map.get("tahun")), Integer.parseInt((String) map.get("bulan")), vo.getPegawai().getId()); + List> getShiftTanggal = (List>) ((Map) ((List>) (List>) generatePegawaiJadwal.get("data")).get(0)).get("jadwal"); // Filtering generate shift tanggal for (Map mapShiftTanggal : getShiftTanggal) { if ((Integer) ((Map) mapShiftTanggal.get("shift")).get("id") != 0) { @@ -372,8 +368,7 @@ public class PegawaiJadwalKerjaServiceImpl extends BaseVoServiceImpl implements for (Map mapShiftTanggal : getShiftTglEmpty) { // Check and switch shift tanggal cuti when filled or empty for (Map mapShiftTglFilled : getShiftTglFilled) { - if (((Integer) ((Map) mapShiftTanggal.get("tanggal")).get("id")) - .equals((Integer) ((Map) mapShiftTglFilled.get("tanggal")).get("id"))) { + if (((Integer) ((Map) mapShiftTanggal.get("tanggal")).get("id")).equals((Integer) ((Map) mapShiftTglFilled.get("tanggal")).get("id"))) { mapShiftTanggal = mapShiftTglFilled; break; } @@ -389,21 +384,17 @@ public class PegawaiJadwalKerjaServiceImpl extends BaseVoServiceImpl implements Integer idTanggal = (Integer) ((Map) mapShiftTanggal.get("tanggal")).get("id"); if (idTglCuti1 < idTglCuti2) { - if (idTglCuti1 <= idTanggal && idTanggal <= idTglCuti2 - && !Arrays.asList(Master.ShiftKerja.HOLIDAY).contains(idShift)) { + if (idTglCuti1 <= idTanggal && idTanggal <= idTglCuti2 && !Arrays.asList(Master.ShiftKerja.HOLIDAY).contains(idShift)) { shiftKerja.setId(idShiftExec); - } else if (idTglCuti1 <= idTanggal && idTanggal <= idTglCuti2 - && Arrays.asList(Master.ShiftKerja.HOLIDAY_INCLUDED).contains(idShiftExec)) { + } else if (idTglCuti1 <= idTanggal && idTanggal <= idTglCuti2 && Arrays.asList(Master.ShiftKerja.HOLIDAY_INCLUDED).contains(idShiftExec)) { shiftKerja.setId(idShiftExec); } else if (idShift != 0) { shiftKerja.setId(idShift); } } else { - if (idTglCuti2 <= idTanggal && idTanggal <= idTglCuti1 - && !Arrays.asList(Master.ShiftKerja.HOLIDAY).contains(idShift)) { + if (idTglCuti2 <= idTanggal && idTanggal <= idTglCuti1 && !Arrays.asList(Master.ShiftKerja.HOLIDAY).contains(idShift)) { shiftKerja.setId(idShiftExec); - } else if (idTglCuti1 <= idTanggal && idTanggal <= idTglCuti2 - && Arrays.asList(Master.ShiftKerja.HOLIDAY_INCLUDED).contains(idShiftExec)) { + } else if (idTglCuti1 <= idTanggal && idTanggal <= idTglCuti2 && Arrays.asList(Master.ShiftKerja.HOLIDAY_INCLUDED).contains(idShiftExec)) { shiftKerja.setId(idShiftExec); } else if (idShift != 0) { shiftKerja.setId(idShift); @@ -412,15 +403,13 @@ public class PegawaiJadwalKerjaServiceImpl extends BaseVoServiceImpl implements pegawai.setId(idPegawai); tanggal.setId(idTanggal); - if (CommonUtil.isNotNullOrEmpty(shiftKerja.getId()) && shiftKerja.getId() != 0 - && !Arrays.asList(Master.ShiftKerja.HOLIDAY).contains(shiftKerja.getId())) { + if (CommonUtil.isNotNullOrEmpty(shiftKerja.getId()) && shiftKerja.getId() != 0 && !Arrays.asList(Master.ShiftKerja.HOLIDAY).contains(shiftKerja.getId())) { pov.setPegawai(pegawai); pov.setShift(shiftKerja); pov.setTanggal(tanggal); result.add(pov); - } else if (Arrays.asList(Master.ShiftKerja.HOLIDAY).contains(shiftKerja.getId()) - && getShiftTglEmpty.size() == getShiftTglFilled.size()) { + } else if (Arrays.asList(Master.ShiftKerja.HOLIDAY).contains(shiftKerja.getId()) && getShiftTglEmpty.size() == getShiftTglFilled.size()) { pov.setPegawai(pegawai); pov.setShift(shiftKerja); pov.setTanggal(tanggal); @@ -441,12 +430,10 @@ public class PegawaiJadwalKerjaServiceImpl extends BaseVoServiceImpl implements String strTglCuti = df.format(tglCuti); Integer idTglCuti = listTanggalCutiDao.getIdKalenderByTglCuti(strTglCuti); - if (idTglCuti.equals(idTanggal) - && !Arrays.asList(Master.ShiftKerja.HOLIDAY).contains(idShift)) { + if (idTglCuti.equals(idTanggal) && !Arrays.asList(Master.ShiftKerja.HOLIDAY).contains(idShift)) { shiftKerja.setId(idShiftExec); break; - } else if (idTglCuti.equals(idTanggal) - && Arrays.asList(Master.ShiftKerja.HOLIDAY_INCLUDED).contains(idShiftExec)) { + } else if (idTglCuti.equals(idTanggal) && Arrays.asList(Master.ShiftKerja.HOLIDAY_INCLUDED).contains(idShiftExec)) { shiftKerja.setId(idShiftExec); break; } else if (CommonUtil.isNotNullOrEmpty(idShift) && idShift != 0) { @@ -461,14 +448,12 @@ public class PegawaiJadwalKerjaServiceImpl extends BaseVoServiceImpl implements pegawai.setId(idPegawai); tanggal.setId(idTanggal); - if (CommonUtil.isNotNullOrEmpty(shiftKerja.getId()) - && !Arrays.asList(Master.ShiftKerja.HOLIDAY).contains(shiftKerja.getId())) { + if (CommonUtil.isNotNullOrEmpty(shiftKerja.getId()) && !Arrays.asList(Master.ShiftKerja.HOLIDAY).contains(shiftKerja.getId())) { pov.setPegawai(pegawai); pov.setShift(shiftKerja); pov.setTanggal(tanggal); result.add(pov); - } else if (Arrays.asList(Master.ShiftKerja.HOLIDAY).contains(shiftKerja.getId()) - && getShiftTglEmpty.size() == getShiftTglFilled.size()) { + } else if (Arrays.asList(Master.ShiftKerja.HOLIDAY).contains(shiftKerja.getId()) && getShiftTglEmpty.size() == getShiftTglFilled.size()) { pov.setPegawai(pegawai); pov.setShift(shiftKerja); pov.setTanggal(tanggal); @@ -491,12 +476,12 @@ public class PegawaiJadwalKerjaServiceImpl extends BaseVoServiceImpl implements List listNorec = new ArrayList<>(); List result = new ArrayList<>(); DateFormat df = new SimpleDateFormat("yyyy-MM-dd"); - Integer[] intStatusLibur = { 8, 14, 15, 40 }; - Integer[] intStatusSakitAlasanPenting = { 6, 42, 43, 44, 76, 77, 78, 79 }; + Integer[] intStatusLibur = { 8, 14, 15, 40 }; // id shift kerja -> tidak ada penambahan master shift + Integer[] intStatusSakitAlasanPenting = { 6, 42, 43, 44, 76, 77, 78, 79, 205, 206, 207, 208 }; // id shift kerja -> ada penambahan 205, 206, 207, 208 /** * adding sakit jika 2 tanggal permohonan */ - Integer[] intStatusCutiBesarMelahirkan = { 2, 14, 24, 25, 6, 29 }; + Integer[] intStatusCutiBesarMelahirkan = { 2, 14, 24, 25, 6, 29 }; // id status pegawai Integer idTglCuti1 = null; Integer idTglCuti2 = null; @@ -579,36 +564,26 @@ public class PegawaiJadwalKerjaServiceImpl extends BaseVoServiceImpl implements if (CommonUtil.isNotNullOrEmpty(namaHari)) { if (idTglCuti1 < idTglCuti2) { - if (idTglCuti1 <= idTanggal && idTanggal <= idTglCuti2 - && !Arrays.asList(intStatusLibur).contains(idShift)) { - if (idKelShift == 1 - && Arrays.asList(Master.PenangguhanCuti.NONSHIFT_SK).contains(namaHari)) { + if (idTglCuti1 <= idTanggal && idTanggal <= idTglCuti2 && !Arrays.asList(intStatusLibur).contains(idShift)) { + if (idKelShift == 1 && Arrays.asList(Master.PenangguhanCuti.NONSHIFT_SK).contains(namaHari)) { shiftKerja.setId(Master.ShiftKerja.NONSHIFT_SK); - } else if (idKelShift == 1 - && Arrays.asList(Master.PenangguhanCuti.NONSHIFT_J).contains(namaHari)) { + } else if (idKelShift == 1 && Arrays.asList(Master.PenangguhanCuti.NONSHIFT_J).contains(namaHari)) { shiftKerja.setId(Master.ShiftKerja.NONSHIFT_J); - } else if (idKelShift == 2 - && Arrays.asList(Master.PenangguhanCuti.NONSHIFT_SK).contains(namaHari)) { + } else if (idKelShift == 2 && Arrays.asList(Master.PenangguhanCuti.NONSHIFT_SK).contains(namaHari)) { shiftKerja.setId(Master.ShiftKerja.NONSHIFT_PLUS_SK); - } else if (idKelShift == 2 - && Arrays.asList(Master.PenangguhanCuti.NONSHIFT_J).contains(namaHari)) { + } else if (idKelShift == 2 && Arrays.asList(Master.PenangguhanCuti.NONSHIFT_J).contains(namaHari)) { shiftKerja.setId(Master.ShiftKerja.NONSHIFT_PLUS_J); } else { shiftKerja.setId(Master.ShiftKerja.RESET); } - } else if (idTglCuti1 <= idTanggal && idTanggal <= idTglCuti2 - && Arrays.asList(intStatusSakitAlasanPenting).contains(idShiftExec)) { - if (idKelShift == 1 - && Arrays.asList(Master.PenangguhanCuti.NONSHIFT_SK).contains(namaHari)) { + } else if (idTglCuti1 <= idTanggal && idTanggal <= idTglCuti2 && Arrays.asList(intStatusSakitAlasanPenting).contains(idShiftExec)) { + if (idKelShift == 1 && Arrays.asList(Master.PenangguhanCuti.NONSHIFT_SK).contains(namaHari)) { shiftKerja.setId(Master.ShiftKerja.NONSHIFT_SK); - } else if (idKelShift == 1 - && Arrays.asList(Master.PenangguhanCuti.NONSHIFT_J).contains(namaHari)) { + } else if (idKelShift == 1 && Arrays.asList(Master.PenangguhanCuti.NONSHIFT_J).contains(namaHari)) { shiftKerja.setId(Master.ShiftKerja.NONSHIFT_J); - } else if (idKelShift == 2 - && Arrays.asList(Master.PenangguhanCuti.NONSHIFT_SK).contains(namaHari)) { + } else if (idKelShift == 2 && Arrays.asList(Master.PenangguhanCuti.NONSHIFT_SK).contains(namaHari)) { shiftKerja.setId(Master.ShiftKerja.NONSHIFT_PLUS_SK); - } else if (idKelShift == 2 - && Arrays.asList(Master.PenangguhanCuti.NONSHIFT_J).contains(namaHari)) { + } else if (idKelShift == 2 && Arrays.asList(Master.PenangguhanCuti.NONSHIFT_J).contains(namaHari)) { shiftKerja.setId(Master.ShiftKerja.NONSHIFT_PLUS_J); } else { shiftKerja.setId(Master.ShiftKerja.RESET); @@ -617,36 +592,26 @@ public class PegawaiJadwalKerjaServiceImpl extends BaseVoServiceImpl implements shiftKerja.setId(idShift); } } else { - if (idTglCuti2 <= idTanggal && idTanggal <= idTglCuti1 - && !Arrays.asList(intStatusLibur).contains(idShift)) { - if (idKelShift == 1 - && Arrays.asList(Master.PenangguhanCuti.NONSHIFT_SK).contains(namaHari)) { + if (idTglCuti2 <= idTanggal && idTanggal <= idTglCuti1 && !Arrays.asList(intStatusLibur).contains(idShift)) { + if (idKelShift == 1 && Arrays.asList(Master.PenangguhanCuti.NONSHIFT_SK).contains(namaHari)) { shiftKerja.setId(Master.ShiftKerja.NONSHIFT_SK); - } else if (idKelShift == 1 - && Arrays.asList(Master.PenangguhanCuti.NONSHIFT_J).contains(namaHari)) { + } else if (idKelShift == 1 && Arrays.asList(Master.PenangguhanCuti.NONSHIFT_J).contains(namaHari)) { shiftKerja.setId(Master.ShiftKerja.NONSHIFT_J); - } else if (idKelShift == 2 - && Arrays.asList(Master.PenangguhanCuti.NONSHIFT_SK).contains(namaHari)) { + } else if (idKelShift == 2 && Arrays.asList(Master.PenangguhanCuti.NONSHIFT_SK).contains(namaHari)) { shiftKerja.setId(Master.ShiftKerja.NONSHIFT_PLUS_SK); - } else if (idKelShift == 2 - && Arrays.asList(Master.PenangguhanCuti.NONSHIFT_J).contains(namaHari)) { + } else if (idKelShift == 2 && Arrays.asList(Master.PenangguhanCuti.NONSHIFT_J).contains(namaHari)) { shiftKerja.setId(Master.ShiftKerja.NONSHIFT_PLUS_J); } else { shiftKerja.setId(Master.ShiftKerja.RESET); } - } else if (idTglCuti1 <= idTanggal && idTanggal <= idTglCuti2 - && Arrays.asList(intStatusSakitAlasanPenting).contains(idShiftExec)) { - if (idKelShift == 1 - && Arrays.asList(Master.PenangguhanCuti.NONSHIFT_SK).contains(namaHari)) { + } else if (idTglCuti1 <= idTanggal && idTanggal <= idTglCuti2 && Arrays.asList(intStatusSakitAlasanPenting).contains(idShiftExec)) { + if (idKelShift == 1 && Arrays.asList(Master.PenangguhanCuti.NONSHIFT_SK).contains(namaHari)) { shiftKerja.setId(Master.ShiftKerja.NONSHIFT_SK); - } else if (idKelShift == 1 - && Arrays.asList(Master.PenangguhanCuti.NONSHIFT_J).contains(namaHari)) { + } else if (idKelShift == 1 && Arrays.asList(Master.PenangguhanCuti.NONSHIFT_J).contains(namaHari)) { shiftKerja.setId(Master.ShiftKerja.NONSHIFT_J); - } else if (idKelShift == 2 - && Arrays.asList(Master.PenangguhanCuti.NONSHIFT_SK).contains(namaHari)) { + } else if (idKelShift == 2 && Arrays.asList(Master.PenangguhanCuti.NONSHIFT_SK).contains(namaHari)) { shiftKerja.setId(Master.ShiftKerja.NONSHIFT_PLUS_SK); - } else if (idKelShift == 2 - && Arrays.asList(Master.PenangguhanCuti.NONSHIFT_J).contains(namaHari)) { + } else if (idKelShift == 2 && Arrays.asList(Master.PenangguhanCuti.NONSHIFT_J).contains(namaHari)) { shiftKerja.setId(Master.ShiftKerja.NONSHIFT_PLUS_J); } else { shiftKerja.setId(Master.ShiftKerja.RESET); @@ -662,14 +627,12 @@ public class PegawaiJadwalKerjaServiceImpl extends BaseVoServiceImpl implements pegawai.setId(idPegawai); tanggal.setId(idTanggal); - if (CommonUtil.isNotNullOrEmpty(shiftKerja.getId()) && shiftKerja.getId() != 0 - && !Arrays.asList(intStatusLibur).contains(shiftKerja.getId())) { + if (CommonUtil.isNotNullOrEmpty(shiftKerja.getId()) && shiftKerja.getId() != 0 && !Arrays.asList(intStatusLibur).contains(shiftKerja.getId())) { pov.setPegawai(pegawai); pov.setShift(shiftKerja); pov.setTanggal(tanggal); result.add(pov); - } else if (Arrays.asList(intStatusLibur).contains(shiftKerja.getId()) - && getShiftTglEmpty.size() == getShiftTglFilled.size()) { + } else if (Arrays.asList(intStatusLibur).contains(shiftKerja.getId()) && getShiftTglEmpty.size() == getShiftTglFilled.size()) { pov.setPegawai(pegawai); pov.setShift(shiftKerja); pov.setTanggal(tanggal); @@ -684,11 +647,8 @@ public class PegawaiJadwalKerjaServiceImpl extends BaseVoServiceImpl implements Integer idShift = (Integer) ((Map) mapShiftTanggal.get("shift")).get("id"); Integer idTanggal = (Integer) ((Map) mapShiftTanggal.get("tanggal")).get("id"); - java.time.LocalDate localDate = ((Date) ((Map) mapShiftTanggal.get("tanggal")) - .get("tanggal")).toInstant().atZone(ZoneId.systemDefault()).toLocalDate(); - if (localDate.isBefore(java.time.LocalDate.now()) - || (localDate.getMonth().equals(java.time.LocalDate.now().getMonth()) - && localDate.getYear() == java.time.LocalDate.now().getYear())) { + java.time.LocalDate localDate = ((Date) ((Map) mapShiftTanggal.get("tanggal")).get("tanggal")).toInstant().atZone(ZoneId.systemDefault()).toLocalDate(); + if (localDate.isBefore(java.time.LocalDate.now()) || (localDate.getMonth().equals(java.time.LocalDate.now().getMonth()) && localDate.getYear() == java.time.LocalDate.now().getYear())) { Locale id = new Locale("in", "ID"); String pattern = "EEEE"; @@ -703,35 +663,26 @@ public class PegawaiJadwalKerjaServiceImpl extends BaseVoServiceImpl implements Integer idTglCuti = listTanggalCutiDao.getIdKalenderByTglCuti(strTglCuti); if (idTglCuti.equals(idTanggal) && !Arrays.asList(intStatusLibur).contains(idShift)) { - if (idKelShift == 1 - && Arrays.asList(Master.PenangguhanCuti.NONSHIFT_SK).contains(namaHari)) { + if (idKelShift == 1 && Arrays.asList(Master.PenangguhanCuti.NONSHIFT_SK).contains(namaHari)) { shiftKerja.setId(Master.ShiftKerja.NONSHIFT_SK); - } else if (idKelShift == 1 - && Arrays.asList(Master.PenangguhanCuti.NONSHIFT_J).contains(namaHari)) { + } else if (idKelShift == 1 && Arrays.asList(Master.PenangguhanCuti.NONSHIFT_J).contains(namaHari)) { shiftKerja.setId(Master.ShiftKerja.NONSHIFT_J); - } else if (idKelShift == 2 - && Arrays.asList(Master.PenangguhanCuti.NONSHIFT_SK).contains(namaHari)) { + } else if (idKelShift == 2 && Arrays.asList(Master.PenangguhanCuti.NONSHIFT_SK).contains(namaHari)) { shiftKerja.setId(Master.ShiftKerja.NONSHIFT_PLUS_SK); - } else if (idKelShift == 2 - && Arrays.asList(Master.PenangguhanCuti.NONSHIFT_J).contains(namaHari)) { + } else if (idKelShift == 2 && Arrays.asList(Master.PenangguhanCuti.NONSHIFT_J).contains(namaHari)) { shiftKerja.setId(Master.ShiftKerja.NONSHIFT_PLUS_J); } else { shiftKerja.setId(Master.ShiftKerja.RESET); } break; - } else if (idTglCuti.equals(idTanggal) - && Arrays.asList(intStatusSakitAlasanPenting).contains(idShiftExec)) { - if (idKelShift == 1 - && Arrays.asList(Master.PenangguhanCuti.NONSHIFT_SK).contains(namaHari)) { + } else if (idTglCuti.equals(idTanggal) && Arrays.asList(intStatusSakitAlasanPenting).contains(idShiftExec)) { + if (idKelShift == 1 && Arrays.asList(Master.PenangguhanCuti.NONSHIFT_SK).contains(namaHari)) { shiftKerja.setId(Master.ShiftKerja.NONSHIFT_SK); - } else if (idKelShift == 1 - && Arrays.asList(Master.PenangguhanCuti.NONSHIFT_J).contains(namaHari)) { + } else if (idKelShift == 1 && Arrays.asList(Master.PenangguhanCuti.NONSHIFT_J).contains(namaHari)) { shiftKerja.setId(Master.ShiftKerja.NONSHIFT_J); - } else if (idKelShift == 2 - && Arrays.asList(Master.PenangguhanCuti.NONSHIFT_SK).contains(namaHari)) { + } else if (idKelShift == 2 && Arrays.asList(Master.PenangguhanCuti.NONSHIFT_SK).contains(namaHari)) { shiftKerja.setId(Master.ShiftKerja.NONSHIFT_PLUS_SK); - } else if (idKelShift == 2 - && Arrays.asList(Master.PenangguhanCuti.NONSHIFT_J).contains(namaHari)) { + } else if (idKelShift == 2 && Arrays.asList(Master.PenangguhanCuti.NONSHIFT_J).contains(namaHari)) { shiftKerja.setId(Master.ShiftKerja.NONSHIFT_PLUS_J); } else { shiftKerja.setId(Master.ShiftKerja.RESET); @@ -739,17 +690,13 @@ public class PegawaiJadwalKerjaServiceImpl extends BaseVoServiceImpl implements break; } else if (CommonUtil.isNotNullOrEmpty(idShift) && idShift != 0) { if (idTglCuti.equals(idTanggal) && !idShiftExec.equals(idShift)) { - if (idKelShift == 1 - && Arrays.asList(Master.PenangguhanCuti.NONSHIFT_SK).contains(namaHari)) { + if (idKelShift == 1 && Arrays.asList(Master.PenangguhanCuti.NONSHIFT_SK).contains(namaHari)) { shiftKerja.setId(Master.ShiftKerja.NONSHIFT_SK); - } else if (idKelShift == 1 - && Arrays.asList(Master.PenangguhanCuti.NONSHIFT_J).contains(namaHari)) { + } else if (idKelShift == 1 && Arrays.asList(Master.PenangguhanCuti.NONSHIFT_J).contains(namaHari)) { shiftKerja.setId(Master.ShiftKerja.NONSHIFT_J); - } else if (idKelShift == 2 - && Arrays.asList(Master.PenangguhanCuti.NONSHIFT_SK).contains(namaHari)) { + } else if (idKelShift == 2 && Arrays.asList(Master.PenangguhanCuti.NONSHIFT_SK).contains(namaHari)) { shiftKerja.setId(Master.ShiftKerja.NONSHIFT_PLUS_SK); - } else if (idKelShift == 2 - && Arrays.asList(Master.PenangguhanCuti.NONSHIFT_J).contains(namaHari)) { + } else if (idKelShift == 2 && Arrays.asList(Master.PenangguhanCuti.NONSHIFT_J).contains(namaHari)) { shiftKerja.setId(Master.ShiftKerja.NONSHIFT_PLUS_J); } else { shiftKerja.setId(Master.ShiftKerja.RESET); @@ -764,14 +711,12 @@ public class PegawaiJadwalKerjaServiceImpl extends BaseVoServiceImpl implements pegawai.setId(idPegawai); tanggal.setId(idTanggal); - if (CommonUtil.isNotNullOrEmpty(shiftKerja.getId()) - && !Arrays.asList(intStatusLibur).contains(shiftKerja.getId())) { + if (CommonUtil.isNotNullOrEmpty(shiftKerja.getId()) && !Arrays.asList(intStatusLibur).contains(shiftKerja.getId())) { pov.setPegawai(pegawai); pov.setShift(shiftKerja); pov.setTanggal(tanggal); result.add(pov); - } else if (Arrays.asList(intStatusLibur).contains(shiftKerja.getId()) - && getShiftTglEmpty.size() == getShiftTglFilled.size()) { + } else if (Arrays.asList(intStatusLibur).contains(shiftKerja.getId()) && getShiftTglEmpty.size() == getShiftTglFilled.size()) { pov.setPegawai(pegawai); pov.setShift(shiftKerja); pov.setTanggal(tanggal); @@ -835,14 +780,12 @@ public class PegawaiJadwalKerjaServiceImpl extends BaseVoServiceImpl implements List jadwal = pegawaiJadwalKerjaDao.findJadwalByBulan(tahun, bulan, idPegawai); if (CommonUtil.isNullOrEmpty(jadwal)) { Pegawai pegawai = pegawaiDao.findOne(idPegawai); - List> mapListHariLibur = pegawaiDaoCustom.findHariLiburPegawaiNonShift(tahun, - bulan); + List> mapListHariLibur = pegawaiDaoCustom.findHariLiburPegawaiNonShift(tahun, bulan); // clear false data if (CommonUtil.isNotNullOrEmpty(mapListHariLibur)) for (Map mh : mapListHariLibur) { - if (CommonUtil.isNotNullOrEmpty(mh.get("statusEnabled")) - && mh.get("statusEnabled").equals(Master.STATUS_ENABLE_FALSE)) + if (CommonUtil.isNotNullOrEmpty(mh.get("statusEnabled")) && mh.get("statusEnabled").equals(Master.STATUS_ENABLE_FALSE)) mh.put("namaHariLibur", null); } @@ -859,8 +802,7 @@ public class PegawaiJadwalKerjaServiceImpl extends BaseVoServiceImpl implements if (idShift == 2) { listShiftKerja.addAll(shiftKerjaDao.findByKelompokShiftId(1)); } - List resultPegawaiJadwalKerja = pegawaiDaoCustom.findJadwalByTanggal(tahun, - bulan, idPegawai); + List resultPegawaiJadwalKerja = pegawaiDaoCustom.findJadwalByTanggal(tahun, bulan, idPegawai); if (resultPegawaiJadwalKerja.size() == 0) { // Apabila_jadwal_kosong if (idShift == 1 || idShift == 2) { // apabila_pegawai_nonshift @@ -880,9 +822,9 @@ public class PegawaiJadwalKerjaServiceImpl extends BaseVoServiceImpl implements LocalDate tglHijri = new LocalDate(tglIso.toDateTimeAtStartOfDay(), hijri); bulanHijri = tglHijri.getMonthOfYear(); if (bulanHijri == 9) { - shiftKerjaPegawai.setId(57); // RMJ + shiftKerjaPegawai.setId(181); // sudah id baru } else { - shiftKerjaPegawai.setId(19); + shiftKerjaPegawai.setId(177); // sudah id baru } } else { LocalDate tglIso = new LocalDate(tahun, bulan, @@ -890,9 +832,9 @@ public class PegawaiJadwalKerjaServiceImpl extends BaseVoServiceImpl implements LocalDate tglHijri = new LocalDate(tglIso.toDateTimeAtStartOfDay(), hijri); bulanHijri = tglHijri.getMonthOfYear(); if (bulanHijri == 9) { - shiftKerjaPegawai.setId(56); // RM + shiftKerjaPegawai.setId(179); // sudah id baru } else { - shiftKerjaPegawai.setId(18); + shiftKerjaPegawai.setId(175); // sudah id baru } } } else { diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/PegawaiServiceImpl.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/PegawaiServiceImpl.java index 8ad25615..bc5687c2 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/PegawaiServiceImpl.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/PegawaiServiceImpl.java @@ -1207,8 +1207,7 @@ public class PegawaiServiceImpl extends BaseVoServiceImpl implements PegawaiServ for (Map map : listPegawai) { List> items = new ArrayList<>(); try { - Map pegawaiMap = pegawaiDao.findById(Integer.parseInt(map.get("idPegawai").toString())) - .ToMap(); + Map pegawaiMap = pegawaiDao.findById(Integer.parseInt(map.get("idPegawai").toString())).ToMap(); Map shiftKerja = (Map) pegawaiMap.get("shiftKerja"); Integer idShift = 0; if (CommonUtil.isNotNullOrEmpty(shiftKerja)) { @@ -1216,50 +1215,46 @@ public class PegawaiServiceImpl extends BaseVoServiceImpl implements PegawaiServ idShift = (Integer) shiftKerja.get("id"); } } - List> listShiftKerja = shiftKerjaDao.findByKelompokShiftId(idShift); + List> listShiftKerja = shiftKerjaDao.findByKelompokShiftIdWithoutStatusEnabled(idShift); if (idShift == 2) { - listShiftKerja.addAll(shiftKerjaDao.findByKelompokShiftId(1)); + listShiftKerja.addAll(shiftKerjaDao.findByKelompokShiftIdWithoutStatusEnabled(1)); } if (CommonUtil.isNotNullOrEmpty(listShiftKerja)) { shiftKerja.put("detail", JsonUtil.ToMaps(listShiftKerja)); } map.put("pegawai", pegawaiMap); - List resultPegawaiJadwalKerja = pegawaiDaoCustom.findJadwalByTanggalRuangan( - subUnitKerja, tahun, bulan, Integer.parseInt(map.get("idPegawai").toString())); + List resultPegawaiJadwalKerja = pegawaiDaoCustom.findJadwalByTanggalRuangan(subUnitKerja, tahun, bulan, Integer.parseInt(map.get("idPegawai").toString())); if (resultPegawaiJadwalKerja.size() == 0) { - if (idShift == 1 || idShift == 2) { + if (idShift == 1 || idShift == 2) { for (Map hariLibur : mapListHariLibur) { PegawaiJadwalKerja pegawaiKerja = new PegawaiJadwalKerja(); ShiftKerja shiftKerjaPegawai = new ShiftKerja(); if (!CommonUtil.isNotNullOrEmpty(hariLibur.get("namaHariLibur"))) { - if (hariLibur.get("namaHari").toString().equals("Minggu") - || hariLibur.get("namaHari").toString().equals("Sabtu")) { - shiftKerjaPegawai.setId(8); + if (hariLibur.get("namaHari").toString().equals("Minggu") || hariLibur.get("namaHari").toString().equals("Sabtu")) { + shiftKerjaPegawai.setId(8); // id lama / baru tetap sama } else if (hariLibur.get("namaHari").toString().equals("Jumat")) { - LocalDate tglIso = new LocalDate(tahun, bulan, - Integer.parseInt(hariLibur.get("tgl").toString()), iso); + LocalDate tglIso = new LocalDate(tahun, bulan, Integer.parseInt(hariLibur.get("tgl").toString()), iso); LocalDate tglHijri = new LocalDate(tglIso.toDateTimeAtStartOfDay(), hijri); bulanHijri = tglHijri.getMonthOfYear(); if (bulanHijri == 9) { - shiftKerjaPegawai.setId(57); + shiftKerjaPegawai.setId(181); // sudah id baru } else { - shiftKerjaPegawai.setId(19); + shiftKerjaPegawai.setId(177); // sudah id baru } } else { - LocalDate tglIso = new LocalDate(tahun, bulan, - Integer.parseInt(hariLibur.get("tgl").toString()), iso); + LocalDate tglIso = new LocalDate(tahun, bulan, Integer.parseInt(hariLibur.get("tgl").toString()), iso); LocalDate tglHijri = new LocalDate(tglIso.toDateTimeAtStartOfDay(), hijri); bulanHijri = tglHijri.getMonthOfYear(); if (bulanHijri == 9) { - shiftKerjaPegawai.setId(56); + shiftKerjaPegawai.setId(179); // sudah id baru } else { - shiftKerjaPegawai.setId(18); + shiftKerjaPegawai.setId(175); // sudah id baru } } } else { - shiftKerjaPegawai.setId(8); + shiftKerjaPegawai.setId(8); // id lama / baru tetap sama } Kalender kalendar = new Kalender(); kalendar.setId(Integer.parseInt(hariLibur.get("idKalendar").toString())); @@ -1323,8 +1318,7 @@ public class PegawaiServiceImpl extends BaseVoServiceImpl implements PegawaiServ @SuppressWarnings("unchecked") @Override - public Map findPegawaiByRuanganRev2(Integer subUnitKerja, Integer tahun, Integer bulan, - Integer idPegawai) { + public Map findPegawaiByRuanganRev2(Integer subUnitKerja, Integer tahun, Integer bulan, Integer idPegawai) { Map result = new HashMap<>(); List> list = new ArrayList<>(); List> listPegawai = pegawaiDao.findByUnitKerja(subUnitKerja, idPegawai); @@ -1346,8 +1340,7 @@ public class PegawaiServiceImpl extends BaseVoServiceImpl implements PegawaiServ for (Map map : listPegawai) { List> items = new ArrayList<>(); try { - Map pegawaiMap = pegawaiDao.findById(Integer.parseInt(map.get("idPegawai").toString())) - .ToMap(); + Map pegawaiMap = pegawaiDao.findById(Integer.parseInt(map.get("idPegawai").toString())).ToMap(); Map shiftKerja = (Map) pegawaiMap.get("shiftKerja"); Integer idShift = 0; if (CommonUtil.isNotNullOrEmpty(shiftKerja)) { @@ -1363,36 +1356,32 @@ public class PegawaiServiceImpl extends BaseVoServiceImpl implements PegawaiServ shiftKerja.put("detail", JsonUtil.ToMaps(listShiftKerja)); } map.put("pegawai", pegawaiMap); - List resultPegawaiJadwalKerja = pegawaiDaoCustom.findJadwalByTanggalRuangan( - subUnitKerja, tahun, bulan, Integer.parseInt(map.get("idPegawai").toString())); + List resultPegawaiJadwalKerja = pegawaiDaoCustom.findJadwalByTanggalRuangan(subUnitKerja, tahun, bulan, Integer.parseInt(map.get("idPegawai").toString())); if (resultPegawaiJadwalKerja.size() == 0) { if (idShift == 1 || idShift == 2) { for (Map hariLibur : mapListHariLibur) { PegawaiJadwalKerja pegawaiKerja = new PegawaiJadwalKerja(); ShiftKerja shiftKerjaPegawai = new ShiftKerja(); if (!CommonUtil.isNotNullOrEmpty(hariLibur.get("namaHariLibur"))) { - if (hariLibur.get("namaHari").toString().equals("Minggu") - || hariLibur.get("namaHari").toString().equals("Sabtu")) { + if (hariLibur.get("namaHari").toString().equals("Minggu") || hariLibur.get("namaHari").toString().equals("Sabtu")) { shiftKerjaPegawai.setId(8); } else if (hariLibur.get("namaHari").toString().equals("Jumat")) { - LocalDate tglIso = new LocalDate(tahun, bulan, - Integer.parseInt(hariLibur.get("tgl").toString()), iso); + LocalDate tglIso = new LocalDate(tahun, bulan, Integer.parseInt(hariLibur.get("tgl").toString()), iso); LocalDate tglHijri = new LocalDate(tglIso.toDateTimeAtStartOfDay(), hijri); bulanHijri = tglHijri.getMonthOfYear(); if (bulanHijri == 9) { - shiftKerjaPegawai.setId(57); + shiftKerjaPegawai.setId(181); } else { - shiftKerjaPegawai.setId(19); + shiftKerjaPegawai.setId(177); } } else { - LocalDate tglIso = new LocalDate(tahun, bulan, - Integer.parseInt(hariLibur.get("tgl").toString()), iso); + LocalDate tglIso = new LocalDate(tahun, bulan, Integer.parseInt(hariLibur.get("tgl").toString()), iso); LocalDate tglHijri = new LocalDate(tglIso.toDateTimeAtStartOfDay(), hijri); bulanHijri = tglHijri.getMonthOfYear(); if (bulanHijri == 9) { - shiftKerjaPegawai.setId(56); + shiftKerjaPegawai.setId(179); } else { - shiftKerjaPegawai.setId(18); + shiftKerjaPegawai.setId(175); } } } else { @@ -1425,9 +1414,7 @@ public class PegawaiServiceImpl extends BaseVoServiceImpl implements PegawaiServ List> mapListHariLiburTemp = mapListHariLibur; for (Map map2 : mapListHariLiburTemp) { for (PegawaiJadwalKerja mapPegawaiJadwalKerja : resultPegawaiJadwalKerja) { - if (mapPegawaiJadwalKerja.getPegawaiId().equals(map.get("idPegawai")) - && (Integer.parseInt(map2.get("idKalendar").toString()) == mapPegawaiJadwalKerja - .getTanggalId())) { + if (mapPegawaiJadwalKerja.getPegawaiId().equals(map.get("idPegawai")) && (Integer.parseInt(map2.get("idKalendar").toString()) == mapPegawaiJadwalKerja.getTanggalId())) { items.add(mapPegawaiJadwalKerja.ToMap()); mapListHariLiburTemp.remove(idLooping); break; diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/RemunerasiServiceImpl.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/RemunerasiServiceImpl.java index 1b694ca9..e3eb90dc 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/RemunerasiServiceImpl.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/RemunerasiServiceImpl.java @@ -3600,12 +3600,25 @@ public class RemunerasiServiceImpl extends BaseVoServiceImpl implements Remunera persenRemunerasi * hargaJual * (1 - persenDiskonPegawai / 100) * (1 - persenDiskonJasa / 100)); } if (Boolean.parseBoolean(d.get("isCito").toString())) { - keterangan = keterangan + "Cito (+" + Double.parseDouble(d.get("persenCito").toString()) + "%)"; + if (keterangan.isEmpty()) { + keterangan = keterangan + "Cito (+" + Double.parseDouble(d.get("persenCito").toString()) + "%)"; + }else{ + keterangan = keterangan + " + Cito (+" + Double.parseDouble(d.get("persenCito").toString()) + "%)"; + } } - if (CommonUtil.isNotNullOrEmpty(d.get("idSayatan")) && CommonUtil.isNotNullOrEmpty("urutanSayatan") - && Integer.parseInt(d.get("urutanSayatan").toString()) != 1) - keterangan = keterangan + "Diskon Sayatan ke-" + d.get("urutanSayatan").toString() + " (" - + Double.parseDouble(d.get("persenSayatan").toString()) + "%)"; + if (Boolean.parseBoolean(d.get("isHoliday").toString())) { + if (keterangan.isEmpty()) { + keterangan = keterangan + "Holiday Service (+" + Double.parseDouble(d.get("persenHoliday").toString()) + "%)"; + }else{ + keterangan = keterangan + " + Holiday Service (+" + Double.parseDouble(d.get("persenHoliday").toString()) + "%)"; + } + } + if (CommonUtil.isNotNullOrEmpty(d.get("idSayatan")) && CommonUtil.isNotNullOrEmpty("urutanSayatan") && Integer.parseInt(d.get("urutanSayatan").toString()) != 1) + if (keterangan.isEmpty()) { + keterangan = keterangan + "Diskon Sayatan ke-" + d.get("urutanSayatan").toString() + " (" + Double.parseDouble(d.get("persenSayatan").toString()) + "%)"; + }else{ + keterangan = keterangan + " + Diskon Sayatan ke-" + d.get("urutanSayatan").toString() + " (" + Double.parseDouble(d.get("persenSayatan").toString()) + "%)"; + } if (Boolean.parseBoolean(d.get("isSelisihPaket").toString())) { if (persenDiskonPegawai > 0.0 && persenDiskonJasa > 0.0) { if (keterangan.isEmpty()) { @@ -3690,12 +3703,25 @@ public class RemunerasiServiceImpl extends BaseVoServiceImpl implements Remunera builder.nilai(hargaJasa * (1 - persenDiskonPegawai / 100) * (1 - persenDiskonJasa / 100)); } if (Boolean.parseBoolean(d.get("isCito").toString())) { - keterangan = keterangan + "Cito (+" + Double.parseDouble(d.get("persenCito").toString()) + "%)"; + if (keterangan.isEmpty()) { + keterangan = keterangan + "Cito (+" + Double.parseDouble(d.get("persenCito").toString()) + "%)"; + }else{ + keterangan = keterangan + " + Cito (+" + Double.parseDouble(d.get("persenCito").toString()) + "%)"; + } } - if (CommonUtil.isNotNullOrEmpty(d.get("idSayatan")) && CommonUtil.isNotNullOrEmpty("urutanSayatan") - && Integer.parseInt(d.get("urutanSayatan").toString()) != 1) - keterangan = keterangan + "Diskon Sayatan ke-" + d.get("urutanSayatan").toString() + " (" - + Double.parseDouble(d.get("persenSayatan").toString()) + "%)"; + if (Boolean.parseBoolean(d.get("isHoliday").toString())) { + if (keterangan.isEmpty()) { + keterangan = keterangan + "Holiday Service (+" + Double.parseDouble(d.get("persenHoliday").toString()) + "%)"; + }else{ + keterangan = keterangan + " + Holiday Service (+" + Double.parseDouble(d.get("persenHoliday").toString()) + "%)"; + } + } + if (CommonUtil.isNotNullOrEmpty(d.get("idSayatan")) && CommonUtil.isNotNullOrEmpty("urutanSayatan") && Integer.parseInt(d.get("urutanSayatan").toString()) != 1) + if (keterangan.isEmpty()) { + keterangan = keterangan + "Diskon Sayatan ke-" + d.get("urutanSayatan").toString() + " (" + Double.parseDouble(d.get("persenSayatan").toString()) + "%)"; + }else{ + keterangan = keterangan + " + Diskon Sayatan ke-" + d.get("urutanSayatan").toString() + " (" + Double.parseDouble(d.get("persenSayatan").toString()) + "%)"; + } if (Boolean.parseBoolean(d.get("isSelisihPaket").toString())) { if (persenDiskonPegawai > 0.0 && persenDiskonJasa > 0.0) { if (keterangan.isEmpty()) { diff --git a/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/entities/PelayananPasien.java b/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/entities/PelayananPasien.java index e80b2e93..44055883 100644 --- a/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/entities/PelayananPasien.java +++ b/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/entities/PelayananPasien.java @@ -303,4 +303,10 @@ public class PelayananPasien extends MedicalRecordTransaction { @Column(name = "persencito") private Double persenCito; + @Column(name = "isholiday") + private Boolean isHoliday; + + @Column(name = "persenholiday") + private Double persenHoliday; + } \ No newline at end of file diff --git a/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/vo/PelayananPasienVO.java b/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/vo/PelayananPasienVO.java index e559b5c9..fe526fa5 100644 --- a/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/vo/PelayananPasienVO.java +++ b/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/vo/PelayananPasienVO.java @@ -171,4 +171,8 @@ public class PelayananPasienVO extends MedicalRecordTransactionVO { private Double persenCito; + private Boolean isHoliday; + + private Double persenHoliday; + } \ No newline at end of file diff --git a/jasamedika-sdm/src/main/java/com/jasamedika/medifirst2000/controller/IkiDanRemunerasiController.java b/jasamedika-sdm/src/main/java/com/jasamedika/medifirst2000/controller/IkiDanRemunerasiController.java index f609e502..f955afe7 100644 --- a/jasamedika-sdm/src/main/java/com/jasamedika/medifirst2000/controller/IkiDanRemunerasiController.java +++ b/jasamedika-sdm/src/main/java/com/jasamedika/medifirst2000/controller/IkiDanRemunerasiController.java @@ -984,6 +984,28 @@ public class IkiDanRemunerasiController extends LocaleController>> getCatatanKegiatanHarianAllTanpaStatusVerif(HttpServletRequest request, + @RequestParam(value = "pegawaiId") Integer idPegawai, @RequestParam(value = "jabatanId") Integer idJabatan, + @RequestParam(value = "bulan") Long bulan) { + try { + List> result = logbookKinerjaDetailService.findWorkingRecordTanpaStatusVerif(idPegawai, idJabatan, bulan); + mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_SUCCESS, + getMessage(MessageResource.LABEL_SUCCESS, request)); + return RestUtil.getJsonResponse(result, HttpStatus.OK, mapHeaderMessage); + } catch (ServiceVOException sve) { + LOGGER.error("Got ServiceVOException {} when get catatan kegiatan harian belum verifikasi", + sve.getMessage()); + addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, sve.getMessage()); + return RestUtil.getJsonHttptatus(HttpStatus.INTERNAL_SERVER_ERROR, mapHeaderMessage); + } catch (JpaSystemException jse) { + LOGGER.error("Got JpaSystemException {} when get catatan kegiatan harian belum verifikasi", + jse.getMessage()); + addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, jse.getMessage()); + return RestUtil.getJsonHttptatus(HttpStatus.CONFLICT, mapHeaderMessage); + } + } + @RequestMapping(value = "/catatan-kegiatan-harian-belum-verif", method = GET) public ResponseEntity>> getCatatanKegiatanHarianBelumVerif(HttpServletRequest request, @RequestParam(value = "pegawaiId") Integer idPegawai, @RequestParam(value = "jabatanId") Integer idJabatan,