From cbaf25801f1c214365992533f4acafe3c60d3e24 Mon Sep 17 00:00:00 2001 From: rajesh Date: Thu, 5 Dec 2024 22:12:24 +0530 Subject: [PATCH] updated code for get company delegation --- .../tendermanagement/dao/ApplicationDao.java | 12 ++++- .../dao/ApplicationEvaluationDao.java | 7 +++ .../tendermanagement/dao/DelegationDao.java | 46 ++++++++++--------- .../service/ApplicationEvaluationService.java | 2 + .../ApplicationEvaluationServiceImpl.java | 5 ++ 5 files changed, 49 insertions(+), 23 deletions(-) diff --git a/src/main/java/net/gepafin/tendermanagement/dao/ApplicationDao.java b/src/main/java/net/gepafin/tendermanagement/dao/ApplicationDao.java index e3726e41..1240aa90 100644 --- a/src/main/java/net/gepafin/tendermanagement/dao/ApplicationDao.java +++ b/src/main/java/net/gepafin/tendermanagement/dao/ApplicationDao.java @@ -14,6 +14,7 @@ import net.gepafin.tendermanagement.model.request.VersionHistoryRequest; import net.gepafin.tendermanagement.model.response.*; import net.gepafin.tendermanagement.repositories.*; import net.gepafin.tendermanagement.service.AmazonS3Service; +import net.gepafin.tendermanagement.service.ApplicationEvaluationService; import net.gepafin.tendermanagement.service.CallService; import net.gepafin.tendermanagement.service.CompanyService; import net.gepafin.tendermanagement.service.DocumentService; @@ -159,7 +160,7 @@ public class ApplicationDao { private HttpServletRequest request; @Autowired - private TokenProvider tokenProvider; + private ApplicationEvaluationService applicationEvaluationService; public ApplicationResponseBean createApplication(HttpServletRequest request, ApplicationRequestBean applicationRequestBean, Long formId, Long applicationId) { FormEntity formEntity = formService.validateForm(formId); @@ -1110,7 +1111,14 @@ public class ApplicationDao { public ApplicationSignedDocumentResponse getSignedDocument(HttpServletRequest request, Long applicationId) { ApplicationEntity applicationEntity = validateApplication(applicationId); - validator.validateUserWithCompany(request, applicationEntity.getCompanyId()); +// validator.validateUserWithCompany(request, applicationEntity.getCompanyId()); + + if (validator.checkIsPreInstructor()) { + ApplicationEvaluationEntity applicationEvaluationEntity = applicationEvaluationService.validateApplicationEvaluationByApplicationId(applicationId); + validator.validatePreInstructor(request, applicationEvaluationEntity.getUserId()); + } else { + validator.validateUserId(request, applicationEntity.getUserId()); + } ApplicationSignedDocumentEntity applicationSignedDocument = applicationSignedDocumentRepository .findByApplicationIdAndStatus(applicationId, ApplicationSignedDocumentStatusEnum.ACTIVE.getValue()); diff --git a/src/main/java/net/gepafin/tendermanagement/dao/ApplicationEvaluationDao.java b/src/main/java/net/gepafin/tendermanagement/dao/ApplicationEvaluationDao.java index 7c25401b..b8fc0b35 100644 --- a/src/main/java/net/gepafin/tendermanagement/dao/ApplicationEvaluationDao.java +++ b/src/main/java/net/gepafin/tendermanagement/dao/ApplicationEvaluationDao.java @@ -1396,5 +1396,12 @@ public class ApplicationEvaluationDao { } return null; } + + public ApplicationEvaluationEntity validateApplicationEvaluationByApplicationId(Long applicationId) { + return applicationEvaluationRepository + .findByApplicationIdAndIsDeletedFalse(applicationId) + .orElseThrow(() -> new ResourceNotFoundException(Status.NOT_FOUND, + Translator.toLocale(GepafinConstant.APPLICATION_EVALUATION_NOT_FOUND))); + } } diff --git a/src/main/java/net/gepafin/tendermanagement/dao/DelegationDao.java b/src/main/java/net/gepafin/tendermanagement/dao/DelegationDao.java index 17920473..670f9444 100644 --- a/src/main/java/net/gepafin/tendermanagement/dao/DelegationDao.java +++ b/src/main/java/net/gepafin/tendermanagement/dao/DelegationDao.java @@ -34,6 +34,7 @@ import net.gepafin.tendermanagement.model.response.UserResponseBean; import net.gepafin.tendermanagement.repositories.DocumentRepository; import net.gepafin.tendermanagement.repositories.UserCompanyDelegationRepository; import net.gepafin.tendermanagement.service.AmazonS3Service; +import net.gepafin.tendermanagement.service.ApplicationEvaluationService; import net.gepafin.tendermanagement.service.UserService; import net.gepafin.tendermanagement.util.DateTimeUtil; import net.gepafin.tendermanagement.util.Utils; @@ -87,7 +88,7 @@ public class DelegationDao { private ApplicationService applicationService; @Autowired - private ApplicationEvaluationRepository applicationEvaluationRepository; + private ApplicationEvaluationService applicationEvaluationService; public ByteArrayOutputStream generateDocument(Map placeholders, String templateName) { try { @@ -265,29 +266,11 @@ public class DelegationDao { } public CompanyDelegationResponse getCompanyDelegation(HttpServletRequest request, Long companyId, Long applicationId) { - if(companyId==null && applicationId==null){ - throw new CustomValidationException(Status.BAD_REQUEST,Translator.toLocale(GepafinConstant.ATLEAST_ONE_ID_REQUIRED)); - } - if(validator.checkIsPreInstructor()) { - ApplicationEvaluationEntity applicationEvaluationEntity = applicationEvaluationRepository.findByApplicationIdAndIsDeletedFalse(applicationId).orElseThrow(()-> - throw new ResourceNotFoundException(Status.NOT_FOUND, Translator.toLocale(GepafinConstant.APPLICATION_EVALUATION_NOT_FOUND, companyId)); - - validator.validateUserWithCompany(); - } else { - validator.validateUserWithCompany(); - } - Long userId=userEntity.getId(); - if(applicationId != null) { - ApplicationEntity application = applicationService.validateApplication(applicationId); - userId=application.getUserId(); - companyId=application.getCompanyId(); - } - UserWithCompanyEntity userWithCompanyEntity=companyService.getUserWithCompany(userId,companyId); + UserWithCompanyEntity userWithCompanyEntity= validateUserAndGetUserWithCompany(request, companyId, applicationId); UserCompanyDelegationEntity userCompanyDelegationEntity = userCompanyDelegationRepository - .findByUserIdAndUserWithCompanyIdAndStatus(userId, userWithCompanyEntity.getId(), + .findByUserIdAndUserWithCompanyIdAndStatus(userWithCompanyEntity.getUserId(), userWithCompanyEntity.getId(), UserCompanyDelegationStatusEnum.ACTIVE.getValue()); - companyDao.getUserWithCompany(userEntity.getId(), companyId); if(userCompanyDelegationEntity == null) { throw new ResourceNotFoundException(Status.NOT_FOUND, Translator.toLocale(GepafinConstant.DELEGATION_NOT_FOUND)); @@ -295,6 +278,27 @@ public class DelegationDao { return convertUserCompanyDelegationToCompanyDelegationResponse(userCompanyDelegationEntity); } + private UserWithCompanyEntity validateUserAndGetUserWithCompany(HttpServletRequest request, Long companyId, + Long applicationId) { + Long userId = null; + if (companyId == null && applicationId == null) { + throw new CustomValidationException(Status.BAD_REQUEST, + Translator.toLocale(GepafinConstant.ATLEAST_ONE_ID_REQUIRED)); + } + if (applicationId != null) { + ApplicationEntity application = applicationService.validateApplication(applicationId); + userId = application.getUserId(); + companyId = application.getCompanyId(); + } + if (validator.checkIsPreInstructor()) { + ApplicationEvaluationEntity applicationEvaluationEntity = applicationEvaluationService.validateApplicationEvaluationByApplicationId(applicationId); + validator.validatePreInstructor(request, applicationEvaluationEntity.getUserId()); + } else if (validator.checkIsBeneficiary()) { + userId = validator.validateUser(request).getId(); + } + return companyService.getUserWithCompany(userId, companyId); + } + public void deleteCompanyDelegation(UserEntity userEntity, Long companyId) { UserWithCompanyEntity userWithCompanyEntity=companyService.getUserWithCompany(userEntity.getId(),companyId); UserCompanyDelegationEntity userCompanyDelegationEntity = userCompanyDelegationRepository diff --git a/src/main/java/net/gepafin/tendermanagement/service/ApplicationEvaluationService.java b/src/main/java/net/gepafin/tendermanagement/service/ApplicationEvaluationService.java index c9f72e6a..c7bde2db 100644 --- a/src/main/java/net/gepafin/tendermanagement/service/ApplicationEvaluationService.java +++ b/src/main/java/net/gepafin/tendermanagement/service/ApplicationEvaluationService.java @@ -16,4 +16,6 @@ public interface ApplicationEvaluationService { ApplicationEvaluationResponse getApplicationEvaluationByApplicationId(HttpServletRequest request,Long applicationId,Long assignedApplicationId); ApplicationEvaluationEntity validateApplicationEvaluation(Long applicationEvaluationId); + + ApplicationEvaluationEntity validateApplicationEvaluationByApplicationId(Long applicationId); } diff --git a/src/main/java/net/gepafin/tendermanagement/service/impl/ApplicationEvaluationServiceImpl.java b/src/main/java/net/gepafin/tendermanagement/service/impl/ApplicationEvaluationServiceImpl.java index 30cdaf80..0a6feb1f 100644 --- a/src/main/java/net/gepafin/tendermanagement/service/impl/ApplicationEvaluationServiceImpl.java +++ b/src/main/java/net/gepafin/tendermanagement/service/impl/ApplicationEvaluationServiceImpl.java @@ -93,4 +93,9 @@ public class ApplicationEvaluationServiceImpl implements ApplicationEvaluationSe public ApplicationEvaluationEntity validateApplicationEvaluation(Long applicationEvaluationId) { return applicationEvaluationDao.validateApplicationEvaluation(applicationEvaluationId); } + + @Override + public ApplicationEvaluationEntity validateApplicationEvaluationByApplicationId(Long applicationId) { + return applicationEvaluationDao.validateApplicationEvaluationByApplicationId(applicationId); + } }