From 7e36082972e50929ac52795644e5af3e22712828 Mon Sep 17 00:00:00 2001 From: Salman Manoe Date: Fri, 16 Jun 2023 10:01:34 +0700 Subject: [PATCH] Update PelayananPasienServiceImpl.java Perbaikan performance logbook dokter data besar karena grouping harga jasa --- .../impl/PelayananPasienServiceImpl.java | 242 +++++++++--------- 1 file changed, 114 insertions(+), 128 deletions(-) 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 22c48b5d..4b75af41 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 @@ -1591,33 +1591,30 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel */ for (Integer idProduk : listIdProduk) { for (String persenJasa : listPersenJasa) { - for (Double hargaJasa : listHargaJasa) { - for (Double hargaJual : listHargaJual) { - for (Integer idKelompokPasien : listIdKelompokPasien) { - for (String tanggal : listTanggal) { - Map mapData = new HashMap<>(); - double jumlah = 0.0; - List norecs = new ArrayList<>(); - int dataHitungKe = 0; - for (Map map : listData) { - if (idProduk.equals(map.get("idProduk")) && persenJasa.equals(map.get("persenJasa")) - && hargaJasa.equals(map.get("hargaJasa")) - && hargaJual.equals(map.get("hargaJual")) - && idKelompokPasien.equals(map.get("idKelompokPasien")) - && tanggal.equals(map.get("tanggal"))) { - jumlah += Double.parseDouble(map.get("jumlah").toString()); - norecs.add(map.get("idPelayananPasien").toString()); - dataHitungKe++; - if (dataHitungKe == 1) - mapData.putAll(map); - } - } - if (CommonUtil.isNotNullOrEmpty(mapData.get("jumlah"))) { - mapData.put("jumlah", jumlah); - mapData.put("norecs", norecs); - dataTanggal.add(mapData); + for (Double hargaJual : listHargaJual) { + for (Integer idKelompokPasien : listIdKelompokPasien) { + for (String tanggal : listTanggal) { + Map mapData = new HashMap<>(); + double jumlah = 0.0; + List norecs = new ArrayList<>(); + int dataHitungKe = 0; + for (Map map : listData) { + if (idProduk.equals(map.get("idProduk")) && persenJasa.equals(map.get("persenJasa")) + && hargaJual.equals(map.get("hargaJual")) + && idKelompokPasien.equals(map.get("idKelompokPasien")) + && tanggal.equals(map.get("tanggal"))) { + jumlah += Double.parseDouble(map.get("jumlah").toString()); + norecs.add(map.get("idPelayananPasien").toString()); + dataHitungKe++; + if (dataHitungKe == 1) + mapData.putAll(map); } } + if (CommonUtil.isNotNullOrEmpty(mapData.get("jumlah"))) { + mapData.put("jumlah", jumlah); + mapData.put("norecs", norecs); + dataTanggal.add(mapData); + } } } } @@ -1628,44 +1625,41 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel */ for (Integer idProduk : listIdProduk) { for (String persenJasa : listPersenJasa) { - for (Double hargaJasa : listHargaJasa) { - for (Double hargaJual : listHargaJual) { - for (Integer idKelompokPasien : listIdKelompokPasien) { - Map mapResult = new HashMap<>(); - List> detail = new ArrayList<>(); - int counter = 0; - double jumlah = 0.0; - double jumlahHargaJasa = 0.0; - for (Map map : dataTanggal) { - Map mapCount = new HashMap<>(); - if (idProduk.equals(map.get("idProduk")) && persenJasa.equals(map.get("persenJasa")) - && hargaJasa.equals(map.get("hargaJasa")) - && hargaJual.equals(map.get("hargaJual")) - && idKelompokPasien.equals(map.get("idKelompokPasien"))) { - mapCount.put("jumlah", map.get("jumlah")); - mapCount.put("norecs", map.get("norecs")); - mapCount.put("tanggal", map.get("tanggal")); - detail.add(mapCount); - counter++; - jumlah += Double.parseDouble(map.get("jumlah").toString()); - if (counter == 1) - mapResult.putAll(map); - } + for (Double hargaJual : listHargaJual) { + for (Integer idKelompokPasien : listIdKelompokPasien) { + Map mapResult = new HashMap<>(); + List> detail = new ArrayList<>(); + int counter = 0; + double jumlah = 0.0; + double jumlahHargaJasa = 0.0; + for (Map map : dataTanggal) { + Map mapCount = new HashMap<>(); + if (idProduk.equals(map.get("idProduk")) && persenJasa.equals(map.get("persenJasa")) + && hargaJual.equals(map.get("hargaJual")) + && idKelompokPasien.equals(map.get("idKelompokPasien"))) { + mapCount.put("jumlah", map.get("jumlah")); + mapCount.put("norecs", map.get("norecs")); + mapCount.put("tanggal", map.get("tanggal")); + detail.add(mapCount); + counter++; + jumlah += Double.parseDouble(map.get("jumlah").toString()); + if (counter == 1) + mapResult.putAll(map); } - if (CommonUtil.isNotNullOrEmpty(mapResult.get("jumlah"))) { - /* - * Tambahkan data total - */ - jumlahHargaJasa = jumlah * Double.parseDouble(mapResult.get("hargaJasa").toString()); - mapResult.put("jumlah", jumlah); - mapResult.put("jumlahHargaJasa", jumlahHargaJasa); - /* - * Tambahkan data detail - */ - mapResult.put("detail", detail); + } + if (CommonUtil.isNotNullOrEmpty(mapResult.get("jumlah"))) { + /* + * Tambahkan data total + */ + jumlahHargaJasa = jumlah * Double.parseDouble(mapResult.get("hargaJasa").toString()); + mapResult.put("jumlah", jumlah); + mapResult.put("jumlahHargaJasa", jumlahHargaJasa); + /* + * Tambahkan data detail + */ + mapResult.put("detail", detail); - dataResult.add(mapResult); - } + dataResult.add(mapResult); } } } @@ -2009,36 +2003,32 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel */ for (Integer idProduk : listIdProduk) { for (String persenJasa : listPersenJasa) { - for (Double hargaJasa : listHargaJasa) { - for (Double hargaJual : listHargaJual) { - for (Integer idKelompokPasien : listIdKelompokPasien) { - for (String jenisRuangan : listJenisRuangan) { - for (String tanggal : listTanggal) { - Map mapData = new HashMap<>(); - double jumlah = 0.0; - List norecs = new ArrayList<>(); - int dataHitungKe = 0; - for (Map map : listData) { - if (idProduk.equals(map.get("idProduk")) - && persenJasa.equals(map.get("persenJasa")) - && hargaJasa.equals(map.get("hargaJasa")) - && hargaJual.equals(map.get("hargaJual")) - && idKelompokPasien.equals(map.get("idKelompokPasien")) - && jenisRuangan.equals(map.get("jenisRuangan")) - && tanggal.equals(map.get("tanggal"))) { - jumlah += Double.parseDouble(map.get("jumlah").toString()); - norecs.add(map.get("idPelayananPasien").toString()); - dataHitungKe++; - if (dataHitungKe == 1) - mapData.putAll(map); - } - } - if (CommonUtil.isNotNullOrEmpty(mapData.get("jumlah"))) { - mapData.put("jumlah", jumlah); - mapData.put("norecs", norecs); - dataTanggal.add(mapData); + for (Double hargaJual : listHargaJual) { + for (Integer idKelompokPasien : listIdKelompokPasien) { + for (String jenisRuangan : listJenisRuangan) { + for (String tanggal : listTanggal) { + Map mapData = new HashMap<>(); + double jumlah = 0.0; + List norecs = new ArrayList<>(); + int dataHitungKe = 0; + for (Map map : listData) { + if (idProduk.equals(map.get("idProduk")) && persenJasa.equals(map.get("persenJasa")) + && hargaJual.equals(map.get("hargaJual")) + && idKelompokPasien.equals(map.get("idKelompokPasien")) + && jenisRuangan.equals(map.get("jenisRuangan")) + && tanggal.equals(map.get("tanggal"))) { + jumlah += Double.parseDouble(map.get("jumlah").toString()); + norecs.add(map.get("idPelayananPasien").toString()); + dataHitungKe++; + if (dataHitungKe == 1) + mapData.putAll(map); } } + if (CommonUtil.isNotNullOrEmpty(mapData.get("jumlah"))) { + mapData.put("jumlah", jumlah); + mapData.put("norecs", norecs); + dataTanggal.add(mapData); + } } } } @@ -2050,47 +2040,43 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel */ for (Integer idProduk : listIdProduk) { for (String persenJasa : listPersenJasa) { - for (Double hargaJasa : listHargaJasa) { - for (Double hargaJual : listHargaJual) { - for (Integer idKelompokPasien : listIdKelompokPasien) { - for (String jenisRuangan : listJenisRuangan) { - Map mapResult = new HashMap<>(); - List> detail = new ArrayList<>(); - int counter = 0; - double jumlah = 0.0; - double jumlahHargaJasa = 0.0; - for (Map map : dataTanggal) { - Map mapCount = new HashMap<>(); - if (idProduk.equals(map.get("idProduk")) && persenJasa.equals(map.get("persenJasa")) - && hargaJasa.equals(map.get("hargaJasa")) - && hargaJual.equals(map.get("hargaJual")) - && idKelompokPasien.equals(map.get("idKelompokPasien")) - && jenisRuangan.equals(map.get("jenisRuangan"))) { - mapCount.put("jumlah", map.get("jumlah")); - mapCount.put("norecs", map.get("norecs")); - mapCount.put("tanggal", map.get("tanggal")); - detail.add(mapCount); - counter++; - jumlah += Double.parseDouble(map.get("jumlah").toString()); - if (counter == 1) - mapResult.putAll(map); - } - } - if (CommonUtil.isNotNullOrEmpty(mapResult.get("jumlah"))) { - /* - * Tambahkan data total - */ - jumlahHargaJasa = jumlah - * Double.parseDouble(mapResult.get("hargaJasa").toString()); - mapResult.put("jumlah", jumlah); - mapResult.put("jumlahHargaJasa", jumlahHargaJasa); - /* - * Tambahkan data detail - */ - mapResult.put("detail", detail); - result.add(mapResult); + for (Double hargaJual : listHargaJual) { + for (Integer idKelompokPasien : listIdKelompokPasien) { + for (String jenisRuangan : listJenisRuangan) { + Map mapResult = new HashMap<>(); + List> detail = new ArrayList<>(); + int counter = 0; + double jumlah = 0.0; + double jumlahHargaJasa = 0.0; + for (Map map : dataTanggal) { + Map mapCount = new HashMap<>(); + if (idProduk.equals(map.get("idProduk")) && persenJasa.equals(map.get("persenJasa")) + && hargaJual.equals(map.get("hargaJual")) + && idKelompokPasien.equals(map.get("idKelompokPasien")) + && jenisRuangan.equals(map.get("jenisRuangan"))) { + mapCount.put("jumlah", map.get("jumlah")); + mapCount.put("norecs", map.get("norecs")); + mapCount.put("tanggal", map.get("tanggal")); + detail.add(mapCount); + counter++; + jumlah += Double.parseDouble(map.get("jumlah").toString()); + if (counter == 1) + mapResult.putAll(map); } } + if (CommonUtil.isNotNullOrEmpty(mapResult.get("jumlah"))) { + /* + * Tambahkan data total + */ + jumlahHargaJasa = jumlah * Double.parseDouble(mapResult.get("hargaJasa").toString()); + mapResult.put("jumlah", jumlah); + mapResult.put("jumlahHargaJasa", jumlahHargaJasa); + /* + * Tambahkan data detail + */ + mapResult.put("detail", detail); + result.add(mapResult); + } } } }