package com.jasamedika.medifirst2000.dao; import java.util.List; import java.util.Map; import org.springframework.data.jpa.repository.Query; import org.springframework.data.repository.PagingAndSortingRepository; import org.springframework.data.repository.query.Param; import org.springframework.stereotype.Repository; import com.jasamedika.medifirst2000.entities.ItPelaksanaanPerbaikan; @Repository("itPelaksanaanPerbaikanDao") public interface ItPelaksanaanPerbaikanDao extends PagingAndSortingRepository{ @Query("select media from ItPelaksanaanPerbaikan media " + "left join media.itPerbaikan itPerbaikan " + "where itPerbaikan.noRec =:noRec ") ItPelaksanaanPerbaikan getByItPerbaikan(@Param("noRec")String noRec); //get all pelaksanaanperbaikan @Query("select new map(itPerbaikan.noRec as noRec, " + " to_char(itPerbaikan.tglPesan, 'yyyy-mm-dd') as tglPesan, " + " itPerbaikan.keluhan as keluhan, " + " pelapor.id as idPelapor, pelapor.namaLengkap as namaPelapor, " + " strukOrder.noRec as noRecStrukOrder, " + " strukOrder.keteranganOrder as keteranganOrder, " + " ruangan.id as idRuangan, ruangan.namaRuangan as namaRuangan, " + " produk.id as idProduk, produk.namaProduk as namaProduk) " + " from ItPerbaikan itPerbaikan " + " left join itPerbaikan.strukOrder strukOrder " + " left join strukOrder.ruangan ruangan " + " left join itPerbaikan.itStatusPerbaikan itStatusPerbaikan " + " left join itPerbaikan.pelapor pelapor " + " left join itPerbaikan.registrasiAset registrasiAset " + " left join registrasiAset.produk produk where " + " itPerbaikan.statusEnabled in('true') " + " and date(itPerbaikan.tglPesan) between date(:startDate) and date(:endDate)") List> getPelaksanaanPerbaikanAll(@Param("startDate")String startDate, @Param("endDate")String endDate); //get pelaksanaanperbaikan by norec @Query("select new map(itPerbaikan.noRec as noRec, " + " to_char(itPerbaikan.tglPesan, 'yyyy-mm-dd') as tglPesan, " + " itPerbaikan.keluhan as keluhan, " + " pelapor.id as idPelapor, pelapor.namaLengkap as namaPelapor, " + " strukOrder.noRec as noRecStrukOrder, " + " strukOrder.keteranganOrder as keteranganOrder, " + " ruangan.id as idRuangan, ruangan.namaRuangan as namaRuangan, " + " produk.id as idProduk, produk.namaProduk as namaProduk, "+ " itPelaksanaanPerbaikan.analisaTeknisi as analisaTeknisi, "+ " itPelaksanaanPerbaikan.analisaKerusakan as analisaKerusakan, "+ " itPelaksanaanPerbaikan.tglMulaiPeriksa as tglMulaiPeriksa )"+ " from ItPerbaikan itPerbaikan " + " left join itPerbaikan.strukOrder strukOrder " + " left join strukOrder.ruangan ruangan " + " left join itPerbaikan.itStatusPerbaikan itStatusPerbaikan " + " left join itPerbaikan.pelapor pelapor " + " left join itPerbaikan.registrasiAset registrasiAset " + " left join registrasiAset.produk produk "+ " left join itPerbaikan.itPelaksanaanPerbaikan itPelaksanaanPerbaikan"+ " where " + " itPerbaikan.statusEnabled in('true') " + " and itPerbaikan.noRec=:noRec") List> getPelaksanaanPerbaikanByNoRec(@Param("noRec")String noRec); //statusperbaikan @Query("select new map(itStatusPerbaikan.noRec as noRecStatusPerbaikan, " + " itStatusPerbaikan.statusPengerjaan as statusPengerjaan, " + " itStatusPerbaikan.statusRespon as statusRespon, " + " itStatusPerbaikan.waktuRespon as waktuRespon, " + " itStatusPerbaikan.ketStatusRespon as ketStatusRespon) " + " from ItStatusPerbaikan itStatusPerbaikan " + " left join itStatusPerbaikan.itPerbaikan itPerbaikan " + " where itPerbaikan.noRec=:noRec") List> getStatusPerbaikanByPerbaikan(@Param("noRec")String noRec); //teknisi @Query("select new map(a.noRec as noRecListTeknisi, " + " teknisi.id as idTeknisi, teknisi.namaLengkap as namaTeknisi) " + " from ItPelaksanaanPerbaikanListTeknisi a " + " left join a.teknisi teknisi " + " left join a.itPelaksanaanPerbaikan itPelaksanaanPerbaikan " + " left join itPelaksanaanPerbaikan.itPerbaikan itPerbaikan " + " where itPerbaikan.noRec=:noRec and "+ " (a.statusEnabled is null or a.statusEnabled is true)") List> getTeknisiByPerbaikan(@Param("noRec")String noRec); //sukucadang @Query("select new map(a.noRec as noRecSukuCadang, " + " a.qty as qty, " + " stokProdukGlobal.id as idStockProdukGlobal, " + " produk.id as idProduk, " + " produk.namaProduk as namaProduk, " + " tujuanRuangan.id as idRuangTujuan, " + " tujuanRuangan.namaRuangan as namaRuangan) " + " from ItPelaksanaanPerbaikanSukuCadang a " + " left join a.itPelaksanaanPerbaikan itPelaksanaanPerbaikan " + " left join a.stokProdukGlobal stokProdukGlobal " + " left join stokProdukGlobal.produk produk " + " left join a.tujuanRuangan tujuanRuangan " + " left join itPelaksanaanPerbaikan.itPerbaikan itPerbaikan " + " where itPerbaikan.noRec=:noRec") List> getSukuCadang(@Param("noRec")String noRec); }