salmanoe 2d7667861a Update MonitoringAbsenService
Penyesuaian informasi presensi pegawai dengan VPN
2023-01-11 20:52:32 +07:00

434 lines
31 KiB
Java

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<IndekKinerja, String> {
@Query("select model from IndekKinerja model where year(model.tanggal)=:tahun and month(model.tanggal)=:bulan and model.pegawai.id=:pegawai ")
List<IndekKinerja> 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<Map<String, Object>> findByIdUser(@Param("id") Integer id, @Param("startDate") String startDate,
@Param("endDate") String endDate, @Param("listIdJenisProduk") List<Integer> 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<Map<String, Object>> findByIdUserWithException(@Param("id") Integer id,
@Param("startDate") String startDate, @Param("endDate") String endDate,
@Param("listIdJenisProduk") List<Integer> listIdJenisProduk,
@Param("listIdDetailJenisProduk") List<Integer> 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<Map<String, Object>> findIdProdukByIdUser(@Param("id") Integer id, @Param("start") Date start,
@Param("end") Date end, @Param("listIdJenisProduk") List<Integer> 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<Map<String, Object>> findIdProdukByIdUserWithDetailException(@Param("id") Integer id,
@Param("start") Date start, @Param("end") Date end,
@Param("listIdJenisProduk") List<Integer> listIdJenisProduk,
@Param("listIdDetailJenisProduk") List<Integer> 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<Integer> findIdProdukByIdUser2(@Param("id") Integer id, @Param("start") Date start,
@Param("end") Date end, @Param("listIdJenisProduk") List<Integer> 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<Integer> findIdProdukByIdUser2WithException(@Param("id") Integer id, @Param("start") Date start,
@Param("end") Date end, @Param("listIdJenisProduk") List<Integer> listIdJenisProduk,
@Param("listDetailJenisProduk") List<Integer> 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<Map<String, Object>> findTindakanByIdUser(@Param("id") Integer id, @Param("start") Date start,
@Param("end") Date end, @Param("listIdJenisProduk") List<Integer> 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<Map<String, Object>> findTindakanByIdUserAndPeriod(@Param("id") Integer id, @Param("start") Date start,
@Param("end") Date end, @Param("listIdJenisProduk") List<Integer> 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<Map<String, Object>> findTindakanByIdUserAndPeriodWithException(@Param("id") Integer id,
@Param("start") Date start, @Param("end") Date end,
@Param("listIdJenisProduk") List<Integer> listIdJenisProduk,
@Param("listIdDetailJenisProduk") List<Integer> 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<Map<String, Object>> 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<UraianTugasM> 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<Map<String, Object>> findCountTindakanByIdUserAndPeriod(@Param("id") Integer id,
@Param("start") Date start, @Param("end") Date end,
@Param("listIdJenisProduk") List<Integer> 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<Map<String, Object>> findCountTindakanByIdUserAndPeriodWithException(@Param("id") Integer id,
@Param("startDate") String startDate, @Param("endDate") String endDate,
@Param("listIdJenisProduk") List<Integer> listIdJenisProduk,
@Param("listIdDetailJenisProduk") List<Integer> 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<Map<String, Object>> findAllProdukPerPeriode(@Param("id") Integer id, @Param("start") Date start,
@Param("end") Date end, @Param("listIdJenisProduk") List<Integer> 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<Map<String, Object>> findAllProdukPerTanggal(@Param("id") Integer id, @Param("tanggal") String tanggal,
@Param("listIdJenisProduk") List<Integer> 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<Integer> 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<Integer> listIdJenisProduk,
@Param("listIdDetailJenisProduk") List<Integer> 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<Integer> 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<Integer> listIdJenisProduk,
@Param("listIdDetailJenisProduk") List<Integer> 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<Integer> 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<Integer> 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<Map<String, Object>> 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<String, Object> 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<Map<String, Object>> 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<String, Object> 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<String, Object> 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<Map<String, Object>> 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<Map<String, Object>> 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<Map<String, Object>> findTindakanByIdPegawaiAndPeriod(@Param("start") Date start,
@Param("end") Date end, @Param("id") Integer id,
@Param("listIdJenisProduk") List<Integer> 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<Map<String, Object>> findCertainProdukPerTanggal(@Param("id") Integer id,
@Param("idProduk") Integer idProduk, @Param("tanggal") String tanggal,
@Param("listIdJenisProduk") List<Integer> listIdJenisProduk);
@Query(" select tabel.indeks " + " from TabelAcuanIndeksIKI tabel "
+ " where :total between tabel.nilaiBawah and tabel.nilaiAtas")
public Double findIndeksIKI(@Param("total") Double total);
}