add get pengadaan by id

This commit is contained in:
dirgantarasiahaan 2023-05-31 15:40:38 +07:00
parent 6deddb3f15
commit 0257931552
11 changed files with 233 additions and 34 deletions

View File

@ -23,19 +23,22 @@ public class DrpPengadaanController {
private final DeleteDrpPengadaanService deleteDrpPengadaanService;
private final DeleteDokumenPendukungService deleteDokumenPendukungService;
private final EditUploadDrpPengadaanService editUploadDrpPengadaanService;
private final GetDrpPengadaanService getDrpPengadaanService;
public DrpPengadaanController(PostCreateDrpPengadaanService postCreateDrpPengadaanService,
GetListDrpPengadaanService getListDrpPengadaanService,
PostDrpUploadDokumenPendukungService postDrpUploadDokumenPendukungService,
DeleteDrpPengadaanService deleteDrpPengadaanService,
DeleteDokumenPendukungService deleteDokumenPendukungService,
EditUploadDrpPengadaanService editUploadDrpPengadaanService) {
EditUploadDrpPengadaanService editUploadDrpPengadaanService,
GetDrpPengadaanService getDrpPengadaanService) {
this.postCreateDrpPengadaanService = postCreateDrpPengadaanService;
this.getListDrpPengadaanService = getListDrpPengadaanService;
this.postDrpUploadDokumenPendukungService = postDrpUploadDokumenPendukungService;
this.deleteDrpPengadaanService = deleteDrpPengadaanService;
this.deleteDokumenPendukungService = deleteDokumenPendukungService;
this.editUploadDrpPengadaanService = editUploadDrpPengadaanService;
this.getDrpPengadaanService = getDrpPengadaanService;
}
@GetMapping
@ -56,7 +59,9 @@ public class DrpPengadaanController {
@GetMapping("/{id}")
public DrpPengadaanResponse getDrpPengadaanById(@PathVariable Long id) {
return null;
return getDrpPengadaanService.execute(DrpPengadaanRequest.builder()
.id(id)
.build());
}
@PutMapping("/{id}")

View File

@ -22,6 +22,9 @@ public class DrpPengadaanDokumen extends BaseEntity {
@Column(name = "id")
private Long id;
@Column(name = "drp_pengadaan_id")
private Long drpPengadaanId;
@Column(name = "drp_id")
private Long drpId;

View File

@ -1,6 +1,7 @@
package com.iconplus.smartproc.model.response;
import com.iconplus.smartproc.helper.base.BaseResponse;
import com.iconplus.smartproc.model.request.DrpPengadaanDokumenRequest;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
@ -9,6 +10,7 @@ import lombok.NoArgsConstructor;
import java.math.BigDecimal;
import java.sql.Date;
import java.sql.Timestamp;
import java.util.List;
@Data
@Builder
@ -54,4 +56,6 @@ public class DrpPengadaanResponse extends BaseResponse {
private BigDecimal hpe;
private Boolean isActive;
private Boolean isDelete;
private List<DrpPengadaanDokumenResponse> dataDrpPengadaanDokumen;
}

View File

@ -23,5 +23,5 @@ public class DrpResponse extends BaseResponse {
private List<DrpDokumenResponse> dataDrpDokumen;
private List<DrpPengadaanDokumenResponse> dataDrpPengadaanDokumen;
private List<DrpDokumenResponse> dataDrpDokumenPendukung;
}

View File

@ -14,4 +14,6 @@ public interface DrpPengadaanDokumenRepository extends JpaRepository<DrpPengadaa
Optional<DrpPengadaanDokumen> findByFilenameAndIsDeleteFalse(String filename);
List<DrpPengadaanDokumen> findByDrpPengadaanIdAndIsDeleteFalse(Long id);
}

View File

@ -50,9 +50,51 @@ public interface DrpPengadaanRepository extends JpaRepository<DrpPengadaan, Long
"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")
"WHERE dp.isDelete = false " +
"ORDER BY dp.id")
Page<DrpPengadaanView> getListDrpPengadaan(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);

View File

