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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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