|
@@ -0,0 +1,74 @@
|
|
|
|
|
+package com.jzg.quotation.zijin.api.build;
|
|
|
|
|
+
|
|
|
|
|
+import com.jzg.quotation.commons.constant.enums.quote.KindCode;
|
|
|
|
|
+import com.jzg.quotation.commons.entity.vo.aggregated.QuoteVo;
|
|
|
|
|
+import com.jzg.quotation.commons.entity.vo.quote.ExpenseFactor;
|
|
|
|
|
+import com.jzg.quotation.commons.entity.vo.quote.KindInfoVo;
|
|
|
|
|
+import com.jzg.quotation.commons.entity.vo.quote.RiskInfoVo;
|
|
|
|
|
+import com.google.common.collect.Lists;
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+import com.jzg.quotation.commons.entity.vo.aggregated.QuoteResultsVo;
|
|
|
|
|
+import com.jzg.quotation.zijin.api.constant.enums.RiskCodeEnum;
|
|
|
|
|
+import com.jzg.quotation.zijin.api.entity.response.CalculatePremiumResponse;
|
|
|
|
|
+
|
|
|
|
|
+import java.util.ArrayList;
|
|
|
|
|
+import java.util.List;
|
|
|
|
|
+import java.util.Map;
|
|
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
+
|
|
|
|
|
+public class ZiJinQuoteResultsVoBuild {
|
|
|
|
|
+
|
|
|
|
|
+ public ZiJinQuoteResultsVoBuild() {
|
|
|
|
|
+ throw new IllegalStateException("Utility class");
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ public static QuoteResultsVo buildQuoteResultsVo(String orderNo, QuoteVo quoteVo, CalculatePremiumResponse calculatePremiumResponse) {
|
|
|
|
|
+ QuoteResultsVo quoteResultsVo = new QuoteResultsVo();
|
|
|
|
|
+ quoteResultsVo.setOrdersNo(orderNo);
|
|
|
|
|
+ // 交强险
|
|
|
|
|
+ quoteResultsVo.setCiRiskInfoVo(new RiskInfoVo());
|
|
|
|
|
+ // 商业险
|
|
|
|
|
+ quoteResultsVo.setBiRiskInfoVo(new RiskInfoVo());
|
|
|
|
|
+ // 商业险险种信息
|
|
|
|
|
+ List<KindInfoVo> kindInfoVo = buildKindInfoVo(quoteVo.getKindInfoVo(), calculatePremiumResponse.getItemKindList());
|
|
|
|
|
+ quoteResultsVo.setKindInfoVo(kindInfoVo);
|
|
|
|
|
+ // 费用因子
|
|
|
|
|
+ List<ExpenseFactor> expenseFactors = buildExpenseFactor(calculatePremiumResponse.getPriceInfoList());
|
|
|
|
|
+ quoteResultsVo.setExpenseFactors(expenseFactors);
|
|
|
|
|
+ // 交强保费 车船税 商业保费
|
|
|
|
|
+ buildPremium(quoteResultsVo, calculatePremiumResponse.getPlanList());
|
|
|
|
|
+ return quoteResultsVo;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ private static List<ExpenseFactor> buildExpenseFactor(List<CalculatePremiumResponse.PriceInfoListDTO> priceInfoList) {
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ return new ArrayList<>();
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ private static List<KindInfoVo> buildKindInfoVo(List<KindInfoVo> kindInfoVo, List<CalculatePremiumResponse.ItemKindListDTO> itemKindList) {
|
|
|
|
|
+ Map<String, CalculatePremiumResponse.ItemKindListDTO> collect = itemKindList.stream()
|
|
|
|
|
+ .collect(Collectors.toMap(CalculatePremiumResponse.ItemKindListDTO::getKindCode, x -> x));
|
|
|
|
|
+ kindInfoVo.forEach(kind -> {
|
|
|
|
|
+ CalculatePremiumResponse.ItemKindListDTO itemKindListDTO = collect.get(kind.getKindCode());
|
|
|
|
|
+ if (KindCode.A.getCode().equals(kind.getPlatformKindCode())) {
|
|
|
|
|
+ kind.setAmount(itemKindListDTO.getAmount());
|
|
|
|
|
+ }
|
|
|
|
|
+ // 设置保费
|
|
|
|
|
+ kind.setPremium(itemKindListDTO.getPremium());
|
|
|
|
|
+ });
|
|
|
|
|
+ return kindInfoVo;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ private static void buildPremium(QuoteResultsVo quoteResultsVo, List<CalculatePremiumResponse.PlanListDTO> planList) {
|
|
|
|
|
+ Map<String, String> planMap = planList.stream().collect(Collectors.toMap(CalculatePremiumResponse.PlanListDTO::getRiskCode, CalculatePremiumResponse.PlanListDTO::getPlanDate));
|
|
|
|
|
+ quoteResultsVo.setCiPremium(planMap.get(RiskCodeEnum.TRAFFIC_CODE));
|
|
|
|
|
+ quoteResultsVo.setBiPremium(planMap.get(RiskCodeEnum.BUSINESS_CODE));
|
|
|
|
|
+ quoteResultsVo.setVvTax(planMap.get(RiskCodeEnum.ACCIDENT_CODE));
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+}
|