Merge branch 'dev/remun/paket/nonjkn' into prod/base

This commit is contained in:
Salman Manoe 2024-04-23 10:37:55 +07:00
commit d4f3cc414d
4 changed files with 43 additions and 19 deletions

View File

@ -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 {

View File

@ -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) "

View File

@ -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);
}

View File

@ -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