Compare commits
125 Commits
ade/monito
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
8b65c492cf | ||
|
|
a0cc1cd482 | ||
|
|
1a6f7fcd16 | ||
|
|
77eb8f3672 | ||
|
|
b7139f2851 | ||
|
|
90d511e928 | ||
|
|
8c617702eb | ||
|
|
0c753e9c22 | ||
|
|
1317e877f0 | ||
|
|
248bc1cad7 | ||
|
|
db25c0aef9 | ||
|
|
82b84d2fb9 | ||
|
|
eb7b2f91ad | ||
|
|
e816f1f2e4 | ||
|
|
406ed896a9 | ||
|
|
9197ad56ce | ||
|
|
79f93d8f1e | ||
|
|
ae1e575d73 | ||
|
|
4d528f86bc | ||
|
|
a9a123cbf3 | ||
|
|
a705fc4c3b | ||
|
|
d1455fc1cf | ||
|
|
69df61e369 | ||
|
|
838739b0e1 | ||
|
|
4d73c1cbbe | ||
|
|
e6d47716ea | ||
|
|
74ca1b4cfa | ||
|
|
f5fd2a5831 | ||
|
|
f152385e55 | ||
|
|
f10373891e | ||
|
|
fbec23b80f | ||
|
|
d8de068b74 | ||
|
|
8e21f0b7cf | ||
|
|
f9d2af743f | ||
|
|
749fb0fb53 | ||
|
|
cf0e09ae01 | ||
|
|
e3dc3c5807 | ||
|
|
143bfa458e | ||
|
|
8b3a574ce1 | ||
|
|
9948599436 | ||
|
|
e6107dae92 | ||
|
|
d554375789 | ||
|
|
ef9ed72c64 | ||
|
|
b8ed331571 | ||
|
|
623f945859 | ||
|
|
ef48f2649c | ||
|
|
26e4dbb777 | ||
|
|
36eb745812 | ||
|
|
6b2df06b20 | ||
|
|
2481546942 | ||
|
|
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>
|
||||||
<context-param>
|
<context-param>
|
||||||
<param-name>spring.profiles.default</param-name>
|
<param-name>spring.profiles.default</param-name>
|
||||||
<param-value>localhost</param-value>
|
<param-value>bridging</param-value>
|
||||||
</context-param>
|
</context-param>
|
||||||
|
|
||||||
<listener>
|
<listener>
|
||||||
|
|||||||
@ -461,6 +461,10 @@ 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;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -333,24 +333,25 @@ public class LogbookKinerjaDetailServiceImpl extends BaseVoServiceImpl implement
|
|||||||
logbookKinerjaDetailDao.save(catatanKinerja);
|
logbookKinerjaDetailDao.save(catatanKinerja);
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
Optional<LogbookKinerja> byIdLogbook = logbookKinerjaDao
|
Optional<LogbookKinerja> byIdLogbook = logbookKinerjaDao.findByNoRec(catatanKinerja.getLogbookKinerjaId());
|
||||||
.findByNoRec(catatanKinerja.getLogbookKinerjaId());
|
|
||||||
byIdLogbook.ifPresent(logbookKinerja -> {
|
byIdLogbook.ifPresent(logbookKinerja -> {
|
||||||
if (Arrays.asList(PERCENTAGE)
|
if (Arrays.asList(PERCENTAGE).contains(logbookKinerja.getIndikatorKinerja().getSatuanIndikatorId())) {
|
||||||
.contains(logbookKinerja.getIndikatorKinerja().getSatuanIndikatorId())) {
|
List<Map<String, Object>> listCatatan = logbookKinerjaDetailDao.findAvgCapaianByKontrak(logbookKinerja.getNoRec(), Arrays.asList(PERCENTAGE));
|
||||||
List<Map<String, Object>> listCatatan = logbookKinerjaDetailDao
|
Optional<Map<String, Object>> catatan = listCatatan.stream().filter(c -> logbookKinerja.getNoRec().equals(c.get("logbookId"))).findFirst();
|
||||||
.findAvgCapaianByKontrak(logbookKinerja.getNoRec(), Arrays.asList(PERCENTAGE));
|
if (catatan.isPresent()) {
|
||||||
Optional<Map<String, Object>> catatan = listCatatan.stream()
|
logbookKinerja.setCapaian(Double.parseDouble(catatan.get().get("avgCapaian").toString()));
|
||||||
.filter(c -> logbookKinerja.getNoRec().equals(c.get("logbookId"))).findFirst();
|
} else {
|
||||||
catatan.ifPresent(
|
logbookKinerja.setCapaian(0.0);
|
||||||
c -> logbookKinerja.setCapaian(Double.parseDouble(c.get("avgCapaian").toString())));
|
}
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
List<Map<String, Object>> listCatatan = logbookKinerjaDetailDao
|
List<Map<String, Object>> listCatatan = logbookKinerjaDetailDao.findSumCapaianByKontrak(logbookKinerja.getNoRec(), Arrays.asList(PERCENTAGE));
|
||||||
.findSumCapaianByKontrak(logbookKinerja.getNoRec(), Arrays.asList(PERCENTAGE));
|
Optional<Map<String, Object>> catatan = listCatatan.stream().filter(c -> logbookKinerja.getNoRec().equals(c.get("logbookId"))).findFirst();
|
||||||
Optional<Map<String, Object>> catatan = listCatatan.stream()
|
if (catatan.isPresent()) {
|
||||||
.filter(c -> logbookKinerja.getNoRec().equals(c.get("logbookId"))).findFirst();
|
logbookKinerja.setCapaian(Double.parseDouble(catatan.get().get("sumCapaian").toString()));
|
||||||
catatan.ifPresent(
|
} else {
|
||||||
c -> logbookKinerja.setCapaian(Double.parseDouble(c.get("sumCapaian").toString())));
|
logbookKinerja.setCapaian(0.0);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
logbookKinerjaDao.save(logbookKinerja);
|
logbookKinerjaDao.save(logbookKinerja);
|
||||||
});
|
});
|
||||||
|
|||||||
@ -264,17 +264,21 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Map<String, Object> jamEfektifTunggal(Date jadwalPulang, Date jadwalMasuk, long waktuIstirahat, String shift) {
|
public Map<String, Object> jamEfektifTunggal(Date jadwalPulang, Date jadwalMasuk, long waktuIstirahat, String shift, float factorRate) {
|
||||||
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(jadwalMasuk) && CommonUtil.isNotNullOrEmpty(jadwalPulang)) {
|
if (CommonUtil.isNotNullOrEmpty(factorRate)) {
|
||||||
minutesJadwal = reduceTime(jadwalPulang, jadwalMasuk);
|
minutesJadwal = (long) (factorRate * 60);
|
||||||
if (minutesJadwal > 30) {
|
}else{
|
||||||
minutesJadwal = minutesJadwal - waktuIstirahat; // 30_adalah_waktu_istirahat
|
if (CommonUtil.isNotNullOrEmpty(jadwalMasuk) && CommonUtil.isNotNullOrEmpty(jadwalPulang)) {
|
||||||
|
minutesJadwal = reduceTime(jadwalPulang, jadwalMasuk);
|
||||||
|
if (minutesJadwal > 30) {
|
||||||
|
minutesJadwal = minutesJadwal - waktuIstirahat; // 30_adalah_waktu_istirahat
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1870,7 +1874,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"));
|
jamEfektif = jamEfektifTunggal(jadwalPulang, jadwalMasuk, (long) data.get("waktuIstirahat"), (String) data.get("namaShift"), (float) factorRateX);
|
||||||
|
|
||||||
if (CommonUtil.isNotNullOrEmpty(jamEfektif)) {
|
if (CommonUtil.isNotNullOrEmpty(jamEfektif)) {
|
||||||
jamEf = (String) jamEfektif.get("jam_efektif");
|
jamEf = (String) jamEfektif.get("jam_efektif");
|
||||||
@ -2173,12 +2177,25 @@ 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"));
|
jamEfektif = jamEfektifTunggal(jadwalPulang, jadwalMasuk, (long) data.get("waktuIstirahat"), (String) data.get("namaShift"), (float) factorRateX);
|
||||||
|
|
||||||
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");
|
||||||
@ -2187,11 +2204,11 @@ 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;
|
||||||
|
data.put("terlambat", "0");
|
||||||
|
data.put("telat", (long) 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
jumlahTerlambat += (long) 0;
|
|
||||||
data.put("terlambat", "0");
|
|
||||||
data.put("telat", (long) 0);
|
|
||||||
}
|
}
|
||||||
} catch (ParseException e) {
|
} catch (ParseException e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
@ -2199,6 +2216,8 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon
|
|||||||
|
|
||||||
} 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<>();
|
||||||
|
|||||||
@ -1877,8 +1877,17 @@ 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
|
//List<HargaNettoProdukByKelasD> tarifDetailReguler = hargaNettoProdukByKelasDDao.findByConcateProdukKelas(allConcatProdukKelas); // Ganti Versi batching
|
||||||
.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());
|
||||||
@ -1886,8 +1895,17 @@ 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
|
//List<HargaNettoProdukByKelasD> tarifDetailNonKelas = hargaNettoProdukByKelasDDao.findByConcateProdukKelas(allConcatProdukNonkelas); // Ganti Versi batching
|
||||||
.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()
|
||||||
@ -2248,6 +2266,9 @@ 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());
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user