Files
smartproc-be/src/main/java/com/iconplus/smartproc/repository/DrpPengadaanRepository.java
2023-06-02 15:12:29 +07:00

103 lines
5.0 KiB
Java

package com.iconplus.smartproc.repository;
import com.iconplus.smartproc.model.entity.DrpPengadaan;
import com.iconplus.smartproc.model.projection.DrpPengadaanView;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.stereotype.Repository;
import java.util.Optional;
@Repository
public interface DrpPengadaanRepository extends JpaRepository<DrpPengadaan, Long> {
@Query(value = "SELECT dp.id as id, " +
"dp.nomor as nomor, " +
"dp.drpId as drpId, " +
"dp.namaPengadaan as namaPengadaan, " +
"dp.hpe as hpe, " +
"dp.pagu as pagu, " +
"dp.isActive as isActive, " +
"dp.rencanaTanggal as rencanaTanggal, " +
"dp.targetTanggal as targetTanggal, " +
"dp.jenisKontrakId as jenisKontrakId, " +
"jk.jenisKontrak as jenisKontrak, " +
"dp.jenisPengadaanId as jenisPengadaanId, " +
"jp.jenisPengadaan as jenisPengadaan, " +
"dp.lokasiId as lokasiId, " +
"l.lokasi as lokasi, " +
"dp.metodePengadaanId as metodePengadaanId, " +
"mp.metodePengadaan as metodePengadaan, " +
"dp.metodePenyampaianId as metodePenyampaianId, " +
"mpi.metodePenyampaian as metodePenyampaian, " +
"dp.strategiPengadaanId as strategiPengadaanId, " +
"sp.strategiPengadaan as strategiPengadaan, " +
"dp.sumberDanaId as sumberDanaId, " +
"sd.sumberDana as sumberDana, " +
"dp.supplyPositioningMatrixId as supplyPositioningMatrixId, " +
"spm.supplyPositioningMatrix as supplyPositioningMatrix, " +
"dp.unitInisiatorId as unitInisiatorId, " +
"ui.unitInisiator as unitInisiator " +
"FROM DrpPengadaan dp " +
"JOIN JenisKontrak jk ON jk.id = dp.jenisKontrakId " +
"JOIN JenisPengadaan jp ON jp.id = dp.jenisPengadaanId " +
"JOIN Lokasi l ON l.id = dp.lokasiId " +
"JOIN MetodePengadaan mp ON mp.id = dp.metodePengadaanId " +
"JOIN MetodePenyampaian mpi ON mpi.id = dp.metodePenyampaianId " +
"JOIN StrategiPengadaan sp ON sp.id = dp.strategiPengadaanId " +
"JOIN SumberDana sd ON sd.id = dp.sumberDanaId " +
"JOIN SupplyPositioningMatrix spm ON spm.id = dp.supplyPositioningMatrixId " +
"JOIN UnitInisiator ui ON ui.id = dp.unitInisiatorId " +
"WHERE dp.isDelete = false " +
"AND dp.drpId = :drpId " +
"ORDER BY dp.id")
Page<DrpPengadaanView> getListDrpPengadaan(Long drpId, Pageable pageable);
@Query(value = "SELECT dp.id as id, " +
"dp.nomor as nomor, " +
"dp.drpId as drpId, " +
"dp.namaPengadaan as namaPengadaan, " +
"dp.hpe as hpe, " +
"dp.pagu as pagu, " +
"dp.isActive as isActive, " +
"dp.rencanaTanggal as rencanaTanggal, " +
"dp.targetTanggal as targetTanggal, " +
"dp.jenisKontrakId as jenisKontrakId, " +
"jk.jenisKontrak as jenisKontrak, " +
"dp.jenisPengadaanId as jenisPengadaanId, " +
"jp.jenisPengadaan as jenisPengadaan, " +
"dp.lokasiId as lokasiId, " +
"l.lokasi as lokasi, " +
"dp.metodePengadaanId as metodePengadaanId, " +
"mp.metodePengadaan as metodePengadaan, " +
"dp.metodePenyampaianId as metodePenyampaianId, " +
"mpi.metodePenyampaian as metodePenyampaian, " +
"dp.strategiPengadaanId as strategiPengadaanId, " +
"sp.strategiPengadaan as strategiPengadaan, " +
"dp.sumberDanaId as sumberDanaId, " +
"sd.sumberDana as sumberDana, " +
"dp.supplyPositioningMatrixId as supplyPositioningMatrixId, " +
"spm.supplyPositioningMatrix as supplyPositioningMatrix, " +
"dp.unitInisiatorId as unitInisiatorId, " +
"ui.unitInisiator as unitInisiator " +
"FROM DrpPengadaan dp " +
"JOIN JenisKontrak jk ON jk.id = dp.jenisKontrakId " +
"JOIN JenisPengadaan jp ON jp.id = dp.jenisPengadaanId " +
"JOIN Lokasi l ON l.id = dp.lokasiId " +
"JOIN MetodePengadaan mp ON mp.id = dp.metodePengadaanId " +
"JOIN MetodePenyampaian mpi ON mpi.id = dp.metodePenyampaianId " +
"JOIN StrategiPengadaan sp ON sp.id = dp.strategiPengadaanId " +
"JOIN SumberDana sd ON sd.id = dp.sumberDanaId " +
"JOIN SupplyPositioningMatrix spm ON spm.id = dp.supplyPositioningMatrixId " +
"JOIN UnitInisiator ui ON ui.id = dp.unitInisiatorId " +
"WHERE dp.isDelete = false " +
"AND dp.id = :id")
Optional<DrpPengadaanView> getDrpPengadaanById(Long id);
Optional<DrpPengadaan> findByIdAndIsDeleteFalse(Long id);
}