package com.jasamedika.medifirst2000.dao; import java.util.Date; 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.IndekKinerja; import com.jasamedika.medifirst2000.entities.UraianTugasM; /** * Repository class for IndekKinerja * * @author Generator */ @Repository("IndekKinerjaDao") public interface IndekKinerjaDao extends PagingAndSortingRepository { @Query("select model from IndekKinerja model where year(model.tanggal)=:tahun and month(model.tanggal)=:bulan and model.pegawai.id=:pegawai ") List findKinerja(@Param("tahun") Integer tahun, @Param("bulan") Integer bulan, @Param("pegawai") Integer pegawai); @Query(" select distinct new Map( pelayananPasien.tglPelayanan as tglPelayanan,jenisProduk.id as idJenisProduk," + " produk.namaProduk as namaProduk, produk.id as idProduk)" + " from PelayananPasienPetugas pelayananPasienPetugas" + " left join pelayananPasienPetugas.kdpegawai dokter" + " left join pelayananPasienPetugas.pelayananPasien pelayananPasien" + " left join pelayananPasien.produk produk " + " left join produk.detailJenisProduk detail" + " left join detail.jenisProduk jenisProduk " + "where dokter.id=:id and to_char(pelayananPasien.tglPelayanan,'yyyy-MM-dd') " + "between :startDate and :endDate and jenisProduk.id not in (:listIdJenisProduk) ") public List> findByIdUser(@Param("id") Integer id, @Param("startDate") String startDate, @Param("endDate") String endDate, @Param("listIdJenisProduk") List listIdJenisProduk); @Query(" select distinct new Map( pelayananPasien.tglPelayanan as tglPelayanan,jenisProduk.id as idJenisProduk," + " produk.namaProduk as namaProduk, produk.id as idProduk)" + " from PelayananPasienPetugas pelayananPasienPetugas" + " left join pelayananPasienPetugas.kdpegawai dokter" + " left join pelayananPasienPetugas.pelayananPasien pelayananPasien" + " left join pelayananPasien.produk produk " + " left join produk.detailJenisProduk detail" + " left join detail.jenisProduk jenisProduk " + "where dokter.id=:id and to_char(pelayananPasien.tglPelayanan,'yyyy-MM-dd') " + "between :startDate and :endDate and jenisProduk.id not in (:listIdJenisProduk) and detail.id not in (:listIdDetailJenisProduk) ") public List> findByIdUserWithException(@Param("id") Integer id, @Param("startDate") String startDate, @Param("endDate") String endDate, @Param("listIdJenisProduk") List listIdJenisProduk, @Param("listIdDetailJenisProduk") List listIdDetailJenisProduk); // detail.id as detailId, @Query(" select distinct new map (case when pelayananPasienPetugas.kdjenispetugaspe.id in (6,13) then pelayananPasienPetugas.kdjenispetugaspe.id else 4 end as idJenisPelaksana, produk.namaProduk as namaProduk, produk.id as idProduk, " + " pelayananPasien.hargaSatuan as harga, kelas.namaKelas as namaKelas, kelas.id as idKelas, detail.id as detailId, " + " (select distinct harga.hargaNetto1 from HargaNettoProdukByKelas harga where harga.produkId = produk.id " + "and ((harga.statusEnabled is true and harga.reportDisplay = 'tarif_2022_Nov') " + "or (harga.statusEnabled is false and harga.reportDisplay <> 'tarif_2022_Nov')) " + "and harga.kelasId = 3) as hargaKelas1, " + " dokter.id as idPegawai) " + " from PelayananPasienPetugas pelayananPasienPetugas" + " left join pelayananPasienPetugas.kdpegawai dokter" + " left join pelayananPasienPetugas.pelayananPasien pelayananPasien" + " left join pelayananPasien.produk produk " + " left join pelayananPasien.kelas kelas " + " left join produk.detailJenisProduk detail" + " left join detail.jenisProduk jenisProduk " + "where dokter.id=:id and pelayananPasien.tglPelayanan between " + " :start and :end and jenisProduk.id not in (:listIdJenisProduk) " + " group by pelayananPasienPetugas.kdjenispetugaspe.id, kelas.id,kelas.namaKelas, produk.id, produk.namaProduk ,pelayananPasien.hargaSatuan ,detail.id, dokter.id " + " order by kelas.namaKelas, produk.namaProduk asc ") public List> findIdProdukByIdUser(@Param("id") Integer id, @Param("start") Date start, @Param("end") Date end, @Param("listIdJenisProduk") List listIdJenisProduk); @Query(" select distinct new map (case when pelayananPasienPetugas.kdjenispetugaspe.id in (6,13) then pelayananPasienPetugas.kdjenispetugaspe.id else 4 end as idJenisPelaksana, produk.namaProduk as namaProduk, produk.id as idProduk, " + " pelayananPasien.hargaSatuan as harga, kelas.namaKelas as namaKelas, kelas.id as idKelas, detail.id as detailId, " + " (select distinct harga.hargaNetto1 from HargaNettoProdukByKelas harga where harga.produkId = produk.id" + " and ((harga.statusEnabled is true and harga.reportDisplay = 'tarif_2022_Nov') " + "or (harga.statusEnabled is false and harga.reportDisplay <> 'tarif_2022_Nov')) " + "and harga.kelasId = 3) as hargaKelas1, " + " dokter.id as idPegawai) " + " from PelayananPasienPetugas pelayananPasienPetugas" + " left join pelayananPasienPetugas.kdpegawai dokter" + " left join pelayananPasienPetugas.pelayananPasien pelayananPasien" + " left join pelayananPasien.produk produk " + " left join pelayananPasien.kelas kelas " + " left join produk.detailJenisProduk detail" + " left join detail.jenisProduk jenisProduk " + "where dokter.id=:id and pelayananPasien.tglPelayanan between " + " :start and :end and jenisProduk.id not in (:listIdJenisProduk) and detail.id not in (:listIdDetailJenisProduk) " + " group by pelayananPasienPetugas.kdjenispetugaspe.id, kelas.id,kelas.namaKelas, produk.id, produk.namaProduk ,pelayananPasien.hargaSatuan ,detail.id, dokter.id " + " order by kelas.namaKelas, produk.namaProduk asc ") public List> findIdProdukByIdUserWithDetailException(@Param("id") Integer id, @Param("start") Date start, @Param("end") Date end, @Param("listIdJenisProduk") List listIdJenisProduk, @Param("listIdDetailJenisProduk") List listIdDetailJenisProduk); @Query(" select produk.id " + " from PelayananPasienPetugas pelayananPasienPetugas" + " left join pelayananPasienPetugas.kdpegawai dokter" + " left join pelayananPasienPetugas.pelayananPasien pelayananPasien" + " left join pelayananPasien.produk produk " + " left join pelayananPasien.kelas kelas " + " left join produk.detailJenisProduk detail" + " left join detail.jenisProduk jenisProduk " + "where dokter.id=:id and pelayananPasien.tglPelayanan between " + " :start and :end and jenisProduk.id not in (:listIdJenisProduk) ") public List findIdProdukByIdUser2(@Param("id") Integer id, @Param("start") Date start, @Param("end") Date end, @Param("listIdJenisProduk") List listIdJenisProduk); @Query(" select produk.id " + " from PelayananPasienPetugas pelayananPasienPetugas" + " left join pelayananPasienPetugas.kdpegawai dokter" + " left join pelayananPasienPetugas.pelayananPasien pelayananPasien" + " left join pelayananPasien.produk produk " + " left join pelayananPasien.kelas kelas " + " left join produk.detailJenisProduk detail" + " left join detail.jenisProduk jenisProduk " + "where dokter.id=:id and pelayananPasien.tglPelayanan between " + " :start and :end and jenisProduk.id not in (:listIdJenisProduk) and detail.id not in (:listDetailJenisProduk) ") public List findIdProdukByIdUser2WithException(@Param("id") Integer id, @Param("start") Date start, @Param("end") Date end, @Param("listIdJenisProduk") List listIdJenisProduk, @Param("listDetailJenisProduk") List listDetailJenisProduk); @Query(" select distinct new map ( produk.namaProduk as namaProduk, produk.id as produkId," + " count(produk.namaProduk) as count,pelayananPasien.hargaSatuan as harga,detail.id as detailId,jenisProduk.id as idJenisProduk ) " + " from PelayananPasienPetugas pelayananPasienPetugas" + " left join pelayananPasienPetugas.kdpegawai dokter" + " left join pelayananPasienPetugas.pelayananPasien pelayananPasien" + " left join pelayananPasien.produk produk " + " left join produk.detailJenisProduk detail" + " left join detail.jenisProduk jenisProduk " + " where dokter.id=:id and jenisProduk.id not in (:listIdJenisProduk) and pelayananPasien.tglPelayanan between :start and :end " + " group by produk.namaProduk, produk.id,pelayananPasien.hargaSatuan ,detail.id,jenisProduk.id") public List> findTindakanByIdUser(@Param("id") Integer id, @Param("start") Date start, @Param("end") Date end, @Param("listIdJenisProduk") List listIdJenisProduk); @Query(" select new map (produk.namaProduk as namaProduk,produk.id as produkId," + " count(produk.namaProduk) as count,to_char(pelayananPasien.tglPelayanan,'yyyy-MM-dd') as tglPelayanan )" + " from PelayananPasienPetugas pelayananPasienPetugas " + " left join pelayananPasienPetugas.kdpegawai dokter" + " left join pelayananPasienPetugas.pelayananPasien pelayananPasien" + " left join pelayananPasien.produk produk " + " left join produk.detailJenisProduk detail" + " left join detail.jenisProduk jenisProduk " + " where dokter.id=:id and jenisProduk.id not in (:listIdJenisProduk) " + " and pelayananPasien.tglPelayanan between :start and :end " + "group by produk.namaProduk,produk.id,to_char(pelayananPasien.tglPelayanan,'yyyy-MM-dd')" + " order by to_char(pelayananPasien.tglPelayanan,'yyyy-MM-dd')") public List> findTindakanByIdUserAndPeriod(@Param("id") Integer id, @Param("start") Date start, @Param("end") Date end, @Param("listIdJenisProduk") List listIdJenisProduk); @Query(" select new map (produk.namaProduk as namaProduk,produk.id as produkId," + " count(produk.namaProduk) as count,to_char(pelayananPasien.tglPelayanan,'yyyy-MM-dd') as tglPelayanan )" + " from PelayananPasienPetugas pelayananPasienPetugas " + " left join pelayananPasienPetugas.kdpegawai dokter" + " left join pelayananPasienPetugas.pelayananPasien pelayananPasien" + " left join pelayananPasien.produk produk " + " left join produk.detailJenisProduk detail" + " left join detail.jenisProduk jenisProduk " + " where dokter.id=:id and jenisProduk.id not in (:listIdJenisProduk) and detail.id not in (:listIdDetailJenisProduk) " + " and pelayananPasien.tglPelayanan between :start and :end" + " group by produk.namaProduk,produk.id,to_char(pelayananPasien.tglPelayanan,'yyyy-MM-dd')" + " order by to_char(pelayananPasien.tglPelayanan,'yyyy-MM-dd')") public List> findTindakanByIdUserAndPeriodWithException(@Param("id") Integer id, @Param("start") Date start, @Param("end") Date end, @Param("listIdJenisProduk") List listIdJenisProduk, @Param("listIdDetailJenisProduk") List listIdDetailJenisProduk); @Query(" select new Map(rincianKegiatan.rincianKegiatan as rincianKegiatan, rincianKegiatan.id as idRincianKegiatan, " + "jabatan.namaJabatan as namaJabatan, jabatan.id as idJabatan)" + " from UraianTugasM uraianTugas" + " left join uraianTugas.rincianKegiatan rincianKegiatan " + " left join uraianTugas.jabatan jabatan " + " left join uraianTugas.pelaksanaanTugas pelaksanaanTugas " + " left join uraianTugas.dokumen dokumen" + " where jabatan.id=:idJabatan and pelaksanaanTugas.id=1" + " and uraianTugas.statusEnabled is true" + " and rincianKegiatan.statusEnabled is true" + " and jabatan.statusEnabled is true" + " and pelaksanaanTugas.statusEnabled is true") public List> findUraianTugas(@Param("idJabatan") Integer idJabatan); @Query(" select uraianTugas " + " from UraianTugasM uraianTugas" + " left join uraianTugas.rincianKegiatan rincianKegiatan " + " left join uraianTugas.jabatan jabatan " + " left join uraianTugas.pelaksanaanTugas pelaksanaanTugas " + " left join uraianTugas.dokumen dokumen" + " where jabatan.id=:idJabatan and pelaksanaanTugas.id=1" + " and uraianTugas.statusEnabled is true" + " and rincianKegiatan.statusEnabled is true" + " and jabatan.statusEnabled is true" + " and pelaksanaanTugas.statusEnabled is true" + " and dokumen.statusEnabled is true") public List findUraianTugasByJabatan(@Param("idJabatan") Integer idJabatan); @Query(" select new Map( produk.namaProduk as namaProduk, count( distinct pelayananPasien.noRec) as count,jenisProduk.id as idJenisProduk)" + " from PelayananPasienPetugas pelayananPasienPetugas" + " left join pelayananPasienPetugas.kdpegawai dokter" + " left join pelayananPasienPetugas.pelayananPasien pelayananPasien" + " left join pelayananPasien.produk produk " + " left join produk.detailJenisProduk detail" + " left join detail.jenisProduk jenisProduk" + " where dokter.id=:id and pelayananPasien.tglPelayanan between :start and :end" + " and jenisProduk.id not in (:listIdJenisProduk) group by produk.namaProduk,jenisProduk.id") public List> findCountTindakanByIdUserAndPeriod(@Param("id") Integer id, @Param("start") Date start, @Param("end") Date end, @Param("listIdJenisProduk") List listIdJenisProduk); @Query(" select new Map( produk.namaProduk as namaProduk, count( distinct pelayananPasien.noRec) as count,jenisProduk.id as idJenisProduk)" + " from PelayananPasienPetugas pelayananPasienPetugas" + " left join pelayananPasienPetugas.kdpegawai dokter" + " left join pelayananPasienPetugas.pelayananPasien pelayananPasien" + " left join pelayananPasien.produk produk " + " left join produk.detailJenisProduk detail" + " left join detail.jenisProduk jenisProduk " + "where dokter.id=:id and to_char(pelayananPasien.tglPelayanan,'yyyy-MM-dd') " + "between :startDate and :endDate and jenisProduk.id not in (:listIdJenisProduk) and detail.id not in (:listIdDetailJenisProduk) group by produk.namaProduk,jenisProduk.id") public List> findCountTindakanByIdUserAndPeriodWithException(@Param("id") Integer id, @Param("startDate") String startDate, @Param("endDate") String endDate, @Param("listIdJenisProduk") List listIdJenisProduk, @Param("listIdDetailJenisProduk") List listIdDetailJenisProduk); @Query(" select new map (produk.namaProduk as namaProduk, produk.id as produkId," + " count(produk.namaProduk) as count,pelayananPasien.hargaSatuan as harga,detail.id as detailId,jenisProduk.id as idJenisProduk)" + " from PelayananPasienPetugas pelayananPasienPetugas" + " left join pelayananPasienPetugas.kdpegawai dokter" + " left join pelayananPasienPetugas.pelayananPasien pelayananPasien" + " left join pelayananPasien.produk produk " + " left join produk.detailJenisProduk detail" + " left join detail.jenisProduk jenisProduk" + " where dokter.id=:id and pelayananPasien.tglPelayanan between :start and :end and jenisProduk.id not in (:listIdJenisProduk)" + " group by produk.namaProduk,produk.id,pelayananPasien.hargaSatuan,detail.id,jenisProduk.id ") public List> findAllProdukPerPeriode(@Param("id") Integer id, @Param("start") Date start, @Param("end") Date end, @Param("listIdJenisProduk") List listIdJenisProduk); @Query(" select new map (produk.namaProduk as namaProduk, produk.id as produkId," + " count(distinct pelayananPasien.noRec) as count,pelayananPasien.hargaSatuan as harga,detail.id as detailId,jenisProduk.id as idJenisProduk)" + " from PelayananPasienPetugas pelayananPasienPetugas" + " left join pelayananPasienPetugas.kdpegawai dokter" + " left join pelayananPasienPetugas.pelayananPasien pelayananPasien" + " left join pelayananPasien.produk produk " + " left join produk.detailJenisProduk detail" + " left join detail.jenisProduk jenisProduk" + " where dokter.id=:id and to_char(pelayananPasien.tglPelayanan,'yyyy-MM-dd') = :tanggal and jenisProduk.id not in (:listIdJenisProduk)" + " group by produk.namaProduk,produk.id,pelayananPasien.hargaSatuan,detail.id,jenisProduk.id ") public List> findAllProdukPerTanggal(@Param("id") Integer id, @Param("tanggal") String tanggal, @Param("listIdJenisProduk") List listIdJenisProduk); @Query(" select count(distinct pelayananPasien.noRec) as capaian" + " from PelayananPasienPetugas pelayananPasienPetugas" + " left join pelayananPasienPetugas.kdpegawai dokter" + " left join pelayananPasienPetugas.pelayananPasien pelayananPasien" + " left join pelayananPasien.produk produk " + " left join produk.detailJenisProduk detail" + " left join detail.jenisProduk jenisProduk " + "where dokter.id=:id and to_char(pelayananPasien.tglPelayanan,'yyyy-MM-dd') " + "between :startDate and :endDate and jenisProduk.id not in (:listIdJenisProduk)") public Long findTotalTindakan(@Param("id") Integer id, @Param("startDate") String startDate, @Param("endDate") String endDate, @Param("listIdJenisProduk") List listIdJenisProduk); @Query(" select count(distinct pelayananPasien.noRec) as capaian" + " from PelayananPasienPetugas pelayananPasienPetugas" + " left join pelayananPasienPetugas.kdpegawai dokter" + " left join pelayananPasienPetugas.pelayananPasien pelayananPasien" + " left join pelayananPasien.produk produk " + " left join produk.detailJenisProduk detail" + " left join detail.jenisProduk jenisProduk " + "where dokter.id=:id and to_char(pelayananPasien.tglPelayanan,'yyyy-MM-dd') " + "between :startDate and :endDate and jenisProduk.id not in (:listIdJenisProduk) and detail.id not in (:listIdDetailJenisProduk) ") public Long findTotalTindakanWithException(@Param("id") Integer id, @Param("startDate") String startDate, @Param("endDate") String endDate, @Param("listIdJenisProduk") List listIdJenisProduk, @Param("listIdDetailJenisProduk") List listIdDetailJenisProduk); @Query(" select count(produk.namaProduk) as namaProduk" + " from PelayananPasienPetugas pelayananPasienPetugas" + " left join pelayananPasienPetugas.kdpegawai dokter" + " left join pelayananPasienPetugas.pelayananPasien pelayananPasien" + " left join pelayananPasien.produk produk " + " left join produk.detailJenisProduk detailjenisProduk" + " left join detailjenisProduk.jenisProduk jenisProduk" + " where dokter.id=:id and to_char(pelayananPasien.tglPelayanan,'yyyy-MM-dd') " + " =:date and jenisProduk.id not in (:listIdJenisProduk)") public Long findTotalTindakanPerTanggal(@Param("id") Integer id, @Param("date") String date, @Param("listIdJenisProduk") List listIdJenisProduk); @Query(" select count(produk.namaProduk) as namaProduk" + " from PelayananPasienPetugas pelayananPasienPetugas" + " left join pelayananPasienPetugas.kdpegawai dokter" + " left join pelayananPasienPetugas.pelayananPasien pelayananPasien" + " left join pelayananPasien.produk produk " + " left join produk.detailJenisProduk detailjenisProduk" + " left join detailjenisProduk.jenisProduk jenisProduk" + " where dokter.id=:id and to_char(pelayananPasien.tglPelayanan,'yyyy-MM-dd') " + " =:date and jenisProduk.id not in (:listIdJenisProduk) and detailjenisProduk.id not in (:listIdDetailJenisProduk) ") public Long findTotalTindakanPerTanggalWithException(@Param("id") Integer id, @Param("date") String date, @Param("listIdJenisProduk") List listIdJenisProduk, @Param("listIdDetailJenisProduk") List listIdDetailJenisProduk); @Query(" select count(produk.namaProduk) as namaProduk" + " from PelayananPasienPetugas pelayananPasienPetugas" + " left join pelayananPasienPetugas.kdpegawai dokter" + " left join pelayananPasienPetugas.pelayananPasien pelayananPasien" + " left join pelayananPasien.produk produk " + " left join produk.detailJenisProduk detailjenisProduk" + " left join detailjenisProduk.jenisProduk jenisProduk" + " where dokter.id=:id and to_char(pelayananPasien.tglPelayanan,'yyyy-MM-dd') " + " =:date and jenisProduk.id not in (:idJenisProduk) ") public Long findTotalTindakanPerTanggalDanJenisProduk(@Param("id") Integer id, @Param("date") String date, @Param("idJenisProduk") List idJenisProduk); @Query(" select count(produk.namaProduk) as namaProduk" + " from PelayananPasienPetugas pelayananPasienPetugas" + " left join pelayananPasienPetugas.kdpegawai dokter" + " left join pelayananPasienPetugas.pelayananPasien pelayananPasien" + " left join pelayananPasien.produk produk" + " where dokter.id=:id and pelayananPasien.tglPelayanan between :start and :end" + " and produk.id = :idProduk") public Long findTotalProdukPerPeriode(@Param("id") Integer id, @Param("idProduk") Integer idProduk, @Param("start") Date start, @Param("end") Date end); @Query(" select CAST(sum(pelayananPasien.jumlah) as long) as total" + " from PelayananPasienPetugas pelayananPasienPetugas" + " left join pelayananPasienPetugas.kdpegawai dokter" + " left join pelayananPasienPetugas.pelayananPasien pelayananPasien" + " left join pelayananPasien.produk produk" + " left join produk.detailJenisProduk detailjenisProduk" + " left join detailjenisProduk.jenisProduk jenisProduk" + " where dokter.id=:id and pelayananPasien.tglPelayanan between :start and :end" + " and jenisProduk.id not in(:idJenisProduk)") public Long findTotalTindakanPerMonth(@Param("id") Integer id, @Param("start") Date start, @Param("end") Date end, @Param("idJenisProduk") List idJenisProduk); @Query(" select distinct pelayananPasien.hargaSatuan" + " from PelayananPasienPetugas pelayananPasienPetugas" + " left join pelayananPasienPetugas.kdpegawai dokter" + " left join pelayananPasienPetugas.pelayananPasien pelayananPasien" + " left join pelayananPasien.produk produk" + " where produk.id =:id") public Double findHargaSatuan(@Param("id") Integer id); @Query(" select new map(produk.namaProduk as namaProduk,produk.id as produkId," + " to_char(pelayananPasien.tglPelayanan,'yyyy-MM-dd') as tglPelayanan, count(produk.id) as jumlah) " + " from PelayananPasienPetugas pelayananPasienPetugas" + " left join pelayananPasienPetugas.kdpegawai dokter" + " left join pelayananPasienPetugas.pelayananPasien pelayananPasien" + " left join pelayananPasien.produk produk" + " where dokter.id=:idPegawai and pelayananPasien.tglPelayanan between :start and :end " + " and produk.id = :produkId group by produk.namaProduk,to_char(pelayananPasien.tglPelayanan,'yyyy-MM-dd')," + " produk.id order by to_char(pelayananPasien.tglPelayanan,'yyyy-MM-dd')") public List> findCountTindakanPerTanggalAndProdukId(@Param("idPegawai") Integer idPegawai, @Param("produkId") Integer produkId, @Param("start") Date start, @Param("end") Date end); @Query(" select count(produk.id) as jumlah " + " from PelayananPasienPetugas pelayananPasienPetugas" + " left join pelayananPasienPetugas.kdpegawai dokter" + " left join pelayananPasienPetugas.pelayananPasien pelayananPasien" + " left join pelayananPasien.produk produk" + " where dokter.id=:idPegawai and to_char(pelayananPasien.tglPelayanan,'yyyy-MM-dd') = :periode " + " and produk.id = :produkId") public Long findTotalTindakanPerTanggalAndProdukId(@Param("idPegawai") Integer idPegawai, @Param("produkId") Integer produkId, @Param("periode") String periode); @Query(" select setting.nilaiField as nilaiField " + " from SettingDataFixed setting" + " where setting.namaField = 'rincianKegiatanId'") public String findIdPelayananPasien(); @Query(" select setting.nilaiField as nilaiField " + " from SettingDataFixed setting" + " where setting.namaField = 'KdJenisProdukAdministrasiForSdm'") public String findIdJenisProdukAdministrasi(); @Query(" select new map(perhitunganPoin.persentasePoin as persentasePoin," + " perhitunganPoin.pembagiPoin as pembagiPoin,detailJenisProduk.id as id) " + " from PerhitunganPoin perhitunganPoin" + " left join perhitunganPoin.detailJenisProduk detailJenisProduk" + " where detailJenisProduk.id = :idDetailJenisProduk") public Map findVariabelPembagiPoin(@Param("idDetailJenisProduk") Integer idDetailJenisProduk); @Query(" select new map(komponenIKI.id as komponenId,indeksKinerjaIndividu.item as item,komponenIKI.komponenIKI as komponenIKI," + " indeksKinerjaIndividu.target as target,indeksKinerjaIndividu.bobot as bobot," + " indeksKinerjaIndividu.keterangan as keterangan, " + " indeksKinerjaIndividu.total as total, indeksKinerjaIndividu.nilai as nilai,indeksKinerjaIndividu.total as capaian," + " indeksKinerjaIndividu.hasil as hasil, indeksKinerjaIndividu.periode as periode, indeksKinerjaIndividu.noRec as noRec) " + " from IndeksKinerjaIndividu indeksKinerjaIndividu" + " left join indeksKinerjaIndividu.komponenIKI komponenIKI" + " left join indeksKinerjaIndividu.pegawai pegawai" + " where pegawai.id =:idPegawai and indeksKinerjaIndividu.periode =:periode" + " order by komponenIKI.id") public List> findKualitasAndInovasi(@Param("idPegawai") Integer idPegawai, @Param("periode") String periode); @Query(" select new map(nilaiIndexKinerjaIndividu.noRec as noRec,nilaiIndexKinerjaIndividu.periode as periode," + " nilaiIndexKinerjaIndividu.totalInovasi as totalInovasi, " + " nilaiIndexKinerjaIndividu.totalKualitas as totalKualitas," + " nilaiIndexKinerjaIndividu.totalKuantitas as totalKuantitas," + " nilaiIndexKinerjaIndividu.totalPerilaku as totalPerilaku," + " nilaiIndexKinerjaIndividu.totalIKI as totalIKI) " + " from NilaiIndexKinerjaIndividu nilaiIndexKinerjaIndividu" + " left join nilaiIndexKinerjaIndividu.pegawai pegawai" + " where nilaiIndexKinerjaIndividu.periode =:periode and pegawai.id =:idPegawai ") public Map findNilaiIndeksKinerja(@Param("idPegawai") Integer idPegawai, @Param("periode") String periode); @Query(" select new map(pegawai.nipPns as nip,shift.kodeExternal as kodeShift, shift.namaShift as namaShift," + " shift.jamMasuk as jamMasuk, shift.jamPulang as jamPulang, " + " tanggal.hariKeDlmBulan as hari, tanggal.namaBulan as bulan, tanggal.tahunKalender as tahun, tanggal.kdTanggal as tgl," + " tanggal.tanggal as tanggal, pegawai.idFinger as idFinger, jadwalpegawai.keteranganAlasan as ket)" + " from PegawaiJadwalKerja jadwalpegawai" + " left join jadwalpegawai.pegawai pegawai" + " left join jadwalpegawai.shift shift" + " left join jadwalpegawai.tanggal tanggal" + " where to_char(tanggal.tanggal,'yyyy-MM-dd')=:date and pegawai.idFinger = :idFinger") public Map findJadwalPegawaiPerTanggal(@Param("idFinger") String idFinger, @Param("date") String date); @Query(" select new map (absen.tr_no as tr_no," + "absen.tr_date as date," + "absen.tr_time as time," + "absen.empl_code as employee," + "absen.ip_addr as ip_addr," + "absen.clientIPAddress as client_ip_addr," + "absen.processtatus as processtatus)" + " from Habsen absen" + " where absen.empl_code = :idFinger" + " and to_char(absen.tr_date,'yyyy-MM-dd') = :date" + " and loc_code = '99999'" + " and remoteno = '99'" + " order by absen.tr_date, absen.tr_time asc") public List> findAbsensiAplikasiPegawai(@Param("idFinger") String idFinger, @Param("date") String date); @Query(" select new map (absen.tr_no as tr_no," + "absen.tr_date as date," + "absen.tr_time as time," + "absen.empl_code as employee," + "absen.ip_addr as ip_addr," + "absen.clientIPAddress as client_ip_addr," + "absen.processtatus as processtatus)" + " from Habsen absen" + " where absen.empl_code = :idFinger" + " and to_char(absen.tr_date,'yyyy-MM-dd') = :date" + " and loc_code <> '99999'" + " and remoteno <> '99'" + " order by absen.tr_date, absen.tr_time asc") public List> findAbsensiPegawai(@Param("idFinger") String idFinger, @Param("date") String date); @Query(" select count(produk.id) as jumlah " + " from PelayananPasienPetugas pelayananPasienPetugas" + " left join pelayananPasienPetugas.kdpegawai dokter" + " left join pelayananPasienPetugas.pelayananPasien pelayananPasien" + " left join pelayananPasien.produk produk" + " where dokter.id=:idPegawai and to_char(pelayananPasien.tglPelayanan,'yyyy-MM-dd') = :periode " + " and produk.id = :produkId and pelayananPasien.hargaSatuan =:harga") public Long findTotalTindakanPerTanggalAndProdukIdAndHarga(@Param("idPegawai") Integer idPegawai, @Param("produkId") Integer produkId, @Param("periode") String periode, @Param("harga") Double harga); @Query(" select komponen.persentase" + " from KomponenIKI komponen" + " where komponen.komponenIKI like 'Kehadiran'") public Double findBobotKehadiran(); @Query(" select pegawaiHistoriRekap.totalNilaiIndex " + "from PegawaiHistoriRekap pegawaiHistoriRekap " + "left join pegawaiHistoriRekap.pegawai pegawai " + "left join pegawaiHistoriRekap.strukHistory strukHistori " + "where pegawai.id = :idPegawai and strukHistori.tglAwal between :start and :end") public Double findIndexKehadiran(@Param("idPegawai") Integer idPegawai, @Param("start") Date start, @Param("end") Date end); @Query(" select new Map( produk.namaProduk as namaProduk, CAST(sum(pelayananPasien.jumlah) as long) as count,jenisProduk.id as idJenisProduk, to_char(pelayananPasien.tglPelayanan,'dd-MM-yyyy') as tglPelayanan)" + " from PelayananPasienPetugas pelayananPasienPetugas" + " left join pelayananPasienPetugas.kdpegawai dokter" + " left join pelayananPasienPetugas.pelayananPasien pelayananPasien" + " left join pelayananPasien.produk produk " + " left join produk.detailJenisProduk detail" + " left join detail.jenisProduk jenisProduk " + "where dokter.id=:id and pelayananPasien.tglPelayanan " + "between :start and :end and jenisProduk.id not in (:listIdJenisProduk) group by produk.namaProduk,jenisProduk.id,to_char(pelayananPasien.tglPelayanan,'dd-MM-yyyy') " + " order by to_char(pelayananPasien.tglPelayanan,'dd-MM-yyyy')") public List> findTindakanByIdPegawaiAndPeriod(@Param("start") Date start, @Param("end") Date end, @Param("id") Integer id, @Param("listIdJenisProduk") List listIdJenisProduk); @Query(" select new map (produk.namaProduk as namaProduk, produk.id as produkId," + " count(produk.namaProduk) as count,pelayananPasien.hargaSatuan as harga,detail.id as detailId,jenisProduk.id as idJenisProduk)" + " from PelayananPasienPetugas pelayananPasienPetugas" + " left join pelayananPasienPetugas.kdpegawai dokter" + " left join pelayananPasienPetugas.pelayananPasien pelayananPasien" + " left join pelayananPasien.produk produk " + " left join produk.detailJenisProduk detail" + " left join detail.jenisProduk jenisProduk" + " where dokter.id=:id and to_char(pelayananPasien.tglPelayanan,'yyyy-MM-dd') = :tanggal and jenisProduk.id not in (:listIdJenisProduk) and produk.id = :idProduk" + " group by produk.namaProduk,produk.id,pelayananPasien.hargaSatuan,detail.id,jenisProduk.id ") public List> findCertainProdukPerTanggal(@Param("id") Integer id, @Param("idProduk") Integer idProduk, @Param("tanggal") String tanggal, @Param("listIdJenisProduk") List listIdJenisProduk); @Query(" select tabel.indeks " + " from TabelAcuanIndeksIKI tabel " + " where :total between tabel.nilaiBawah and tabel.nilaiAtas") public Double findIndeksIKI(@Param("total") Double total); }