2021-01-07 11:34:56 +07:00

136 lines
8.1 KiB
Java

package com.jasamedika.medifirst2000.dao;
import java.util.List;
import java.util.Map;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
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.dto.AsetDto;
import com.jasamedika.medifirst2000.entities.RegistrasiAset;
import com.jasamedika.medifirst2000.entities.StrukOrder;
/**
* Repository class for Departemen
*
* @author Roberto
*/
@Repository("RegistrasiAsetDao")
public interface RegistrasiAsetDao
extends PagingAndSortingRepository<RegistrasiAset, String>, JpaSpecificationExecutor<RegistrasiAset> {
@Query("select count(e) from RegistrasiAset e ")
int countRegistrasiAset();
@Query("select NEW com.jasamedika.medifirst2000.entities.RegistrasiAset(p.noRec,p.noRegisterAset,r) from RegistrasiAset p left join p.ruangan r where p.strukPelayananDetail.noRec=:noRec ")
List<RegistrasiAset> findByStrukPelayananDetil(@Param("noRec") String noRec);
@Query("select NEW com.jasamedika.medifirst2000.entities.RegistrasiAset(p.noRec,p.noRegisterAset,p.produk,p.strukPelayanan,p.strukPelayananDetail,p.asalProduk) from RegistrasiAset p where p.noRec=:noRec ")
RegistrasiAset findByNoRec(@Param("noRec") String noRec);
@Query("select p from RegistrasiAset p where p.noRec=:noRec ")
RegistrasiAset findById(@Param("noRec") String noRec);
// registrasi aset ambulance - sarpras
@Query("select NEW Map(rgs.noRec as noRecAset,rgs.noRegisterAset as noRegis,rgs.noPolisi as noPolisi,r.id as idRuangan,r.namaRuangan as namaRuangan,"
+ "p.id as idProduk,p.namaProduk as namaProduk) from RegistrasiAset rgs,Ruangan r,Produk p where p.id=rgs.produkId "
+ "and r.id=rgs.ruanganId and r.id in (Select cast(s.nilaiField as int) from SettingDataFixed s where s.namaField='KdRuanganAsetAmbulance')")
List<AsetDto> findAssetAmbulance();
// registrasi aset kendaraan dinas & pejabat - sarpras
@Query("select NEW Map(rgs.noRec as noRecAset,rgs.noRegisterAset as noRegis,rgs.noPolisi as noPolisi,r.id as idRuangan,r.namaRuangan as namaRuangan,"
+ "p.id as idProduk,p.namaProduk as namaProduk) from RegistrasiAset rgs,Produk p,Ruangan r where p.id=rgs.produkId "
+ "and r.id=rgs.ruanganId and r.id in (Select cast(s.nilaiField as int) from SettingDataFixed s where s.namaField='KdRuanganKendaraanDinas')")
List<AsetDto> findAssetKendaraanDinas();
@Query("select new Map( "
+ "registrasiAset.noRegisterAset as noRegisterAset,produk.kdProduk as kdProduk,registrasiAset.kdBmn as kodeBmn, "
+ "registrasiAset.kdAspac as kdAspak, "
+ "registrasiAset.kdRsabhk as kdRs,"
+ "produk.namaProduk as namaProduk,"
+ "satuan.satuanStandar as satuan,"
+ "satuan.id as satuanStandarId,"
+ "jp.jenisProduk as jenisProduk,"
+ "jp.id as jenisProdukId,"
+ "djp.detailJenisProduk as detailJenisProduk,"
+ "djp.id as detailJenisProdukId,"
+ "kelompokAset.id as kelompokAsetId,"
+ "kelompokAset.kelompokAset as kelompokAset,"
+ "typeProduk.id as typeProdukId,"
+ "merkProduk.id as merkProdukId,"
+ "merkProduk.merkProduk as merkProduk,"
+ "registrasiAset.noSeri as noSeri,"
+ "registrasiAset.dayaListrik as dayaListrik,"
+ "registrasiAset.klasifikasiTeknologi as klasifikasiTeknologi,"
+ "registrasiAset.hargaPerolehan as hargaPerolehan,"
+ "supplier.id as supplierId,"
+ "supplier.namaRekanan as namaSupplier,"
+ "registrasiAset.tahunPerolehan as tahunPerolehan,"
+ "registrasiAset.usiaTeknis as usiaTeknis,"
+ "registrasiAset.usiaPakai as usiaPakai,"
+ "registrasiAset.sisaUmur as sisaUmur,"
+ "registrasiAset.keteranganLainnya as spesifikasi,"
+ "registrasiAset.image as imageUrl"
+ ")"
+ "from RegistrasiAset registrasiAset "
+ "left join registrasiAset.produk produk "
+ "left join registrasiAset.satuanStandar satuan "
+ "left join produk.detailJenisProduk djp "
+ "left join djp.jenisProduk jp "
+ "left join registrasiAset.kelompokAset kelompokAset "
+ "left join registrasiAset.supplier supplier "
+ "left join registrasiAset.typeProduk typeProduk "
+ "left join registrasiAset.merkProduk merkProduk where registrasiAset.noRec=:noRec ")
Map<String,Object> findByNoRecDetail(@Param("noRec") String noRec);
@Query("select new map ( produk.namaProduk as namaProduk,produk.id as idProduk ) "
+ " from RegistrasiAset registerAset " + " left join registerAset.produk produk "
+ " left join registerAset.typeProduk typeProduk " + " left join registerAset.merkProduk merkProduk "
+ " where registerAset.ruanganId " + " in (:ruanganId) group by produk.namaProduk,produk.id order by produk.namaProduk asc")
List<Map<String, Object>> getAsetByRuangan(@Param("ruanganId") Integer ruanganId);
@Query("select new map ( " + " coalesce(typeProduk.typeProduk,'-') as typeProduk,coalesce(registerAset.noSeri,'-') as noSeri, "
+ " coalesce(merkProduk.merkProduk,'-') as merkProduk, "
+ " registerAset.noRec as noRec,registerAset.noRegisterAset as noRegisterAset,produk.namaProduk as namaProduk,produk.id as idProduk ) "
+ " from RegistrasiAset registerAset " + " left join registerAset.produk produk "
+ " left join registerAset.typeProduk typeProduk " + " left join registerAset.merkProduk merkProduk "
+ " where registerAset.ruanganId " + " in (:ruanganId) and produk.id=:produkId order by registerAset.noRegisterAset desc")
List<Map<String, Object>> getAsetByProduk(@Param("ruanganId") Integer ruanganId,@Param("produkId") Integer produkId);
@Query("select new Map(strukOrder.noOrder as noOrder,strukOrder.tglOrder as tglOrder,strukOrder.keteranganOrder as keterangan,coalesce(statusPekerjaan.statusPekerjaan,'-') as statusPekerjaan) from PlanningPelayanan planningPelayanan "
+ "left join planningPelayanan.strukPlaning strukPlanning "
+ "left join planningPelayanan.strukOrder strukOrder "
+ "left join planningPelayanan.registrasiAset registerAsset "
+ "left join registerAsset.produk produk "
+ "left join strukPlanning.statusPekerjaan statusPekerjaan "
+ "where strukOrder.ruanganId=:ruanganId and registerAsset.noRec=:noRec "
+ "group by strukOrder.noOrder,strukOrder.tglOrder,strukOrder.keteranganOrder,statusPekerjaan.statusPekerjaan "
+ "order by strukOrder.noOrder desc")
List<Map<String,Object>> findHistoryPerbaikan(@Param("noRec") String noRec,@Param("ruanganId") Integer ruanganId);
@Query("select strukOrder from PlanningPelayanan planningPelayanan "
+ "left join planningPelayanan.strukPlaning strukPlanning "
+ "left join planningPelayanan.strukOrder strukOrder "
+ "left join planningPelayanan.registrasiAset registerAsset "
+ "left join registerAsset.produk produk "
+ "left join strukPlanning.statusPekerjaan statusPekerjaan where registerAsset.noRec=:noRec ")
List<StrukOrder> findStrukOrderByNoRec(@Param("noRec") String noRec);
@Query("select new map(p.id as noRec, p.format as format,p.nomor as nomor,p.kategori as kategori,p.namaFile as namaFile,p.tanggal as tanggal) from HistoryAlat p where p.kategori=:kategori and p.registrasiAsetId=:noRec ")
List<Map<String,Object>> historySertifikat(@Param("noRec") String noRec,@Param("kategori") String kategori);
@Query("select new map(p.id as noRec, p.format as format,p.nomor as nomor,p.kategori as kategori,p.namaFile as namaFile,p.tanggal as tanggal) from HistoryAlat p where p.id=:id ")
Map<String, Object> getFormatDownload(@Param("id") Integer id);
@Query("select new map(p.id as noRec, p.format as format,p.nomor as nomor,p.kategori as kategori,p.namaFile as namaFile,p.tanggal as tanggal) from HistoryAlat p left join p.registrasiAset registrasiAset where registrasiAset.noRec=:noRec and p.kategori=:kategori ")
List<Map<String,Object>> findAsetByRuanganList(@Param("noRec") String noRec, @Param("kategori") String kategori);
@Query("select new map(p.id as noRec, p.format as format,p.nomor as nomor,p.kategori as kategori,p.namaFile as namaFile,p.tanggal as tanggal) from HistoryAlat p left join p.registrasiAset registrasiAset where registrasiAset.noRec=:noRec ")
List<Map<String,Object>> findAsetByRuanganList(@Param("noRec") String noRec);
}