Merge branch 'dev/remun/paket/nonjkn' into prod/base
This commit is contained in:
commit
d4f3cc414d
@ -246,6 +246,7 @@ public final class Master {
|
||||
public static final Integer[] JASA_SARANA = { 6, 38 };
|
||||
public static final Integer SPOG_ASISTEN = 206;
|
||||
public static final Integer SPOG_OPERATOR = 201;
|
||||
public static final Integer TOTAL_TARIF = 210;
|
||||
}
|
||||
|
||||
public static final class KomponenIndex {
|
||||
|
||||
@ -206,6 +206,7 @@ public interface PelayananPasienDao extends JpaRepository<PelayananPasien, Strin
|
||||
+ "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,pd.pasienId as pasienId,"
|
||||
+ "sum(case when ppd.komponenHargaId = 210 then ppd.hargaJual else 0.0 end) as komponenTotalTarif,"
|
||||
+ "sum(case when ppp.ObjectJenisPetugasPeId = 4 and ppd.komponenHargaId = 35 then ppd.hargaJual else 0.0 end) as hargaJasaD,"
|
||||
+ "sum(case when ppp.ObjectJenisPetugasPeId = 13 and ppd.komponenHargaId = 22 then ppd.hargaJual else 0.0 end) as hargaJasaAs,"
|
||||
+ "sum(case when ppp.ObjectJenisPetugasPeId = 6 and ppd.komponenHargaId = 21 then ppd.hargaJual else 0.0 end) as hargaJasaAn,"
|
||||
@ -274,17 +275,17 @@ public interface PelayananPasienDao extends JpaRepository<PelayananPasien, Strin
|
||||
List<Map<String, Object>> findPelayananPasienByPetugasAndTanggal(@Param("pegawaiId") Integer idPegawai,
|
||||
@Param("tglAwal") Date tglAwal, @Param("tglAkhir") Date tglAkhir);
|
||||
|
||||
@Query("select new Map(jp.jenisPetugasPe as jenisPelaksana," + "pr.namaProduk as namaProduk,"
|
||||
+ "coalesce(pp.hargaJual,0) as hargaJual," + "coalesce(pp.hargaDiscount,0) as diskon,"
|
||||
+ "coalesce(pp.jumlah,0) as jumlah," + "kp.kelompokPasien as kelompokPasien,"
|
||||
+ "kls.namaKelas as namaKelas," + "to_char(pp.tglPelayanan,'yyyy-MM-dd HH24:MI:ss') as tanggal,"
|
||||
+ "ru.namaRuangan as namaRuangan," + "ps.namaPasien as namaPasien,ps.noCm as noCm,"
|
||||
+ "pd.noRegistrasi as noRegistrasi) " + "from PelayananPasienPetugas ppp "
|
||||
+ "inner join ppp.pelayananPasien pp " + "inner join ppp.kdjenispetugaspe jp "
|
||||
+ "inner join pp.pasienDaftar apd " + "inner join apd.pasienDaftar pd " + "left join pp.produk pr "
|
||||
+ "left join pp.kelas kls " + "left join pd.kelompokPasien kp " + "left join pd.pasien ps "
|
||||
+ "left join apd.ruangan ru " + "left join pr.detailJenisProduk djp "
|
||||
+ "where (ppp.statusEnabled is true or ppp.statusEnabled is null) "
|
||||
@Query("select new Map(jp.jenisPetugasPe as jenisPelaksana," + "pr.id as idProduk, pr.namaProduk as namaProduk,"
|
||||
+ "pp.noRec as idPelayanan," + "coalesce(pp.hargaJual,0) as hargaJual,"
|
||||
+ "coalesce(pp.hargaDiscount,0) as diskon," + "coalesce(pp.jumlah,0) as jumlah,"
|
||||
+ "kp.kelompokPasien as kelompokPasien," + "kls.namaKelas as namaKelas,"
|
||||
+ "to_char(pp.tglPelayanan,'yyyy-MM-dd HH24:MI:ss') as tanggal," + "ru.namaRuangan as namaRuangan,"
|
||||
+ "ps.namaPasien as namaPasien,ps.noCm as noCm," + "pd.noRegistrasi as noRegistrasi) "
|
||||
+ "from PelayananPasienPetugas ppp " + "inner join ppp.pelayananPasien pp "
|
||||
+ "inner join ppp.kdjenispetugaspe jp " + "inner join pp.pasienDaftar apd "
|
||||
+ "inner join apd.pasienDaftar pd " + "left join pp.produk pr " + "left join pp.kelas kls "
|
||||
+ "left join pd.kelompokPasien kp " + "left join pd.pasien ps " + "left join apd.ruangan ru "
|
||||
+ "left join pr.detailJenisProduk djp " + "where (ppp.statusEnabled is true or ppp.statusEnabled is null) "
|
||||
+ "and (pp.statusEnabled is true or pp.statusEnabled is null) "
|
||||
+ "and (pd.statusEnabled is true or pd.statusEnabled is null) " + "and ppp.ObjectPegawaiId = :pegawaiId "
|
||||
+ "and ppp.noRec in (:norecs) "
|
||||
|
||||
@ -1,10 +1,9 @@
|
||||
package com.jasamedika.medifirst2000.dao;
|
||||
|
||||
import com.jasamedika.medifirst2000.entities.PelayananPasienDetail;
|
||||
import org.springframework.data.jpa.repository.JpaRepository;
|
||||
import org.springframework.data.jpa.repository.Query;
|
||||
import org.springframework.data.repository.PagingAndSortingRepository;
|
||||
import org.springframework.data.repository.query.Param;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@ -13,12 +12,16 @@ import java.util.List;
|
||||
*
|
||||
* @author Generator
|
||||
*/
|
||||
@Repository("PelayananPasienDetailDao")
|
||||
public interface PelayananPasienDetailDao extends PagingAndSortingRepository<PelayananPasienDetail, String> {
|
||||
public interface PelayananPasienDetailDao extends JpaRepository<PelayananPasienDetail, String> {
|
||||
@Query("select model from PelayananPasienDetail model left join model.pelayananPasien a where a.noRec=:noRec")
|
||||
List<PelayananPasienDetail> findByPelayananPasien(@Param("noRec") String noRec);
|
||||
|
||||
@Query("select sum(ppd.hargaDiscount) " + "from PelayananPasienDetail ppd "
|
||||
+ "where ppd.pelayananPasienId = :noRec " + "and ppd.komponenHargaId = 35")
|
||||
Double totalDiskonJasamedis(@Param("noRec") String noRec);
|
||||
|
||||
@Query("select ppd " + "from PelayananPasienDetail ppd " + "where ppd.pelayananPasienId in (:listIdPelayanan) "
|
||||
+ "and ppd.komponenHargaId = :idKomponenHarga")
|
||||
List<PelayananPasienDetail> findByPelayananAndKomponenHarga(@Param("listIdPelayanan") List<String> listIdPelayanan,
|
||||
@Param("idKomponenHarga") Integer idKomponenHarga);
|
||||
}
|
||||
|
||||
@ -548,6 +548,7 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
|
||||
"idMonitoringHemodinamikGagalOrgan");
|
||||
List<Integer> idProdukLabGenetikaLuarRuangan = splitDataSettingDatafixed("idProdukLabGenetikaLuarRuangan");
|
||||
List<Integer> idProdukKecantikanFixedPay = splitDataSettingDatafixed("idProdukKecantikanFixedPay");
|
||||
List<Integer> paketBukanFixedPay = splitDataSettingDatafixed("produkPaketBukanFixedPay");
|
||||
if (drKkPatologiAnatomiList.contains(idPegawai)) {
|
||||
listDetailJenisProduk = idsRegDJPPenunjangPA;
|
||||
} else if (pegawaiDao.getDokterByKelompokKerja(KK_PATOLOGI_KLINIK).contains(idPegawai)) {
|
||||
@ -576,15 +577,17 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
|
||||
.filter(d -> !idProdukKecantikanFixedPay.contains(Integer.parseInt(d.get("idProduk").toString())))
|
||||
.collect(Collectors.toList());
|
||||
List<Integer> allPaketId = mapProdukPaketDao.findProdukEntriId();
|
||||
List<Integer> revisedPaketId = allPaketId.stream().filter(p -> !paketBukanFixedPay.contains(p))
|
||||
.collect(Collectors.toList());
|
||||
List<Map<String, Object>> listFixedPay = listRatedPay.stream()
|
||||
.filter(d -> allPaketId.contains(Integer.parseInt(d.get("idProduk").toString())))
|
||||
.filter(d -> revisedPaketId.contains(Integer.parseInt(d.get("idProduk").toString())))
|
||||
.collect(Collectors.toList());
|
||||
/*
|
||||
* Filtering selain logbook fixed pay
|
||||
*/
|
||||
allPaketId.addAll(mapProdukPaketDao.findPaketId());
|
||||
revisedPaketId.addAll(mapProdukPaketDao.findPaketId());
|
||||
listRatedPay = listRatedPay.stream()
|
||||
.filter(d -> !allPaketId.contains(Integer.parseInt(d.get("idProduk").toString())))
|
||||
.filter(d -> !revisedPaketId.contains(Integer.parseInt(d.get("idProduk").toString())))
|
||||
.collect(Collectors.toList());
|
||||
/*
|
||||
* Set persen jasa dan harga jasa pasien bpjs di ibs, icu
|
||||
@ -595,6 +598,8 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
|
||||
* Mapping set awal persentase jasa remunerasi dan harga jasa remunerasi
|
||||
*/
|
||||
for (Map<String, Object> d : listRatedPay) {
|
||||
if (paketBukanFixedPay.contains(Integer.parseInt(d.get("idProduk").toString())))
|
||||
d.put("hargaJual", d.get("komponenTotalTarif"));
|
||||
d.put("isTermasukProporsi", true);
|
||||
double hargaJual = Double.parseDouble(d.get("hargaJual").toString());
|
||||
if (Boolean.parseBoolean(d.get("isSelisihPaket").toString()))
|
||||
@ -2985,7 +2990,21 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
|
||||
|
||||
@Override
|
||||
public List<Map<String, Object>> detailLogbookTarifDokter(Integer idPegawai, List<String> norecs) {
|
||||
return pelayananPasienDao.findPelayananPasienByPetugasAndPelayananPasien(idPegawai, norecs);
|
||||
List<Integer> paketBukanFixedPay = splitDataSettingDatafixed("produkPaketBukanFixedPay");
|
||||
List<Map<String, Object>> result = pelayananPasienDao.findPelayananPasienByPetugasAndPelayananPasien(idPegawai,
|
||||
norecs);
|
||||
List<String> listIdPelayananPaketBukanFixedPay = result.stream()
|
||||
.filter(r -> paketBukanFixedPay.contains(Integer.parseInt(r.get("idProduk").toString())))
|
||||
.map(r -> r.get("idPelayanan").toString()).collect(Collectors.toList());
|
||||
List<PelayananPasienDetail> detailPelayananPaketBukanFixedPay = pelayananPasienDetailDao
|
||||
.findByPelayananAndKomponenHarga(listIdPelayananPaketBukanFixedPay, TOTAL_TARIF);
|
||||
for (Map<String, Object> res : result) {
|
||||
Optional<PelayananPasienDetail> detail = detailPelayananPaketBukanFixedPay.stream()
|
||||
.filter(d -> d.getPelayananPasienId().equals(res.get("idPelayanan"))).findFirst();
|
||||
detail.ifPresent(
|
||||
d -> res.put("hargaJual", CommonUtil.isNotNullOrEmpty(d.getHargaJual()) ? d.getHargaJual() : 0.00));
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user