Update dao files

Perbaikan struktur query unsecured non-string-builder
This commit is contained in:
Salman Manoe 2024-01-31 15:28:27 +07:00
parent c526b5ab4f
commit 28bc9e7a19
9 changed files with 849 additions and 364 deletions

View File

@ -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<IndikatorKinerja, Integer> {
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<Map<String, Object>> 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<Map<String, Object>> 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<Map<String, Object>> 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<Map<String, Object>> 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<Map<String, Object>> 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<Map<String, Object>> 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<Map<String, Object>> 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<Map<String, Object>> 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<Integer> 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<Integer> 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<Map<String, Object>> findIndikator(@Param("listIdIndikator") List<Integer> listIdIndikator);
@Query("select ik from IndikatorKinerja ik " + "where ik.statusEnabled is true "
+ "and ik.id in (:listIdIndikator)")
List<IndikatorKinerja> findIndikatorById(@Param("listIdIndikator") List<Integer> listIdIndikator);
}

View File

@ -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<Jabatan, Integer>
@Query("SELECT model from Jabatan model where model.jenisJabatanId = :jenisJabatanId ")
List<Jabatan> 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<Map<String, Object>> 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<Map<String, Object>> findModelJabatanByJenisUnit(@Param("jenisJabatanId") Integer jenisJabatanId,
@Param("unitKerjaId") Integer idUnitKerja);
@ -54,33 +50,37 @@ public interface JabatanDao extends PagingAndSortingRepository<Jabatan, Integer>
+ "and lower(jab.namaJabatan) not like ('plh%')")
List<Map<String, Object>> 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<Map<String, Object>> 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<Map<String, Object>> 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<Map<String, Object>> 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<Map<String, Object>> 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<Jabatan, Integer>
+ "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<Map<String, Object>> 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<Map<String, Object>> 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<Map<String, Object>> 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<Map<String, Object>> 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<Map<String, Object>> 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<Map<String, Object>> 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<Map<String, Object>> 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<Map<String, Object>> findJabatanByNamaJenisUnit(@Param("namaJabatan") String namaJabatan,
@Param("jenisJabatanId") Integer idJenisJabatan, @Param("unitKerjaId") Integer idUnitKerja);

View File

