Update PelayananPasienServiceImpl.java

Pembuatan method stream data logbook grouping dan jumlah kegiatan per tanggal
This commit is contained in:
Salman Manoe 2023-06-19 14:27:03 +07:00
parent ea577a8a6a
commit bf4fdefc6a

View File

@ -2108,21 +2108,40 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
return result;
}
private List<Map<String, Object>> groupingTanggalRemun(
List<Integer> listIdProduk, List<String> listPersenJasa, List<Double> listHargaJual,
List<Integer> listIdKelompokPasien, List<String> listTanggal, List<Map<String, Object>> listData) {
private List<Map<String, Object>> groupingTanggalRemun(List<Map<String, Object>> listData) {
Map<Integer, Map<String, Map<Double, Map<Integer, Map<String, List<Map<String, Object>>>>>>> collectTanggal = listData
.stream()
.collect(Collectors.groupingBy(o1 -> Integer.parseInt(o1.get("idProduk").toString()),
Collectors.groupingBy(o2 -> o2.get("persenJasa").toString(),
Collectors.groupingBy(o3 -> Double.parseDouble(o3.get("hargaJual").toString()),
Collectors.groupingBy(
o4 -> Integer
.parseInt(o4.get("idKelompokPasien").toString()),
Collectors.groupingBy(o5 -> o5.get("tanggal").toString()))))));
List<Map<String, Object>> result = new ArrayList<>();
Map<Integer, Map<String, Map<Double, Map<Integer, Map<String, DoubleSummaryStatistics>>>>> collected =
listData.stream().collect(Collectors.groupingBy(o1 -> Integer.parseInt(o1.get("idProduk").toString()),
Collectors.groupingBy(o2 -> o2.get("persenJasa").toString(),
Collectors.groupingBy(o3 -> Double.parseDouble(o3.get("hargaJual").toString()),
Collectors.groupingBy(o4 -> Integer.parseInt(o4.get("idKelompokPasien").toString()),
Collectors.groupingBy(o5 -> o5.get("tanggal").toString(),
Collectors.summarizingDouble(s1 -> Double.parseDouble(s1.get("jumlah").toString()))))))));
collected.forEach((k,v) -> {
});
return null;
collectTanggal.forEach((k1, v1) -> v1
.forEach((k2, v2) -> v2.forEach((k3, v3) -> v3.forEach((k4, v4) -> v4.forEach((k5, v5) -> {
HashMap<String, Object> map = new HashMap<>();
map.put("idProduk", k1);
map.put("persenJasa", k2);
map.put("hargaJual", k3);
map.put("idKelompokPasien", k4);
map.put("tanggal", k5);
List<String> listNorecs = v5.stream().map(e -> e.get("idPelayananPasien").toString())
.collect(Collectors.toList());
map.put("listNorecs", listNorecs);
DoubleSummaryStatistics jumlah = v5.stream()
.collect(Collectors.summarizingDouble(e -> Double.parseDouble(e.get("jumlah").toString())));
map.put("jumlah", Double.parseDouble(jumlah.toString()));
Optional<Map<String, Object>> first = v5.stream().findFirst();
first.ifPresent(e -> {
map.put("namaProduk", e.get("namaProduk").toString());
map.put("kelompokPasien", e.get("kelompokPasien").toString());
map.put("hargaJasa", Double.parseDouble(e.get("hargaJasa").toString()));
});
result.add(map);
})))));
return result;
}
@Override