From 28bc9e7a198c3cab2f8684e679e86536baf91657 Mon Sep 17 00:00:00 2001 From: Salman Manoe Date: Wed, 31 Jan 2024 15:28:27 +0700 Subject: [PATCH] Update dao files Perbaikan struktur query unsecured non-string-builder --- .../dao/IndikatorKinerjaDao.java | 113 ++++--- .../medifirst2000/dao/JabatanDao.java | 150 ++++++--- .../dao/ProdukFarmakologiDao.java | 76 ++--- .../medifirst2000/dao/ProdukNakesDao.java | 119 +++++--- .../medifirst2000/dao/ProdukPerawatDao.java | 72 ++--- .../dao/SkoringTindakanFarmakologiDao.java | 92 ++++-- .../dao/SkoringTindakanMedisDao.java | 284 ++++++++++++++---- .../dao/SkoringTindakanNakesDao.java | 166 +++++++--- .../dao/SkoringTindakanPerawatDao.java | 141 ++++++--- 9 files changed, 849 insertions(+), 364 deletions(-) diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/IndikatorKinerjaDao.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/IndikatorKinerjaDao.java index 69da2f05..f96c610b 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/IndikatorKinerjaDao.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/IndikatorKinerjaDao.java @@ -1,81 +1,124 @@ package com.jasamedika.medifirst2000.dao; -import java.util.List; -import java.util.Map; - +import com.jasamedika.medifirst2000.entities.IndikatorKinerja; 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.IndikatorKinerja; +import java.util.List; +import java.util.Map; @Repository("indikatorKinerjaDao") public interface IndikatorKinerjaDao extends PagingAndSortingRepository { - String strAllIndikatorKinerja = "select new Map(ik.id as id," + "ik.jenisIndikator as jenisIndikatorId," + @Query("select new Map(ik.id as id," + "ik.jenisIndikator as jenisIndikatorId," + "(case when ik.jenisIndikator = 1 then 'Kuantitas' " + "when ik.jenisIndikator = 2 then 'Kualitas' " + "when ik.jenisIndikator = 3 then 'Perilaku' end) as jenisIndikator," + "ik.namaIndikator as namaIndikator," + "si.id as satuanIndikatorId," + "si.satuanIndikator as satuanIndikator," + "ik.statusVerifikasi as isStatusVerifikasi," + "(case when ik.statusVerifikasi is false then 'Belum Verifikasi' " + "when ik.statusVerifikasi is true then 'Terverifikasi' end) as statusVerifikasi) " - + "from IndikatorKinerja ik " + "inner join ik.satuanIndikator si " + "where ik.statusEnabled is true"; - - String jenisIndikator = " and ik.jenisIndikator = :jenisIndikatorId"; - - String namaIndikator = " and lower(ik.namaIndikator) like %:namaIndikator%"; - - String statusVerifikasi = " and ik.statusVerifikasi = :statusVerifikasi"; - - String sort = " order by ik.jenisIndikator,ik.namaIndikator"; - - @Query(strAllIndikatorKinerja + sort) + + "from IndikatorKinerja ik " + "inner join ik.satuanIndikator si " + "where ik.statusEnabled is true" + + " order by ik.jenisIndikator,ik.namaIndikator") List> findAllIndikatorKinerja(); - @Query(strAllIndikatorKinerja + jenisIndikator + sort) + @Query("select new Map(ik.id as id," + "ik.jenisIndikator as jenisIndikatorId," + + "(case when ik.jenisIndikator = 1 then 'Kuantitas' " + "when ik.jenisIndikator = 2 then 'Kualitas' " + + "when ik.jenisIndikator = 3 then 'Perilaku' end) as jenisIndikator," + + "ik.namaIndikator as namaIndikator," + "si.id as satuanIndikatorId," + + "si.satuanIndikator as satuanIndikator," + "ik.statusVerifikasi as isStatusVerifikasi," + + "(case when ik.statusVerifikasi is false then 'Belum Verifikasi' " + + "when ik.statusVerifikasi is true then 'Terverifikasi' end) as statusVerifikasi) " + + "from IndikatorKinerja ik " + "inner join ik.satuanIndikator si " + "where ik.statusEnabled is true" + + " and ik.jenisIndikator = :jenisIndikatorId" + " order by ik.jenisIndikator,ik.namaIndikator") List> findAllIndikatorKinerja(@Param("jenisIndikatorId") Integer idJenisIndikator); - @Query(strAllIndikatorKinerja + namaIndikator + sort) + @Query("select new Map(ik.id as id," + "ik.jenisIndikator as jenisIndikatorId," + + "(case when ik.jenisIndikator = 1 then 'Kuantitas' " + "when ik.jenisIndikator = 2 then 'Kualitas' " + + "when ik.jenisIndikator = 3 then 'Perilaku' end) as jenisIndikator," + + "ik.namaIndikator as namaIndikator," + "si.id as satuanIndikatorId," + + "si.satuanIndikator as satuanIndikator," + "ik.statusVerifikasi as isStatusVerifikasi," + + "(case when ik.statusVerifikasi is false then 'Belum Verifikasi' " + + "when ik.statusVerifikasi is true then 'Terverifikasi' end) as statusVerifikasi) " + + "from IndikatorKinerja ik " + "inner join ik.satuanIndikator si " + "where ik.statusEnabled is true" + + " and lower(ik.namaIndikator) like %:namaIndikator%" + " order by ik.jenisIndikator,ik.namaIndikator") List> findAllIndikatorKinerja(@Param("namaIndikator") String namaIndikator); - @Query(strAllIndikatorKinerja + statusVerifikasi + sort) + @Query("select new Map(ik.id as id," + "ik.jenisIndikator as jenisIndikatorId," + + "(case when ik.jenisIndikator = 1 then 'Kuantitas' " + "when ik.jenisIndikator = 2 then 'Kualitas' " + + "when ik.jenisIndikator = 3 then 'Perilaku' end) as jenisIndikator," + + "ik.namaIndikator as namaIndikator," + "si.id as satuanIndikatorId," + + "si.satuanIndikator as satuanIndikator," + "ik.statusVerifikasi as isStatusVerifikasi," + + "(case when ik.statusVerifikasi is false then 'Belum Verifikasi' " + + "when ik.statusVerifikasi is true then 'Terverifikasi' end) as statusVerifikasi) " + + "from IndikatorKinerja ik " + "inner join ik.satuanIndikator si " + "where ik.statusEnabled is true" + + " and ik.statusVerifikasi = :statusVerifikasi" + " order by ik.jenisIndikator,ik.namaIndikator") List> findAllIndikatorKinerja(@Param("statusVerifikasi") Boolean statusVerifikasi); - @Query(strAllIndikatorKinerja + jenisIndikator + namaIndikator + sort) + @Query("select new Map(ik.id as id," + "ik.jenisIndikator as jenisIndikatorId," + + "(case when ik.jenisIndikator = 1 then 'Kuantitas' " + "when ik.jenisIndikator = 2 then 'Kualitas' " + + "when ik.jenisIndikator = 3 then 'Perilaku' end) as jenisIndikator," + + "ik.namaIndikator as namaIndikator," + "si.id as satuanIndikatorId," + + "si.satuanIndikator as satuanIndikator," + "ik.statusVerifikasi as isStatusVerifikasi," + + "(case when ik.statusVerifikasi is false then 'Belum Verifikasi' " + + "when ik.statusVerifikasi is true then 'Terverifikasi' end) as statusVerifikasi) " + + "from IndikatorKinerja ik " + "inner join ik.satuanIndikator si " + "where ik.statusEnabled is true" + + " and ik.jenisIndikator = :jenisIndikatorId" + " and lower(ik.namaIndikator) like %:namaIndikator%" + + " order by ik.jenisIndikator,ik.namaIndikator") List> findAllIndikatorKinerja(@Param("jenisIndikatorId") Integer idJenisIndikator, @Param("namaIndikator") String namaIndikator); - @Query(strAllIndikatorKinerja + jenisIndikator + statusVerifikasi + sort) + @Query("select new Map(ik.id as id," + "ik.jenisIndikator as jenisIndikatorId," + + "(case when ik.jenisIndikator = 1 then 'Kuantitas' " + "when ik.jenisIndikator = 2 then 'Kualitas' " + + "when ik.jenisIndikator = 3 then 'Perilaku' end) as jenisIndikator," + + "ik.namaIndikator as namaIndikator," + "si.id as satuanIndikatorId," + + "si.satuanIndikator as satuanIndikator," + "ik.statusVerifikasi as isStatusVerifikasi," + + "(case when ik.statusVerifikasi is false then 'Belum Verifikasi' " + + "when ik.statusVerifikasi is true then 'Terverifikasi' end) as statusVerifikasi) " + + "from IndikatorKinerja ik " + "inner join ik.satuanIndikator si " + "where ik.statusEnabled is true" + + " and ik.jenisIndikator = :jenisIndikatorId" + " and ik.statusVerifikasi = :statusVerifikasi" + + " order by ik.jenisIndikator,ik.namaIndikator") List> findAllIndikatorKinerja(@Param("jenisIndikatorId") Integer idJenisIndikator, @Param("statusVerifikasi") Boolean statusVerifikasi); - @Query(strAllIndikatorKinerja + namaIndikator + statusVerifikasi + sort) + @Query("select new Map(ik.id as id," + "ik.jenisIndikator as jenisIndikatorId," + + "(case when ik.jenisIndikator = 1 then 'Kuantitas' " + "when ik.jenisIndikator = 2 then 'Kualitas' " + + "when ik.jenisIndikator = 3 then 'Perilaku' end) as jenisIndikator," + + "ik.namaIndikator as namaIndikator," + "si.id as satuanIndikatorId," + + "si.satuanIndikator as satuanIndikator," + "ik.statusVerifikasi as isStatusVerifikasi," + + "(case when ik.statusVerifikasi is false then 'Belum Verifikasi' " + + "when ik.statusVerifikasi is true then 'Terverifikasi' end) as statusVerifikasi) " + + "from IndikatorKinerja ik " + "inner join ik.satuanIndikator si " + "where ik.statusEnabled is true" + + " and lower(ik.namaIndikator) like %:namaIndikator%" + " and ik.statusVerifikasi = :statusVerifikasi" + + " order by ik.jenisIndikator,ik.namaIndikator") List> findAllIndikatorKinerja(@Param("namaIndikator") String namaIndikator, @Param("statusVerifikasi") Boolean statusVerifikasi); - @Query(strAllIndikatorKinerja + jenisIndikator + namaIndikator + statusVerifikasi + sort) + @Query("select new Map(ik.id as id," + "ik.jenisIndikator as jenisIndikatorId," + + "(case when ik.jenisIndikator = 1 then 'Kuantitas' " + "when ik.jenisIndikator = 2 then 'Kualitas' " + + "when ik.jenisIndikator = 3 then 'Perilaku' end) as jenisIndikator," + + "ik.namaIndikator as namaIndikator," + "si.id as satuanIndikatorId," + + "si.satuanIndikator as satuanIndikator," + "ik.statusVerifikasi as isStatusVerifikasi," + + "(case when ik.statusVerifikasi is false then 'Belum Verifikasi' " + + "when ik.statusVerifikasi is true then 'Terverifikasi' end) as statusVerifikasi) " + + "from IndikatorKinerja ik " + "inner join ik.satuanIndikator si " + "where ik.statusEnabled is true" + + " and ik.jenisIndikator = :jenisIndikatorId" + " and lower(ik.namaIndikator) like %:namaIndikator%" + + " and ik.statusVerifikasi = :statusVerifikasi" + " order by ik.jenisIndikator,ik.namaIndikator") List> findAllIndikatorKinerja(@Param("jenisIndikatorId") Integer idJenisIndikator, @Param("namaIndikator") String namaIndikator, @Param("statusVerifikasi") Boolean statusVerifikasi); - String strCekDupIndikator = "select ik.id " + "from IndikatorKinerja ik " + "where ik.statusEnabled is true " - + "and lower(regexp_replace(ik.namaIndikator,:patternText,'','g')) = :namaIndikator"; - - String idIndikatorLama = " and ik.id <> :indikatorId"; - - @Query(strCekDupIndikator) + @Query("select ik.id " + "from IndikatorKinerja ik " + "where ik.statusEnabled is true " + + "and lower(regexp_replace(ik.namaIndikator,:patternText,'','g')) = :namaIndikator") List findDupByName(@Param("patternText") String patternText, @Param("namaIndikator") String namaIndikator); - @Query(strCekDupIndikator + idIndikatorLama) + @Query("select ik.id " + "from IndikatorKinerja ik " + "where ik.statusEnabled is true " + + "and lower(regexp_replace(ik.namaIndikator,:patternText,'','g')) = :namaIndikator" + + " and ik.id <> :indikatorId") List findDupByName(@Param("patternText") String patternText, @Param("indikatorId") Integer idIndikator, @Param("namaIndikator") String namaIndikator); @Query("select new Map(ik.id as id,ik.namaIndikator as namaIndikator) " + "from IndikatorKinerja ik " + "where ik.statusEnabled is true " + "and ik.id in (:listIdIndikator)") List> findIndikator(@Param("listIdIndikator") List listIdIndikator); - - @Query("select ik from IndikatorKinerja ik " + "where ik.statusEnabled is true " - + "and ik.id in (:listIdIndikator)") - List findIndikatorById(@Param("listIdIndikator") List listIdIndikator); - } diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/JabatanDao.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/JabatanDao.java index f684e5c1..1b54a57d 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/JabatanDao.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/JabatanDao.java @@ -1,14 +1,13 @@ package com.jasamedika.medifirst2000.dao; -import java.util.List; -import java.util.Map; - +import com.jasamedika.medifirst2000.entities.Jabatan; 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.Jabatan; +import java.util.List; +import java.util.Map; /** * Repository class for Jabatan @@ -35,17 +34,14 @@ public interface JabatanDao extends PagingAndSortingRepository @Query("SELECT model from Jabatan model where model.jenisJabatanId = :jenisJabatanId ") List getJabatanStruktural(@Param("jenisJabatanId") Integer jenisJabatanId); - String strJabatanByJenis = "SELECT new Map(jb.id as idJabatan, jb.namaJabatan as namaJabatan) from Jabatan jb " - + "where jb.statusEnabled is true " + "and jb.jenisJabatanId = :jenisJabatanId"; - - String byUnitKerja = " and jb.unitKerjaId = :unitKerjaId"; - - String sortNamaJabatan = " order by jb.namaJabatan"; - - @Query(strJabatanByJenis + sortNamaJabatan) + @Query("SELECT new Map(jb.id as idJabatan, jb.namaJabatan as namaJabatan) from Jabatan jb " + + "where jb.statusEnabled is true " + "and jb.jenisJabatanId = :jenisJabatanId" + + " order by jb.namaJabatan") List> getJabatanByJenisJabatan(@Param("jenisJabatanId") Integer jenisJabatanId); - @Query(strJabatanByJenis + byUnitKerja + sortNamaJabatan) + @Query("SELECT new Map(jb.id as idJabatan, jb.namaJabatan as namaJabatan) from Jabatan jb " + + "where jb.statusEnabled is true " + "and jb.jenisJabatanId = :jenisJabatanId" + + " and jb.unitKerjaId = :unitKerjaId" + " order by jb.namaJabatan") List> findModelJabatanByJenisUnit(@Param("jenisJabatanId") Integer jenisJabatanId, @Param("unitKerjaId") Integer idUnitKerja); @@ -54,33 +50,37 @@ public interface JabatanDao extends PagingAndSortingRepository + "and lower(jab.namaJabatan) not like ('plh%')") List> getListJabatanFungsionalStruktural(); - String strDuplikatJabatan = "select new Map(jb.id as id, jb.namaJabatan as namaJabatan) " + @Query("select new Map(jb.id as id, jb.namaJabatan as namaJabatan) " + "from Jabatan jb where jb.statusEnabled is true " + "and lower(regexp_replace(jb.namaJabatan,'[^0-9a-zA-Z]+', '', 'g')) = :namaJabatan " - + "and jb.jenisJabatanId = :jenisJabatanId"; - - String unitKerjaId = " and jb.unitKerjaId = :unitKerjaId"; - - String notJabatanId = " and jb.id <> :jabatanId"; - - @Query(strDuplikatJabatan) + + "and jb.jenisJabatanId = :jenisJabatanId") List> checkNamaJabatan(@Param("namaJabatan") String namaJabatan, @Param("jenisJabatanId") Integer jenisJabatanId); - @Query(strDuplikatJabatan + notJabatanId) + @Query("select new Map(jb.id as id, jb.namaJabatan as namaJabatan) " + + "from Jabatan jb where jb.statusEnabled is true " + + "and lower(regexp_replace(jb.namaJabatan,'[^0-9a-zA-Z]+', '', 'g')) = :namaJabatan " + + "and jb.jenisJabatanId = :jenisJabatanId" + " and jb.id <> :jabatanId") List> checkNamaJabatan(@Param("jabatanId") Integer idJabatan, @Param("namaJabatan") String namaJabatan, @Param("jenisJabatanId") Integer idJenisJabatan); - @Query(strDuplikatJabatan + unitKerjaId) + @Query("select new Map(jb.id as id, jb.namaJabatan as namaJabatan) " + + "from Jabatan jb where jb.statusEnabled is true " + + "and lower(regexp_replace(jb.namaJabatan,'[^0-9a-zA-Z]+', '', 'g')) = :namaJabatan " + + "and jb.jenisJabatanId = :jenisJabatanId" + " and jb.unitKerjaId = :unitKerjaId") List> checkNamaJabatan(@Param("namaJabatan") String namaJabatan, @Param("jenisJabatanId") Integer idJenisJabatan, @Param("unitKerjaId") Integer idUnitKerja); - @Query(strDuplikatJabatan + notJabatanId + unitKerjaId) + @Query("select new Map(jb.id as id, jb.namaJabatan as namaJabatan) " + + "from Jabatan jb where jb.statusEnabled is true " + + "and lower(regexp_replace(jb.namaJabatan,'[^0-9a-zA-Z]+', '', 'g')) = :namaJabatan " + + "and jb.jenisJabatanId = :jenisJabatanId" + " and jb.id <> :jabatanId" + + " and jb.unitKerjaId = :unitKerjaId") List> checkNamaJabatan(@Param("jabatanId") Integer idJabatan, @Param("namaJabatan") String namaJabatan, @Param("jenisJabatanId") Integer idJenisJabatan, @Param("unitKerjaId") Integer idUnitKerja); - String strJabatan = "select new Map(jb.id as id,jb.namaJabatan as namaJabatan," + @Query("select new Map(jb.id as id,jb.namaJabatan as namaJabatan," + "jb.levelJabatan as levelJabatan,jb.subLevelJabatan as levelDireksi," + "jj.id as jenisJabatanId,jj.jenisJabatan as jenisJabatan," + "uk.id as unitKerjaId,uk.name as unitKerja," + "el.id as eselonId,el.eselon as eselon," @@ -89,41 +89,105 @@ public interface JabatanDao extends PagingAndSortingRepository + "left join jb.unitKerja uk with (uk.id <> 0 and uk.statusEnabled is true) " + "left join jb.eselon el with (el.id <> 0 and el.statusEnabled is true) " + "left join jb.kelompokJabatan kj with (kj.id between 1 and 10 and kj.statusEnabled is true) " - + "where jb.statusEnabled is true " + "and jj.statusEnabled is true "; - - String namaJabatan = " and lower(jb.namaJabatan) like %:namaJabatan%"; - - String jenisJabatan = " and jj.id = :jenisJabatanId"; - - String unitKerja = " and uk.id = :unitKerjaId"; - - String sortMasterJabatan = " order by jb.namaJabatan, uk.name, jj.jenisJabatan"; - - @Query(strJabatan + sortMasterJabatan) + + "where jb.statusEnabled is true " + "and jj.statusEnabled is true " + + " order by jb.namaJabatan, uk.name, jj.jenisJabatan") List> findJabatan(); - @Query(strJabatan + namaJabatan + sortMasterJabatan) + @Query("select new Map(jb.id as id,jb.namaJabatan as namaJabatan," + + "jb.levelJabatan as levelJabatan,jb.subLevelJabatan as levelDireksi," + + "jj.id as jenisJabatanId,jj.jenisJabatan as jenisJabatan," + "uk.id as unitKerjaId,uk.name as unitKerja," + + "el.id as eselonId,el.eselon as eselon," + + "kj.id as kelompokJabatanId,kj.namaKelompokJabatan as kelompokJabatan) " + "from Jabatan jb " + + "inner join jb.jenisJabatan jj " + + "left join jb.unitKerja uk with (uk.id <> 0 and uk.statusEnabled is true) " + + "left join jb.eselon el with (el.id <> 0 and el.statusEnabled is true) " + + "left join jb.kelompokJabatan kj with (kj.id between 1 and 10 and kj.statusEnabled is true) " + + "where jb.statusEnabled is true " + "and jj.statusEnabled is true " + + " and lower(jb.namaJabatan) like %:namaJabatan%" + " order by jb.namaJabatan, uk.name, jj.jenisJabatan") List> findJabatanByNama(@Param("namaJabatan") String namaJabatan); - @Query(strJabatan + jenisJabatan + sortMasterJabatan) + @Query("select new Map(jb.id as id,jb.namaJabatan as namaJabatan," + + "jb.levelJabatan as levelJabatan,jb.subLevelJabatan as levelDireksi," + + "jj.id as jenisJabatanId,jj.jenisJabatan as jenisJabatan," + "uk.id as unitKerjaId,uk.name as unitKerja," + + "el.id as eselonId,el.eselon as eselon," + + "kj.id as kelompokJabatanId,kj.namaKelompokJabatan as kelompokJabatan) " + "from Jabatan jb " + + "inner join jb.jenisJabatan jj " + + "left join jb.unitKerja uk with (uk.id <> 0 and uk.statusEnabled is true) " + + "left join jb.eselon el with (el.id <> 0 and el.statusEnabled is true) " + + "left join jb.kelompokJabatan kj with (kj.id between 1 and 10 and kj.statusEnabled is true) " + + "where jb.statusEnabled is true " + "and jj.statusEnabled is true " + " and jj.id = :jenisJabatanId" + + " order by jb.namaJabatan, uk.name, jj.jenisJabatan") List> findJabatanByJenis(@Param("jenisJabatanId") Integer idJenisJabatan); - @Query(strJabatan + unitKerja + sortMasterJabatan) + @Query("select new Map(jb.id as id,jb.namaJabatan as namaJabatan," + + "jb.levelJabatan as levelJabatan,jb.subLevelJabatan as levelDireksi," + + "jj.id as jenisJabatanId,jj.jenisJabatan as jenisJabatan," + "uk.id as unitKerjaId,uk.name as unitKerja," + + "el.id as eselonId,el.eselon as eselon," + + "kj.id as kelompokJabatanId,kj.namaKelompokJabatan as kelompokJabatan) " + "from Jabatan jb " + + "inner join jb.jenisJabatan jj " + + "left join jb.unitKerja uk with (uk.id <> 0 and uk.statusEnabled is true) " + + "left join jb.eselon el with (el.id <> 0 and el.statusEnabled is true) " + + "left join jb.kelompokJabatan kj with (kj.id between 1 and 10 and kj.statusEnabled is true) " + + "where jb.statusEnabled is true " + "and jj.statusEnabled is true " + " and uk.id = :unitKerjaId" + + " order by jb.namaJabatan, uk.name, jj.jenisJabatan") List> findJabatanByUnit(@Param("unitKerjaId") Integer idUnitKerja); - @Query(strJabatan + namaJabatan + jenisJabatan + sortMasterJabatan) + @Query("select new Map(jb.id as id,jb.namaJabatan as namaJabatan," + + "jb.levelJabatan as levelJabatan,jb.subLevelJabatan as levelDireksi," + + "jj.id as jenisJabatanId,jj.jenisJabatan as jenisJabatan," + "uk.id as unitKerjaId,uk.name as unitKerja," + + "el.id as eselonId,el.eselon as eselon," + + "kj.id as kelompokJabatanId,kj.namaKelompokJabatan as kelompokJabatan) " + "from Jabatan jb " + + "inner join jb.jenisJabatan jj " + + "left join jb.unitKerja uk with (uk.id <> 0 and uk.statusEnabled is true) " + + "left join jb.eselon el with (el.id <> 0 and el.statusEnabled is true) " + + "left join jb.kelompokJabatan kj with (kj.id between 1 and 10 and kj.statusEnabled is true) " + + "where jb.statusEnabled is true " + "and jj.statusEnabled is true " + + " and lower(jb.namaJabatan) like %:namaJabatan%" + " and jj.id = :jenisJabatanId" + + " order by jb.namaJabatan, uk.name, jj.jenisJabatan") List> findJabatanByNamaJenis(@Param("namaJabatan") String namaJabatan, @Param("jenisJabatanId") Integer idJenisJabatan); - @Query(strJabatan + namaJabatan + unitKerja + sortMasterJabatan) + @Query("select new Map(jb.id as id,jb.namaJabatan as namaJabatan," + + "jb.levelJabatan as levelJabatan,jb.subLevelJabatan as levelDireksi," + + "jj.id as jenisJabatanId,jj.jenisJabatan as jenisJabatan," + "uk.id as unitKerjaId,uk.name as unitKerja," + + "el.id as eselonId,el.eselon as eselon," + + "kj.id as kelompokJabatanId,kj.namaKelompokJabatan as kelompokJabatan) " + "from Jabatan jb " + + "inner join jb.jenisJabatan jj " + + "left join jb.unitKerja uk with (uk.id <> 0 and uk.statusEnabled is true) " + + "left join jb.eselon el with (el.id <> 0 and el.statusEnabled is true) " + + "left join jb.kelompokJabatan kj with (kj.id between 1 and 10 and kj.statusEnabled is true) " + + "where jb.statusEnabled is true " + "and jj.statusEnabled is true " + + " and lower(jb.namaJabatan) like %:namaJabatan%" + " and uk.id = :unitKerjaId" + + " order by jb.namaJabatan, uk.name, jj.jenisJabatan") List> findJabatanByNamaUnit(@Param("namaJabatan") String namaJabatan, @Param("unitKerjaId") Integer idUnitKerja); - @Query(strJabatan + jenisJabatan + unitKerja + sortMasterJabatan) + @Query("select new Map(jb.id as id,jb.namaJabatan as namaJabatan," + + "jb.levelJabatan as levelJabatan,jb.subLevelJabatan as levelDireksi," + + "jj.id as jenisJabatanId,jj.jenisJabatan as jenisJabatan," + "uk.id as unitKerjaId,uk.name as unitKerja," + + "el.id as eselonId,el.eselon as eselon," + + "kj.id as kelompokJabatanId,kj.namaKelompokJabatan as kelompokJabatan) " + "from Jabatan jb " + + "inner join jb.jenisJabatan jj " + + "left join jb.unitKerja uk with (uk.id <> 0 and uk.statusEnabled is true) " + + "left join jb.eselon el with (el.id <> 0 and el.statusEnabled is true) " + + "left join jb.kelompokJabatan kj with (kj.id between 1 and 10 and kj.statusEnabled is true) " + + "where jb.statusEnabled is true " + "and jj.statusEnabled is true " + " and jj.id = :jenisJabatanId" + + " and uk.id = :unitKerjaId" + " order by jb.namaJabatan, uk.name, jj.jenisJabatan") List> findJabatanByJenisUnit(@Param("jenisJabatanId") Integer idJenisJabatan, @Param("unitKerjaId") Integer idUnitKerja); - @Query(strJabatan + namaJabatan + jenisJabatan + unitKerja + sortMasterJabatan) + @Query("select new Map(jb.id as id,jb.namaJabatan as namaJabatan," + + "jb.levelJabatan as levelJabatan,jb.subLevelJabatan as levelDireksi," + + "jj.id as jenisJabatanId,jj.jenisJabatan as jenisJabatan," + "uk.id as unitKerjaId,uk.name as unitKerja," + + "el.id as eselonId,el.eselon as eselon," + + "kj.id as kelompokJabatanId,kj.namaKelompokJabatan as kelompokJabatan) " + "from Jabatan jb " + + "inner join jb.jenisJabatan jj " + + "left join jb.unitKerja uk with (uk.id <> 0 and uk.statusEnabled is true) " + + "left join jb.eselon el with (el.id <> 0 and el.statusEnabled is true) " + + "left join jb.kelompokJabatan kj with (kj.id between 1 and 10 and kj.statusEnabled is true) " + + "where jb.statusEnabled is true " + "and jj.statusEnabled is true " + + " and lower(jb.namaJabatan) like %:namaJabatan%" + " and jj.id = :jenisJabatanId" + + " and uk.id = :unitKerjaId" + " order by jb.namaJabatan, uk.name, jj.jenisJabatan") List> findJabatanByNamaJenisUnit(@Param("namaJabatan") String namaJabatan, @Param("jenisJabatanId") Integer idJenisJabatan, @Param("unitKerjaId") Integer idUnitKerja); diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/ProdukFarmakologiDao.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/ProdukFarmakologiDao.java index e61eb009..67cfbedd 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/ProdukFarmakologiDao.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/ProdukFarmakologiDao.java @@ -1,59 +1,65 @@ package com.jasamedika.medifirst2000.dao; -import java.util.List; -import java.util.Map; - +import com.jasamedika.medifirst2000.entities.ProdukFarmakologi; 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.ProdukFarmakologi; +import java.util.List; +import java.util.Map; @Repository("produkFarmakologiDao") public interface ProdukFarmakologiDao extends PagingAndSortingRepository { - String allProduk = "select new Map(prf.id as produkId,prf.namaProduk as namaProduk," + @Query("select new Map(prf.id as produkId,prf.namaProduk as namaProduk," + "prf.kdProduk as kdProduk,(case when prf.kdProduk = 1 then 'Pelayanan Pasien (Tarif)' " + "when prf.kdProduk = 2 then 'Pelayanan Pasien (Nontarif)' " + "when prf.kdProduk = 3 then 'Pelayanan Nonpasien' end) as kodeProduk) " + "from ProdukFarmakologi prf " - + "where prf.statusEnabled is true"; + + "where prf.statusEnabled is true" + " order by prf.namaProduk, prf.kdProduk asc") + List> findProdukFarmakologi(); - String namaProduk = " and lower(prf.namaProduk) like %:namaProduk%"; + @Query("select new Map(prf.id as produkId,prf.namaProduk as namaProduk," + + "prf.kdProduk as kdProduk,(case when prf.kdProduk = 1 then 'Pelayanan Pasien (Tarif)' " + + "when prf.kdProduk = 2 then 'Pelayanan Pasien (Nontarif)' " + + "when prf.kdProduk = 3 then 'Pelayanan Nonpasien' end) as kodeProduk) " + "from ProdukFarmakologi prf " + + "where prf.statusEnabled is true" + " and lower(prf.namaProduk) like %:namaProduk%" + + " order by prf.namaProduk, prf.kdProduk asc") + List> findProdukFarmakologiByProduk(@Param("namaProduk") String namaProduk); - String kdProduk = " and prf.kdProduk = :kdProduk"; + @Query("select new Map(prf.id as produkId,prf.namaProduk as namaProduk," + + "prf.kdProduk as kdProduk,(case when prf.kdProduk = 1 then 'Pelayanan Pasien (Tarif)' " + + "when prf.kdProduk = 2 then 'Pelayanan Pasien (Nontarif)' " + + "when prf.kdProduk = 3 then 'Pelayanan Nonpasien' end) as kodeProduk) " + "from ProdukFarmakologi prf " + + "where prf.statusEnabled is true" + " and prf.kdProduk = :kdProduk" + + " order by prf.namaProduk, prf.kdProduk asc") + List> findProdukFarmakologiByKdProduk(@Param("kdProduk") Short kdProduk); - String sortAllProduk = " order by prf.namaProduk, prf.kdProduk asc"; - - String listIdProduk = " and prf.id in (:listProdukId)"; - - @Query(allProduk + sortAllProduk) - public List> findProdukFarmakologi(); - - @Query(allProduk + namaProduk + sortAllProduk) - public List> findProdukFarmakologiByProduk(@Param("namaProduk") String namaProduk); - - @Query(allProduk + kdProduk + sortAllProduk) - public List> findProdukFarmakologiByKdProduk(@Param("kdProduk") Short kdProduk); - - @Query(allProduk + namaProduk + kdProduk + sortAllProduk) - public List> findProdukFarmakologiByProduk(@Param("namaProduk") String namaProduk, + @Query("select new Map(prf.id as produkId,prf.namaProduk as namaProduk," + + "prf.kdProduk as kdProduk,(case when prf.kdProduk = 1 then 'Pelayanan Pasien (Tarif)' " + + "when prf.kdProduk = 2 then 'Pelayanan Pasien (Nontarif)' " + + "when prf.kdProduk = 3 then 'Pelayanan Nonpasien' end) as kodeProduk) " + "from ProdukFarmakologi prf " + + "where prf.statusEnabled is true" + " and lower(prf.namaProduk) like %:namaProduk%" + + " and prf.kdProduk = :kdProduk" + " order by prf.namaProduk, prf.kdProduk asc") + List> findProdukFarmakologiByProduk(@Param("namaProduk") String namaProduk, @Param("kdProduk") Short kdProduk); - @Query(allProduk + listIdProduk + sortAllProduk) - public List> findProdukFarmakologi(@Param("listProdukId") List listIdProduk); + @Query("select new Map(prf.id as produkId,prf.namaProduk as namaProduk," + + "prf.kdProduk as kdProduk,(case when prf.kdProduk = 1 then 'Pelayanan Pasien (Tarif)' " + + "when prf.kdProduk = 2 then 'Pelayanan Pasien (Nontarif)' " + + "when prf.kdProduk = 3 then 'Pelayanan Nonpasien' end) as kodeProduk) " + "from ProdukFarmakologi prf " + + "where prf.statusEnabled is true" + " and prf.id in (:listProdukId)" + + " order by prf.namaProduk, prf.kdProduk asc") + List> findProdukFarmakologi(@Param("listProdukId") List listIdProduk); - String dupCheck = "select prf.id from ProdukFarmakologi prf " + "where prf.statusEnabled is true " - + "and lower(regexp_replace(prf.namaProduk,:patternText,'','g')) = :namaProduk"; + @Query("select prf.id from ProdukFarmakologi prf " + "where prf.statusEnabled is true " + + "and lower(regexp_replace(prf.namaProduk,:patternText,'','g')) = :namaProduk") + List findDupProduk(@Param("patternText") String patternText, @Param("namaProduk") String namaProduk); - String notIdProduk = " and prf.id <> :produkId"; - - @Query(dupCheck) - public List findDupProduk(@Param("patternText") String patternText, - @Param("namaProduk") String namaProduk); - - @Query(dupCheck + notIdProduk) - public List findDupProduk(@Param("patternText") String patternText, @Param("namaProduk") String namaProduk, + @Query("select prf.id from ProdukFarmakologi prf " + "where prf.statusEnabled is true " + + "and lower(regexp_replace(prf.namaProduk,:patternText,'','g')) = :namaProduk" + + " and prf.id <> :produkId") + List findDupProduk(@Param("patternText") String patternText, @Param("namaProduk") String namaProduk, @Param("produkId") Integer idProduk); } diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/ProdukNakesDao.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/ProdukNakesDao.java index 67b2d5be..fd2a768b 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/ProdukNakesDao.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/ProdukNakesDao.java @@ -1,14 +1,13 @@ package com.jasamedika.medifirst2000.dao; -import java.util.List; -import java.util.Map; - +import com.jasamedika.medifirst2000.entities.ProdukNakes; 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.ProdukNakes; +import java.util.List; +import java.util.Map; /** * @author salmanoe @@ -17,65 +16,97 @@ import com.jasamedika.medifirst2000.entities.ProdukNakes; @Repository("produkNakesDao") public interface ProdukNakesDao extends PagingAndSortingRepository { - String allProduk = "select new Map(prn.id as produkId,prn.namaProduk as namaProduk," + "prn.kdProduk as kdProduk," + @Query("select new Map(prn.id as produkId,prn.namaProduk as namaProduk," + "prn.kdProduk as kdProduk," + "(case when prn.kdProduk = 1 then 'Pelayanan Pasien' " + "when prn.kdProduk = 2 then 'Pelayanan Nonpasien' end) as kodeProduk," + "prn.profesiId as profesiId,prf.namaProfesi as namaProfesi) " + "from ProdukNakes prn " - + "left join prn.profesi prf " + "with (prf.statusEnabled is true) " + "where prn.statusEnabled is true"; + + "left join prn.profesi prf " + "with (prf.statusEnabled is true) " + "where prn.statusEnabled is true" + + " order by prf.namaProfesi, prn.namaProduk, prn.kdProduk asc") + List> findProdukNakes(); - String namaProduk = " and lower(prn.namaProduk) like %:namaProduk%"; + @Query("select new Map(prn.id as produkId,prn.namaProduk as namaProduk," + "prn.kdProduk as kdProduk," + + "(case when prn.kdProduk = 1 then 'Pelayanan Pasien' " + + "when prn.kdProduk = 2 then 'Pelayanan Nonpasien' end) as kodeProduk," + + "prn.profesiId as profesiId,prf.namaProfesi as namaProfesi) " + "from ProdukNakes prn " + + "left join prn.profesi prf " + "with (prf.statusEnabled is true) " + "where prn.statusEnabled is true" + + " and lower(prn.namaProduk) like %:namaProduk%" + + " order by prf.namaProfesi, prn.namaProduk, prn.kdProduk asc") + List> findProdukNakesByProduk(@Param("namaProduk") String namaProduk); - String kdProduk = " and prn.kdProduk = :kdProduk"; + @Query("select new Map(prn.id as produkId,prn.namaProduk as namaProduk," + "prn.kdProduk as kdProduk," + + "(case when prn.kdProduk = 1 then 'Pelayanan Pasien' " + + "when prn.kdProduk = 2 then 'Pelayanan Nonpasien' end) as kodeProduk," + + "prn.profesiId as profesiId,prf.namaProfesi as namaProfesi) " + "from ProdukNakes prn " + + "left join prn.profesi prf " + "with (prf.statusEnabled is true) " + "where prn.statusEnabled is true" + + " and prn.kdProduk = :kdProduk" + " order by prf.namaProfesi, prn.namaProduk, prn.kdProduk asc") + List> findProdukNakesByKdProduk(@Param("kdProduk") Short kdProduk); - String idProfesi = " and prn.profesiId = :profesiId"; + @Query("select new Map(prn.id as produkId,prn.namaProduk as namaProduk," + "prn.kdProduk as kdProduk," + + "(case when prn.kdProduk = 1 then 'Pelayanan Pasien' " + + "when prn.kdProduk = 2 then 'Pelayanan Nonpasien' end) as kodeProduk," + + "prn.profesiId as profesiId,prf.namaProfesi as namaProfesi) " + "from ProdukNakes prn " + + "left join prn.profesi prf " + "with (prf.statusEnabled is true) " + "where prn.statusEnabled is true" + + " and prn.profesiId = :profesiId" + " order by prf.namaProfesi, prn.namaProduk, prn.kdProduk asc") + List> findProdukNakesByProfesi(@Param("profesiId") Integer idProfesi); - String sortAllProduk = " order by prf.namaProfesi, prn.namaProduk, prn.kdProduk asc"; - - String listIdProduk = " and prn.id in (:listProdukId)"; - - @Query(allProduk + sortAllProduk) - public List> findProdukNakes(); - - @Query(allProduk + namaProduk + sortAllProduk) - public List> findProdukNakesByProduk(@Param("namaProduk") String namaProduk); - - @Query(allProduk + kdProduk + sortAllProduk) - public List> findProdukNakesByKdProduk(@Param("kdProduk") Short kdProduk); - - @Query(allProduk + idProfesi + sortAllProduk) - public List> findProdukNakesByProfesi(@Param("profesiId") Integer idProfesi); - - @Query(allProduk + idProfesi + namaProduk + sortAllProduk) - public List> findProdukNakesByProfesi(@Param("profesiId") Integer idProfesi, + @Query("select new Map(prn.id as produkId,prn.namaProduk as namaProduk," + "prn.kdProduk as kdProduk," + + "(case when prn.kdProduk = 1 then 'Pelayanan Pasien' " + + "when prn.kdProduk = 2 then 'Pelayanan Nonpasien' end) as kodeProduk," + + "prn.profesiId as profesiId,prf.namaProfesi as namaProfesi) " + "from ProdukNakes prn " + + "left join prn.profesi prf " + "with (prf.statusEnabled is true) " + "where prn.statusEnabled is true" + + " and prn.profesiId = :profesiId" + " and lower(prn.namaProduk) like %:namaProduk%" + + " order by prf.namaProfesi, prn.namaProduk, prn.kdProduk asc") + List> findProdukNakesByProfesi(@Param("profesiId") Integer idProfesi, @Param("namaProduk") String namaProduk); - @Query(allProduk + idProfesi + kdProduk + sortAllProduk) - public List> findProdukNakesByProfesi(@Param("profesiId") Integer idProfesi, + @Query("select new Map(prn.id as produkId,prn.namaProduk as namaProduk," + "prn.kdProduk as kdProduk," + + "(case when prn.kdProduk = 1 then 'Pelayanan Pasien' " + + "when prn.kdProduk = 2 then 'Pelayanan Nonpasien' end) as kodeProduk," + + "prn.profesiId as profesiId,prf.namaProfesi as namaProfesi) " + "from ProdukNakes prn " + + "left join prn.profesi prf " + "with (prf.statusEnabled is true) " + "where prn.statusEnabled is true" + + " and prn.profesiId = :profesiId" + " and prn.kdProduk = :kdProduk" + + " order by prf.namaProfesi, prn.namaProduk, prn.kdProduk asc") + List> findProdukNakesByProfesi(@Param("profesiId") Integer idProfesi, @Param("kdProduk") Short kdProduk); - @Query(allProduk + namaProduk + kdProduk + sortAllProduk) - public List> findProdukNakesByProduk(@Param("namaProduk") String namaProduk, + @Query("select new Map(prn.id as produkId,prn.namaProduk as namaProduk," + "prn.kdProduk as kdProduk," + + "(case when prn.kdProduk = 1 then 'Pelayanan Pasien' " + + "when prn.kdProduk = 2 then 'Pelayanan Nonpasien' end) as kodeProduk," + + "prn.profesiId as profesiId,prf.namaProfesi as namaProfesi) " + "from ProdukNakes prn " + + "left join prn.profesi prf " + "with (prf.statusEnabled is true) " + "where prn.statusEnabled is true" + + " and lower(prn.namaProduk) like %:namaProduk%" + " and prn.kdProduk = :kdProduk" + + " order by prf.namaProfesi, prn.namaProduk, prn.kdProduk asc") + List> findProdukNakesByProduk(@Param("namaProduk") String namaProduk, @Param("kdProduk") Short kdProduk); - @Query(allProduk + namaProduk + idProfesi + kdProduk + sortAllProduk) - public List> findProdukNakesByProfesi(@Param("namaProduk") String namaProduk, + @Query("select new Map(prn.id as produkId,prn.namaProduk as namaProduk," + "prn.kdProduk as kdProduk," + + "(case when prn.kdProduk = 1 then 'Pelayanan Pasien' " + + "when prn.kdProduk = 2 then 'Pelayanan Nonpasien' end) as kodeProduk," + + "prn.profesiId as profesiId,prf.namaProfesi as namaProfesi) " + "from ProdukNakes prn " + + "left join prn.profesi prf " + "with (prf.statusEnabled is true) " + "where prn.statusEnabled is true" + + " and lower(prn.namaProduk) like %:namaProduk%" + " and prn.profesiId = :profesiId" + + " and prn.kdProduk = :kdProduk" + " order by prf.namaProfesi, prn.namaProduk, prn.kdProduk asc") + List> findProdukNakesByProfesi(@Param("namaProduk") String namaProduk, @Param("profesiId") Integer idProfesi, @Param("kdProduk") Short kdProduk); - @Query(allProduk + listIdProduk + sortAllProduk) - public List> findProdukNakes(@Param("listProdukId") List listIdProduk); + @Query("select new Map(prn.id as produkId,prn.namaProduk as namaProduk," + "prn.kdProduk as kdProduk," + + "(case when prn.kdProduk = 1 then 'Pelayanan Pasien' " + + "when prn.kdProduk = 2 then 'Pelayanan Nonpasien' end) as kodeProduk," + + "prn.profesiId as profesiId,prf.namaProfesi as namaProfesi) " + "from ProdukNakes prn " + + "left join prn.profesi prf " + "with (prf.statusEnabled is true) " + "where prn.statusEnabled is true" + + " and prn.id in (:listProdukId)" + " order by prf.namaProfesi, prn.namaProduk, prn.kdProduk asc") + List> findProdukNakes(@Param("listProdukId") List listIdProduk); - String dupCheck = "select prn.id from ProdukNakes prn " + "where prn.statusEnabled is true " + @Query("select prn.id from ProdukNakes prn " + "where prn.statusEnabled is true " + "and lower(regexp_replace(prn.namaProduk,:patternText,'','g')) = :namaProduk " - + "and prn.profesiId = :profesiId"; - - String notIdProduk = " and prn.id <> :produkId"; - - @Query(dupCheck) - public List findDupProduk(@Param("patternText") String patternText, @Param("namaProduk") String namaProduk, + + "and prn.profesiId = :profesiId") + List findDupProduk(@Param("patternText") String patternText, @Param("namaProduk") String namaProduk, @Param("profesiId") Integer idProfesi); - @Query(dupCheck + notIdProduk) - public List findDupProduk(@Param("patternText") String patternText, @Param("namaProduk") String namaProduk, + @Query("select prn.id from ProdukNakes prn " + "where prn.statusEnabled is true " + + "and lower(regexp_replace(prn.namaProduk,:patternText,'','g')) = :namaProduk " + + "and prn.profesiId = :profesiId" + " and prn.id <> :produkId") + List findDupProduk(@Param("patternText") String patternText, @Param("namaProduk") String namaProduk, @Param("profesiId") Integer idProfesi, @Param("produkId") Integer idProduk); } diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/ProdukPerawatDao.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/ProdukPerawatDao.java index 5d015361..47322ab8 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/ProdukPerawatDao.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/ProdukPerawatDao.java @@ -1,14 +1,13 @@ package com.jasamedika.medifirst2000.dao; -import java.util.List; -import java.util.Map; - +import com.jasamedika.medifirst2000.entities.ProdukPerawat; 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.ProdukPerawat; +import java.util.List; +import java.util.Map; /** * @author salmanoe @@ -17,47 +16,50 @@ import com.jasamedika.medifirst2000.entities.ProdukPerawat; @Repository("produkPerawat") public interface ProdukPerawatDao extends PagingAndSortingRepository { - String allProduk = "select new Map(prp.id as id,prp.namaProduk as namaProduk," + "prp.klasifikasi as kdKlasif," + @Query("select new Map(prp.id as id,prp.namaProduk as namaProduk," + "prp.klasifikasi as kdKlasif," + "(case when prp.klasifikasi = 1 then 'Asuhan' " + "when prp.klasifikasi = 2 then 'Tindakan' " + "when prp.klasifikasi = 3 then 'Laporan' end) as klasifikasi) " + "from ProdukPerawat prp " - + "where prp.statusEnabled is true"; + + "where prp.statusEnabled is true" + " order by prp.klasifikasi, prp.namaProduk asc") + List> findAllActive(); - String namaProduk = " and lower(prp.namaProduk) like %:namaProduk%"; + @Query("select new Map(prp.id as id,prp.namaProduk as namaProduk," + "prp.klasifikasi as kdKlasif," + + "(case when prp.klasifikasi = 1 then 'Asuhan' " + "when prp.klasifikasi = 2 then 'Tindakan' " + + "when prp.klasifikasi = 3 then 'Laporan' end) as klasifikasi) " + "from ProdukPerawat prp " + + "where prp.statusEnabled is true" + " and lower(prp.namaProduk) like %:namaProduk%" + + " order by prp.klasifikasi, prp.namaProduk asc") + List> findAllActive(@Param("namaProduk") String namaProduk); - String kdKlasif = " and prp.klasifikasi = :kdKlasif"; + @Query("select new Map(prp.id as id,prp.namaProduk as namaProduk," + "prp.klasifikasi as kdKlasif," + + "(case when prp.klasifikasi = 1 then 'Asuhan' " + "when prp.klasifikasi = 2 then 'Tindakan' " + + "when prp.klasifikasi = 3 then 'Laporan' end) as klasifikasi) " + "from ProdukPerawat prp " + + "where prp.statusEnabled is true" + " and prp.klasifikasi = :kdKlasif" + + " order by prp.klasifikasi, prp.namaProduk asc") + List> findAllActive(@Param("kdKlasif") Short kdKlasif); - String listIdProduk = " and prp.id in (:listProdukId)"; + @Query("select new Map(prp.id as id,prp.namaProduk as namaProduk," + "prp.klasifikasi as kdKlasif," + + "(case when prp.klasifikasi = 1 then 'Asuhan' " + "when prp.klasifikasi = 2 then 'Tindakan' " + + "when prp.klasifikasi = 3 then 'Laporan' end) as klasifikasi) " + "from ProdukPerawat prp " + + "where prp.statusEnabled is true" + " and lower(prp.namaProduk) like %:namaProduk%" + + " and prp.klasifikasi = :kdKlasif" + " order by prp.klasifikasi, prp.namaProduk asc") + List> findAllActive(@Param("namaProduk") String namaProduk, @Param("kdKlasif") Short kdKlasif); - String sortAllProduk = " order by prp.klasifikasi, prp.namaProduk asc"; + @Query("select new Map(prp.id as id,prp.namaProduk as namaProduk," + "prp.klasifikasi as kdKlasif," + + "(case when prp.klasifikasi = 1 then 'Asuhan' " + "when prp.klasifikasi = 2 then 'Tindakan' " + + "when prp.klasifikasi = 3 then 'Laporan' end) as klasifikasi) " + "from ProdukPerawat prp " + + "where prp.statusEnabled is true" + " and prp.id in (:listProdukId)" + + " order by prp.klasifikasi, prp.namaProduk asc") + List> findProdukPerawat(@Param("listProdukId") List listIdProduk); - @Query(allProduk + sortAllProduk) - public List> findAllActive(); - - @Query(allProduk + namaProduk + sortAllProduk) - public List> findAllActive(@Param("namaProduk") String namaProduk); - - @Query(allProduk + kdKlasif + sortAllProduk) - public List> findAllActive(@Param("kdKlasif") Short kdKlasif); - - @Query(allProduk + namaProduk + kdKlasif + sortAllProduk) - public List> findAllActive(@Param("namaProduk") String namaProduk, - @Param("kdKlasif") Short kdKlasif); - - @Query(allProduk + listIdProduk + sortAllProduk) - public List> findProdukPerawat(@Param("listProdukId") List listIdProduk); - - String dupCheck = "select prp.id from ProdukPerawat prp " + "where prp.statusEnabled is true " + @Query("select prp.id from ProdukPerawat prp " + "where prp.statusEnabled is true " + "and lower(regexp_replace(prp.namaProduk,:patternText,'','g')) = :namaProduk " - + "and prp.klasifikasi = :kdKlasif"; - - String notIdProduk = " and prp.id <> :produkId"; - - @Query(dupCheck) - public List findDupProduk(@Param("patternText") String patternText, @Param("namaProduk") String namaProduk, + + "and prp.klasifikasi = :kdKlasif") + List findDupProduk(@Param("patternText") String patternText, @Param("namaProduk") String namaProduk, @Param("kdKlasif") Short kdKlasif); - @Query(dupCheck + notIdProduk) - public List findDupProduk(@Param("patternText") String patternText, @Param("namaProduk") String namaProduk, + @Query("select prp.id from ProdukPerawat prp " + "where prp.statusEnabled is true " + + "and lower(regexp_replace(prp.namaProduk,:patternText,'','g')) = :namaProduk " + + "and prp.klasifikasi = :kdKlasif" + " and prp.id <> :produkId") + List findDupProduk(@Param("patternText") String patternText, @Param("namaProduk") String namaProduk, @Param("kdKlasif") Short kdKlasif, @Param("produkId") Integer idProduk); } diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/SkoringTindakanFarmakologiDao.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/SkoringTindakanFarmakologiDao.java index 8c19e6b4..3f18949a 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/SkoringTindakanFarmakologiDao.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/SkoringTindakanFarmakologiDao.java @@ -1,14 +1,13 @@ package com.jasamedika.medifirst2000.dao; -import java.util.List; -import java.util.Map; - +import com.jasamedika.medifirst2000.entities.SkoringTindakanFarmakologi; 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.SkoringTindakanFarmakologi; +import java.util.List; +import java.util.Map; /** * @author salmanoe @@ -18,7 +17,7 @@ import com.jasamedika.medifirst2000.entities.SkoringTindakanFarmakologi; @Repository("skoringTindakanFarmakologiDao") public interface SkoringTindakanFarmakologiDao extends PagingAndSortingRepository { - String strAllEnabled = "select new Map(stf.noRec as noRec,stf.statusEnabled as statusEnabled," + @Query("select new Map(stf.noRec as noRec,stf.statusEnabled as statusEnabled," + "stf.skor as skor,stf.statusVerifikasi as kdVerif," + "(case when stf.statusVerifikasi is false then 'Belum Verifikasi' " + "when stf.statusVerifikasi is true then 'Terverifikasi' end) as stVerif," @@ -28,52 +27,81 @@ public interface SkoringTindakanFarmakologiDao extends PagingAndSortingRepositor + "when prf.kdProduk = 2 then 'Pelayanan Pasien (Nontarif)' " + "when prf.kdProduk = 3 then 'Pelayanan Nonpasien' end) as jenisProduk) " + "from SkoringTindakanFarmakologi stf " + "inner join stf.produk prf " + "where stf.statusEnabled is true " - + "and to_char(stf.tanggalMulaiBerlaku,'yyyy-MM-dd') <= to_char(now(),'yyyy-MM-dd') "; - - String produk = "and lower(prf.namaProduk) like %:namaProduk% "; - - String statusVerifikasi = "and stf.statusVerifikasi = :isVerif "; - - String sortSearch = "order by prf.namaProduk asc, stf.tanggalMulaiBerlaku desc, stf.tanggalPembaharuanData desc"; - - @Query(strAllEnabled + sortSearch) + + "and to_char(stf.tanggalMulaiBerlaku,'yyyy-MM-dd') <= to_char(now(),'yyyy-MM-dd') " + + "order by prf.namaProduk asc, stf.tanggalMulaiBerlaku desc, stf.tanggalPembaharuanData desc") List> findAllEnabled(); - @Query(strAllEnabled + produk + sortSearch) + @Query("select new Map(stf.noRec as noRec,stf.statusEnabled as statusEnabled," + + "stf.skor as skor,stf.statusVerifikasi as kdVerif," + + "(case when stf.statusVerifikasi is false then 'Belum Verifikasi' " + + "when stf.statusVerifikasi is true then 'Terverifikasi' end) as stVerif," + + "stf.tanggalMulaiBerlaku as tglMulaiBerlaku,stf.tanggalPembaharuanData as tglPembaharuanData," + + "prf.id as produkId,prf.namaProduk as namaProduk," + + "(case when prf.kdProduk = 1 then 'Pelayanan Pasien (Tarif)' " + + "when prf.kdProduk = 2 then 'Pelayanan Pasien (Nontarif)' " + + "when prf.kdProduk = 3 then 'Pelayanan Nonpasien' end) as jenisProduk) " + + "from SkoringTindakanFarmakologi stf " + "inner join stf.produk prf " + "where stf.statusEnabled is true " + + "and to_char(stf.tanggalMulaiBerlaku,'yyyy-MM-dd') <= to_char(now(),'yyyy-MM-dd') " + + "and lower(prf.namaProduk) like %:namaProduk% " + + "order by prf.namaProduk asc, stf.tanggalMulaiBerlaku desc, stf.tanggalPembaharuanData desc") List> findAllEnabledByProduk(@Param("namaProduk") String namaProduk); - @Query(strAllEnabled + statusVerifikasi + sortSearch) + @Query("select new Map(stf.noRec as noRec,stf.statusEnabled as statusEnabled," + + "stf.skor as skor,stf.statusVerifikasi as kdVerif," + + "(case when stf.statusVerifikasi is false then 'Belum Verifikasi' " + + "when stf.statusVerifikasi is true then 'Terverifikasi' end) as stVerif," + + "stf.tanggalMulaiBerlaku as tglMulaiBerlaku,stf.tanggalPembaharuanData as tglPembaharuanData," + + "prf.id as produkId,prf.namaProduk as namaProduk," + + "(case when prf.kdProduk = 1 then 'Pelayanan Pasien (Tarif)' " + + "when prf.kdProduk = 2 then 'Pelayanan Pasien (Nontarif)' " + + "when prf.kdProduk = 3 then 'Pelayanan Nonpasien' end) as jenisProduk) " + + "from SkoringTindakanFarmakologi stf " + "inner join stf.produk prf " + "where stf.statusEnabled is true " + + "and to_char(stf.tanggalMulaiBerlaku,'yyyy-MM-dd') <= to_char(now(),'yyyy-MM-dd') " + + "and stf.statusVerifikasi = :isVerif " + + "order by prf.namaProduk asc, stf.tanggalMulaiBerlaku desc, stf.tanggalPembaharuanData desc") List> findAllEnabledByVerif(@Param("isVerif") Boolean isVerif); - @Query(strAllEnabled + produk + statusVerifikasi + sortSearch) + @Query("select new Map(stf.noRec as noRec,stf.statusEnabled as statusEnabled," + + "stf.skor as skor,stf.statusVerifikasi as kdVerif," + + "(case when stf.statusVerifikasi is false then 'Belum Verifikasi' " + + "when stf.statusVerifikasi is true then 'Terverifikasi' end) as stVerif," + + "stf.tanggalMulaiBerlaku as tglMulaiBerlaku,stf.tanggalPembaharuanData as tglPembaharuanData," + + "prf.id as produkId,prf.namaProduk as namaProduk," + + "(case when prf.kdProduk = 1 then 'Pelayanan Pasien (Tarif)' " + + "when prf.kdProduk = 2 then 'Pelayanan Pasien (Nontarif)' " + + "when prf.kdProduk = 3 then 'Pelayanan Nonpasien' end) as jenisProduk) " + + "from SkoringTindakanFarmakologi stf " + "inner join stf.produk prf " + "where stf.statusEnabled is true " + + "and to_char(stf.tanggalMulaiBerlaku,'yyyy-MM-dd') <= to_char(now(),'yyyy-MM-dd') " + + "and lower(prf.namaProduk) like %:namaProduk% " + "and stf.statusVerifikasi = :isVerif " + + "order by prf.namaProduk asc, stf.tanggalMulaiBerlaku desc, stf.tanggalPembaharuanData desc") List> findAllEnabledByProdukVerif(@Param("namaProduk") String namaProduk, @Param("isVerif") Boolean isVerif); - String strCekDupSkoring = "select stf.noRec from SkoringTindakanFarmakologi stf " + "inner join stf.produk prf " + @Query("select stf.noRec from SkoringTindakanFarmakologi stf " + "inner join stf.produk prf " + "where stf.statusEnabled is true " - + "and lower(regexp_replace(prf.namaProduk,:patternText,'','g')) = :namaProduk "; - - String skor = " and stf.skor = :skor"; - - String tglBerlaku = " and to_char(stf.tanggalMulaiBerlaku,'yyyy-MM-dd') = :tglMulaiBerlaku"; - - String idSkoring = " and stf.noRec <> :noRec"; - - String sortTglBerlaku = " order by stf.tanggalMulaiBerlaku desc"; - - @Query(strCekDupSkoring + skor + sortTglBerlaku) + + "and lower(regexp_replace(prf.namaProduk,:patternText,'','g')) = :namaProduk " + " and stf.skor = :skor" + + " order by stf.tanggalMulaiBerlaku desc") List findLastDupSkoring(@Param("namaProduk") String namaProduk, @Param("skor") Double skor, @Param("patternText") String patternText); - @Query(strCekDupSkoring + tglBerlaku) + @Query("select stf.noRec from SkoringTindakanFarmakologi stf " + "inner join stf.produk prf " + + "where stf.statusEnabled is true " + + "and lower(regexp_replace(prf.namaProduk,:patternText,'','g')) = :namaProduk " + + " and to_char(stf.tanggalMulaiBerlaku,'yyyy-MM-dd') = :tglMulaiBerlaku") List findDupSkoring(@Param("namaProduk") String namaProduk, @Param("tglMulaiBerlaku") String tglMulaiBerlaku, @Param("patternText") String patternText); - @Query(strCekDupSkoring + skor + idSkoring + sortTglBerlaku) + @Query("select stf.noRec from SkoringTindakanFarmakologi stf " + "inner join stf.produk prf " + + "where stf.statusEnabled is true " + + "and lower(regexp_replace(prf.namaProduk,:patternText,'','g')) = :namaProduk " + " and stf.skor = :skor" + + " and stf.noRec <> :noRec" + " order by stf.tanggalMulaiBerlaku desc") List findLastDupSkoring(@Param("namaProduk") String namaProduk, @Param("skor") Double skor, @Param("patternText") String patternText, @Param("noRec") String noRec); - @Query(strCekDupSkoring + tglBerlaku + idSkoring) + @Query("select stf.noRec from SkoringTindakanFarmakologi stf " + "inner join stf.produk prf " + + "where stf.statusEnabled is true " + + "and lower(regexp_replace(prf.namaProduk,:patternText,'','g')) = :namaProduk " + + " and to_char(stf.tanggalMulaiBerlaku,'yyyy-MM-dd') = :tglMulaiBerlaku" + " and stf.noRec <> :noRec") List findDupSkoring(@Param("namaProduk") String namaProduk, @Param("tglMulaiBerlaku") String tglMulaiBerlaku, @Param("patternText") String patternText, @Param("noRec") String noRec); diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/SkoringTindakanMedisDao.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/SkoringTindakanMedisDao.java index 62c07cb8..41a840c8 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/SkoringTindakanMedisDao.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/SkoringTindakanMedisDao.java @@ -1,19 +1,18 @@ package com.jasamedika.medifirst2000.dao; -import java.util.List; -import java.util.Map; - +import com.jasamedika.medifirst2000.entities.SkoringTindakanMedis; 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.SkoringTindakanMedis; +import java.util.List; +import java.util.Map; @Repository("skoringTindakanMedisDao") public interface SkoringTindakanMedisDao extends PagingAndSortingRepository { - String strAllEnabled = "select new Map(stm.noRec as noRec," + "stm.statusEnabled as statusEnabled," + @Query("select new Map(stm.noRec as noRec," + "stm.statusEnabled as statusEnabled," + "uk.id as unitKerjaId,uk.name as unitKerja," + "sk.id as kelompokKerjaId,sk.name as kelompokKerja," + "pr.id as produkId,pr.namaProduk as namaProduk," + "stm.detailProduk as detailProduk," + "stm.skor as skor," + "stm.statusVerifikasi as isStatusVerifikasi," @@ -22,113 +21,285 @@ public interface SkoringTindakanMedisDao extends PagingAndSortingRepository> findAllEnabled(); - @Query(strAllEnabled + kelompokKerja + sortSearch) + @Query("select new Map(stm.noRec as noRec," + "stm.statusEnabled as statusEnabled," + + "uk.id as unitKerjaId,uk.name as unitKerja," + "sk.id as kelompokKerjaId,sk.name as kelompokKerja," + + "pr.id as produkId,pr.namaProduk as namaProduk," + "stm.detailProduk as detailProduk," + + "stm.skor as skor," + "stm.statusVerifikasi as isStatusVerifikasi," + + "(case when stm.statusVerifikasi is false then 'Belum Verifikasi' " + + "when stm.statusVerifikasi is true then 'Terverifikasi' end) as statusVerifikasi," + + "stm.tanggalMulaiBerlaku as tglMulaiBerlaku," + "stm.tanggalPembaharuanData as tglPembaharuanData) " + + "from SkoringTindakanMedis stm " + "inner join stm.produk pr " + "inner join stm.kelompokKerja sk " + + "inner join sk.unitKerja uk " + "where stm.statusEnabled is true " + + "and to_char(stm.tanggalMulaiBerlaku,'yyyy-MM-dd') <= to_char(now(),'yyyy-MM-dd')" + + " and sk.id in (:listSubunitKerjaId)" + " order by sk.name asc," + "pr.namaProduk asc," + + "stm.detailProduk asc, " + "stm.tanggalMulaiBerlaku desc, stm.tanggalPembaharuanData desc") List> findAllEnabledByUnit(@Param("listSubunitKerjaId") List listIdKelompokKerja); - @Query(strAllEnabled + produk + sortSearch) + @Query("select new Map(stm.noRec as noRec," + "stm.statusEnabled as statusEnabled," + + "uk.id as unitKerjaId,uk.name as unitKerja," + "sk.id as kelompokKerjaId,sk.name as kelompokKerja," + + "pr.id as produkId,pr.namaProduk as namaProduk," + "stm.detailProduk as detailProduk," + + "stm.skor as skor," + "stm.statusVerifikasi as isStatusVerifikasi," + + "(case when stm.statusVerifikasi is false then 'Belum Verifikasi' " + + "when stm.statusVerifikasi is true then 'Terverifikasi' end) as statusVerifikasi," + + "stm.tanggalMulaiBerlaku as tglMulaiBerlaku," + "stm.tanggalPembaharuanData as tglPembaharuanData) " + + "from SkoringTindakanMedis stm " + "inner join stm.produk pr " + "inner join stm.kelompokKerja sk " + + "inner join sk.unitKerja uk " + "where stm.statusEnabled is true " + + "and to_char(stm.tanggalMulaiBerlaku,'yyyy-MM-dd') <= to_char(now(),'yyyy-MM-dd')" + + " and lower(pr.namaProduk) like %:namaProduk%" + " order by sk.name asc," + "pr.namaProduk asc," + + "stm.detailProduk asc, " + "stm.tanggalMulaiBerlaku desc, stm.tanggalPembaharuanData desc") List> findAllEnabledByProduk(@Param("namaProduk") String namaProduk); - @Query(strAllEnabled + detailProduk + sortSearch) + @Query("select new Map(stm.noRec as noRec," + "stm.statusEnabled as statusEnabled," + + "uk.id as unitKerjaId,uk.name as unitKerja," + "sk.id as kelompokKerjaId,sk.name as kelompokKerja," + + "pr.id as produkId,pr.namaProduk as namaProduk," + "stm.detailProduk as detailProduk," + + "stm.skor as skor," + "stm.statusVerifikasi as isStatusVerifikasi," + + "(case when stm.statusVerifikasi is false then 'Belum Verifikasi' " + + "when stm.statusVerifikasi is true then 'Terverifikasi' end) as statusVerifikasi," + + "stm.tanggalMulaiBerlaku as tglMulaiBerlaku," + "stm.tanggalPembaharuanData as tglPembaharuanData) " + + "from SkoringTindakanMedis stm " + "inner join stm.produk pr " + "inner join stm.kelompokKerja sk " + + "inner join sk.unitKerja uk " + "where stm.statusEnabled is true " + + "and to_char(stm.tanggalMulaiBerlaku,'yyyy-MM-dd') <= to_char(now(),'yyyy-MM-dd')" + + " and lower(stm.detailProduk) like %:detailProduk%" + " order by sk.name asc," + "pr.namaProduk asc," + + "stm.detailProduk asc, " + "stm.tanggalMulaiBerlaku desc, stm.tanggalPembaharuanData desc") List> findAllEnabledByDetail(@Param("detailProduk") String detailProduk); - @Query(strAllEnabled + statusVerifikasi + sortSearch) + @Query("select new Map(stm.noRec as noRec," + "stm.statusEnabled as statusEnabled," + + "uk.id as unitKerjaId,uk.name as unitKerja," + "sk.id as kelompokKerjaId,sk.name as kelompokKerja," + + "pr.id as produkId,pr.namaProduk as namaProduk," + "stm.detailProduk as detailProduk," + + "stm.skor as skor," + "stm.statusVerifikasi as isStatusVerifikasi," + + "(case when stm.statusVerifikasi is false then 'Belum Verifikasi' " + + "when stm.statusVerifikasi is true then 'Terverifikasi' end) as statusVerifikasi," + + "stm.tanggalMulaiBerlaku as tglMulaiBerlaku," + "stm.tanggalPembaharuanData as tglPembaharuanData) " + + "from SkoringTindakanMedis stm " + "inner join stm.produk pr " + "inner join stm.kelompokKerja sk " + + "inner join sk.unitKerja uk " + "where stm.statusEnabled is true " + + "and to_char(stm.tanggalMulaiBerlaku,'yyyy-MM-dd') <= to_char(now(),'yyyy-MM-dd')" + + " and stm.statusVerifikasi = :isStatusVerifikasi" + " order by sk.name asc," + "pr.namaProduk asc," + + "stm.detailProduk asc, " + "stm.tanggalMulaiBerlaku desc, stm.tanggalPembaharuanData desc") List> findAllEnabledByVerif(@Param("isStatusVerifikasi") Boolean statusVerifikasi); - @Query(strAllEnabled + kelompokKerja + produk + sortSearch) + @Query("select new Map(stm.noRec as noRec," + "stm.statusEnabled as statusEnabled," + + "uk.id as unitKerjaId,uk.name as unitKerja," + "sk.id as kelompokKerjaId,sk.name as kelompokKerja," + + "pr.id as produkId,pr.namaProduk as namaProduk," + "stm.detailProduk as detailProduk," + + "stm.skor as skor," + "stm.statusVerifikasi as isStatusVerifikasi," + + "(case when stm.statusVerifikasi is false then 'Belum Verifikasi' " + + "when stm.statusVerifikasi is true then 'Terverifikasi' end) as statusVerifikasi," + + "stm.tanggalMulaiBerlaku as tglMulaiBerlaku," + "stm.tanggalPembaharuanData as tglPembaharuanData) " + + "from SkoringTindakanMedis stm " + "inner join stm.produk pr " + "inner join stm.kelompokKerja sk " + + "inner join sk.unitKerja uk " + "where stm.statusEnabled is true " + + "and to_char(stm.tanggalMulaiBerlaku,'yyyy-MM-dd') <= to_char(now(),'yyyy-MM-dd')" + + " and sk.id in (:listSubunitKerjaId)" + " and lower(pr.namaProduk) like %:namaProduk%" + + " order by sk.name asc," + "pr.namaProduk asc," + "stm.detailProduk asc, " + + "stm.tanggalMulaiBerlaku desc, stm.tanggalPembaharuanData desc") List> findAllEnabledByUnitProduk(@Param("listSubunitKerjaId") List listIdKelompokKerja, @Param("namaProduk") String namaProduk); - @Query(strAllEnabled + kelompokKerja + detailProduk + sortSearch) + @Query("select new Map(stm.noRec as noRec," + "stm.statusEnabled as statusEnabled," + + "uk.id as unitKerjaId,uk.name as unitKerja," + "sk.id as kelompokKerjaId,sk.name as kelompokKerja," + + "pr.id as produkId,pr.namaProduk as namaProduk," + "stm.detailProduk as detailProduk," + + "stm.skor as skor," + "stm.statusVerifikasi as isStatusVerifikasi," + + "(case when stm.statusVerifikasi is false then 'Belum Verifikasi' " + + "when stm.statusVerifikasi is true then 'Terverifikasi' end) as statusVerifikasi," + + "stm.tanggalMulaiBerlaku as tglMulaiBerlaku," + "stm.tanggalPembaharuanData as tglPembaharuanData) " + + "from SkoringTindakanMedis stm " + "inner join stm.produk pr " + "inner join stm.kelompokKerja sk " + + "inner join sk.unitKerja uk " + "where stm.statusEnabled is true " + + "and to_char(stm.tanggalMulaiBerlaku,'yyyy-MM-dd') <= to_char(now(),'yyyy-MM-dd')" + + " and sk.id in (:listSubunitKerjaId)" + " and lower(stm.detailProduk) like %:detailProduk%" + + " order by sk.name asc," + "pr.namaProduk asc," + "stm.detailProduk asc, " + + "stm.tanggalMulaiBerlaku desc, stm.tanggalPembaharuanData desc") List> findAllEnabledByUnitDetail(@Param("listSubunitKerjaId") List listIdKelompokKerja, @Param("detailProduk") String detailProduk); - @Query(strAllEnabled + kelompokKerja + statusVerifikasi + sortSearch) + @Query("select new Map(stm.noRec as noRec," + "stm.statusEnabled as statusEnabled," + + "uk.id as unitKerjaId,uk.name as unitKerja," + "sk.id as kelompokKerjaId,sk.name as kelompokKerja," + + "pr.id as produkId,pr.namaProduk as namaProduk," + "stm.detailProduk as detailProduk," + + "stm.skor as skor," + "stm.statusVerifikasi as isStatusVerifikasi," + + "(case when stm.statusVerifikasi is false then 'Belum Verifikasi' " + + "when stm.statusVerifikasi is true then 'Terverifikasi' end) as statusVerifikasi," + + "stm.tanggalMulaiBerlaku as tglMulaiBerlaku," + "stm.tanggalPembaharuanData as tglPembaharuanData) " + + "from SkoringTindakanMedis stm " + "inner join stm.produk pr " + "inner join stm.kelompokKerja sk " + + "inner join sk.unitKerja uk " + "where stm.statusEnabled is true " + + "and to_char(stm.tanggalMulaiBerlaku,'yyyy-MM-dd') <= to_char(now(),'yyyy-MM-dd')" + + " and sk.id in (:listSubunitKerjaId)" + " and stm.statusVerifikasi = :isStatusVerifikasi" + + " order by sk.name asc," + "pr.namaProduk asc," + "stm.detailProduk asc, " + + "stm.tanggalMulaiBerlaku desc, stm.tanggalPembaharuanData desc") List> findAllEnabledByUnitVerif(@Param("listSubunitKerjaId") List listIdKelompokKerja, @Param("isStatusVerifikasi") Boolean statusVerifikasi); - @Query(strAllEnabled + produk + detailProduk + sortSearch) + @Query("select new Map(stm.noRec as noRec," + "stm.statusEnabled as statusEnabled," + + "uk.id as unitKerjaId,uk.name as unitKerja," + "sk.id as kelompokKerjaId,sk.name as kelompokKerja," + + "pr.id as produkId,pr.namaProduk as namaProduk," + "stm.detailProduk as detailProduk," + + "stm.skor as skor," + "stm.statusVerifikasi as isStatusVerifikasi," + + "(case when stm.statusVerifikasi is false then 'Belum Verifikasi' " + + "when stm.statusVerifikasi is true then 'Terverifikasi' end) as statusVerifikasi," + + "stm.tanggalMulaiBerlaku as tglMulaiBerlaku," + "stm.tanggalPembaharuanData as tglPembaharuanData) " + + "from SkoringTindakanMedis stm " + "inner join stm.produk pr " + "inner join stm.kelompokKerja sk " + + "inner join sk.unitKerja uk " + "where stm.statusEnabled is true " + + "and to_char(stm.tanggalMulaiBerlaku,'yyyy-MM-dd') <= to_char(now(),'yyyy-MM-dd')" + + " and lower(pr.namaProduk) like %:namaProduk%" + " and lower(stm.detailProduk) like %:detailProduk%" + + " order by sk.name asc," + "pr.namaProduk asc," + "stm.detailProduk asc, " + + "stm.tanggalMulaiBerlaku desc, stm.tanggalPembaharuanData desc") List> findAllEnabledByProdukDetail(@Param("namaProduk") String namaProduk, @Param("detailProduk") String detailProduk); - @Query(strAllEnabled + produk + statusVerifikasi + sortSearch) + @Query("select new Map(stm.noRec as noRec," + "stm.statusEnabled as statusEnabled," + + "uk.id as unitKerjaId,uk.name as unitKerja," + "sk.id as kelompokKerjaId,sk.name as kelompokKerja," + + "pr.id as produkId,pr.namaProduk as namaProduk," + "stm.detailProduk as detailProduk," + + "stm.skor as skor," + "stm.statusVerifikasi as isStatusVerifikasi," + + "(case when stm.statusVerifikasi is false then 'Belum Verifikasi' " + + "when stm.statusVerifikasi is true then 'Terverifikasi' end) as statusVerifikasi," + + "stm.tanggalMulaiBerlaku as tglMulaiBerlaku," + "stm.tanggalPembaharuanData as tglPembaharuanData) " + + "from SkoringTindakanMedis stm " + "inner join stm.produk pr " + "inner join stm.kelompokKerja sk " + + "inner join sk.unitKerja uk " + "where stm.statusEnabled is true " + + "and to_char(stm.tanggalMulaiBerlaku,'yyyy-MM-dd') <= to_char(now(),'yyyy-MM-dd')" + + " and lower(pr.namaProduk) like %:namaProduk%" + " and stm.statusVerifikasi = :isStatusVerifikasi" + + " order by sk.name asc," + "pr.namaProduk asc," + "stm.detailProduk asc, " + + "stm.tanggalMulaiBerlaku desc, stm.tanggalPembaharuanData desc") List> findAllEnabledByProdukVerif(@Param("namaProduk") String namaProduk, @Param("isStatusVerifikasi") Boolean statusVerifikasi); - @Query(strAllEnabled + detailProduk + statusVerifikasi + sortSearch) + @Query("select new Map(stm.noRec as noRec," + "stm.statusEnabled as statusEnabled," + + "uk.id as unitKerjaId,uk.name as unitKerja," + "sk.id as kelompokKerjaId,sk.name as kelompokKerja," + + "pr.id as produkId,pr.namaProduk as namaProduk," + "stm.detailProduk as detailProduk," + + "stm.skor as skor," + "stm.statusVerifikasi as isStatusVerifikasi," + + "(case when stm.statusVerifikasi is false then 'Belum Verifikasi' " + + "when stm.statusVerifikasi is true then 'Terverifikasi' end) as statusVerifikasi," + + "stm.tanggalMulaiBerlaku as tglMulaiBerlaku," + "stm.tanggalPembaharuanData as tglPembaharuanData) " + + "from SkoringTindakanMedis stm " + "inner join stm.produk pr " + "inner join stm.kelompokKerja sk " + + "inner join sk.unitKerja uk " + "where stm.statusEnabled is true " + + "and to_char(stm.tanggalMulaiBerlaku,'yyyy-MM-dd') <= to_char(now(),'yyyy-MM-dd')" + + " and lower(stm.detailProduk) like %:detailProduk%" + " and stm.statusVerifikasi = :isStatusVerifikasi" + + " order by sk.name asc," + "pr.namaProduk asc," + "stm.detailProduk asc, " + + "stm.tanggalMulaiBerlaku desc, stm.tanggalPembaharuanData desc") List> findAllEnabledByDetailVerif(@Param("detailProduk") String detailProduk, @Param("isStatusVerifikasi") Boolean statusVerifikasi); - @Query(strAllEnabled + kelompokKerja + produk + detailProduk + sortSearch) + @Query("select new Map(stm.noRec as noRec," + "stm.statusEnabled as statusEnabled," + + "uk.id as unitKerjaId,uk.name as unitKerja," + "sk.id as kelompokKerjaId,sk.name as kelompokKerja," + + "pr.id as produkId,pr.namaProduk as namaProduk," + "stm.detailProduk as detailProduk," + + "stm.skor as skor," + "stm.statusVerifikasi as isStatusVerifikasi," + + "(case when stm.statusVerifikasi is false then 'Belum Verifikasi' " + + "when stm.statusVerifikasi is true then 'Terverifikasi' end) as statusVerifikasi," + + "stm.tanggalMulaiBerlaku as tglMulaiBerlaku," + "stm.tanggalPembaharuanData as tglPembaharuanData) " + + "from SkoringTindakanMedis stm " + "inner join stm.produk pr " + "inner join stm.kelompokKerja sk " + + "inner join sk.unitKerja uk " + "where stm.statusEnabled is true " + + "and to_char(stm.tanggalMulaiBerlaku,'yyyy-MM-dd') <= to_char(now(),'yyyy-MM-dd')" + + " and sk.id in (:listSubunitKerjaId)" + " and lower(pr.namaProduk) like %:namaProduk%" + + " and lower(stm.detailProduk) like %:detailProduk%" + " order by sk.name asc," + "pr.namaProduk asc," + + "stm.detailProduk asc, " + "stm.tanggalMulaiBerlaku desc, stm.tanggalPembaharuanData desc") List> findAllEnabledByUnitProdukDetail( @Param("listSubunitKerjaId") List listIdKelompokKerja, @Param("namaProduk") String namaProduk, @Param("detailProduk") String detailProduk); - @Query(strAllEnabled + kelompokKerja + produk + statusVerifikasi + sortSearch) + @Query("select new Map(stm.noRec as noRec," + "stm.statusEnabled as statusEnabled," + + "uk.id as unitKerjaId,uk.name as unitKerja," + "sk.id as kelompokKerjaId,sk.name as kelompokKerja," + + "pr.id as produkId,pr.namaProduk as namaProduk," + "stm.detailProduk as detailProduk," + + "stm.skor as skor," + "stm.statusVerifikasi as isStatusVerifikasi," + + "(case when stm.statusVerifikasi is false then 'Belum Verifikasi' " + + "when stm.statusVerifikasi is true then 'Terverifikasi' end) as statusVerifikasi," + + "stm.tanggalMulaiBerlaku as tglMulaiBerlaku," + "stm.tanggalPembaharuanData as tglPembaharuanData) " + + "from SkoringTindakanMedis stm " + "inner join stm.produk pr " + "inner join stm.kelompokKerja sk " + + "inner join sk.unitKerja uk " + "where stm.statusEnabled is true " + + "and to_char(stm.tanggalMulaiBerlaku,'yyyy-MM-dd') <= to_char(now(),'yyyy-MM-dd')" + + " and sk.id in (:listSubunitKerjaId)" + " and lower(pr.namaProduk) like %:namaProduk%" + + " and stm.statusVerifikasi = :isStatusVerifikasi" + " order by sk.name asc," + "pr.namaProduk asc," + + "stm.detailProduk asc, " + "stm.tanggalMulaiBerlaku desc, stm.tanggalPembaharuanData desc") List> findAllEnabledByUnitProdukVerif( @Param("listSubunitKerjaId") List listIdKelompokKerja, @Param("namaProduk") String namaProduk, @Param("isStatusVerifikasi") Boolean statusVerifikasi); - @Query(strAllEnabled + kelompokKerja + detailProduk + statusVerifikasi + sortSearch) + @Query("select new Map(stm.noRec as noRec," + "stm.statusEnabled as statusEnabled," + + "uk.id as unitKerjaId,uk.name as unitKerja," + "sk.id as kelompokKerjaId,sk.name as kelompokKerja," + + "pr.id as produkId,pr.namaProduk as namaProduk," + "stm.detailProduk as detailProduk," + + "stm.skor as skor," + "stm.statusVerifikasi as isStatusVerifikasi," + + "(case when stm.statusVerifikasi is false then 'Belum Verifikasi' " + + "when stm.statusVerifikasi is true then 'Terverifikasi' end) as statusVerifikasi," + + "stm.tanggalMulaiBerlaku as tglMulaiBerlaku," + "stm.tanggalPembaharuanData as tglPembaharuanData) " + + "from SkoringTindakanMedis stm " + "inner join stm.produk pr " + "inner join stm.kelompokKerja sk " + + "inner join sk.unitKerja uk " + "where stm.statusEnabled is true " + + "and to_char(stm.tanggalMulaiBerlaku,'yyyy-MM-dd') <= to_char(now(),'yyyy-MM-dd')" + + " and sk.id in (:listSubunitKerjaId)" + " and lower(stm.detailProduk) like %:detailProduk%" + + " and stm.statusVerifikasi = :isStatusVerifikasi" + " order by sk.name asc," + "pr.namaProduk asc," + + "stm.detailProduk asc, " + "stm.tanggalMulaiBerlaku desc, stm.tanggalPembaharuanData desc") List> findAllEnabledByUnitDetailVerif( @Param("listSubunitKerjaId") List listIdKelompokKerja, @Param("detailProduk") String detailProduk, @Param("isStatusVerifikasi") Boolean statusVerifikasi); - @Query(strAllEnabled + produk + detailProduk + statusVerifikasi + sortSearch) + @Query("select new Map(stm.noRec as noRec," + "stm.statusEnabled as statusEnabled," + + "uk.id as unitKerjaId,uk.name as unitKerja," + "sk.id as kelompokKerjaId,sk.name as kelompokKerja," + + "pr.id as produkId,pr.namaProduk as namaProduk," + "stm.detailProduk as detailProduk," + + "stm.skor as skor," + "stm.statusVerifikasi as isStatusVerifikasi," + + "(case when stm.statusVerifikasi is false then 'Belum Verifikasi' " + + "when stm.statusVerifikasi is true then 'Terverifikasi' end) as statusVerifikasi," + + "stm.tanggalMulaiBerlaku as tglMulaiBerlaku," + "stm.tanggalPembaharuanData as tglPembaharuanData) " + + "from SkoringTindakanMedis stm " + "inner join stm.produk pr " + "inner join stm.kelompokKerja sk " + + "inner join sk.unitKerja uk " + "where stm.statusEnabled is true " + + "and to_char(stm.tanggalMulaiBerlaku,'yyyy-MM-dd') <= to_char(now(),'yyyy-MM-dd')" + + " and lower(pr.namaProduk) like %:namaProduk%" + " and lower(stm.detailProduk) like %:detailProduk%" + + " and stm.statusVerifikasi = :isStatusVerifikasi" + " order by sk.name asc," + "pr.namaProduk asc," + + "stm.detailProduk asc, " + "stm.tanggalMulaiBerlaku desc, stm.tanggalPembaharuanData desc") List> findAllEnabledByProdukDetailVerif(@Param("namaProduk") String namaProduk, @Param("detailProduk") String detailProduk, @Param("isStatusVerifikasi") Boolean statusVerifikasi); - @Query(strAllEnabled + kelompokKerja + produk + detailProduk + statusVerifikasi + sortSearch) + @Query("select new Map(stm.noRec as noRec," + "stm.statusEnabled as statusEnabled," + + "uk.id as unitKerjaId,uk.name as unitKerja," + "sk.id as kelompokKerjaId,sk.name as kelompokKerja," + + "pr.id as produkId,pr.namaProduk as namaProduk," + "stm.detailProduk as detailProduk," + + "stm.skor as skor," + "stm.statusVerifikasi as isStatusVerifikasi," + + "(case when stm.statusVerifikasi is false then 'Belum Verifikasi' " + + "when stm.statusVerifikasi is true then 'Terverifikasi' end) as statusVerifikasi," + + "stm.tanggalMulaiBerlaku as tglMulaiBerlaku," + "stm.tanggalPembaharuanData as tglPembaharuanData) " + + "from SkoringTindakanMedis stm " + "inner join stm.produk pr " + "inner join stm.kelompokKerja sk " + + "inner join sk.unitKerja uk " + "where stm.statusEnabled is true " + + "and to_char(stm.tanggalMulaiBerlaku,'yyyy-MM-dd') <= to_char(now(),'yyyy-MM-dd')" + + " and sk.id in (:listSubunitKerjaId)" + " and lower(pr.namaProduk) like %:namaProduk%" + + " and lower(stm.detailProduk) like %:detailProduk%" + " and stm.statusVerifikasi = :isStatusVerifikasi" + + " order by sk.name asc," + "pr.namaProduk asc," + "stm.detailProduk asc, " + + "stm.tanggalMulaiBerlaku desc, stm.tanggalPembaharuanData desc") List> findAllEnabledByUnitProdukDetailVerif( @Param("listSubunitKerjaId") List listIdKelompokKerja, @Param("namaProduk") String namaProduk, @Param("detailProduk") String detailProduk, @Param("isStatusVerifikasi") Boolean statusVerifikasi); - String strCekDupSkoring = "select stm.noRec " + "from SkoringTindakanMedis stm " + "inner join stm.produk pd " + @Query("select stm.noRec " + "from SkoringTindakanMedis stm " + "inner join stm.produk pd " + "where stm.statusEnabled is true " + "and lower(regexp_replace(pd.namaProduk,:patternText,'','g')) = :namaProduk " + "and stm.kelompokKerjaId = :kelompokKerjaId " - + "and lower(regexp_replace(stm.detailProduk,:patternText,'','g')) = :detailProduk"; - - String skor = " and stm.skor = :skor"; - - String tglBerlaku = " and to_char(stm.tanggalMulaiBerlaku,'yyyy-MM-dd') = :tglMulaiBerlaku"; - - String idSkoring = " and stm.noRec <> :noRec"; - - String sortTglBerlaku = " order by stm.tanggalMulaiBerlaku desc"; - - @Query(strCekDupSkoring + skor + sortTglBerlaku) + + "and lower(regexp_replace(stm.detailProduk,:patternText,'','g')) = :detailProduk" + + " and stm.skor = :skor" + " order by stm.tanggalMulaiBerlaku desc") List findLastDupSkoring(@Param("namaProduk") String namaProduk, @Param("kelompokKerjaId") Integer idKelompokKerja, @Param("skor") Double skor, @Param("patternText") String patternText, @Param("detailProduk") String detailProduk); - @Query(strCekDupSkoring + tglBerlaku) + @Query("select stm.noRec " + "from SkoringTindakanMedis stm " + "inner join stm.produk pd " + + "where stm.statusEnabled is true " + + "and lower(regexp_replace(pd.namaProduk,:patternText,'','g')) = :namaProduk " + + "and stm.kelompokKerjaId = :kelompokKerjaId " + + "and lower(regexp_replace(stm.detailProduk,:patternText,'','g')) = :detailProduk" + + " and to_char(stm.tanggalMulaiBerlaku,'yyyy-MM-dd') = :tglMulaiBerlaku") List findDupSkoring(@Param("namaProduk") String namaProduk, @Param("kelompokKerjaId") Integer idKelompokKerja, @Param("tglMulaiBerlaku") String tglMulaiBerlaku, @Param("patternText") String patternText, @Param("detailProduk") String detailProduk); - @Query(strCekDupSkoring + skor + idSkoring + sortTglBerlaku) + @Query("select stm.noRec " + "from SkoringTindakanMedis stm " + "inner join stm.produk pd " + + "where stm.statusEnabled is true " + + "and lower(regexp_replace(pd.namaProduk,:patternText,'','g')) = :namaProduk " + + "and stm.kelompokKerjaId = :kelompokKerjaId " + + "and lower(regexp_replace(stm.detailProduk,:patternText,'','g')) = :detailProduk" + + " and stm.skor = :skor" + " and stm.noRec <> :noRec" + " order by stm.tanggalMulaiBerlaku desc") List findLastDupSkoring(@Param("namaProduk") String namaProduk, @Param("kelompokKerjaId") Integer idKelompokKerja, @Param("skor") Double skor, @Param("patternText") String patternText, @Param("detailProduk") String detailProduk, @Param("noRec") String noRec); - @Query(strCekDupSkoring + tglBerlaku + idSkoring) + @Query("select stm.noRec " + "from SkoringTindakanMedis stm " + "inner join stm.produk pd " + + "where stm.statusEnabled is true " + + "and lower(regexp_replace(pd.namaProduk,:patternText,'','g')) = :namaProduk " + + "and stm.kelompokKerjaId = :kelompokKerjaId " + + "and lower(regexp_replace(stm.detailProduk,:patternText,'','g')) = :detailProduk" + + " and to_char(stm.tanggalMulaiBerlaku,'yyyy-MM-dd') = :tglMulaiBerlaku" + " and stm.noRec <> :noRec") List findDupSkoring(@Param("namaProduk") String namaProduk, @Param("kelompokKerjaId") Integer idKelompokKerja, @Param("tglMulaiBerlaku") String tglMulaiBerlaku, @Param("patternText") String patternText, @Param("detailProduk") String detailProduk, @@ -170,17 +341,12 @@ public interface SkoringTindakanMedisDao extends PagingAndSortingRepository> findSkoringLogbookDokter(@Param("bulan") String bulan, @Param("listPegawaiId") List listIdPegawai, @Param("listKsmId") List listIdKsm); - String strProdukScored = "select distinct new Map(stm.kelompokKerjaId as kelompokKerjaId, stm.produkId as produkId) " - + "from SkoringTindakanMedis stm " + "where stm.statusEnabled is true "; - - String whrKelompokKerja = "and stm.kelompokKerjaId in (:listKelompokKerjaId) "; - - String srtKkProduk = "order by stm.kelompokKerjaId, stm.produkId"; - /** * @return Daftar id produk sudah dilakukan skor remunerasi */ - @Query(strProdukScored + srtKkProduk) + @Query("select distinct new Map(stm.kelompokKerjaId as kelompokKerjaId, stm.produkId as produkId) " + + "from SkoringTindakanMedis stm " + "where stm.statusEnabled is true " + + "order by stm.kelompokKerjaId, stm.produkId") List> findProdukScored(); /** @@ -188,7 +354,9 @@ public interface SkoringTindakanMedisDao extends PagingAndSortingRepository> findProdukScored(@Param("listKelompokKerjaId") List listIdKelompokKerja); } diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/SkoringTindakanNakesDao.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/SkoringTindakanNakesDao.java index b9c9bea8..7ff3085c 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/SkoringTindakanNakesDao.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/SkoringTindakanNakesDao.java @@ -1,21 +1,19 @@ package com.jasamedika.medifirst2000.dao; -import java.util.List; -import java.util.Map; - +import com.jasamedika.medifirst2000.entities.SkoringTindakanNakes; 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.SkoringTindakanNakes; +import java.util.List; +import java.util.Map; @Repository("skoringTindakanNakesDao") public interface SkoringTindakanNakesDao extends PagingAndSortingRepository { - String strAllEnabled = "select new Map(stn.noRec as noRec," + "stn.statusEnabled as statusEnabled," - + "stn.skor as skor," + "stn.statusVerifikasi as kdVerif," - + "(case when stn.statusVerifikasi is false then 'Belum Verifikasi' " + @Query("select new Map(stn.noRec as noRec," + "stn.statusEnabled as statusEnabled," + "stn.skor as skor," + + "stn.statusVerifikasi as kdVerif," + "(case when stn.statusVerifikasi is false then 'Belum Verifikasi' " + "when stn.statusVerifikasi is true then 'Terverifikasi' end) as stVerif," + "stn.tanggalMulaiBerlaku as tglMulaiBerlaku," + "stn.tanggalPembaharuanData as tglPembaharuanData," + "prn.id as produkId," + "prn.namaProduk as namaProduk," @@ -25,71 +23,157 @@ public interface SkoringTindakanNakesDao extends PagingAndSortingRepository> findAllEnabled(); - @Query(strAllEnabled + produk + sortSearch) + @Query("select new Map(stn.noRec as noRec," + "stn.statusEnabled as statusEnabled," + "stn.skor as skor," + + "stn.statusVerifikasi as kdVerif," + "(case when stn.statusVerifikasi is false then 'Belum Verifikasi' " + + "when stn.statusVerifikasi is true then 'Terverifikasi' end) as stVerif," + + "stn.tanggalMulaiBerlaku as tglMulaiBerlaku," + "stn.tanggalPembaharuanData as tglPembaharuanData," + + "prn.id as produkId," + "prn.namaProduk as namaProduk," + + "(case when prn.kdProduk = 1 then 'Pelayanan Pasien' " + + "when prn.kdProduk = 2 then 'Nonpelayanan Pasien' end) as jenisProduk," + "pfs.id as profesiId," + + "(case when pfs.jenisProfesi = 1 then concat(pfs.namaProfesi, ' (PPA)') " + + "when pfs.jenisProfesi = 2 then concat(pfs.namaProfesi, ' (Non-PPA)') end) as namaProfesi) " + + "from SkoringTindakanNakes stn " + "inner join stn.produk prn " + "inner join prn.profesi pfs " + + "where stn.statusEnabled is true " + + "and to_char(stn.tanggalMulaiBerlaku,'yyyy-MM-dd') <= to_char(now(),'yyyy-MM-dd') " + + "and lower(prn.namaProduk) like %:namaProduk% " + "order by pfs.namaProfesi asc, " + + "prn.namaProduk asc, " + "stn.tanggalMulaiBerlaku desc, stn.tanggalPembaharuanData desc") List> findAllEnabledByProduk(@Param("namaProduk") String namaProduk); - @Query(strAllEnabled + statusVerifikasi + sortSearch) + @Query("select new Map(stn.noRec as noRec," + "stn.statusEnabled as statusEnabled," + "stn.skor as skor," + + "stn.statusVerifikasi as kdVerif," + "(case when stn.statusVerifikasi is false then 'Belum Verifikasi' " + + "when stn.statusVerifikasi is true then 'Terverifikasi' end) as stVerif," + + "stn.tanggalMulaiBerlaku as tglMulaiBerlaku," + "stn.tanggalPembaharuanData as tglPembaharuanData," + + "prn.id as produkId," + "prn.namaProduk as namaProduk," + + "(case when prn.kdProduk = 1 then 'Pelayanan Pasien' " + + "when prn.kdProduk = 2 then 'Nonpelayanan Pasien' end) as jenisProduk," + "pfs.id as profesiId," + + "(case when pfs.jenisProfesi = 1 then concat(pfs.namaProfesi, ' (PPA)') " + + "when pfs.jenisProfesi = 2 then concat(pfs.namaProfesi, ' (Non-PPA)') end) as namaProfesi) " + + "from SkoringTindakanNakes stn " + "inner join stn.produk prn " + "inner join prn.profesi pfs " + + "where stn.statusEnabled is true " + + "and to_char(stn.tanggalMulaiBerlaku,'yyyy-MM-dd') <= to_char(now(),'yyyy-MM-dd') " + + "and stn.statusVerifikasi = :isVerif " + "order by pfs.namaProfesi asc, " + "prn.namaProduk asc, " + + "stn.tanggalMulaiBerlaku desc, stn.tanggalPembaharuanData desc") List> findAllEnabledByVerif(@Param("isVerif") Boolean isVerif); - @Query(strAllEnabled + profesi + sortSearch) + @Query("select new Map(stn.noRec as noRec," + "stn.statusEnabled as statusEnabled," + "stn.skor as skor," + + "stn.statusVerifikasi as kdVerif," + "(case when stn.statusVerifikasi is false then 'Belum Verifikasi' " + + "when stn.statusVerifikasi is true then 'Terverifikasi' end) as stVerif," + + "stn.tanggalMulaiBerlaku as tglMulaiBerlaku," + "stn.tanggalPembaharuanData as tglPembaharuanData," + + "prn.id as produkId," + "prn.namaProduk as namaProduk," + + "(case when prn.kdProduk = 1 then 'Pelayanan Pasien' " + + "when prn.kdProduk = 2 then 'Nonpelayanan Pasien' end) as jenisProduk," + "pfs.id as profesiId," + + "(case when pfs.jenisProfesi = 1 then concat(pfs.namaProfesi, ' (PPA)') " + + "when pfs.jenisProfesi = 2 then concat(pfs.namaProfesi, ' (Non-PPA)') end) as namaProfesi) " + + "from SkoringTindakanNakes stn " + "inner join stn.produk prn " + "inner join prn.profesi pfs " + + "where stn.statusEnabled is true " + + "and to_char(stn.tanggalMulaiBerlaku,'yyyy-MM-dd') <= to_char(now(),'yyyy-MM-dd') " + + "and pfs.id = :profesiId " + "order by pfs.namaProfesi asc, " + "prn.namaProduk asc, " + + "stn.tanggalMulaiBerlaku desc, stn.tanggalPembaharuanData desc") List> findAllEnabledByProfesi(@Param("profesiId") Integer idProfesi); - @Query(strAllEnabled + produk + statusVerifikasi + sortSearch) + @Query("select new Map(stn.noRec as noRec," + "stn.statusEnabled as statusEnabled," + "stn.skor as skor," + + "stn.statusVerifikasi as kdVerif," + "(case when stn.statusVerifikasi is false then 'Belum Verifikasi' " + + "when stn.statusVerifikasi is true then 'Terverifikasi' end) as stVerif," + + "stn.tanggalMulaiBerlaku as tglMulaiBerlaku," + "stn.tanggalPembaharuanData as tglPembaharuanData," + + "prn.id as produkId," + "prn.namaProduk as namaProduk," + + "(case when prn.kdProduk = 1 then 'Pelayanan Pasien' " + + "when prn.kdProduk = 2 then 'Nonpelayanan Pasien' end) as jenisProduk," + "pfs.id as profesiId," + + "(case when pfs.jenisProfesi = 1 then concat(pfs.namaProfesi, ' (PPA)') " + + "when pfs.jenisProfesi = 2 then concat(pfs.namaProfesi, ' (Non-PPA)') end) as namaProfesi) " + + "from SkoringTindakanNakes stn " + "inner join stn.produk prn " + "inner join prn.profesi pfs " + + "where stn.statusEnabled is true " + + "and to_char(stn.tanggalMulaiBerlaku,'yyyy-MM-dd') <= to_char(now(),'yyyy-MM-dd') " + + "and lower(prn.namaProduk) like %:namaProduk% " + "and stn.statusVerifikasi = :isVerif " + + "order by pfs.namaProfesi asc, " + "prn.namaProduk asc, " + + "stn.tanggalMulaiBerlaku desc, stn.tanggalPembaharuanData desc") List> findAllEnabledByProdukVerif(@Param("namaProduk") String namaProduk, @Param("isVerif") Boolean isVerif); - @Query(strAllEnabled + produk + profesi + sortSearch) + @Query("select new Map(stn.noRec as noRec," + "stn.statusEnabled as statusEnabled," + "stn.skor as skor," + + "stn.statusVerifikasi as kdVerif," + "(case when stn.statusVerifikasi is false then 'Belum Verifikasi' " + + "when stn.statusVerifikasi is true then 'Terverifikasi' end) as stVerif," + + "stn.tanggalMulaiBerlaku as tglMulaiBerlaku," + "stn.tanggalPembaharuanData as tglPembaharuanData," + + "prn.id as produkId," + "prn.namaProduk as namaProduk," + + "(case when prn.kdProduk = 1 then 'Pelayanan Pasien' " + + "when prn.kdProduk = 2 then 'Nonpelayanan Pasien' end) as jenisProduk," + "pfs.id as profesiId," + + "(case when pfs.jenisProfesi = 1 then concat(pfs.namaProfesi, ' (PPA)') " + + "when pfs.jenisProfesi = 2 then concat(pfs.namaProfesi, ' (Non-PPA)') end) as namaProfesi) " + + "from SkoringTindakanNakes stn " + "inner join stn.produk prn " + "inner join prn.profesi pfs " + + "where stn.statusEnabled is true " + + "and to_char(stn.tanggalMulaiBerlaku,'yyyy-MM-dd') <= to_char(now(),'yyyy-MM-dd') " + + "and lower(prn.namaProduk) like %:namaProduk% " + "and pfs.id = :profesiId " + + "order by pfs.namaProfesi asc, " + "prn.namaProduk asc, " + + "stn.tanggalMulaiBerlaku desc, stn.tanggalPembaharuanData desc") List> findAllEnabledByProdukProfesi(@Param("namaProduk") String namaProduk, @Param("profesiId") Integer idProfesi); - @Query(strAllEnabled + statusVerifikasi + profesi + sortSearch) + @Query("select new Map(stn.noRec as noRec," + "stn.statusEnabled as statusEnabled," + "stn.skor as skor," + + "stn.statusVerifikasi as kdVerif," + "(case when stn.statusVerifikasi is false then 'Belum Verifikasi' " + + "when stn.statusVerifikasi is true then 'Terverifikasi' end) as stVerif," + + "stn.tanggalMulaiBerlaku as tglMulaiBerlaku," + "stn.tanggalPembaharuanData as tglPembaharuanData," + + "prn.id as produkId," + "prn.namaProduk as namaProduk," + + "(case when prn.kdProduk = 1 then 'Pelayanan Pasien' " + + "when prn.kdProduk = 2 then 'Nonpelayanan Pasien' end) as jenisProduk," + "pfs.id as profesiId," + + "(case when pfs.jenisProfesi = 1 then concat(pfs.namaProfesi, ' (PPA)') " + + "when pfs.jenisProfesi = 2 then concat(pfs.namaProfesi, ' (Non-PPA)') end) as namaProfesi) " + + "from SkoringTindakanNakes stn " + "inner join stn.produk prn " + "inner join prn.profesi pfs " + + "where stn.statusEnabled is true " + + "and to_char(stn.tanggalMulaiBerlaku,'yyyy-MM-dd') <= to_char(now(),'yyyy-MM-dd') " + + "and stn.statusVerifikasi = :isVerif " + "and pfs.id = :profesiId " + "order by pfs.namaProfesi asc, " + + "prn.namaProduk asc, " + "stn.tanggalMulaiBerlaku desc, stn.tanggalPembaharuanData desc") List> findAllEnabledByVerifProfesi(@Param("isVerif") Boolean isVerif, @Param("profesiId") Integer idProfesi); - @Query(strAllEnabled + produk + statusVerifikasi + profesi + sortSearch) + @Query("select new Map(stn.noRec as noRec," + "stn.statusEnabled as statusEnabled," + "stn.skor as skor," + + "stn.statusVerifikasi as kdVerif," + "(case when stn.statusVerifikasi is false then 'Belum Verifikasi' " + + "when stn.statusVerifikasi is true then 'Terverifikasi' end) as stVerif," + + "stn.tanggalMulaiBerlaku as tglMulaiBerlaku," + "stn.tanggalPembaharuanData as tglPembaharuanData," + + "prn.id as produkId," + "prn.namaProduk as namaProduk," + + "(case when prn.kdProduk = 1 then 'Pelayanan Pasien' " + + "when prn.kdProduk = 2 then 'Nonpelayanan Pasien' end) as jenisProduk," + "pfs.id as profesiId," + + "(case when pfs.jenisProfesi = 1 then concat(pfs.namaProfesi, ' (PPA)') " + + "when pfs.jenisProfesi = 2 then concat(pfs.namaProfesi, ' (Non-PPA)') end) as namaProfesi) " + + "from SkoringTindakanNakes stn " + "inner join stn.produk prn " + "inner join prn.profesi pfs " + + "where stn.statusEnabled is true " + + "and to_char(stn.tanggalMulaiBerlaku,'yyyy-MM-dd') <= to_char(now(),'yyyy-MM-dd') " + + "and lower(prn.namaProduk) like %:namaProduk% " + "and stn.statusVerifikasi = :isVerif " + + "and pfs.id = :profesiId " + "order by pfs.namaProfesi asc, " + "prn.namaProduk asc, " + + "stn.tanggalMulaiBerlaku desc, stn.tanggalPembaharuanData desc") List> findAllEnabledByProdukVerifProfesi(@Param("namaProduk") String namaProduk, @Param("isVerif") Boolean isVerif, @Param("profesiId") Integer idProfesi); - String strCekDupSkoring = "select stn.noRec " + "from SkoringTindakanNakes stn " + "inner join stn.produk prn " + @Query("select stn.noRec " + "from SkoringTindakanNakes stn " + "inner join stn.produk prn " + "inner join prn.profesi pfs " + "where stn.statusEnabled is true " + "and lower(regexp_replace(prn.namaProduk,:patternText,'','g')) = :namaProduk " - + "and pfs.id = :profesiId "; - - String skor = " and stn.skor = :skor"; - - String tglBerlaku = " and to_char(stn.tanggalMulaiBerlaku,'yyyy-MM-dd') = :tglMulaiBerlaku"; - - String idSkoring = " and stn.noRec <> :noRec"; - - String sortTglBerlaku = " order by stn.tanggalMulaiBerlaku desc"; - - @Query(strCekDupSkoring + skor + sortTglBerlaku) + + "and pfs.id = :profesiId " + " and stn.skor = :skor" + " order by stn.tanggalMulaiBerlaku desc") List findLastDupSkoring(@Param("namaProduk") String namaProduk, @Param("profesiId") Integer idProfesi, @Param("skor") Double skor, @Param("patternText") String patternText); - @Query(strCekDupSkoring + tglBerlaku) + @Query("select stn.noRec " + "from SkoringTindakanNakes stn " + "inner join stn.produk prn " + + "inner join prn.profesi pfs " + "where stn.statusEnabled is true " + + "and lower(regexp_replace(prn.namaProduk,:patternText,'','g')) = :namaProduk " + + "and pfs.id = :profesiId " + " and to_char(stn.tanggalMulaiBerlaku,'yyyy-MM-dd') = :tglMulaiBerlaku") List findDupSkoring(@Param("namaProduk") String namaProduk, @Param("profesiId") Integer idProfesi, @Param("tglMulaiBerlaku") String tglMulaiBerlaku, @Param("patternText") String patternText); - @Query(strCekDupSkoring + skor + idSkoring + sortTglBerlaku) + @Query("select stn.noRec " + "from SkoringTindakanNakes stn " + "inner join stn.produk prn " + + "inner join prn.profesi pfs " + "where stn.statusEnabled is true " + + "and lower(regexp_replace(prn.namaProduk,:patternText,'','g')) = :namaProduk " + + "and pfs.id = :profesiId " + " and stn.skor = :skor" + " and stn.noRec <> :noRec" + + " order by stn.tanggalMulaiBerlaku desc") List findLastDupSkoring(@Param("namaProduk") String namaProduk, @Param("profesiId") Integer idProfesi, @Param("skor") Double skor, @Param("patternText") String patternText, @Param("noRec") String noRec); - @Query(strCekDupSkoring + tglBerlaku + idSkoring) + @Query("select stn.noRec " + "from SkoringTindakanNakes stn " + "inner join stn.produk prn " + + "inner join prn.profesi pfs " + "where stn.statusEnabled is true " + + "and lower(regexp_replace(prn.namaProduk,:patternText,'','g')) = :namaProduk " + + "and pfs.id = :profesiId " + " and to_char(stn.tanggalMulaiBerlaku,'yyyy-MM-dd') = :tglMulaiBerlaku" + + " and stn.noRec <> :noRec") List findDupSkoring(@Param("namaProduk") String namaProduk, @Param("profesiId") Integer idProfesi, @Param("tglMulaiBerlaku") String tglMulaiBerlaku, @Param("patternText") String patternText, @Param("noRec") String noRec); diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/SkoringTindakanPerawatDao.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/SkoringTindakanPerawatDao.java index 93abbb0e..8112aec2 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/SkoringTindakanPerawatDao.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/SkoringTindakanPerawatDao.java @@ -1,91 +1,150 @@ package com.jasamedika.medifirst2000.dao; -import java.util.List; -import java.util.Map; - +import com.jasamedika.medifirst2000.entities.SkoringTindakanPerawat; 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.SkoringTindakanPerawat; +import java.util.List; +import java.util.Map; @Repository("skoringTindakanPerawatDao") public interface SkoringTindakanPerawatDao extends PagingAndSortingRepository { - String strAllEnabled = "select new Map(stp.noRec as noRec," + "stp.statusEnabled as statusEnabled," - + "stp.skor as skor," + "stp.statusVerifikasi as kdVerif," - + "(case when stp.statusVerifikasi is false then 'Belum Verifikasi' " + @Query("select new Map(stp.noRec as noRec," + "stp.statusEnabled as statusEnabled," + "stp.skor as skor," + + "stp.statusVerifikasi as kdVerif," + "(case when stp.statusVerifikasi is false then 'Belum Verifikasi' " + "when stp.statusVerifikasi is true then 'Terverifikasi' end) as stVerif," + "stp.tanggalMulaiBerlaku as tglMulaiBerlaku," + "stp.tanggalPembaharuanData as tglPembaharuanData," + "prp.id as produkId,prp.namaProduk as namaProduk," + "prp.klasifikasi as kdKlasif," + "(case when prp.klasifikasi = 0 then 'Tidak Ada' " + "when prp.klasifikasi = 1 then 'Asuhan' " + "when prp.klasifikasi = 2 then 'Tindakan' " + "when prp.klasifikasi = 3 then 'Laporan' end) as stKlasif) " + "from SkoringTindakanPerawat stp " + "inner join stp.produk prp " + "where stp.statusEnabled is true " - + "and to_char(stp.tanggalMulaiBerlaku,'yyyy-MM-dd') <= to_char(now(),'yyyy-MM-dd')"; - - String produk = " and lower(prp.namaProduk) like %:namaProduk%"; - - String statusVerifikasi = " and stp.statusVerifikasi = :isVerif"; - - String statusKlasifikasi = " and prp.klasifikasi = :kdKlasif"; - - String sortSearch = " order by prp.namaProduk asc, " - + "stp.tanggalMulaiBerlaku desc, stp.tanggalPembaharuanData desc"; - - @Query(strAllEnabled + sortSearch) + + "and to_char(stp.tanggalMulaiBerlaku,'yyyy-MM-dd') <= to_char(now(),'yyyy-MM-dd')" + + " order by prp.namaProduk asc, " + "stp.tanggalMulaiBerlaku desc, stp.tanggalPembaharuanData desc") List> findAllEnabled(); - @Query(strAllEnabled + produk + sortSearch) + @Query("select new Map(stp.noRec as noRec," + "stp.statusEnabled as statusEnabled," + "stp.skor as skor," + + "stp.statusVerifikasi as kdVerif," + "(case when stp.statusVerifikasi is false then 'Belum Verifikasi' " + + "when stp.statusVerifikasi is true then 'Terverifikasi' end) as stVerif," + + "stp.tanggalMulaiBerlaku as tglMulaiBerlaku," + "stp.tanggalPembaharuanData as tglPembaharuanData," + + "prp.id as produkId,prp.namaProduk as namaProduk," + "prp.klasifikasi as kdKlasif," + + "(case when prp.klasifikasi = 0 then 'Tidak Ada' " + "when prp.klasifikasi = 1 then 'Asuhan' " + + "when prp.klasifikasi = 2 then 'Tindakan' " + "when prp.klasifikasi = 3 then 'Laporan' end) as stKlasif) " + + "from SkoringTindakanPerawat stp " + "inner join stp.produk prp " + "where stp.statusEnabled is true " + + "and to_char(stp.tanggalMulaiBerlaku,'yyyy-MM-dd') <= to_char(now(),'yyyy-MM-dd')" + + " and lower(prp.namaProduk) like %:namaProduk%" + " order by prp.namaProduk asc, " + + "stp.tanggalMulaiBerlaku desc, stp.tanggalPembaharuanData desc") List> findAllEnabledByProduk(@Param("namaProduk") String namaProduk); - @Query(strAllEnabled + statusVerifikasi + sortSearch) + @Query("select new Map(stp.noRec as noRec," + "stp.statusEnabled as statusEnabled," + "stp.skor as skor," + + "stp.statusVerifikasi as kdVerif," + "(case when stp.statusVerifikasi is false then 'Belum Verifikasi' " + + "when stp.statusVerifikasi is true then 'Terverifikasi' end) as stVerif," + + "stp.tanggalMulaiBerlaku as tglMulaiBerlaku," + "stp.tanggalPembaharuanData as tglPembaharuanData," + + "prp.id as produkId,prp.namaProduk as namaProduk," + "prp.klasifikasi as kdKlasif," + + "(case when prp.klasifikasi = 0 then 'Tidak Ada' " + "when prp.klasifikasi = 1 then 'Asuhan' " + + "when prp.klasifikasi = 2 then 'Tindakan' " + "when prp.klasifikasi = 3 then 'Laporan' end) as stKlasif) " + + "from SkoringTindakanPerawat stp " + "inner join stp.produk prp " + "where stp.statusEnabled is true " + + "and to_char(stp.tanggalMulaiBerlaku,'yyyy-MM-dd') <= to_char(now(),'yyyy-MM-dd')" + + " and stp.statusVerifikasi = :isVerif" + " order by prp.namaProduk asc, " + + "stp.tanggalMulaiBerlaku desc, stp.tanggalPembaharuanData desc") List> findAllEnabledByVerif(@Param("isVerif") Boolean isVerif); - @Query(strAllEnabled + statusKlasifikasi + sortSearch) + @Query("select new Map(stp.noRec as noRec," + "stp.statusEnabled as statusEnabled," + "stp.skor as skor," + + "stp.statusVerifikasi as kdVerif," + "(case when stp.statusVerifikasi is false then 'Belum Verifikasi' " + + "when stp.statusVerifikasi is true then 'Terverifikasi' end) as stVerif," + + "stp.tanggalMulaiBerlaku as tglMulaiBerlaku," + "stp.tanggalPembaharuanData as tglPembaharuanData," + + "prp.id as produkId,prp.namaProduk as namaProduk," + "prp.klasifikasi as kdKlasif," + + "(case when prp.klasifikasi = 0 then 'Tidak Ada' " + "when prp.klasifikasi = 1 then 'Asuhan' " + + "when prp.klasifikasi = 2 then 'Tindakan' " + "when prp.klasifikasi = 3 then 'Laporan' end) as stKlasif) " + + "from SkoringTindakanPerawat stp " + "inner join stp.produk prp " + "where stp.statusEnabled is true " + + "and to_char(stp.tanggalMulaiBerlaku,'yyyy-MM-dd') <= to_char(now(),'yyyy-MM-dd')" + + " and prp.klasifikasi = :kdKlasif" + " order by prp.namaProduk asc, " + + "stp.tanggalMulaiBerlaku desc, stp.tanggalPembaharuanData desc") List> findAllEnabledByKlasif(@Param("kdKlasif") Short kdKlasif); - @Query(strAllEnabled + produk + statusVerifikasi + sortSearch) + @Query("select new Map(stp.noRec as noRec," + "stp.statusEnabled as statusEnabled," + "stp.skor as skor," + + "stp.statusVerifikasi as kdVerif," + "(case when stp.statusVerifikasi is false then 'Belum Verifikasi' " + + "when stp.statusVerifikasi is true then 'Terverifikasi' end) as stVerif," + + "stp.tanggalMulaiBerlaku as tglMulaiBerlaku," + "stp.tanggalPembaharuanData as tglPembaharuanData," + + "prp.id as produkId,prp.namaProduk as namaProduk," + "prp.klasifikasi as kdKlasif," + + "(case when prp.klasifikasi = 0 then 'Tidak Ada' " + "when prp.klasifikasi = 1 then 'Asuhan' " + + "when prp.klasifikasi = 2 then 'Tindakan' " + "when prp.klasifikasi = 3 then 'Laporan' end) as stKlasif) " + + "from SkoringTindakanPerawat stp " + "inner join stp.produk prp " + "where stp.statusEnabled is true " + + "and to_char(stp.tanggalMulaiBerlaku,'yyyy-MM-dd') <= to_char(now(),'yyyy-MM-dd')" + + " and lower(prp.namaProduk) like %:namaProduk%" + " and stp.statusVerifikasi = :isVerif" + + " order by prp.namaProduk asc, " + "stp.tanggalMulaiBerlaku desc, stp.tanggalPembaharuanData desc") List> findAllEnabledByProdukVerif(@Param("namaProduk") String namaProduk, @Param("isVerif") Boolean isVerif); - @Query(strAllEnabled + produk + statusKlasifikasi + sortSearch) + @Query("select new Map(stp.noRec as noRec," + "stp.statusEnabled as statusEnabled," + "stp.skor as skor," + + "stp.statusVerifikasi as kdVerif," + "(case when stp.statusVerifikasi is false then 'Belum Verifikasi' " + + "when stp.statusVerifikasi is true then 'Terverifikasi' end) as stVerif," + + "stp.tanggalMulaiBerlaku as tglMulaiBerlaku," + "stp.tanggalPembaharuanData as tglPembaharuanData," + + "prp.id as produkId,prp.namaProduk as namaProduk," + "prp.klasifikasi as kdKlasif," + + "(case when prp.klasifikasi = 0 then 'Tidak Ada' " + "when prp.klasifikasi = 1 then 'Asuhan' " + + "when prp.klasifikasi = 2 then 'Tindakan' " + "when prp.klasifikasi = 3 then 'Laporan' end) as stKlasif) " + + "from SkoringTindakanPerawat stp " + "inner join stp.produk prp " + "where stp.statusEnabled is true " + + "and to_char(stp.tanggalMulaiBerlaku,'yyyy-MM-dd') <= to_char(now(),'yyyy-MM-dd')" + + " and lower(prp.namaProduk) like %:namaProduk%" + " and prp.klasifikasi = :kdKlasif" + + " order by prp.namaProduk asc, " + "stp.tanggalMulaiBerlaku desc, stp.tanggalPembaharuanData desc") List> findAllEnabledByProdukKlasif(@Param("namaProduk") String namaProduk, @Param("kdKlasif") Short kdKlasif); - @Query(strAllEnabled + statusVerifikasi + statusKlasifikasi + sortSearch) + @Query("select new Map(stp.noRec as noRec," + "stp.statusEnabled as statusEnabled," + "stp.skor as skor," + + "stp.statusVerifikasi as kdVerif," + "(case when stp.statusVerifikasi is false then 'Belum Verifikasi' " + + "when stp.statusVerifikasi is true then 'Terverifikasi' end) as stVerif," + + "stp.tanggalMulaiBerlaku as tglMulaiBerlaku," + "stp.tanggalPembaharuanData as tglPembaharuanData," + + "prp.id as produkId,prp.namaProduk as namaProduk," + "prp.klasifikasi as kdKlasif," + + "(case when prp.klasifikasi = 0 then 'Tidak Ada' " + "when prp.klasifikasi = 1 then 'Asuhan' " + + "when prp.klasifikasi = 2 then 'Tindakan' " + "when prp.klasifikasi = 3 then 'Laporan' end) as stKlasif) " + + "from SkoringTindakanPerawat stp " + "inner join stp.produk prp " + "where stp.statusEnabled is true " + + "and to_char(stp.tanggalMulaiBerlaku,'yyyy-MM-dd') <= to_char(now(),'yyyy-MM-dd')" + + " and stp.statusVerifikasi = :isVerif" + " and prp.klasifikasi = :kdKlasif" + + " order by prp.namaProduk asc, " + "stp.tanggalMulaiBerlaku desc, stp.tanggalPembaharuanData desc") List> findAllEnabledByVerifKlasif(@Param("isVerif") Boolean isVerif, @Param("kdKlasif") Short kdKlasif); - @Query(strAllEnabled + produk + statusVerifikasi + statusKlasifikasi + sortSearch) + @Query("select new Map(stp.noRec as noRec," + "stp.statusEnabled as statusEnabled," + "stp.skor as skor," + + "stp.statusVerifikasi as kdVerif," + "(case when stp.statusVerifikasi is false then 'Belum Verifikasi' " + + "when stp.statusVerifikasi is true then 'Terverifikasi' end) as stVerif," + + "stp.tanggalMulaiBerlaku as tglMulaiBerlaku," + "stp.tanggalPembaharuanData as tglPembaharuanData," + + "prp.id as produkId,prp.namaProduk as namaProduk," + "prp.klasifikasi as kdKlasif," + + "(case when prp.klasifikasi = 0 then 'Tidak Ada' " + "when prp.klasifikasi = 1 then 'Asuhan' " + + "when prp.klasifikasi = 2 then 'Tindakan' " + "when prp.klasifikasi = 3 then 'Laporan' end) as stKlasif) " + + "from SkoringTindakanPerawat stp " + "inner join stp.produk prp " + "where stp.statusEnabled is true " + + "and to_char(stp.tanggalMulaiBerlaku,'yyyy-MM-dd') <= to_char(now(),'yyyy-MM-dd')" + + " and lower(prp.namaProduk) like %:namaProduk%" + " and stp.statusVerifikasi = :isVerif" + + " and prp.klasifikasi = :kdKlasif" + " order by prp.namaProduk asc, " + + "stp.tanggalMulaiBerlaku desc, stp.tanggalPembaharuanData desc") List> findAllEnabledByProdukVerifKlasif(@Param("namaProduk") String namaProduk, @Param("isVerif") Boolean isVerif, @Param("kdKlasif") Short kdKlasif); - String strCekDupSkoring = "select stp.noRec " + "from SkoringTindakanPerawat stp " + "inner join stp.produk prp " + @Query("select stp.noRec " + "from SkoringTindakanPerawat stp " + "inner join stp.produk prp " + "where stp.statusEnabled is true " - + "and lower(regexp_replace(prp.namaProduk,:patternText,'','g')) = :namaProduk"; - - String skor = " and stp.skor = :skor"; - - String tglBerlaku = " and to_char(stp.tanggalMulaiBerlaku,'yyyy-MM-dd') = :tglMulaiBerlaku"; - - String idSkoring = " and stp.noRec <> :noRec"; - - String sortTglBerlaku = " order by stp.tanggalMulaiBerlaku desc"; - - @Query(strCekDupSkoring + skor + sortTglBerlaku) + + "and lower(regexp_replace(prp.namaProduk,:patternText,'','g')) = :namaProduk" + " and stp.skor = :skor" + + " order by stp.tanggalMulaiBerlaku desc") List findLastDupSkoring(@Param("namaProduk") String namaProduk, @Param("skor") Double skor, @Param("patternText") String patternText); - @Query(strCekDupSkoring + tglBerlaku) + @Query("select stp.noRec " + "from SkoringTindakanPerawat stp " + "inner join stp.produk prp " + + "where stp.statusEnabled is true " + + "and lower(regexp_replace(prp.namaProduk,:patternText,'','g')) = :namaProduk" + + " and to_char(stp.tanggalMulaiBerlaku,'yyyy-MM-dd') = :tglMulaiBerlaku") List findDupSkoring(@Param("namaProduk") String namaProduk, @Param("tglMulaiBerlaku") String tglMulaiBerlaku, @Param("patternText") String patternText); - @Query(strCekDupSkoring + skor + idSkoring + sortTglBerlaku) + @Query("select stp.noRec " + "from SkoringTindakanPerawat stp " + "inner join stp.produk prp " + + "where stp.statusEnabled is true " + + "and lower(regexp_replace(prp.namaProduk,:patternText,'','g')) = :namaProduk" + " and stp.skor = :skor" + + " and stp.noRec <> :noRec" + " order by stp.tanggalMulaiBerlaku desc") List findLastDupSkoring(@Param("namaProduk") String namaProduk, @Param("skor") Double skor, @Param("patternText") String patternText, @Param("noRec") String noRec); - @Query(strCekDupSkoring + tglBerlaku + idSkoring) + @Query("select stp.noRec " + "from SkoringTindakanPerawat stp " + "inner join stp.produk prp " + + "where stp.statusEnabled is true " + + "and lower(regexp_replace(prp.namaProduk,:patternText,'','g')) = :namaProduk" + + " and to_char(stp.tanggalMulaiBerlaku,'yyyy-MM-dd') = :tglMulaiBerlaku" + " and stp.noRec <> :noRec") List findDupSkoring(@Param("namaProduk") String namaProduk, @Param("tglMulaiBerlaku") String tglMulaiBerlaku, @Param("patternText") String patternText, @Param("noRec") String noRec);