diff --git a/src/main/java/net/gepafin/tendermanagement/dao/ApplicationAmendmentRequestDao.java b/src/main/java/net/gepafin/tendermanagement/dao/ApplicationAmendmentRequestDao.java index d0a6f0c8..185e8b45 100644 --- a/src/main/java/net/gepafin/tendermanagement/dao/ApplicationAmendmentRequestDao.java +++ b/src/main/java/net/gepafin/tendermanagement/dao/ApplicationAmendmentRequestDao.java @@ -539,13 +539,24 @@ public class ApplicationAmendmentRequestDao { return convertEntityToResponse(request); } - public ApplicationAmendmentRequestResponse getAmendmentByApplicationId(HttpServletRequest request, Long applicationId) { + public List getAmendmentByApplicationId(HttpServletRequest request, Long applicationId,List statuses) { log.info("Fetching the Amendment data from application id {}", applicationId); ApplicationEntity application = applicationService.validateApplication(applicationId); - ApplicationAmendmentRequestEntity applicationAmendmentRequestEntity=applicationAmendmentRequestRepository.findByApplicationIdAndIsDeletedFalse(application.getId()); - ApplicationAmendmentRequestResponse response=null; + List applicationAmendmentRequestEntity=applicationAmendmentRequestRepository.findByApplicationIdAndIsDeletedFalse(applicationId); + if(!statuses.isEmpty()) { + List statusStrings = statuses.stream().map(Enum::name).collect(Collectors.toList()); + applicationAmendmentRequestEntity = applicationAmendmentRequestRepository.findByApplicationIdAndStatusInAndIsDeletedFalse(application.getId(), statusStrings); + } if(!applicationAmendmentRequestEntity.isEmpty()) { + ApplicationAmendmentRequestEntity applicationAmendmentRequest=applicationAmendmentRequestEntity.get(0); + Optional entityOptional = applicationEvaluationRepository.findByIdAndIsDeletedFalse(applicationAmendmentRequest.getApplicationEvaluationEntity().getId()); + if (entityOptional.isPresent()) { + UserEntity user = validator.validatePreInstructor(request, entityOptional.get().getUserId()); + }} + List response=new ArrayList<>(); if(applicationAmendmentRequestEntity!=null) { - response = convertEntityToResponse(applicationAmendmentRequestEntity); + response= applicationAmendmentRequestEntity.stream() + .map(this::convertEntityToResponse) + .collect(Collectors.toList()); } return response; } diff --git a/src/main/java/net/gepafin/tendermanagement/dao/ApplicationDao.java b/src/main/java/net/gepafin/tendermanagement/dao/ApplicationDao.java index a51d9be1..1eb8017f 100644 --- a/src/main/java/net/gepafin/tendermanagement/dao/ApplicationDao.java +++ b/src/main/java/net/gepafin/tendermanagement/dao/ApplicationDao.java @@ -294,11 +294,11 @@ public class ApplicationDao { // return applicationResponses; // } - public List getAllApplications(UserEntity userEntity, Long callId, Long companyId,String status) { + public List getAllApplications(UserEntity userEntity, Long callId, Long companyId,List statusList) { log.info("Fetching applications for RoleType: {}", userEntity.getRoleEntity().getRoleType()); - Specification spec = search(userEntity, callId, companyId,status); + Specification spec = search(userEntity, callId, companyId,statusList); List applicationEntities = applicationRepository.findAll(spec); @@ -308,7 +308,7 @@ public class ApplicationDao { } - private Specification search(UserEntity userEntity, Long callId, Long companyId,String status) { + private Specification search(UserEntity userEntity, Long callId, Long companyId,List statusList) { return (root, query, builder) -> { Boolean isBeneficiary = validator.checkIsBeneficiary(); Predicate predicate = builder.isFalse(root.get("isDeleted")); @@ -321,8 +321,11 @@ public class ApplicationDao { if (companyId != null) { predicate = builder.and(predicate, builder.equal(root.get("company").get("id"), companyId)); } - if (status != null) { - predicate = builder.and(predicate, builder.equal(root.get("status"), status)); + if (statusList != null && !statusList.isEmpty()) { + List statusNames = statusList.stream() + .map(Enum::name) + .collect(Collectors.toList()); + predicate = builder.and(predicate, root.get("status").in(statusNames)); } predicate = builder.and(predicate, builder.equal(root.get("hubId"), userEntity.getHub().getId())); return predicate; diff --git a/src/main/java/net/gepafin/tendermanagement/repositories/ApplicationAmendmentRequestRepository.java b/src/main/java/net/gepafin/tendermanagement/repositories/ApplicationAmendmentRequestRepository.java index 972ebccd..88561517 100644 --- a/src/main/java/net/gepafin/tendermanagement/repositories/ApplicationAmendmentRequestRepository.java +++ b/src/main/java/net/gepafin/tendermanagement/repositories/ApplicationAmendmentRequestRepository.java @@ -23,7 +23,10 @@ public interface ApplicationAmendmentRequestRepository extends JpaRepository findByApplicationIdAndIsDeletedFalse(Long applicationId); + + List findByApplicationIdAndStatusInAndIsDeletedFalse(Long applicationId, List statuses); } diff --git a/src/main/java/net/gepafin/tendermanagement/service/ApplicationAmendmentRequestService.java b/src/main/java/net/gepafin/tendermanagement/service/ApplicationAmendmentRequestService.java index 2f536da7..678ff913 100644 --- a/src/main/java/net/gepafin/tendermanagement/service/ApplicationAmendmentRequestService.java +++ b/src/main/java/net/gepafin/tendermanagement/service/ApplicationAmendmentRequestService.java @@ -22,7 +22,7 @@ public interface ApplicationAmendmentRequestService { List getAllAmendmentRequestByBeneficiaryId(HttpServletRequest request,Long beneficiaryId); ApplicationAmendmentRequestResponse closeAmendmentRequest(HttpServletRequest request, Long id, CloseAmendmentRequest closeAmendmentRequest); ApplicationAmendmentRequestResponse extendResponseDays(HttpServletRequest request, Long id, Long addedDays); - public ApplicationAmendmentRequestResponse getAmendmentByApplicationId(HttpServletRequest request,Long applicationId); + public List getAmendmentByApplicationId(HttpServletRequest request,Long applicationId,List statuses); public ApplicationAmendmentRequestResponse updateApplicationAmendmentStatus(HttpServletRequest request, Long applicationAmendmentId, ApplicationAmendmentRequestEnum status); void sendReminderEmail(HttpServletRequest request,Long amendmentId); diff --git a/src/main/java/net/gepafin/tendermanagement/service/ApplicationService.java b/src/main/java/net/gepafin/tendermanagement/service/ApplicationService.java index d2bb4b19..9ef06c48 100644 --- a/src/main/java/net/gepafin/tendermanagement/service/ApplicationService.java +++ b/src/main/java/net/gepafin/tendermanagement/service/ApplicationService.java @@ -22,7 +22,7 @@ public interface ApplicationService { ApplicationGetResponseBean getApplicationByFormId(HttpServletRequest request, Long applicationId,Long formId); - List getAllApplications(HttpServletRequest request,Long callId, Long companyId,String status); + List getAllApplications(HttpServletRequest request,Long callId, Long companyId,List statusList); void deleteApplication(HttpServletRequest request, Long applicationId); diff --git a/src/main/java/net/gepafin/tendermanagement/service/impl/ApplicationAmendmentRequestServiceImpl.java b/src/main/java/net/gepafin/tendermanagement/service/impl/ApplicationAmendmentRequestServiceImpl.java index fa724c94..1f6f2f84 100644 --- a/src/main/java/net/gepafin/tendermanagement/service/impl/ApplicationAmendmentRequestServiceImpl.java +++ b/src/main/java/net/gepafin/tendermanagement/service/impl/ApplicationAmendmentRequestServiceImpl.java @@ -129,15 +129,8 @@ public class ApplicationAmendmentRequestServiceImpl implements ApplicationAmendm return applicationAmendmentRequestDao.extendResponseDays(id, addedDays); } - public ApplicationAmendmentRequestResponse getAmendmentByApplicationId(HttpServletRequest request, Long applicationId) { - ApplicationAmendmentRequestEntity amendment = applicationAmendmentRequestRepository.findByApplicationIdAndIsDeletedFalse(applicationId); - if(amendment!=null) { - - Optional entityOptional = applicationEvaluationRepository.findByIdAndIsDeletedFalse(amendment.getApplicationEvaluationEntity().getId()); - if (entityOptional.isPresent()) { - UserEntity user = validator.validatePreInstructor(request, entityOptional.get().getUserId()); - }} - return applicationAmendmentRequestDao.getAmendmentByApplicationId(request,applicationId); + public List getAmendmentByApplicationId(HttpServletRequest request, Long applicationId,List statuses) { + return applicationAmendmentRequestDao.getAmendmentByApplicationId(request,applicationId,statuses); } @Override public ApplicationAmendmentRequestResponse updateApplicationAmendmentStatus(HttpServletRequest request, Long applicationAmendmentId, ApplicationAmendmentRequestEnum status) { diff --git a/src/main/java/net/gepafin/tendermanagement/service/impl/ApplicationServiceImpl.java b/src/main/java/net/gepafin/tendermanagement/service/impl/ApplicationServiceImpl.java index 111ac099..886b91c1 100644 --- a/src/main/java/net/gepafin/tendermanagement/service/impl/ApplicationServiceImpl.java +++ b/src/main/java/net/gepafin/tendermanagement/service/impl/ApplicationServiceImpl.java @@ -86,12 +86,12 @@ public class ApplicationServiceImpl implements ApplicationService { @Override @Transactional(readOnly = true) - public List getAllApplications(HttpServletRequest request, Long callId, Long companyId , String status) { + public List getAllApplications(HttpServletRequest request, Long callId, Long companyId ,List statusList) { UserEntity userEntity = validator.validateUser(request); if (companyId != null) { validator.validateUserWithCompany(request, companyId); } - return applicationDao.getAllApplications(userEntity, callId, companyId , status); + return applicationDao.getAllApplications(userEntity, callId, companyId , statusList); } @Override @Transactional(rollbackFor = Exception.class) diff --git a/src/main/java/net/gepafin/tendermanagement/web/rest/api/ApplicationAmendmentRequestApi.java b/src/main/java/net/gepafin/tendermanagement/web/rest/api/ApplicationAmendmentRequestApi.java index 10c3128b..651680ff 100644 --- a/src/main/java/net/gepafin/tendermanagement/web/rest/api/ApplicationAmendmentRequestApi.java +++ b/src/main/java/net/gepafin/tendermanagement/web/rest/api/ApplicationAmendmentRequestApi.java @@ -145,7 +145,7 @@ public interface ApplicationAmendmentRequestApi { ResponseEntity> closeApplicationAmendmentRequest(HttpServletRequest request, @Parameter(description = "The Application Amendment id", required = true) @RequestParam("id") Long id, @Valid @RequestBody CloseAmendmentRequest closeAmendmentRequest); - @Operation(summary = "Api to get amendment process by application id", + @Operation(summary = "Api to get amendment process list by application id", responses = { @ApiResponse(responseCode = "200", description = "OK"), @ApiResponse(responseCode = "404", description = "Not Found", content = @Content(mediaType = MediaType.APPLICATION_JSON_VALUE, examples = { @@ -154,8 +154,10 @@ public interface ApplicationAmendmentRequestApi { @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 = "application/{id}", produces = "application/json") - ResponseEntity> getAmendmentByApplicationId(HttpServletRequest request, @Parameter(description = "The Application id", required = true) @PathVariable(value = "id", required = true) Long applicationId); + @GetMapping(value = "application/{applicationId}", produces = "application/json") + ResponseEntity>> getAmendmentByApplicationId(HttpServletRequest request, @Parameter(description = "The Application id", required = true) @PathVariable(value = "applicationId", required = true) Long applicationId, + @Parameter(description = "List of amendment statuses") @RequestParam(value = "statuses", required = false) List statuses + ); @Operation(summary = "Api to update application amendment status", responses = { diff --git a/src/main/java/net/gepafin/tendermanagement/web/rest/api/ApplicationApi.java b/src/main/java/net/gepafin/tendermanagement/web/rest/api/ApplicationApi.java index fcfbe2ff..700bf353 100644 --- a/src/main/java/net/gepafin/tendermanagement/web/rest/api/ApplicationApi.java +++ b/src/main/java/net/gepafin/tendermanagement/web/rest/api/ApplicationApi.java @@ -72,7 +72,7 @@ public interface ApplicationApi { ResponseEntity>> getAllApplications(HttpServletRequest request, @Parameter(description = "The call id", required = false) @RequestParam(value = "callId", required = false) Long callId, @Parameter(description = "The company id", required = false) @RequestParam(value = "companyId", required = false) Long companyId, - @Parameter(description = "Application status" ,required = false) @RequestParam(value = "status",required = false)String status); + @Parameter(description = "Application statuses" ,required = false) @RequestParam(value = "statuses",required = false) List statusList); @Operation(summary = "Api to delete application", responses = { diff --git a/src/main/java/net/gepafin/tendermanagement/web/rest/api/impl/ApplicationAmendmentRequestController.java b/src/main/java/net/gepafin/tendermanagement/web/rest/api/impl/ApplicationAmendmentRequestController.java index 1934ec5b..bd66efd1 100644 --- a/src/main/java/net/gepafin/tendermanagement/web/rest/api/impl/ApplicationAmendmentRequestController.java +++ b/src/main/java/net/gepafin/tendermanagement/web/rest/api/impl/ApplicationAmendmentRequestController.java @@ -105,8 +105,8 @@ public class ApplicationAmendmentRequestController implements ApplicationAmendme .body(new Response<>(response, Status.SUCCESS, Translator.toLocale(GepafinConstant.RESPONSE_DAYS_EXTENDED_SUCCESS_MSG))); } @Override - public ResponseEntity> getAmendmentByApplicationId(HttpServletRequest request, Long applicationId) { - ApplicationAmendmentRequestResponse applicationAmendmentBean = applicationAmendmentRequestService.getAmendmentByApplicationId(request,applicationId); + public ResponseEntity>> getAmendmentByApplicationId(HttpServletRequest request, Long applicationId,List statuses) { + List applicationAmendmentBean = applicationAmendmentRequestService.getAmendmentByApplicationId(request,applicationId,statuses); return ResponseEntity.status(HttpStatus.OK) .body(new Response<>(applicationAmendmentBean, Status.SUCCESS, Translator.toLocale(GepafinConstant.APPLICATION_DATA_FOR_AMENDMENT_SUCCESS_MSG))); } diff --git a/src/main/java/net/gepafin/tendermanagement/web/rest/api/impl/ApplicationApiController.java b/src/main/java/net/gepafin/tendermanagement/web/rest/api/impl/ApplicationApiController.java index 71dc2421..27ea0bb7 100644 --- a/src/main/java/net/gepafin/tendermanagement/web/rest/api/impl/ApplicationApiController.java +++ b/src/main/java/net/gepafin/tendermanagement/web/rest/api/impl/ApplicationApiController.java @@ -76,8 +76,8 @@ public class ApplicationApiController implements ApplicationApi { } @Override - public ResponseEntity>> getAllApplications(HttpServletRequest request, Long callId, Long companyId, String status) { - List applications = applicationService.getAllApplications(request, callId, companyId,status); + public ResponseEntity>> getAllApplications(HttpServletRequest request, Long callId, Long companyId, List statusList) { + List applications = applicationService.getAllApplications(request, callId, companyId,statusList); log.info("Get All Applications"); return ResponseEntity.status(HttpStatus.OK) .body(new Response<>(applications, Status.SUCCESS, Translator.toLocale(GepafinConstant.GET_APPLICATION_SUCCESS_MSG)));