Update PelayananPasienServiceImpl.java

Penerapan aturan persentase operasi non-jkn 1 dokter di 1 waktu
This commit is contained in:
Salman Manoe 2023-05-23 17:13:34 +07:00
parent c43e6fb74a
commit 9119900a20

View File

@ -657,6 +657,153 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
rawDataBpjs3.add(d);
}
}
/*
* Dapatkan semua pendaftaran non-jkn
*/
List<Map<String, Object>> listEpisode = new ArrayList<>();
for (Map<String, Object> 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<String, Object> 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<String, Object> d : listData) {
for (Map<String, Object> 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<Map<String, Object>> dataTanggal = new ArrayList<>();
List<Integer> listIdProduk = new ArrayList<>();
List<String> listPersenJasa = new ArrayList<>();
List<Double> listHargaJasa = new ArrayList<>();
List<Double> listHargaJual = new ArrayList<>();
List<Integer> listIdKelompokPasien = new ArrayList<>();
List<String> 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<String, Object> mapData = new HashMap<>();
double jumlah = 0.0;
List<String> norecs = new ArrayList<>();
int dataHitungKe = 0;
for (Map<String, Object> 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<String, Object> mapData = new HashMap<>();
double jumlah = 0.0;
List<String> norecs = new ArrayList<>();
int dataHitungKe = 0;
for (Map<String, Object> 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<String, Object> mapResult = new HashMap<>();
List<Map<String, Object>> detail = new ArrayList<>();
int counter = 0;
double jumlah = 0.0;
double jumlahHargaJasa = 0.0;
for (Map<String, Object> map : dataTanggal) {
Map<String, Object> 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<String, Object> mapResult = new HashMap<>();
List<Map<String, Object>> detail = new ArrayList<>();
int counter = 0;
double jumlah = 0.0;
double jumlahHargaJasa = 0.0;
for (Map<String, Object> map : dataTanggal) {
Map<String, Object> 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<Map<String, Object>> dataTanggal = new ArrayList<>();
List<Integer> listIdProduk = new ArrayList<>();
List<String> listPersenJasa = new ArrayList<>();
List<Double> listHargaJasa = new ArrayList<>();
List<Double> listHargaJual = new ArrayList<>();
List<Integer> listIdKelompokPasien = new ArrayList<>();
List<String> 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<Map<String, Object>> listEpisode = new ArrayList<>();
for (Map<String, Object> 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<String, Object> 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<String, Object> d : listData) {
for (Map<String, Object> 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<String, Object> mapData = new HashMap<>();
double jumlah = 0.0;
List<String> norecs = new ArrayList<>();
int dataHitungKe = 0;
for (Map<String, Object> 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<String, Object> mapData = new HashMap<>();
double jumlah = 0.0;
List<String> norecs = new ArrayList<>();
int dataHitungKe = 0;
for (Map<String, Object> 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<String, Object> mapResult = new HashMap<>();
List<Map<String, Object>> detail = new ArrayList<>();
int counter = 0;
double jumlah = 0.0;
double jumlahHargaJasa = 0.0;
for (Map<String, Object> map : dataTanggal) {
Map<String, Object> 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<String, Object> mapResult = new HashMap<>();
List<Map<String, Object>> detail = new ArrayList<>();
int counter = 0;
double jumlah = 0.0;
double jumlahHargaJasa = 0.0;
for (Map<String, Object> map : dataTanggal) {
Map<String, Object> 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);
}
}
}