Files
smartproc-be/src/main/java/com/iconplus/smartproc/service/drppengadaan/PutDrpPengadaanService.java
2023-05-31 16:32:20 +07:00

87 lines
4.3 KiB
Java

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.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 com.iconplus.smartproc.util.Constants;
import org.apache.commons.lang3.ObjectUtils;
import org.springframework.stereotype.Service;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
@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.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());
for (DrpPengadaanDokumen drpPengadaanDokumen : drpPengadaanDokumenList) {
drpPengadaanDokumen.setIsDelete(true);
drpPengadaanDokumenRepository.save(drpPengadaanDokumen);
}
List<DrpPengadaanDokumen> drpPengadaanDokumenArrayList = new ArrayList<>();
if (ObjectUtils.isNotEmpty(input.getDataDrpPengadaanDokumen())) {
for (DrpPengadaanDokumenRequest drpPengadaanDokumenRequest : input.getDataDrpPengadaanDokumen()) {
DrpPengadaanDokumen drpPengadaanDokumen = DrpPengadaanDokumen.builder()
.drpPengadaanId(drpPengadaan.getId())
.drpId(drpPengadaan.getDrpId())
.jenisDokumenId(drpPengadaanDokumenRequest.getJenisDokumenId())
.filename(drpPengadaanDokumenRequest.getFilename())
.keterangan(drpPengadaanDokumenRequest.getKeterangan())
.isDelete(false)
.build();
drpPengadaanDokumenArrayList.add(drpPengadaanDokumen);
}
drpPengadaanDokumenRepository.saveAll(drpPengadaanDokumenArrayList);
}
return DrpPengadaanResponse.builder()
.id(drpPengadaan.getId())
.build();
}
}