salmanoe 73aa290766 Add PelayananFarmakologiService
Pembuatan service pencatatan pelayanan dokter farmakologi
2022-06-20 14:43:40 +07:00

48 lines
2.6 KiB
Java

package com.jasamedika.medifirst2000.dao;
import java.util.List;
import java.util.Map;
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 com.jasamedika.medifirst2000.entities.PelayananFarmakologi;
/**
* @author salmanoe
* @since Jun 20, 2022
*
*/
@Repository("pelayananFarmakologiDao")
public interface PelayananFarmakologiDao extends PagingAndSortingRepository<PelayananFarmakologi, String> {
@Query("select pf from PelayananFarmakologi pf " + "where pf.statusEnabled is true "
+ "and to_char(pf.tglPelayanan,'yyyy-MM') = :bulan " + "and pf.pegawaiId = :pegawaiId")
List<PelayananFarmakologi> findAllByKontrak(@Param("bulan") String bulan, @Param("pegawaiId") Integer idPegawai);
@Query("select new Map(pfk.noRec as noRec," + "pfk.tglPelayanan as tglPelayanan," + "pfk.skor as skor,"
+ "pfk.jumlah as jumlah," + "pfk.skor*pfk.jumlah as tSkor," + "pfk.catatan as detail,"
+ "pf.id as produkId," + "pf.namaProduk as namaProduk," + "pf.kdProduk as kdProduk,"
+ "(case when pf.kdProduk = 1 then 'Pelayanan Pasien (Tarif)' "
+ "when pf.kdProduk = 2 then 'pelayanan Pasien (Nontarif)' "
+ "when pf.kdProduk = 3 then 'Pelayanan Nonpasien' end) as kodeProduk," + "pg.id as pegawaiId,"
+ "pg.namaLengkap as namaLengkap) " + "from PelayananFarmakologi pfk " + "inner join pfk.produk pf "
+ "inner join pfk.pegawai pg " + "where pfk.statusEnabled is true " + "and pf.statusEnabled is true "
+ "and pg.statusEnabled is true " + "and to_char(pfk.tglPelayanan,'yyyy-MM') = :bulan "
+ "and pfk.pegawaiId = :pegawaiId " + "order by pf.namaProduk, pfk.tglPelayanan")
List<Map<String, Object>> findPelayananFarmakologi(@Param("bulan") String bulan,
@Param("pegawaiId") Integer idPegawai);
@Query("select new Map(pfk.tglPelayanan as tglPelayanan,"
+ "to_char(pfk.tglPelayanan,'yyyy-MM-dd HH24:MI:ss') as tglPelayananFormatted," + "pfk.jumlah as jumlah,"
+ "pfk.catatan as catatan) " + "from PelayananFarmakologi pfk " + "inner join pfk.pegawai pg "
+ "inner join pfk.produk pf " + "where pfk.statusEnabled is true " + "and pf.statusEnabled is true "
+ "and pg.statusEnabled is true " + "and pg.id = :pegawaiId " + "and pf.id = :produkId "
+ "and to_char(pfk.tglPelayanan,'yyyy-MM-dd') = :tglPelayanan")
List<Map<String, Object>> findPelayananFarmakologiDetail(@Param("pegawaiId") Integer idPegawai,
@Param("produkId") Integer idProduk, @Param("tglPelayanan") String tglPelayanan);
}