Merge branch 'salman/1212' of ssh://172.16.55.31/volume1/git/SC-be-java into salman/1212
This commit is contained in:
commit
9fa265a89f
@ -11,6 +11,7 @@ import org.springframework.stereotype.Repository;
|
||||
import javax.persistence.LockModeType;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
/**
|
||||
* Repository class for Pasien
|
||||
@ -115,4 +116,9 @@ public interface PasienDao extends JpaRepository<Pasien, Integer> {
|
||||
+ "and ps.nobpjs ~ '[0-9]+' " + "and length(ps.nobpjs) = 13) " + "and (ps.noidentitas is null "
|
||||
+ "or length(ps.noidentitas) <> 16) " + "order by ps.statusenabled, ps.tgldaftar desc", nativeQuery = true)
|
||||
List<Pasien> findByValidBpjs();
|
||||
|
||||
@Query("select new Map(ibu.id as idIbu,anak.id as idAnak) " + "from Pasien ibu, Pasien anak "
|
||||
+ "where ibu.noCm = anak.reportDisplay " + "and ibu.statusEnabled is true and anak.statusEnabled is true "
|
||||
+ "and ibu.id in (:listIdIbu)")
|
||||
List<Map<String, Object>> findIdByNoCmOfIbu(@Param("listIdIbu") Set<Integer> listIdIbu);
|
||||
}
|
||||
|
||||
@ -290,8 +290,8 @@ public interface PelayananPasienDao extends JpaRepository<PelayananPasien, Strin
|
||||
+ "apd.tglKeluar as tglKeluar) " + "from PelayananPasienPetugas ppp, " + "Ruangan ru, " + "VoucherPaket vp "
|
||||
+ "inner join ppp.pelayananPasien pp " + "inner join pp.pasienDaftar apd "
|
||||
+ "inner join apd.pasienDaftar pd " + "where apd.ruanganId = ru.id " + "and pd.pasienId = vp.pasienId "
|
||||
+ "and ppp.ObjectPegawaiId = :pegawaiId " + "and pp.produkId in (:listProdukEntriId) "
|
||||
+ "and ppp.ObjectPegawaiId in (:listIdSpog) " + "and pp.produkId in (:listProdukEntriId) "
|
||||
+ "and ru.departemenId = 16 " + "order by vp.pasienId, " + "vp.paketId, " + "apd.tglKeluar desc")
|
||||
List<Map<String, Object>> findPasienPaketDiRanapByDokter(@Param("pegawaiId") Integer idPegawai,
|
||||
List<Map<String, Object>> findPasienPaketDiRanapByDokter(@Param("listIdSpog") List<Integer> listIdSpog,
|
||||
@Param("listProdukEntriId") List<Integer> listProdukEntriId);
|
||||
}
|
||||
|
||||
@ -47,6 +47,7 @@ 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;
|
||||
import static com.jasamedika.medifirst2000.constants.Master.UnitKerja.KSM_OBGYN;
|
||||
import static com.jasamedika.medifirst2000.enums.JenisMappingProdukPaket.PERAWAT;
|
||||
import static com.jasamedika.medifirst2000.enums.JenisMappingProdukPaket.TINDAKAN_UTAMA;
|
||||
|
||||
/**
|
||||
@ -563,13 +564,13 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
|
||||
List<Map<String, Object>> listRatedPay = pelayananPasienDao.findPelayananPasienByPetugasAndTanggal(idPegawai,
|
||||
tglAwal, tglAkhir);
|
||||
List<Integer> allPaketId = mapProdukPaketDao.findProdukEntriId();
|
||||
allPaketId.addAll(mapProdukPaketDao.findPaketId());
|
||||
List<Map<String, Object>> listFixedPay = listRatedPay.stream()
|
||||
.filter(d -> allPaketId.contains(Integer.parseInt(d.get("idProduk").toString())))
|
||||
.collect(Collectors.toList());
|
||||
/*
|
||||
* Filtering selain logbook fixed pay
|
||||
*/
|
||||
allPaketId.addAll(mapProdukPaketDao.findPaketId());
|
||||
listRatedPay = listRatedPay.stream()
|
||||
.filter(d -> !allPaketId.contains(Integer.parseInt(d.get("idProduk").toString())))
|
||||
.collect(Collectors.toList());
|
||||
@ -1522,7 +1523,7 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
|
||||
Comparator.nullsLast(Comparator.naturalOrder())))
|
||||
.sorted(Comparator.comparing(o4 -> o4.get("namaProduk").toString()))
|
||||
.sorted(Comparator.comparing(o5 -> o5.get("jenisRuangan").toString(), Comparator.reverseOrder()))
|
||||
.collect(Collectors.toList());
|
||||
.sorted(Comparator.comparing(o4 -> o4.get("bulanPulangIbu").toString())).collect(Collectors.toList());
|
||||
result.forEach(r -> {
|
||||
/*
|
||||
* Hapus informasi tidak perlu
|
||||
@ -1550,6 +1551,7 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
|
||||
List<Integer> listIdKelompokPasien = new ArrayList<>();
|
||||
List<String> listTanggal = new ArrayList<>();
|
||||
List<String> listJenisRuangan = new ArrayList<>();
|
||||
List<String> listBulanPulangIbu = new ArrayList<>();
|
||||
listFixedPay.forEach(d -> {
|
||||
if (!listIdProduk.contains(Integer.parseInt(d.get("idProduk").toString())))
|
||||
listIdProduk.add(Integer.valueOf(d.get("idProduk").toString()));
|
||||
@ -1563,6 +1565,8 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
|
||||
listTanggal.add(d.get("tanggal").toString());
|
||||
if (!listJenisRuangan.contains(d.get("jenisRuangan").toString()))
|
||||
listJenisRuangan.add(d.get("jenisRuangan").toString());
|
||||
if (!listBulanPulangIbu.contains(d.get("bulanPulangIbu").toString()))
|
||||
listBulanPulangIbu.add(d.get("bulanPulangIbu").toString());
|
||||
});
|
||||
/*
|
||||
* Pengelompokkan tanggal pelayanan
|
||||
@ -1574,16 +1578,19 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
|
||||
List<Map<String, Object>> listData) {
|
||||
List<Integer> drKsmObgyn = pegawaiDao.getDokterByKsm(KSM_OBGYN);
|
||||
DateFormat df = new SimpleDateFormat("yyyy-MM");
|
||||
SimpleDateFormat month = new SimpleDateFormat("MMM-yyyy", new Locale("in", "ID"));
|
||||
Date date;
|
||||
try {
|
||||
date = df.parse(bulan);
|
||||
} catch (ParseException e) {
|
||||
throw new ServiceVOException(e.getMessage());
|
||||
}
|
||||
/*
|
||||
* Mendapatkan daftar jadwal kerja, tanggal dan jam kerja
|
||||
*/
|
||||
Date tglAwal = DateUtil.startMonth(date);
|
||||
listData.forEach(d -> {
|
||||
if (CommonUtil.isNotNullOrEmpty(d.get("idSayatan")))
|
||||
d.put("keterangan", "Dari " + (100.0 - Double.parseDouble(d.get("persenSayatan").toString()))
|
||||
+ "% komponen tarif, sayatan ke-" + d.get("urutanSayatan").toString());
|
||||
});
|
||||
List<MapProdukPaket> paketList = mapProdukPaketDao.findAll();
|
||||
List<Integer> allProdukEntriId = paketList.stream().map(MapProdukPaket::getProdukEntriId)
|
||||
.collect(Collectors.toList());
|
||||
@ -1596,7 +1603,8 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
|
||||
idProduk.ifPresent(mapProdukPaket -> {
|
||||
d.put("mPaketId", mapProdukPaket.getNoRec());
|
||||
d.put("paketId", mapProdukPaket.getPaketId());
|
||||
d.put("paketType", mapProdukPaket.getJenisMapping().name());
|
||||
if (CommonUtil.isNotNullOrEmpty(mapProdukPaket.getJenisMapping()))
|
||||
d.put("paketType", mapProdukPaket.getJenisMapping().name());
|
||||
});
|
||||
});
|
||||
List<MapProdukPaketToProduk> regulerList = mapProdukPaketToProdukDao.findAll();
|
||||
@ -1609,44 +1617,67 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
|
||||
List<String> allConcatProdukKelas = listData.stream()
|
||||
.filter(d -> CommonUtil.isNotNullOrEmpty(d.get("regRefId")))
|
||||
.map(d -> d.get("regRefId").toString() + d.get("idKelas").toString()).collect(Collectors.toList());
|
||||
allConcatProdukKelas.addAll(listData.stream().filter(d -> CommonUtil.isNotNullOrEmpty(d.get("paketId")))
|
||||
.map(d -> d.get("paketId").toString() + d.get("idKelas").toString()).collect(Collectors.toList()));
|
||||
allConcatProdukKelas.addAll(listData.stream().filter(d -> CommonUtil.isNotNullOrEmpty(d.get("idProduk")))
|
||||
.map(d -> d.get("idProduk").toString() + d.get("idKelas").toString()).collect(Collectors.toList()));
|
||||
List<HargaNettoProdukByKelasD> tarifDetailReguler = hargaNettoProdukByKelasDDao
|
||||
.findByConcateProdukKelas(allConcatProdukKelas);
|
||||
List<String> allConcatProdukNonkelas = listData.stream()
|
||||
.filter(d -> CommonUtil.isNotNullOrEmpty(d.get("regRefId")))
|
||||
.map(d -> d.get("regRefId").toString() + NON_KELAS).collect(Collectors.toList());
|
||||
allConcatProdukNonkelas.addAll(listData.stream().filter(d -> CommonUtil.isNotNullOrEmpty(d.get("paketId")))
|
||||
.map(d -> d.get("paketId").toString() + NON_KELAS).collect(Collectors.toList()));
|
||||
allConcatProdukNonkelas.addAll(listData.stream().filter(d -> CommonUtil.isNotNullOrEmpty(d.get("idProduk")))
|
||||
.map(d -> d.get("idProduk").toString() + NON_KELAS).collect(Collectors.toList()));
|
||||
List<HargaNettoProdukByKelasD> tarifDetailNonKelas = hargaNettoProdukByKelasDDao
|
||||
.findByConcateProdukKelas(allConcatProdukNonkelas);
|
||||
List<Map<String, Object>> ibuPaketDiRanapByDokter = pelayananPasienDao.findPasienPaketDiRanapByDokter(idPegawai,
|
||||
allProdukEntriId);
|
||||
List<Map<String, Object>> ibuPaketDiRanapByDokter = pelayananPasienDao
|
||||
.findPasienPaketDiRanapByDokter(drKsmObgyn, allProdukEntriId);
|
||||
Set<Integer> setIdIbu = ibuPaketDiRanapByDokter.stream()
|
||||
.map(pasien -> Integer.parseInt(pasien.get("pasienId").toString())).collect(Collectors.toSet());
|
||||
List<Map<String, Object>> ibuAnak = pasienDao.findIdByNoCmOfIbu(setIdIbu);
|
||||
listData.forEach(d -> {
|
||||
List<Integer> listIdAnak = ibuAnak.stream().filter(bn -> Integer
|
||||
.parseInt(d.get("pasienId").toString()) == Integer.parseInt(bn.get("idIbu").toString())
|
||||
|| Integer.parseInt(d.get("pasienId").toString()) == Integer.parseInt(bn.get("idAnak").toString()))
|
||||
.map(bn -> Integer.parseInt(bn.get("idAnak").toString())).collect(Collectors.toList());
|
||||
Optional<Map<String, Object>> first = ibuPaketDiRanapByDokter.stream()
|
||||
.filter(paket -> Integer.parseInt(d.get("pasienId").toString()) == Integer
|
||||
.parseInt(paket.get("pasienId").toString()))
|
||||
.parseInt(paket.get("pasienId").toString())
|
||||
|| listIdAnak.contains(Integer.parseInt(d.get("pasienId").toString())))
|
||||
.filter(paket -> CommonUtil.isNotNullOrEmpty(d.get("paketId")) && Integer
|
||||
.parseInt(d.get("paketId").toString()) == Integer.parseInt(paket.get("paketId").toString()))
|
||||
.findFirst();
|
||||
d.put("tglPulangIbu", null);
|
||||
d.put("bulanPulangIbu", "");
|
||||
d.put("hargaJasa", 0.0);
|
||||
if (first.isPresent()) {
|
||||
first.ifPresent(stringObjectMap -> d.put("bulanPulangIbu", month.format(stringObjectMap.get("tglKeluar"))));
|
||||
if (first.isPresent() && drKsmObgyn.contains(idPegawai) && !PERAWAT.name().equals(d.get("paketType"))) {
|
||||
d.put("tglPulangIbu", first.get().get("tglKeluar"));
|
||||
if (tglAwal.equals(first.get().get("tglKeluar")) && ((Date) first.get().get("tglKeluar")).after(tglAwal)
|
||||
&& drKsmObgyn.contains(idPegawai) && DOKTER_PEMERIKSA.equals(d.get("idJenisPelaksana"))
|
||||
if ((tglAwal.equals(first.get().get("tglKeluar"))
|
||||
|| ((Date) first.get().get("tglKeluar")).after(tglAwal))
|
||||
&& DOKTER_PEMERIKSA.equals(d.get("idJenisPelaksana"))
|
||||
&& TINDAKAN_UTAMA.name().equals(d.get("paketType"))) {
|
||||
Optional<HargaNettoProdukByKelasD> byDetailTarif = tarifDetailReguler.stream()
|
||||
.filter(dt -> dt.getProdukId().equals(d.get("paketId")))
|
||||
.filter(dt -> dt.getKelasId().equals(d.get("idKelas")))
|
||||
.filter(dt -> dt.getKomponenHargaId().equals(SPOG_OPERATOR)).findFirst();
|
||||
if (byDetailTarif.isPresent()) {
|
||||
d.put("hargaJasa", CommonUtil.isNotNullOrEmpty(byDetailTarif.get().getHargaNetto1()) ? byDetailTarif.get().getHargaNetto1() : byDetailTarif.get().getHargaSatuan());
|
||||
d.put("hargaJasa", CommonUtil.isNotNullOrEmpty(byDetailTarif.get().getHargaNetto1())
|
||||
? byDetailTarif.get().getHargaNetto1() : byDetailTarif.get().getHargaSatuan());
|
||||
} else {
|
||||
Optional<HargaNettoProdukByKelasD> byDetailTarifNonKelas = tarifDetailNonKelas.stream()
|
||||
.filter(dt -> dt.getProdukId().equals(d.get("paketId")))
|
||||
.filter(dt -> dt.getKelasId().equals(NON_KELAS))
|
||||
.filter(dt -> dt.getKomponenHargaId().equals(SPOG_OPERATOR)).findFirst();
|
||||
byDetailTarifNonKelas.ifPresent(hargaNettoProdukByKelasD -> d.put("hargaJasa", CommonUtil.isNotNullOrEmpty(byDetailTarif.get().getHargaNetto1()) ? byDetailTarif.get().getHargaNetto1() : byDetailTarif.get().getHargaSatuan()));
|
||||
byDetailTarifNonKelas.ifPresent(hargaNettoProdukByKelasD -> d.put("hargaJasa",
|
||||
CommonUtil.isNotNullOrEmpty(byDetailTarifNonKelas.get().getHargaNetto1())
|
||||
? byDetailTarifNonKelas.get().getHargaNetto1()
|
||||
: byDetailTarifNonKelas.get().getHargaSatuan()));
|
||||
}
|
||||
} else if (tglAwal.equals(first.get().get("tglKeluar"))
|
||||
&& ((Date) first.get().get("tglKeluar")).after(tglAwal) && drKsmObgyn.contains(idPegawai)
|
||||
} else if ((tglAwal.equals(first.get().get("tglKeluar"))
|
||||
|| ((Date) first.get().get("tglKeluar")).after(tglAwal))
|
||||
&& ASISTEN_SPESIALIS.equals(d.get("idJenisPelaksana"))
|
||||
&& TINDAKAN_UTAMA.name().equals(d.get("paketType"))) {
|
||||
Optional<HargaNettoProdukByKelasD> byDetailTarif = tarifDetailReguler.stream()
|
||||
@ -1654,57 +1685,73 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
|
||||
.filter(dt -> dt.getKelasId().equals(d.get("idKelas")))
|
||||
.filter(dt -> dt.getKomponenHargaId().equals(SPOG_ASISTEN)).findFirst();
|
||||
if (byDetailTarif.isPresent()) {
|
||||
d.put("hargaJasa", CommonUtil.isNotNullOrEmpty(byDetailTarif.get().getHargaNetto1()) ? byDetailTarif.get().getHargaNetto1() : byDetailTarif.get().getHargaSatuan());
|
||||
d.put("hargaJasa", CommonUtil.isNotNullOrEmpty(byDetailTarif.get().getHargaNetto1())
|
||||
? byDetailTarif.get().getHargaNetto1() : byDetailTarif.get().getHargaSatuan());
|
||||
} else {
|
||||
Optional<HargaNettoProdukByKelasD> byDetailTarifNonKelas = tarifDetailNonKelas.stream()
|
||||
.filter(dt -> dt.getProdukId().equals(d.get("paketId")))
|
||||
.filter(dt -> dt.getKelasId().equals(NON_KELAS))
|
||||
.filter(dt -> dt.getKomponenHargaId().equals(SPOG_ASISTEN)).findFirst();
|
||||
byDetailTarifNonKelas.ifPresent(hargaNettoProdukByKelasD -> d.put("hargaJasa", CommonUtil.isNotNullOrEmpty(byDetailTarif.get().getHargaNetto1()) ? byDetailTarif.get().getHargaNetto1() : byDetailTarif.get().getHargaSatuan()));
|
||||
byDetailTarifNonKelas.ifPresent(hargaNettoProdukByKelasD -> d.put("hargaJasa",
|
||||
CommonUtil.isNotNullOrEmpty(byDetailTarifNonKelas.get().getHargaNetto1())
|
||||
? byDetailTarifNonKelas.get().getHargaNetto1()
|
||||
: byDetailTarifNonKelas.get().getHargaSatuan()));
|
||||
}
|
||||
}
|
||||
} else {
|
||||
} else if (!drKsmObgyn.contains(idPegawai) && !PERAWAT.name().equals(d.get("paketType"))) {
|
||||
if (DOKTER_PEMERIKSA.equals(d.get("idJenisPelaksana"))) {
|
||||
Optional<HargaNettoProdukByKelasD> byDetailTarif = tarifDetailReguler.stream()
|
||||
.filter(dt -> dt.getProdukId().equals(d.get("paketId")))
|
||||
.filter(dt -> dt.getProdukId().equals(d.get("idProduk")))
|
||||
.filter(dt -> dt.getKelasId().equals(d.get("idKelas")))
|
||||
.filter(dt -> dt.getKomponenHargaId().equals(JASA_DOKTER)).findFirst();
|
||||
if (byDetailTarif.isPresent()) {
|
||||
d.put("hargaJasa", CommonUtil.isNotNullOrEmpty(byDetailTarif.get().getHargaNetto1()) ? byDetailTarif.get().getHargaNetto1() : byDetailTarif.get().getHargaSatuan());
|
||||
d.put("hargaJasa", CommonUtil.isNotNullOrEmpty(byDetailTarif.get().getHargaNetto1())
|
||||
? byDetailTarif.get().getHargaNetto1() : byDetailTarif.get().getHargaSatuan());
|
||||
} else {
|
||||
Optional<HargaNettoProdukByKelasD> byDetailTarifNonKelas = tarifDetailNonKelas.stream()
|
||||
.filter(dt -> dt.getProdukId().equals(d.get("paketId")))
|
||||
.filter(dt -> dt.getProdukId().equals(d.get("idProduk")))
|
||||
.filter(dt -> dt.getKelasId().equals(NON_KELAS))
|
||||
.filter(dt -> dt.getKomponenHargaId().equals(JASA_DOKTER)).findFirst();
|
||||
byDetailTarifNonKelas.ifPresent(hargaNettoProdukByKelasD -> d.put("hargaJasa", CommonUtil.isNotNullOrEmpty(byDetailTarif.get().getHargaNetto1()) ? byDetailTarif.get().getHargaNetto1() : byDetailTarif.get().getHargaSatuan()));
|
||||
byDetailTarifNonKelas.ifPresent(hargaNettoProdukByKelasD -> d.put("hargaJasa",
|
||||
CommonUtil.isNotNullOrEmpty(byDetailTarifNonKelas.get().getHargaNetto1())
|
||||
? byDetailTarifNonKelas.get().getHargaNetto1()
|
||||
: byDetailTarifNonKelas.get().getHargaSatuan()));
|
||||
}
|
||||
} else if (ASISTEN_SPESIALIS.equals(d.get("idJenisPelaksana"))) {
|
||||
Optional<HargaNettoProdukByKelasD> byDetailTarif = tarifDetailReguler.stream()
|
||||
.filter(dt -> dt.getProdukId().equals(d.get("paketId")))
|
||||
.filter(dt -> dt.getProdukId().equals(d.get("idProduk")))
|
||||
.filter(dt -> dt.getKelasId().equals(d.get("idKelas")))
|
||||
.filter(dt -> dt.getKomponenHargaId().equals(JASA_ASISTEN_SPESIALIS)).findFirst();
|
||||
if (byDetailTarif.isPresent()) {
|
||||
d.put("hargaJasa", CommonUtil.isNotNullOrEmpty(byDetailTarif.get().getHargaNetto1()) ? byDetailTarif.get().getHargaNetto1() : byDetailTarif.get().getHargaSatuan());
|
||||
d.put("hargaJasa", CommonUtil.isNotNullOrEmpty(byDetailTarif.get().getHargaNetto1())
|
||||
? byDetailTarif.get().getHargaNetto1() : byDetailTarif.get().getHargaSatuan());
|
||||
} else {
|
||||
Optional<HargaNettoProdukByKelasD> byDetailTarifNonKelas = tarifDetailNonKelas.stream()
|
||||
.filter(dt -> dt.getProdukId().equals(d.get("paketId")))
|
||||
.filter(dt -> dt.getProdukId().equals(d.get("idProduk")))
|
||||
.filter(dt -> dt.getKelasId().equals(NON_KELAS))
|
||||
.filter(dt -> dt.getKomponenHargaId().equals(JASA_ASISTEN_SPESIALIS)).findFirst();
|
||||
byDetailTarifNonKelas.ifPresent(hargaNettoProdukByKelasD -> d.put("hargaJasa", CommonUtil.isNotNullOrEmpty(byDetailTarif.get().getHargaNetto1()) ? byDetailTarif.get().getHargaNetto1() : byDetailTarif.get().getHargaSatuan()));
|
||||
byDetailTarifNonKelas.ifPresent(hargaNettoProdukByKelasD -> d.put("hargaJasa",
|
||||
CommonUtil.isNotNullOrEmpty(byDetailTarifNonKelas.get().getHargaNetto1())
|
||||
? byDetailTarifNonKelas.get().getHargaNetto1()
|
||||
: byDetailTarifNonKelas.get().getHargaSatuan()));
|
||||
}
|
||||
} else if (DOKTER_ANASTESI.equals(d.get("idJenisPelaksana"))) {
|
||||
Optional<HargaNettoProdukByKelasD> byDetailTarif = tarifDetailReguler.stream()
|
||||
.filter(dt -> dt.getProdukId().equals(d.get("paketId")))
|
||||
.filter(dt -> dt.getProdukId().equals(d.get("idProduk")))
|
||||
.filter(dt -> dt.getKelasId().equals(d.get("idKelas")))
|
||||
.filter(dt -> dt.getKomponenHargaId().equals(JASA_DOKTER_ANASTESI)).findFirst();
|
||||
if (byDetailTarif.isPresent()) {
|
||||
d.put("hargaJasa", CommonUtil.isNotNullOrEmpty(byDetailTarif.get().getHargaNetto1()) ? byDetailTarif.get().getHargaNetto1() : byDetailTarif.get().getHargaSatuan());
|
||||
d.put("hargaJasa", CommonUtil.isNotNullOrEmpty(byDetailTarif.get().getHargaNetto1())
|
||||
? byDetailTarif.get().getHargaNetto1() : byDetailTarif.get().getHargaSatuan());
|
||||
} else {
|
||||
Optional<HargaNettoProdukByKelasD> byDetailTarifNonKelas = tarifDetailNonKelas.stream()
|
||||
.filter(dt -> dt.getProdukId().equals(d.get("paketId")))
|
||||
.filter(dt -> dt.getProdukId().equals(d.get("idProduk")))
|
||||
.filter(dt -> dt.getKelasId().equals(NON_KELAS))
|
||||
.filter(dt -> dt.getKomponenHargaId().equals(JASA_DOKTER_ANASTESI)).findFirst();
|
||||
byDetailTarifNonKelas.ifPresent(hargaNettoProdukByKelasD -> d.put("hargaJasa", CommonUtil.isNotNullOrEmpty(byDetailTarif.get().getHargaNetto1()) ? byDetailTarif.get().getHargaNetto1() : byDetailTarif.get().getHargaSatuan()));
|
||||
byDetailTarifNonKelas.ifPresent(hargaNettoProdukByKelasD -> d.put("hargaJasa",
|
||||
CommonUtil.isNotNullOrEmpty(byDetailTarifNonKelas.get().getHargaNetto1())
|
||||
? byDetailTarifNonKelas.get().getHargaNetto1()
|
||||
: byDetailTarifNonKelas.get().getHargaSatuan()));
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -2614,17 +2661,63 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
|
||||
}
|
||||
|
||||
private List<Map<String, Object>> groupingTanggalFixedPay(List<Map<String, Object>> listData) {
|
||||
Map<Integer, Map<Double, Map<Double, Map<Integer, Map<String, Map<String, Map<String, List<Map<String, Object>>>>>>>>> collectTanggal = listData
|
||||
Map<Integer, Map<Double, Map<Double, Map<Integer, Map<String, Map<String, Map<String, Map<String, List<Map<String, Object>>>>>>>>>> collectTanggal = listData
|
||||
.stream()
|
||||
.collect(Collectors.groupingBy(o1 -> Integer.parseInt(o1.get("idProduk").toString()), Collectors
|
||||
.groupingBy(o2 -> Double.parseDouble(o2.get("hargaJasa").toString()), Collectors.groupingBy(
|
||||
o3 -> Double.parseDouble(o3.get("hargaJual").toString()),
|
||||
Collectors.groupingBy(o4 -> Integer.parseInt(o4.get("idKelompokPasien").toString()),
|
||||
Collectors.groupingBy(o5 -> o5.get("jenisRuangan").toString(),
|
||||
Collectors.groupingBy(o6 -> o6.get("keterangan").toString(), Collectors
|
||||
.groupingBy(o7 -> o7.get("tanggal").toString()))))))));
|
||||
Collectors.groupingBy(o6 -> o6.get("bulanPulangIbu").toString(),
|
||||
Collectors.groupingBy(o7 -> o7.get("keterangan").toString(),
|
||||
Collectors.groupingBy(
|
||||
o8 -> o8.get("tanggal").toString())))))))));
|
||||
List<Map<String, Object>> result = new ArrayList<>();
|
||||
collectTanggal.forEach((k1, v1) -> v1.forEach((k2, v2) -> v2.forEach((k3, v3) -> v3
|
||||
collectTanggal.forEach((k1, v1) -> v1.forEach((k2, v2) -> v2.forEach((k3, v3) -> v3.forEach((k4, v4) -> v4
|
||||
.forEach((k5, v5) -> v5.forEach((k6, v6) -> v6.forEach((k7, v7) -> v7.forEach((k8, v8) -> {
|
||||
HashMap<String, Object> map = new HashMap<>();
|
||||
map.put("idProduk", k1);
|
||||
map.put("hargaJasa", k2);
|
||||
map.put("hargaJual", k3);
|
||||
map.put("idKelompokPasien", k4);
|
||||
map.put("jenisRuangan", k5);
|
||||
map.put("bulanPulangIbu", k6);
|
||||
map.put("keterangan", k7);
|
||||
map.put("tanggal", k8);
|
||||
List<String> norecs = v8.stream().map(e -> e.get("idPelayananPasienPetugas").toString())
|
||||
.collect(Collectors.toList());
|
||||
map.put("norecs", norecs);
|
||||
double jumlah = v8.stream().mapToDouble(e -> Double.parseDouble(e.get("jumlah").toString())).sum();
|
||||
map.put("jumlah", jumlah);
|
||||
Optional<Map<String, Object>> first = v8.stream().findFirst();
|
||||
first.ifPresent(e -> {
|
||||
map.put("namaProduk", e.get("namaProduk").toString());
|
||||
map.put("kelompokPasien", e.get("kelompokPasien").toString());
|
||||
map.put("tglPelayanan", e.get("tglPelayanan"));
|
||||
map.put("sortIdKelompokPasien", Integer.parseInt(e.get("sortIdKelompokPasien").toString()));
|
||||
map.put("sortIdKelas", Integer.parseInt(e.get("sortIdKelas").toString()));
|
||||
map.put("jenisRuangan", e.get("jenisRuangan").toString());
|
||||
map.put("bulanPulangIbu", e.get("bulanPulangIbu").toString());
|
||||
map.put("keterangan", e.get("keterangan").toString());
|
||||
});
|
||||
result.add(map);
|
||||
}))))))));
|
||||
return result;
|
||||
}
|
||||
|
||||
private List<Map<String, Object>> groupingKategoriFixedPay(List<Map<String, Object>> data) {
|
||||
Map<Integer, Map<Double, Map<Double, Map<Integer, Map<String, Map<String, Map<String, List<Map<String, Object>>>>>>>>> collected = data
|
||||
.stream()
|
||||
.collect(Collectors.groupingBy(o1 -> Integer.parseInt(o1.get("idProduk").toString()), Collectors
|
||||
.groupingBy(o2 -> Double.parseDouble(o2.get("hargaJasa").toString()), Collectors.groupingBy(
|
||||
o3 -> Double.parseDouble(o3.get("hargaJual").toString()),
|
||||
Collectors.groupingBy(o4 -> Integer.parseInt(o4.get("idKelompokPasien").toString()),
|
||||
Collectors.groupingBy(o5 -> o5.get("jenisRuangan").toString(),
|
||||
Collectors.groupingBy(o6 -> o6.get("bulanPulangIbu").toString(),
|
||||
Collectors.groupingBy(
|
||||
o7 -> o7.get("keterangan").toString()))))))));
|
||||
List<Map<String, Object>> result = new ArrayList<>();
|
||||
collected.forEach((k1, v1) -> v1.forEach((k2, v2) -> v2.forEach((k3, v3) -> v3
|
||||
.forEach((k4, v4) -> v4.forEach((k5, v5) -> v5.forEach((k6, v6) -> v6.forEach((k7, v7) -> {
|
||||
HashMap<String, Object> map = new HashMap<>();
|
||||
map.put("idProduk", k1);
|
||||
@ -2632,13 +2725,21 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
|
||||
map.put("hargaJual", k3);
|
||||
map.put("idKelompokPasien", k4);
|
||||
map.put("jenisRuangan", k5);
|
||||
map.put("keterangan", k6);
|
||||
map.put("tanggal", k7);
|
||||
List<String> norecs = v7.stream().map(e -> e.get("idPelayananPasienPetugas").toString())
|
||||
.collect(Collectors.toList());
|
||||
map.put("norecs", norecs);
|
||||
map.put("bulanPulangIbu", k6);
|
||||
map.put("keterangan", k7);
|
||||
List<Map<String, Object>> detail = new ArrayList<>();
|
||||
v7.forEach(d -> {
|
||||
Map<String, Object> mapCount = new HashMap<>();
|
||||
mapCount.put("jumlah", d.get("jumlah"));
|
||||
mapCount.put("norecs", d.get("norecs"));
|
||||
mapCount.put("tanggal", d.get("tanggal"));
|
||||
detail.add(mapCount);
|
||||
});
|
||||
map.put("detail", detail);
|
||||
double jumlah = v7.stream().mapToDouble(e -> Double.parseDouble(e.get("jumlah").toString())).sum();
|
||||
map.put("jumlah", jumlah);
|
||||
double jumlahHargaJasa = jumlah * Double.parseDouble(map.get("hargaJasa").toString());
|
||||
map.put("jumlahHargaJasa", jumlahHargaJasa);
|
||||
Optional<Map<String, Object>> first = v7.stream().findFirst();
|
||||
first.ifPresent(e -> {
|
||||
map.put("namaProduk", e.get("namaProduk").toString());
|
||||
@ -2647,6 +2748,7 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
|
||||
map.put("sortIdKelompokPasien", Integer.parseInt(e.get("sortIdKelompokPasien").toString()));
|
||||
map.put("sortIdKelas", Integer.parseInt(e.get("sortIdKelas").toString()));
|
||||
map.put("jenisRuangan", e.get("jenisRuangan").toString());
|
||||
map.put("bulanPulangIbu", e.get("bulanPulangIbu").toString());
|
||||
map.put("keterangan", e.get("keterangan").toString());
|
||||
});
|
||||
result.add(map);
|
||||
@ -2654,53 +2756,6 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
|
||||
return result;
|
||||
}
|
||||
|
||||
private List<Map<String, Object>> groupingKategoriFixedPay(List<Map<String, Object>> data) {
|
||||
Map<Integer, Map<Double, Map<Double, Map<Integer, Map<String, Map<String, List<Map<String, Object>>>>>>>> collected = data
|
||||
.stream()
|
||||
.collect(Collectors.groupingBy(o1 -> Integer.parseInt(o1.get("idProduk").toString()), Collectors
|
||||
.groupingBy(o2 -> Double.parseDouble(o2.get("hargaJasa").toString()), Collectors.groupingBy(
|
||||
o3 -> Double.parseDouble(o3.get("hargaJual").toString()),
|
||||
Collectors.groupingBy(o4 -> Integer.parseInt(o4.get("idKelompokPasien").toString()),
|
||||
Collectors.groupingBy(o5 -> o5.get("jenisRuangan").toString(),
|
||||
Collectors.groupingBy(o6 -> o6.get("keterangan").toString())))))));
|
||||
List<Map<String, Object>> result = new ArrayList<>();
|
||||
collected.forEach((k1, v1) -> v1.forEach((k2, v2) -> v2
|
||||
.forEach((k3, v3) -> v3.forEach((k4, v4) -> v4.forEach((k5, v5) -> v5.forEach((k6, v6) -> {
|
||||
HashMap<String, Object> map = new HashMap<>();
|
||||
map.put("idProduk", k1);
|
||||
map.put("hargaJasa", k2);
|
||||
map.put("hargaJual", k3);
|
||||
map.put("idKelompokPasien", k4);
|
||||
map.put("jenisRuangan", k5);
|
||||
map.put("keterangan", k6);
|
||||
List<Map<String, Object>> detail = new ArrayList<>();
|
||||
v6.forEach(d -> {
|
||||
Map<String, Object> mapCount = new HashMap<>();
|
||||
mapCount.put("jumlah", d.get("jumlah"));
|
||||
mapCount.put("norecs", d.get("norecs"));
|
||||
mapCount.put("tanggal", d.get("tanggal"));
|
||||
detail.add(mapCount);
|
||||
});
|
||||
map.put("detail", detail);
|
||||
double jumlah = v6.stream().mapToDouble(e -> Double.parseDouble(e.get("jumlah").toString())).sum();
|
||||
map.put("jumlah", jumlah);
|
||||
double jumlahHargaJasa = jumlah * Double.parseDouble(map.get("hargaJasa").toString());
|
||||
map.put("jumlahHargaJasa", jumlahHargaJasa);
|
||||
Optional<Map<String, Object>> first = v6.stream().findFirst();
|
||||
first.ifPresent(e -> {
|
||||
map.put("namaProduk", e.get("namaProduk").toString());
|
||||
map.put("kelompokPasien", e.get("kelompokPasien").toString());
|
||||
map.put("tglPelayanan", e.get("tglPelayanan"));
|
||||
map.put("sortIdKelompokPasien", Integer.parseInt(e.get("sortIdKelompokPasien").toString()));
|
||||
map.put("sortIdKelas", Integer.parseInt(e.get("sortIdKelas").toString()));
|
||||
map.put("jenisRuangan", e.get("jenisRuangan").toString());
|
||||
map.put("keterangan", e.get("keterangan").toString());
|
||||
});
|
||||
result.add(map);
|
||||
}))))));
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<Map<String, Object>> detailLogbookTarifDokter(Integer idPegawai, List<String> norecs) {
|
||||
return pelayananPasienDao.findPelayananPasienByPetugasAndPelayananPasien(idPegawai, norecs);
|
||||
|
||||
@ -6,17 +6,19 @@ package com.jasamedika.medifirst2000.enums;
|
||||
* @since 18 Sep 2023
|
||||
*/
|
||||
public enum JenisMappingProdukPaket {
|
||||
|
||||
/**
|
||||
* Produk ditandai sebagai tindakan utama di dalam sebuah paket layanan.
|
||||
* Digunakan untuk mengelompokkan hak remunerasi dokter yang bersangkutan
|
||||
*/
|
||||
TINDAKAN_UTAMA,
|
||||
|
||||
/**
|
||||
* Produk ditandai sebagai visite utama dalam sebuah paket layanan.
|
||||
* Digunakan untuk mengelompokkan hak remunerasi dokter yang bersangkutan
|
||||
*/
|
||||
VISITE_UTAMA
|
||||
VISITE_UTAMA,
|
||||
/**
|
||||
* Produk ditandai bukan untuk dikerjakan oleh dokter
|
||||
*/
|
||||
PERAWAT
|
||||
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user