smartproc-be/src/main/java/com/iconplus/smartproc/service/drp/PostCreateDrpPengadaanService.java
2023-05-29 15:29:38 +07:00

77 lines
3.4 KiB
Java

package com.iconplus.smartproc.service.drp;
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.DrpPengadaanDokumenRequest;
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 org.apache.commons.lang3.ObjectUtils;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
@Service
public class PostCreateDrpPengadaanService implements BaseService<DrpPengadaanRequest, DrpPengadaanResponse> {
private final DrpPengadaanRepository drpPengadaanRepository;
private final DrpPengadaanDokumenRepository drpPengadaanDokumenRepository;
public PostCreateDrpPengadaanService(DrpPengadaanRepository drpPengadaanRepository,
DrpPengadaanDokumenRepository drpPengadaanDokumenRepository) {
this.drpPengadaanRepository = drpPengadaanRepository;
this.drpPengadaanDokumenRepository = drpPengadaanDokumenRepository;
}
@Override
public DrpPengadaanResponse execute(DrpPengadaanRequest input) {
DrpPengadaan drpPengadaan = DrpPengadaan.builder()
.drpId(input.getDrpId())
.nomor(input.getNomor())
.namaPengadaan(input.getNamaPengadaan())
.lokasiId(input.getLokasiId())
.jenisPengadaanId(input.getJenisPengadaanId())
.unitInisiatorId(input.getUnitInisiatorId())
.pagu(input.getPagu())
.sumberDanaId(input.getSumberDanaId())
.supplyPositioningMatrixId(input.getSupplyPositioningMatrixId())
.metodePengadaanId(input.getMetodePengadaanId())
.metodePenyampaianId(input.getMetodePenyampaianId())
.jenisKontrakId(input.getJenisKontrakId())
.strategiPengadaanId(input.getStrategiPengadaanId())
.rencanaTanggal(input.getRencanaTanggal())
.targetTanggal(input.getTargetTanggal())
.hpe(input.getHpe())
.isActive(input.getIsActive())
.isDelete(false)
.build();
List<DrpPengadaanDokumen> drpPengadaanDokumenList = new ArrayList<>();
if (ObjectUtils.isNotEmpty(input.getDataDrpPengadaanDokumen())) {
for (DrpPengadaanDokumenRequest drpPengadaanDokumenRequest : input.getDataDrpPengadaanDokumen()) {
DrpPengadaanDokumen drpPengadaanDokumen = DrpPengadaanDokumen.builder()
.drpId(input.getDrpId())
.jenisDokumenId(drpPengadaanDokumenRequest.getJenisDokumenId())
.filename(drpPengadaanDokumenRequest.getFilename())
.keterangan(drpPengadaanDokumenRequest.getKeterangan())
.isDelete(false)
.build();
drpPengadaanDokumenList.add(drpPengadaanDokumen);
}
}
var result = drpPengadaanRepository.save(drpPengadaan);
drpPengadaanDokumenRepository.saveAll(drpPengadaanDokumenList);
return DrpPengadaanResponse.builder()
.id(result.getId())
.build();
}
}