From dcaa7699037f985717a93d1c99bc2d3dbc0da08f Mon Sep 17 00:00:00 2001 From: nisha Date: Wed, 4 Dec 2024 20:02:45 +0530 Subject: [PATCH 1/3] Added json field in company --- .../constants/GepafinConstant.java | 1 + .../tendermanagement/dao/CompanyDao.java | 15 ++++++++- .../tendermanagement/dao/VatCheckDao.java | 33 +++++++++++-------- .../entities/CompanyEntity.java | 3 ++ .../model/request/CompanyRequest.java | 2 ++ .../model/response/VatCheckResponseBean.java | 12 +++++++ .../service/CompanyService.java | 4 +-- .../service/impl/CompanyServiceImpl.java | 3 +- .../web/rest/api/CompanyApi.java | 5 +-- .../rest/api/impl/CompanyApiController.java | 7 ++-- .../db/changelog/db.changelog-1.0.0.xml | 8 ++++- src/main/resources/message_en.properties | 1 + src/main/resources/message_it.properties | 1 + 13 files changed, 71 insertions(+), 24 deletions(-) create mode 100644 src/main/java/net/gepafin/tendermanagement/model/response/VatCheckResponseBean.java diff --git a/src/main/java/net/gepafin/tendermanagement/constants/GepafinConstant.java b/src/main/java/net/gepafin/tendermanagement/constants/GepafinConstant.java index dbf39e8f..11f91511 100644 --- a/src/main/java/net/gepafin/tendermanagement/constants/GepafinConstant.java +++ b/src/main/java/net/gepafin/tendermanagement/constants/GepafinConstant.java @@ -305,5 +305,6 @@ public class GepafinConstant { public static final String USER_ID = "userId"; public static final String LOGIN_ATTEMPT_ID = "loginAttemptId"; public static final String USER_ACTION_ID = "userActionId"; + public static final String VALID_VATNUMBER_MSG = "valid.vatnumber.message"; } diff --git a/src/main/java/net/gepafin/tendermanagement/dao/CompanyDao.java b/src/main/java/net/gepafin/tendermanagement/dao/CompanyDao.java index 632d3226..e6a88c66 100644 --- a/src/main/java/net/gepafin/tendermanagement/dao/CompanyDao.java +++ b/src/main/java/net/gepafin/tendermanagement/dao/CompanyDao.java @@ -2,6 +2,7 @@ package net.gepafin.tendermanagement.dao; import java.util.EnumSet; import java.util.List; +import java.util.Map; import jakarta.servlet.http.HttpServletRequest; import net.gepafin.tendermanagement.entities.*; @@ -78,6 +79,8 @@ public class CompanyDao { } else { validateCompany(userEntity, companyRequest); CompanyEntity companyEntity = convertCompanyRequestToCompanyEntity(userEntity, companyRequest); + companyEntity.setJson(Utils.convertMapIntoJsonString(companyRequest.getVatCheckResponse()) ); + CompanyEntity companyData = companyRepository.save(companyEntity); /** This code is responsible for adding a version history log for "creating company" operation. **/ @@ -178,7 +181,6 @@ public class CompanyDao { CompanyEntity oldCompanyData = Utils.getClonedEntityForData(companyEntity); setIfUpdated(companyEntity::getCompanyName, companyEntity::setCompanyName, companyRequest.getCompanyName()); - setIfUpdated(companyEntity::getVatNumber, companyEntity::setVatNumber, companyRequest.getVatNumber()); setIfUpdated(companyEntity::getCodiceFiscale, companyEntity::setCodiceFiscale, companyRequest.getCodiceFiscale()); setIfUpdated(companyEntity::getAddress, companyEntity::setAddress, companyRequest.getAddress()); setIfUpdated(companyEntity::getPhoneNumber, companyEntity::setPhoneNumber, companyRequest.getPhoneNumber()); @@ -192,6 +194,17 @@ public class CompanyDao { setIfUpdated(companyEntity::getAnnualRevenue, companyEntity::setAnnualRevenue, companyRequest.getAnnualRevenue()); setIfUpdated(companyEntity::getContactName, companyEntity::setContactName, companyRequest.getContactName()); setIfUpdated(companyEntity::getContactEmail, companyEntity::setContactEmail, companyRequest.getContactEmail()); + + if(StringUtils.isNotBlank(companyRequest.getVatNumber())) { + CompanyEntity existingCompany = companyRepository.findByVatNumberAndHubId(companyRequest.getVatNumber(), userEntity.getHub().getId()); + if(existingCompany!=null){ + throw new CustomValidationException(Status.BAD_REQUEST, Translator.toLocale(GepafinConstant.VATNUMBER_ALREADY_EXISTS)); + } + companyEntity.setVatNumber(companyRequest.getVatNumber()); + String responseJson = companyRequest.getVatCheckResponse() != null ? Utils.convertMapIntoJsonString(companyRequest.getVatCheckResponse()) : null; + setIfUpdated(companyEntity::getJson, companyEntity::setJson, responseJson); + + } companyRepository.save(companyEntity); /** This code is responsible for adding a version history log for the "Update company" operation. **/ diff --git a/src/main/java/net/gepafin/tendermanagement/dao/VatCheckDao.java b/src/main/java/net/gepafin/tendermanagement/dao/VatCheckDao.java index 52321b43..85af1388 100644 --- a/src/main/java/net/gepafin/tendermanagement/dao/VatCheckDao.java +++ b/src/main/java/net/gepafin/tendermanagement/dao/VatCheckDao.java @@ -4,15 +4,11 @@ import feign.FeignException; import jakarta.servlet.http.HttpServletRequest; import net.gepafin.tendermanagement.config.Translator; import net.gepafin.tendermanagement.constants.GepafinConstant; -import net.gepafin.tendermanagement.enums.UserActionContextEnum; -import net.gepafin.tendermanagement.enums.UserActionLogsEnum; -import net.gepafin.tendermanagement.model.request.UserActionRequest; +import net.gepafin.tendermanagement.entities.CompanyEntity; +import net.gepafin.tendermanagement.model.response.VatCheckResponseBean; import net.gepafin.tendermanagement.service.feignClient.VatCheckService; import net.gepafin.tendermanagement.util.LoggingUtil; import net.gepafin.tendermanagement.util.Utils; -import net.gepafin.tendermanagement.web.rest.api.errors.CustomValidationException; -import net.gepafin.tendermanagement.web.rest.api.errors.Status; - import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -49,10 +45,13 @@ public class VatCheckDao { @Autowired private HttpServletRequest request; - public Map checkVatNumberApi(String vatNumber) { - + public VatCheckResponseBean checkVatNumberApi(String vatNumber) { + VatCheckResponseBean vatCheckResponseBean = new VatCheckResponseBean(); + vatCheckResponseBean.setValid(false); + vatCheckResponseBean.setMessage(Translator.toLocale(GepafinConstant.INVALID_VATNUMBER)); if (Boolean.TRUE.equals(Boolean.parseBoolean(isVatCheckGloballyDisabled))) { - return new HashMap<>(); + vatCheckResponseBean.setMessage(Translator.toLocale(GepafinConstant.INVALID_VATNUMBER)); + return vatCheckResponseBean; } Map responseBody = new HashMap<>(); try { @@ -77,22 +76,28 @@ public class VatCheckDao { responseBody.remove("id"); Map data = new LinkedHashMap<>(); data.put("data", responseBody); - return data; + vatCheckResponseBean.setValid(true); + vatCheckResponseBean.setMessage(Translator.toLocale(GepafinConstant.VALID_VATNUMBER_MSG)); + vatCheckResponseBean.setVatCheckResponse(data); } } } catch (FeignException ex) { log.error("Exception occurred while checking vat number: {0}", ex); Utils.callException(ex.status(), ex); } - return responseBody; + return vatCheckResponseBean; } - public Map checkVatNumber(String vatNumber) { + public VatCheckResponseBean checkVatNumber(String vatNumber) { try { return checkVatNumberApi(vatNumber); } catch (Exception e) { - throw new CustomValidationException(Status.VALIDATION_ERROR, - Translator.toLocale(GepafinConstant.INVALID_VATNUMBER)); + log.error("Error in checkVatNumber: {}", e.getMessage()); + VatCheckResponseBean vatCheckResponseBean = new VatCheckResponseBean(); + vatCheckResponseBean.setValid(false); + vatCheckResponseBean.setMessage(Translator.toLocale(GepafinConstant.INVALID_VATNUMBER)); + return vatCheckResponseBean; } } + } diff --git a/src/main/java/net/gepafin/tendermanagement/entities/CompanyEntity.java b/src/main/java/net/gepafin/tendermanagement/entities/CompanyEntity.java index ed50268f..1d8ef4ca 100644 --- a/src/main/java/net/gepafin/tendermanagement/entities/CompanyEntity.java +++ b/src/main/java/net/gepafin/tendermanagement/entities/CompanyEntity.java @@ -62,5 +62,8 @@ public class CompanyEntity extends BaseEntity{ @ManyToOne @JoinColumn(name = "HUB_ID") private HubEntity hub; + + @Column(name = "JSON") + private String json; } diff --git a/src/main/java/net/gepafin/tendermanagement/model/request/CompanyRequest.java b/src/main/java/net/gepafin/tendermanagement/model/request/CompanyRequest.java index b9f43932..22ade9a5 100644 --- a/src/main/java/net/gepafin/tendermanagement/model/request/CompanyRequest.java +++ b/src/main/java/net/gepafin/tendermanagement/model/request/CompanyRequest.java @@ -1,6 +1,7 @@ package net.gepafin.tendermanagement.model.request; import java.math.BigDecimal; +import java.util.Map; import lombok.Data; @@ -23,4 +24,5 @@ public class CompanyRequest { private Boolean isLegalRepresentant; private String contactName; private String contactEmail; + private Map vatCheckResponse; } diff --git a/src/main/java/net/gepafin/tendermanagement/model/response/VatCheckResponseBean.java b/src/main/java/net/gepafin/tendermanagement/model/response/VatCheckResponseBean.java new file mode 100644 index 00000000..611925d3 --- /dev/null +++ b/src/main/java/net/gepafin/tendermanagement/model/response/VatCheckResponseBean.java @@ -0,0 +1,12 @@ +package net.gepafin.tendermanagement.model.response; +import lombok.Getter; +import lombok.Setter; +import java.util.Map; + +@Getter +@Setter +public class VatCheckResponseBean { + private Boolean valid; + private Map vatCheckResponse; + private String message; +} diff --git a/src/main/java/net/gepafin/tendermanagement/service/CompanyService.java b/src/main/java/net/gepafin/tendermanagement/service/CompanyService.java index 2896419a..deb5b2f5 100644 --- a/src/main/java/net/gepafin/tendermanagement/service/CompanyService.java +++ b/src/main/java/net/gepafin/tendermanagement/service/CompanyService.java @@ -4,6 +4,7 @@ import java.io.ByteArrayOutputStream; import java.util.List; import java.util.Map; +import net.gepafin.tendermanagement.model.response.VatCheckResponseBean; import org.springframework.web.multipart.MultipartFile; import jakarta.servlet.http.HttpServletRequest; @@ -26,7 +27,7 @@ public interface CompanyService { List getCompanyByUserId(HttpServletRequest request, Long userId); - Map checkVatNumber(HttpServletRequest request, String vatNumber); + VatCheckResponseBean checkVatNumber(HttpServletRequest request, String vatNumber); CompanyEntity validateCompany(Long companyId); @@ -44,5 +45,4 @@ public interface CompanyService { UserWithCompanyEntity getUserWithCompanyEntity(Long userId,Long companyId); void removeCompanyFromList(HttpServletRequest request, Long companyId); - } diff --git a/src/main/java/net/gepafin/tendermanagement/service/impl/CompanyServiceImpl.java b/src/main/java/net/gepafin/tendermanagement/service/impl/CompanyServiceImpl.java index 3f5e326f..a9095c8a 100644 --- a/src/main/java/net/gepafin/tendermanagement/service/impl/CompanyServiceImpl.java +++ b/src/main/java/net/gepafin/tendermanagement/service/impl/CompanyServiceImpl.java @@ -4,6 +4,7 @@ import java.io.ByteArrayOutputStream; import java.util.List; import java.util.Map; +import net.gepafin.tendermanagement.model.response.VatCheckResponseBean; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -78,7 +79,7 @@ public class CompanyServiceImpl implements CompanyService { @Override @Transactional(readOnly = true) - public Map checkVatNumber(HttpServletRequest request, String vatNumber) { + public VatCheckResponseBean checkVatNumber(HttpServletRequest request, String vatNumber) { return vatCheckDao.checkVatNumber(vatNumber); } @Override diff --git a/src/main/java/net/gepafin/tendermanagement/web/rest/api/CompanyApi.java b/src/main/java/net/gepafin/tendermanagement/web/rest/api/CompanyApi.java index bc016334..4c14a114 100644 --- a/src/main/java/net/gepafin/tendermanagement/web/rest/api/CompanyApi.java +++ b/src/main/java/net/gepafin/tendermanagement/web/rest/api/CompanyApi.java @@ -3,6 +3,7 @@ package net.gepafin.tendermanagement.web.rest.api; import java.util.List; import java.util.Map; +import net.gepafin.tendermanagement.model.response.VatCheckResponseBean; import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.DeleteMapping; @@ -94,8 +95,8 @@ public interface CompanyApi { @ApiResponse(responseCode = "400", description = "Bad Request", content = @Content(mediaType = MediaType.APPLICATION_JSON_VALUE, examples = { @ExampleObject(value = ErrorConstants.BADREQUEST_ERROR_EXAMPLE) })) }) @GetMapping(value = "/vatNumber", produces = { "application/json" }) - ResponseEntity>> checkVatNumber(HttpServletRequest request, - @Parameter(description = "The vatNumber of company", required = true) @RequestParam("vatNumber") String vatNumber); + ResponseEntity> checkVatNumber(HttpServletRequest request, + @Parameter(description = "The vatNumber of company", required = true) @RequestParam("vatNumber") String vatNumber); @Operation(summary = "Api to download company delegation template", responses = { @ApiResponse(responseCode = "200", description = "OK"), @ApiResponse(responseCode = "404", description = "Not Found", content = @Content(mediaType = MediaType.APPLICATION_JSON_VALUE, examples = { diff --git a/src/main/java/net/gepafin/tendermanagement/web/rest/api/impl/CompanyApiController.java b/src/main/java/net/gepafin/tendermanagement/web/rest/api/impl/CompanyApiController.java index ef73e985..d9298c51 100644 --- a/src/main/java/net/gepafin/tendermanagement/web/rest/api/impl/CompanyApiController.java +++ b/src/main/java/net/gepafin/tendermanagement/web/rest/api/impl/CompanyApiController.java @@ -7,6 +7,7 @@ import java.util.Map; import net.gepafin.tendermanagement.enums.UserActionContextEnum; import net.gepafin.tendermanagement.enums.UserActionLogsEnum; import net.gepafin.tendermanagement.model.request.UserActionRequest; +import net.gepafin.tendermanagement.model.response.VatCheckResponseBean; import net.gepafin.tendermanagement.util.LoggingUtil; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -111,15 +112,15 @@ public class CompanyApiController implements CompanyApi{ } @Override - public ResponseEntity>> checkVatNumber(HttpServletRequest request, String vatNumber) { + public ResponseEntity> checkVatNumber(HttpServletRequest request, String vatNumber) { log.info("check VatNumber with: {}", vatNumber); /** This code is responsible for creating user action logs for the "Check vat number" operation. **/ loggingUtil.logUserAction(UserActionRequest.builder().request(request).actionType(UserActionLogsEnum.VIEW).actionContext(UserActionContextEnum.CHECK_COMPANY_VAT_NUMBER).build()); - Map data = companyService.checkVatNumber(request, vatNumber); + VatCheckResponseBean vatCheckResponseBean = companyService.checkVatNumber(request, vatNumber); return ResponseEntity.status(HttpStatus.OK) - .body(new Response<>(data, Status.SUCCESS, Translator.toLocale(GepafinConstant.CHECK_VATNUMBER_SUCCESS_MSG))); + .body(new Response<>(vatCheckResponseBean, Status.SUCCESS, Translator.toLocale(GepafinConstant.CHECK_VATNUMBER_SUCCESS_MSG))); } @Override diff --git a/src/main/resources/db/changelog/db.changelog-1.0.0.xml b/src/main/resources/db/changelog/db.changelog-1.0.0.xml index 52a7dae3..2d0b51b1 100644 --- a/src/main/resources/db/changelog/db.changelog-1.0.0.xml +++ b/src/main/resources/db/changelog/db.changelog-1.0.0.xml @@ -1961,5 +1961,11 @@ - + + + + + + + diff --git a/src/main/resources/message_en.properties b/src/main/resources/message_en.properties index d6aa4578..1549bcfe 100644 --- a/src/main/resources/message_en.properties +++ b/src/main/resources/message_en.properties @@ -313,3 +313,4 @@ company.id.required.for.preferred.call=Company ID is required when requesting on response.days.not.null=Response days should not be null and greater than zero. application.cannot.approved.or.rejected=Application cannot be approved and rejected because amendment is active. +valid.vatnumber.message=The VAT number is valid. diff --git a/src/main/resources/message_it.properties b/src/main/resources/message_it.properties index 051ed432..73bf149a 100644 --- a/src/main/resources/message_it.properties +++ b/src/main/resources/message_it.properties @@ -307,3 +307,4 @@ user.must.be.associated.with.company.to.create.application=Devi essere associato company.id.required.for.preferred.call=ID azienda obbligatorio quando si richiedono solo chiamate preferite. response.days.not.null=I giorni di risposta non devono essere nulli e maggiori di zero. application.cannot.approved.or.rejected=La domanda non può essere approvata o rifiutata perché l'emendamento è attivo. +valid.vatnumber.message=Il numero di partita IVA è valido. From a30637ddaa59370d533d07af4b371541e5a7fea2 Mon Sep 17 00:00:00 2001 From: nisha Date: Thu, 19 Dec 2024 14:56:57 +0530 Subject: [PATCH 2/3] Changes in company json field --- .../tendermanagement/dao/CompanyDao.java | 100 +++++++++++------- .../entities/CompanyEntity.java | 14 --- .../entities/UserWithCompanyEntity.java | 16 +++ .../db/changelog/db.changelog-1.0.0.xml | 22 ++-- 4 files changed, 93 insertions(+), 59 deletions(-) diff --git a/src/main/java/net/gepafin/tendermanagement/dao/CompanyDao.java b/src/main/java/net/gepafin/tendermanagement/dao/CompanyDao.java index e6a88c66..32d7e42e 100644 --- a/src/main/java/net/gepafin/tendermanagement/dao/CompanyDao.java +++ b/src/main/java/net/gepafin/tendermanagement/dao/CompanyDao.java @@ -67,7 +67,7 @@ public class CompanyDao { if (existingCompany != null) { UserWithCompanyEntity existingRelation = userWithCompanyRepository.findByUserIdAndCompanyIdAndIsDeletedFalse(userEntity.getId(), existingCompany.getId()).orElse(null); if (existingRelation == null) { - userWithCompanyEntity = createUserWithCompanyRelation(userEntity, existingCompany, companyRequest.getIsLegalRepresentant()); + userWithCompanyEntity = createUserWithCompanyRelation(userEntity, existingCompany, companyRequest.getIsLegalRepresentant(),companyRequest.getVatCheckResponse()); /** This code is responsible for adding a version history log for "adding user with company" operation. **/ loggingUtil.addVersionHistory( @@ -79,14 +79,12 @@ public class CompanyDao { } else { validateCompany(userEntity, companyRequest); CompanyEntity companyEntity = convertCompanyRequestToCompanyEntity(userEntity, companyRequest); - companyEntity.setJson(Utils.convertMapIntoJsonString(companyRequest.getVatCheckResponse()) ); - CompanyEntity companyData = companyRepository.save(companyEntity); /** This code is responsible for adding a version history log for "creating company" operation. **/ loggingUtil.addVersionHistory(VersionHistoryRequest.builder().request(request).actionType(VersionActionTypeEnum.INSERT).oldData(null).newData(companyData).build()); - userWithCompanyEntity = createUserWithCompanyRelation(userEntity, companyEntity, companyRequest.getIsLegalRepresentant()); + userWithCompanyEntity = createUserWithCompanyRelation(userEntity, companyEntity, companyRequest.getIsLegalRepresentant(),companyRequest.getVatCheckResponse()); return convertCompanyEntityToCompanyResponse(companyEntity, userWithCompanyEntity); } @@ -110,7 +108,7 @@ public class CompanyDao { } } - private UserWithCompanyEntity createUserWithCompanyRelation(UserEntity userEntity, CompanyEntity companyEntity, Boolean isLegalRepresentant) { + private UserWithCompanyEntity createUserWithCompanyRelation(UserEntity userEntity, CompanyEntity companyEntity, Boolean isLegalRepresentant,Map vatCheckResponse) { UserWithCompanyEntity userWithCompanyEntity = new UserWithCompanyEntity(); if (userEntity.getBeneficiary() != null) { @@ -120,6 +118,11 @@ public class CompanyDao { userWithCompanyEntity.setCompanyId(companyEntity.getId()); userWithCompanyEntity.setUserId(userEntity.getId()); userWithCompanyEntity.setIsLegalRepresentant(isLegalRepresentant); + userWithCompanyEntity.setEmail(companyEntity.getEmail()); + userWithCompanyEntity.setPec(companyEntity.getPec()); + userWithCompanyEntity.setContactName(companyEntity.getContactName()); + userWithCompanyEntity.setContactEmail(companyEntity.getContactEmail()); + userWithCompanyEntity.setJson(Utils.convertMapIntoJsonString(vatCheckResponse) ); UserWithCompanyEntity userWithCompany = userWithCompanyRepository.save(userWithCompanyEntity); /** This code is responsible for adding a version history log for the "adding user with company" operation. **/ @@ -201,8 +204,6 @@ public class CompanyDao { throw new CustomValidationException(Status.BAD_REQUEST, Translator.toLocale(GepafinConstant.VATNUMBER_ALREADY_EXISTS)); } companyEntity.setVatNumber(companyRequest.getVatNumber()); - String responseJson = companyRequest.getVatCheckResponse() != null ? Utils.convertMapIntoJsonString(companyRequest.getVatCheckResponse()) : null; - setIfUpdated(companyEntity::getJson, companyEntity::setJson, responseJson); } companyRepository.save(companyEntity); @@ -214,8 +215,15 @@ public class CompanyDao { UserWithCompanyEntity userWithCompanyEntity = getUserWithCompany(userEntity.getId(), companyId); //cloned entity for old data UserWithCompanyEntity oldUserWithCompanyData = Utils.getClonedEntityForData(userWithCompanyEntity); - - Utils.setIfUpdated(userWithCompanyEntity::getIsLegalRepresentant, userWithCompanyEntity::setIsLegalRepresentant, companyRequest.getIsLegalRepresentant()); + if(StringUtils.isNotBlank(companyRequest.getVatNumber())) { + String responseJson = companyRequest.getVatCheckResponse() != null ? Utils.convertMapIntoJsonString(companyRequest.getVatCheckResponse()) : null; + setIfUpdated(userWithCompanyEntity::getJson, userWithCompanyEntity::setJson, responseJson); + } + setIfUpdated(userWithCompanyEntity::getPec, userWithCompanyEntity::setPec, userWithCompanyEntity.getPec()); + setIfUpdated(userWithCompanyEntity::getEmail, userWithCompanyEntity::setEmail, userWithCompanyEntity.getEmail()); + setIfUpdated(userWithCompanyEntity::getContactName, userWithCompanyEntity::setContactName, companyRequest.getContactName()); + setIfUpdated(userWithCompanyEntity::getContactEmail, userWithCompanyEntity::setContactEmail, companyRequest.getContactEmail()); + setIfUpdated(userWithCompanyEntity::getIsLegalRepresentant, userWithCompanyEntity::setIsLegalRepresentant, companyRequest.getIsLegalRepresentant()); userWithCompanyEntity = userWithCompanyRepository.save(userWithCompanyEntity); /** This code is responsible for adding a version history log for the "Update company" operation. **/ @@ -267,7 +275,7 @@ public class CompanyDao { return userWithCompanyRepository.findByUserIdAndCompanyIdAndIsDeletedFalse(userId, companyId).orElseThrow(() -> new ForbiddenAccessException(Status.FORBIDDEN, Translator.toLocale(GepafinConstant.PERMISSION_DENIED))); } - + public UserWithCompanyEntity getUserWithCompany(Long userId, Long compnayId) { return userWithCompanyRepository.findByUserIdAndCompanyIdAndIsDeletedFalse(userId, compnayId).orElseThrow( () -> new ResourceNotFoundException(Status.NOT_FOUND, Translator.toLocale(GepafinConstant.USER_COMPANY_RELATION_NOT_FOUND))); @@ -290,39 +298,59 @@ public class CompanyDao { throw new CustomValidationException(Status.BAD_REQUEST, Translator.toLocale(GepafinConstant.CANNOT_DELETE_COMPANY_WITH_APPLICATION_SUBMITT)); } - for(ApplicationEntity application:userApplications){ - ApplicationEntity oldApplication = Utils.getClonedEntityForData(application); - application.setIsDeleted(Boolean.TRUE); + userApplications = userApplications.stream() + .peek(application -> { + ApplicationEntity oldApplication = Utils.getClonedEntityForData(application); + application.setIsDeleted(Boolean.TRUE); - /** This code is responsible for adding a version history log for the "Soft delete application" operation. **/ - loggingUtil.addVersionHistory( - VersionHistoryRequest.builder().request(request).actionType(VersionActionTypeEnum.SOFT_DELETE).oldData(oldApplication).newData(application).build()); - - } + /** This code is responsible for adding a version history log for the "Soft delete Faq" operation. **/ + loggingUtil.addVersionHistory( + VersionHistoryRequest.builder() + .request(request) + .actionType(VersionActionTypeEnum.SOFT_DELETE) + .oldData(oldApplication) + .newData(application) + .build() + ); + }) + .toList(); applicationRepository.saveAll(userApplications); - for(FaqEntity faq:faqs){ - FaqEntity oldFaq = Utils.getClonedEntityForData(faq); - faq.setIsDeleted(Boolean.TRUE); - - /** This code is responsible for adding a version history log for the "Soft delete Faq" operation. **/ - loggingUtil.addVersionHistory( - VersionHistoryRequest.builder().request(request).actionType(VersionActionTypeEnum.SOFT_DELETE).oldData(oldFaq).newData(faq).build()); - } + faqs = faqs.stream() + .peek(faq -> { + FaqEntity oldFaq = Utils.getClonedEntityForData(faq); + faq.setIsDeleted(Boolean.TRUE); + /** This code is responsible for adding a version history log for the "Soft delete Faq" operation. **/ + loggingUtil.addVersionHistory( + VersionHistoryRequest.builder() + .request(request) + .actionType(VersionActionTypeEnum.SOFT_DELETE) + .oldData(oldFaq) + .newData(faq) + .build() + ); + }) + .toList(); faqRepository.saveAll(faqs); - for(BeneficiaryPreferredCallEntity beneficiaryPreferredCall:preferredCallEntities){ - BeneficiaryPreferredCallEntity oldPreferredCall = Utils.getClonedEntityForData(beneficiaryPreferredCall); - beneficiaryPreferredCall.setIsDeleted(Boolean.TRUE); - - /** This code is responsible for adding a version history log for the "Soft Delete BeneficiaryPreferredCall" operation. **/ - loggingUtil.addVersionHistory( - VersionHistoryRequest.builder().request(request).actionType(VersionActionTypeEnum.SOFT_DELETE).oldData(oldPreferredCall).newData(beneficiaryPreferredCall).build()); - - } + preferredCallEntities = preferredCallEntities.stream() + .peek(beneficiaryPreferredCall -> { + BeneficiaryPreferredCallEntity oldPreferredCall = Utils.getClonedEntityForData(beneficiaryPreferredCall); + beneficiaryPreferredCall.setIsDeleted(Boolean.TRUE); + /** This code is responsible for adding a version history log for the "Soft Delete BeneficiaryPreferredCall" operation. **/ + loggingUtil.addVersionHistory( + VersionHistoryRequest.builder() + .request(request) + .actionType(VersionActionTypeEnum.SOFT_DELETE) + .oldData(oldPreferredCall) + .newData(beneficiaryPreferredCall) + .build() + ); + }) + .toList(); beneficiaryPreferredCallRepository.saveAll(preferredCallEntities); - if(userCompanyDelegationEntity!=null){ + if(userCompanyDelegationEntity!=null){ UserCompanyDelegationEntity oldUserWithCompanyDelegation = Utils.getClonedEntityForData(userCompanyDelegationEntity); userCompanyDelegationEntity.setStatus( UserCompanyDelegationStatusEnum.INACTIVE.getValue()); userCompanyDelegationRepository.save(userCompanyDelegationEntity); diff --git a/src/main/java/net/gepafin/tendermanagement/entities/CompanyEntity.java b/src/main/java/net/gepafin/tendermanagement/entities/CompanyEntity.java index 1d8ef4ca..06dff314 100644 --- a/src/main/java/net/gepafin/tendermanagement/entities/CompanyEntity.java +++ b/src/main/java/net/gepafin/tendermanagement/entities/CompanyEntity.java @@ -41,29 +41,15 @@ public class CompanyEntity extends BaseEntity{ @Column(name = "COUNTRY") private String country; - @Column(name = "PEC") - private String pec; - - @Column(name = "EMAIL") - private String email; - @Column(name = "NUMBER_OF_EMPLOYEES") private String numberOfEmployees; @Column(name = "ANNUAL_REVENUE") private BigDecimal annualRevenue; - - @Column(name = "CONTACT_NAME") - private String contactName; - - @Column(name = "CONTACT_EMAIL") - private String contactEmail; @ManyToOne @JoinColumn(name = "HUB_ID") private HubEntity hub; - @Column(name = "JSON") - private String json; } diff --git a/src/main/java/net/gepafin/tendermanagement/entities/UserWithCompanyEntity.java b/src/main/java/net/gepafin/tendermanagement/entities/UserWithCompanyEntity.java index 49770356..1f067a90 100644 --- a/src/main/java/net/gepafin/tendermanagement/entities/UserWithCompanyEntity.java +++ b/src/main/java/net/gepafin/tendermanagement/entities/UserWithCompanyEntity.java @@ -22,6 +22,22 @@ public class UserWithCompanyEntity extends BaseEntity{ @Column(name = "IS_LEGAL_REPRESENTANT") private Boolean isLegalRepresentant; + + @Column(name = "CONTACT_NAME") + private String contactName; + + @Column(name = "CONTACT_EMAIL") + private String contactEmail; + + @Column(name = "PEC") + private String pec; + + @Column(name = "EMAIL") + private String email; + + @Column(name = "JSON") + private String json; + @Column(name = "IS_DELETED") private Boolean isDeleted = false; diff --git a/src/main/resources/db/changelog/db.changelog-1.0.0.xml b/src/main/resources/db/changelog/db.changelog-1.0.0.xml index a59e40a6..233a1baa 100644 --- a/src/main/resources/db/changelog/db.changelog-1.0.0.xml +++ b/src/main/resources/db/changelog/db.changelog-1.0.0.xml @@ -1961,13 +1961,6 @@ - - - - - - - @@ -1977,6 +1970,17 @@ - - + + + + + + + + + + + + + From 5c7f96574b0e21c1ebaa3989eb7cf65bfeb41b12 Mon Sep 17 00:00:00 2001 From: nisha Date: Thu, 19 Dec 2024 17:58:44 +0530 Subject: [PATCH 3/3] Updated code --- .../tendermanagement/dao/ApplicationDao.java | 7 ++-- .../tendermanagement/dao/CompanyDao.java | 32 +++++++------------ .../dao/EmailNotificationDao.java | 6 ++-- 3 files changed, 20 insertions(+), 25 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..8afebfa2 100644 --- a/src/main/java/net/gepafin/tendermanagement/dao/ApplicationDao.java +++ b/src/main/java/net/gepafin/tendermanagement/dao/ApplicationDao.java @@ -926,7 +926,8 @@ public class ApplicationDao { private void sendMailToUserAndCompany(UserEntity userEntity, ApplicationEntity applicationEntity) { CallEntity call =applicationEntity.getCall(); CompanyEntity company=companyService.validateCompany(applicationEntity.getCompanyId()); - ProtocolEntity protocol = applicationEntity.getProtocol(); + UserWithCompanyEntity userWithCompany=companyService.getUserWithCompany(userEntity.getId(),company.getId()); + ProtocolEntity protocol= applicationEntity.getProtocol(); HubEntity hub = hubService.valdateHub(applicationEntity.getHubId()); SystemEmailTemplateResponse systemEmailTemplateResponse = systemEmailTemplatesService .retrieveTemplateByTypeAndCall(SystemEmailTemplatesEntityTypeEnum.APPLICATION_SUBMISSION_TO_USER_AND_COMPANY, @@ -957,8 +958,8 @@ public class ApplicationDao { emailNotificationDao.sendMail(hub.getId(), subject, body, List.of(email),emailLogRequest); List recipientEmails = new ArrayList<>(); // recipientEmails.add(email); - String companyEmail = company.getEmail(); - String contactEmail = company.getContactEmail(); + String companyEmail = userWithCompany.getEmail(); + String contactEmail = userWithCompany.getContactEmail(); if (companyEmail != null && !companyEmail.isEmpty()) { recipientEmails.add(companyEmail); diff --git a/src/main/java/net/gepafin/tendermanagement/dao/CompanyDao.java b/src/main/java/net/gepafin/tendermanagement/dao/CompanyDao.java index 32d7e42e..48ec017b 100644 --- a/src/main/java/net/gepafin/tendermanagement/dao/CompanyDao.java +++ b/src/main/java/net/gepafin/tendermanagement/dao/CompanyDao.java @@ -67,7 +67,7 @@ public class CompanyDao { if (existingCompany != null) { UserWithCompanyEntity existingRelation = userWithCompanyRepository.findByUserIdAndCompanyIdAndIsDeletedFalse(userEntity.getId(), existingCompany.getId()).orElse(null); if (existingRelation == null) { - userWithCompanyEntity = createUserWithCompanyRelation(userEntity, existingCompany, companyRequest.getIsLegalRepresentant(),companyRequest.getVatCheckResponse()); + userWithCompanyEntity = createUserWithCompanyRelation(userEntity, existingCompany, companyRequest.getIsLegalRepresentant(),companyRequest); /** This code is responsible for adding a version history log for "adding user with company" operation. **/ loggingUtil.addVersionHistory( @@ -84,7 +84,7 @@ public class CompanyDao { /** This code is responsible for adding a version history log for "creating company" operation. **/ loggingUtil.addVersionHistory(VersionHistoryRequest.builder().request(request).actionType(VersionActionTypeEnum.INSERT).oldData(null).newData(companyData).build()); - userWithCompanyEntity = createUserWithCompanyRelation(userEntity, companyEntity, companyRequest.getIsLegalRepresentant(),companyRequest.getVatCheckResponse()); + userWithCompanyEntity = createUserWithCompanyRelation(userEntity, companyEntity, companyRequest.getIsLegalRepresentant(),companyRequest); return convertCompanyEntityToCompanyResponse(companyEntity, userWithCompanyEntity); } @@ -108,7 +108,7 @@ public class CompanyDao { } } - private UserWithCompanyEntity createUserWithCompanyRelation(UserEntity userEntity, CompanyEntity companyEntity, Boolean isLegalRepresentant,Map vatCheckResponse) { + private UserWithCompanyEntity createUserWithCompanyRelation(UserEntity userEntity, CompanyEntity companyEntity, Boolean isLegalRepresentant,CompanyRequest companyRequest) { UserWithCompanyEntity userWithCompanyEntity = new UserWithCompanyEntity(); if (userEntity.getBeneficiary() != null) { @@ -118,11 +118,11 @@ public class CompanyDao { userWithCompanyEntity.setCompanyId(companyEntity.getId()); userWithCompanyEntity.setUserId(userEntity.getId()); userWithCompanyEntity.setIsLegalRepresentant(isLegalRepresentant); - userWithCompanyEntity.setEmail(companyEntity.getEmail()); - userWithCompanyEntity.setPec(companyEntity.getPec()); - userWithCompanyEntity.setContactName(companyEntity.getContactName()); - userWithCompanyEntity.setContactEmail(companyEntity.getContactEmail()); - userWithCompanyEntity.setJson(Utils.convertMapIntoJsonString(vatCheckResponse) ); + userWithCompanyEntity.setEmail(companyRequest.getEmail()); + userWithCompanyEntity.setPec(companyRequest.getPec()); + userWithCompanyEntity.setContactName(companyRequest.getContactName()); + userWithCompanyEntity.setContactEmail(companyRequest.getContactEmail()); + userWithCompanyEntity.setJson(Utils.convertMapIntoJsonString(companyRequest.getVatCheckResponse()) ); UserWithCompanyEntity userWithCompany = userWithCompanyRepository.save(userWithCompanyEntity); /** This code is responsible for adding a version history log for the "adding user with company" operation. **/ @@ -141,12 +141,8 @@ public class CompanyDao { entity.setProvince(request.getProvince()); entity.setCap(request.getCap()); entity.setCountry(request.getCountry()); - entity.setPec(request.getPec()); - entity.setEmail(request.getEmail()); entity.setNumberOfEmployees(request.getNumberOfEmployees()); entity.setAnnualRevenue(request.getAnnualRevenue()); - entity.setContactName(request.getContactName()); - entity.setContactEmail(request.getContactEmail()); entity.setHub(userEntity.getHub()); return entity; } @@ -163,8 +159,8 @@ public class CompanyDao { response.setProvince(entity.getProvince()); response.setCap(entity.getCap()); response.setCountry(entity.getCountry()); - response.setPec(entity.getPec()); - response.setEmail(entity.getEmail()); + response.setPec(userWithCompanyEntity.getPec()); + response.setEmail(userWithCompanyEntity.getEmail()); response.setNumberOfEmployees(entity.getNumberOfEmployees()); response.setAnnualRevenue(entity.getAnnualRevenue()); if(userWithCompanyEntity!=null) { @@ -172,8 +168,8 @@ public class CompanyDao { } response.setCreatedDate(entity.getCreatedDate()); response.setUpdatedDate(entity.getUpdatedDate()); - response.setContactName(entity.getContactName()); - response.setContactEmail(entity.getContactEmail()); + response.setContactName(userWithCompanyEntity.getContactName()); + response.setContactEmail(userWithCompanyEntity.getContactEmail()); return response; } @@ -191,12 +187,8 @@ public class CompanyDao { setIfUpdated(companyEntity::getProvince, companyEntity::setProvince, companyRequest.getProvince()); setIfUpdated(companyEntity::getCap, companyEntity::setCap, companyRequest.getCap()); setIfUpdated(companyEntity::getCountry, companyEntity::setCountry, companyRequest.getCountry()); - setIfUpdated(companyEntity::getPec, companyEntity::setPec, companyRequest.getPec()); - setIfUpdated(companyEntity::getEmail, companyEntity::setEmail, companyRequest.getEmail()); setIfUpdated(companyEntity::getNumberOfEmployees, companyEntity::setNumberOfEmployees, companyRequest.getNumberOfEmployees()); setIfUpdated(companyEntity::getAnnualRevenue, companyEntity::setAnnualRevenue, companyRequest.getAnnualRevenue()); - setIfUpdated(companyEntity::getContactName, companyEntity::setContactName, companyRequest.getContactName()); - setIfUpdated(companyEntity::getContactEmail, companyEntity::setContactEmail, companyRequest.getContactEmail()); if(StringUtils.isNotBlank(companyRequest.getVatNumber())) { CompanyEntity existingCompany = companyRepository.findByVatNumberAndHubId(companyRequest.getVatNumber(), userEntity.getHub().getId()); diff --git a/src/main/java/net/gepafin/tendermanagement/dao/EmailNotificationDao.java b/src/main/java/net/gepafin/tendermanagement/dao/EmailNotificationDao.java index 4bf99110..bdc84e78 100644 --- a/src/main/java/net/gepafin/tendermanagement/dao/EmailNotificationDao.java +++ b/src/main/java/net/gepafin/tendermanagement/dao/EmailNotificationDao.java @@ -92,8 +92,10 @@ public class EmailNotificationDao { Optional applicationEvaluationEntity = applicationEvaluationRepository.findByApplicationIdAndIsDeletedFalse(applicationEntity.getId()); CompanyEntity company = companyService.validateCompany(applicationEntity.getCompanyId()); - String companyEmail = company.getEmail(); - String contactEmail = company.getContactEmail(); + + UserWithCompanyEntity userWithCompany=companyService.getUserWithCompany(userEntity.getId(),company.getId()); + String companyEmail = userWithCompany.getEmail(); + String contactEmail = userWithCompany.getContactEmail(); if (companyEmail != null && !companyEmail.isEmpty()) { EmailLogRequest emailLogRequest = emailLogDao.createEmailLogRequest(systemEmailTemplateResponse.getEmailScenario(), RecipientTypeEnum.COMPANY,company.getId() ,