package com.iconplus.smartproc.service.approval; import com.iconplus.smartproc.helper.service.BaseService; import com.iconplus.smartproc.model.entity.DrpRekomendasi; import com.iconplus.smartproc.model.request.DrpRekomendasiRequest; import com.iconplus.smartproc.model.response.DrpRekomendasiResponse; import com.iconplus.smartproc.repository.DrpApprovalRepository; import com.iconplus.smartproc.repository.DrpRekomendasiRepository; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service; @Service public class PostDrpRekomendasiService implements BaseService { private DrpRekomendasiRepository drpRekomendasiRepository; private DrpApprovalRepository drpApprovalRepository; private PostDrpRekomendasiService(DrpRekomendasiRepository drpRekomendasiRepository, DrpApprovalRepository drpApprovalRepository) { this.drpRekomendasiRepository = drpRekomendasiRepository; this.drpApprovalRepository = drpApprovalRepository; } @Override public DrpRekomendasiResponse execute(DrpRekomendasiRequest input) { if (input.getDrpApprovalId() == null) { var drpApproval = drpApprovalRepository.findByDrpIdAndApproverUserIdAndIsDeleteFalse(input.getDrpId(), input.getUserId()); if (drpApproval.isPresent()) { input.setDrpApprovalId(drpApproval.get().getId()); } } DrpRekomendasi drpRekomendasi = DrpRekomendasi.builder() .drpId(input.getDrpId()) .userId(input.getUserId()) .jenisPengadaanId(input.getJenisPengadaanId()) .drpApprovalId(input.getDrpApprovalId()) .rekomendasi(input.getRekomendasi()) .rekomendasiDate(input.getRekomendasiDate()) .isDelete(false) .build(); var result = drpRekomendasiRepository.save(drpRekomendasi); return DrpRekomendasiResponse.builder() .id(result.getId()) .build(); } }