package com.iconplus.smartproc.service.drppengadaan; 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 { 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 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(); } }