Update service pelayanan pasien
Penerapan detail tarif untuk transformasi data entri list paket
This commit is contained in:
parent
fae39a5c03
commit
41c2ef5974
@ -300,4 +300,11 @@ public interface PelayananPasienDao extends JpaRepository<PelayananPasien, Strin
|
||||
+ "and (pd.statusEnabled is true or pd.statusEnabled is null) " + "and pp.strukResepId is null "
|
||||
+ "and pd.voucherPaketId in (:listIdVoucher)")
|
||||
List<Map<String, Object>> findJumlahLayananByVoucherIn(@Param("listIdVoucher") Set<String> listIdVoucher);
|
||||
|
||||
@Query("select new Map(pp.noRec as noRec," + "vp.paketId as paketId," + "mpaket.produkPaketId as produkPaketId,"
|
||||
+ "mproduk.produkId as produkId) " + "from PelayananPasien pp, " + "MapProdukPaketToProduk mproduk "
|
||||
+ "inner join pp.pasienDaftar apd " + "inner join pp.voucherPaket vp " + "inner join apd.pasienDaftar pd "
|
||||
+ "inner join mproduk.mapProdukPaket mpaket " + "where vp.paketId = mpaket.paketId "
|
||||
+ "and pp.produkId = mproduk.produkId " + "and pp.noRec in (:listNorec)")
|
||||
List<Map<String, Object>> findByNorecs(@Param("listNorec") Set<String> listNorec);
|
||||
}
|
||||
|
||||
@ -41,7 +41,7 @@ import static com.jasamedika.medifirst2000.constants.Master.KONSUL_VISIT;
|
||||
import static com.jasamedika.medifirst2000.constants.Master.KategoryPegawai.DOKTER_LUAR;
|
||||
import static com.jasamedika.medifirst2000.constants.Master.KelompokPasien.KELOMPOK_BPJS;
|
||||
import static com.jasamedika.medifirst2000.constants.Master.KelompokUser.TATA_REKENING;
|
||||
import static com.jasamedika.medifirst2000.constants.Master.KomponenHarga.JASA_DOKTER_OBGYN;
|
||||
import static com.jasamedika.medifirst2000.constants.Master.KomponenHarga.*;
|
||||
import static com.jasamedika.medifirst2000.constants.Master.Ruangan.*;
|
||||
import static com.jasamedika.medifirst2000.constants.Master.SubUnitKerja.*;
|
||||
import static com.jasamedika.medifirst2000.constants.Master.TipePegawai.PURNA_WAKTU;
|
||||
@ -1719,7 +1719,73 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
|
||||
List<Map<String, Object>> layananBadanPaket = dataExcludeUndone.stream()
|
||||
.filter(d -> !setIdPelayananUtama.contains(d.get("idPelayananPasien").toString()))
|
||||
.collect(Collectors.toList());
|
||||
layananBadanPaket.forEach(l -> l.put("hargaJasa", 0.0));
|
||||
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);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
l.put("hargaJasa", 0.0);
|
||||
}
|
||||
});
|
||||
} else {
|
||||
layananBadanPaket.forEach(l -> {
|
||||
l.put("hargaJasa", 0.0);
|
||||
});
|
||||
}
|
||||
result.addAll(layananBadanPaket);
|
||||
}
|
||||
return result;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user