@ -3,10 +3,8 @@ package com.iconplus.smartproc.service.drp;
import com.iconplus.smartproc.exception.BusinessException;
import com.iconplus.smartproc.helper.service.BaseService;
import com.iconplus.smartproc.model.entity.DrpDokumen;
import com.iconplus.smartproc.model.entity.DrpPengadaanDokumen;
import com.iconplus.smartproc.model.request.DrpRequest;
import com.iconplus.smartproc.model.response.DrpDokumenResponse;
import com.iconplus.smartproc.model.response.DrpPengadaanDokumenResponse;
import com.iconplus.smartproc.model.response.DrpResponse;
import com.iconplus.smartproc.repository.DrpDokumenRepository;
import com.iconplus.smartproc.repository.DrpPengadaanDokumenRepository;
@ -40,10 +38,8 @@ public class GetDrpService implements BaseService<DrpRequest, DrpResponse> {
String.format(Constants.ERR_MSG_10001, "DRP", input.getId())));
List<DrpDokumenResponse> drpDokumenResponseList = new ArrayList<>();
setDrpDokumen(input, drpDokumenResponseList);
List<DrpPengadaanDokumenResponse> drpPengadaanDokumenResponseList = new ArrayList<>();
setDrpPengadaanDokumen(input, drpPengadaanDokumenResponseList);
List<DrpDokumenResponse> drpPengadaanDokumenPendukungList = new ArrayList<>();
setDrpDokumen(input, drpDokumenResponseList, drpPengadaanDokumenPendukungList);
return DrpResponse.builder()
@ -54,35 +50,32 @@ public class GetDrpService implements BaseService<DrpRequest, DrpResponse> {
.isActive(drp.getIsActive())
.isDelete(drp.getIsDelete())
.dataDrpDokumen(drpDokumenResponseList)
.dataDrpPengadaanDokumen(drpPengadaanDokumenResponseList)
.dataDrpDokumenPendukung(drpPengadaanDokumenPendukungList)
.build();
}
private void setDrpPengadaanDokumen(DrpRequest input, List<DrpPengadaanDokumenResponse> drpPengadaanDokumenResponseList) {
var drpPengadaanDokumenList = drpPengadaanDokumenRepository.findByDrpIdAndIsDeleteFalse(input.getId());
for (DrpPengadaanDokumen drpPengadaanDokumen : drpPengadaanDokumenList) {
DrpPengadaanDokumenResponse drpPengadaanDokumenResponse = DrpPengadaanDokumenResponse.builder()
.id(drpPengadaanDokumen.getId())
.drpId(drpPengadaanDokumen.getDrpId())
.jenisDokumenId(drpPengadaanDokumen.getJenisDokumenId())
.filename(drpPengadaanDokumen.getFilename())
.build();
drpPengadaanDokumenResponseList.add(drpPengadaanDokumenResponse);
}
}
private void setDrpDokumen(DrpRequest input, List<DrpDokumenResponse> drpDokumenResponseList) {
private void setDrpDokumen(DrpRequest input, List<DrpDokumenResponse> drpDokumenResponseList, List<DrpDokumenResponse> drpDokumenPendukungList) {
var drpDokumenList = drpDokumenRepository.findByDrpIdAndIsDeleteFalse(input.getId());
for (DrpDokumen drpDokumen : drpDokumenList) {
DrpDokumenResponse drpDokumenResponse = DrpDokumenResponse.builder()
.id(drpDokumen.getId())
.drpId(drpDokumen.getDrpId())
.jenisDokumenId(drpDokumen.getJenisDokumenId())
.filename(drpDokumen.getFilename())
.build();
drpDokumenResponseList.add(drpDokumenResponse);
if (drpDokumen.getJenisDokumenId() == 1) {
DrpDokumenResponse drpDokumenResponse = DrpDokumenResponse.builder()
.id(drpDokumen.getId())
.drpId(drpDokumen.getDrpId())
.jenisDokumenId(drpDokumen.getJenisDokumenId())
.filename(drpDokumen.getFilename())
.build();
drpDokumenResponseList.add(drpDokumenResponse);
} else {
DrpDokumenResponse drpDokumenResponse = DrpDokumenResponse.builder()
.id(drpDokumen.getId())
.drpId(drpDokumen.getDrpId())
.jenisDokumenId(drpDokumen.getJenisDokumenId())
.filename(drpDokumen.getFilename())
.build();
drpDokumenPendukungList.add(drpDokumenResponse);
}
}
}
}

View File

@ -53,6 +53,7 @@ public class PostDrpUploadDokumenRKAPService implements BaseService<DrpDokumenRe
return DrpDokumenResponse.builder()
.jenisDokumenId(input.getJenisDokumenId())
.filename(fileName)
.keterangan(input.getKeterangan())
.build();
}
}

View File

