updated Code

This commit is contained in:
harish
2024-10-28 16:06:37 +05:30
parent 58ef5dc80c
commit e99926086c
7 changed files with 88 additions and 28 deletions

View File

@@ -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());
}
}