pointing sindiglive
This commit is contained in:
@@ -0,0 +1,113 @@
|
||||
package com.iconplus.smartproc.service.approval;
|
||||
|
||||
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.projection.DrpRekomendasiView;
|
||||
import com.iconplus.smartproc.model.request.DrpApprovalRequest;
|
||||
import com.iconplus.smartproc.model.response.DrpApprovalResponse;
|
||||
import com.iconplus.smartproc.model.response.DrpPengadaanDokumenResponse;
|
||||
import com.iconplus.smartproc.model.response.DrpPengadaanResponse;
|
||||
import com.iconplus.smartproc.model.response.DrpRekomendasiResponse;
|
||||
import com.iconplus.smartproc.repository.DrpPengadaanDokumenRepository;
|
||||
import com.iconplus.smartproc.repository.DrpPengadaanRepository;
|
||||
import com.iconplus.smartproc.repository.DrpRekomendasiRepository;
|
||||
import com.iconplus.smartproc.service.drppengadaan.GetDrpPengadaanService;
|
||||
import com.iconplus.smartproc.util.Constants;
|
||||
import org.apache.commons.lang3.BooleanUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
@Service
|
||||
public class GetApprovalService implements BaseService<DrpApprovalRequest, DrpApprovalResponse> {
|
||||
|
||||
private final DrpPengadaanRepository drpPengadaanRepository;
|
||||
private final DrpPengadaanDokumenRepository drpPengadaanDokumenRepository;
|
||||
private final DrpRekomendasiRepository drpRekomendasiRepository;
|
||||
|
||||
public GetApprovalService(DrpPengadaanRepository drpPengadaanRepository,
|
||||
DrpPengadaanDokumenRepository drpPengadaanDokumenRepository,
|
||||
DrpRekomendasiRepository drpRekomendasiRepository) {
|
||||
this.drpPengadaanRepository = drpPengadaanRepository;
|
||||
this.drpPengadaanDokumenRepository = drpPengadaanDokumenRepository;
|
||||
this.drpRekomendasiRepository = drpRekomendasiRepository;
|
||||
}
|
||||
|
||||
@Override
|
||||
public DrpApprovalResponse execute(DrpApprovalRequest input) {
|
||||
var drpPengadaan = drpPengadaanRepository.getDrpPengadaanById(input.getJenisPengadaanId())
|
||||
.orElseThrow(() -> new BusinessException(Constants.ERR_CODE_10001,
|
||||
Constants.ERR_TTL_10001,
|
||||
String.format(Constants.ERR_MSG_10001, "DRP Pengadaan", input.getJenisPengadaanId())));
|
||||
|
||||
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);
|
||||
}
|
||||
|
||||
var pengadaan = 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())
|
||||
.build();
|
||||
|
||||
List<DrpRekomendasiResponse> drpRekomendasiResponseList = new ArrayList<>();
|
||||
var listDrpRekomendasi = drpRekomendasiRepository.getListDrpRekomendasi(input.getJenisPengadaanId());
|
||||
for (DrpRekomendasiView drpRekomendasiView : listDrpRekomendasi) {
|
||||
DrpRekomendasiResponse drpRekomendasiResponse = DrpRekomendasiResponse.builder()
|
||||
.id(drpRekomendasiView.getId())
|
||||
.jabatan(drpRekomendasiView.getJabatan())
|
||||
.rekomendasi(drpRekomendasiView.getRekomendasi())
|
||||
.rekomendasiDate(drpRekomendasiView.getRekomendasiDate())
|
||||
.build();
|
||||
if (BooleanUtils.isTrue(drpRekomendasiView.getIsApprove())) {
|
||||
drpRekomendasiResponse.setStatus("Setuju");
|
||||
} else {
|
||||
drpRekomendasiResponse.setStatus("Tolak");
|
||||
}
|
||||
|
||||
drpRekomendasiResponseList.add(drpRekomendasiResponse);
|
||||
}
|
||||
|
||||
return DrpApprovalResponse.builder()
|
||||
.dataPengadaan(pengadaan)
|
||||
.dataPengadaanDokumen(drpPengadaanDokumenResponseList)
|
||||
.dataRekomendasi(drpRekomendasiResponseList)
|
||||
.build();
|
||||
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user