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

327 lines
12 KiB
Java

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<ItPerbaikan, String>{
@Query("select a.noOrder from ItPerbaikan a order by a.noOrder asc")
List<String> 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<Map<String, Object>> 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<Map<String, Object>> 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<Map<String, Object>> 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<Map<String, Object>> 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<Map<String, Object>> 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<Map<String, Object>> 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<Map<String, Object>> 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<String, Object> 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<String, Object> 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<Map<String, Object>> 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<Map<String, Object>> 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<Map<String, Object>> 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<Map<String, Object>> 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<Map<String, Object>> 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<Map<String, Object>> 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<Map<String, Object>> getLaporanPerbaikanIT(@Param("tanggalAwal") String tanggalAwal, @Param("tanggalAkhir") String tanggalAkhir,@Param("ruanganId") Integer ruanganId,@Param("statusPekerjaan") Integer statusPekerjaan);
}