Generation

translateWed, 28 Feb 2024

package com.yelenfintech.products.features.questionnaires.generateQuestionnaires.services; import com.yelen.common.domain.entities.InsuranceProduct; import com.yelen.common.domain.entities.ProductQuestionnaires; import com.yelen.common.domain.enums.CoverageOfMultipleEnum; import com.yelen.common.domain.helpers.ClaimsBeneficiaryConfigConstants; import com.yelen.common.domain.helpers.QuestionnairesNamingConstants; import com.yelenfintech.products.domain.repositories.ProductQuestionnairesRepository; import lombok.AllArgsConstructor; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.time.LocalDateTime; import java.util.ArrayList; @Service @AllArgsConstructor @Transactional public class GenerateProductQuestionnaires { private final ProductQuestionnairesRepository productQuestionnairesRepository; //@Async public void handle(InsuranceProduct insuranceProduct) { productQuestionnairesRepository.deleteProductQuestionnaires(insuranceProduct.getId()); var productQuestionnaires = new ArrayList<String>(); var previousQuestionnaires = productQuestionnairesRepository.findByProductId(insuranceProduct.getId()).stream().map(ProductQuestionnaires::getQuestionnaireName).toList(); productQuestionnaires.add(QuestionnairesNamingConstants.PERIOD_QUESTIONNAIRE); if (insuranceProduct.getIndividualOrCorporateClient()) { productQuestionnaires.add(QuestionnairesNamingConstants.CORPORATE_CLIENT_QUESTIONNAIRE); } else { productQuestionnaires.add(QuestionnairesNamingConstants.INDIVIDUAL_CLIENT_QUESTIONNAIRE); } if (insuranceProduct.getClaimsBeneficiary().getId() == ClaimsBeneficiaryConfigConstants.OTHER_PERSON_ID) { productQuestionnaires.add(QuestionnairesNamingConstants.INDIVIDUAL_CLAIM_BENEFICIARY_QUESTIONNAIRE); } if (insuranceProduct.getClaimsBeneficiary().getId() == ClaimsBeneficiaryConfigConstants.OTHER_CORPORATION_ID) { productQuestionnaires.add(QuestionnairesNamingConstants.CORPORATE_CLAIM_BENEFICIARY_QUESTIONNAIRE); } if (insuranceProduct.getCoverageOfInsuredPersons() == CoverageOfMultipleEnum.ONE || insuranceProduct.getCoverageOfInsuredPersons() == CoverageOfMultipleEnum.MULTIPLE) { productQuestionnaires.add(QuestionnairesNamingConstants.INSURED_PERSONS_QUESTIONNAIRE); } if (insuranceProduct.getCoverageOfInsuredItems() == CoverageOfMultipleEnum.ONE || insuranceProduct.getCoverageOfInsuredItems() == CoverageOfMultipleEnum.MULTIPLE) { productQuestionnaires.add(QuestionnairesNamingConstants.INSURED_ITEMS_QUESTIONNAIRE); } productQuestionnaires.forEach(questionnaireName -> { if (!previousQuestionnaires.contains(questionnaireName)) { productQuestionnairesRepository.save( ProductQuestionnaires.builder() .product(insuranceProduct) .questionnaireName(questionnaireName) .dateCreated(LocalDateTime.now()) .isUsedForMultipleInsured(true) .build() ); } }); } }

ackage com.yelenfintech.products.features.questionnaires.generateQuestionnaires.model; import java.util.ArrayList; import java.util.List; public class Questionnaire { private String name; private String description; private List<Question> questions; public Questionnaire() { this.questions = new ArrayList<>(); } public String getName()

Want to kickstart your project?Use the new AI Studio to create your code