Compare commits

..

No commits in common. "master" and "ade/monitor-absen/shift-pm" have entirely different histories.

5 changed files with 33 additions and 78 deletions

View File

@ -15,7 +15,7 @@
</context-param> </context-param>
<context-param> <context-param>
<param-name>spring.profiles.default</param-name> <param-name>spring.profiles.default</param-name>
<param-value>bridging</param-value> <param-value>localhost</param-value>
</context-param> </context-param>
<listener> <listener>

View File

@ -461,10 +461,6 @@ public final class Master {
public static final Integer KSM_OBGYN = 59; 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 class User {
public static final Integer MOBILE_JKN = 3; public static final Integer MOBILE_JKN = 3;
} }

View File

@ -333,25 +333,24 @@ public class LogbookKinerjaDetailServiceImpl extends BaseVoServiceImpl implement
logbookKinerjaDetailDao.save(catatanKinerja); logbookKinerjaDetailDao.save(catatanKinerja);
} }
{ {
Optional<LogbookKinerja> byIdLogbook = logbookKinerjaDao.findByNoRec(catatanKinerja.getLogbookKinerjaId()); Optional<LogbookKinerja> byIdLogbook = logbookKinerjaDao
.findByNoRec(catatanKinerja.getLogbookKinerjaId());
byIdLogbook.ifPresent(logbookKinerja -> { byIdLogbook.ifPresent(logbookKinerja -> {
if (Arrays.asList(PERCENTAGE).contains(logbookKinerja.getIndikatorKinerja().getSatuanIndikatorId())) { if (Arrays.asList(PERCENTAGE)
List<Map<String, Object>> listCatatan = logbookKinerjaDetailDao.findAvgCapaianByKontrak(logbookKinerja.getNoRec(), Arrays.asList(PERCENTAGE)); .contains(logbookKinerja.getIndikatorKinerja().getSatuanIndikatorId())) {
Optional<Map<String, Object>> catatan = listCatatan.stream().filter(c -> logbookKinerja.getNoRec().equals(c.get("logbookId"))).findFirst(); List<Map<String, Object>> listCatatan = logbookKinerjaDetailDao
if (catatan.isPresent()) { .findAvgCapaianByKontrak(logbookKinerja.getNoRec(), Arrays.asList(PERCENTAGE));
logbookKinerja.setCapaian(Double.parseDouble(catatan.get().get("avgCapaian").toString())); 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())));
} else { } else {
logbookKinerja.setCapaian(0.0); List<Map<String, Object>> listCatatan = logbookKinerjaDetailDao
} .findSumCapaianByKontrak(logbookKinerja.getNoRec(), Arrays.asList(PERCENTAGE));
Optional<Map<String, Object>> catatan = listCatatan.stream()
} else { .filter(c -> logbookKinerja.getNoRec().equals(c.get("logbookId"))).findFirst();
List<Map<String, Object>> listCatatan = logbookKinerjaDetailDao.findSumCapaianByKontrak(logbookKinerja.getNoRec(), Arrays.asList(PERCENTAGE)); catatan.ifPresent(
Optional<Map<String, Object>> catatan = listCatatan.stream().filter(c -> logbookKinerja.getNoRec().equals(c.get("logbookId"))).findFirst(); c -> logbookKinerja.setCapaian(Double.parseDouble(c.get("sumCapaian").toString())));
if (catatan.isPresent()) {
logbookKinerja.setCapaian(Double.parseDouble(catatan.get().get("sumCapaian").toString()));
} else {
logbookKinerja.setCapaian(0.0);
}
} }
logbookKinerjaDao.save(logbookKinerja); logbookKinerjaDao.save(logbookKinerja);
}); });

View File

