updated Code
This commit is contained in:
@@ -351,46 +351,68 @@ public class ApplicationAmendmentRequestDao {
|
|||||||
return response;
|
return response;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private void updateApplicationFormFields(ApplicationAmendmentRequestEntity applicationAmendment, ApplicationFormFieldRequestBean updatedFormField) {
|
private void updateApplicationFormFields(ApplicationAmendmentRequestEntity applicationAmendment, ApplicationFormFieldRequestBean updatedFormField) {
|
||||||
// Convert fieldValue (object) to a comma-separated list of document IDs
|
List<String> documentIds;
|
||||||
List<String> documentIds = Arrays.asList(updatedFormField.getFieldValue().toString().split(","));
|
|
||||||
|
// 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<>();
|
List<String> validDocumentIds = new ArrayList<>();
|
||||||
|
|
||||||
for (String documentId : documentIds) {
|
for (String documentId : documentIds) {
|
||||||
documentId = documentId.trim(); // Remove any extra spaces
|
DocumentEntity documentEntity = documentService.validateDocument(Long.parseLong(documentId));
|
||||||
if (documentId.isEmpty()) {
|
if (documentEntity != null) {
|
||||||
log.warn("Encountered an empty document ID. Skipping.");
|
validDocumentIds.add(documentId);
|
||||||
continue;
|
} else {
|
||||||
}
|
log.warn("Document with ID {} does not exist. Skipping this ID.", documentId);
|
||||||
|
|
||||||
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);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!validDocumentIds.isEmpty()) {
|
if (!validDocumentIds.isEmpty()) {
|
||||||
ApplicationFormFieldEntity formEntity = applicationFormFieldRepository.findByFieldId(updatedFormField.getFieldId());
|
List<ApplicationFormEntity> applicationForms = applicationFormRepository.findByApplicationId(applicationAmendment.getApplicationId());
|
||||||
|
|
||||||
if (formEntity != null) {
|
boolean fieldUpdated = false;
|
||||||
formEntity.setFieldValue(String.join(",", validDocumentIds));
|
|
||||||
applicationFormFieldRepository.save(formEntity);
|
for (ApplicationFormEntity applicationForm : applicationForms) {
|
||||||
log.info("Updated field value for field ID {} with document IDs {}", updatedFormField.getFieldId(), String.join(",", validDocumentIds));
|
Optional<ApplicationFormFieldEntity> formFieldEntityOptional = applicationFormFieldRepository
|
||||||
} else {
|
.findByApplicationFormIdAndFieldId(applicationForm.getId(), updatedFormField.getFieldId());
|
||||||
log.warn("No ApplicationFormFieldEntity found with field ID {}. Skipping update.", 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 {
|
} else {
|
||||||
log.warn("No valid document IDs found for update. Skipping field ID {}", updatedFormField.getFieldId());
|
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 net.gepafin.tendermanagement.entities.ApplicationAmendmentRequestEntity;
|
||||||
import org.springframework.data.jpa.repository.JpaRepository;
|
import org.springframework.data.jpa.repository.JpaRepository;
|
||||||
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
|
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;
|
import java.util.Optional;
|
||||||
|
|
||||||
public interface ApplicationAmendmentRequestRepository extends JpaRepository<ApplicationAmendmentRequestEntity,Long>, JpaSpecificationExecutor<ApplicationAmendmentRequestEntity> {
|
public interface ApplicationAmendmentRequestRepository extends JpaRepository<ApplicationAmendmentRequestEntity,Long>, JpaSpecificationExecutor<ApplicationAmendmentRequestEntity> {
|
||||||
Optional<ApplicationAmendmentRequestEntity> findByIdAndIsDeletedFalse(Long id);
|
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);
|
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);
|
List<ApplicationAmendmentRequestResponse> getAllApplicationAmendmentRequest(HttpServletRequest request,Long userId);
|
||||||
ApplicationAmendmentRequestResponse updateApplicationAmendment(HttpServletRequest request, Long id, ApplicationAmendmentRequestBean applicationAmendmentRequestBean);
|
ApplicationAmendmentRequestResponse updateApplicationAmendment(HttpServletRequest request, Long id, ApplicationAmendmentRequestBean applicationAmendmentRequestBean);
|
||||||
ApplicationAmendmentRequestEntity validateApplicationAmendmentRequest(Long applicationAmendmentId);
|
ApplicationAmendmentRequestEntity validateApplicationAmendmentRequest(Long applicationAmendmentId);
|
||||||
|
List<ApplicationAmendmentRequestResponse> getAllAmendmentRequestByBeneficiaryId(HttpServletRequest request,Long beneficiaryId);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -63,5 +63,11 @@ public class ApplicationAmendmentRequestServiceImpl implements ApplicationAmendm
|
|||||||
return applicationAmendmentRequestDao.validateApplicationAmendmentRequest(applicationAmendmentId);
|
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 = "The Application Amendment id", required = true) @PathVariable("id") Long id,
|
||||||
@Parameter(description = "Assigned Application request object", required = true) @Valid @RequestBody ApplicationAmendmentRequestBean applicationAmendmentRequestBean);
|
@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)
|
return ResponseEntity.status(HttpStatus.CREATED)
|
||||||
.body(new Response<>(updateApplicationAmendment, Status.SUCCESS, Translator.toLocale(GepafinConstant.APPLICATION_AMENDMENT_UPDATE_SUCCESSFULLY_MSG)));
|
.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