@ -0,0 +1,85 @@
package com.iconplus.smartproc.service.drppengadaan;
import com.iconplus.smartproc.exception.BusinessException;
import com.iconplus.smartproc.helper.service.BaseService;
import com.iconplus.smartproc.model.entity.DrpPengadaanDokumen;
import com.iconplus.smartproc.model.request.DrpPengadaanRequest;
import com.iconplus.smartproc.model.response.DrpPengadaanDokumenResponse;
import com.iconplus.smartproc.model.response.DrpPengadaanResponse;
import com.iconplus.smartproc.repository.DrpPengadaanDokumenRepository;
import com.iconplus.smartproc.repository.DrpPengadaanRepository;
import com.iconplus.smartproc.util.Constants;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
@Service
@Slf4j
public class GetDrpPengadaanService implements BaseService<DrpPengadaanRequest, DrpPengadaanResponse> {
private final DrpPengadaanRepository drpPengadaanRepository;
private final DrpPengadaanDokumenRepository drpPengadaanDokumenRepository;
public GetDrpPengadaanService(DrpPengadaanRepository drpPengadaanRepository,
DrpPengadaanDokumenRepository drpPengadaanDokumenRepository) {
this.drpPengadaanRepository = drpPengadaanRepository;
this.drpPengadaanDokumenRepository = drpPengadaanDokumenRepository;
}
@Override
public DrpPengadaanResponse execute(DrpPengadaanRequest input) {
var drpPengadaan = drpPengadaanRepository.getDrpPengadaanById(input.getId())
.orElseThrow(() -> new BusinessException(Constants.ERR_CODE_10001,
Constants.ERR_TTL_10001,
String.format(Constants.ERR_MSG_10001, "DRP Pengadaan", input.getId())));
List<DrpPengadaanDokumenResponse> drpPengadaanDokumenResponseList = new ArrayList<>();
var drpPengadaanDokumenList = drpPengadaanDokumenRepository.findByDrpPengadaanIdAndIsDeleteFalse(drpPengadaan.getId());
for (DrpPengadaanDokumen drpPengadaanDokumen : drpPengadaanDokumenList) {
DrpPengadaanDokumenResponse drpPengadaanDokumenResponse = DrpPengadaanDokumenResponse.builder()
.id(drpPengadaanDokumen.getId())
.drpId(drpPengadaanDokumen.getDrpId())
.jenisDokumenId(drpPengadaanDokumen.getJenisDokumenId())
.filename(drpPengadaanDokumen.getFilename())
.keterangan(drpPengadaanDokumen.getKeterangan())
.build();
drpPengadaanDokumenResponseList.add(drpPengadaanDokumenResponse);
}
return DrpPengadaanResponse.builder()
.id(drpPengadaan.getId())
.drpId(drpPengadaan.getDrpId())
.nomor(drpPengadaan.getNomor())
.namaPengadaan(drpPengadaan.getNamaPengadaan())
.lokasiId(drpPengadaan.getLokasiId())
.lokasi(drpPengadaan.getLokasi())
.jenisPengadaanId(drpPengadaan.getJenisPengadaanId())
.jenisPengadaan(drpPengadaan.getJenisPengadaan())
.unitInisiatorId(drpPengadaan.getUnitInisiatorId())
.unitInisiator(drpPengadaan.getUnitInisiator())
.hpe(drpPengadaan.getHpe())
.pagu(drpPengadaan.getPagu())
.sumberDanaId(drpPengadaan.getSumberDanaId())
.sumberDana(drpPengadaan.getSumberDana())
.metodePengadaanId(drpPengadaan.getMetodePengadaanId())
.metodePengadaan(drpPengadaan.getMetodePengadaan())
.supplyPositioningMatrixId(drpPengadaan.getSupplyPositioningMatrixId())
.supplyPositioningMatrix(drpPengadaan.getSupplyPositioningMatrix())
.metodePenyampaianId(drpPengadaan.getMetodePenyampaianId())
.metodePenyampaian(drpPengadaan.getMetodePenyampaian())
.jenisKontrakId(drpPengadaan.getJenisKontrakId())
.jenisKontrak(drpPengadaan.getJenisKontrak())
.strategiPengadaanId(drpPengadaan.getStrategiPengadaanId())
.strategiPengadaan(drpPengadaan.getStrategiPengadaan())
.rencanaTanggal(drpPengadaan.getRencanaTanggal())
.targetTanggal(drpPengadaan.getTargetTanggal())
.isActive(drpPengadaan.getIsActive())
.dataDrpPengadaanDokumen(drpPengadaanDokumenResponseList)
.build();
}
}

View File

