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.statusEnabled is true or pd.statusEnabled is null) " + "and pp.strukResepId is null "
|
||||||
+ "and pd.voucherPaketId in (:listIdVoucher)")
|
+ "and pd.voucherPaketId in (:listIdVoucher)")
|
||||||
List<Map<String, Object>> findJumlahLayananByVoucherIn(@Param("listIdVoucher") Set<String> 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.KategoryPegawai.DOKTER_LUAR;
|
||||||
import static com.jasamedika.medifirst2000.constants.Master.KelompokPasien.KELOMPOK_BPJS;
|
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.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.Ruangan.*;
|
||||||
import static com.jasamedika.medifirst2000.constants.Master.SubUnitKerja.*;
|
import static com.jasamedika.medifirst2000.constants.Master.SubUnitKerja.*;
|
||||||
import static com.jasamedika.medifirst2000.constants.Master.TipePegawai.PURNA_WAKTU;
|
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()
|
List<Map<String, Object>> layananBadanPaket = dataExcludeUndone.stream()
|
||||||
.filter(d -> !setIdPelayananUtama.contains(d.get("idPelayananPasien").toString()))
|
.filter(d -> !setIdPelayananUtama.contains(d.get("idPelayananPasien").toString()))
|
||||||
.collect(Collectors.toList());
|
.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);
|
result.addAll(layananBadanPaket);
|
||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user