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 fa4c945b..e4078fb0 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 @@ -657,6 +657,153 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel rawDataBpjs3.add(d); } } + /* + * Dapatkan semua pendaftaran non-jkn + */ + List> listEpisode = new ArrayList<>(); + for (Map d : listData) { + if (!Arrays.asList(Master.KelompokPasien.KELOMPOK_BPJS).contains(d.get("idKelompokPasien")) + && Master.Departemen.BEDAH_SENTRAL.equals(d.get("idDepartemen"))) { + if (!listEpisode.contains(d.get("idPasienDaftar"))) { + Map episode = new HashMap<>(); + episode.put("id", d.get("idPasienDaftar")); + episode.put("count", 1); + listEpisode.add(episode); + } + } + } + /* + * Filter tindakan operasi non-jkn, persen jasa tereduksi seiring + * banyaknya operasi yang dilakukan di satu episode pasien yang sama + */ + for (Map d : listData) { + for (Map e : listEpisode) { + if (!Arrays.asList(Master.KelompokPasien.KELOMPOK_BPJS).contains(d.get("idKelompokPasien")) + && Master.Departemen.BEDAH_SENTRAL.equals(d.get("idDepartemen")) + && d.get("idPasienDaftar").equals(e.get("id"))) { + if (e.get("count").equals(1)) { + /* + * Mendapatkan 100% dari tarif + */ + if (Master.JenisPetugasPelaksana.DOKTER_PEMERIKSA.equals(d.get("idJenisPelaksana"))) { + d.put("hargaJasa", + 1.0 * persenOperatorIBS / 100 * Double.parseDouble(d.get("hargaJual").toString())); + } else if (Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS.equals(d.get("idJenisPelaksana"))) { + d.put("hargaJasa", + 1.0 * persenAsistenIBS / 100 * Double.parseDouble(d.get("hargaJual").toString())); + } else if (Master.JenisPetugasPelaksana.DOKTER_ANASTESI.equals(d.get("idJenisPelaksana"))) { + d.put("hargaJasa", + 1.0 * persenAnestesiIBS / 100 * Double.parseDouble(d.get("hargaJual").toString())); + } + int count = Integer.parseInt(e.get("count").toString()); + e.put("count", ++count); + break; + } else if (e.get("count").equals(2)) { + /* + * Mendapatkan 50% dari tarif + */ + if (Master.JenisPetugasPelaksana.DOKTER_PEMERIKSA.equals(d.get("idJenisPelaksana"))) { + d.put("hargaJasa", + 0.5 * persenOperatorIBS / 100 * Double.parseDouble(d.get("hargaJual").toString())); + } else if (Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS.equals(d.get("idJenisPelaksana"))) { + d.put("hargaJasa", + 0.5 * persenAsistenIBS / 100 * Double.parseDouble(d.get("hargaJual").toString())); + } else if (Master.JenisPetugasPelaksana.DOKTER_ANASTESI.equals(d.get("idJenisPelaksana"))) { + d.put("hargaJasa", + 0.5 * persenAnestesiIBS / 100 * Double.parseDouble(d.get("hargaJual").toString())); + } + int count = Integer.parseInt(e.get("count").toString()); + e.put("count", ++count); + break; + } else if (e.get("count").equals(3)) { + /* + * Mendapatkan 40% dari tarif + */ + if (Master.JenisPetugasPelaksana.DOKTER_PEMERIKSA.equals(d.get("idJenisPelaksana"))) { + d.put("hargaJasa", + 0.4 * persenOperatorIBS / 100 * Double.parseDouble(d.get("hargaJual").toString())); + } else if (Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS.equals(d.get("idJenisPelaksana"))) { + d.put("hargaJasa", + 0.4 * persenAsistenIBS / 100 * Double.parseDouble(d.get("hargaJual").toString())); + } else if (Master.JenisPetugasPelaksana.DOKTER_ANASTESI.equals(d.get("idJenisPelaksana"))) { + d.put("hargaJasa", + 0.4 * persenAnestesiIBS / 100 * Double.parseDouble(d.get("hargaJual").toString())); + } + int count = Integer.parseInt(e.get("count").toString()); + e.put("count", ++count); + break; + } else if (e.get("count").equals(4)) { + /* + * Mendapatkan 30% dari tarif + */ + if (Master.JenisPetugasPelaksana.DOKTER_PEMERIKSA.equals(d.get("idJenisPelaksana"))) { + d.put("hargaJasa", + 0.3 * persenOperatorIBS / 100 * Double.parseDouble(d.get("hargaJual").toString())); + } else if (Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS.equals(d.get("idJenisPelaksana"))) { + d.put("hargaJasa", + 0.3 * persenAsistenIBS / 100 * Double.parseDouble(d.get("hargaJual").toString())); + } else if (Master.JenisPetugasPelaksana.DOKTER_ANASTESI.equals(d.get("idJenisPelaksana"))) { + d.put("hargaJasa", + 0.3 * persenAnestesiIBS / 100 * Double.parseDouble(d.get("hargaJual").toString())); + } + int count = Integer.parseInt(e.get("count").toString()); + e.put("count", ++count); + break; + } else if (e.get("count").equals(5)) { + /* + * Mendapatkan 20% dari tarif + */ + if (Master.JenisPetugasPelaksana.DOKTER_PEMERIKSA.equals(d.get("idJenisPelaksana"))) { + d.put("hargaJasa", + 0.2 * persenOperatorIBS / 100 * Double.parseDouble(d.get("hargaJual").toString())); + } else if (Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS.equals(d.get("idJenisPelaksana"))) { + d.put("hargaJasa", + 0.2 * persenAsistenIBS / 100 * Double.parseDouble(d.get("hargaJual").toString())); + } else if (Master.JenisPetugasPelaksana.DOKTER_ANASTESI.equals(d.get("idJenisPelaksana"))) { + d.put("hargaJasa", + 0.2 * persenAnestesiIBS / 100 * Double.parseDouble(d.get("hargaJual").toString())); + } + int count = Integer.parseInt(e.get("count").toString()); + e.put("count", ++count); + break; + } else if (e.get("count").equals(6)) { + /* + * Mendapatkan 10% dari tarif + */ + if (Master.JenisPetugasPelaksana.DOKTER_PEMERIKSA.equals(d.get("idJenisPelaksana"))) { + d.put("hargaJasa", + 0.1 * persenOperatorIBS / 100 * Double.parseDouble(d.get("hargaJual").toString())); + } else if (Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS.equals(d.get("idJenisPelaksana"))) { + d.put("hargaJasa", + 0.1 * persenAsistenIBS / 100 * Double.parseDouble(d.get("hargaJual").toString())); + } else if (Master.JenisPetugasPelaksana.DOKTER_ANASTESI.equals(d.get("idJenisPelaksana"))) { + d.put("hargaJasa", + 0.1 * persenAnestesiIBS / 100 * Double.parseDouble(d.get("hargaJual").toString())); + } + int count = Integer.parseInt(e.get("count").toString()); + e.put("count", ++count); + break; + } else { + /* + * Mendapatkan 0% dari tarif + */ + if (Master.JenisPetugasPelaksana.DOKTER_PEMERIKSA.equals(d.get("idJenisPelaksana"))) { + d.put("hargaJasa", + 0.0 * persenOperatorIBS / 100 * Double.parseDouble(d.get("hargaJual").toString())); + } else if (Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS.equals(d.get("idJenisPelaksana"))) { + d.put("hargaJasa", + 0.0 * persenAsistenIBS / 100 * Double.parseDouble(d.get("hargaJual").toString())); + } else if (Master.JenisPetugasPelaksana.DOKTER_ANASTESI.equals(d.get("idJenisPelaksana"))) { + d.put("hargaJasa", + 0.0 * persenAnestesiIBS / 100 * Double.parseDouble(d.get("hargaJual").toString())); + } + int count = Integer.parseInt(e.get("count").toString()); + e.put("count", ++count); + break; + } + } + } + } /* * Alokasi data diurutkan dulu untuk jam kerja. Asumsi jam kerja dokter * nonshift @@ -999,6 +1146,7 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel List> dataTanggal = new ArrayList<>(); List listIdProduk = new ArrayList<>(); List listPersenJasa = new ArrayList<>(); + List listHargaJasa = new ArrayList<>(); List listHargaJual = new ArrayList<>(); List listIdKelompokPasien = new ArrayList<>(); List listTanggal = new ArrayList<>(); @@ -1108,6 +1256,8 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel listIdProduk.add(Integer.valueOf(d.get("idProduk").toString())); if (!listPersenJasa.contains(d.get("persenJasa"))) listPersenJasa.add(d.get("persenJasa").toString()); + if (!listHargaJasa.contains(d.get("hargaJasa"))) + listHargaJasa.add(Double.valueOf(d.get("hargaJasa").toString())); if (!listHargaJual.contains(d.get("hargaJual"))) listHargaJual.add(Double.valueOf(d.get("hargaJual").toString())); if (!listIdKelompokPasien.contains(d.get("idKelompokPasien"))) @@ -1120,29 +1270,32 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel */ for (Integer idProduk : listIdProduk) { 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 (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); } - } - if (CommonUtil.isNotNullOrEmpty(mapData.get("jumlah"))) { - mapData.put("jumlah", jumlah); - mapData.put("norecs", norecs); - dataTanggal.add(mapData); } } } @@ -1154,41 +1307,44 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel */ for (Integer idProduk : listIdProduk) { 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 (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); + } } - } - 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); + } } } } @@ -1237,6 +1393,7 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel List> dataTanggal = new ArrayList<>(); List listIdProduk = new ArrayList<>(); List listPersenJasa = new ArrayList<>(); + List listHargaJasa = new ArrayList<>(); List listHargaJual = new ArrayList<>(); List listIdKelompokPasien = new ArrayList<>(); List listTanggal = new ArrayList<>(); @@ -1314,6 +1471,153 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel d.put("hargaJasa", persenTindakan / 100 * Double.parseDouble(d.get("hargaJual").toString())); } } + /* + * Dapatkan semua pendaftaran non-jkn + */ + List> listEpisode = new ArrayList<>(); + for (Map d : listData) { + if (!Arrays.asList(Master.KelompokPasien.KELOMPOK_BPJS).contains(d.get("idKelompokPasien")) + && Master.Departemen.BEDAH_SENTRAL.equals(d.get("idDepartemen"))) { + if (!listEpisode.contains(d.get("idPasienDaftar"))) { + Map episode = new HashMap<>(); + episode.put("id", d.get("idPasienDaftar")); + episode.put("count", 1); + listEpisode.add(episode); + } + } + } + /* + * Filter tindakan operasi non-jkn, persen jasa tereduksi seiring + * banyaknya operasi yang dilakukan di satu episode pasien yang sama + */ + for (Map d : listData) { + for (Map e : listEpisode) { + if (!Arrays.asList(Master.KelompokPasien.KELOMPOK_BPJS).contains(d.get("idKelompokPasien")) + && Master.Departemen.BEDAH_SENTRAL.equals(d.get("idDepartemen")) + && d.get("idPasienDaftar").equals(e.get("id"))) { + if (e.get("count").equals(1)) { + /* + * Mendapatkan 100% dari tarif + */ + if (Master.JenisPetugasPelaksana.DOKTER_PEMERIKSA.equals(d.get("idJenisPelaksana"))) { + d.put("hargaJasa", + 1.0 * persenOperatorIBS / 100 * Double.parseDouble(d.get("hargaJual").toString())); + } else if (Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS.equals(d.get("idJenisPelaksana"))) { + d.put("hargaJasa", + 1.0 * persenAsistenIBS / 100 * Double.parseDouble(d.get("hargaJual").toString())); + } else if (Master.JenisPetugasPelaksana.DOKTER_ANASTESI.equals(d.get("idJenisPelaksana"))) { + d.put("hargaJasa", + 1.0 * persenAnestesiIBS / 100 * Double.parseDouble(d.get("hargaJual").toString())); + } + int count = Integer.parseInt(e.get("count").toString()); + e.put("count", ++count); + break; + } else if (e.get("count").equals(2)) { + /* + * Mendapatkan 50% dari tarif + */ + if (Master.JenisPetugasPelaksana.DOKTER_PEMERIKSA.equals(d.get("idJenisPelaksana"))) { + d.put("hargaJasa", + 0.5 * persenOperatorIBS / 100 * Double.parseDouble(d.get("hargaJual").toString())); + } else if (Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS.equals(d.get("idJenisPelaksana"))) { + d.put("hargaJasa", + 0.5 * persenAsistenIBS / 100 * Double.parseDouble(d.get("hargaJual").toString())); + } else if (Master.JenisPetugasPelaksana.DOKTER_ANASTESI.equals(d.get("idJenisPelaksana"))) { + d.put("hargaJasa", + 0.5 * persenAnestesiIBS / 100 * Double.parseDouble(d.get("hargaJual").toString())); + } + int count = Integer.parseInt(e.get("count").toString()); + e.put("count", ++count); + break; + } else if (e.get("count").equals(3)) { + /* + * Mendapatkan 40% dari tarif + */ + if (Master.JenisPetugasPelaksana.DOKTER_PEMERIKSA.equals(d.get("idJenisPelaksana"))) { + d.put("hargaJasa", + 0.4 * persenOperatorIBS / 100 * Double.parseDouble(d.get("hargaJual").toString())); + } else if (Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS.equals(d.get("idJenisPelaksana"))) { + d.put("hargaJasa", + 0.4 * persenAsistenIBS / 100 * Double.parseDouble(d.get("hargaJual").toString())); + } else if (Master.JenisPetugasPelaksana.DOKTER_ANASTESI.equals(d.get("idJenisPelaksana"))) { + d.put("hargaJasa", + 0.4 * persenAnestesiIBS / 100 * Double.parseDouble(d.get("hargaJual").toString())); + } + int count = Integer.parseInt(e.get("count").toString()); + e.put("count", ++count); + break; + } else if (e.get("count").equals(4)) { + /* + * Mendapatkan 30% dari tarif + */ + if (Master.JenisPetugasPelaksana.DOKTER_PEMERIKSA.equals(d.get("idJenisPelaksana"))) { + d.put("hargaJasa", + 0.3 * persenOperatorIBS / 100 * Double.parseDouble(d.get("hargaJual").toString())); + } else if (Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS.equals(d.get("idJenisPelaksana"))) { + d.put("hargaJasa", + 0.3 * persenAsistenIBS / 100 * Double.parseDouble(d.get("hargaJual").toString())); + } else if (Master.JenisPetugasPelaksana.DOKTER_ANASTESI.equals(d.get("idJenisPelaksana"))) { + d.put("hargaJasa", + 0.3 * persenAnestesiIBS / 100 * Double.parseDouble(d.get("hargaJual").toString())); + } + int count = Integer.parseInt(e.get("count").toString()); + e.put("count", ++count); + break; + } else if (e.get("count").equals(5)) { + /* + * Mendapatkan 20% dari tarif + */ + if (Master.JenisPetugasPelaksana.DOKTER_PEMERIKSA.equals(d.get("idJenisPelaksana"))) { + d.put("hargaJasa", + 0.2 * persenOperatorIBS / 100 * Double.parseDouble(d.get("hargaJual").toString())); + } else if (Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS.equals(d.get("idJenisPelaksana"))) { + d.put("hargaJasa", + 0.2 * persenAsistenIBS / 100 * Double.parseDouble(d.get("hargaJual").toString())); + } else if (Master.JenisPetugasPelaksana.DOKTER_ANASTESI.equals(d.get("idJenisPelaksana"))) { + d.put("hargaJasa", + 0.2 * persenAnestesiIBS / 100 * Double.parseDouble(d.get("hargaJual").toString())); + } + int count = Integer.parseInt(e.get("count").toString()); + e.put("count", ++count); + break; + } else if (e.get("count").equals(6)) { + /* + * Mendapatkan 10% dari tarif + */ + if (Master.JenisPetugasPelaksana.DOKTER_PEMERIKSA.equals(d.get("idJenisPelaksana"))) { + d.put("hargaJasa", + 0.1 * persenOperatorIBS / 100 * Double.parseDouble(d.get("hargaJual").toString())); + } else if (Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS.equals(d.get("idJenisPelaksana"))) { + d.put("hargaJasa", + 0.1 * persenAsistenIBS / 100 * Double.parseDouble(d.get("hargaJual").toString())); + } else if (Master.JenisPetugasPelaksana.DOKTER_ANASTESI.equals(d.get("idJenisPelaksana"))) { + d.put("hargaJasa", + 0.1 * persenAnestesiIBS / 100 * Double.parseDouble(d.get("hargaJual").toString())); + } + int count = Integer.parseInt(e.get("count").toString()); + e.put("count", ++count); + break; + } else { + /* + * Mendapatkan 0% dari tarif + */ + if (Master.JenisPetugasPelaksana.DOKTER_PEMERIKSA.equals(d.get("idJenisPelaksana"))) { + d.put("hargaJasa", + 0.0 * persenOperatorIBS / 100 * Double.parseDouble(d.get("hargaJual").toString())); + } else if (Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS.equals(d.get("idJenisPelaksana"))) { + d.put("hargaJasa", + 0.0 * persenAsistenIBS / 100 * Double.parseDouble(d.get("hargaJual").toString())); + } else if (Master.JenisPetugasPelaksana.DOKTER_ANASTESI.equals(d.get("idJenisPelaksana"))) { + d.put("hargaJasa", + 0.0 * persenAnestesiIBS / 100 * Double.parseDouble(d.get("hargaJual").toString())); + } + int count = Integer.parseInt(e.get("count").toString()); + e.put("count", ++count); + break; + } + } + } + } /* * Populate data filter */ @@ -1322,6 +1626,8 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel listIdProduk.add(Integer.valueOf(d.get("idProduk").toString())); if (!listPersenJasa.contains(d.get("persenJasa"))) listPersenJasa.add(d.get("persenJasa").toString()); + if (!listHargaJasa.contains(d.get("hargaJasa"))) + listHargaJasa.add(Double.valueOf(d.get("hargaJasa").toString())); if (!listHargaJual.contains(d.get("hargaJual"))) listHargaJual.add(Double.valueOf(d.get("hargaJual").toString())); if (!listIdKelompokPasien.contains(d.get("idKelompokPasien"))) @@ -1336,31 +1642,35 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel */ for (Integer idProduk : listIdProduk) { for (String persenJasa : listPersenJasa) { - 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); + 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); } - } - if (CommonUtil.isNotNullOrEmpty(mapData.get("jumlah"))) { - mapData.put("jumlah", jumlah); - mapData.put("norecs", norecs); - dataTanggal.add(mapData); } } } @@ -1373,42 +1683,46 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel */ for (Integer idProduk : listIdProduk) { for (String persenJasa : listPersenJasa) { - 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); + 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); } - } - 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); } } }