updated Code
This commit is contained in:
@@ -351,46 +351,68 @@ public class ApplicationAmendmentRequestDao {
|
||||
return response;
|
||||
}
|
||||
|
||||
|
||||
private void updateApplicationFormFields(ApplicationAmendmentRequestEntity applicationAmendment, ApplicationFormFieldRequestBean updatedFormField) {
|
||||
// Convert fieldValue (object) to a comma-separated list of document IDs
|
||||
List<String> documentIds = Arrays.asList(updatedFormField.getFieldValue().toString().split(","));
|
||||
List<String> documentIds;
|
||||
|
||||
// Check if fieldValue is an array
|
||||
if (updatedFormField.getFieldValue() instanceof List) {
|
||||
documentIds = ((List<?>) updatedFormField.getFieldValue()).stream()
|
||||
.map(Object::toString)
|
||||
.collect(Collectors.toList());
|
||||
} else {
|
||||
log.warn("Expected fieldValue as a list but got: {}", updatedFormField.getFieldValue());
|
||||
return;
|
||||
}
|
||||
|
||||
List<String> validDocumentIds = new ArrayList<>();
|
||||
|
||||
for (String documentId : documentIds) {
|
||||
documentId = documentId.trim(); // Remove any extra spaces
|
||||
if (documentId.isEmpty()) {
|
||||
log.warn("Encountered an empty document ID. Skipping.");
|
||||
continue;
|
||||
}
|
||||
|
||||
try {
|
||||
// Parse documentId to Long and validate it
|
||||
Long documentIdLong = Long.parseLong(documentId);
|
||||
DocumentEntity documentEntity = documentService.validateDocument(documentIdLong);
|
||||
|
||||
if (documentEntity != null) {
|
||||
validDocumentIds.add(documentId);
|
||||
} else {
|
||||
log.warn("Document with ID {} does not exist. Skipping this ID.", documentId);
|
||||
}
|
||||
} catch (NumberFormatException e) {
|
||||
log.warn("Invalid document ID format: {}. Skipping this ID.", documentId);
|
||||
DocumentEntity documentEntity = documentService.validateDocument(Long.parseLong(documentId));
|
||||
if (documentEntity != null) {
|
||||
validDocumentIds.add(documentId);
|
||||
} else {
|
||||
log.warn("Document with ID {} does not exist. Skipping this ID.", documentId);
|
||||
}
|
||||
}
|
||||
|
||||
if (!validDocumentIds.isEmpty()) {
|
||||
ApplicationFormFieldEntity formEntity = applicationFormFieldRepository.findByFieldId(updatedFormField.getFieldId());
|
||||
List<ApplicationFormEntity> applicationForms = applicationFormRepository.findByApplicationId(applicationAmendment.getApplicationId());
|
||||
|
||||
if (formEntity != null) {
|
||||
formEntity.setFieldValue(String.join(",", validDocumentIds));
|
||||
applicationFormFieldRepository.save(formEntity);
|
||||
log.info("Updated field value for field ID {} with document IDs {}", updatedFormField.getFieldId(), String.join(",", validDocumentIds));
|
||||
} else {
|
||||
log.warn("No ApplicationFormFieldEntity found with field ID {}. Skipping update.", updatedFormField.getFieldId());
|
||||
boolean fieldUpdated = false;
|
||||
|
||||
for (ApplicationFormEntity applicationForm : applicationForms) {
|
||||
Optional<ApplicationFormFieldEntity> formFieldEntityOptional = applicationFormFieldRepository
|
||||
.findByApplicationFormIdAndFieldId(applicationForm.getId(), updatedFormField.getFieldId());
|
||||
|
||||
if (formFieldEntityOptional.isPresent()) {
|
||||
ApplicationFormFieldEntity formEntity = formFieldEntityOptional.get();
|
||||
formEntity.setFieldValue(String.join(",", validDocumentIds));
|
||||
applicationFormFieldRepository.save(formEntity);
|
||||
log.info("Updated field value for application ID {} and field ID {} with document IDs {}",
|
||||
applicationAmendment.getApplicationId(), updatedFormField.getFieldId(), String.join(",", validDocumentIds));
|
||||
fieldUpdated = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (!fieldUpdated) {
|
||||
log.warn("No ApplicationFormFieldEntity found for application ID {} and field ID {}. Skipping update.",
|
||||
applicationAmendment.getApplicationId(), updatedFormField.getFieldId());
|
||||
}
|
||||
} else {
|
||||
log.warn("No valid document IDs found for update. Skipping field ID {}", updatedFormField.getFieldId());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public List<ApplicationAmendmentRequestResponse> getAllAmendmentRequestByBeneficiaryId(Long beneficiaryId) {
|
||||
|
||||
List<ApplicationAmendmentRequestEntity> entities =
|
||||
applicationAmendmentRequestRepository.findByUserId(beneficiaryId);
|
||||
|
||||
return entities.stream()
|
||||
.map(this::convertEntityToResponse)
|
||||
.collect(Collectors.toList());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -3,9 +3,18 @@ package net.gepafin.tendermanagement.repositories;
|
||||
import net.gepafin.tendermanagement.entities.ApplicationAmendmentRequestEntity;
|
||||
import org.springframework.data.jpa.repository.JpaRepository;
|
||||
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
|
||||
import org.springframework.data.jpa.repository.Query;
|
||||
import org.springframework.data.repository.query.Param;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
|
||||
public interface ApplicationAmendmentRequestRepository extends JpaRepository<ApplicationAmendmentRequestEntity,Long>, JpaSpecificationExecutor<ApplicationAmendmentRequestEntity> {
|
||||
Optional<ApplicationAmendmentRequestEntity> findByIdAndIsDeletedFalse(Long id);
|
||||
|
||||
@Query(value = "SELECT ar.* FROM application_amendment_request ar " +
|
||||
"JOIN application app ON ar.application_id = app.id " +
|
||||
"WHERE app.user_id = :userId AND ar.is_deleted = false",
|
||||
nativeQuery = true)
|
||||
List<ApplicationAmendmentRequestEntity> findByUserId(@Param("userId") Long userId);
|
||||
}
|
||||
|
||||
@@ -37,4 +37,5 @@ public interface ApplicationFormFieldRepository extends JpaRepository<Applicatio
|
||||
|
||||
public ApplicationFormFieldEntity findByFieldId(String FieldId);
|
||||
|
||||
Optional<ApplicationFormFieldEntity> findByApplicationFormIdAndFieldId(Long id, String fieldId);
|
||||
}
|
||||
|
||||
@@ -16,5 +16,6 @@ public interface ApplicationAmendmentRequestService {
|
||||
List<ApplicationAmendmentRequestResponse> getAllApplicationAmendmentRequest(HttpServletRequest request,Long userId);
|
||||
ApplicationAmendmentRequestResponse updateApplicationAmendment(HttpServletRequest request, Long id, ApplicationAmendmentRequestBean applicationAmendmentRequestBean);
|
||||
ApplicationAmendmentRequestEntity validateApplicationAmendmentRequest(Long applicationAmendmentId);
|
||||
List<ApplicationAmendmentRequestResponse> getAllAmendmentRequestByBeneficiaryId(HttpServletRequest request,Long beneficiaryId);
|
||||
|
||||
}
|
||||
|
||||
@@ -63,5 +63,11 @@ public class ApplicationAmendmentRequestServiceImpl implements ApplicationAmendm
|
||||
return applicationAmendmentRequestDao.validateApplicationAmendmentRequest(applicationAmendmentId);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<ApplicationAmendmentRequestResponse> getAllAmendmentRequestByBeneficiaryId(HttpServletRequest request, Long beneficiaryId) {
|
||||
return applicationAmendmentRequestDao.getAllAmendmentRequestByBeneficiaryId(beneficiaryId);
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -100,4 +100,17 @@ public interface ApplicationAmendmentRequestApi {
|
||||
@Parameter(description = "The Application Amendment id", required = true) @PathVariable("id") Long id,
|
||||
@Parameter(description = "Assigned Application request object", required = true) @Valid @RequestBody ApplicationAmendmentRequestBean applicationAmendmentRequestBean);
|
||||
|
||||
@Operation(summary = "Api to get all applications amendment request by beneficary user Id",
|
||||
responses = {
|
||||
@ApiResponse(responseCode = "200", description = "OK"),
|
||||
@ApiResponse(responseCode = "404", description = "Not Found", content = @Content(mediaType = MediaType.APPLICATION_JSON_VALUE, examples = {
|
||||
@ExampleObject(value = ErrorConstants.NOTFOUND_ERROR_EXAMPLE) })),
|
||||
@ApiResponse(responseCode = "401", description = "Unauthorized", content = @Content(mediaType = MediaType.APPLICATION_JSON_VALUE, examples = {
|
||||
@ExampleObject(value = ErrorConstants.UNAUTHORIZED_ERROR_EXAMPLE) })),
|
||||
@ApiResponse(responseCode = "400", description = "Bad Request", content = @Content(mediaType = MediaType.APPLICATION_JSON_VALUE, examples = {
|
||||
@ExampleObject(value = ErrorConstants.BADREQUEST_ERROR_EXAMPLE) })) })
|
||||
@GetMapping(value = "/beneficiary/{id}", produces = "application/json")
|
||||
ResponseEntity<Response<List<ApplicationAmendmentRequestResponse>>> getAllAmendmentRequestByBeneficiaryId(HttpServletRequest request,
|
||||
@Parameter(description = "Id", required = false) @PathVariable(value = "id",required = false) Long beneficiaryId);
|
||||
|
||||
}
|
||||
|
||||
@@ -71,4 +71,12 @@ public class ApplicationAmendmentRequestController implements ApplicationAmendme
|
||||
return ResponseEntity.status(HttpStatus.CREATED)
|
||||
.body(new Response<>(updateApplicationAmendment, Status.SUCCESS, Translator.toLocale(GepafinConstant.APPLICATION_AMENDMENT_UPDATE_SUCCESSFULLY_MSG)));
|
||||
}
|
||||
|
||||
@Override
|
||||
public ResponseEntity<Response<List<ApplicationAmendmentRequestResponse>>> getAllAmendmentRequestByBeneficiaryId(HttpServletRequest request, Long beneficiaryId) {
|
||||
log.info("Get All Application Amendment Request By Beneficiary ID");
|
||||
List<ApplicationAmendmentRequestResponse> applicationAmendmentRequestResponseList = applicationAmendmentRequestService.getAllAmendmentRequestByBeneficiaryId(request, beneficiaryId);
|
||||
return ResponseEntity.status(HttpStatus.CREATED)
|
||||
.body(new Response<>(applicationAmendmentRequestResponseList, Status.SUCCESS, Translator.toLocale(GepafinConstant.GET_APPLICATION_AMENDMENT_SUCCESS_MSG)));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user