dirgantarasiahaan 4877b84de0 add rks isi
2023-06-06 09:31:11 +07:00

84 lines
3.8 KiB
Java

package com.iconplus.smartproc.service.drp;
import com.iconplus.smartproc.exception.BusinessException;
import com.iconplus.smartproc.helper.service.BaseService;
import com.iconplus.smartproc.model.entity.DrpDokumen;
import com.iconplus.smartproc.model.request.DrpRequest;
import com.iconplus.smartproc.model.response.DrpDokumenResponse;
import com.iconplus.smartproc.model.response.DrpResponse;
import com.iconplus.smartproc.repository.DrpDokumenRepository;
import com.iconplus.smartproc.repository.DrpPengadaanDokumenRepository;
import com.iconplus.smartproc.repository.DrpRepository;
import com.iconplus.smartproc.util.Constants;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
@Service
public class GetDrpService implements BaseService<DrpRequest, DrpResponse> {
private final DrpRepository drpRepository;
private final DrpDokumenRepository drpDokumenRepository;
private final DrpPengadaanDokumenRepository drpPengadaanDokumenRepository;
public GetDrpService(DrpRepository drpRepository,
DrpDokumenRepository drpDokumenRepository,
DrpPengadaanDokumenRepository drpPengadaanDokumenRepository) {
this.drpRepository = drpRepository;
this.drpDokumenRepository = drpDokumenRepository;
this.drpPengadaanDokumenRepository = drpPengadaanDokumenRepository;
}
@Override
public DrpResponse execute(DrpRequest input) {
var drp = drpRepository.findByIdAndIsDeleteFalse(input.getId())
.orElseThrow(() -> new BusinessException(Constants.ERR_CODE_10001,
Constants.ERR_TTL_10001,
String.format(Constants.ERR_MSG_10001, "DRP", input.getId())));
List<DrpDokumenResponse> drpDokumenResponseList = new ArrayList<>();
List<DrpDokumenResponse> drpPengadaanDokumenPendukungList = new ArrayList<>();
setDrpDokumen(input, drpDokumenResponseList, drpPengadaanDokumenPendukungList);
return DrpResponse.builder()
.id(drp.getId())
.tahun(drp.getTahun())
.approveStatus(drp.getApproveStatus())
.approveDate(drp.getApproveDate())
.isActive(drp.getIsActive())
.isDelete(drp.getIsDelete())
.dataDrpDokumen(drpDokumenResponseList)
.dataDrpDokumenPendukung(drpPengadaanDokumenPendukungList)
.build();
}
private void setDrpDokumen(DrpRequest input, List<DrpDokumenResponse> drpDokumenResponseList, List<DrpDokumenResponse> drpDokumenPendukungList) {
var drpDokumenList = drpDokumenRepository.findByDrpIdAndIsDeleteFalse(input.getId());
for (DrpDokumen drpDokumen : drpDokumenList) {
if (drpDokumen.getJenisDokumenId() == 1) {
DrpDokumenResponse drpDokumenResponse = DrpDokumenResponse.builder()
.id(drpDokumen.getId())
.drpId(drpDokumen.getDrpId())
.jenisDokumenId(drpDokumen.getJenisDokumenId())
.filename(drpDokumen.getFilename())
.keterangan(drpDokumen.getKeterangan())
.build();
drpDokumenResponseList.add(drpDokumenResponse);
} else {
DrpDokumenResponse drpDokumenResponse = DrpDokumenResponse.builder()
.id(drpDokumen.getId())
.drpId(drpDokumen.getDrpId())
.jenisDokumenId(drpDokumen.getJenisDokumenId())
.filename(drpDokumen.getFilename())
.keterangan(drpDokumen.getKeterangan())
.build();
drpDokumenPendukungList.add(drpDokumenResponse);
}
}
}
}