Compare commits
147 Commits
dev/pegawa
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
8b65c492cf | ||
|
|
a0cc1cd482 | ||
|
|
1a6f7fcd16 | ||
|
|
77eb8f3672 | ||
|
|
b7139f2851 | ||
|
|
90d511e928 | ||
|
|
8c617702eb | ||
|
|
0c753e9c22 | ||
|
|
1317e877f0 | ||
|
|
248bc1cad7 | ||
|
|
db25c0aef9 | ||
|
|
12d298949d | ||
|
|
82b84d2fb9 | ||
|
|
eb7b2f91ad | ||
|
|
8482eab951 | ||
|
|
e816f1f2e4 | ||
|
|
406ed896a9 | ||
|
|
67a45253b1 | ||
|
|
9197ad56ce | ||
|
|
79f93d8f1e | ||
|
|
d06be39030 | ||
|
|
ae1e575d73 | ||
|
|
4d528f86bc | ||
|
|
42548e0cca | ||
|
|
a9a123cbf3 | ||
|
|
a705fc4c3b | ||
|
|
f2a247792d | ||
|
|
d1455fc1cf | ||
|
|
69df61e369 | ||
|
|
24326b38a2 | ||
|
|
838739b0e1 | ||
|
|
4d73c1cbbe | ||
|
|
eb76e0e8a9 | ||
|
|
e6d47716ea | ||
|
|
74ca1b4cfa | ||
|
|
725c350450 | ||
|
|
f5fd2a5831 | ||
|
|
f152385e55 | ||
|
|
d30fc769ab | ||
|
|
f10373891e | ||
|
|
fbec23b80f | ||
|
|
ab8595de29 | ||
|
|
d8de068b74 | ||
|
|
8e21f0b7cf | ||
|
|
8222a2e929 | ||
|
|
f9d2af743f | ||
|
|
749fb0fb53 | ||
|
|
1e85db0adf | ||
|
|
cf0e09ae01 | ||
|
|
e3dc3c5807 | ||
|
|
ccfeecc7c6 | ||
|
|
143bfa458e | ||
|
|
8b3a574ce1 | ||
|
|
a27a73bec0 | ||
|
|
9948599436 | ||
|
|
e6107dae92 | ||
|
|
e5b8c39bf5 | ||
|
|
d554375789 | ||
|
|
ef9ed72c64 | ||
|
|
7ea34b1ec6 | ||
|
|
b8ed331571 | ||
|
|
623f945859 | ||
|
|
3ebdc08c5d | ||
|
|
ef48f2649c | ||
|
|
26e4dbb777 | ||
|
|
4392686880 | ||
|
|
36eb745812 | ||
|
|
f8581a431b | ||
|
|
6b2df06b20 | ||
|
|
59fc605b59 | ||
|
|
2481546942 | ||
|
|
d5a561f79f | ||
|
|
12f5c633f2 | ||
|
|
2d83b9a91c | ||
|
|
31d07e10ce | ||
|
|
243a90e2c7 | ||
|
|
c44d5799f3 | ||
|
|
960b9af314 | ||
|
|
43d105de37 | ||
|
|
e6002e44e8 | ||
|
|
bda56b5f44 | ||
|
|
b1206442bb | ||
|
|
71391fb198 | ||
|
|
78699b5eee | ||
|
|
34ed82a346 | ||
|
|
69f37af283 | ||
|
|
5bbefc913d | ||
|
|
991b15464e | ||
|
|
3fb671e4f9 | ||
|
|
9c3f7924bc | ||
|
|
a1490efe43 | ||
|
|
b50c271d21 | ||
|
|
39796f393a | ||
|
|
389147e756 | ||
|
|
3582e22fed | ||
|
|
852325485b | ||
|
|
e2ac3cb803 | ||
|
|
1a21be43ab | ||
|
|
9a6ff8d2b8 | ||
|
|
a4b51b2ecb | ||
|
|
543b41dffa | ||
|
|
6dba53aee0 | ||
|
|
a4aa2ad173 | ||
|
|
d83566d8d5 | ||
|
|
6cd22af4b6 | ||
|
|
33bcd7b313 | ||
|
|
3947da84fc | ||
|
|
aa0f1ad5ae | ||
|
|
b239c18f9e | ||
|
|
07ced4ffc7 | ||
|
|
7f6474fb8a | ||
|
|
280cf73993 | ||
|
|
f03a842dd2 | ||
|
|
482731fafa | ||
|
|
eb71199dd7 | ||
|
|
5969617896 | ||
|
|
cb6b91f1ed | ||
|
|
c3688c9422 | ||
|
|
2c22512271 | ||
|
|
06aaa550d2 | ||
|
|
ad368f7946 | ||
|
|
8df79fac35 | ||
|
|
e2f9e92ecb | ||
|
|
9d054afeb5 | ||
|
|
a4dde9dd13 | ||
|
|
f092607ec4 | ||
|
|
8c1f6a1825 | ||
|
|
d24bbfb260 | ||
|
|
79fe30ff4b | ||
|
|
a4db6562b9 | ||
|
|
7750dc974e | ||
|
|
ac5e379b28 | ||
|
|
dd485a8a5a | ||
|
|
bdd2db96cc | ||
|
|
bda8841f7f | ||
|
|
d231af1cd1 | ||
|
|
27abc1bc75 | ||
|
|
d185736401 | ||
|
|
172c1a0539 | ||
|
|
82e77209e6 | ||
|
|
ec685312cf | ||
|
|
96abf3cdab | ||
|
|
4178405fd4 | ||
|
|
aace5f33b0 | ||
|
|
fc2d017850 | ||
|
|
321e87b6f9 | ||
|
|
d4f3cc414d |
@ -15,7 +15,7 @@
|
||||
</context-param>
|
||||
<context-param>
|
||||
<param-name>spring.profiles.default</param-name>
|
||||
<param-value>localhost</param-value>
|
||||
<param-value>bridging</param-value>
|
||||
</context-param>
|
||||
|
||||
<listener>
|
||||
|
||||
@ -70,6 +70,8 @@ public final class Master {
|
||||
public static final Integer PELAYANAN_MEDIS_JAM_KERJA = 466;
|
||||
public static final Integer PELAYANAN_NAKES = 678;
|
||||
public static final Integer PELAYANAN_PERAWAT = 712;
|
||||
public static final double BOBOT_HARI_KERJA = 5;
|
||||
public static final double BOBOT_JAM_KERJA = 5;
|
||||
}
|
||||
|
||||
public static final class IndikatorKinerjaDetail {
|
||||
@ -355,7 +357,8 @@ public final class Master {
|
||||
public static final class Ruangan {
|
||||
public static final Integer CATHLAB = 703;
|
||||
public static final Integer[] GENETIKA = { 277, 563, 587 };
|
||||
public static final Integer[] ICU_NICU = { 328, 75, 707, 708 };
|
||||
public static final Integer[] ICU_NICU_V1 = { 328, 75, 707, 708 }; // Perubahan Regulasi Pada 02/12/2025, berlaku untuk data sebelum 1 november 2025
|
||||
public static final Integer[] ICU_NICU_v2 = { 328,75,463,76,45,464,44,707,708 }; // Perubahan Regulasi Pada 02/12/2025, berlaku untuk data setelah atau sama dengan 1 november 2025
|
||||
public static final int KLINIK_FALSE_EMERGENCY = 309;
|
||||
public static final Integer KLINIK_GIGI_KARYAWAN = 702;
|
||||
public static final Integer KLINIK_KARYAWAN = 70;
|
||||
@ -368,6 +371,7 @@ public final class Master {
|
||||
public static final int POLI_MATA = 5;
|
||||
public static final int POLI_THT = 6;
|
||||
public static final int RADIOLOGI = 35;
|
||||
public static final int POLI_GIZI = 717;
|
||||
}
|
||||
|
||||
public static final class SatuanIndikator {
|
||||
@ -376,18 +380,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 {
|
||||
@ -459,6 +461,10 @@ public final class Master {
|
||||
public static final Integer KSM_OBGYN = 59;
|
||||
}
|
||||
|
||||
public static final class AppDefaultVariabel {
|
||||
public static final Integer RECURSIVE_BATCH = 8000;
|
||||
}
|
||||
|
||||
public static final class User {
|
||||
public static final Integer MOBILE_JKN = 3;
|
||||
}
|
||||
|
||||
@ -17,15 +17,13 @@ public interface JatahCutiDanIzinDao extends JpaRepository<JatahCutiDanIzin, Str
|
||||
@Query("select jatahCuti " + "from JatahCutiDanIzin jatahCuti " + "left join jatahCuti.pegawai pegawai "
|
||||
+ "left join jatahCuti.komponenIndex komponenIndex "
|
||||
+ "where jatahCuti.tahun = :tahun and pegawai.id = :idPegawai " + "and komponenIndex.id = :komponenIndexId")
|
||||
JatahCutiDanIzin getJatahCuti(@Param("tahun") String tahun, @Param("idPegawai") Integer idPegawai,
|
||||
@Param("komponenIndexId") Integer komponenIndexId);
|
||||
JatahCutiDanIzin getJatahCuti(@Param("tahun") String tahun, @Param("idPegawai") Integer idPegawai, @Param("komponenIndexId") Integer komponenIndexId);
|
||||
|
||||
@Query("select jatahCuti " + "from JatahCutiDanIzin jatahCuti " + "left join jatahCuti.pegawai pegawai "
|
||||
+ "left join jatahCuti.komponenIndex komponenIndex "
|
||||
+ "where jatahCuti.tahun = :tahun and pegawai.id = :idPegawai "
|
||||
+ "and komponenIndex.id in (:komponenIndexId)")
|
||||
JatahCutiDanIzin getJatahCuti(@Param("tahun") String tahun, @Param("idPegawai") Integer idPegawai,
|
||||
@Param("komponenIndexId") List<Integer> komponenIndexId);
|
||||
JatahCutiDanIzin getJatahCuti(@Param("tahun") String tahun, @Param("idPegawai") Integer idPegawai, @Param("komponenIndexId") List<Integer> komponenIndexId);
|
||||
|
||||
@Query("select coalesce(jatahCuti.value,0) " + "from JatahCutiDanIzin jatahCuti "
|
||||
+ "left join jatahCuti.pegawai pegawai " + "left join jatahCuti.komponenIndex komponenIndex "
|
||||
@ -33,6 +31,13 @@ public interface JatahCutiDanIzinDao extends JpaRepository<JatahCutiDanIzin, Str
|
||||
Integer getDataCuti(@Param("tahun") String tahun, @Param("idPegawai") Integer idPegawai,
|
||||
@Param("komponenIndexId") Integer komponenIndexId);
|
||||
|
||||
/* Penambahan Query Untuk Mendapatkan Data Intervensi Cuti 16/09/2025 */
|
||||
@Query("select coalesce(jatahCuti.intervensiCuti, 0) " + "from JatahCutiDanIzin jatahCuti "
|
||||
+ "left join jatahCuti.pegawai pegawai " + "left join jatahCuti.komponenIndex komponenIndex "
|
||||
+ "where jatahCuti.tahun = :tahun and pegawai.id = :idPegawai " + "and komponenIndex.id = :komponenIndexId")
|
||||
Integer getDataIntervensiCuti(@Param("tahun") String tahun, @Param("idPegawai") Integer idPegawai,
|
||||
@Param("komponenIndexId") Integer komponenIndexId);
|
||||
|
||||
@Query("select jatahCuti.isTangguhkan " + "from JatahCutiDanIzin jatahCuti "
|
||||
+ "left join jatahCuti.pegawai pegawai " + "left join jatahCuti.komponenIndex komponenIndex "
|
||||
+ "where jatahCuti.tahun = :tahun and pegawai.id = :idPegawai " + "and komponenIndex.id = :komponenIndexId")
|
||||
@ -54,6 +59,7 @@ public interface JatahCutiDanIzinDao extends JpaRepository<JatahCutiDanIzin, Str
|
||||
|
||||
@Query("select new map(" + "jatahCuti.noRec as noRec, " + "jatahCuti.komponenIndexId as komponenIndexId, "
|
||||
+ "komponenIndex.komponenIndex as komponenIndex, " + "jatahCuti.tahun as tahun, "
|
||||
+ "jatahCuti.intervensiCuti as intervensiCuti, "
|
||||
+ "jatahCuti.value as value, " + "jatahCuti.sisaCuti as sisaCuti, "
|
||||
+ "jatahCuti.cutiTerpakai as cutiTerpakai, " + "jatahCuti.isTangguhkan as isTangguhkan, "
|
||||
+ "pegawai.id as idPegawai, " + "pegawai.namaLengkap as namaPegawai, " + "pegawai.nipPns as nipPegawai, "
|
||||
|
||||
@ -51,6 +51,10 @@ public interface LogbookKinerjaDetailDao extends PagingAndSortingRepository<Logb
|
||||
@Param("jabatanId") Integer idJabatan, @Param("indikatorId") Integer idIndikator,
|
||||
@Param("start") Date start, @Param("end") Date end);
|
||||
|
||||
@Query(strGetWR + sortGetWR)
|
||||
List<Map<String, Object>> 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 "
|
||||
|
||||
@ -501,4 +501,9 @@ public interface MapPegawaiJabatanToUnitKerjaDao extends JpaRepository<MapPegawa
|
||||
+ "where mj.statusEnabled is true " + "and skj.statusEnabled is true " + "and lower(skj.name) like 'kk%' "
|
||||
+ "and mj.pegawaiId = :pegawaiId")
|
||||
List<Integer> findKelompokKerjaByDokter(@Param("pegawaiId") Integer idPegawai);
|
||||
|
||||
@Query("select mj.pegawaiId from MapPegawaiJabatanToUnitKerja mj " + "inner join mj.pegawai pg "
|
||||
+ "where mj.statusEnabled is true " + "and pg.statusEnabled is true "
|
||||
+ "and mj.pegawaiId = :idPegawai " + "and pg.jenisPegawaiId = 1")
|
||||
Set<Integer> findDokterByPegawaiId(@Param("idPegawai") Integer idPegawai);
|
||||
}
|
||||
|
||||
@ -13,13 +13,55 @@ import java.util.Map;
|
||||
@Repository("MonitoringAbsenDao")
|
||||
public interface MonitoringAbsenDao extends PagingAndSortingRepository<MonitoringAbsen, String> {
|
||||
|
||||
@Query(value = "select distinct reportdisplay, namashift from shiftkerja_m where statusenabled is true", nativeQuery = true)
|
||||
List<Object[]> getDataMasterShift();
|
||||
|
||||
@Query(value = "WITH jadwal_kerja AS ("
|
||||
+ " select "
|
||||
+ " pegawaijadwalkerja_m.id,"
|
||||
+ " shiftkerja_m.reportdisplay,"
|
||||
+ " pegawaijadwalkerja_m.objectpegawaifk,"
|
||||
+ " shiftkerja_m.namashift,"
|
||||
+ " kalender_s.tanggal,"
|
||||
+ " shiftkerja_m.factorrate,"
|
||||
+ " (shiftkerja_m.factorrate * 60) as menit_efektif"
|
||||
+ " from "
|
||||
+ " pegawaijadwalkerja_m inner join "
|
||||
+ " kalender_s on pegawaijadwalkerja_m.objecttanggalfk = kalender_s.id inner join "
|
||||
+ " shiftkerja_m on pegawaijadwalkerja_m.objectshiftfk = shiftkerja_m.id"
|
||||
+ " where "
|
||||
+ " pegawaijadwalkerja_m.statusenabled is not false"
|
||||
+ " and kalender_s.tanggal between '2025-11-01' and '2025-11-30'"
|
||||
+ " )"
|
||||
+ " select "
|
||||
+ " pegawai_m.id,"
|
||||
+ " pegawai_m.namalengkap,"
|
||||
+ " count(jadwal_kerja.id) FILTER (WHERE jadwal_kerja.reportdisplay not in ('L')) as jumlah_hari_kerja,"
|
||||
+ " case when sum(jadwal_kerja.menit_efektif) is null then 0 else sum(jadwal_kerja.menit_efektif) end as menit_efektif,"
|
||||
+ " mappegawaijabatantounitkerja_m.objectjabatanfk"
|
||||
+ " from "
|
||||
+ " pegawai_m inner join "
|
||||
+ " kategorypegawai_m on pegawai_m.kategorypegawai = kategorypegawai_m.id left outer join"
|
||||
+ " sdm_kedudukan_m on pegawai_m.kedudukanfk = sdm_kedudukan_m.id left outer join "
|
||||
+ " mappegawaijabatantounitkerja_m on pegawai_m.id = mappegawaijabatantounitkerja_m.objectpegawaifk and mappegawaijabatantounitkerja_m.statusenabled is true and mappegawaijabatantounitkerja_m.isprimary is true left outer join "
|
||||
+ " jadwal_kerja on jadwal_kerja.objectpegawaifk = pegawai_m.id"
|
||||
+ " where "
|
||||
+ " sdm_kedudukan_m.id = 1 and pegawai_m.id in (22924,22349,22953,1224,23220,23004) and "
|
||||
+ " sdm_kedudukan_m.id = 1 and mappegawaijabatantounitkerja_m.objectjabatanfk is not null "
|
||||
+ " group by "
|
||||
+ " pegawai_m.id,"
|
||||
+ " pegawai_m.namalengkap,"
|
||||
+ " mappegawaijabatantounitkerja_m.objectjabatanfk"
|
||||
+ " limit 100", nativeQuery = true)
|
||||
List<Object[]> getTargetHariJamKerja();
|
||||
|
||||
@Query(" select monitoringAbsen.noRec" + " from MonitoringAbsen monitoringAbsen"
|
||||
+ " left join monitoringAbsen.pegawai pegawai"
|
||||
+ " where pegawai.id = :idPegawai and monitoringAbsen.tanggal = :date")
|
||||
String findByIdPegawaiAndTanggal(@Param("idPegawai") Integer idPegawai, @Param("date") String date);
|
||||
|
||||
@Query(" select new map(pegawai.nipPns as nip, pegawai.namaLengkap as nama,shift.kodeExternal as kodeShift, shift.namaShift as namaShift,"
|
||||
+ " shift.jamMasuk as jamMasuk, shift.jamPulang as jamPulang, shift.waktuIstirahat as waktuIstirahat, "
|
||||
+ " shift.jamMasuk as jamMasuk, shift.jamPulang as jamPulang, shift.factorRate as factorRate, shift.waktuIstirahat as waktuIstirahat, "
|
||||
+ " jabatanInternal.namaJabatan as jabatanInternal, ruangan.namaRuangan as namaRuangan, "
|
||||
+ " tanggal.hariKeDlmBulan as hari, tanggal.namaBulan as bulan, tanggal.tahunKalender as tahun, tanggal.hariKeDlmBulan as tgl,"
|
||||
+ " kelompokShiftKerja.id as idKelompokShiftKerja, unitKerja.name as unitKerja, "
|
||||
@ -34,10 +76,9 @@ public interface MonitoringAbsenDao extends PagingAndSortingRepository<Monitorin
|
||||
+ "and to_char(tanggal.tanggal,'yyyy-MM-dd') between :startDate and :endDate "
|
||||
+ "and pegawai.idFinger = :idFinger " + "and pegawai.statusEnabled is not false "
|
||||
+ "order by tanggal,pegawai.nama asc")
|
||||
List<Map<String, Object>> findJadwalPegawai(@Param("idFinger") String idFinger,
|
||||
@Param("startDate") String startDate, @Param("endDate") String endDate);
|
||||
List<Map<String, Object>> findJadwalPegawai(@Param("idFinger") String idFinger,@Param("startDate") String startDate, @Param("endDate") String endDate);
|
||||
|
||||
@Query("select new map(shift.kodeExternal as kodeShift, " + "shift.namaShift as namaShift, "
|
||||
@Query("select new map(shift.kodeExternal as kodeShift, " + "shift.namaShift as namaShift, shift.factorRate as factorRate, "
|
||||
+ "shift.jamMasuk as jamMasuk, " + "shift.jamPulang as jamPulang, "
|
||||
+ "shift.waktuIstirahat as waktuIstirahat, " + "kelompokShiftKerja.id as idKelompokShiftKerja, "
|
||||
+ "tanggal.tanggal as tanggal, " + "shift.id as idShift, " + "jadwalpegawai.keteranganAlasan as ket) "
|
||||
@ -371,7 +412,7 @@ public interface MonitoringAbsenDao extends PagingAndSortingRepository<Monitorin
|
||||
+ "left join mp.jabatan jb with jb.statusEnabled is true "
|
||||
+ "where mp.statusEnabled is true and pg.statusEnabled is true "
|
||||
+ "and pg.kedudukanId not in (:listException) " + "and mp.unitKerjaPegawaiId = :idUnitKerja "
|
||||
+ "and jb.levelJabatan = :levelJabatan+1 " // satu_level_dibawah_pegawai_login
|
||||
+ "and (jb.levelJabatan = :levelJabatan+1 or jb.levelJabatan = :levelJabatan+2) " // dua_level_dibawah_pegawai_login
|
||||
+ "and jb.subLevelJabatan = :sublevelJabatan")
|
||||
List<Map<String, Object>> getDataPegawaiDirektur(@Param("idUnitKerja") Integer idUnitKerja,
|
||||
@Param("levelJabatan") Integer levelJabatan, @Param("sublevelJabatan") Integer sublevelJabatan,
|
||||
|
||||
@ -71,8 +71,8 @@ public interface PegawaiJadwalKerjaDao extends PagingAndSortingRepository<Pegawa
|
||||
|
||||
@Query("select new Map(shiftKerja.id as idShift, shiftKerja.namaShift as namaShift) "
|
||||
+ "from PegawaiJadwalKerja jadwalKerja " + "inner join jadwalKerja.shift shiftKerja "
|
||||
+ "left join jadwalKerja.tanggal kalender " + "where shiftKerja.statusEnabled is true "
|
||||
+ "and to_char(kalender.tanggal, 'yyyy-MM-dd') between :tgl1 and :tgl2 "
|
||||
+ "left join jadwalKerja.tanggal kalender "
|
||||
+ "where to_char(kalender.tanggal, 'yyyy-MM-dd') between :tgl1 and :tgl2 "
|
||||
+ "and jadwalKerja.pegawaiId = :idPegawai " + "order by to_char(kalender.tanggal, 'yyyy-MM-dd')")
|
||||
List<Map<String, Object>> getNamaShiftKerjaPegawaiByTanggal(@Param("tgl1") String tgl1, @Param("tgl2") String tgl2,
|
||||
@Param("idPegawai") Integer idPegawai);
|
||||
|
||||
@ -148,6 +148,8 @@ public interface PelayananPasienDao extends JpaRepository<PelayananPasien, Strin
|
||||
+ "when :jenisDiskon = 1 and ru.id = :tht and pr.id in (:produkTht) and coalesce(pp.hargaDiscount,0) < pp.hargaJual then pp.hargaJual "
|
||||
+ "when :jenisDiskon = 1 and ru.id = :mata and pr.id in (:produkMata) and coalesce(pp.hargaDiscount,0) >= pp.hargaJual then coalesce(pp.hargaDiscount,0) "
|
||||
+ "when :jenisDiskon = 1 and ru.id = :mata and pr.id in (:produkMata) and coalesce(pp.hargaDiscount,0) < pp.hargaJual then pp.hargaJual "
|
||||
+ "when :jenisDiskon = 1 and ru.id = :gizi and pr.id in (:produkGizi) and coalesce(pp.hargaDiscount,0) >= pp.hargaJual then coalesce(pp.hargaDiscount,0) "
|
||||
+ "when :jenisDiskon = 1 and ru.id = :gizi and pr.id in (:produkGizi) and coalesce(pp.hargaDiscount,0) < pp.hargaJual then pp.hargaJual "
|
||||
+ "when :jenisDiskon = 1 and ru.id = :klinik and lower(pr.namaProduk) like '%konsul%dokter%' and coalesce(pp.hargaDiscount,0) >= pp.hargaJual then coalesce(pp.hargaDiscount,0) "
|
||||
+ "when :jenisDiskon = 1 and ru.id = :klinik and lower(pr.namaProduk) like '%konsul%dokter%' and coalesce(pp.hargaDiscount,0) < pp.hargaJual then pp.hargaJual "
|
||||
+ "when :jenisDiskon = 1 and ru.id in (:labRadiologi) and pr.id in (:produkLabRadiologi) and coalesce(pp.hargaDiscount,0) >= pp.hargaJual then coalesce(pp.hargaDiscount,0) "
|
||||
@ -170,7 +172,7 @@ public interface PelayananPasienDao extends JpaRepository<PelayananPasien, Strin
|
||||
@Param("produkMata") List<Integer> produkMata, @Param("gigi") Integer gigi,
|
||||
@Param("produkGigi") List<Integer> produkGigi, @Param("labRadiologi") List<Integer> labRadiologi,
|
||||
@Param("produkLabRadiologi") List<Integer> produkLabRadiologi,
|
||||
@Param("produkFarmasi") List<Integer> produkFarmasi, @Param("produkMpp") List<Integer> produkMpp);
|
||||
@Param("produkFarmasi") List<Integer> produkFarmasi, @Param("produkMpp") List<Integer> produkMpp, @Param("gizi") Integer gizi, @Param("produkGizi") List<Integer> produkGizi);
|
||||
|
||||
@Query("select ppd from PelayananPasienDetail ppd " + "inner join ppd.pelayananPasien pp "
|
||||
+ "inner join pp.pasienDaftar apd " + "inner join apd.pasienDaftar pd " + "where apd.statusEnabled is true "
|
||||
@ -202,8 +204,8 @@ public interface PelayananPasienDao extends JpaRepository<PelayananPasien, Strin
|
||||
+ "ppp.ObjectPegawaiId as idPegawai," + "pp.noRec as idPelayananPasien,coalesce(pp.jumlah,0) as jumlah,"
|
||||
+ "coalesce(pp.hargaJual,0) as hargaJual,coalesce(pp.hargaDiscount,0) as hargaDiskon,"
|
||||
+ "pp.voucherPaketId as idVoucherLayanan,coalesce(pp.isPaket,false) as isPaket,coalesce(pp.isSelisihPaket,false) as isSelisihPaket,"
|
||||
+ "coalesce(pp.persenDiskonPegawai,0.0) as persenDiskonPegawai," + "coalesce(pp.isCito,false) as isCito,"
|
||||
+ "coalesce(pp.persenCito,0.0) as persenCito,"
|
||||
+ "coalesce(pp.persenDiskonPegawai,0.0) as persenDiskonPegawai," + "coalesce(pp.isCito,false) as isCito," + "coalesce(pp.isHoliday,false) as isHoliday,"
|
||||
+ "coalesce(pp.persenCito,0.0) as persenCito," + "coalesce(pp.persenHoliday,0.0) as persenHoliday,"
|
||||
+ "pp.tglPelayanan as tglPelayanan,to_char(pp.tglPelayanan,'yyyy-MM-dd') as tanggal,"
|
||||
+ "pp.sayatanId as idSayatan,sy.urutan as urutanSayatan,"
|
||||
+ "coalesce(sy.persen,0) as persenSayatan,coalesce(sy.nama,'') as keterangan,"
|
||||
@ -243,6 +245,7 @@ public interface PelayananPasienDao extends JpaRepository<PelayananPasien, Strin
|
||||
String WHERE_LOGBOOK_DOKTER = "where pr.id not in (:listIdKarcis) "
|
||||
+ "and ppd.pelayananPasienId = pp.noRec and (ppp.statusEnabled is true or ppp.statusEnabled is null) "
|
||||
+ "and (pp.statusEnabled is true or pp.statusEnabled is null) and pp.strukResepId is null "
|
||||
+ "and apd.ruanganId not in (777) "
|
||||
+ "and (pd.statusEnabled is true or pd.statusEnabled is null) ";
|
||||
|
||||
String PARAMATER_LOGBOOK_DOKTER = "and ppp.ObjectPegawaiId = :pegawaiId "
|
||||
@ -333,7 +336,7 @@ public interface PelayananPasienDao extends JpaRepository<PelayananPasien, Strin
|
||||
+ "inner join pelayananpasienpetugas_t ppp on pp.norec = ppp.pelayananpasien "
|
||||
+ "inner join mappegawaijabatantounitkerja_m mj on ppp.objectpegawaifk = mj.objectpegawaifk "
|
||||
+ "where ppp.objectpegawaifk = :pegawaiId " + "and pp.tglpelayanan between :tglAwal and :tglAkhir "
|
||||
+ "and mj.statusenabled = true " + "and ppp.objectjenispetugaspefk in (:listJenisPetugasPelaksanaId)")
|
||||
+ "and mj.statusenabled = true " + "and pp.statusenabled = true " + "and ppp.objectjenispetugaspefk in (:listJenisPetugasPelaksanaId)")
|
||||
List<String> findIdPelayananByDokter(@Param("pegawaiId") Integer idPegawai, @Param("tglAwal") Date tglAwal,
|
||||
@Param("tglAkhir") Date tglAkhir,
|
||||
@Param("listJenisPetugasPelaksanaId") List<Integer> listIdJenisPetugasPelaksana);
|
||||
@ -341,7 +344,7 @@ public interface PelayananPasienDao extends JpaRepository<PelayananPasien, Strin
|
||||
@Query(nativeQuery = true, value = "select pp.norec " + "from pelayananpasien_t pp "
|
||||
+ "inner join pelayananpasienpetugas_t ppp on pp.norec = ppp.pelayananpasien "
|
||||
+ "inner join mappegawaijabatantounitkerja_m mj on ppp.objectpegawaifk = mj.objectpegawaifk "
|
||||
+ "where pp.tglpelayanan between :tglAwal and :tglAkhir " + "and mj.statusenabled = true "
|
||||
+ "where pp.tglpelayanan between :tglAwal and :tglAkhir " + "and mj.statusenabled = true " + "and pp.statusenabled = true "
|
||||
+ "and mj.objectunitkerjapegawaifk in (:listKsmId) "
|
||||
+ "and ppp.objectjenispetugaspefk in (:listJenisPetugasPelaksanaId) "
|
||||
+ "group by pp.norec having count(pp.norec) > 1")
|
||||
@ -357,6 +360,7 @@ public interface PelayananPasienDao extends JpaRepository<PelayananPasien, Strin
|
||||
+ "and ppp.ObjectPegawaiId = mj.pegawaiId " + "and ppp.ObjectPegawaiId = pg.id "
|
||||
+ "and pp.tglPelayanan between :tglAwal and :tglAkhir " + "and mj.unitKerjaPegawaiId in (:listKsmId) "
|
||||
+ "and ppp.ObjectJenisPetugasPeId in (:listJenisPetugasPelaksanaId) "
|
||||
+ "and pp.statusEnabled is true "
|
||||
+ "and pp.noRec in (:listPelayananIdByDokter) " + "and pp.noRec in (:listPelayananIdByKsm)")
|
||||
List<PelayananDokterBedahDto> findPelayananBedah(@Param("tglAwal") Date tglAwal, @Param("tglAkhir") Date tglAkhir,
|
||||
@Param("listKsmId") List<Integer> listIdKsm,
|
||||
@ -364,4 +368,12 @@ public interface PelayananPasienDao extends JpaRepository<PelayananPasien, Strin
|
||||
@Param("listPelayananIdByDokter") List<String> listIdPelayananByDokter,
|
||||
@Param("listPelayananIdByKsm") List<String> listIdPelayananByKsm);
|
||||
|
||||
@Query(nativeQuery = true, value = "select distinct pp.noRec as noRec, pp.produkfk as idProduk, ppp.objectpegawaifk as idPegawai, ppp.objectjenispetugaspefk as idJenisPetugasPelaksana from pelayananpasienpetugas_t ppp inner join mappegawaijabatantounitkerja_m mj on mj.objectpegawaifk = ppp.objectpegawaifk inner join pelayananpasien_t pp on pp.norec = ppp.pelayananpasien inner join pegawai_m pg on mj.objectpegawaifk = pg.id where mj.statusEnabled is true and ppp.objectpegawaifk = mj.objectpegawaifk and ppp.objectpegawaifk = pg.id and pp.tglPelayanan between :tglAwal and :tglAkhir and mj.objectunitkerjapegawaifk in (:listKsmId) and ppp.objectjenispetugaspefk in (:listJenisPetugasPelaksanaId) and pp.statusEnabled is true and pp.noRec in (:listPelayananIdByDokter) and pp.noRec in (:listPelayananIdByKsm)")
|
||||
|
||||
List<PelayananDokterBedahDto> findPelayananBedahOriginal(@Param("tglAwal") Date tglAwal, @Param("tglAkhir") Date tglAkhir,
|
||||
@Param("listKsmId") List<Integer> listIdKsm,
|
||||
@Param("listJenisPetugasPelaksanaId") List<Integer> listIdJenisPetugasPelaksana,
|
||||
@Param("listPelayananIdByDokter") List<String> listIdPelayananByDokter,
|
||||
@Param("listPelayananIdByKsm") List<String> listIdPelayananByKsm);
|
||||
|
||||
}
|
||||
|
||||
@ -32,6 +32,20 @@ public interface ShiftKerjaDao extends PagingAndSortingRepository<ShiftKerja, In
|
||||
+ "where model.kelompokShift.id=:id " + "and model.statusEnabled is true")
|
||||
List<Map<String, Object>> 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<Map<String, Object>> findByKelompokShiftIdWithoutStatusEnabled(@Param("id") Integer idShift);
|
||||
|
||||
@Query(" select new map (komponenIndex.komponenIndex as namaKomponen, " + " komponenIndex.id as idKomponenIndex) "
|
||||
+ " from KomponenIndex komponenIndex")
|
||||
public List<Map<String, Object>> getListKomponenIndex();
|
||||
|
||||
@ -13,6 +13,9 @@ public interface LogbookKinerjaDetailService
|
||||
List<Map<String, Object>> findWorkingRecord(Integer idPegawai, Integer idJabatan, Long bulan, Boolean statusVerif)
|
||||
throws JpaSystemException;
|
||||
|
||||
List<Map<String, Object>> findWorkingRecordTanpaStatusVerif(Integer idPegawai, Integer idJabatan, Long bulan)
|
||||
throws JpaSystemException;
|
||||
|
||||
List<Map<String, Object>> findWorkingRecord(Integer idPegawai, Integer idJabatan, Integer idIndikator, Long bulan)
|
||||
throws JpaSystemException;
|
||||
|
||||
|
||||
@ -6,6 +6,6 @@ package com.jasamedika.medifirst2000.service;
|
||||
* @since 25/04/2024
|
||||
*/
|
||||
public interface LogbookRemunService {
|
||||
|
||||
void generateRecap();
|
||||
/* Service ini digunakan untuk mendapatkan data rekap loggbook seluruh pegawai dengan data bulan now - 1 */
|
||||
void generateRecap(Integer idPegawai);
|
||||
}
|
||||
|
||||
@ -110,4 +110,5 @@ public interface MonitoringAbsenService {
|
||||
|
||||
void updateLogbookKinerja(MonitoringAbsenVO vo) throws ParseException;
|
||||
|
||||
Map<String, Object> rekapitulasiCapaianHariDanJamKerjaPegawai(String tglAwal, String tglAkhir);
|
||||
}
|
||||
|
||||
@ -147,6 +147,15 @@ public class JatahCutiDanIzinServiceImpl implements JatahCutiDanIzinService {
|
||||
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
|
||||
|
||||
/* Start Pengambilan Data Intervensi Cuti Untuk 3 Tahun Kebelakang */
|
||||
Integer getDataIntervensiCutiN2 = jatahCutiDanIzinDao.getDataIntervensiCuti(yearN2, pegawaiId, Integer.valueOf(komponen));
|
||||
Integer getDataIntervensiCutiN1 = jatahCutiDanIzinDao.getDataIntervensiCuti(yearN1, pegawaiId, Integer.valueOf(komponen));
|
||||
Integer getDataIntervensiCutiN = jatahCutiDanIzinDao.getDataIntervensiCuti(year, pegawaiId, Integer.valueOf(komponen));
|
||||
Integer getDataIntervensiCutiB2 = jatahCutiDanIzinDao.getDataIntervensiCuti(yearN2, pegawaiId, Integer.valueOf(komponenIndeksCutiBersama));
|
||||
Integer getDataIntervensiCutiB1 = jatahCutiDanIzinDao.getDataIntervensiCuti(yearN1, pegawaiId, Integer.valueOf(komponenIndeksCutiBersama));
|
||||
Integer getDataIntervensiCutiB = jatahCutiDanIzinDao.getDataIntervensiCuti(year, pegawaiId, Integer.valueOf(komponenIndeksCutiBersama));
|
||||
/* End Pengambilan Data Intervensi Cuti Untuk 3 Tahun Kebelakang */
|
||||
// Validasi existing data
|
||||
if (CommonUtil.isNullOrEmpty(dataCutiB2))
|
||||
dataCutiB2 = 0;
|
||||
@ -162,6 +171,20 @@ public class JatahCutiDanIzinServiceImpl implements JatahCutiDanIzinService {
|
||||
dataCutiN = 0;
|
||||
if (CommonUtil.isNullOrEmpty(dataCutiN3))
|
||||
dataCutiN3 = 12;
|
||||
|
||||
if (CommonUtil.isNullOrEmpty(getDataIntervensiCutiN2))
|
||||
getDataIntervensiCutiN2 = 0;
|
||||
if (CommonUtil.isNullOrEmpty(getDataIntervensiCutiN1))
|
||||
getDataIntervensiCutiN1 = 0;
|
||||
if (CommonUtil.isNullOrEmpty(getDataIntervensiCutiN))
|
||||
getDataIntervensiCutiN = 0;
|
||||
if (CommonUtil.isNullOrEmpty(getDataIntervensiCutiB2))
|
||||
getDataIntervensiCutiB2 = 0;
|
||||
if (CommonUtil.isNullOrEmpty(getDataIntervensiCutiB1))
|
||||
getDataIntervensiCutiB1 = 0;
|
||||
if (CommonUtil.isNullOrEmpty(getDataIntervensiCutiB))
|
||||
getDataIntervensiCutiB = 0;
|
||||
|
||||
// mapping jatah cuti
|
||||
cutiIzinBuilder.dataCutiB2(dataCutiB2);
|
||||
cutiIzinBuilder.dataCutiB1(dataCutiB1);
|
||||
@ -171,6 +194,15 @@ public class JatahCutiDanIzinServiceImpl implements JatahCutiDanIzinService {
|
||||
cutiIzinBuilder.dataCutiN(dataCutiN);
|
||||
cutiIzinBuilder.dataCutiN3(dataCutiN3);
|
||||
|
||||
/* Start Set Data Intervensi Cuti Untuk 3 Tahun Kebelakang */
|
||||
cutiIzinBuilder.intervensiCutiN(getDataIntervensiCutiN);
|
||||
cutiIzinBuilder.intervensiCutiN1(getDataIntervensiCutiN1);
|
||||
cutiIzinBuilder.intervensiCutiN2(getDataIntervensiCutiN2);
|
||||
cutiIzinBuilder.intervensiCutiB(getDataIntervensiCutiB);
|
||||
cutiIzinBuilder.intervensiCutiB1(getDataIntervensiCutiB1);
|
||||
cutiIzinBuilder.intervensiCutiB2(getDataIntervensiCutiB2);
|
||||
/* End Pengambilan Data Intervensi Cuti Untuk 3 Tahun Kebelakang */
|
||||
|
||||
// Hitung Absen di tanggal cuti bersama
|
||||
List<String> listTglCutiBersama = mapKalenderToHariLiburDao.getTglCutiBersama(year);
|
||||
int countDataHabsen = 0;
|
||||
@ -277,7 +309,15 @@ public class JatahCutiDanIzinServiceImpl implements JatahCutiDanIzinService {
|
||||
cutiIzinBuilder.isTangguhkanN(false);
|
||||
}
|
||||
if (dataCutiB >= cutiTerpakaiN) {
|
||||
sisaCutiB = dataCutiB - cutiTerpakaiN;
|
||||
// Intervensi Cuti Bersama
|
||||
sisaCutiB = (dataCutiB - cutiTerpakaiN) + getDataIntervensiCutiB;
|
||||
|
||||
if(sisaCutiB < 0){
|
||||
sisaCutiB = 0;
|
||||
}else{
|
||||
sisaCutiB = sisaCutiB;
|
||||
}
|
||||
|
||||
cutiTerpakaiB = cutiTerpakaiN;
|
||||
} else {
|
||||
sisaCutiB = 0;
|
||||
@ -475,9 +515,27 @@ public class JatahCutiDanIzinServiceImpl implements JatahCutiDanIzinService {
|
||||
sisaCutiN1 = dataCutiN1 - jatahCutiTerpakaiN1;
|
||||
}
|
||||
sisaCutiN = dataCutiN - jatahCutiTerpakaiN;
|
||||
|
||||
// put all data sisa cuti
|
||||
// Intervensi Cuti Tahun -2
|
||||
sisaCutiN2 = sisaCutiN2 + getDataIntervensiCutiN2;
|
||||
if(sisaCutiN2 < 0){
|
||||
sisaCutiN2 = 0;
|
||||
}
|
||||
cutiIzinBuilder.sisaCutiN2(sisaCutiN2);
|
||||
|
||||
// Intervensi Cuti Tahun -1
|
||||
sisaCutiN1 = sisaCutiN1 + getDataIntervensiCutiN1;
|
||||
if(sisaCutiN1 < 0){
|
||||
sisaCutiN1 = 0;
|
||||
}
|
||||
cutiIzinBuilder.sisaCutiN1(sisaCutiN1);
|
||||
|
||||
// Intervensi Cuti Tahun Sekarang
|
||||
sisaCutiN = sisaCutiN + getDataIntervensiCutiN;
|
||||
if(sisaCutiN < 0){
|
||||
sisaCutiN = 0;
|
||||
}
|
||||
cutiIzinBuilder.sisaCutiN(sisaCutiN);
|
||||
}
|
||||
if (statusPegawaiId == 24) {
|
||||
|
||||
@ -205,6 +205,28 @@ public class LogbookKinerjaDetailServiceImpl extends BaseVoServiceImpl implement
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<Map<String, Object>> 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<Map<String, Object>> result = logbookKinerjaDetailDao.findWorkingRecordTanpaStatusVerif(idPegawai, idJabatan, start, end);
|
||||
for (Map<String, Object> map : result) {
|
||||
Map<String, Object> 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<Map<String, Object>> findWorkingRecord(Integer idPegawai, Integer idJabatan, Integer idIndikator,
|
||||
Long bulan) throws JpaSystemException {
|
||||
@ -311,24 +333,25 @@ public class LogbookKinerjaDetailServiceImpl extends BaseVoServiceImpl implement
|
||||
logbookKinerjaDetailDao.save(catatanKinerja);
|
||||
}
|
||||
{
|
||||
Optional<LogbookKinerja> byIdLogbook = logbookKinerjaDao
|
||||
.findByNoRec(catatanKinerja.getLogbookKinerjaId());
|
||||
Optional<LogbookKinerja> byIdLogbook = logbookKinerjaDao.findByNoRec(catatanKinerja.getLogbookKinerjaId());
|
||||
byIdLogbook.ifPresent(logbookKinerja -> {
|
||||
if (Arrays.asList(PERCENTAGE)
|
||||
.contains(logbookKinerja.getIndikatorKinerja().getSatuanIndikatorId())) {
|
||||
List<Map<String, Object>> listCatatan = logbookKinerjaDetailDao
|
||||
.findAvgCapaianByKontrak(logbookKinerja.getNoRec(), Arrays.asList(PERCENTAGE));
|
||||
Optional<Map<String, Object>> catatan = listCatatan.stream()
|
||||
.filter(c -> logbookKinerja.getNoRec().equals(c.get("logbookId"))).findFirst();
|
||||
catatan.ifPresent(
|
||||
c -> logbookKinerja.setCapaian(Double.parseDouble(c.get("avgCapaian").toString())));
|
||||
if (Arrays.asList(PERCENTAGE).contains(logbookKinerja.getIndikatorKinerja().getSatuanIndikatorId())) {
|
||||
List<Map<String, Object>> listCatatan = logbookKinerjaDetailDao.findAvgCapaianByKontrak(logbookKinerja.getNoRec(), Arrays.asList(PERCENTAGE));
|
||||
Optional<Map<String, Object>> catatan = listCatatan.stream().filter(c -> logbookKinerja.getNoRec().equals(c.get("logbookId"))).findFirst();
|
||||
if (catatan.isPresent()) {
|
||||
logbookKinerja.setCapaian(Double.parseDouble(catatan.get().get("avgCapaian").toString()));
|
||||
} else {
|
||||
logbookKinerja.setCapaian(0.0);
|
||||
}
|
||||
|
||||
} else {
|
||||
List<Map<String, Object>> listCatatan = logbookKinerjaDetailDao
|
||||
.findSumCapaianByKontrak(logbookKinerja.getNoRec(), Arrays.asList(PERCENTAGE));
|
||||
Optional<Map<String, Object>> catatan = listCatatan.stream()
|
||||
.filter(c -> logbookKinerja.getNoRec().equals(c.get("logbookId"))).findFirst();
|
||||
catatan.ifPresent(
|
||||
c -> logbookKinerja.setCapaian(Double.parseDouble(c.get("sumCapaian").toString())));
|
||||
List<Map<String, Object>> listCatatan = logbookKinerjaDetailDao.findSumCapaianByKontrak(logbookKinerja.getNoRec(), Arrays.asList(PERCENTAGE));
|
||||
Optional<Map<String, Object>> catatan = listCatatan.stream().filter(c -> logbookKinerja.getNoRec().equals(c.get("logbookId"))).findFirst();
|
||||
if (catatan.isPresent()) {
|
||||
logbookKinerja.setCapaian(Double.parseDouble(catatan.get().get("sumCapaian").toString()));
|
||||
} else {
|
||||
logbookKinerja.setCapaian(0.0);
|
||||
}
|
||||
}
|
||||
logbookKinerjaDao.save(logbookKinerja);
|
||||
});
|
||||
|
||||
@ -9,6 +9,8 @@ import com.jasamedika.medifirst2000.service.LogbookRemunService;
|
||||
import com.jasamedika.medifirst2000.service.PelayananPasienService;
|
||||
import com.jasamedika.medifirst2000.service.RemunerasiService;
|
||||
import com.jasamedika.medifirst2000.util.DateUtil;
|
||||
import com.jasamedika.medifirst2000.util.CommonUtil;
|
||||
import com.jasamedika.medifirst2000.util.StringUtil;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
@ -62,19 +64,26 @@ public class LogbookRemunServiceImpl extends BaseVoServiceImpl implements Logboo
|
||||
private MapJabatanProfesiDao mapJabatanProfesiDao;
|
||||
|
||||
@Override
|
||||
public void generateRecap() {
|
||||
public void generateRecap(Integer idPegawai) {
|
||||
LOGGER.info("Start simpan rekapitulasi detail logbook dokter");
|
||||
|
||||
LocalDate localDate = LocalDate.now().minusMonths(1);
|
||||
Date date = Date.from(localDate.atStartOfDay(ZoneId.systemDefault()).toInstant());
|
||||
Date tglAwal = DateUtil.startMonth(date);
|
||||
Date tglAkhir = DateUtil.endMonth(date);
|
||||
Set<Integer> listIdDokter = mapPegawaiJabatanToUnitKerjaDao
|
||||
.findDokterByUnitKerja(splitDataSettingDatafixed("listIdUnitKerjaKsm"));
|
||||
List<Integer> listTerapis = mapJabatanProfesiDao.findIdPegawaiByProfesiIn(Arrays.asList(TERAPI));
|
||||
listIdDokter.addAll(listTerapis);
|
||||
if (!listIdDokter.isEmpty()) {
|
||||
// Delete untuk pembaharuan data
|
||||
Set<Integer> listIdDokter = new HashSet<>();
|
||||
LocalDate localDate = LocalDate.now().minusMonths(1);
|
||||
Date date = Date.from(localDate.atStartOfDay(ZoneId.systemDefault()).toInstant());
|
||||
Date tglAwal = DateUtil.startMonth(date);
|
||||
Date tglAkhir = DateUtil.endMonth(date);
|
||||
|
||||
if (CommonUtil.isNotNullOrEmpty(idPegawai)) {
|
||||
Set<Integer> getListIdDokter = mapPegawaiJabatanToUnitKerjaDao.findDokterByPegawaiId(idPegawai);
|
||||
listIdDokter.addAll(getListIdDokter);
|
||||
}else{
|
||||
Set<Integer> getListIdDokter = mapPegawaiJabatanToUnitKerjaDao.findDokterByUnitKerja(splitDataSettingDatafixed("listIdUnitKerjaKsm"));
|
||||
listIdDokter.addAll(getListIdDokter);
|
||||
List<Integer> listTerapis = mapJabatanProfesiDao.findIdPegawaiByProfesiIn(Arrays.asList(TERAPI));
|
||||
listIdDokter.addAll(listTerapis);
|
||||
}
|
||||
|
||||
if (CommonUtil.isNotNullOrEmpty(listIdDokter)) {
|
||||
deleteByPeriod(listIdDokter, tglAwal, tglAkhir);
|
||||
}
|
||||
saveRekapDetailLogbookDokter(listIdDokter, date);
|
||||
@ -120,60 +129,65 @@ public class LogbookRemunServiceImpl extends BaseVoServiceImpl implements Logboo
|
||||
} else {
|
||||
kinerjaDokter = remunerasiService.logbookRemunTarifDokter(idPegawai, bulan, null);
|
||||
}
|
||||
List<Map<String, Object>> remun = (List<Map<String, Object>>) kinerjaDokter.get("data");
|
||||
for (Map<String, Object> map : remun) {
|
||||
List<String> listNorecPelayananPasienPetugas = new ArrayList<>();
|
||||
{
|
||||
List<Map<String, Object>> detail = (List<Map<String, Object>>) map.get("detail");
|
||||
for (Map<String, Object> d : detail)
|
||||
listNorecPelayananPasienPetugas.addAll((List<String>) d.get("norecs"));
|
||||
}
|
||||
LogbookDokter logbookDokter = new LogbookDokter();
|
||||
logbookDokter.setKdProfile((short) 0);
|
||||
logbookDokter.setStatusEnabled(true);
|
||||
logbookDokter.setJenisLogbook("JKN");
|
||||
logbookDokter.setKelompokPasien(
|
||||
getKelompokPasien(Integer.parseInt(map.get("idKelompokPasien").toString())));
|
||||
logbookDokter.setKeterangan(map.get("keterangan").toString());
|
||||
logbookDokter.setPersenJasa(
|
||||
Double.parseDouble(map.get("persenJasa").toString().replace("%", "")));
|
||||
logbookDokter.setProduk(map.get("namaProduk").toString());
|
||||
logbookDokter.setProdukId(Integer.parseInt(map.get("idProduk").toString()));
|
||||
double hargaJasa = Double.parseDouble(map.get("hargaJasa").toString());
|
||||
logbookDokter.setRemunTindakan(BigDecimal.valueOf(hargaJasa));
|
||||
logbookDokter
|
||||
.setTarif(BigDecimal.valueOf(Double.parseDouble(map.get("hargaJual").toString())));
|
||||
int jumlah = Double.valueOf(map.get("jumlah").toString()).intValue();
|
||||
logbookDokter.setTotalRemunTindakan(BigDecimal.valueOf(hargaJasa * jumlah));
|
||||
logbookDokter.setTotalTindakan(jumlah);
|
||||
logbookDokter.setLogbookRemun(savedRemun);
|
||||
LogbookDokter savedLogbookDokter = logbookDokterDao.save(logbookDokter);
|
||||
{
|
||||
List<Map<String, Object>> detailLogbook = pelayananPasienService
|
||||
.detailLogbookTarifDokter(idPegawai, listNorecPelayananPasienPetugas);
|
||||
List<DetailLogbookDokter> listDetailLogbookDokter = new ArrayList<>();
|
||||
for (Map<String, Object> detail : detailLogbook) {
|
||||
DetailLogbookDokter detailLogbookDokter = new DetailLogbookDokter();
|
||||
detailLogbookDokter.setKdProfile((short) 0);
|
||||
detailLogbookDokter.setStatusEnabled(true);
|
||||
detailLogbookDokter.setDiskon(
|
||||
BigDecimal.valueOf(Double.parseDouble(detail.get("diskon").toString())));
|
||||
detailLogbookDokter.setJumlahTindakan(
|
||||
Double.valueOf(detail.get("jumlah").toString()).intValue());
|
||||
detailLogbookDokter.setJenisPelaksana(detail.get("jenisPelaksana").toString());
|
||||
detailLogbookDokter.setKelas(detail.get("namaKelas").toString());
|
||||
detailLogbookDokter.setNamaPasien(detail.get("namaPasien").toString());
|
||||
detailLogbookDokter.setNoRegistrasi(detail.get("noRegistrasi").toString());
|
||||
detailLogbookDokter.setNoRekamMedis(detail.get("noCm").toString());
|
||||
detailLogbookDokter.setRuangan(detail.get("namaRuangan").toString());
|
||||
detailLogbookDokter
|
||||
.setTanggalPelayanan(DateUtil.toDate(detail.get("tanggal").toString()));
|
||||
detailLogbookDokter.setTarif(
|
||||
BigDecimal.valueOf(Double.parseDouble(detail.get("hargaJual").toString())));
|
||||
detailLogbookDokter.setLogbookDokter(savedLogbookDokter);
|
||||
listDetailLogbookDokter.add(detailLogbookDokter);
|
||||
|
||||
if(!kinerjaDokter.isEmpty()){
|
||||
List<Map<String, Object>> remun = (List<Map<String, Object>>) kinerjaDokter.get("data");
|
||||
if(!remun.isEmpty()){
|
||||
for (Map<String, Object> map : remun) {
|
||||
List<String> listNorecPelayananPasienPetugas = new ArrayList<>();
|
||||
{
|
||||
List<Map<String, Object>> detail = (List<Map<String, Object>>) map.get("detail");
|
||||
for (Map<String, Object> d : detail)
|
||||
listNorecPelayananPasienPetugas.addAll((List<String>) d.get("norecs"));
|
||||
}
|
||||
LogbookDokter logbookDokter = new LogbookDokter();
|
||||
logbookDokter.setKdProfile((short) 0);
|
||||
logbookDokter.setStatusEnabled(true);
|
||||
logbookDokter.setJenisLogbook("JKN");
|
||||
logbookDokter.setKelompokPasien(
|
||||
getKelompokPasien(Integer.parseInt(map.get("idKelompokPasien").toString())));
|
||||
logbookDokter.setKeterangan(map.get("keterangan").toString());
|
||||
logbookDokter.setPersenJasa(
|
||||
Double.parseDouble(map.get("persenJasa").toString().replace("%", "")));
|
||||
logbookDokter.setProduk(map.get("namaProduk").toString());
|
||||
logbookDokter.setProdukId(Integer.parseInt(map.get("idProduk").toString()));
|
||||
double hargaJasa = Double.parseDouble(map.get("hargaJasa").toString());
|
||||
logbookDokter.setRemunTindakan(BigDecimal.valueOf(hargaJasa));
|
||||
logbookDokter
|
||||
.setTarif(BigDecimal.valueOf(Double.parseDouble(map.get("hargaJual").toString())));
|
||||
int jumlah = Double.valueOf(map.get("jumlah").toString()).intValue();
|
||||
logbookDokter.setTotalRemunTindakan(BigDecimal.valueOf(hargaJasa * jumlah));
|
||||
logbookDokter.setTotalTindakan(jumlah);
|
||||
logbookDokter.setLogbookRemun(savedRemun);
|
||||
LogbookDokter savedLogbookDokter = logbookDokterDao.save(logbookDokter);
|
||||
{
|
||||
List<Map<String, Object>> detailLogbook = pelayananPasienService
|
||||
.detailLogbookTarifDokter(idPegawai, listNorecPelayananPasienPetugas);
|
||||
List<DetailLogbookDokter> listDetailLogbookDokter = new ArrayList<>();
|
||||
for (Map<String, Object> detail : detailLogbook) {
|
||||
DetailLogbookDokter detailLogbookDokter = new DetailLogbookDokter();
|
||||
detailLogbookDokter.setKdProfile((short) 0);
|
||||
detailLogbookDokter.setStatusEnabled(true);
|
||||
detailLogbookDokter.setDiskon(
|
||||
BigDecimal.valueOf(Double.parseDouble(detail.get("diskon").toString())));
|
||||
detailLogbookDokter.setJumlahTindakan(
|
||||
Double.valueOf(detail.get("jumlah").toString()).intValue());
|
||||
detailLogbookDokter.setJenisPelaksana(detail.get("jenisPelaksana").toString());
|
||||
detailLogbookDokter.setKelas(detail.get("namaKelas").toString());
|
||||
detailLogbookDokter.setNamaPasien(detail.get("namaPasien").toString());
|
||||
detailLogbookDokter.setNoRegistrasi(detail.get("noRegistrasi").toString());
|
||||
detailLogbookDokter.setNoRekamMedis(detail.get("noCm").toString());
|
||||
detailLogbookDokter.setRuangan(detail.get("namaRuangan").toString());
|
||||
detailLogbookDokter
|
||||
.setTanggalPelayanan(DateUtil.toDate(detail.get("tanggal").toString()));
|
||||
detailLogbookDokter.setTarif(
|
||||
BigDecimal.valueOf(Double.parseDouble(detail.get("hargaJual").toString())));
|
||||
detailLogbookDokter.setLogbookDokter(savedLogbookDokter);
|
||||
listDetailLogbookDokter.add(detailLogbookDokter);
|
||||
}
|
||||
detailLogbookDokterDao.save(listDetailLogbookDokter);
|
||||
}
|
||||
}
|
||||
detailLogbookDokterDao.save(listDetailLogbookDokter);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -184,60 +198,63 @@ public class LogbookRemunServiceImpl extends BaseVoServiceImpl implements Logboo
|
||||
} else {
|
||||
ffs = remunerasiService.logbookFfsTarifDokter(idPegawai, bulan, null);
|
||||
}
|
||||
for (Map<String, Object> fee : ffs) {
|
||||
List<String> listNorecPelayananPasienPetugas = new ArrayList<>();
|
||||
{
|
||||
List<Map<String, Object>> detail = (List<Map<String, Object>>) fee.get("detail");
|
||||
for (Map<String, Object> d : detail)
|
||||
listNorecPelayananPasienPetugas.addAll((List<String>) d.get("norecs"));
|
||||
}
|
||||
LogbookDokter logbookDokter = new LogbookDokter();
|
||||
logbookDokter.setKdProfile((short) 0);
|
||||
logbookDokter.setStatusEnabled(true);
|
||||
logbookDokter.setJenisLogbook("DALAM_JAM_KERJA");
|
||||
logbookDokter.setJenisRuangan(fee.get("jenisRuangan").toString().toUpperCase());
|
||||
logbookDokter.setKelompokPasien(
|
||||
getKelompokPasien(Integer.parseInt(fee.get("idKelompokPasien").toString())));
|
||||
logbookDokter.setKeterangan(fee.get("keterangan").toString());
|
||||
logbookDokter.setPersenJasa(
|
||||
Double.parseDouble(fee.get("persenJasa").toString().replace("%", "")));
|
||||
logbookDokter.setProduk(fee.get("namaProduk").toString());
|
||||
logbookDokter.setProdukId(Integer.parseInt(fee.get("idProduk").toString()));
|
||||
double hargaJasa = Double.parseDouble(fee.get("hargaJasa").toString());
|
||||
logbookDokter.setRemunTindakan(BigDecimal.valueOf(hargaJasa));
|
||||
logbookDokter
|
||||
.setTarif(BigDecimal.valueOf(Double.parseDouble(fee.get("hargaJual").toString())));
|
||||
int jumlah = Double.valueOf(fee.get("jumlah").toString()).intValue();
|
||||
logbookDokter.setTotalRemunTindakan(BigDecimal.valueOf(hargaJasa * jumlah));
|
||||
logbookDokter.setTotalTindakan(jumlah);
|
||||
logbookDokter.setLogbookRemun(savedRemun);
|
||||
LogbookDokter savedLogbookDokter = logbookDokterDao.save(logbookDokter);
|
||||
{
|
||||
List<Map<String, Object>> detailLogbook = pelayananPasienService
|
||||
.detailLogbookTarifDokter(idPegawai, listNorecPelayananPasienPetugas);
|
||||
List<DetailLogbookDokter> listDetailLogbookDokter = new ArrayList<>();
|
||||
for (Map<String, Object> detail : detailLogbook) {
|
||||
DetailLogbookDokter detailLogbookDokter = new DetailLogbookDokter();
|
||||
detailLogbookDokter.setKdProfile((short) 0);
|
||||
detailLogbookDokter.setStatusEnabled(true);
|
||||
detailLogbookDokter.setDiskon(
|
||||
BigDecimal.valueOf(Double.parseDouble(detail.get("diskon").toString())));
|
||||
detailLogbookDokter.setJumlahTindakan(
|
||||
Double.valueOf(detail.get("jumlah").toString()).intValue());
|
||||
detailLogbookDokter.setJenisPelaksana(detail.get("jenisPelaksana").toString());
|
||||
detailLogbookDokter.setKelas(detail.get("namaKelas").toString());
|
||||
detailLogbookDokter.setNamaPasien(detail.get("namaPasien").toString());
|
||||
detailLogbookDokter.setNoRegistrasi(detail.get("noRegistrasi").toString());
|
||||
detailLogbookDokter.setNoRekamMedis(detail.get("noCm").toString());
|
||||
detailLogbookDokter.setRuangan(detail.get("namaRuangan").toString());
|
||||
detailLogbookDokter
|
||||
.setTanggalPelayanan(DateUtil.toDate(detail.get("tanggal").toString()));
|
||||
detailLogbookDokter.setTarif(
|
||||
BigDecimal.valueOf(Double.parseDouble(detail.get("hargaJual").toString())));
|
||||
detailLogbookDokter.setLogbookDokter(savedLogbookDokter);
|
||||
listDetailLogbookDokter.add(detailLogbookDokter);
|
||||
|
||||
if(!ffs.isEmpty()){
|
||||
for (Map<String, Object> fee : ffs) {
|
||||
List<String> listNorecPelayananPasienPetugas = new ArrayList<>();
|
||||
{
|
||||
List<Map<String, Object>> detail = (List<Map<String, Object>>) fee.get("detail");
|
||||
for (Map<String, Object> d : detail)
|
||||
listNorecPelayananPasienPetugas.addAll((List<String>) d.get("norecs"));
|
||||
}
|
||||
LogbookDokter logbookDokter = new LogbookDokter();
|
||||
logbookDokter.setKdProfile((short) 0);
|
||||
logbookDokter.setStatusEnabled(true);
|
||||
logbookDokter.setJenisLogbook("DALAM_JAM_KERJA");
|
||||
logbookDokter.setJenisRuangan(fee.get("jenisRuangan").toString().toUpperCase());
|
||||
logbookDokter.setKelompokPasien(
|
||||
getKelompokPasien(Integer.parseInt(fee.get("idKelompokPasien").toString())));
|
||||
logbookDokter.setKeterangan(fee.get("keterangan").toString());
|
||||
logbookDokter.setPersenJasa(
|
||||
Double.parseDouble(fee.get("persenJasa").toString().replace("%", "")));
|
||||
logbookDokter.setProduk(fee.get("namaProduk").toString());
|
||||
logbookDokter.setProdukId(Integer.parseInt(fee.get("idProduk").toString()));
|
||||
double hargaJasa = Double.parseDouble(fee.get("hargaJasa").toString());
|
||||
logbookDokter.setRemunTindakan(BigDecimal.valueOf(hargaJasa));
|
||||
logbookDokter
|
||||
.setTarif(BigDecimal.valueOf(Double.parseDouble(fee.get("hargaJual").toString())));
|
||||
int jumlah = Double.valueOf(fee.get("jumlah").toString()).intValue();
|
||||
logbookDokter.setTotalRemunTindakan(BigDecimal.valueOf(hargaJasa * jumlah));
|
||||
logbookDokter.setTotalTindakan(jumlah);
|
||||
logbookDokter.setLogbookRemun(savedRemun);
|
||||
LogbookDokter savedLogbookDokter = logbookDokterDao.save(logbookDokter);
|
||||
{
|
||||
List<Map<String, Object>> detailLogbook = pelayananPasienService
|
||||
.detailLogbookTarifDokter(idPegawai, listNorecPelayananPasienPetugas);
|
||||
List<DetailLogbookDokter> listDetailLogbookDokter = new ArrayList<>();
|
||||
for (Map<String, Object> detail : detailLogbook) {
|
||||
DetailLogbookDokter detailLogbookDokter = new DetailLogbookDokter();
|
||||
detailLogbookDokter.setKdProfile((short) 0);
|
||||
detailLogbookDokter.setStatusEnabled(true);
|
||||
detailLogbookDokter.setDiskon(
|
||||
BigDecimal.valueOf(Double.parseDouble(detail.get("diskon").toString())));
|
||||
detailLogbookDokter.setJumlahTindakan(
|
||||
Double.valueOf(detail.get("jumlah").toString()).intValue());
|
||||
detailLogbookDokter.setJenisPelaksana(detail.get("jenisPelaksana").toString());
|
||||
detailLogbookDokter.setKelas(detail.get("namaKelas").toString());
|
||||
detailLogbookDokter.setNamaPasien(detail.get("namaPasien").toString());
|
||||
detailLogbookDokter.setNoRegistrasi(detail.get("noRegistrasi").toString());
|
||||
detailLogbookDokter.setNoRekamMedis(detail.get("noCm").toString());
|
||||
detailLogbookDokter.setRuangan(detail.get("namaRuangan").toString());
|
||||
detailLogbookDokter
|
||||
.setTanggalPelayanan(DateUtil.toDate(detail.get("tanggal").toString()));
|
||||
detailLogbookDokter.setTarif(
|
||||
BigDecimal.valueOf(Double.parseDouble(detail.get("hargaJual").toString())));
|
||||
detailLogbookDokter.setLogbookDokter(savedLogbookDokter);
|
||||
listDetailLogbookDokter.add(detailLogbookDokter);
|
||||
}
|
||||
detailLogbookDokterDao.save(listDetailLogbookDokter);
|
||||
}
|
||||
detailLogbookDokterDao.save(listDetailLogbookDokter);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -248,60 +265,63 @@ public class LogbookRemunServiceImpl extends BaseVoServiceImpl implements Logboo
|
||||
} else {
|
||||
ffs = remunerasiService.logbookFfsLuarTarifDokter(idPegawai, bulan, null);
|
||||
}
|
||||
for (Map<String, Object> fee : ffs) {
|
||||
List<String> listNorecPelayananPasienPetugas = new ArrayList<>();
|
||||
{
|
||||
List<Map<String, Object>> detail = (List<Map<String, Object>>) fee.get("detail");
|
||||
for (Map<String, Object> d : detail)
|
||||
listNorecPelayananPasienPetugas.addAll((List<String>) d.get("norecs"));
|
||||
}
|
||||
LogbookDokter logbookDokter = new LogbookDokter();
|
||||
logbookDokter.setKdProfile((short) 0);
|
||||
logbookDokter.setStatusEnabled(true);
|
||||
logbookDokter.setJenisLogbook("LUAR_JAM_KERJA");
|
||||
logbookDokter.setJenisRuangan(fee.get("jenisRuangan").toString().toUpperCase());
|
||||
logbookDokter.setKelompokPasien(
|
||||
getKelompokPasien(Integer.parseInt(fee.get("idKelompokPasien").toString())));
|
||||
logbookDokter.setKeterangan(fee.get("keterangan").toString());
|
||||
logbookDokter.setPersenJasa(
|
||||
Double.parseDouble(fee.get("persenJasa").toString().replace("%", "")));
|
||||
logbookDokter.setProduk(fee.get("namaProduk").toString());
|
||||
logbookDokter.setProdukId(Integer.parseInt(fee.get("idProduk").toString()));
|
||||
double hargaJasa = Double.parseDouble(fee.get("hargaJasa").toString());
|
||||
logbookDokter.setRemunTindakan(BigDecimal.valueOf(hargaJasa));
|
||||
logbookDokter
|
||||
.setTarif(BigDecimal.valueOf(Double.parseDouble(fee.get("hargaJual").toString())));
|
||||
int jumlah = Double.valueOf(fee.get("jumlah").toString()).intValue();
|
||||
logbookDokter.setTotalRemunTindakan(BigDecimal.valueOf(hargaJasa * jumlah));
|
||||
logbookDokter.setTotalTindakan(jumlah);
|
||||
logbookDokter.setLogbookRemun(savedRemun);
|
||||
LogbookDokter savedLogbookDokter = logbookDokterDao.save(logbookDokter);
|
||||
{
|
||||
List<Map<String, Object>> detailLogbook = pelayananPasienService
|
||||
.detailLogbookTarifDokter(idPegawai, listNorecPelayananPasienPetugas);
|
||||
List<DetailLogbookDokter> listDetailLogbookDokter = new ArrayList<>();
|
||||
for (Map<String, Object> detail : detailLogbook) {
|
||||
DetailLogbookDokter detailLogbookDokter = new DetailLogbookDokter();
|
||||
detailLogbookDokter.setKdProfile((short) 0);
|
||||
detailLogbookDokter.setStatusEnabled(true);
|
||||
detailLogbookDokter.setDiskon(
|
||||
BigDecimal.valueOf(Double.parseDouble(detail.get("diskon").toString())));
|
||||
detailLogbookDokter.setJumlahTindakan(
|
||||
Double.valueOf(detail.get("jumlah").toString()).intValue());
|
||||
detailLogbookDokter.setJenisPelaksana(detail.get("jenisPelaksana").toString());
|
||||
detailLogbookDokter.setKelas(detail.get("namaKelas").toString());
|
||||
detailLogbookDokter.setNamaPasien(detail.get("namaPasien").toString());
|
||||
detailLogbookDokter.setNoRegistrasi(detail.get("noRegistrasi").toString());
|
||||
detailLogbookDokter.setNoRekamMedis(detail.get("noCm").toString());
|
||||
detailLogbookDokter.setRuangan(detail.get("namaRuangan").toString());
|
||||
detailLogbookDokter
|
||||
.setTanggalPelayanan(DateUtil.toDate(detail.get("tanggal").toString()));
|
||||
detailLogbookDokter.setTarif(
|
||||
BigDecimal.valueOf(Double.parseDouble(detail.get("hargaJual").toString())));
|
||||
detailLogbookDokter.setLogbookDokter(savedLogbookDokter);
|
||||
listDetailLogbookDokter.add(detailLogbookDokter);
|
||||
|
||||
if(!ffs.isEmpty()){
|
||||
for (Map<String, Object> fee : ffs) {
|
||||
List<String> listNorecPelayananPasienPetugas = new ArrayList<>();
|
||||
{
|
||||
List<Map<String, Object>> detail = (List<Map<String, Object>>) fee.get("detail");
|
||||
for (Map<String, Object> d : detail)
|
||||
listNorecPelayananPasienPetugas.addAll((List<String>) d.get("norecs"));
|
||||
}
|
||||
LogbookDokter logbookDokter = new LogbookDokter();
|
||||
logbookDokter.setKdProfile((short) 0);
|
||||
logbookDokter.setStatusEnabled(true);
|
||||
logbookDokter.setJenisLogbook("LUAR_JAM_KERJA");
|
||||
logbookDokter.setJenisRuangan(fee.get("jenisRuangan").toString().toUpperCase());
|
||||
logbookDokter.setKelompokPasien(
|
||||
getKelompokPasien(Integer.parseInt(fee.get("idKelompokPasien").toString())));
|
||||
logbookDokter.setKeterangan(fee.get("keterangan").toString());
|
||||
logbookDokter.setPersenJasa(
|
||||
Double.parseDouble(fee.get("persenJasa").toString().replace("%", "")));
|
||||
logbookDokter.setProduk(fee.get("namaProduk").toString());
|
||||
logbookDokter.setProdukId(Integer.parseInt(fee.get("idProduk").toString()));
|
||||
double hargaJasa = Double.parseDouble(fee.get("hargaJasa").toString());
|
||||
logbookDokter.setRemunTindakan(BigDecimal.valueOf(hargaJasa));
|
||||
logbookDokter
|
||||
.setTarif(BigDecimal.valueOf(Double.parseDouble(fee.get("hargaJual").toString())));
|
||||
int jumlah = Double.valueOf(fee.get("jumlah").toString()).intValue();
|
||||
logbookDokter.setTotalRemunTindakan(BigDecimal.valueOf(hargaJasa * jumlah));
|
||||
logbookDokter.setTotalTindakan(jumlah);
|
||||
logbookDokter.setLogbookRemun(savedRemun);
|
||||
LogbookDokter savedLogbookDokter = logbookDokterDao.save(logbookDokter);
|
||||
{
|
||||
List<Map<String, Object>> detailLogbook = pelayananPasienService
|
||||
.detailLogbookTarifDokter(idPegawai, listNorecPelayananPasienPetugas);
|
||||
List<DetailLogbookDokter> listDetailLogbookDokter = new ArrayList<>();
|
||||
for (Map<String, Object> detail : detailLogbook) {
|
||||
DetailLogbookDokter detailLogbookDokter = new DetailLogbookDokter();
|
||||
detailLogbookDokter.setKdProfile((short) 0);
|
||||
detailLogbookDokter.setStatusEnabled(true);
|
||||
detailLogbookDokter.setDiskon(
|
||||
BigDecimal.valueOf(Double.parseDouble(detail.get("diskon").toString())));
|
||||
detailLogbookDokter.setJumlahTindakan(
|
||||
Double.valueOf(detail.get("jumlah").toString()).intValue());
|
||||
detailLogbookDokter.setJenisPelaksana(detail.get("jenisPelaksana").toString());
|
||||
detailLogbookDokter.setKelas(detail.get("namaKelas").toString());
|
||||
detailLogbookDokter.setNamaPasien(detail.get("namaPasien").toString());
|
||||
detailLogbookDokter.setNoRegistrasi(detail.get("noRegistrasi").toString());
|
||||
detailLogbookDokter.setNoRekamMedis(detail.get("noCm").toString());
|
||||
detailLogbookDokter.setRuangan(detail.get("namaRuangan").toString());
|
||||
detailLogbookDokter
|
||||
.setTanggalPelayanan(DateUtil.toDate(detail.get("tanggal").toString()));
|
||||
detailLogbookDokter.setTarif(
|
||||
BigDecimal.valueOf(Double.parseDouble(detail.get("hargaJual").toString())));
|
||||
detailLogbookDokter.setLogbookDokter(savedLogbookDokter);
|
||||
listDetailLogbookDokter.add(detailLogbookDokter);
|
||||
}
|
||||
detailLogbookDokterDao.save(listDetailLogbookDokter);
|
||||
}
|
||||
detailLogbookDokterDao.save(listDetailLogbookDokter);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -312,58 +332,61 @@ public class LogbookRemunServiceImpl extends BaseVoServiceImpl implements Logboo
|
||||
} else {
|
||||
fixedPay = remunerasiService.logbookFixedPayDokter(idPegawai, bulan, null);
|
||||
}
|
||||
for (Map<String, Object> pay : fixedPay) {
|
||||
List<String> listNorecPelayananPasienPetugas = new ArrayList<>();
|
||||
{
|
||||
List<Map<String, Object>> detail = (List<Map<String, Object>>) pay.get("detail");
|
||||
for (Map<String, Object> d : detail)
|
||||
listNorecPelayananPasienPetugas.addAll((List<String>) d.get("norecs"));
|
||||
}
|
||||
LogbookDokter logbookDokter = new LogbookDokter();
|
||||
logbookDokter.setKdProfile((short) 0);
|
||||
logbookDokter.setStatusEnabled(true);
|
||||
logbookDokter.setJenisLogbook("FIXED_PAY");
|
||||
logbookDokter.setJenisRuangan(pay.get("jenisRuangan").toString().toUpperCase());
|
||||
logbookDokter.setKelompokPasien(
|
||||
getKelompokPasien(Integer.parseInt(pay.get("idKelompokPasien").toString())));
|
||||
logbookDokter.setKeterangan(pay.get("keterangan").toString());
|
||||
logbookDokter.setProduk(pay.get("namaProduk").toString());
|
||||
logbookDokter.setProdukId(Integer.parseInt(pay.get("idProduk").toString()));
|
||||
double hargaJasa = Double.parseDouble(pay.get("hargaJasa").toString());
|
||||
logbookDokter.setRemunTindakan(BigDecimal.valueOf(hargaJasa));
|
||||
logbookDokter
|
||||
.setTarif(BigDecimal.valueOf(Double.parseDouble(pay.get("hargaJual").toString())));
|
||||
int jumlah = Double.valueOf(pay.get("jumlah").toString()).intValue();
|
||||
logbookDokter.setTotalRemunTindakan(BigDecimal.valueOf(hargaJasa * jumlah));
|
||||
logbookDokter.setTotalTindakan(jumlah);
|
||||
logbookDokter.setLogbookRemun(savedRemun);
|
||||
LogbookDokter savedLogbookDokter = logbookDokterDao.save(logbookDokter);
|
||||
{
|
||||
List<Map<String, Object>> detailLogbook = pelayananPasienService
|
||||
.detailLogbookTarifDokter(idPegawai, listNorecPelayananPasienPetugas);
|
||||
List<DetailLogbookDokter> listDetailLogbookDokter = new ArrayList<>();
|
||||
for (Map<String, Object> detail : detailLogbook) {
|
||||
DetailLogbookDokter detailLogbookDokter = new DetailLogbookDokter();
|
||||
detailLogbookDokter.setKdProfile((short) 0);
|
||||
detailLogbookDokter.setStatusEnabled(true);
|
||||
detailLogbookDokter.setDiskon(
|
||||
BigDecimal.valueOf(Double.parseDouble(detail.get("diskon").toString())));
|
||||
detailLogbookDokter.setJumlahTindakan(
|
||||
Double.valueOf(detail.get("jumlah").toString()).intValue());
|
||||
detailLogbookDokter.setJenisPelaksana(detail.get("jenisPelaksana").toString());
|
||||
detailLogbookDokter.setKelas(detail.get("namaKelas").toString());
|
||||
detailLogbookDokter.setNamaPasien(detail.get("namaPasien").toString());
|
||||
detailLogbookDokter.setNoRegistrasi(detail.get("noRegistrasi").toString());
|
||||
detailLogbookDokter.setNoRekamMedis(detail.get("noCm").toString());
|
||||
detailLogbookDokter.setRuangan(detail.get("namaRuangan").toString());
|
||||
detailLogbookDokter
|
||||
.setTanggalPelayanan(DateUtil.toDate(detail.get("tanggal").toString()));
|
||||
detailLogbookDokter.setTarif(
|
||||
BigDecimal.valueOf(Double.parseDouble(detail.get("hargaJual").toString())));
|
||||
detailLogbookDokter.setLogbookDokter(savedLogbookDokter);
|
||||
listDetailLogbookDokter.add(detailLogbookDokter);
|
||||
|
||||
if(!fixedPay.isEmpty()){
|
||||
for (Map<String, Object> pay : fixedPay) {
|
||||
List<String> listNorecPelayananPasienPetugas = new ArrayList<>();
|
||||
{
|
||||
List<Map<String, Object>> detail = (List<Map<String, Object>>) pay.get("detail");
|
||||
for (Map<String, Object> d : detail)
|
||||
listNorecPelayananPasienPetugas.addAll((List<String>) d.get("norecs"));
|
||||
}
|
||||
LogbookDokter logbookDokter = new LogbookDokter();
|
||||
logbookDokter.setKdProfile((short) 0);
|
||||
logbookDokter.setStatusEnabled(true);
|
||||
logbookDokter.setJenisLogbook("FIXED_PAY");
|
||||
logbookDokter.setJenisRuangan(pay.get("jenisRuangan").toString().toUpperCase());
|
||||
logbookDokter.setKelompokPasien(
|
||||
getKelompokPasien(Integer.parseInt(pay.get("idKelompokPasien").toString())));
|
||||
logbookDokter.setKeterangan(pay.get("keterangan").toString());
|
||||
logbookDokter.setProduk(pay.get("namaProduk").toString());
|
||||
logbookDokter.setProdukId(Integer.parseInt(pay.get("idProduk").toString()));
|
||||
double hargaJasa = Double.parseDouble(pay.get("hargaJasa").toString());
|
||||
logbookDokter.setRemunTindakan(BigDecimal.valueOf(hargaJasa));
|
||||
logbookDokter
|
||||
.setTarif(BigDecimal.valueOf(Double.parseDouble(pay.get("hargaJual").toString())));
|
||||
int jumlah = Double.valueOf(pay.get("jumlah").toString()).intValue();
|
||||
logbookDokter.setTotalRemunTindakan(BigDecimal.valueOf(hargaJasa * jumlah));
|
||||
logbookDokter.setTotalTindakan(jumlah);
|
||||
logbookDokter.setLogbookRemun(savedRemun);
|
||||
LogbookDokter savedLogbookDokter = logbookDokterDao.save(logbookDokter);
|
||||
{
|
||||
List<Map<String, Object>> detailLogbook = pelayananPasienService
|
||||
.detailLogbookTarifDokter(idPegawai, listNorecPelayananPasienPetugas);
|
||||
List<DetailLogbookDokter> listDetailLogbookDokter = new ArrayList<>();
|
||||
for (Map<String, Object> detail : detailLogbook) {
|
||||
DetailLogbookDokter detailLogbookDokter = new DetailLogbookDokter();
|
||||
detailLogbookDokter.setKdProfile((short) 0);
|
||||
detailLogbookDokter.setStatusEnabled(true);
|
||||
detailLogbookDokter.setDiskon(
|
||||
BigDecimal.valueOf(Double.parseDouble(detail.get("diskon").toString())));
|
||||
detailLogbookDokter.setJumlahTindakan(
|
||||
Double.valueOf(detail.get("jumlah").toString()).intValue());
|
||||
detailLogbookDokter.setJenisPelaksana(detail.get("jenisPelaksana").toString());
|
||||
detailLogbookDokter.setKelas(detail.get("namaKelas").toString());
|
||||
detailLogbookDokter.setNamaPasien(detail.get("namaPasien").toString());
|
||||
detailLogbookDokter.setNoRegistrasi(detail.get("noRegistrasi").toString());
|
||||
detailLogbookDokter.setNoRekamMedis(detail.get("noCm").toString());
|
||||
detailLogbookDokter.setRuangan(detail.get("namaRuangan").toString());
|
||||
detailLogbookDokter
|
||||
.setTanggalPelayanan(DateUtil.toDate(detail.get("tanggal").toString()));
|
||||
detailLogbookDokter.setTarif(
|
||||
BigDecimal.valueOf(Double.parseDouble(detail.get("hargaJual").toString())));
|
||||
detailLogbookDokter.setLogbookDokter(savedLogbookDokter);
|
||||
listDetailLogbookDokter.add(detailLogbookDokter);
|
||||
}
|
||||
detailLogbookDokterDao.save(listDetailLogbookDokter);
|
||||
}
|
||||
detailLogbookDokterDao.save(listDetailLogbookDokter);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -374,58 +397,61 @@ public class LogbookRemunServiceImpl extends BaseVoServiceImpl implements Logboo
|
||||
} else {
|
||||
klaimMpp = remunerasiService.logbookKlaimMppDokter(idPegawai, bulan);
|
||||
}
|
||||
for (Map<String, Object> mpp : klaimMpp) {
|
||||
List<String> listNorecPelayananPasienPetugas = new ArrayList<>();
|
||||
{
|
||||
List<Map<String, Object>> detail = (List<Map<String, Object>>) mpp.get("detail");
|
||||
for (Map<String, Object> d : detail)
|
||||
listNorecPelayananPasienPetugas.addAll((List<String>) d.get("norecs"));
|
||||
}
|
||||
LogbookDokter logbookDokter = new LogbookDokter();
|
||||
logbookDokter.setKdProfile((short) 0);
|
||||
logbookDokter.setStatusEnabled(true);
|
||||
logbookDokter.setJenisLogbook("KLAIM_MPP");
|
||||
logbookDokter.setJenisRuangan(mpp.get("jenisRuangan").toString().toUpperCase());
|
||||
logbookDokter.setKelompokPasien(
|
||||
getKelompokPasien(Integer.parseInt(mpp.get("idKelompokPasien").toString())));
|
||||
logbookDokter.setKeterangan(mpp.get("keterangan").toString());
|
||||
logbookDokter.setProduk(mpp.get("namaProduk").toString());
|
||||
logbookDokter.setProdukId(Integer.parseInt(mpp.get("idProduk").toString()));
|
||||
double hargaJasa = Double.parseDouble(mpp.get("hargaJasa").toString());
|
||||
logbookDokter.setRemunTindakan(BigDecimal.valueOf(hargaJasa));
|
||||
logbookDokter
|
||||
.setTarif(BigDecimal.valueOf(Double.parseDouble(mpp.get("hargaJual").toString())));
|
||||
int jumlah = Double.valueOf(mpp.get("jumlah").toString()).intValue();
|
||||
logbookDokter.setTotalRemunTindakan(BigDecimal.valueOf(hargaJasa * jumlah));
|
||||
logbookDokter.setTotalTindakan(jumlah);
|
||||
logbookDokter.setLogbookRemun(savedRemun);
|
||||
LogbookDokter savedLogbookDokter = logbookDokterDao.save(logbookDokter);
|
||||
{
|
||||
List<Map<String, Object>> detailLogbook = pelayananPasienService
|
||||
.detailLogbookTarifDokter(idPegawai, listNorecPelayananPasienPetugas);
|
||||
List<DetailLogbookDokter> listDetailLogbookDokter = new ArrayList<>();
|
||||
for (Map<String, Object> detail : detailLogbook) {
|
||||
DetailLogbookDokter detailLogbookDokter = new DetailLogbookDokter();
|
||||
detailLogbookDokter.setKdProfile((short) 0);
|
||||
detailLogbookDokter.setStatusEnabled(true);
|
||||
detailLogbookDokter.setDiskon(
|
||||
BigDecimal.valueOf(Double.parseDouble(detail.get("diskon").toString())));
|
||||
detailLogbookDokter.setJumlahTindakan(
|
||||
Double.valueOf(detail.get("jumlah").toString()).intValue());
|
||||
detailLogbookDokter.setJenisPelaksana(detail.get("jenisPelaksana").toString());
|
||||
detailLogbookDokter.setKelas(detail.get("namaKelas").toString());
|
||||
detailLogbookDokter.setNamaPasien(detail.get("namaPasien").toString());
|
||||
detailLogbookDokter.setNoRegistrasi(detail.get("noRegistrasi").toString());
|
||||
detailLogbookDokter.setNoRekamMedis(detail.get("noCm").toString());
|
||||
detailLogbookDokter.setRuangan(detail.get("namaRuangan").toString());
|
||||
detailLogbookDokter
|
||||
.setTanggalPelayanan(DateUtil.toDate(detail.get("tanggal").toString()));
|
||||
detailLogbookDokter.setTarif(
|
||||
BigDecimal.valueOf(Double.parseDouble(detail.get("hargaJual").toString())));
|
||||
detailLogbookDokter.setLogbookDokter(savedLogbookDokter);
|
||||
listDetailLogbookDokter.add(detailLogbookDokter);
|
||||
|
||||
if(!klaimMpp.isEmpty()){
|
||||
for (Map<String, Object> mpp : klaimMpp) {
|
||||
List<String> listNorecPelayananPasienPetugas = new ArrayList<>();
|
||||
{
|
||||
List<Map<String, Object>> detail = (List<Map<String, Object>>) mpp.get("detail");
|
||||
for (Map<String, Object> d : detail)
|
||||
listNorecPelayananPasienPetugas.addAll((List<String>) d.get("norecs"));
|
||||
}
|
||||
LogbookDokter logbookDokter = new LogbookDokter();
|
||||
logbookDokter.setKdProfile((short) 0);
|
||||
logbookDokter.setStatusEnabled(true);
|
||||
logbookDokter.setJenisLogbook("KLAIM_MPP");
|
||||
logbookDokter.setJenisRuangan(mpp.get("jenisRuangan").toString().toUpperCase());
|
||||
logbookDokter.setKelompokPasien(
|
||||
getKelompokPasien(Integer.parseInt(mpp.get("idKelompokPasien").toString())));
|
||||
logbookDokter.setKeterangan(mpp.get("keterangan").toString());
|
||||
logbookDokter.setProduk(mpp.get("namaProduk").toString());
|
||||
logbookDokter.setProdukId(Integer.parseInt(mpp.get("idProduk").toString()));
|
||||
double hargaJasa = Double.parseDouble(mpp.get("hargaJasa").toString());
|
||||
logbookDokter.setRemunTindakan(BigDecimal.valueOf(hargaJasa));
|
||||
logbookDokter
|
||||
.setTarif(BigDecimal.valueOf(Double.parseDouble(mpp.get("hargaJual").toString())));
|
||||
int jumlah = Double.valueOf(mpp.get("jumlah").toString()).intValue();
|
||||
logbookDokter.setTotalRemunTindakan(BigDecimal.valueOf(hargaJasa * jumlah));
|
||||
logbookDokter.setTotalTindakan(jumlah);
|
||||
logbookDokter.setLogbookRemun(savedRemun);
|
||||
LogbookDokter savedLogbookDokter = logbookDokterDao.save(logbookDokter);
|
||||
{
|
||||
List<Map<String, Object>> detailLogbook = pelayananPasienService
|
||||
.detailLogbookTarifDokter(idPegawai, listNorecPelayananPasienPetugas);
|
||||
List<DetailLogbookDokter> listDetailLogbookDokter = new ArrayList<>();
|
||||
for (Map<String, Object> detail : detailLogbook) {
|
||||
DetailLogbookDokter detailLogbookDokter = new DetailLogbookDokter();
|
||||
detailLogbookDokter.setKdProfile((short) 0);
|
||||
detailLogbookDokter.setStatusEnabled(true);
|
||||
detailLogbookDokter.setDiskon(
|
||||
BigDecimal.valueOf(Double.parseDouble(detail.get("diskon").toString())));
|
||||
detailLogbookDokter.setJumlahTindakan(
|
||||
Double.valueOf(detail.get("jumlah").toString()).intValue());
|
||||
detailLogbookDokter.setJenisPelaksana(detail.get("jenisPelaksana").toString());
|
||||
detailLogbookDokter.setKelas(detail.get("namaKelas").toString());
|
||||
detailLogbookDokter.setNamaPasien(detail.get("namaPasien").toString());
|
||||
detailLogbookDokter.setNoRegistrasi(detail.get("noRegistrasi").toString());
|
||||
detailLogbookDokter.setNoRekamMedis(detail.get("noCm").toString());
|
||||
detailLogbookDokter.setRuangan(detail.get("namaRuangan").toString());
|
||||
detailLogbookDokter
|
||||
.setTanggalPelayanan(DateUtil.toDate(detail.get("tanggal").toString()));
|
||||
detailLogbookDokter.setTarif(
|
||||
BigDecimal.valueOf(Double.parseDouble(detail.get("hargaJual").toString())));
|
||||
detailLogbookDokter.setLogbookDokter(savedLogbookDokter);
|
||||
listDetailLogbookDokter.add(detailLogbookDokter);
|
||||
}
|
||||
detailLogbookDokterDao.save(listDetailLogbookDokter);
|
||||
}
|
||||
detailLogbookDokterDao.save(listDetailLogbookDokter);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -1278,29 +1278,25 @@ public class MapPegawaiJabatanToUnitKerjaServiceImpl extends BaseVoServiceImpl
|
||||
int sublevelJabatan = 0;
|
||||
List<Integer> listIdJabatanKetuaKomiteNakesLain = splitDataSettingDatafixed("idJabatanKetuaKomiteNakesLain");
|
||||
List<Map<String, Object>> mapLevel = mapPegawaiJabatanToUnitKerjaDao.getMappLevelByPegawai(idPegawai);
|
||||
for (Map<String, Object> map : mapLevel)
|
||||
List<Map<String, Object>> result = mapPegawaiJabatanToUnitKerjaDao.getMapUnitKerjaByPegawai(idPegawai);
|
||||
for (Map<String, Object> map : mapLevel){
|
||||
if (map.get("levelJabatan").equals(Master.Jabatan.LEVEL_DIREKTUR)) {
|
||||
isDirektur = true;
|
||||
levelJabatan = Integer.parseInt(map.get("levelJabatan").toString());
|
||||
sublevelJabatan = Integer.parseInt(map.get("subLevelJabatan").toString());
|
||||
break;
|
||||
result.addAll(mapPegawaiJabatanToUnitKerjaDao.getMapUnitKerjaByLevelJabatan(levelJabatan, sublevelJabatan));
|
||||
}
|
||||
List<Map<String, Object>> result = mapPegawaiJabatanToUnitKerjaDao.getMapUnitKerjaByPegawai(idPegawai);
|
||||
if (isDirektur)
|
||||
result.addAll(mapPegawaiJabatanToUnitKerjaDao.getMapUnitKerjaByLevelJabatan(levelJabatan, sublevelJabatan));
|
||||
if (mapPegawaiJabatanToUnitKerjaDao.existsByPegawaiIdAndJabatanIdIn(idPegawai,
|
||||
listIdJabatanKetuaKomiteNakesLain)) {
|
||||
List<Map<String, Object>> listUnitKerja = mapPegawaiJabatanToUnitKerjaDao
|
||||
.getMapUnitKerjaByKelompokJabatan(PENUNJANG_MEDIK);
|
||||
List<Integer> alreadyAdded = result.stream().map(rs -> Integer.parseInt(rs.get("id").toString()))
|
||||
.collect(Collectors.toList());
|
||||
List<Map<String, Object>> unitKerjaNakesLain = listUnitKerja.stream()
|
||||
.filter(unitKerja -> !alreadyAdded.contains(Integer.parseInt(unitKerja.get("id").toString())))
|
||||
.collect(Collectors.toList());
|
||||
}
|
||||
|
||||
if (mapPegawaiJabatanToUnitKerjaDao.existsByPegawaiIdAndJabatanIdIn(idPegawai, listIdJabatanKetuaKomiteNakesLain)) {
|
||||
List<Map<String, Object>> listUnitKerja = mapPegawaiJabatanToUnitKerjaDao.getMapUnitKerjaByKelompokJabatan(PENUNJANG_MEDIK);
|
||||
List<Integer> alreadyAdded = result.stream().map(rs -> Integer.parseInt(rs.get("id").toString())).collect(Collectors.toList());
|
||||
List<Map<String, Object>> unitKerjaNakesLain = listUnitKerja.stream().filter(unitKerja -> !alreadyAdded.contains(Integer.parseInt(unitKerja.get("id").toString()))).collect(Collectors.toList());
|
||||
result.addAll(unitKerjaNakesLain);
|
||||
}
|
||||
if (CommonUtil.isNotNullOrEmpty(result))
|
||||
if (CommonUtil.isNotNullOrEmpty(result)){
|
||||
return result;
|
||||
}
|
||||
return new ArrayList<>();
|
||||
}
|
||||
|
||||
|
||||
@ -13,6 +13,8 @@ import com.jasamedika.medifirst2000.vo.*;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.transaction.annotation.Propagation;
|
||||
import com.jasamedika.medifirst2000.util.DateUtil;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.math.RoundingMode;
|
||||
@ -25,12 +27,20 @@ import java.time.ZoneId;
|
||||
import java.util.*;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
import java.util.stream.Collectors;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import java.util.concurrent.CountDownLatch;
|
||||
import java.util.concurrent.ExecutorService;
|
||||
import java.util.concurrent.Executors;
|
||||
import java.time.LocalDate;
|
||||
|
||||
import static com.jasamedika.medifirst2000.constants.Master.KelompokJabatan.PENUNJANG_MEDIK;
|
||||
|
||||
@Service("monitoringAbsenService")
|
||||
public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements MonitoringAbsenService {
|
||||
|
||||
private static final Logger LOGGER = LoggerFactory.getLogger(MonitoringAbsenServiceImpl.class);
|
||||
|
||||
@Autowired
|
||||
private BaseConverterImpl<StrukHistoriVO, StrukHistori> strukHistoriConverter;
|
||||
|
||||
@ -151,6 +161,9 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon
|
||||
@Autowired
|
||||
private LogbookKinerjaDao logbookKinerjaDao;
|
||||
|
||||
@Autowired
|
||||
private LogbookKinerjaDetailDao logbookKinerjaDetailDao;
|
||||
|
||||
@Override
|
||||
public Long reduceTime(Date jamAbsensi, Date jamJadwal) {
|
||||
long diffMinutes = 0;
|
||||
@ -198,6 +211,78 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon
|
||||
} else {
|
||||
minutes = minutesAbsen;
|
||||
}
|
||||
|
||||
if (CommonUtil.isNotNullOrEmpty(jadwalMasuk) && CommonUtil.isNotNullOrEmpty(jadwalPulang)) {
|
||||
if ( (CommonUtil.isNullOrEmpty(jamAbsensiMasuk) && CommonUtil.isNotNullOrEmpty(jamAbsensiPulang)) || (CommonUtil.isNotNullOrEmpty(jamAbsensiMasuk) && CommonUtil.isNullOrEmpty(jamAbsensiPulang)) ) {
|
||||
minutesJadwal = reduceTime(jadwalPulang, jadwalMasuk);
|
||||
minutes = minutesJadwal / 2;
|
||||
}
|
||||
}
|
||||
|
||||
long menit = minutes % 60;// menit
|
||||
Long jam = minutes / 60;// jam
|
||||
jam_efektif = jam + ".";
|
||||
String minute = Long.toString(menit);
|
||||
if (minute.length() < 2) {
|
||||
minute = "0" + minute;
|
||||
}
|
||||
jam_efektif += minute;
|
||||
|
||||
Map<String, Integer> countHari = countHariKerja(minutes, shift);
|
||||
if (CommonUtil.isNotNullOrEmpty(countHari)) {
|
||||
result.putAll(countHari);
|
||||
}
|
||||
result.put("jam_efektif", jam_efektif);
|
||||
result.put("Minutes_Efektif", minutes);
|
||||
return result;
|
||||
}
|
||||
|
||||
public Map<String, Object> jamEfektifFactorRate(float factorRate, String shift) {
|
||||
Map<String, Object> result = new HashMap<>();
|
||||
Long minutes = (long) 0;
|
||||
if (CommonUtil.isNotNullOrEmpty(factorRate)) {
|
||||
minutes = (long) (factorRate * 60);
|
||||
}
|
||||
|
||||
long menit = minutes % 60;// menit
|
||||
Long jam = minutes / 60;// jam
|
||||
String jam_efektif = jam + ".";
|
||||
String minute = Long.toString(menit);
|
||||
if (minute.length() < 2) {
|
||||
minute = "0" + minute;
|
||||
}
|
||||
jam_efektif += minute;
|
||||
|
||||
Map<String, Integer> countHari = countHariKerja(minutes, shift);
|
||||
if (CommonUtil.isNotNullOrEmpty(countHari)) {
|
||||
result.putAll(countHari);
|
||||
}
|
||||
|
||||
result.put("jam_efektif", jam_efektif);
|
||||
result.put("Minutes_Efektif", minutes);
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
public Map<String, Object> jamEfektifTunggal(Date jadwalPulang, Date jadwalMasuk, long waktuIstirahat, String shift, float factorRate) {
|
||||
Map<String, Object> result = new HashMap<>();
|
||||
String jam_efektif;
|
||||
long minutes;
|
||||
Long minutesAbsen = (long) 0;
|
||||
Long minutesJadwal = (long) 0;
|
||||
|
||||
if (CommonUtil.isNotNullOrEmpty(factorRate)) {
|
||||
minutesJadwal = (long) (factorRate * 60);
|
||||
}else{
|
||||
if (CommonUtil.isNotNullOrEmpty(jadwalMasuk) && CommonUtil.isNotNullOrEmpty(jadwalPulang)) {
|
||||
minutesJadwal = reduceTime(jadwalPulang, jadwalMasuk);
|
||||
if (minutesJadwal > 30) {
|
||||
minutesJadwal = minutesJadwal - waktuIstirahat; // 30_adalah_waktu_istirahat
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
minutes = minutesJadwal / 2;
|
||||
long menit = minutes % 60;// menit
|
||||
Long jam = minutes / 60;// jam
|
||||
jam_efektif = jam + ".";
|
||||
@ -1369,7 +1454,7 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon
|
||||
@Override
|
||||
@Transactional(readOnly = true)
|
||||
public Map<String, Object> jumlahKehadiran(Integer unitKerjaId, Integer subUnitKerjaId, Integer idPegawai,
|
||||
String startDate, String endDate) {
|
||||
String startDate, String endDate) {
|
||||
Map<String, Object> result = new HashMap<>();
|
||||
List<Map<String, Object>> listRs = new ArrayList<>();
|
||||
List<Integer> listIdPegawaiFilter = new ArrayList<>();
|
||||
@ -1390,6 +1475,7 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon
|
||||
}
|
||||
}
|
||||
|
||||
List<Map<String, Object>> newResultDataShift = new ArrayList<>();
|
||||
for (Integer id : listIdPegawaiFilter) {
|
||||
PegawaiStatusDto pegawaiStatus = pegawaiDao.findStatusById(id);
|
||||
String idFinger = pegawaiStatus.getIdFinger();
|
||||
@ -1406,6 +1492,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;
|
||||
@ -1424,11 +1512,21 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon
|
||||
List<String> vpnIPXList = stringSplitDataSettingDatafixed("vpnAksesLuar");
|
||||
List<String> listIp = stringSplitDataSettingDatafixed("ip_addr");
|
||||
Map<String, Object> pegawaiMonitoring = new HashMap<>();
|
||||
String[] listKetidakhadiran = {"L","PDK","I","CM","SKT","TL","CAP","CT","CB","S-P2"};
|
||||
if (CommonUtil.isNotNullOrEmpty(idFinger)) {
|
||||
pegawaiMonitoring = pegawaiDao.getPegawaiToMonitoringAbsen(idFinger);
|
||||
}
|
||||
|
||||
List<Map<String, Object>> listKomponenJadwal = monitoringAbsenDao.findKalender(startDate, endDate);
|
||||
|
||||
List<Object[]> ListMasterShift = monitoringAbsenDao.getDataMasterShift();
|
||||
List<Map<String, Object>> resultListMasterShift = ListMasterShift.stream().map(r -> {
|
||||
Map<String, Object> m = new HashMap<>();
|
||||
m.put("kodeShift", r[0]); // reportdisplay → kodeShift
|
||||
m.put("namaShift", r[1]); // namashift → namaShift
|
||||
return m;
|
||||
}).collect(Collectors.toList());
|
||||
|
||||
for (Map<String, Object> data : listKomponenJadwal) {
|
||||
String alasanCuti = "";
|
||||
// put everything data needs
|
||||
@ -1486,6 +1584,13 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
float rawFactorRate = (float) 0.0;
|
||||
if (CommonUtil.isNotNullOrEmpty(data.get("factorRate")) && CommonUtil.isNotNullOrEmpty(data.get("factorRate"))) {
|
||||
rawFactorRate = (float) listJadwal.get("factorRate");
|
||||
}
|
||||
|
||||
data.put("factorRate", rawFactorRate);
|
||||
data.put("jadwalMasuk", jamMasuk);
|
||||
data.put("jadwalPulang", jamPulang);
|
||||
data.put("idFinger", idFinger);
|
||||
@ -1553,8 +1658,8 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
if (CommonUtil.isNotNullOrEmpty(data.get("namaShift")) && ((data.get("namaShift").equals("Pagi Malam"))
|
||||
|| (data.get("namaShift").equals("Non Shift MOD")))) {
|
||||
if (CommonUtil.isNotNullOrEmpty(data.get("namaShift")) && ((data.get("namaShift").equals("Pagi Malam")) || (data.get("namaShift").equals("Non Shift MOD")))) {
|
||||
//if (CommonUtil.isNotNullOrEmpty(data.get("namaShift")) && (data.get("namaShift").equals("Non Shift MOD"))) {
|
||||
try {
|
||||
List<Map<String, Object>> listAbsensiPagi = new ArrayList<>();
|
||||
List<Map<String, Object>> listAbsensiPM = new ArrayList<>();
|
||||
@ -1705,12 +1810,11 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon
|
||||
Map<String, Object> jamEfektif = null;
|
||||
|
||||
if (i == 1) {
|
||||
jamEfektif = jamEfektif(absensiDate, absensiMasuk, jadwalPulang, jadwalMasuk,
|
||||
(Integer) data.get("idKelompokShiftKerja"), waktuIstirahatPagi, "Pagi");
|
||||
jamEfektif = jamEfektif(absensiDate, absensiMasuk, jadwalPulang, jadwalMasuk, (Integer) data.get("idKelompokShiftKerja"), waktuIstirahatPagi, "Pagi");
|
||||
//jamEfektif = jamEfektifFactorRate((float) data.get("factorRate"), "Pagi");
|
||||
} else if (i == 2) {
|
||||
jamEfektif = jamEfektif(absensiDate, absensiMasuk, jadwalPulang, jadwalMasuk,
|
||||
(Integer) data.get("idKelompokShiftKerja"), waktuIstirahatMalam,
|
||||
"Malam");
|
||||
jamEfektif = jamEfektif(absensiDate, absensiMasuk, jadwalPulang, jadwalMasuk, (Integer) data.get("idKelompokShiftKerja"), waktuIstirahatMalam, "Malam");
|
||||
//jamEfektif = jamEfektifFactorRate((float) data.get("factorRate"), "Malam");
|
||||
}
|
||||
|
||||
if (CommonUtil.isNotNullOrEmpty(jamEfektif)) {
|
||||
@ -1741,17 +1845,81 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon
|
||||
if (CommonUtil.isNotNullOrEmpty(listTrNo)) {
|
||||
dataPM.put("listTrNo", listTrNo);
|
||||
}
|
||||
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("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{
|
||||
float factorRateX = (float) data.get("factorRate");
|
||||
|
||||
if ((CommonUtil.isNullOrEmpty(data.get("absensiPulang")) && CommonUtil.isNotNullOrEmpty(data.get("absensiMasuk"))) && !Arrays.asList(listKetidakhadiran).contains(data.get("kodeShift"))) {
|
||||
//System.out.print(data.get("tanggal2"));
|
||||
try {
|
||||
DateFormat sdfX = new SimpleDateFormat("yyyy-MM-dd");
|
||||
Date target = sdfX.parse( data.get("tanggal2").toString() );
|
||||
|
||||
Date now = new Date();
|
||||
Date twoDaysAgo = new Date(now.getTime() - (2L * 24 * 60 * 60 * 1000));
|
||||
|
||||
if (target.before(twoDaysAgo) || target.equals(twoDaysAgo)) {
|
||||
absenTunggal++;
|
||||
Map<String, Object> jamEfektif = new HashMap<>();
|
||||
jamEfektif = jamEfektifTunggal(jadwalPulang, jadwalMasuk, (long) data.get("waktuIstirahat"), (String) data.get("namaShift"), (float) factorRateX);
|
||||
|
||||
if (CommonUtil.isNotNullOrEmpty(jamEfektif)) {
|
||||
jamEf = (String) jamEfektif.get("jam_efektif");
|
||||
jumlahJamEfektif += (Long) jamEfektif.get("Minutes_Efektif");
|
||||
|
||||
if (((Integer) jamEfektif.get("hariKerja")) != 0) {
|
||||
harikerja += (Integer) jamEfektif.get("hariKerja");
|
||||
p1 += (Integer) jamEfektif.get("p1");
|
||||
pagi += (Integer) jamEfektif.get("pagi");
|
||||
sore += (Integer) jamEfektif.get("sore");
|
||||
malam += (Integer) jamEfektif.get("malam");
|
||||
data.putAll(jamEfektif);
|
||||
}
|
||||
}
|
||||
|
||||
jumlahTerlambat += (long) 0;
|
||||
data.put("terlambat", "0");
|
||||
data.put("telat", (long) 0);
|
||||
}
|
||||
} catch (ParseException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
} else if ((CommonUtil.isNotNullOrEmpty(data.get("absensiPulang")) && CommonUtil.isNullOrEmpty(data.get("absensiMasuk"))) && (CommonUtil.isNotNullOrEmpty(jamMasuk) && CommonUtil.isNotNullOrEmpty(jamPulang))) {
|
||||
absenTunggal++;
|
||||
} else if ( CommonUtil.isNotNullOrEmpty(data.get("factorRate")) && factorRateX > 0.0 && Arrays.asList(listKetidakhadiran).contains(data.get("kodeShift")) ) {
|
||||
Map<String, Object> jamEfektif = new HashMap<>();
|
||||
jamEfektif = jamEfektifFactorRate((float) data.get("factorRate"), "Pagi");
|
||||
|
||||
if (CommonUtil.isNotNullOrEmpty(jamEfektif)) {
|
||||
jamEf = (String) jamEfektif.get("jam_efektif");
|
||||
jumlahJamEfektif += (Long) jamEfektif.get("Minutes_Efektif");
|
||||
}
|
||||
|
||||
if (((Integer) jamEfektif.get("hariKerja")) != 0) {
|
||||
harikerja += (Integer) jamEfektif.get("hariKerja");
|
||||
p1 += (Integer) jamEfektif.get("p1");
|
||||
pagi += (Integer) jamEfektif.get("pagi");
|
||||
sore += (Integer) jamEfektif.get("sore");
|
||||
malam += (Integer) jamEfektif.get("malam");
|
||||
data.putAll(jamEfektif);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (CommonUtil.isNullOrEmpty(dataPM.get("absensiMasuk"))) {
|
||||
dataPM.put("absensiMasuk", "-");
|
||||
}
|
||||
@ -1854,12 +2022,17 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon
|
||||
dataPM.put("verifikasi", "X");
|
||||
}
|
||||
}
|
||||
dataPM.put("jamEfektif", jamEf);
|
||||
|
||||
dataPM.put("jamEfektif", jamEf); //xxx
|
||||
dataPM.put("jam_efektif", jamEf); //xxx
|
||||
dataPM.put("kelebihanJamKerja", kelebihanJamKerja);
|
||||
dataPM.put("jumlahTerlambat", jumlahTerlambat.toString());
|
||||
dataPM.put("jumlahJamEfektif", jumlahJamEfektif.toString());
|
||||
dataPM.put("jumlahPulangAwal", jumlahPulangAwal.toString());
|
||||
dataPM.put("alasan", alasanCuti);
|
||||
rsMap.put("jumlahCountKelebihanJamKerja", jumlahCountKelebihanJamKerja);
|
||||
rsMap.put("jumlahKelebihanJamKerja", jumlahKelebihanJamKerja / 60);
|
||||
rsMap.put("jumlahKelebihanMenitKerja", jumlahKelebihanJamKerja);
|
||||
dataPM.put("jumlahTerlambat", jumlahTerlambat.toString()); //xxx
|
||||
dataPM.put("jumlahJamEfektif", jumlahJamEfektif.toString()); //xxx
|
||||
dataPM.put("jumlahPulangAwal", jumlahPulangAwal.toString()); //xxx
|
||||
dataPM.put("alasan", alasanCuti); //xxx
|
||||
listkehadiran.add(dataPM);
|
||||
}
|
||||
rsMap.put("jumlahKelebihanJamKerja", jumlahKelebihanJamKerja / 60);
|
||||
@ -1943,11 +2116,11 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon
|
||||
if (kelebihanJamKerja != 0L) {
|
||||
jumlahCountKelebihanJamKerja += 1;
|
||||
}
|
||||
|
||||
Map<String, Object> jamEfektif = new HashMap<>();
|
||||
if (CommonUtil.isNotNullOrEmpty(data.get("namaShift"))) {
|
||||
jamEfektif = jamEfektif(absensiDate, absensiMasuk, jadwalPulang, jadwalMasuk,
|
||||
(Integer) data.get("idKelompokShiftKerja"), (long) data.get("waktuIstirahat"),
|
||||
(String) data.get("namaShift"));
|
||||
//jamEfektif = jamEfektif(absensiDate, absensiMasuk, jadwalPulang, jadwalMasuk, (Integer) data.get("idKelompokShiftKerja"), (long) data.get("waktuIstirahat"), (String) data.get("namaShift"));
|
||||
jamEfektif = jamEfektifFactorRate((float) data.get("factorRate"), (String) data.get("namaShift"));
|
||||
}
|
||||
|
||||
if (CommonUtil.isNotNullOrEmpty(jamEfektif)) {
|
||||
@ -1976,15 +2149,96 @@ 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{
|
||||
float factorRateX = (float) data.get("factorRate");
|
||||
|
||||
if ((CommonUtil.isNullOrEmpty(data.get("absensiPulang")) && CommonUtil.isNotNullOrEmpty(data.get("absensiMasuk"))) && !Arrays.asList(listKetidakhadiran).contains(data.get("kodeShift"))) {
|
||||
//System.out.print(data.get("tanggal2"));
|
||||
try {
|
||||
DateFormat sdfX = new SimpleDateFormat("yyyy-MM-dd");
|
||||
Date target = sdfX.parse( data.get("tanggal2").toString() );
|
||||
|
||||
Date now = new Date();
|
||||
Date twoDaysAgo = new Date(now.getTime() - (2L * 24 * 60 * 60 * 1000));
|
||||
|
||||
if (target.before(twoDaysAgo) || target.equals(twoDaysAgo)) {
|
||||
absenTunggal++;
|
||||
Map<String, Object> jamEfektif = new HashMap<>();
|
||||
jamEfektif = jamEfektifTunggal(jadwalPulang, jadwalMasuk, (long) data.get("waktuIstirahat"), (String) data.get("namaShift"), (float) factorRateX);
|
||||
|
||||
if (CommonUtil.isNotNullOrEmpty(jamEfektif)) {
|
||||
jamEf = (String) jamEfektif.get("jam_efektif");
|
||||
jumlahJamEfektif += (Long) jamEfektif.get("Minutes_Efektif");
|
||||
|
||||
if (count == 1) {
|
||||
if ( CommonUtil.isNotNullOrEmpty(data.get("terlambat"))) {
|
||||
jumlahTerlambat -= (long) data.get("terlambat");
|
||||
jumlahCountTerlambat -= 1;
|
||||
data.put("terlambat", "0");
|
||||
data.put("telat", (long) 0);
|
||||
}
|
||||
}else{
|
||||
jumlahTerlambat += (long) 0;
|
||||
data.put("terlambat", "0");
|
||||
data.put("telat", (long) 0);
|
||||
}
|
||||
|
||||
if (((Integer) jamEfektif.get("hariKerja")) != 0) {
|
||||
harikerja += (Integer) jamEfektif.get("hariKerja");
|
||||
p1 += (Integer) jamEfektif.get("p1");
|
||||
pagi += (Integer) jamEfektif.get("pagi");
|
||||
sore += (Integer) jamEfektif.get("sore");
|
||||
malam += (Integer) jamEfektif.get("malam");
|
||||
data.putAll(jamEfektif);
|
||||
}
|
||||
}else{
|
||||
jumlahTerlambat += (long) 0;
|
||||
data.put("terlambat", "0");
|
||||
data.put("telat", (long) 0);
|
||||
}
|
||||
}
|
||||
} catch (ParseException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
} else if ((CommonUtil.isNotNullOrEmpty(data.get("absensiPulang")) && CommonUtil.isNullOrEmpty(data.get("absensiMasuk"))) && (CommonUtil.isNotNullOrEmpty(jamMasuk) && CommonUtil.isNotNullOrEmpty(jamPulang))) {
|
||||
absenTunggal++;
|
||||
|
||||
System.out.print("terlambat 2");
|
||||
} else if ( CommonUtil.isNotNullOrEmpty(data.get("factorRate")) && factorRateX > 0.0 && Arrays.asList(listKetidakhadiran).contains(data.get("kodeShift")) ) {
|
||||
//System.out.print("Ini Gua Cuti 123");
|
||||
Map<String, Object> jamEfektif = new HashMap<>();
|
||||
jamEfektif = jamEfektifFactorRate((float) data.get("factorRate"), "Pagi");
|
||||
|
||||
if (CommonUtil.isNotNullOrEmpty(jamEfektif)) {
|
||||
jamEf = (String) jamEfektif.get("jam_efektif");
|
||||
jumlahJamEfektif += (Long) jamEfektif.get("Minutes_Efektif");
|
||||
}
|
||||
|
||||
if (((Integer) jamEfektif.get("hariKerja")) != 0) {
|
||||
harikerja += (Integer) jamEfektif.get("hariKerja");
|
||||
p1 += (Integer) jamEfektif.get("p1");
|
||||
pagi += (Integer) jamEfektif.get("pagi");
|
||||
sore += (Integer) jamEfektif.get("sore");
|
||||
malam += (Integer) jamEfektif.get("malam");
|
||||
data.putAll(jamEfektif);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (CommonUtil.isNullOrEmpty(data.get("absensiMasuk"))) {
|
||||
data.put("absensiMasuk", "-");
|
||||
}
|
||||
@ -2086,6 +2340,7 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon
|
||||
}
|
||||
}
|
||||
data.put("jamEfektif", jamEf);
|
||||
data.put("jam_efektif", jamEf);
|
||||
data.put("kelebihanJamKerja", kelebihanJamKerja);
|
||||
rsMap.put("jumlahCountKelebihanJamKerja", jumlahCountKelebihanJamKerja);
|
||||
rsMap.put("jumlahKelebihanJamKerja", jumlahKelebihanJamKerja / 60);
|
||||
@ -2097,7 +2352,13 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon
|
||||
listkehadiran.add(data);
|
||||
}
|
||||
}
|
||||
|
||||
Set<Object> uniqueKodeShift = new LinkedHashSet<>();
|
||||
Set<Object> uniqueNipPegawai = new LinkedHashSet<>();
|
||||
|
||||
for (Map<String, Object> 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,11 +2369,57 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon
|
||||
mapKehadiran.put("cuti", cuti);
|
||||
mapKehadiran.put("sakit", sakit);
|
||||
}
|
||||
|
||||
List<Map<Object, Long>> listShiftArray = new ArrayList<>();
|
||||
Map<String, Object> listInformasiAbsensi = new HashMap<>();
|
||||
Map<String, Object> listInformasiAbsensiLainnya = new HashMap<>();
|
||||
|
||||
Map<Object, Long> dataShift = new HashMap<>();
|
||||
Map<String, Object> 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)) {
|
||||
if (Arrays.asList(listKetidakhadiran).contains(groupKodeShift)) {
|
||||
long jumlah = listkehadiran.stream().filter(
|
||||
p -> p.containsKey("kodeShift") &&
|
||||
groupKodeShift.equals(p.get("kodeShift"))
|
||||
).count();
|
||||
dataShift.put(groupKodeShift, jumlah);
|
||||
}else{
|
||||
long jumlah = listkehadiran.stream().filter(
|
||||
p -> p.containsKey("kodeShift") &&
|
||||
groupKodeShift.equals(p.get("kodeShift")) &&
|
||||
!p.get("absensiMasuk").equals("-") &&
|
||||
!p.get("absensiPulang").equals("-")
|
||||
).count();
|
||||
dataShift.put(groupKodeShift, jumlah);
|
||||
}
|
||||
}
|
||||
}
|
||||
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);
|
||||
rsMap.put("jumlahTerlambat", jumlahTerlambat / 60);
|
||||
rsMap.put("menitTerlambat", jumlahTerlambat);
|
||||
rsMap.put("jumlahMenitEfektif", jumlahJamEfektif);
|
||||
rsMap.put("jumlahJamEfektif", jumlahJamEfektif / 60);
|
||||
rsMap.put("jumlahPulangAwal", jumlahPulangAwal / 60);
|
||||
rsMap.put("menitPulangAwal", jumlahPulangAwal);
|
||||
@ -2122,6 +2429,8 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon
|
||||
rsMap.put("mangkir", mangkir);
|
||||
rsMap.put("hariKerja", hariKerja);
|
||||
rsMap.put("listkehadiran", listkehadiran);
|
||||
rsMap.put("totalQtyShift", newResultDataShift);
|
||||
rsMap.put("masterShift", resultListMasterShift);
|
||||
|
||||
listRs.addAll(listkehadiran);
|
||||
result.putAll(rsMap);
|
||||
@ -2906,6 +3215,174 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public Map<String, Object> rekapitulasiCapaianHariDanJamKerjaPegawai(String tglAwal, String tglAkhir) {
|
||||
DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
|
||||
|
||||
LocalDate localDate = LocalDate.now().minusMonths(1);
|
||||
Date date = Date.from(localDate.atStartOfDay(ZoneId.systemDefault()).toInstant());
|
||||
Date tglAwalDefault = DateUtil.startMonth(date);
|
||||
Date tglAkhirDefault = DateUtil.endMonth(date);
|
||||
String tglAwalString = df.format(tglAwalDefault);
|
||||
String tglAkhirString = df.format(tglAkhirDefault);
|
||||
|
||||
List<Object[]> listTargetHariJamKerja = monitoringAbsenDao.getTargetHariJamKerja();
|
||||
List<Map<String, Object>> resultListTargetHariJamKerja = listTargetHariJamKerja.stream().map(r -> {
|
||||
Map<String, Object> m = new HashMap<>();
|
||||
m.put("pegawaiId", r[0]);
|
||||
m.put("namaLengkap", r[1]);
|
||||
m.put("jumlahTargetHari", r[2]);
|
||||
m.put("jumlahTargetMenit", r[3]);
|
||||
m.put("objectjabatanfk", r[4]);
|
||||
return m;
|
||||
}).collect(Collectors.toList());
|
||||
|
||||
ExecutorService executorService = Executors.newFixedThreadPool(2);
|
||||
CountDownLatch latch = new CountDownLatch(resultListTargetHariJamKerja.size());
|
||||
Map<String, Object> result = new HashMap<>();
|
||||
List<Map<String, Object>> listRekap = Collections.synchronizedList(new ArrayList<>());
|
||||
|
||||
try {
|
||||
for (Map<String, Object> data : resultListTargetHariJamKerja) {
|
||||
executorService.execute(() -> {
|
||||
LOGGER.info("Simpan rekap absensi {}", data.get("namaLengkap"));
|
||||
|
||||
Map<String, Object> kehadiranByPegawai = this.simpanLogbookKinerja(data, tglAwalString, tglAkhirString);
|
||||
listRekap.add(kehadiranByPegawai);
|
||||
|
||||
latch.countDown();
|
||||
});
|
||||
}
|
||||
latch.await();
|
||||
} catch (InterruptedException e) {
|
||||
Thread.currentThread().interrupt();
|
||||
} finally {
|
||||
executorService.shutdown();
|
||||
}
|
||||
|
||||
result.put("listRekapKehadiran", listRekap);
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
@Transactional(propagation = Propagation.REQUIRES_NEW)
|
||||
public Map<String, Object> simpanLogbookKinerja(Map<String, Object> data, String tglAwalString, String tglAkhirString) {
|
||||
DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
|
||||
Short kdprofile = 0;
|
||||
boolean statusenabled = true;
|
||||
boolean statusverifikasi = true;
|
||||
Integer pegawaiId = (Integer) data.get("pegawaiId");
|
||||
Pegawai pegawaiObject = new Pegawai();
|
||||
pegawaiObject.setId(pegawaiId);
|
||||
|
||||
Integer jabatanId = (Integer) data.get("objectjabatanfk");
|
||||
Jabatan jabatanObject = new Jabatan();
|
||||
jabatanObject.setId(jabatanId);
|
||||
|
||||
String namaLengkap = (String) data.get("namaLengkap");
|
||||
Date bulan = null;
|
||||
Double capaianLogbookKinerja = null;
|
||||
Double bobot = null;
|
||||
Integer indikatorLogbookKinerja = null;
|
||||
Double targetLogbookKinerja = null;
|
||||
String catatan = "-";
|
||||
String namakegiatan = null;
|
||||
|
||||
try {
|
||||
bulan = df.parse(tglAwalString);
|
||||
} catch (ParseException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
Map<String, Object> kehadiranByPegawai = this.jumlahKehadiran(null, null, pegawaiId, tglAwalString, tglAkhirString);
|
||||
|
||||
capaianLogbookKinerja = ((Number) kehadiranByPegawai.get("hariKerja")).doubleValue(); // Untuk Capaian Row Insert Hari Kerja
|
||||
bobot = (double) Master.IndikatorKinerja.BOBOT_HARI_KERJA;
|
||||
indikatorLogbookKinerja = Master.IndikatorKinerja.PEMENUHAN_HARI_KERJA;
|
||||
IndikatorKinerja indikatorLogbookKinerjaObject = new IndikatorKinerja();
|
||||
indikatorLogbookKinerjaObject.setId(indikatorLogbookKinerja);
|
||||
|
||||
targetLogbookKinerja = ((Number) data.get("jumlahTargetHari")).doubleValue();
|
||||
|
||||
// ===============================
|
||||
// 1. INSERT LOGBOOK HARI KERJA
|
||||
// ===============================
|
||||
|
||||
LogbookKinerja logbookHariKerja = new LogbookKinerja();
|
||||
logbookHariKerja.setBulan(bulan);
|
||||
logbookHariKerja.setKdProfile(kdprofile);
|
||||
logbookHariKerja.setStatusEnabled(statusenabled);
|
||||
logbookHariKerja.setTarget(targetLogbookKinerja);
|
||||
logbookHariKerja.setBobot(bobot);
|
||||
logbookHariKerja.setCapaian(capaianLogbookKinerja);
|
||||
logbookHariKerja.setStatusVerifikasi(statusverifikasi);
|
||||
logbookHariKerja.setPegawai(pegawaiObject);
|
||||
logbookHariKerja.setJabatan(jabatanObject);
|
||||
logbookHariKerja.setIndikatorKinerja(indikatorLogbookKinerjaObject);
|
||||
logbookHariKerja = logbookKinerjaDao.save(logbookHariKerja);
|
||||
|
||||
namakegiatan = "Hari Kerja Periode "+ tglAwalString +" s/d "+tglAkhirString;
|
||||
LogbookKinerjaDetail detailHariKerja = new LogbookKinerjaDetail();
|
||||
detailHariKerja.setKdProfile(kdprofile);
|
||||
detailHariKerja.setStatusEnabled(statusenabled);
|
||||
detailHariKerja.setNamaKegiatan(namakegiatan);
|
||||
detailHariKerja.setCapaian(capaianLogbookKinerja);
|
||||
detailHariKerja.setCatatan(catatan);
|
||||
detailHariKerja.setTanggalKegiatan(bulan);
|
||||
detailHariKerja.setStatusVerifikasi(statusverifikasi);
|
||||
detailHariKerja.setLogbookKinerja(logbookHariKerja);
|
||||
logbookKinerjaDetailDao.save(detailHariKerja);
|
||||
|
||||
// ===============================
|
||||
// 1. INSERT LOGBOOK JAM KERJA
|
||||
// ===============================
|
||||
|
||||
capaianLogbookKinerja = ((Number) kehadiranByPegawai.get("jumlahMenitEfektif")).doubleValue(); // Untuk Capaian Row Insert Jam Kerja
|
||||
bobot = (double) Master.IndikatorKinerja.BOBOT_JAM_KERJA;
|
||||
indikatorLogbookKinerja = Master.IndikatorKinerja.PEMENUHAN_JAM_KERJA;
|
||||
IndikatorKinerja indikatorLogbookKinerjaJamObject = new IndikatorKinerja();
|
||||
indikatorLogbookKinerjaJamObject.setId(indikatorLogbookKinerja);
|
||||
targetLogbookKinerja = ((Number) data.get("jumlahTargetMenit")).doubleValue();
|
||||
|
||||
LogbookKinerja logbookJamKerja = new LogbookKinerja();
|
||||
logbookJamKerja.setBulan(bulan);
|
||||
logbookJamKerja.setKdProfile(kdprofile);
|
||||
logbookJamKerja.setStatusEnabled(statusenabled);
|
||||
logbookJamKerja.setTarget(targetLogbookKinerja);
|
||||
logbookJamKerja.setBobot(bobot);
|
||||
logbookJamKerja.setCapaian(capaianLogbookKinerja);
|
||||
logbookJamKerja.setStatusVerifikasi(statusverifikasi);
|
||||
logbookJamKerja.setPegawai(pegawaiObject);
|
||||
logbookJamKerja.setJabatan(jabatanObject);
|
||||
logbookJamKerja.setIndikatorKinerja(indikatorLogbookKinerjaJamObject);
|
||||
logbookJamKerja = logbookKinerjaDao.save(logbookJamKerja);
|
||||
|
||||
namakegiatan = "Hari Kerja Periode "+ tglAwalString +" s/d "+tglAkhirString;
|
||||
LogbookKinerjaDetail detailJamKerja = new LogbookKinerjaDetail();
|
||||
detailJamKerja.setKdProfile(kdprofile);
|
||||
detailJamKerja.setStatusEnabled(statusenabled);
|
||||
detailJamKerja.setNamaKegiatan(namakegiatan);
|
||||
detailJamKerja.setCapaian(capaianLogbookKinerja);
|
||||
detailJamKerja.setCatatan(catatan);
|
||||
detailJamKerja.setTanggalKegiatan(bulan);
|
||||
detailJamKerja.setStatusVerifikasi(statusverifikasi);
|
||||
detailJamKerja.setLogbookKinerja(logbookJamKerja);
|
||||
logbookKinerjaDetailDao.save(detailJamKerja);
|
||||
|
||||
Map<String, Object> mapFilter = new HashMap<>();
|
||||
mapFilter.put("idPegawai", kehadiranByPegawai.get("idPegawai"));
|
||||
mapFilter.put("namaLengkap", namaLengkap);
|
||||
mapFilter.put("hariKerja", kehadiranByPegawai.get("hariKerja"));
|
||||
mapFilter.put("jumlahMenitEfektif", kehadiranByPegawai.get("jumlahMenitEfektif"));
|
||||
mapFilter.put("menitTerlambat", kehadiranByPegawai.get("menitTerlambat"));
|
||||
mapFilter.put("jumlahKelebihanMenitKerja", kehadiranByPegawai.get("jumlahKelebihanMenitKerja"));
|
||||
mapFilter.put("jumlahTargetHariKerja", data.get("jumlahTargetHari"));
|
||||
mapFilter.put("jumlahTargetMenitKerja", data.get("jumlahTargetMenit"));
|
||||
|
||||
return mapFilter;
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public Map<String, Object> rekapitulasiKehadiranByUnitKerja(Integer idUnitKerja, String startDate, String endDate) {
|
||||
@ -4400,16 +4877,12 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon
|
||||
isDirektur = true;
|
||||
levelJabatan = Integer.parseInt(map.get("levelJabatan").toString());
|
||||
sublevelJabatan = Integer.parseInt(map.get("subLevelJabatan").toString());
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (isDirektur) {
|
||||
result = monitoringAbsenDao.getDataPegawaiDirektur(idUnitKerja, levelJabatan, sublevelJabatan,
|
||||
splitDataSettingDatafixed("idMeninggalKeluarPindah"));
|
||||
} else if (listPegawaiSDM.contains(idPegawaiLogin)) {
|
||||
result = monitoringAbsenDao.getDataPegawaiRev(idUnitKerja, idSubUnitKerja,
|
||||
splitDataSettingDatafixed("idMeninggalKeluarPindah"));
|
||||
System.out.println("skenario 3 = " + levelJabatan + " | " + sublevelJabatan);
|
||||
result.addAll(monitoringAbsenDao.getDataPegawaiDirektur(idUnitKerja, levelJabatan, sublevelJabatan, splitDataSettingDatafixed("idMeninggalKeluarPindah")));
|
||||
} else if (listPegawaiSDM.contains(idPegawaiLogin)) {
|
||||
result.addAll(monitoringAbsenDao.getDataPegawaiRev(idUnitKerja, idSubUnitKerja, splitDataSettingDatafixed("idMeninggalKeluarPindah")));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -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<String> listNorec = new ArrayList<>();
|
||||
List<PegawaiJadwalKerjaVO> 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<String, Object> map : listTglCuti) {
|
||||
List<Map<String, Object>> getShiftTglFilled = new ArrayList<>();
|
||||
List<Map<String, Object>> getShiftTglEmpty = new ArrayList<>();
|
||||
Map<String, Object> generatePegawaiJadwal = pegawaiService.findPegawaiByRuanganRev2(subUnitKerja,
|
||||
Integer.parseInt((String) map.get("tahun")), Integer.parseInt((String) map.get("bulan")),
|
||||
vo.getPegawai().getId());
|
||||
List<Map<String, Object>> getShiftTanggal = (List<Map<String, Object>>) ((Map<String, Object>) ((List<Map<String, Object>>) (List<Map<String, Object>>) generatePegawaiJadwal
|
||||
.get("data")).get(0)).get("jadwal");
|
||||
Map<String, Object> generatePegawaiJadwal = pegawaiService.findPegawaiByRuanganRev2(subUnitKerja, Integer.parseInt((String) map.get("tahun")), Integer.parseInt((String) map.get("bulan")), vo.getPegawai().getId());
|
||||
List<Map<String, Object>> getShiftTanggal = (List<Map<String, Object>>) ((Map<String, Object>) ((List<Map<String, Object>>) (List<Map<String, Object>>) generatePegawaiJadwal.get("data")).get(0)).get("jadwal");
|
||||
// Filtering generate shift tanggal
|
||||
for (Map<String, Object> mapShiftTanggal : getShiftTanggal) {
|
||||
if ((Integer) ((Map<String, Object>) mapShiftTanggal.get("shift")).get("id") != 0) {
|
||||
@ -372,8 +368,7 @@ public class PegawaiJadwalKerjaServiceImpl extends BaseVoServiceImpl implements
|
||||
for (Map<String, Object> mapShiftTanggal : getShiftTglEmpty) {
|
||||
// Check and switch shift tanggal cuti when filled or empty
|
||||
for (Map<String, Object> mapShiftTglFilled : getShiftTglFilled) {
|
||||
if (((Integer) ((Map<String, Object>) mapShiftTanggal.get("tanggal")).get("id"))
|
||||
.equals((Integer) ((Map<String, Object>) mapShiftTglFilled.get("tanggal")).get("id"))) {
|
||||
if (((Integer) ((Map<String, Object>) mapShiftTanggal.get("tanggal")).get("id")).equals((Integer) ((Map<String, Object>) mapShiftTglFilled.get("tanggal")).get("id"))) {
|
||||
mapShiftTanggal = mapShiftTglFilled;
|
||||
break;
|
||||
}
|
||||
@ -389,21 +384,17 @@ public class PegawaiJadwalKerjaServiceImpl extends BaseVoServiceImpl implements
|
||||
Integer idTanggal = (Integer) ((Map<String, Object>) 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<String> listNorec = new ArrayList<>();
|
||||
List<PegawaiJadwalKerjaVO> 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<String, Object>) mapShiftTanggal.get("shift")).get("id");
|
||||
Integer idTanggal = (Integer) ((Map<String, Object>) mapShiftTanggal.get("tanggal")).get("id");
|
||||
|
||||
java.time.LocalDate localDate = ((Date) ((Map<String, Object>) 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<String, Object>) 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<PegawaiJadwalKerja> jadwal = pegawaiJadwalKerjaDao.findJadwalByBulan(tahun, bulan, idPegawai);
|
||||
if (CommonUtil.isNullOrEmpty(jadwal)) {
|
||||
Pegawai pegawai = pegawaiDao.findOne(idPegawai);
|
||||
List<Map<String, Object>> mapListHariLibur = pegawaiDaoCustom.findHariLiburPegawaiNonShift(tahun,
|
||||
bulan);
|
||||
List<Map<String, Object>> mapListHariLibur = pegawaiDaoCustom.findHariLiburPegawaiNonShift(tahun, bulan);
|
||||
|
||||
// clear false data
|
||||
if (CommonUtil.isNotNullOrEmpty(mapListHariLibur))
|
||||
for (Map<String, Object> 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<PegawaiJadwalKerja> resultPegawaiJadwalKerja = pegawaiDaoCustom.findJadwalByTanggal(tahun,
|
||||
bulan, idPegawai);
|
||||
List<PegawaiJadwalKerja> 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 {
|
||||
|
||||
@ -1208,8 +1208,7 @@ public class PegawaiServiceImpl extends BaseVoServiceImpl implements PegawaiServ
|
||||
for (Map<String, Object> map : listPegawai) {
|
||||
List<Map<String, Object>> items = new ArrayList<>();
|
||||
try {
|
||||
Map<String, Object> pegawaiMap = pegawaiDao.findById(Integer.parseInt(map.get("idPegawai").toString()))
|
||||
.ToMap();
|
||||
Map<String, Object> pegawaiMap = pegawaiDao.findById(Integer.parseInt(map.get("idPegawai").toString())).ToMap();
|
||||
Map<String, Object> shiftKerja = (Map<String, Object>) pegawaiMap.get("shiftKerja");
|
||||
Integer idShift = 0;
|
||||
if (CommonUtil.isNotNullOrEmpty(shiftKerja)) {
|
||||
@ -1217,16 +1216,15 @@ public class PegawaiServiceImpl extends BaseVoServiceImpl implements PegawaiServ
|
||||
idShift = (Integer) shiftKerja.get("id");
|
||||
}
|
||||
}
|
||||
List<Map<String, Object>> listShiftKerja = shiftKerjaDao.findByKelompokShiftId(idShift);
|
||||
List<Map<String, Object>> 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<PegawaiJadwalKerja> resultPegawaiJadwalKerja = pegawaiDaoCustom.findJadwalByTanggalRuangan(
|
||||
subUnitKerja, tahun, bulan, Integer.parseInt(map.get("idPegawai").toString()));
|
||||
List<PegawaiJadwalKerja> resultPegawaiJadwalKerja = pegawaiDaoCustom.findJadwalByTanggalRuangan(subUnitKerja, tahun, bulan, Integer.parseInt(map.get("idPegawai").toString()));
|
||||
|
||||
if (resultPegawaiJadwalKerja.size() == 0) {
|
||||
if (idShift == 1 || idShift == 2) {
|
||||
@ -1235,32 +1233,29 @@ public class PegawaiServiceImpl extends BaseVoServiceImpl implements PegawaiServ
|
||||
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()));
|
||||
@ -1324,8 +1319,7 @@ public class PegawaiServiceImpl extends BaseVoServiceImpl implements PegawaiServ
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
@Override
|
||||
public Map<String, Object> findPegawaiByRuanganRev2(Integer subUnitKerja, Integer tahun, Integer bulan,
|
||||
Integer idPegawai) {
|
||||
public Map<String, Object> findPegawaiByRuanganRev2(Integer subUnitKerja, Integer tahun, Integer bulan, Integer idPegawai) {
|
||||
Map<String, Object> result = new HashMap<>();
|
||||
List<Map<String, Object>> list = new ArrayList<>();
|
||||
List<Map<String, Object>> listPegawai = pegawaiDao.findByUnitKerja(subUnitKerja, idPegawai);
|
||||
@ -1347,8 +1341,7 @@ public class PegawaiServiceImpl extends BaseVoServiceImpl implements PegawaiServ
|
||||
for (Map<String, Object> map : listPegawai) {
|
||||
List<Map<String, Object>> items = new ArrayList<>();
|
||||
try {
|
||||
Map<String, Object> pegawaiMap = pegawaiDao.findById(Integer.parseInt(map.get("idPegawai").toString()))
|
||||
.ToMap();
|
||||
Map<String, Object> pegawaiMap = pegawaiDao.findById(Integer.parseInt(map.get("idPegawai").toString())).ToMap();
|
||||
Map<String, Object> shiftKerja = (Map<String, Object>) pegawaiMap.get("shiftKerja");
|
||||
Integer idShift = 0;
|
||||
if (CommonUtil.isNotNullOrEmpty(shiftKerja)) {
|
||||
@ -1364,36 +1357,32 @@ public class PegawaiServiceImpl extends BaseVoServiceImpl implements PegawaiServ
|
||||
shiftKerja.put("detail", JsonUtil.ToMaps(listShiftKerja));
|
||||
}
|
||||
map.put("pegawai", pegawaiMap);
|
||||
List<PegawaiJadwalKerja> resultPegawaiJadwalKerja = pegawaiDaoCustom.findJadwalByTanggalRuangan(
|
||||
subUnitKerja, tahun, bulan, Integer.parseInt(map.get("idPegawai").toString()));
|
||||
List<PegawaiJadwalKerja> resultPegawaiJadwalKerja = pegawaiDaoCustom.findJadwalByTanggalRuangan(subUnitKerja, tahun, bulan, Integer.parseInt(map.get("idPegawai").toString()));
|
||||
if (resultPegawaiJadwalKerja.size() == 0) {
|
||||
if (idShift == 1 || idShift == 2) {
|
||||
for (Map<String, Object> 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 {
|
||||
@ -1426,9 +1415,7 @@ public class PegawaiServiceImpl extends BaseVoServiceImpl implements PegawaiServ
|
||||
List<Map<String, Object>> mapListHariLiburTemp = mapListHariLibur;
|
||||
for (Map<String, Object> 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;
|
||||
|
||||
@ -358,6 +358,7 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
|
||||
|
||||
List<Integer> listProdukKlinik = splitDataSettingDatafixed("listProdukDiskonPegawai");
|
||||
List<Integer> listProdukTht = splitDataSettingDatafixed("listProdukDiskonThtPegawai");
|
||||
List<Integer> listProdukGizi = splitDataSettingDatafixed("listProdukDiskonGiziPegawai");
|
||||
List<Integer> listProdukMata = splitDataSettingDatafixed("listProdukDiskonMataPegawai");
|
||||
List<Integer> listProdukGigi = splitDataSettingDatafixed("listProdukDiskonGigiPegawai");
|
||||
List<Integer> listProdukLabRadiologi = splitDataSettingDatafixed("listProdukDiskonLabRadiologiPasien");
|
||||
@ -367,7 +368,7 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
|
||||
List<Map<String, Object>> data = pelayananPasienDao.findLayananTagihan(noRegistrasi, jenisDiskon,
|
||||
KLINIK_KARYAWAN, listProdukKlinik, POLI_THT, listProdukTht, POLI_MATA, listProdukMata,
|
||||
KLINIK_GIGI_KARYAWAN, listProdukGigi, labRadiologi, listProdukLabRadiologi, listProdukFarmasi,
|
||||
listProdukMpp);
|
||||
listProdukMpp, POLI_GIZI, listProdukGizi);
|
||||
|
||||
List<PelayananPasien> models = new ArrayList<>();
|
||||
for (Map<String, Object> map : data) {
|
||||
@ -692,6 +693,13 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
|
||||
double persenRemunDokterUmumHD = toDoubleSettingFix("persenRemunDokterUmumHD", tglAkhir);
|
||||
double persenRemunLabGenetika = toDoubleSettingFix("persenRemunLabGenetika", tglAkhir);
|
||||
double persenRemunTerapis = toDoubleSettingFix("persenRemunTerapis", tglAkhir);
|
||||
|
||||
Integer[] ICU_NICU;
|
||||
if((date.before(new Date(1761929999000L)) || date.equals(new Date(1761929999000L)))){
|
||||
ICU_NICU = ICU_NICU_V1;
|
||||
}else{
|
||||
ICU_NICU = ICU_NICU_v2;
|
||||
}
|
||||
/*
|
||||
* Persiapan filter logic remunerasi
|
||||
*/
|
||||
@ -2217,6 +2225,14 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
|
||||
double persenRemunDokterUmumHD = toDoubleSettingFix("persenRemunDokterUmumHD", tglAkhir);
|
||||
double persenRemunLabGenetika = toDoubleSettingFix("persenRemunLabGenetika", tglAkhir);
|
||||
double persenRemunTerapis = toDoubleSettingFix("persenRemunTerapis", tglAkhir);
|
||||
|
||||
Integer[] ICU_NICU;
|
||||
if((date.before(new Date(1761929999000L)) || date.equals(new Date(1761929999000L)))){
|
||||
ICU_NICU = ICU_NICU_V1;
|
||||
}else{
|
||||
ICU_NICU = ICU_NICU_v2;
|
||||
}
|
||||
|
||||
/*
|
||||
* Persiapan filter logic remunerasi
|
||||
*/
|
||||
@ -3646,16 +3662,20 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
|
||||
public void diskonTagihan(String kodeVoucher, List<TagihanPendaftaranDto> dtoList) {
|
||||
List<Integer> unitKerjaDiskonTarek = splitDataSettingDatafixed("unitKerjaDiskonTarek");
|
||||
List<Integer> jabatanDiskonTarek = splitDataSettingDatafixed("jabatanDiskonTarek");
|
||||
List<Integer> listIdPegawai = mapPegawaiJabatanToUnitKerjaDao
|
||||
.findPegawaiIdByUnitKerjaIdAndJabatanId(unitKerjaDiskonTarek, jabatanDiskonTarek);
|
||||
List<Integer> listIdPegawai = mapPegawaiJabatanToUnitKerjaDao.findPegawaiIdByUnitKerjaIdAndJabatanId(unitKerjaDiskonTarek, jabatanDiskonTarek);
|
||||
LoginUser loginUser = loginUserService.getLoginUser();
|
||||
boolean accessGranted = loginUserService.accessGranted(loginUser, listIdPegawai);
|
||||
if (!accessGranted && kodeVoucher.isEmpty()
|
||||
|| !accessGranted && !loginUser.getKelompokUser().getId().equals(TATA_REKENING))
|
||||
throw new ServiceVOException("Tidak memiliki akses melakukan diskon");
|
||||
if (CommonUtil.isNotNullOrEmpty(kodeVoucher)) {
|
||||
if (!accessGranted || kodeVoucher.isEmpty()) {
|
||||
throw new ServiceVOException("Tidak memiliki akses melakukan diskon paket, periksa sotk pegawai atau kode voucher.");
|
||||
}
|
||||
|
||||
diskonPaket(kodeVoucher, dtoList);
|
||||
} else {
|
||||
if (!accessGranted) {
|
||||
throw new ServiceVOException("Tidak memiliki akses melakukan diskon, periksa sotk");
|
||||
}
|
||||
|
||||
List<String> listNoRec = dtoList.stream().map(TagihanPendaftaranDto::getNoRec).collect(Collectors.toList());
|
||||
List<PelayananPasien> listPelayanan = pelayananPasienDao.findAll(listNoRec);
|
||||
listPelayanan.forEach(p -> {
|
||||
|
||||
@ -2025,6 +2025,20 @@ public class PermohonanStatusPegawaiImpl implements PermohonanStatusPegawaiServi
|
||||
public Map<String, Object> setJatahCutiPegawai(JatahCutiDanIzinVO vo) {
|
||||
Map<String, Object> result = new HashMap<>();
|
||||
if (CommonUtil.isNotNullOrEmpty(vo)) {
|
||||
KomponenIndexVO kompIndexVoB = new KomponenIndexVO();
|
||||
kompIndexVoB.setId(21);
|
||||
KomponenIndexVO kompIndexVoT = new KomponenIndexVO();
|
||||
kompIndexVoT.setId(5);
|
||||
// Cek Ketika Update Jatah Cuti Otomatis Apakah Mengirimkan Intervensi Cuti Apa Tidak
|
||||
if (CommonUtil.isNullOrEmpty(vo.getIntervensiCuti())) {
|
||||
JatahCutiDanIzin currentDataBaseJatahCuti = jatahCutiDanIzinDao.getJatahCuti(vo.getTahun().toString(), vo.getPegawai().getId(), kompIndexVoB.getId());
|
||||
if (CommonUtil.isNullOrEmpty(currentDataBaseJatahCuti)) {
|
||||
vo.setIntervensiCuti(0);
|
||||
}else{
|
||||
vo.setIntervensiCuti(currentDataBaseJatahCuti.getIntervensiCuti());
|
||||
}
|
||||
}
|
||||
|
||||
int todaysYear = Calendar.getInstance().get(Calendar.YEAR);
|
||||
int todaysYear1 = todaysYear - 1;
|
||||
|
||||
@ -2035,57 +2049,52 @@ public class PermohonanStatusPegawaiImpl implements PermohonanStatusPegawaiServi
|
||||
DataCutiDto cutiIzin = jatahCutiDanIzinService.getDataCuti(vo.getPegawai().getId(),
|
||||
String.valueOf(todaysYear), vo.getKomponenIndex().getId());
|
||||
List<Map<String, Object>> listDataCuti = getMaps(cutiIzin, todaysYear);
|
||||
KomponenIndexVO kompIndexVoB = new KomponenIndexVO();
|
||||
kompIndexVoB.setId(21);
|
||||
KomponenIndexVO kompIndexVoT = new KomponenIndexVO();
|
||||
kompIndexVoT.setId(5);
|
||||
|
||||
for (Map<String, Object> mapDataCuti : listDataCuti) {
|
||||
JatahCutiDanIzin jatahCutiDanIzin = new JatahCutiDanIzin();
|
||||
jatahCutiDanIzin.setPegawai(pegawaiConverter.transferVOToModel(vo.getPegawai(), new Pegawai()));
|
||||
if (mapDataCuti.get("komponenIndex").equals(kompIndexVoB.getId())) {
|
||||
jatahCutiDanIzin.setKomponenIndex(
|
||||
komponenIndexConverter.transferVOToModel(kompIndexVoB, new KomponenIndex()));
|
||||
JatahCutiDanIzin currentData = jatahCutiDanIzinDao.getJatahCuti(mapDataCuti.get("tahun").toString(),
|
||||
vo.getPegawai().getId(), kompIndexVoB.getId());
|
||||
jatahCutiDanIzin.setKomponenIndex(komponenIndexConverter.transferVOToModel(kompIndexVoB, new KomponenIndex()));
|
||||
JatahCutiDanIzin currentData = jatahCutiDanIzinDao.getJatahCuti(mapDataCuti.get("tahun").toString(), vo.getPegawai().getId(), kompIndexVoB.getId());
|
||||
if (CommonUtil.isNotNullOrEmpty(currentData)) {
|
||||
jatahCutiDanIzin.setNoRec(currentData.getNoRec());
|
||||
if (vo.getKomponenIndex().getId().equals(mapDataCuti.get("komponenIndex"))
|
||||
&& vo.getTahun().equals(mapDataCuti.get("tahun").toString())) {
|
||||
if (vo.getKomponenIndex().getId().equals(mapDataCuti.get("komponenIndex")) && vo.getTahun().equals(mapDataCuti.get("tahun").toString())) {
|
||||
jatahCutiDanIzin.setValue(vo.getValue());
|
||||
} else if (todaysYear == Integer.parseInt(vo.getTahun())
|
||||
&& todaysYear1 == Integer.parseInt(mapDataCuti.get("tahun").toString())) {
|
||||
jatahCutiDanIzin.setIntervensiCuti(vo.getIntervensiCuti());
|
||||
} else if (todaysYear == Integer.parseInt(vo.getTahun()) && todaysYear1 == Integer.parseInt(mapDataCuti.get("tahun").toString())) {
|
||||
jatahCutiDanIzin.setValue(cutiIzin.getDataCutiB1());
|
||||
jatahCutiDanIzin.setIntervensiCuti(cutiIzin.getIntervensiCutiB1());
|
||||
} else {
|
||||
jatahCutiDanIzin.setValue(currentData.getValue());
|
||||
jatahCutiDanIzin.setIntervensiCuti(currentData.getIntervensiCuti());
|
||||
}
|
||||
} else {
|
||||
if (vo.getKomponenIndex().getId().equals(mapDataCuti.get("komponenIndex"))
|
||||
&& vo.getTahun().equals(mapDataCuti.get("tahun").toString())) {
|
||||
if (vo.getKomponenIndex().getId().equals(mapDataCuti.get("komponenIndex")) && vo.getTahun().equals(mapDataCuti.get("tahun").toString())) {
|
||||
jatahCutiDanIzin.setValue(vo.getValue());
|
||||
jatahCutiDanIzin.setIntervensiCuti(vo.getIntervensiCuti());
|
||||
} else {
|
||||
jatahCutiDanIzin.setValue(0);
|
||||
jatahCutiDanIzin.setIntervensiCuti(0);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
jatahCutiDanIzin.setKomponenIndex(
|
||||
komponenIndexConverter.transferVOToModel(kompIndexVoT, new KomponenIndex()));
|
||||
JatahCutiDanIzin currentData = jatahCutiDanIzinDao.getJatahCuti(mapDataCuti.get("tahun").toString(),
|
||||
vo.getPegawai().getId(), kompIndexVoT.getId());
|
||||
jatahCutiDanIzin.setKomponenIndex(komponenIndexConverter.transferVOToModel(kompIndexVoT, new KomponenIndex()));
|
||||
JatahCutiDanIzin currentData = jatahCutiDanIzinDao.getJatahCuti(mapDataCuti.get("tahun").toString(), vo.getPegawai().getId(), kompIndexVoT.getId());
|
||||
if (CommonUtil.isNotNullOrEmpty(currentData)) {
|
||||
jatahCutiDanIzin.setNoRec(currentData.getNoRec());
|
||||
if (vo.getKomponenIndex().getId().equals(mapDataCuti.get("komponenIndex"))
|
||||
&& vo.getTahun().equals(mapDataCuti.get("tahun").toString())) {
|
||||
if (vo.getKomponenIndex().getId().equals(mapDataCuti.get("komponenIndex")) && vo.getTahun().equals(mapDataCuti.get("tahun").toString())) {
|
||||
jatahCutiDanIzin.setValue(vo.getValue());
|
||||
jatahCutiDanIzin.setIntervensiCuti(vo.getIntervensiCuti());
|
||||
} else {
|
||||
jatahCutiDanIzin.setValue(currentData.getValue());
|
||||
jatahCutiDanIzin.setIntervensiCuti(currentData.getIntervensiCuti());
|
||||
}
|
||||
} else {
|
||||
if (vo.getKomponenIndex().getId().equals(mapDataCuti.get("komponenIndex"))
|
||||
&& vo.getTahun().equals(mapDataCuti.get("tahun").toString())) {
|
||||
if (vo.getKomponenIndex().getId().equals(mapDataCuti.get("komponenIndex")) && vo.getTahun().equals(mapDataCuti.get("tahun").toString())) {
|
||||
jatahCutiDanIzin.setValue(vo.getValue());
|
||||
jatahCutiDanIzin.setIntervensiCuti(vo.getIntervensiCuti());
|
||||
} else {
|
||||
jatahCutiDanIzin.setValue(0);
|
||||
jatahCutiDanIzin.setIntervensiCuti(0);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -2097,6 +2106,7 @@ public class PermohonanStatusPegawaiImpl implements PermohonanStatusPegawaiServi
|
||||
if (CommonUtil.isNotNullOrEmpty(currentData)) {
|
||||
jatahCutiDanIzin.setNoRec(currentData.getNoRec());
|
||||
}
|
||||
jatahCutiDanIzin.setIntervensiCuti(vo.getIntervensiCuti());
|
||||
jatahCutiDanIzin.setValue(vo.getValue());
|
||||
jatahCutiDanIzin.setTahun(vo.getTahun());
|
||||
jatahCutiDanIzin.setCutiTerpakai(0);
|
||||
|
||||
@ -281,6 +281,7 @@ public class RemunerasiServiceImpl extends BaseVoServiceImpl implements Remunera
|
||||
} catch (ParseException e) {
|
||||
return null;
|
||||
}
|
||||
|
||||
/*
|
||||
* Mendapatkan kelompok kerja dokter
|
||||
*/
|
||||
@ -296,6 +297,14 @@ public class RemunerasiServiceImpl extends BaseVoServiceImpl implements Remunera
|
||||
/*
|
||||
* Mendapatkan nominal target remunerasi untuk simulasi
|
||||
*/
|
||||
|
||||
Integer[] ICU_NICU;
|
||||
if((date.before(new Date(1761929999000L)) || date.equals(new Date(1761929999000L)))){
|
||||
ICU_NICU = ICU_NICU_V1;
|
||||
}else{
|
||||
ICU_NICU = ICU_NICU_v2;
|
||||
}
|
||||
|
||||
Double targetRemun = 0.0;
|
||||
String sdTarget = getSettingDataFixed("targetRemunJasaDokter");
|
||||
if (CommonUtil.isNotNullOrEmpty(sdTarget))
|
||||
@ -400,8 +409,15 @@ public class RemunerasiServiceImpl extends BaseVoServiceImpl implements Remunera
|
||||
dokterAndAsisten);
|
||||
List<String> idPelayananByKsm = pelayananPasienDao.findIdPelayananByKsm(tglAwal, tglAkhir, listKsm,
|
||||
dokterAndAsisten);
|
||||
List<PelayananDokterBedahDto> pelayananBedah = pelayananPasienDao.findPelayananBedah(tglAwal, tglAkhir, listKsm,
|
||||
dokterAndAsisten, idPelayananByDokter, idPelayananByKsm);
|
||||
|
||||
List<PelayananDokterBedahDto> pelayananBedah;
|
||||
|
||||
if (idPegawai != 961 && idPegawai != 538 && CommonUtil.isNotNullOrEmpty(idPelayananByDokter) && CommonUtil.isNotNullOrEmpty(idPelayananByKsm) && CommonUtil.isNotNullOrEmpty(dokterAndAsisten) && CommonUtil.isNotNullOrEmpty(listKsm) ){
|
||||
pelayananBedah = pelayananPasienDao.findPelayananBedah(tglAwal, tglAkhir, listKsm, dokterAndAsisten, idPelayananByDokter, idPelayananByKsm);
|
||||
}else{
|
||||
pelayananBedah = new ArrayList<>();
|
||||
}
|
||||
|
||||
/*
|
||||
* Pemisahan produk kepala paket untuk fixed pay
|
||||
*/
|
||||
@ -438,6 +454,7 @@ public class RemunerasiServiceImpl extends BaseVoServiceImpl implements Remunera
|
||||
double persenOperatorAkumulatif = persenOperator;
|
||||
StatusPersenBedah statusPersenBedah = decidePercentBedah(pelayananBedah, d);
|
||||
if (CommonUtil.isNotNullOrEmpty(statusPersenBedah) && FULL_OPERATOR.equals(statusPersenBedah)
|
||||
&& Arrays.asList(KELOMPOK_BPJS).contains(Integer.parseInt(d.get("idKelompokPasien").toString()))
|
||||
&& (tglAwal.equals(tmtPersenJasa2024) || tglAwal.after(tmtPersenJasa2024)))
|
||||
persenOperatorAkumulatif += persenAsisten;
|
||||
if (paketBukanFixedPay.contains(Integer.parseInt(d.get("idProduk").toString())))
|
||||
@ -563,8 +580,7 @@ public class RemunerasiServiceImpl extends BaseVoServiceImpl implements Remunera
|
||||
d.put("hargaJasa", hargaJasa.getNilai());
|
||||
if (!DOKTER_PEMERIKSA.equals(d.get("idJenisPelaksana")))
|
||||
d.put("isTermasukProporsi", false);
|
||||
} else if (CommonUtil.isNotNullOrEmpty(d.get("idRuangan"))
|
||||
&& Arrays.asList(ICU_NICU).contains(Integer.parseInt(d.get("idRuangan").toString()))) {
|
||||
} else if (CommonUtil.isNotNullOrEmpty(d.get("idRuangan")) && Arrays.asList(ICU_NICU).contains(Integer.parseInt(d.get("idRuangan").toString()))) {
|
||||
double persenJasa = persenTindakan / 100;
|
||||
RemunHargaJasaDto hargaJasa = hargaJasa(persenJasa * persenTarifICU, hargaJual, d);
|
||||
d.put("hargaJasa", hargaJasa.getNilai());
|
||||
@ -1076,7 +1092,7 @@ public class RemunerasiServiceImpl extends BaseVoServiceImpl implements Remunera
|
||||
|| CATHLAB.equals(next.get("idRuangan")))) {
|
||||
listPelayananRemun.add(next);
|
||||
capaianRemun += Double.parseDouble(next.get("hargaJasa").toString());
|
||||
} else if (KK_UMUM.equals(idKKDokter)
|
||||
} else if ( (KK_UMUM.equals(idKKDokter) || idPegawai.equals(1249) )
|
||||
&& idsDokterUmumIGD.contains(Integer.parseInt(next.get("idProduk").toString()))
|
||||
&& (tglAwal.equals(tmtTarif2024) || tglAwal.after(tmtTarif2024))) {
|
||||
/*
|
||||
@ -1114,10 +1130,11 @@ public class RemunerasiServiceImpl extends BaseVoServiceImpl implements Remunera
|
||||
/*
|
||||
* Selain dokter-dokter kk pediatrik gawat darurat
|
||||
*/
|
||||
//ayam
|
||||
if (CommonUtil.isNotNullOrEmpty(next.get("idDetailJenisProduk")) && listDetailJenisProduk
|
||||
.contains(Integer.parseInt(next.get("idDetailJenisProduk").toString()))) {
|
||||
if (!idsPerawat.contains(Integer.parseInt(next.get("idProduk").toString()))
|
||||
|| (KK_UMUM.equals(idKKDokter)
|
||||
|| ( (KK_UMUM.equals(idKKDokter) || idPegawai.equals(1249))
|
||||
&& !idsDokterUmumExclude
|
||||
.contains(Integer.parseInt(next.get("idProduk").toString()))
|
||||
&& tglAwal.before(tmtTarif2024))) {
|
||||
@ -1147,7 +1164,7 @@ public class RemunerasiServiceImpl extends BaseVoServiceImpl implements Remunera
|
||||
|| (CommonUtil.isNotNullOrEmpty(next.get("idDetailJenisProduk"))
|
||||
&& !listDetailJenisProduk.contains(
|
||||
Integer.parseInt(next.get("idDetailJenisProduk").toString()))))
|
||||
&& IGD.equals(next.get("idDepartemen")) && KK_UMUM.equals(idKKDokter)
|
||||
&& IGD.equals(next.get("idDepartemen")) && (KK_UMUM.equals(idKKDokter) || idPegawai.equals(1249))
|
||||
&& idsDokterUmumIGD.contains(Integer.parseInt(next.get("idProduk").toString()))
|
||||
&& tglAwal.before(tmtTarif2024)) {
|
||||
/*
|
||||
@ -1181,6 +1198,7 @@ public class RemunerasiServiceImpl extends BaseVoServiceImpl implements Remunera
|
||||
listPelayananRemun.add(next);
|
||||
capaianRemun += Double.parseDouble(next.get("hargaJasa").toString());
|
||||
}
|
||||
//kodok
|
||||
} else if (CommonUtil.isNullOrEmpty(listDetailJenisProdukException)
|
||||
|| (CommonUtil.isNotNullOrEmpty(listDetailJenisProdukException)
|
||||
&& CommonUtil.isNotNullOrEmpty(next.get("idDetailJenisProduk"))
|
||||
@ -1190,7 +1208,7 @@ public class RemunerasiServiceImpl extends BaseVoServiceImpl implements Remunera
|
||||
* Diluar pembatasan jenis produk
|
||||
*/
|
||||
if (!idsPerawat.contains(Integer.parseInt(next.get("idProduk").toString()))
|
||||
|| (KK_UMUM.equals(idKKDokter)
|
||||
|| ( (KK_UMUM.equals(idKKDokter) || idPegawai.equals(1249))
|
||||
&& !idsDokterUmumExclude
|
||||
.contains(Integer.parseInt(next.get("idProduk").toString()))
|
||||
&& tglAwal.before(tmtTarif2024))) {
|
||||
@ -1271,7 +1289,8 @@ public class RemunerasiServiceImpl extends BaseVoServiceImpl implements Remunera
|
||||
|| CATHLAB.equals(next.get("idRuangan")))) {
|
||||
listPelayananRemun.add(next);
|
||||
capaianRemun += Double.parseDouble(next.get("hargaJasa").toString());
|
||||
} else if (KK_UMUM.equals(idKKDokter)
|
||||
//sapi
|
||||
} else if ( (KK_UMUM.equals(idKKDokter) || idPegawai.equals(1249))
|
||||
&& idsDokterUmumIGD.contains(Integer.parseInt(next.get("idProduk").toString()))
|
||||
&& (tglAwal.equals(tmtTarif2024) || tglAwal.after(tmtTarif2024))) {
|
||||
/*
|
||||
@ -1312,7 +1331,7 @@ public class RemunerasiServiceImpl extends BaseVoServiceImpl implements Remunera
|
||||
if (CommonUtil.isNotNullOrEmpty(next.get("idDetailJenisProduk")) && listDetailJenisProduk
|
||||
.contains(Integer.parseInt(next.get("idDetailJenisProduk").toString()))) {
|
||||
if (!idsPerawat.contains(Integer.parseInt(next.get("idProduk").toString()))
|
||||
|| (KK_UMUM.equals(idKKDokter)
|
||||
|| ( (KK_UMUM.equals(idKKDokter) || idPegawai.equals(1249))
|
||||
&& !idsDokterUmumExclude
|
||||
.contains(Integer.parseInt(next.get("idProduk").toString()))
|
||||
&& tglAwal.before(tmtTarif2024))) {
|
||||
@ -1342,7 +1361,7 @@ public class RemunerasiServiceImpl extends BaseVoServiceImpl implements Remunera
|
||||
|| (CommonUtil.isNotNullOrEmpty(next.get("idDetailJenisProduk"))
|
||||
&& !listDetailJenisProduk.contains(
|
||||
Integer.parseInt(next.get("idDetailJenisProduk").toString()))))
|
||||
&& IGD.equals(next.get("idDepartemen")) && KK_UMUM.equals(idKKDokter)
|
||||
&& IGD.equals(next.get("idDepartemen")) && (KK_UMUM.equals(idKKDokter) || idPegawai.equals(1249))
|
||||
&& idsDokterUmumIGD.contains(Integer.parseInt(next.get("idProduk").toString()))
|
||||
&& tglAwal.before(tmtTarif2024)) {
|
||||
/*
|
||||
@ -1385,7 +1404,7 @@ public class RemunerasiServiceImpl extends BaseVoServiceImpl implements Remunera
|
||||
* Diluar pembatasan jenis produk
|
||||
*/
|
||||
if (!idsPerawat.contains(Integer.parseInt(next.get("idProduk").toString()))
|
||||
|| (KK_UMUM.equals(idKKDokter)
|
||||
|| ( (KK_UMUM.equals(idKKDokter) || idPegawai.equals(1249))
|
||||
&& !idsDokterUmumExclude
|
||||
.contains(Integer.parseInt(next.get("idProduk").toString()))
|
||||
&& tglAwal.before(tmtTarif2024))) {
|
||||
@ -1401,6 +1420,7 @@ public class RemunerasiServiceImpl extends BaseVoServiceImpl implements Remunera
|
||||
listPelayananRemun.add(next);
|
||||
capaianRemun += Double.parseDouble(next.get("hargaJasa").toString());
|
||||
} else if (CommonUtil.isNullOrEmpty(next.get("idJenisProduk"))
|
||||
//rani
|
||||
|| (CommonUtil.isNotNullOrEmpty(next.get("idJenisProduk"))
|
||||
&& !idsJenisProdukNonLogbook.contains(
|
||||
Integer.parseInt(next.get("idJenisProduk").toString())))) {
|
||||
@ -1480,7 +1500,7 @@ public class RemunerasiServiceImpl extends BaseVoServiceImpl implements Remunera
|
||||
} else {
|
||||
listPelayananNonJknLuarJamKerja.add(next);
|
||||
}
|
||||
} else if (KK_UMUM.equals(idKKDokter)
|
||||
} else if ( (KK_UMUM.equals(idKKDokter) || idPegawai.equals(1249))
|
||||
&& idsDokterUmumIGD.contains(Integer.parseInt(next.get("idProduk").toString()))
|
||||
&& (tglAwal.equals(tmtTarif2024) || tglAwal.after(tmtTarif2024))) {
|
||||
/*
|
||||
@ -1531,8 +1551,9 @@ public class RemunerasiServiceImpl extends BaseVoServiceImpl implements Remunera
|
||||
*/
|
||||
if (CommonUtil.isNotNullOrEmpty(next.get("idDetailJenisProduk")) && listDetailJenisProduk
|
||||
.contains(Integer.parseInt(next.get("idDetailJenisProduk").toString()))) {
|
||||
if (!idsPerawat.contains(Integer.parseInt(next.get("idProduk").toString()))
|
||||
|| (KK_UMUM.equals(idKKDokter)
|
||||
if (
|
||||
//LUMPING
|
||||
!idsPerawat.contains(Integer.parseInt(next.get("idProduk").toString())) || ( (KK_UMUM.equals(idKKDokter) || idPegawai.equals(1249))
|
||||
&& !idsDokterUmumExclude
|
||||
.contains(Integer.parseInt(next.get("idProduk").toString()))
|
||||
&& tglAwal.before(tmtTarif2024))) {
|
||||
@ -1568,7 +1589,7 @@ public class RemunerasiServiceImpl extends BaseVoServiceImpl implements Remunera
|
||||
|| (CommonUtil.isNotNullOrEmpty(next.get("idDetailJenisProduk"))
|
||||
&& !listDetailJenisProduk.contains(
|
||||
Integer.parseInt(next.get("idDetailJenisProduk").toString()))))
|
||||
&& IGD.equals(next.get("idDepartemen")) && KK_UMUM.equals(idKKDokter)
|
||||
&& IGD.equals(next.get("idDepartemen")) && (KK_UMUM.equals(idKKDokter) || idPegawai.equals(1249))
|
||||
&& idsDokterUmumIGD.contains(Integer.parseInt(next.get("idProduk").toString()))
|
||||
&& tglAwal.before(tmtTarif2024)) {
|
||||
/*
|
||||
@ -1623,7 +1644,7 @@ public class RemunerasiServiceImpl extends BaseVoServiceImpl implements Remunera
|
||||
* Diluar pembatasan jenis produk
|
||||
*/
|
||||
if (!idsPerawat.contains(Integer.parseInt(next.get("idProduk").toString()))
|
||||
|| (KK_UMUM.equals(idKKDokter)
|
||||
|| ( (KK_UMUM.equals(idKKDokter) || idPegawai.equals(1249))
|
||||
&& !idsDokterUmumExclude
|
||||
.contains(Integer.parseInt(next.get("idProduk").toString()))
|
||||
&& tglAwal.before(tmtTarif2024))) {
|
||||
@ -1856,8 +1877,17 @@ public class RemunerasiServiceImpl extends BaseVoServiceImpl implements Remunera
|
||||
.map(d -> d.get("paketId").toString() + d.get("idKelas").toString()).collect(Collectors.toList()));
|
||||
allConcatProdukKelas.addAll(listData.stream().filter(d -> CommonUtil.isNotNullOrEmpty(d.get("idProduk")))
|
||||
.map(d -> d.get("idProduk").toString() + d.get("idKelas").toString()).collect(Collectors.toList()));
|
||||
List<HargaNettoProdukByKelasD> tarifDetailReguler = hargaNettoProdukByKelasDDao
|
||||
.findByConcateProdukKelas(allConcatProdukKelas);
|
||||
//List<HargaNettoProdukByKelasD> tarifDetailReguler = hargaNettoProdukByKelasDDao.findByConcateProdukKelas(allConcatProdukKelas); // Ganti Versi batching
|
||||
|
||||
final int BATCH_SIZE = Master.AppDefaultVariabel.RECURSIVE_BATCH; // Limitasi Jumlah Data Per Batch
|
||||
int total = allConcatProdukKelas.size();
|
||||
List<HargaNettoProdukByKelasD> tarifDetailReguler = new ArrayList<>();
|
||||
for (int i = 0; i < total; i += BATCH_SIZE) {
|
||||
int end = Math.min(i + BATCH_SIZE, total);
|
||||
List<String> batchKeys = allConcatProdukKelas.subList(i, end);
|
||||
List<HargaNettoProdukByKelasD> batchResult = hargaNettoProdukByKelasDDao.findByConcateProdukKelas(batchKeys);
|
||||
tarifDetailReguler.addAll(batchResult);
|
||||
}
|
||||
List<String> allConcatProdukNonkelas = listData.stream()
|
||||
.filter(d -> CommonUtil.isNotNullOrEmpty(d.get("regRefId")))
|
||||
.map(d -> d.get("regRefId").toString() + NON_KELAS).collect(Collectors.toList());
|
||||
@ -1865,8 +1895,17 @@ public class RemunerasiServiceImpl extends BaseVoServiceImpl implements Remunera
|
||||
.map(d -> d.get("paketId").toString() + NON_KELAS).collect(Collectors.toList()));
|
||||
allConcatProdukNonkelas.addAll(listData.stream().filter(d -> CommonUtil.isNotNullOrEmpty(d.get("idProduk")))
|
||||
.map(d -> d.get("idProduk").toString() + NON_KELAS).collect(Collectors.toList()));
|
||||
List<HargaNettoProdukByKelasD> tarifDetailNonKelas = hargaNettoProdukByKelasDDao
|
||||
.findByConcateProdukKelas(allConcatProdukNonkelas);
|
||||
//List<HargaNettoProdukByKelasD> tarifDetailNonKelas = hargaNettoProdukByKelasDDao.findByConcateProdukKelas(allConcatProdukNonkelas); // Ganti Versi batching
|
||||
|
||||
final int BATCH_SIZE_NB = Master.AppDefaultVariabel.RECURSIVE_BATCH;
|
||||
int totalNB = allConcatProdukNonkelas.size();
|
||||
List<HargaNettoProdukByKelasD> tarifDetailNonKelas = new ArrayList<>();
|
||||
for (int i = 0; i < totalNB; i += BATCH_SIZE_NB) {
|
||||
int end = Math.min(i + BATCH_SIZE_NB, totalNB);
|
||||
List<String> batchKeys = allConcatProdukNonkelas.subList(i, end);
|
||||
List<HargaNettoProdukByKelasD> batchResult = hargaNettoProdukByKelasDDao.findByConcateProdukKelas(batchKeys);
|
||||
tarifDetailNonKelas.addAll(batchResult);
|
||||
}
|
||||
Set<Map<String, Object>> ibuPaketDiRanapByDokter = pelayananPasienDao.findPasienPaketDiRanapByDokter(drKsmObgyn,
|
||||
allProdukEntriId, Arrays.asList(GRUP_RAWAT_INAP));
|
||||
Set<Integer> setIdIbu = ibuPaketDiRanapByDokter.stream()
|
||||
@ -2227,6 +2266,9 @@ public class RemunerasiServiceImpl extends BaseVoServiceImpl implements Remunera
|
||||
} else {
|
||||
remunFfs = this.splitRemunFfs(idPegawai, bulan);
|
||||
}
|
||||
|
||||
// cek disini
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
List<Map<String, Object>> listData = (List<Map<String, Object>>) remunFfs.get("remun");
|
||||
Double target = Double.parseDouble(remunFfs.get("targetRemun").toString());
|
||||
@ -2254,6 +2296,14 @@ public class RemunerasiServiceImpl extends BaseVoServiceImpl implements Remunera
|
||||
double persenRemunVisiteDokterKelompokBudiRahmat = toDoubleSettingFix(
|
||||
"persenRemunVisiteDokterKelompokBudiRahmat", tglAkhir);
|
||||
long millisPersenJasa2024 = Long.parseLong(getSettingDataFixed("tmtPersenJasa2024"));
|
||||
|
||||
Integer[] ICU_NICU;
|
||||
if((date.before(new Date(1761929999000L)) || date.equals(new Date(1761929999000L)))){
|
||||
ICU_NICU = ICU_NICU_V1;
|
||||
}else{
|
||||
ICU_NICU = ICU_NICU_v2;
|
||||
}
|
||||
|
||||
/*
|
||||
* TMT persentase jasa tahun 2024
|
||||
*/
|
||||
@ -2273,14 +2323,19 @@ public class RemunerasiServiceImpl extends BaseVoServiceImpl implements Remunera
|
||||
/*
|
||||
* Filtering tools: pelayanan bedah
|
||||
*/
|
||||
|
||||
List<Integer> dokterAndAsisten = Arrays.asList(DOKTER_PEMERIKSA_AND_ASISTEN);
|
||||
List<Integer> listKsm = Arrays.asList(KSM);
|
||||
List<String> idPelayananByDokter = pelayananPasienDao.findIdPelayananByDokter(idPegawai, tglAwal, tglAkhir,
|
||||
dokterAndAsisten);
|
||||
List<String> idPelayananByKsm = pelayananPasienDao.findIdPelayananByKsm(tglAwal, tglAkhir, listKsm,
|
||||
dokterAndAsisten);
|
||||
List<PelayananDokterBedahDto> pelayananBedah = pelayananPasienDao.findPelayananBedah(tglAwal, tglAkhir, listKsm,
|
||||
dokterAndAsisten, idPelayananByDokter, idPelayananByKsm);
|
||||
List<PelayananDokterBedahDto> pelayananBedah;
|
||||
if (idPegawai != 961 && idPegawai != 538 && CommonUtil.isNotNullOrEmpty(idPelayananByDokter) && CommonUtil.isNotNullOrEmpty(idPelayananByKsm) && CommonUtil.isNotNullOrEmpty(dokterAndAsisten) && CommonUtil.isNotNullOrEmpty(listKsm) ){
|
||||
pelayananBedah = pelayananPasienDao.findPelayananBedah(tglAwal, tglAkhir, listKsm, dokterAndAsisten, idPelayananByDokter, idPelayananByKsm);
|
||||
}else{
|
||||
pelayananBedah = new ArrayList<>();
|
||||
}
|
||||
/*
|
||||
* Set persen jasa dan harga jasa pasien bpjs di ibs, icu
|
||||
*/
|
||||
@ -2296,6 +2351,8 @@ public class RemunerasiServiceImpl extends BaseVoServiceImpl implements Remunera
|
||||
double persenOperatorAkumulatif = persenOperator;
|
||||
StatusPersenBedah statusPersenBedah = decidePercentBedah(pelayananBedah, d);
|
||||
if (CommonUtil.isNotNullOrEmpty(statusPersenBedah) && FULL_OPERATOR.equals(statusPersenBedah)
|
||||
//was here
|
||||
&& Arrays.asList(KELOMPOK_BPJS).contains(Integer.parseInt(d.get("idKelompokPasien").toString()))
|
||||
&& (tglAwal.equals(tmtPersenJasa2024) || tglAwal.after(tmtPersenJasa2024)))
|
||||
persenOperatorAkumulatif += persenAsisten;
|
||||
double hargaJual = Double.parseDouble(d.get("hargaJual").toString());
|
||||
@ -2317,7 +2374,7 @@ public class RemunerasiServiceImpl extends BaseVoServiceImpl implements Remunera
|
||||
double persenJasa = persenOperatorAkumulatif / 100;
|
||||
RemunHargaJasaDto hargaJasa = hargaJasa(persenJasa * persenTarifIBS, hargaJual, d);
|
||||
d.put("persenJasa", persenOperatorAkumulatif + "%");
|
||||
d.put("keterangan", "Tarif Jasa Bedah (" + persenTarifJasaBedah + "%)" + hargaJasa.getKeterangan());
|
||||
d.put("keterangan", "Tarif Jasa (" + persenTarifJasaBedah + "%)" + hargaJasa.getKeterangan());
|
||||
d.put("hargaJasa", hargaJasa.getNilai());
|
||||
} else if ((BEDAH_SENTRAL.equals(d.get("idDepartemen"))
|
||||
|| (RADIOLOGI.equals(d.get("idDepartemen")) && CATHLAB.equals(d.get("idRuangan"))))
|
||||
@ -2327,7 +2384,7 @@ public class RemunerasiServiceImpl extends BaseVoServiceImpl implements Remunera
|
||||
double persenJasa = persenAsisten / 100;
|
||||
RemunHargaJasaDto hargaJasa = hargaJasa(persenJasa * persenTarifIBS, hargaJual, d);
|
||||
d.put("persenJasa", persenAsisten + "%");
|
||||
d.put("keterangan", "Tarif Jasa Bedah (" + persenTarifJasaBedah + "%)" + hargaJasa.getKeterangan());
|
||||
d.put("keterangan", "Tarif Jasa (" + persenTarifJasaBedah + "%)" + hargaJasa.getKeterangan());
|
||||
d.put("hargaJasa", hargaJasa.getNilai());
|
||||
} else if ((BEDAH_SENTRAL.equals(d.get("idDepartemen"))
|
||||
|| (RADIOLOGI.equals(d.get("idDepartemen")) && CATHLAB.equals(d.get("idRuangan"))))
|
||||
@ -2337,7 +2394,7 @@ public class RemunerasiServiceImpl extends BaseVoServiceImpl implements Remunera
|
||||
double persenJasa = persenAnestesi / 100;
|
||||
RemunHargaJasaDto hargaJasa = hargaJasa(persenJasa * persenTarifIBS, hargaJual, d);
|
||||
d.put("persenJasa", persenAnestesi + "%");
|
||||
d.put("keterangan", "Tarif Jasa Bedah (" + persenTarifJasaBedah + "%)" + hargaJasa.getKeterangan());
|
||||
d.put("keterangan", "Tarif Jasa (" + persenTarifJasaBedah + "%)" + hargaJasa.getKeterangan());
|
||||
d.put("hargaJasa", hargaJasa.getNilai());
|
||||
} else if ((BEDAH_SENTRAL.equals(d.get("idDepartemen"))
|
||||
|| (RADIOLOGI.equals(d.get("idDepartemen")) && CATHLAB.equals(d.get("idRuangan"))))
|
||||
@ -2444,7 +2501,7 @@ public class RemunerasiServiceImpl extends BaseVoServiceImpl implements Remunera
|
||||
double persenJasa = persenTindakan / 100;
|
||||
RemunHargaJasaDto hargaJasa = hargaJasa(persenJasa * persenTarifICU, hargaJual, d);
|
||||
d.put("persenJasa", persenTindakan + "%");
|
||||
d.put("keterangan", "Tarif Jasa ICU (" + persenTarifJasaICU + "%)" + hargaJasa.getKeterangan());
|
||||
d.put("keterangan", "Tarif Jasa (" + persenTarifJasaICU + "%)" + hargaJasa.getKeterangan());
|
||||
d.put("hargaJasa", hargaJasa.getNilai());
|
||||
} else {
|
||||
RemunHargaJasaDto hargaJasa = hargaJasa(persenTindakan / 100, hargaJual, d);
|
||||
@ -2677,8 +2734,12 @@ public class RemunerasiServiceImpl extends BaseVoServiceImpl implements Remunera
|
||||
dokterAndAsisten);
|
||||
List<String> idPelayananByKsm = pelayananPasienDao.findIdPelayananByKsm(tglAwal, tglAkhir, listKsm,
|
||||
dokterAndAsisten);
|
||||
List<PelayananDokterBedahDto> pelayananBedah = pelayananPasienDao.findPelayananBedah(tglAwal, tglAkhir, listKsm,
|
||||
dokterAndAsisten, idPelayananByDokter, idPelayananByKsm);
|
||||
List<PelayananDokterBedahDto> pelayananBedah;
|
||||
if (idPegawai != 961 && idPegawai != 538 && CommonUtil.isNotNullOrEmpty(idPelayananByDokter) && CommonUtil.isNotNullOrEmpty(idPelayananByKsm) && CommonUtil.isNotNullOrEmpty(dokterAndAsisten) && CommonUtil.isNotNullOrEmpty(listKsm) ){
|
||||
pelayananBedah = pelayananPasienDao.findPelayananBedah(tglAwal, tglAkhir, listKsm, dokterAndAsisten, idPelayananByDokter, idPelayananByKsm);
|
||||
}else{
|
||||
pelayananBedah = new ArrayList<>();
|
||||
}
|
||||
/*
|
||||
* Mapping persentase jasa remunerasi
|
||||
*/
|
||||
@ -2686,6 +2747,7 @@ public class RemunerasiServiceImpl extends BaseVoServiceImpl implements Remunera
|
||||
double persenOperatorAkumulatif = persenOperator;
|
||||
StatusPersenBedah statusPersenBedah = decidePercentBedah(pelayananBedah, d);
|
||||
if (CommonUtil.isNotNullOrEmpty(statusPersenBedah) && FULL_OPERATOR.equals(statusPersenBedah)
|
||||
&& Arrays.asList(KELOMPOK_BPJS).contains(Integer.parseInt(d.get("idKelompokPasien").toString()))
|
||||
&& (tglAwal.equals(tmtPersenJasa2024) || tglAwal.after(tmtPersenJasa2024)))
|
||||
persenOperatorAkumulatif += persenAsisten;
|
||||
double hargaJual = Double.parseDouble(d.get("hargaJual").toString());
|
||||
@ -3575,12 +3637,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()) {
|
||||
@ -3665,12 +3740,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()) {
|
||||
|
||||
@ -75,4 +75,15 @@ public class DataCutiDto {
|
||||
|
||||
private Integer jatahIzin;
|
||||
|
||||
private Integer intervensiCutiB;
|
||||
|
||||
private Integer intervensiCutiB1;
|
||||
|
||||
private Integer intervensiCutiB2;
|
||||
|
||||
private Integer intervensiCutiN;
|
||||
|
||||
private Integer intervensiCutiN1;
|
||||
|
||||
private Integer intervensiCutiN2;
|
||||
}
|
||||
|
||||
@ -52,4 +52,8 @@ public class JatahCutiDanIzin extends BaseTransaction {
|
||||
@Caption(value = "Tangguhkan Sisa Cuti")
|
||||
private Boolean isTangguhkan;
|
||||
|
||||
@Column(name = "IntervensiCuti", insertable = true, updatable = true, nullable = true)
|
||||
@Caption(value = "IntervensiCuti")
|
||||
private Integer intervensiCuti;
|
||||
|
||||
}
|
||||
|
||||
@ -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;
|
||||
|
||||
}
|
||||
@ -26,4 +26,6 @@ public class JatahCutiDanIzinVO extends BaseTransactionVO {
|
||||
|
||||
private Boolean isTangguhkan;
|
||||
|
||||
private Integer intervensiCuti;
|
||||
|
||||
}
|
||||
|
||||
@ -171,4 +171,8 @@ public class PelayananPasienVO extends MedicalRecordTransactionVO {
|
||||
|
||||
private Double persenCito;
|
||||
|
||||
private Boolean isHoliday;
|
||||
|
||||
private Double persenHoliday;
|
||||
|
||||
}
|
||||
@ -199,9 +199,16 @@ public class LogbookTask {
|
||||
LOGGER.info("Simpan rekapitulasi logbook dokter berhasil...!");
|
||||
}
|
||||
|
||||
/*
|
||||
@Scheduled(cron = "0 0 0 1-6 * ?")
|
||||
public void saveRekapDetailLogbookDokter() {
|
||||
logbookRemunService.generateRecap();
|
||||
}
|
||||
*/
|
||||
|
||||
@Scheduled(cron = "0 15 0 4-5 * ?")
|
||||
public void saveRekapDetailLogbookDokter() {
|
||||
logbookRemunService.generateRecap(null);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -1027,6 +1027,28 @@ public class IkiDanRemunerasiController extends LocaleController<IkiDanRemuneras
|
||||
}
|
||||
}
|
||||
|
||||
@RequestMapping(value = "/catatan-kegiatan-harian-tanpa-status-verif", method = GET)
|
||||
public ResponseEntity<List<Map<String, Object>>> getCatatanKegiatanHarianAllTanpaStatusVerif(HttpServletRequest request,
|
||||
@RequestParam(value = "pegawaiId") Integer idPegawai, @RequestParam(value = "jabatanId") Integer idJabatan,
|
||||
@RequestParam(value = "bulan") Long bulan) {
|
||||
try {
|
||||
List<Map<String, Object>> 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<List<Map<String, Object>>> getCatatanKegiatanHarianBelumVerif(HttpServletRequest request,
|
||||
@RequestParam(value = "pegawaiId") Integer idPegawai, @RequestParam(value = "jabatanId") Integer idJabatan,
|
||||
|
||||
@ -11,6 +11,7 @@ import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.orm.jpa.JpaSystemException;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
import org.springframework.web.bind.annotation.PathVariable;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
|
||||
@ -23,6 +24,7 @@ import static org.springframework.http.HttpStatus.ACCEPTED;
|
||||
import static org.springframework.http.HttpStatus.INTERNAL_SERVER_ERROR;
|
||||
import static org.springframework.http.MediaType.APPLICATION_JSON_VALUE;
|
||||
import static org.springframework.web.bind.annotation.RequestMethod.POST;
|
||||
import static org.springframework.web.bind.annotation.RequestMethod.GET;
|
||||
|
||||
/**
|
||||
* @author Salman
|
||||
@ -41,7 +43,7 @@ public class LogbookRemunController extends LocaleController<LogbookKinerjaVO> {
|
||||
@RequestMapping(value = "/rekap", method = POST, produces = APPLICATION_JSON_VALUE)
|
||||
public ResponseEntity<String> patchingRecapLogbook(HttpServletRequest request) {
|
||||
try {
|
||||
logbookRemunService.generateRecap();
|
||||
logbookRemunService.generateRecap(null);
|
||||
mapHeaderMessage.put(LABEL_SUCCESS, getMessage(MessageResource.LABEL_SUCCESS, request));
|
||||
return getJsonResponse("The recap has been successfully generated", ACCEPTED, mapHeaderMessage);
|
||||
} catch (ServiceVOException | JpaSystemException e) {
|
||||
@ -51,4 +53,17 @@ public class LogbookRemunController extends LocaleController<LogbookKinerjaVO> {
|
||||
}
|
||||
}
|
||||
|
||||
@RequestMapping(value = "/rekap/by-pegawai/{idPegawai}", method = GET, produces = APPLICATION_JSON_VALUE)
|
||||
public ResponseEntity<String> patchingRecapLogbook1(HttpServletRequest request, @PathVariable("idPegawai") Integer idPegawai) {
|
||||
try {
|
||||
//System.out.println(idPegawai);
|
||||
logbookRemunService.generateRecap(idPegawai);
|
||||
mapHeaderMessage.put(LABEL_SUCCESS, getMessage(MessageResource.LABEL_SUCCESS, request));
|
||||
return getJsonResponse("The recap has been successfully generated", ACCEPTED, mapHeaderMessage);
|
||||
} catch (ServiceVOException | JpaSystemException e) {
|
||||
LOGGER.error("Got Exception {} when generateRecap", e.getMessage());
|
||||
mapHeaderMessage.put(ERROR_MESSAGE, e.getMessage());
|
||||
return getJsonHttptatus(INTERNAL_SERVER_ERROR, mapHeaderMessage);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -30,6 +30,8 @@ import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.orm.jpa.JpaSystemException;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import javax.validation.Valid;
|
||||
@ -2627,7 +2629,18 @@ public class SdmController extends LocaleController<AkunVO> {
|
||||
getMessage(MessageResource.LABEL_SUCCESS, request));
|
||||
return RestUtil.getJsonResponse(result, HttpStatus.OK);
|
||||
} catch (Exception e) {
|
||||
return RestUtil.getJsonHttptatus(HttpStatus.INTERNAL_SERVER_ERROR);
|
||||
Map<String, Object> error = new HashMap<>();
|
||||
error.put("message", e.getMessage());
|
||||
|
||||
if (e.getStackTrace() != null && e.getStackTrace().length > 0) {
|
||||
error.put("line", e.getStackTrace()[0].getLineNumber());
|
||||
error.put("class", e.getStackTrace()[0].getClassName());
|
||||
error.put("method", e.getStackTrace()[0].getMethodName());
|
||||
}
|
||||
|
||||
return RestUtil.getJsonResponse(error, HttpStatus.INTERNAL_SERVER_ERROR);
|
||||
|
||||
//return RestUtil.getJsonHttptatus(HttpStatus.INTERNAL_SERVER_ERROR);
|
||||
}
|
||||
}
|
||||
|
||||
@ -2642,7 +2655,16 @@ public class SdmController extends LocaleController<AkunVO> {
|
||||
getMessage(MessageResource.LABEL_SUCCESS, request));
|
||||
return RestUtil.getJsonResponse(result, HttpStatus.OK);
|
||||
} catch (Exception e) {
|
||||
return RestUtil.getJsonHttptatus(HttpStatus.INTERNAL_SERVER_ERROR);
|
||||
Map<String, Object> error = new HashMap<>();
|
||||
error.put("message", e.getMessage());
|
||||
|
||||
if (e.getStackTrace() != null && e.getStackTrace().length > 0) {
|
||||
error.put("line", e.getStackTrace()[0].getLineNumber());
|
||||
error.put("class", e.getStackTrace()[0].getClassName());
|
||||
error.put("method", e.getStackTrace()[0].getMethodName());
|
||||
}
|
||||
|
||||
return RestUtil.getJsonResponse(error, HttpStatus.INTERNAL_SERVER_ERROR);
|
||||
}
|
||||
}
|
||||
|
||||
@ -3823,6 +3845,53 @@ public class SdmController extends LocaleController<AkunVO> {
|
||||
}
|
||||
}
|
||||
|
||||
// Create Fitur Auto Generate Capaian Kehadian
|
||||
@RequestMapping(value = "/new-rekap-kehadiran", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)
|
||||
public ResponseEntity<Map<String, Object>> generateCapaianHariDanJamKerjaPegawai(
|
||||
HttpServletRequest request) {
|
||||
try {
|
||||
Map<String, Object> result = monitoringAbsenService.rekapitulasiCapaianHariDanJamKerjaPegawai(null, null);
|
||||
mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_SUCCESS,
|
||||
getMessage(MessageResource.LABEL_SUCCESS, request));
|
||||
return RestUtil.getJsonResponse(result, HttpStatus.OK);
|
||||
} catch (Exception e) {
|
||||
Map<String, Object> error = new HashMap<>();
|
||||
error.put("message", e.getMessage());
|
||||
|
||||
if (e.getStackTrace() != null && e.getStackTrace().length > 0) {
|
||||
error.put("line", e.getStackTrace()[0].getLineNumber());
|
||||
error.put("class", e.getStackTrace()[0].getClassName());
|
||||
error.put("method", e.getStackTrace()[0].getMethodName());
|
||||
}
|
||||
|
||||
return RestUtil.getJsonResponse(error, HttpStatus.INTERNAL_SERVER_ERROR);
|
||||
}
|
||||
}
|
||||
|
||||
@RequestMapping(value = "/new-rekap-kehadiran/{startDate}/{endDate}", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)
|
||||
public ResponseEntity<Map<String, Object>> generateCapaianHariDanJamKerjaPegawaiByDate(@PathVariable("startDate") String startDate, @PathVariable("endDate") String endDate, HttpServletRequest request) {
|
||||
try {
|
||||
Map<String, Object> result = monitoringAbsenService.rekapitulasiCapaianHariDanJamKerjaPegawai(startDate, endDate);
|
||||
mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_SUCCESS,
|
||||
getMessage(MessageResource.LABEL_SUCCESS, request));
|
||||
return RestUtil.getJsonResponse(result, HttpStatus.OK);
|
||||
} catch (Exception e) {
|
||||
|
||||
Map<String, Object> error = new HashMap<>();
|
||||
error.put("message", e.getMessage());
|
||||
|
||||
if (e.getStackTrace() != null && e.getStackTrace().length > 0) {
|
||||
error.put("line", e.getStackTrace()[0].getLineNumber());
|
||||
error.put("class", e.getStackTrace()[0].getClassName());
|
||||
error.put("method", e.getStackTrace()[0].getMethodName());
|
||||
}
|
||||
|
||||
return RestUtil.getJsonResponse(error, HttpStatus.INTERNAL_SERVER_ERROR);
|
||||
|
||||
//return RestUtil.getJsonHttptatus(HttpStatus.INTERNAL_SERVER_ERROR);
|
||||
}
|
||||
}
|
||||
|
||||
@RequestMapping(value = "/rekap-kehadiran-by-unit-kerja/{idUnitKerja}/{startDate}/{endDate}", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)
|
||||
public ResponseEntity<Map<String, Object>> rekapKehadiranByUnitKerja(
|
||||
@PathVariable("idUnitKerja") Integer idUnitKerja, @PathVariable("startDate") String startDate,
|
||||
@ -4236,6 +4305,12 @@ public class SdmController extends LocaleController<AkunVO> {
|
||||
public ResponseEntity<Map<String, Object>> saveJatahCutiDanIzinPegawai(@Valid @RequestBody JatahCutiDanIzinVO vo,
|
||||
HttpServletRequest request) {
|
||||
try {
|
||||
/*
|
||||
Routing Untuk Update Jatah Cuti Pegawai Baik Otomatis ataupun manual.
|
||||
Berikut URL FE yang terdeteksi akses ke route ini :
|
||||
1. /app/#/DataCutiPegawai
|
||||
2. /app/#/PermohonanPerubahanStatusPegawai
|
||||
*/
|
||||
Map<String, Object> result = servicePermohonanStatus.setJatahCutiPegawaiRecursive(vo);
|
||||
if (null != result)
|
||||
mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_SUCCESS,
|
||||
@ -5918,4 +5993,18 @@ public class SdmController extends LocaleController<AkunVO> {
|
||||
}
|
||||
}
|
||||
|
||||
@RequestMapping(value = "cek-health", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)
|
||||
public ResponseEntity<Map<String, Object>> cekHealth(HttpServletRequest request) {
|
||||
|
||||
long startTime = System.currentTimeMillis();
|
||||
|
||||
Map<String, Object> body = new HashMap<>();
|
||||
String now = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
|
||||
|
||||
body.put("message", "ready");
|
||||
body.put("time", now);
|
||||
|
||||
return ResponseEntity.ok(body);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user