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());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user