@ -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<ProdukFarmakologi, Integer> {
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<Map<String, Object>> 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<Map<String, Object>> 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<Map<String, Object>> 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<Map<String, Object>> findProdukFarmakologi();
@Query(allProduk + namaProduk + sortAllProduk)
public List<Map<String, Object>> findProdukFarmakologiByProduk(@Param("namaProduk") String namaProduk);
@Query(allProduk + kdProduk + sortAllProduk)
public List<Map<String, Object>> findProdukFarmakologiByKdProduk(@Param("kdProduk") Short kdProduk);
@Query(allProduk + namaProduk + kdProduk + sortAllProduk)
public List<Map<String, Object>> 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<Map<String, Object>> findProdukFarmakologiByProduk(@Param("namaProduk") String namaProduk,
@Param("kdProduk") Short kdProduk);
@Query(allProduk + listIdProduk + sortAllProduk)
public List<Map<String, Object>> findProdukFarmakologi(@Param("listProdukId") List<Integer> 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<Map<String, Object>> findProdukFarmakologi(@Param("listProdukId") List<Integer> 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<Integer> findDupProduk(@Param("patternText") String patternText, @Param("namaProduk") String namaProduk);
String notIdProduk = " and prf.id <> :produkId";
@Query(dupCheck)
public List<Integer> findDupProduk(@Param("patternText") String patternText,
@Param("namaProduk") String namaProduk);
@Query(dupCheck + notIdProduk)
public List<Integer> 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<Integer> findDupProduk(@Param("patternText") String patternText, @Param("namaProduk") String namaProduk,
@Param("produkId") Integer idProduk);
}

View File

@ -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<ProdukNakes, Integer> {
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<Map<String, Object>> 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<Map<String, Object>> 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<Map<String, Object>> 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<Map<String, Object>> 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<Map<String, Object>> findProdukNakes();
@Query(allProduk + namaProduk + sortAllProduk)
public List<Map<String, Object>> findProdukNakesByProduk(@Param("namaProduk") String namaProduk);
@Query(allProduk + kdProduk + sortAllProduk)
public List<Map<String, Object>> findProdukNakesByKdProduk(@Param("kdProduk") Short kdProduk);
@Query(allProduk + idProfesi + sortAllProduk)
public List<Map<String, Object>> findProdukNakesByProfesi(@Param("profesiId") Integer idProfesi);
@Query(allProduk + idProfesi + namaProduk + sortAllProduk)
public List<Map<String, Object>> 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<Map<String, Object>> findProdukNakesByProfesi(@Param("profesiId") Integer idProfesi,
@Param("namaProduk") String namaProduk);
@Query(allProduk + idProfesi + kdProduk + sortAllProduk)
public List<Map<String, Object>> 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<Map<String, Object>> findProdukNakesByProfesi(@Param("profesiId") Integer idProfesi,
@Param("kdProduk") Short kdProduk);
@Query(allProduk + namaProduk + kdProduk + sortAllProduk)
public List<Map<String, Object>> 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<Map<String, Object>> findProdukNakesByProduk(@Param("namaProduk") String namaProduk,
@Param("kdProduk") Short kdProduk);
@Query(allProduk + namaProduk + idProfesi + kdProduk + sortAllProduk)
public List<Map<String, Object>> 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<Map<String, Object>> findProdukNakesByProfesi(@Param("namaProduk") String namaProduk,
@Param("profesiId") Integer idProfesi, @Param("kdProduk") Short kdProduk);
@Query(allProduk + listIdProduk + sortAllProduk)
public List<Map<String, Object>> findProdukNakes(@Param("listProdukId") List<Integer> 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<Map<String, Object>> findProdukNakes(@Param("listProdukId") List<Integer> 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<Integer> findDupProduk(@Param("patternText") String patternText, @Param("namaProduk") String namaProduk,
+ "and prn.profesiId = :profesiId")
List<Integer> findDupProduk(@Param("patternText") String patternText, @Param("namaProduk") String namaProduk,
@Param("profesiId") Integer idProfesi);
@Query(dupCheck + notIdProduk)
public List<Integer> 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<Integer> findDupProduk(@Param("patternText") String patternText, @Param("namaProduk") String namaProduk,
@Param("profesiId") Integer idProfesi, @Param("produkId") Integer idProduk);
}

View File

@ -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<ProdukPerawat, Integer> {
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<Map<String, Object>> 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<Map<String, Object>> 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<Map<String, Object>> 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<Map<String, Object>> 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<Map<String, Object>> findProdukPerawat(@Param("listProdukId") List<Integer> listIdProduk);
@Query(allProduk + sortAllProduk)
public List<Map<String, Object>> findAllActive();
@Query(allProduk + namaProduk + sortAllProduk)
public List<Map<String, Object>> findAllActive(@Param("namaProduk") String namaProduk);
@Query(allProduk + kdKlasif + sortAllProduk)
public List<Map<String, Object>> findAllActive(@Param("kdKlasif") Short kdKlasif);
@Query(allProduk + namaProduk + kdKlasif + sortAllProduk)
public List<Map<String, Object>> findAllActive(@Param("namaProduk") String namaProduk,
@Param("kdKlasif") Short kdKlasif);
@Query(allProduk + listIdProduk + sortAllProduk)
public List<Map<String, Object>> findProdukPerawat(@Param("listProdukId") List<Integer> 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<Integer> findDupProduk(@Param("patternText") String patternText, @Param("namaProduk") String namaProduk,
+ "and prp.klasifikasi = :kdKlasif")
List<Integer> findDupProduk(@Param("patternText") String patternText, @Param("namaProduk") String namaProduk,
@Param("kdKlasif") Short kdKlasif);
@Query(dupCheck + notIdProduk)
public List<Integer> 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<Integer> findDupProduk(@Param("patternText") String patternText, @Param("namaProduk") String namaProduk,
@Param("kdKlasif") Short kdKlasif, @Param("produkId") Integer idProduk);
}

View File

@ -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<SkoringTindakanFarmakologi, String> {
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<Map<String, Object>> 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<Map<String, Object>> 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<Map<String, Object>> 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<Map<String, Object>> 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<String> 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<String> 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<String> 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<String> findDupSkoring(@Param("namaProduk") String namaProduk,
@Param("tglMulaiBerlaku") String tglMulaiBerlaku, @Param("patternText") String patternText,
@Param("noRec") String noRec);

View File

@ -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<SkoringTindakanMedis, String> {
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<Skor
+ "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')";
String kelompokKerja = " and sk.id in (:listSubunitKerjaId)";
String produk = " and lower(pr.namaProduk) like %:namaProduk%";
String detailProduk = " and lower(stm.detailProduk) like %:detailProduk%";
String statusVerifikasi = " and stm.statusVerifikasi = :isStatusVerifikasi";
String sortSearch = " order by sk.name asc," + "pr.namaProduk asc," + "stm.detailProduk asc, "
+ "stm.tanggalMulaiBerlaku desc, stm.tanggalPembaharuanData desc";
@Query(strAllEnabled + sortSearch)
+ "and to_char(stm.tanggalMulaiBerlaku,'yyyy-MM-dd') <= to_char(now(),'yyyy-MM-dd')"
+ " order by sk.name asc," + "pr.namaProduk asc," + "stm.detailProduk asc, "
+ "stm.tanggalMulaiBerlaku desc, stm.tanggalPembaharuanData desc")
List<Map<String, Object>> 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<Map<String, Object>> findAllEnabledByUnit(@Param("listSubunitKerjaId") List<Integer> 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<Map<String, Object>> 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<Map<String, Object>> 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<Map<String, Object>> 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<Map<String, Object>> findAllEnabledByUnitProduk(@Param("listSubunitKerjaId") List<Integer> 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<Map<String, Object>> findAllEnabledByUnitDetail(@Param("listSubunitKerjaId") List<Integer> 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<Map<String, Object>> findAllEnabledByUnitVerif(@Param("listSubunitKerjaId") List<Integer> 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<Map<String, Object>> 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<Map<String, Object>> 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<Map<String, Object>> 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<Map<String, Object>> findAllEnabledByUnitProdukDetail(
@Param("listSubunitKerjaId") List<Integer> 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<Map<String, Object>> findAllEnabledByUnitProdukVerif(
@Param("listSubunitKerjaId") List<Integer> 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<Map<String, Object>> findAllEnabledByUnitDetailVerif(
@Param("listSubunitKerjaId") List<Integer> 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<Map<String, Object>> 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<Map<String, Object>> findAllEnabledByUnitProdukDetailVerif(
@Param("listSubunitKerjaId") List<Integer> 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<String> 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<String> 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<String> 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<String> 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<Skor
List<Map<String, Object>> findSkoringLogbookDokter(@Param("bulan") String bulan,
@Param("listPegawaiId") List<Integer> listIdPegawai, @Param("listKsmId") List<Integer> 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<Map<String, Object>> findProdukScored();
/**
@ -188,7 +354,9 @@ public interface SkoringTindakanMedisDao extends PagingAndSortingRepository<Skor
* Daftar ID Kelompok Kerja
* @return Daftar id produk sudah dilakukan skor remunerasi
*/
@Query(strProdukScored + whrKelompokKerja + srtKkProduk)
@Query("select distinct new Map(stm.kelompokKerjaId as kelompokKerjaId, stm.produkId as produkId) "
+ "from SkoringTindakanMedis stm " + "where stm.statusEnabled is true "
+ "and stm.kelompokKerjaId in (:listKelompokKerjaId) " + "order by stm.kelompokKerjaId, stm.produkId")
List<Map<String, Object>> findProdukScored(@Param("listKelompokKerjaId") List<Integer> listIdKelompokKerja);
}

View File

@ -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<SkoringTindakanNakes, String> {
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<Skor
+ "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') ";
String produk = "and lower(prn.namaProduk) like %:namaProduk% ";
String statusVerifikasi = "and stn.statusVerifikasi = :isVerif ";
String profesi = "and pfs.id = :profesiId ";
String sortSearch = "order by pfs.namaProfesi asc, " + "prn.namaProduk asc, "
+ "stn.tanggalMulaiBerlaku desc, stn.tanggalPembaharuanData desc";
@Query(strAllEnabled + sortSearch)
+ "and to_char(stn.tanggalMulaiBerlaku,'yyyy-MM-dd') <= to_char(now(),'yyyy-MM-dd') "
+ "order by pfs.namaProfesi asc, " + "prn.namaProduk asc, "
+ "stn.tanggalMulaiBerlaku desc, stn.tanggalPembaharuanData desc")
List<Map<String, Object>> 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<Map<String, Object>> 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<Map<String, Object>> 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<Map<String, Object>> 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<Map<String, Object>> 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<Map<String, Object>> 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<Map<String, Object>> 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<Map<String, Object>> 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<String> 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<String> 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<String> 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<String> findDupSkoring(@Param("namaProduk") String namaProduk, @Param("profesiId") Integer idProfesi,
@Param("tglMulaiBerlaku") String tglMulaiBerlaku, @Param("patternText") String patternText,
@Param("noRec") String noRec);

View File

@ -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<SkoringTindakanPerawat, String> {
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<Map<String, Object>> 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<Map<String, Object>> 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<Map<String, Object>> 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<Map<String, Object>> 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<Map<String, Object>> 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<Map<String, Object>> 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<Map<String, Object>> 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<Map<String, Object>> 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<String> 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<String> 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<String> 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<String> findDupSkoring(@Param("namaProduk") String namaProduk,
@Param("tglMulaiBerlaku") String tglMulaiBerlaku, @Param("patternText") String patternText,
@Param("noRec") String noRec);