Update service pelayanan pasien
Penambahan pengelompokan jenis ruangan untuk membedakan reguler dan eksekutif di logbook dokter remun baru
This commit is contained in:
parent
b1cf562a3b
commit
c43e6fb74a
@ -212,8 +212,9 @@ public interface PelayananPasienDao extends PagingAndSortingRepository<Pelayanan
|
||||
+ "ppp.ObjectJenisPetugasPeId as idJenisPelaksana,ppp.ObjectPegawaiId as idPegawai,"
|
||||
+ "pp.noRec as idPelayananPasien,coalesce(pp.hargaJual,0) as hargaJual,coalesce(pp.jumlah,0) as jumlah,"
|
||||
+ "pp.tglPelayanan as tglPelayanan,to_char(pp.tglPelayanan,'yyyy-MM-dd') as tanggal,"
|
||||
+ "apd.noRec as idAntrianPasienDiperiksa,apd.pegawaiId as idDPJP,"
|
||||
+ "apd.ruanganId as idRuangan,ru.departemenId as idDepartemen," + "pd.noRec as idPasienDaftar, "
|
||||
+ "apd.noRec as idAntrianPasienDiperiksa,apd.pegawaiId as idDPJP," + "apd.ruanganId as idRuangan,"
|
||||
+ "case when lower(ru.namaRuangan) like '%eksekutif%' then 'Eksekutif' else 'Reguler' end as jenisRuangan,"
|
||||
+ "ru.departemenId as idDepartemen," + "pd.noRec as idPasienDaftar, "
|
||||
+ "sum(case when ppd.komponenHargaId = 35 then ppd.hargaDiscount else 0.0 end) as totalDiskon) "
|
||||
+ "from PelayananPasienDetail ppd, PelayananPasienPetugas ppp " + "inner join ppp.pelayananPasien pp "
|
||||
+ "inner join pp.pasienDaftar apd " + "inner join apd.pasienDaftar pd " + "left join pp.produk pr "
|
||||
@ -235,6 +236,7 @@ public interface PelayananPasienDao extends PagingAndSortingRepository<Pelayanan
|
||||
+ "ppp.ObjectJenisPetugasPeId,ppp.ObjectPegawaiId,"
|
||||
+ "pp.noRec,coalesce(pp.hargaJual,0),coalesce(pp.jumlah,0),"
|
||||
+ "pp.tglPelayanan,to_char(pp.tglPelayanan,'yyyy-MM-dd')," + "apd.noRec,apd.pegawaiId," + "apd.ruanganId,"
|
||||
+ "case when lower(ru.namaRuangan) like '%eksekutif%' then 'Eksekutif' else 'Reguler' end,"
|
||||
+ "ru.departemenId," + "pd.noRec " + "order by case when pd.kelompokPasienId = 2 then 1 "
|
||||
+ "when pd.kelompokPasienId = 4 then 2 " + "when pd.kelompokPasienId = 8 then 3 "
|
||||
+ "when pd.kelompokPasienId = 9 then 4 " + "when pd.kelompokPasienId = 1 then 5 "
|
||||
|
||||
@ -1240,6 +1240,7 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
|
||||
List<Double> listHargaJual = new ArrayList<>();
|
||||
List<Integer> listIdKelompokPasien = new ArrayList<>();
|
||||
List<String> listTanggal = new ArrayList<>();
|
||||
List<String> listJenisRuangan = new ArrayList<>();
|
||||
Map<String, Object> remunFfs = this.splitRemunFfs(idPegawai, bulan);
|
||||
@SuppressWarnings("unchecked")
|
||||
List<Map<String, Object>> listData = (List<Map<String, Object>>) 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<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 (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);
|
||||
}
|
||||
}
|
||||
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<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 (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);
|
||||
}
|
||||
}
|
||||
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
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user