From c43e6fb74adcbc729467af0e01b38ecead30df0d Mon Sep 17 00:00:00 2001 From: Salman Manoe Date: Tue, 23 May 2023 09:07:16 +0700 Subject: [PATCH] Update service pelayanan pasien Penambahan pengelompokan jenis ruangan untuk membedakan reguler dan eksekutif di logbook dokter remun baru --- .../medifirst2000/dao/PelayananPasienDao.java | 6 +- .../impl/PelayananPasienServiceImpl.java | 115 ++++++++++-------- 2 files changed, 67 insertions(+), 54 deletions(-) diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/PelayananPasienDao.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/PelayananPasienDao.java index 2cf7d22e..d83a0a59 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/PelayananPasienDao.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/PelayananPasienDao.java @@ -212,8 +212,9 @@ public interface PelayananPasienDao extends PagingAndSortingRepository listHargaJual = new ArrayList<>(); List listIdKelompokPasien = new ArrayList<>(); List listTanggal = new ArrayList<>(); + List listJenisRuangan = new ArrayList<>(); Map remunFfs = this.splitRemunFfs(idPegawai, bulan); @SuppressWarnings("unchecked") List> listData = (List>) remunFfs.get("ffs"); @@ -1327,6 +1328,8 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel listIdKelompokPasien.add(Integer.valueOf(d.get("idKelompokPasien").toString())); if (!listTanggal.contains(d.get("tanggal"))) listTanggal.add(d.get("tanggal").toString()); + if (!listJenisRuangan.contains(d.get("jenisRuangan"))) + listJenisRuangan.add(d.get("jenisRuangan").toString()); }); /* * Pengelompokkan tanggal pelayanan @@ -1335,27 +1338,30 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel for (String persenJasa : listPersenJasa) { 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); + 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); } - } - if (CommonUtil.isNotNullOrEmpty(mapData.get("jumlah"))) { - mapData.put("jumlah", jumlah); - mapData.put("norecs", norecs); - dataTanggal.add(mapData); } } } @@ -1369,38 +1375,41 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel for (String persenJasa : listPersenJasa) { 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); + 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); } - } - 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); } } } @@ -1416,7 +1425,9 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel Comparator.nullsLast(Comparator.naturalOrder()))) .sorted(Comparator.comparing(o3 -> Integer.parseInt(o3.get("sortIdKelas").toString()), Comparator.nullsLast(Comparator.naturalOrder()))) - .sorted(Comparator.comparing(o4 -> o4.get("namaProduk").toString())).collect(Collectors.toList()); + .sorted(Comparator.comparing(o4 -> o4.get("namaProduk").toString())) + .sorted(Comparator.comparing(o5 -> o5.get("jenisRuangan").toString(), Comparator.reverseOrder())) + .collect(Collectors.toList()); result.forEach(r -> { /* * Hapus informasi tidak perlu