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; import com.jasamedika.medifirst2000.entities.ItPerbaikan; @Repository("itPerbaikanDao") public interface ItPerbaikanDao extends PagingAndSortingRepository{ @Query("select a.noOrder from ItPerbaikan a order by a.noOrder asc") List noOrder(); @Query("select distinct NEW Map (" + "b.kdRuangan as kdRuangan, " + "b.namaRuangan as namaRuangan, " + "b.id as id) " + "from RegistrasiAset a " + "left join a.ruangan b " + "where b.id is not null order by b.id") List> getRuanganMaintenance(); @Query("select distinct NEW Map (" + "a.noRec as noRec, " + "a.noSeri as noSeri, " + "b.kdRuangan as kdRuangan, " + "b.namaRuangan as namaRuangan, " + "c.kdProduk as kdProduk, " + "c.namaProduk as namaProduk, " + "d.merkProduk as merkProduk, " + "e.typeProduk as typeProduk, " + "g.jenisProduk as kategoriKerusakan, " + "g.id as kategoriKerusakanId) " + "from RegistrasiAset a " + "left join a.ruangan b " + "left join a.produk c " + "left join a.merkProduk d " + "left join a.typeProduk e " + "left join c.detailJenisProduk f " + "left join f.jenisProduk g " + "left join g.kelompokProduk h " + "where b.id=:id and b.id is not null and h.id = 23 ") List> getAllRegistrasiByRuangan( @Param("id") Integer id); @Query("select distinct NEW Map (" + "a.noRec as noRec, " + "a.noSeri as noSeri, " + "b.kdRuangan as kdRuangan, " + "b.namaRuangan as namaRuangan, " + "c.kdProduk as kdProduk, " + "c.namaProduk as namaProduk, " + "d.merkProduk as merkProduk, " + "e.typeProduk as typeProduk, " + "g.jenisProduk as kategoriKerusakan, " + "g.id as kategoriKerusakanId) " + "from RegistrasiAset a " + "left join a.ruangan b " + "left join a.produk c " + "left join a.merkProduk d " + "left join a.typeProduk e " + "left join c.detailJenisProduk f " + "left join f.jenisProduk g " + "left join g.kelompokProduk h " + "where a.noRec=:noRec ") List> getAllRegistrasiByNoRec( @Param("noRec") String noRec); @Query("select NEW Map (" + "a.id as id, " + "a.namaLengkap as namaLengkap) " + "from Pegawai a " + "where a.ruanganId=:id order by a.namaLengkap") List> getPegawaiByRuangan( @Param("id") Integer id); @Query("select NEW Map (" + "a.id as id, " + "a.namaLengkap as namaLengkap) " + "from Pegawai a " + "where a.jenisPegawaiId=10 order by a.namaLengkap") List> getTeknisi(); @Query("select NEW Map (" + "a.id as id, " + "b.namaProduk as namaProduk, " + "c.satuanStandar as satuanStandar, " + "a.hargaNetto1 as hargaNetto1) " + "from StokProdukGlobal a " + "left join a.produk b " + "left join b.satuanStandar c " + "left join b.detailJenisProduk d " + "where a.ruanganId=229 and b.detailJenisProdukId=449") List> getSukuCadang(); @Query("select NEW Map (" + "a.noRec as noRec, " + "a.noOrder as noOrder, " + "d.kdProduk as kdProduk, " + "d.namaProduk as namaProduk, " + "a.tglPesan as tglPesan, " + "e.merkProduk as merkProduk, " + "f.typeProduk as typeProduk, " + "c.noSeri as noSeri, " + "a.keluhan as keluhan, " + "b.namaLengkap as pelapor, " + "h.namaRuangan as namaRuangan, " + "g.statusPengerjaan as statusPengerjaan, " + "g.statusRespon as statusRespon, " + "g.ketStatusRespon as ketStatusRespon) " + "from ItPerbaikan a " + "left join a.pelapor b " + "left join a.registrasiAset c " + "left join c.produk d " + "left join c.merkProduk e " + "left join c.typeProduk f " + "left join a.itStatusPerbaikan g " + "left join b.ruangan h " + "where g.statusRespon=0 " + "and (a.statusEnabled is null or a.statusEnabled is true) " + "order by a.tglPesan desc") List> getAllPermintaanPerbaikan(); @Query("select NEW Map (" + "a.noRec as noRec, " + "b.namaLengkap as pelapor, " + "c.statusPengerjaan as statusPengerjaan, " + "c.statusRespon as statusRespon, " + "c.waktuRespon as waktuRespon, " + "c.ketStatusRespon as keteranganRespon, " + "e.id as ruanganId, " + "b.id as pelaporId, " + "substring(f.keteranganOrder,31,20) as ketKerusakan," + "a.noOrder as noOrder," + "a.tglPesan as tglPesan, " + "d.noRec as noRecAsset, " + "a.keluhan as keluhan, " + "g.analisaTeknisi as analisaTeknisi, " + "g.analisaKerusakan as analisaKerusakan, " + "g.jenisPekerjaan as jenisPekerjaan, " + "g.tglMulaiPeriksa as tglMulaiPeriksa )" + "from ItPerbaikan a " + "left join a.pelapor b " + "left join a.itStatusPerbaikan c " + "left join a.registrasiAset d " + "left join b.ruangan e " + "left join a.strukOrder f " + "left join a.itPelaksanaanPerbaikan g " + "where a.noRec=:noRec " + "and (a.statusEnabled is null or a.statusEnabled is true) ") Map getOnePermintaanPerbaikan( @Param("noRec") String noRec); @Query("select a from ItPelaksanaanPerbaikan a " + "left join a.itPelaksanaanPerbaikanSukuCadang b " + "left join a.itPelaksanaanPerbaikanListTeknisi c " + "where a.itPerbaikanId=:noRec") ItPelaksanaanPerbaikan getAllItPerbaikanByNoRec( @Param("noRec") String noRec); @Query("select NEW Map (" + "a.tglPesan as tglPesan, " + "e.namaProduk as namaProduk, " + "d.namaRuangan as namaRuangan, " + "c.namaLengkap as namaLengkap, " + "a.keluhan as keluhan) " + "from ItPerbaikan a " + "left join a.registrasiAset b " + "left join a.pelapor c " + "left join c.ruangan d " + "left join b.produk e " + "where a.noRec=:noRec") Map getAlertPermintaanPerbaikan( @Param("noRec") String noRec); @Query("select NEW Map (" + "a.id as id, " + "a.noRec as noRec, " + "a.noOrder as noOrder, " + "d.kdProduk as kdProduk, " + "d.namaProduk as namaProduk, " + "a.tglPesan as tglPesan, " + "e.merkProduk as merkProduk, " + "f.typeProduk as typeProduk, " + "c.noSeri as noSeri, " + "a.keluhan as keluhan, " + "b.namaLengkap as pelapor, " + "h.namaRuangan as namaRuangan, " + "g.statusPengerjaan as statusPengerjaan, " + "g.statusRespon as statusRespon, " + "g.ketStatusRespon as ketStatusRespon, " + "h.id as ruanganId, " + "substring(i.keteranganOrder,31,20) as ketKerusakan) " + "from ItPerbaikan a " + "left join a.pelapor b " + "left join a.registrasiAset c " + "left join c.produk d " + "left join c.merkProduk e " + "left join c.typeProduk f " + "left join a.itStatusPerbaikan g " + "left join b.ruangan h " + "left join a.strukOrder i " + "where date(a.tglPesan) between date(:tanggalAwal) and date(:tanggalAkhir) " + "and (a.statusEnabled is null or a.statusEnabled is true) " + "order by a.tglPesan desc") List> getAllPermintaanPerbaikanRev1(@Param("tanggalAwal") String tanggalAwal, @Param("tanggalAkhir") String tanggalAkhir); @Query("select NEW Map (" + "a.id as id, " + "a.noRec as noRec, " + "a.noOrder as noOrder, " + "d.kdProduk as kdProduk, " + "d.namaProduk as namaProduk, " + "a.tglPesan as tglPesan, " + "e.merkProduk as merkProduk, " + "f.typeProduk as typeProduk, " + "c.noSeri as noSeri, " + "a.keluhan as keluhan, " + "b.namaLengkap as pelapor, " + "h.namaRuangan as namaRuangan, " + "g.statusPengerjaan as statusPengerjaan, " + "g.statusRespon as statusRespon, " + "g.ketStatusRespon as ketStatusRespon, " + "h.id as ruanganId, " + "substring(i.keteranganOrder,31,20) as ketKerusakan) " + "from ItPerbaikan a " + "left join a.pelapor b " + "left join a.registrasiAset c " + "left join c.produk d " + "left join c.merkProduk e " + "left join c.typeProduk f " + "left join a.itStatusPerbaikan g " + "left join b.ruangan h " + "left join a.strukOrder i " + "where h.id = :ruanganId " + "and (a.statusEnabled is null or a.statusEnabled is true) " + "order by a.tglPesan desc") List> getPermintaanPerbaikanByRuanganId(@Param("ruanganId") Integer ruanganId); @Query("select distinct new Map( jp.jenisProduk as kategoriKerusakan, jp.id as id)" + "from JenisProduk jp " + "left join jp.kelompokProduk kp " + "where kp.id = 23 " + "order by jp.jenisProduk asc") List> getKategoriKerusakan(); @Query("select NEW Map (r.noRegisterAset as noRegisterAset,r.noRec as noRec,r.noSeri as noSeri,jp.jenisProduk as jenisProduk, " + "p.namaProduk as namaProduk,p.id as produkId, " + "m.merkProduk as merkProduk,t.typeProduk as typeProduk) " + "from RegistrasiAset r " + "left join r.produk p " + "left join p.detailJenisProduk djp " + "left join djp.jenisProduk jp " + "left join jp.kelompokProduk k " + "left join r.merkProduk m " + "left join r.typeProduk t " + "where jp.id = :id " + "order by jp.jenisProduk asc") List> getAssetByKelompokProduk(@Param("id") Integer id); @Query("select model from ItPerbaikan model where model.noRec=:noRec and (model.statusEnabled is null or model.statusEnabled is true)") public ItPerbaikan findByNoRec(@Param("noRec") String noRec); @Query("select NEW Map (" + "count(a.noRec) as jumlahRequest, " + "e.namaRuangan as namaRuangan) " + "from ItPerbaikan a " + "left join a.pelapor b " + "left join a.itStatusPerbaikan c " + "left join b.ruangan e " + "where c.statusPengerjaan = 0 " + "and (a.statusEnabled is null or a.statusEnabled is true) " + "group by e.namaRuangan ") List> getNotifikasRequestiItPerbaikan(); @Query("select NEW Map (" + "count(a.noRec) as jumlahRespon, " + "e.namaRuangan as namaRuangan, " + "c.statusRespon as statusRespon, " + "c.ketStatusRespon as ketStatusRespon," + "c.statusPengerjaan as statusPengerjaan ) " + "from ItPerbaikan a " + "left join a.pelapor b " + "left join a.itStatusPerbaikan c " + "left join b.ruangan e " + "where c.statusRespon > 0 " + "and (a.statusEnabled is null or a.statusEnabled is true) " + "group by e.namaRuangan,c.statusRespon,c.ketStatusRespon,c.statusPengerjaan") List> getNotifikasResponItPerbaikan(); // @Query("select NEW Map (" // + "a.noRec as noRec, " // + "a.noOrder as noOrder," // + "b.namaLengkap as pelapor, " // + "c.statusPengerjaan as statusPengerjaan, " // + "c.statusRespon as statusRespon, " // + "c.waktuRespon as waktuRespon, " // + "c.ketStatusRespon as keteranganRespon, " // + "e.namaRuangan as namaRuangan, " // + "e.id as ruanganId, " // + "a.keluhan as keluhan, " // + "a.tglPesan as tglPesan, " // + "g.tglMulaiPeriksa as tglMulaiPeriksa, " // + "b.id as pelaporId, " // + "d.noRec as noRecAsset, " // + "g.analisaTeknisi as analisaTeknisi, " // + "g.analisaKerusakan as analisaKerusakan, " // + "g.jenisPekerjaan as jenisPekerjaan) " // + "from ItPerbaikan a " // + "left join a.pelapor b " // + "left join a.itStatusPerbaikan c " // + "left join a.registrasiAset d " // + "left join b.ruangan e " // + "left join a.itPelaksanaanPerbaikan g " // + "where a.noRec=:noRec " // + "and (a.statusEnabled is null or a.statusEnabled is true) " // + "") // List> getLaporanPerbaikanIT(@Param("tanggalAwal") String tanggalAwal, @Param("tanggalAkhir") String tanggalAkhir,@Param("ruanganId") Integer ruanganId,@Param("statusPekerjaan") Integer statusPekerjaan); }