pointing sindiglive

This commit is contained in:
dirgantarasiahaan
2023-06-02 14:40:12 +07:00
parent f842852813
commit 5be630964f
13 changed files with 185 additions and 27 deletions

View File

@@ -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();
}
}