87 lines
4.3 KiB
Java
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();
|
|
|
|
}
|
|
}
|