@ -264,23 +264,19 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon
return result; return result;
} }
public Map<String, Object> jamEfektifTunggal(Date jadwalPulang, Date jadwalMasuk, long waktuIstirahat, String shift, float factorRate) { public Map<String, Object> jamEfektifTunggal(Date jadwalPulang, Date jadwalMasuk, long waktuIstirahat, String shift) {
Map<String, Object> result = new HashMap<>(); Map<String, Object> result = new HashMap<>();
String jam_efektif; String jam_efektif;
long minutes; long minutes;
Long minutesAbsen = (long) 0; Long minutesAbsen = (long) 0;
Long minutesJadwal = (long) 0; Long minutesJadwal = (long) 0;
if (CommonUtil.isNotNullOrEmpty(factorRate)) {
minutesJadwal = (long) (factorRate * 60);
}else{
if (CommonUtil.isNotNullOrEmpty(jadwalMasuk) && CommonUtil.isNotNullOrEmpty(jadwalPulang)) { if (CommonUtil.isNotNullOrEmpty(jadwalMasuk) && CommonUtil.isNotNullOrEmpty(jadwalPulang)) {
minutesJadwal = reduceTime(jadwalPulang, jadwalMasuk); minutesJadwal = reduceTime(jadwalPulang, jadwalMasuk);
if (minutesJadwal > 30) { if (minutesJadwal > 30) {
minutesJadwal = minutesJadwal - waktuIstirahat; // 30_adalah_waktu_istirahat minutesJadwal = minutesJadwal - waktuIstirahat; // 30_adalah_waktu_istirahat
} }
} }
}
minutes = minutesJadwal / 2; minutes = minutesJadwal / 2;
long menit = minutes % 60;// menit long menit = minutes % 60;// menit
@ -1874,7 +1870,7 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon
if (target.before(twoDaysAgo) || target.equals(twoDaysAgo)) { if (target.before(twoDaysAgo) || target.equals(twoDaysAgo)) {
absenTunggal++; absenTunggal++;
Map<String, Object> jamEfektif = new HashMap<>(); Map<String, Object> jamEfektif = new HashMap<>();
jamEfektif = jamEfektifTunggal(jadwalPulang, jadwalMasuk, (long) data.get("waktuIstirahat"), (String) data.get("namaShift"), (float) factorRateX); jamEfektif = jamEfektifTunggal(jadwalPulang, jadwalMasuk, (long) data.get("waktuIstirahat"), (String) data.get("namaShift"));
if (CommonUtil.isNotNullOrEmpty(jamEfektif)) { if (CommonUtil.isNotNullOrEmpty(jamEfektif)) {
jamEf = (String) jamEfektif.get("jam_efektif"); jamEf = (String) jamEfektif.get("jam_efektif");
@ -1896,7 +1892,7 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon
} }
} catch (ParseException e) { } catch (ParseException e) {
e.printStackTrace(); e.printStackTrace();
}
} else if ((CommonUtil.isNotNullOrEmpty(data.get("absensiPulang")) && CommonUtil.isNullOrEmpty(data.get("absensiMasuk"))) && (CommonUtil.isNotNullOrEmpty(jamMasuk) && CommonUtil.isNotNullOrEmpty(jamPulang))) { } else if ((CommonUtil.isNotNullOrEmpty(data.get("absensiPulang")) && CommonUtil.isNullOrEmpty(data.get("absensiMasuk"))) && (CommonUtil.isNotNullOrEmpty(jamMasuk) && CommonUtil.isNotNullOrEmpty(jamPulang))) {
absenTunggal++; absenTunggal++;
@ -2177,25 +2173,12 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon
if (target.before(twoDaysAgo) || target.equals(twoDaysAgo)) { if (target.before(twoDaysAgo) || target.equals(twoDaysAgo)) {
absenTunggal++; absenTunggal++;
Map<String, Object> jamEfektif = new HashMap<>(); Map<String, Object> jamEfektif = new HashMap<>();
jamEfektif = jamEfektifTunggal(jadwalPulang, jadwalMasuk, (long) data.get("waktuIstirahat"), (String) data.get("namaShift"), (float) factorRateX); jamEfektif = jamEfektifTunggal(jadwalPulang, jadwalMasuk, (long) data.get("waktuIstirahat"), (String) data.get("namaShift"));
if (CommonUtil.isNotNullOrEmpty(jamEfektif)) { if (CommonUtil.isNotNullOrEmpty(jamEfektif)) {
jamEf = (String) jamEfektif.get("jam_efektif"); jamEf = (String) jamEfektif.get("jam_efektif");
jumlahJamEfektif += (Long) jamEfektif.get("Minutes_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) { if (((Integer) jamEfektif.get("hariKerja")) != 0) {
harikerja += (Integer) jamEfektif.get("hariKerja"); harikerja += (Integer) jamEfektif.get("hariKerja");
p1 += (Integer) jamEfektif.get("p1"); p1 += (Integer) jamEfektif.get("p1");
@ -2204,20 +2187,18 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon
malam += (Integer) jamEfektif.get("malam"); malam += (Integer) jamEfektif.get("malam");
data.putAll(jamEfektif); data.putAll(jamEfektif);
} }
}else{ }
jumlahTerlambat += (long) 0; jumlahTerlambat += (long) 0;
data.put("terlambat", "0"); data.put("terlambat", "0");
data.put("telat", (long) 0); data.put("telat", (long) 0);
} }
}
} catch (ParseException e) { } catch (ParseException e) {
e.printStackTrace(); e.printStackTrace();
} }
} else if ((CommonUtil.isNotNullOrEmpty(data.get("absensiPulang")) && CommonUtil.isNullOrEmpty(data.get("absensiMasuk"))) && (CommonUtil.isNotNullOrEmpty(jamMasuk) && CommonUtil.isNotNullOrEmpty(jamPulang))) { } else if ((CommonUtil.isNotNullOrEmpty(data.get("absensiPulang")) && CommonUtil.isNullOrEmpty(data.get("absensiMasuk"))) && (CommonUtil.isNotNullOrEmpty(jamMasuk) && CommonUtil.isNotNullOrEmpty(jamPulang))) {
absenTunggal++; absenTunggal++;
System.out.print("terlambat 2");
} else if ( CommonUtil.isNotNullOrEmpty(data.get("factorRate")) && factorRateX > 0.0 && Arrays.asList(listKetidakhadiran).contains(data.get("kodeShift")) ) { } else if ( CommonUtil.isNotNullOrEmpty(data.get("factorRate")) && factorRateX > 0.0 && Arrays.asList(listKetidakhadiran).contains(data.get("kodeShift")) ) {
//System.out.print("Ini Gua Cuti 123"); //System.out.print("Ini Gua Cuti 123");
Map<String, Object> jamEfektif = new HashMap<>(); Map<String, Object> jamEfektif = new HashMap<>();

View File

@ -1877,17 +1877,8 @@ public class RemunerasiServiceImpl extends BaseVoServiceImpl implements Remunera
.map(d -> d.get("paketId").toString() + d.get("idKelas").toString()).collect(Collectors.toList())); .map(d -> d.get("paketId").toString() + d.get("idKelas").toString()).collect(Collectors.toList()));
allConcatProdukKelas.addAll(listData.stream().filter(d -> CommonUtil.isNotNullOrEmpty(d.get("idProduk"))) allConcatProdukKelas.addAll(listData.stream().filter(d -> CommonUtil.isNotNullOrEmpty(d.get("idProduk")))
.map(d -> d.get("idProduk").toString() + d.get("idKelas").toString()).collect(Collectors.toList())); .map(d -> d.get("idProduk").toString() + d.get("idKelas").toString()).collect(Collectors.toList()));
//List<HargaNettoProdukByKelasD> tarifDetailReguler = hargaNettoProdukByKelasDDao.findByConcateProdukKelas(allConcatProdukKelas); // Ganti Versi batching List<HargaNettoProdukByKelasD> tarifDetailReguler = hargaNettoProdukByKelasDDao
.findByConcateProdukKelas(allConcatProdukKelas);
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() List<String> allConcatProdukNonkelas = listData.stream()
.filter(d -> CommonUtil.isNotNullOrEmpty(d.get("regRefId"))) .filter(d -> CommonUtil.isNotNullOrEmpty(d.get("regRefId")))
.map(d -> d.get("regRefId").toString() + NON_KELAS).collect(Collectors.toList()); .map(d -> d.get("regRefId").toString() + NON_KELAS).collect(Collectors.toList());
@ -1895,17 +1886,8 @@ public class RemunerasiServiceImpl extends BaseVoServiceImpl implements Remunera
.map(d -> d.get("paketId").toString() + NON_KELAS).collect(Collectors.toList())); .map(d -> d.get("paketId").toString() + NON_KELAS).collect(Collectors.toList()));
allConcatProdukNonkelas.addAll(listData.stream().filter(d -> CommonUtil.isNotNullOrEmpty(d.get("idProduk"))) allConcatProdukNonkelas.addAll(listData.stream().filter(d -> CommonUtil.isNotNullOrEmpty(d.get("idProduk")))
.map(d -> d.get("idProduk").toString() + NON_KELAS).collect(Collectors.toList())); .map(d -> d.get("idProduk").toString() + NON_KELAS).collect(Collectors.toList()));
//List<HargaNettoProdukByKelasD> tarifDetailNonKelas = hargaNettoProdukByKelasDDao.findByConcateProdukKelas(allConcatProdukNonkelas); // Ganti Versi batching List<HargaNettoProdukByKelasD> tarifDetailNonKelas = hargaNettoProdukByKelasDDao
.findByConcateProdukKelas(allConcatProdukNonkelas);
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, Set<Map<String, Object>> ibuPaketDiRanapByDokter = pelayananPasienDao.findPasienPaketDiRanapByDokter(drKsmObgyn,
allProdukEntriId, Arrays.asList(GRUP_RAWAT_INAP)); allProdukEntriId, Arrays.asList(GRUP_RAWAT_INAP));
Set<Integer> setIdIbu = ibuPaketDiRanapByDokter.stream() Set<Integer> setIdIbu = ibuPaketDiRanapByDokter.stream()
@ -2266,9 +2248,6 @@ public class RemunerasiServiceImpl extends BaseVoServiceImpl implements Remunera
} else { } else {
remunFfs = this.splitRemunFfs(idPegawai, bulan); remunFfs = this.splitRemunFfs(idPegawai, bulan);
} }
// cek disini
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
List<Map<String, Object>> listData = (List<Map<String, Object>>) remunFfs.get("remun"); List<Map<String, Object>> listData = (List<Map<String, Object>>) remunFfs.get("remun");
Double target = Double.parseDouble(remunFfs.get("targetRemun").toString()); Double target = Double.parseDouble(remunFfs.get("targetRemun").toString());