diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/PelayananPasienServiceImpl.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/PelayananPasienServiceImpl.java index 967ff773..b6891eb1 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/PelayananPasienServiceImpl.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/PelayananPasienServiceImpl.java @@ -2108,21 +2108,40 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel return result; } - private List> groupingTanggalRemun( - List listIdProduk, List listPersenJasa, List listHargaJual, - List listIdKelompokPasien, List listTanggal, List> listData) { + private List> groupingTanggalRemun(List> listData) { + Map>>>>>> 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> result = new ArrayList<>(); - Map>>>> 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 map = new HashMap<>(); + map.put("idProduk", k1); + map.put("persenJasa", k2); + map.put("hargaJual", k3); + map.put("idKelompokPasien", k4); + map.put("tanggal", k5); + List 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> 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