Merge branch 'dev'

This commit is contained in:
Salman Manoe 2023-10-06 16:14:16 +07:00
commit f884363185

View File

@ -559,26 +559,19 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
/*
* Mendapatkan data mentah pelayanan pasien
*/
List<Map<String, Object>> listData = pelayananPasienDao.findPelayananPasienByPetugasAndTanggal(idPegawai,
List<Map<String, Object>> listRatedPay = pelayananPasienDao.findPelayananPasienByPetugasAndTanggal(idPegawai,
tglAwal, tglAkhir);
List<Map<String, Object>> listRatedPay = new ArrayList<>(listData);
List<Map<String, Object>> listFixedPay = new ArrayList<>();
Set<String> listIdVoucher = listData.stream().filter(d -> CommonUtil.isNotNullOrEmpty(d.get("idVoucherDaftar")))
Set<String> listIdVoucher = listRatedPay.stream()
.filter(d -> CommonUtil.isNotNullOrEmpty(d.get("idVoucherDaftar")))
.map(d -> d.get("idVoucherDaftar").toString()).collect(Collectors.toSet());
List<Map<String, Object>> listFixedPay = new ArrayList<>();
if (CommonUtil.isNotNullOrEmpty(listIdVoucher)) {
List<VoucherPaket> listVoucher = voucherPaketDao.findAllByNoRecIn(listIdVoucher);
Set<Integer> listIdPaket = listVoucher.stream().map(VoucherPaket::getPaketId).collect(Collectors.toSet());
/*
* Filtering selain logbook fixed pay
*/
listRatedPay = listData.stream()
.filter(d -> !Boolean.parseBoolean(d.get("isPaket").toString())
&& !listIdPaket.contains(Integer.parseInt(d.get("idProduk").toString())))
.collect(Collectors.toList());
/*
* Set awal logbook fixed pay
*/
listFixedPay = listData.stream()
listFixedPay = listRatedPay.stream()
.filter(d -> CommonUtil.isNotNullOrEmpty(d.get("idVoucherDaftar"))
&& (!Boolean.parseBoolean(d.get("isPaket").toString())
&& listIdPaket.contains(Integer.parseInt(d.get("idProduk").toString())))
@ -586,6 +579,13 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
&& Boolean.parseBoolean(d.get("isPaket").toString()) && !listIdPaket
.contains(Integer.parseInt(d.get("idProduk").toString()))))
.collect(Collectors.toList());
/*
* Filtering selain logbook fixed pay
*/
listRatedPay = listRatedPay.stream()
.filter(d -> !Boolean.parseBoolean(d.get("isPaket").toString())
&& !listIdPaket.contains(Integer.parseInt(d.get("idProduk").toString())))
.collect(Collectors.toList());
}
/*
* Set persen jasa dan harga jasa pasien bpjs di ibs, icu
@ -1500,8 +1500,10 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
.sorted(Comparator.comparing(o -> o.get("namaProduk").toString())).collect(Collectors.toList());
result.put("klaim-mpp", listPelayananKlaimMpp);
}
if (CommonUtil.isNotNullOrEmpty(listFixedPay)) {
List<Map<String, Object>> listPelayananFixedPay = setPelayananPaket(listFixedPay);
{
List<Map<String, Object>> listPelayananFixedPay = new ArrayList<>();
if (CommonUtil.isNotNullOrEmpty(listFixedPay))
listPelayananFixedPay = setPelayananPaket(listFixedPay);
result.put("fixed-pay", listPelayananFixedPay);
}
return result;
@ -1649,144 +1651,151 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
}
Set<String> setIdVoucherExcludeUndone = dataExcludeUndone.stream().map(d -> d.get("idVoucherDaftar").toString())
.collect(Collectors.toSet());
List<VoucherPaket> listVoucherExcludeUndone = voucherPaketDao.findAllByNoRecIn(setIdVoucherExcludeUndone);
List<Integer> listIdPaketExcludeUndone = listVoucherExcludeUndone.stream().map(VoucherPaket::getPaketId)
.collect(Collectors.toList());
List<Map<String, Object>> result = new ArrayList<>();
{
/*
* Transformasi data tindakan utama dan reduce visite utama
*/
List<Map<String, Object>> layananKepalaPaket = pelayananPasienDao
.findPelayananPasienByPaket(setIdVoucherExcludeUndone, listIdPaketExcludeUndone);
List<String> concatIdProdukKelas = layananKepalaPaket.stream()
.map(l -> l.get("idProduk").toString() + l.get("idKelas").toString()).collect(Collectors.toList());
List<HargaNettoProdukByKelas> listTarif = hargaNettoProdukByKelasDao
.findByConcateProdukKelas(concatIdProdukKelas);
layananKepalaPaket.forEach(l -> {
Optional<HargaNettoProdukByKelas> first = listTarif.stream().filter(
t -> t.getProdukId().equals(l.get("idProduk")) && t.getKelasId().equals(l.get("idKelas")))
.findFirst();
if (first.isPresent() && CommonUtil.isNotNullOrEmpty(first.get().getHargaNetto1())
&& first.get().getHargaNetto1() > 0.0) {
l.put("hargaJual", first.get().getHargaNetto1());
} else if (first.isPresent() && CommonUtil.isNotNullOrEmpty(first.get().getHargaSatuan())
&& first.get().getHargaSatuan() > 0.0) {
l.put("hargaJual", first.get().getHargaSatuan());
}
});
List<HargaNettoProdukByKelasD> listDetailTarif = hargaNettoProdukByKelasDDao
.findByConcateProdukKelas(concatIdProdukKelas);
layananKepalaPaket.forEach(l -> {
Optional<HargaNettoProdukByKelasD> first = listDetailTarif.stream()
.filter(t -> t.getProdukId().equals(l.get("idProduk"))
&& t.getKelasId().equals(l.get("idKelas"))
&& JASA_DOKTER_OBGYN.equals(t.getKomponenHargaId()))
.findFirst();
if (first.isPresent() && CommonUtil.isNotNullOrEmpty(first.get().getHargaNetto1())
&& first.get().getHargaNetto1() > 0.0) {
l.put("hargaJasa", first.get().getHargaNetto1());
} else if (first.isPresent() && CommonUtil.isNotNullOrEmpty(first.get().getHargaSatuan())
&& first.get().getHargaSatuan() > 0.0) {
l.put("hargaJasa", first.get().getHargaSatuan());
} else {
l.put("hargaJasa", 0.0);
}
});
result.addAll(layananKepalaPaket);
}
{
/*
* Transformasi data tindakan lain-lain
*/
List<MapProdukPaket> listPaketUtama = listMapPaket.stream()
.filter(mpaket -> listIdPaketExcludeUndone.contains(mpaket.getPaketId())
&& (TINDAKAN_UTAMA.equals(mpaket.getJenisMapping())
|| VISITE_UTAMA.equals(mpaket.getJenisMapping())))
if (CommonUtil.isNotNullOrEmpty(setIdVoucherExcludeUndone)) {
List<VoucherPaket> listVoucherExcludeUndone = voucherPaketDao.findAllByNoRecIn(setIdVoucherExcludeUndone);
List<Integer> listIdPaketExcludeUndone = listVoucherExcludeUndone.stream().map(VoucherPaket::getPaketId)
.collect(Collectors.toList());
List<String> listIdMapPaket = listPaketUtama.stream().map(MapProdukPaket::getNoRec)
.collect(Collectors.toList());
List<Integer> listIdEntri = listMapProduk.stream()
.filter(mproduk -> listIdMapPaket.contains(mproduk.getMapProdukPaketId()))
.map(MapProdukPaketToProduk::getProdukId).collect(Collectors.toList());
List<Map<String, Object>> listDataUtama = dataExcludeUndone.stream()
.filter(d -> CommonUtil.isNotNullOrEmpty(d.get("idVoucherDaftar"))
&& setIdVoucherExcludeUndone.contains(d.get("idVoucherDaftar").toString())
&& listIdEntri.contains(Integer.parseInt(d.get("idProduk").toString())))
.collect(Collectors.toList());
Set<String> setIdPelayananUtama = listDataUtama.stream().map(d -> d.get("idPelayananPasien").toString())
.collect(Collectors.toSet());
List<Map<String, Object>> layananBadanPaket = dataExcludeUndone.stream()
.filter(d -> !setIdPelayananUtama.contains(d.get("idPelayananPasien").toString()))
.collect(Collectors.toList());
List<String> concatIdProdukKelas = layananBadanPaket.stream()
.map(l -> l.get("idProduk").toString() + l.get("idKelas").toString()).collect(Collectors.toList());
List<HargaNettoProdukByKelasD> listDetailTarif = hargaNettoProdukByKelasDDao
.findByConcateProdukKelas(concatIdProdukKelas);
Set<String> setNorecs = layananBadanPaket.stream().map(l -> l.get("idPelayananPasien").toString())
.collect(Collectors.toSet());
if (CommonUtil.isNotNullOrEmpty(setNorecs)) {
List<Map<String, Object>> mappingBadanPaket = pelayananPasienDao.findByNorecs(setNorecs);
layananBadanPaket.forEach(l -> {
Optional<Map<String, Object>> firstMap = mappingBadanPaket.stream()
.filter(m -> l.get("idPelayananPasien").toString().equals(m.get("norec"))).findFirst();
if (firstMap.isPresent()) {
if (DOKTER_PEMERIKSA.equals(l.get("idJenisPelaksana"))) {
Optional<HargaNettoProdukByKelasD> first = listDetailTarif.stream()
.filter(t -> t.getProdukId().equals(firstMap.get().get("produkPaketId"))
&& t.getKelasId().equals(l.get("idKelas"))
&& JASA_DOKTER.equals(t.getKomponenHargaId()))
.findFirst();
if (first.isPresent() && CommonUtil.isNotNullOrEmpty(first.get().getHargaNetto1())
&& first.get().getHargaNetto1() > 0.0) {
l.put("hargaJasa", first.get().getHargaNetto1());
} else if (first.isPresent() && CommonUtil.isNotNullOrEmpty(first.get().getHargaSatuan())
&& first.get().getHargaSatuan() > 0.0) {
l.put("hargaJasa", first.get().getHargaSatuan());
} else {
l.put("hargaJasa", 0.0);
}
} else if (ASISTEN_SPESIALIS.equals(l.get("idJenisPelaksana"))) {
Optional<HargaNettoProdukByKelasD> first = listDetailTarif.stream()
.filter(t -> t.getProdukId().equals(firstMap.get().get("produkPaketId"))
&& t.getKelasId().equals(l.get("idKelas"))
&& JASA_ASISTEN_SPESIALIS.equals(t.getKomponenHargaId()))
.findFirst();
if (first.isPresent() && CommonUtil.isNotNullOrEmpty(first.get().getHargaNetto1())
&& first.get().getHargaNetto1() > 0.0) {
l.put("hargaJasa", first.get().getHargaNetto1());
} else if (first.isPresent() && CommonUtil.isNotNullOrEmpty(first.get().getHargaSatuan())
&& first.get().getHargaSatuan() > 0.0) {
l.put("hargaJasa", first.get().getHargaSatuan());
} else {
l.put("hargaJasa", 0.0);
}
} else if (DOKTER_ANASTESI.equals(l.get("idJenisPelaksana"))) {
Optional<HargaNettoProdukByKelasD> first = listDetailTarif.stream()
.filter(t -> t.getProdukId().equals(firstMap.get().get("produkPaketId"))
&& t.getKelasId().equals(l.get("idKelas"))
&& JASA_DOKTER_ANASTESI.equals(t.getKomponenHargaId()))
.findFirst();
if (first.isPresent() && CommonUtil.isNotNullOrEmpty(first.get().getHargaNetto1())
&& first.get().getHargaNetto1() > 0.0) {
l.put("hargaJasa", first.get().getHargaNetto1());
} else if (first.isPresent() && CommonUtil.isNotNullOrEmpty(first.get().getHargaSatuan())
&& first.get().getHargaSatuan() > 0.0) {
l.put("hargaJasa", first.get().getHargaSatuan());
} else {
l.put("hargaJasa", 0.0);
}
if (CommonUtil.isNotNullOrEmpty(listIdPaketExcludeUndone)) {
{
/*
* Transformasi data tindakan utama dan reduce visite utama
*/
List<Map<String, Object>> layananKepalaPaket = pelayananPasienDao
.findPelayananPasienByPaket(setIdVoucherExcludeUndone, listIdPaketExcludeUndone);
List<String> concatIdProdukKelas = layananKepalaPaket.stream()
.map(l -> l.get("idProduk").toString() + l.get("idKelas").toString())
.collect(Collectors.toList());
List<HargaNettoProdukByKelas> listTarif = hargaNettoProdukByKelasDao
.findByConcateProdukKelas(concatIdProdukKelas);
layananKepalaPaket.forEach(l -> {
Optional<HargaNettoProdukByKelas> first = listTarif.stream()
.filter(t -> t.getProdukId().equals(l.get("idProduk"))
&& t.getKelasId().equals(l.get("idKelas")))
.findFirst();
if (first.isPresent() && CommonUtil.isNotNullOrEmpty(first.get().getHargaNetto1())
&& first.get().getHargaNetto1() > 0.0) {
l.put("hargaJual", first.get().getHargaNetto1());
} else if (first.isPresent() && CommonUtil.isNotNullOrEmpty(first.get().getHargaSatuan())
&& first.get().getHargaSatuan() > 0.0) {
l.put("hargaJual", first.get().getHargaSatuan());
}
} else {
l.put("hargaJasa", 0.0);
});
List<HargaNettoProdukByKelasD> listDetailTarif = hargaNettoProdukByKelasDDao
.findByConcateProdukKelas(concatIdProdukKelas);
layananKepalaPaket.forEach(l -> {
Optional<HargaNettoProdukByKelasD> first = listDetailTarif.stream()
.filter(t -> t.getProdukId().equals(l.get("idProduk"))
&& t.getKelasId().equals(l.get("idKelas"))
&& JASA_DOKTER_OBGYN.equals(t.getKomponenHargaId()))
.findFirst();
if (first.isPresent() && CommonUtil.isNotNullOrEmpty(first.get().getHargaNetto1())
&& first.get().getHargaNetto1() > 0.0) {
l.put("hargaJasa", first.get().getHargaNetto1());
} else if (first.isPresent() && CommonUtil.isNotNullOrEmpty(first.get().getHargaSatuan())
&& first.get().getHargaSatuan() > 0.0) {
l.put("hargaJasa", first.get().getHargaSatuan());
} else {
l.put("hargaJasa", 0.0);
}
});
result.addAll(layananKepalaPaket);
}
{
/*
* Transformasi data tindakan lain-lain
*/
List<MapProdukPaket> listPaketUtama = listMapPaket.stream()
.filter(mpaket -> listIdPaketExcludeUndone.contains(mpaket.getPaketId())
&& (TINDAKAN_UTAMA.equals(mpaket.getJenisMapping())
|| VISITE_UTAMA.equals(mpaket.getJenisMapping())))
.collect(Collectors.toList());
List<String> listIdMapPaket = listPaketUtama.stream().map(MapProdukPaket::getNoRec)
.collect(Collectors.toList());
List<Integer> listIdEntri = listMapProduk.stream()
.filter(mproduk -> listIdMapPaket.contains(mproduk.getMapProdukPaketId()))
.map(MapProdukPaketToProduk::getProdukId).collect(Collectors.toList());
List<Map<String, Object>> listDataUtama = dataExcludeUndone.stream()
.filter(d -> CommonUtil.isNotNullOrEmpty(d.get("idVoucherDaftar"))
&& setIdVoucherExcludeUndone.contains(d.get("idVoucherDaftar").toString())
&& listIdEntri.contains(Integer.parseInt(d.get("idProduk").toString())))
.collect(Collectors.toList());
Set<String> setIdPelayananUtama = listDataUtama.stream()
.map(d -> d.get("idPelayananPasien").toString()).collect(Collectors.toSet());
List<Map<String, Object>> layananBadanPaket = dataExcludeUndone.stream()
.filter(d -> !setIdPelayananUtama.contains(d.get("idPelayananPasien").toString()))
.collect(Collectors.toList());
List<String> concatIdProdukKelas = layananBadanPaket.stream()
.map(l -> l.get("idProduk").toString() + l.get("idKelas").toString())
.collect(Collectors.toList());
if (CommonUtil.isNotNullOrEmpty(concatIdProdukKelas)) {
List<HargaNettoProdukByKelasD> listDetailTarif = hargaNettoProdukByKelasDDao
.findByConcateProdukKelas(concatIdProdukKelas);
Set<String> setNorecs = layananBadanPaket.stream()
.map(l -> l.get("idPelayananPasien").toString()).collect(Collectors.toSet());
List<Map<String, Object>> mappingBadanPaket = pelayananPasienDao.findByNorecs(setNorecs);
layananBadanPaket.forEach(l -> {
Optional<Map<String, Object>> firstMap = mappingBadanPaket.stream()
.filter(m -> l.get("idPelayananPasien").toString().equals(m.get("norec")))
.findFirst();
if (firstMap.isPresent()) {
if (DOKTER_PEMERIKSA.equals(l.get("idJenisPelaksana"))) {
Optional<HargaNettoProdukByKelasD> first = listDetailTarif.stream()
.filter(t -> t.getProdukId().equals(firstMap.get().get("produkPaketId"))
&& t.getKelasId().equals(l.get("idKelas"))
&& JASA_DOKTER.equals(t.getKomponenHargaId()))
.findFirst();
if (first.isPresent() && CommonUtil.isNotNullOrEmpty(first.get().getHargaNetto1())
&& first.get().getHargaNetto1() > 0.0) {
l.put("hargaJasa", first.get().getHargaNetto1());
} else if (first.isPresent()
&& CommonUtil.isNotNullOrEmpty(first.get().getHargaSatuan())
&& first.get().getHargaSatuan() > 0.0) {
l.put("hargaJasa", first.get().getHargaSatuan());
} else {
l.put("hargaJasa", 0.0);
}
} else if (ASISTEN_SPESIALIS.equals(l.get("idJenisPelaksana"))) {
Optional<HargaNettoProdukByKelasD> first = listDetailTarif.stream()
.filter(t -> t.getProdukId().equals(firstMap.get().get("produkPaketId"))
&& t.getKelasId().equals(l.get("idKelas"))
&& JASA_ASISTEN_SPESIALIS.equals(t.getKomponenHargaId()))
.findFirst();
if (first.isPresent() && CommonUtil.isNotNullOrEmpty(first.get().getHargaNetto1())
&& first.get().getHargaNetto1() > 0.0) {
l.put("hargaJasa", first.get().getHargaNetto1());
} else if (first.isPresent()
&& CommonUtil.isNotNullOrEmpty(first.get().getHargaSatuan())
&& first.get().getHargaSatuan() > 0.0) {
l.put("hargaJasa", first.get().getHargaSatuan());
} else {
l.put("hargaJasa", 0.0);
}
} else if (DOKTER_ANASTESI.equals(l.get("idJenisPelaksana"))) {
Optional<HargaNettoProdukByKelasD> first = listDetailTarif.stream()
.filter(t -> t.getProdukId().equals(firstMap.get().get("produkPaketId"))
&& t.getKelasId().equals(l.get("idKelas"))
&& JASA_DOKTER_ANASTESI.equals(t.getKomponenHargaId()))
.findFirst();
if (first.isPresent() && CommonUtil.isNotNullOrEmpty(first.get().getHargaNetto1())
&& first.get().getHargaNetto1() > 0.0) {
l.put("hargaJasa", first.get().getHargaNetto1());
} else if (first.isPresent()
&& CommonUtil.isNotNullOrEmpty(first.get().getHargaSatuan())
&& first.get().getHargaSatuan() > 0.0) {
l.put("hargaJasa", first.get().getHargaSatuan());
} else {
l.put("hargaJasa", 0.0);
}
}
} else {
l.put("hargaJasa", 0.0);
}
});
}
});
} else {
layananBadanPaket.forEach(l -> {
l.put("hargaJasa", 0.0);
});
result.addAll(layananBadanPaket);
}
}
result.addAll(layananBadanPaket);
}
return result;
}
@ -2686,9 +2695,9 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
@Override
public List<Map<String, Object>> logbookFixedPayDokter(Integer idPegawai, String bulan) {
Map<String, Object> remunFfs = this.splitRemunFfs(idPegawai, bulan);
Map<String, Object> remunFixedPay = this.splitRemunFfs(idPegawai, bulan);
@SuppressWarnings("unchecked")
List<Map<String, Object>> listData = (List<Map<String, Object>>) remunFfs.get("klaim-mpp");
List<Map<String, Object>> listData = (List<Map<String, Object>>) remunFixedPay.get("fixed-pay");
return listData;
}