@ -50,10 +50,13 @@ public class PostCreateDrpPengadaanService implements BaseService<DrpPengadaanRe
.isDelete(false)
.build();
var result = drpPengadaanRepository.save(drpPengadaan);
List<DrpPengadaanDokumen> drpPengadaanDokumenList = new ArrayList<>();
if (ObjectUtils.isNotEmpty(input.getDataDrpPengadaanDokumen())) {
for (DrpPengadaanDokumenRequest drpPengadaanDokumenRequest : input.getDataDrpPengadaanDokumen()) {
DrpPengadaanDokumen drpPengadaanDokumen = DrpPengadaanDokumen.builder()
.drpPengadaanId(result.getId())
.drpId(input.getDrpId())
.jenisDokumenId(drpPengadaanDokumenRequest.getJenisDokumenId())
.filename(drpPengadaanDokumenRequest.getFilename())
@ -64,7 +67,6 @@ public class PostCreateDrpPengadaanService implements BaseService<DrpPengadaanRe
}
}
var result = drpPengadaanRepository.save(drpPengadaan);
drpPengadaanDokumenRepository.saveAll(drpPengadaanDokumenList);
return DrpPengadaanResponse.builder()

View File

@ -0,0 +1,62 @@
package com.iconplus.smartproc.service.drppengadaan;
import com.iconplus.smartproc.exception.BusinessException;
import com.iconplus.smartproc.helper.service.BaseService;
import com.iconplus.smartproc.model.entity.DrpPengadaan;
import com.iconplus.smartproc.model.entity.DrpPengadaanDokumen;
import com.iconplus.smartproc.model.request.DrpPengadaanRequest;
import com.iconplus.smartproc.model.response.DrpPengadaanResponse;
import com.iconplus.smartproc.repository.DrpPengadaanDokumenRepository;
import com.iconplus.smartproc.repository.DrpPengadaanRepository;
import com.iconplus.smartproc.util.Constants;
import org.apache.tomcat.util.bcel.Const;
import org.springframework.stereotype.Service;
import java.io.IOException;
@Service
public class PutDrpPengadaanService implements BaseService<DrpPengadaanRequest, DrpPengadaanResponse> {
private final DrpPengadaanRepository drpPengadaanRepository;
private final DrpPengadaanDokumenRepository drpPengadaanDokumenRepository;
public PutDrpPengadaanService(DrpPengadaanRepository drpPengadaanRepository,
DrpPengadaanDokumenRepository drpPengadaanDokumenRepository) {
this.drpPengadaanRepository = drpPengadaanRepository;
this.drpPengadaanDokumenRepository = drpPengadaanDokumenRepository;
}
@Override
public DrpPengadaanResponse execute(DrpPengadaanRequest input) throws IOException {
var drpPengadaan = drpPengadaanRepository.findByIdAndIsDeleteFalse(input.getId())
.orElseThrow(()-> new BusinessException(Constants.ERR_CODE_10001,
Constants.ERR_TTL_10001,
String.format(Constants.ERR_MSG_10001, "DRP Pengadaan", input.getId())));
drpPengadaan.setDrpId(input.getDrpId());
drpPengadaan.setNomor(input.getNomor());
drpPengadaan.setNamaPengadaan(input.getNamaPengadaan());
drpPengadaan.setLokasiId(input.getLokasiId());
drpPengadaan.setJenisPengadaanId(input.getJenisPengadaanId());
drpPengadaan.setUnitInisiatorId(input.getUnitInisiatorId());
drpPengadaan.setPagu(input.getPagu());
drpPengadaan.setSumberDanaId(input.getSumberDanaId());
drpPengadaan.setSupplyPositioningMatrixId(input.getSupplyPositioningMatrixId());
drpPengadaan.setMetodePengadaanId(input.getMetodePengadaanId());
drpPengadaan.setMetodePengadaanId(input.getMetodePenyampaianId());
drpPengadaan.setJenisKontrakId(input.getJenisKontrakId());
drpPengadaan.setStrategiPengadaanId(input.getStrategiPengadaanId());
drpPengadaan.setRencanaTanggal(input.getRencanaTanggal());
drpPengadaan.setTargetTanggal(input.getTargetTanggal());
drpPengadaan.setHpe(input.getHpe());
drpPengadaan.setIsActive(input.getIsActive());
drpPengadaan.setIsDelete(false);
drpPengadaanRepository.save(drpPengadaan);
var drpPengadaanDokumenList = drpPengadaanDokumenRepository.findByDrpPengadaanIdAndIsDeleteFalse(drpPengadaan.getId());
return DrpPengadaanResponse.builder().build();
}
}