Ver Fonte

泰康、紫金返回商业险种的详细保费

wangrq há 3 meses atrás
pai
commit
2eeb12cf61

+ 19 - 19
tenant/insurance/quotation-taikang/src/main/java/com/jzg/quotation/taikang/crawler/build/TkCrawlerQuoteResultsBuild.java

@@ -2,7 +2,9 @@ package com.jzg.quotation.taikang.crawler.build;
 
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
+import com.alibaba.nacos.common.utils.CollectionUtils;
 import com.jzg.commons.constants.dict.InsOrderStatusEnum;
+import com.jzg.commons.constants.quote.enums.quote.KindCode;
 import com.jzg.commons.entity.quote.vo.KindInfoVo;
 import com.jzg.commons.entity.quote.vo.QuoteVo;
 import com.jzg.commons.entity.quote.vo.RiskInfoVo;
@@ -10,7 +12,6 @@ import com.jzg.commons.entity.quote.vo.TaxInfoVo;
 import com.jzg.commons.entity.quote.vo.aggregated.QuoteResultsVo;
 import com.jzg.commons.util.DateTimeUtils;
 import com.jzg.commons.util.StringUtils;
-import com.jzg.commons.util.idgen.IdGenerate;
 import com.jzg.quotation.commons.constant.enums.quote.RenewalEnum;
 import com.jzg.quotation.commons.utils.DateTimeUtil;
 import com.jzg.quotation.taikang.crawler.ConvertUtil;
@@ -28,6 +29,8 @@ import java.time.LocalDateTime;
 import java.time.format.DateTimeFormatter;
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
 
 /**
  * @description: 泰康爬虫报价返回结果构建器
@@ -104,24 +107,8 @@ public class TkCrawlerQuoteResultsBuild {
         }
 
         // 商业险险种信息
-        List<TKCiKindsVo> ciKindsVo = preciseInitResult.getCiKindsVo();
-        if (ciKindsVo != null && !ciKindsVo.isEmpty()) {
-            List<KindInfoVo> kindInfoVos = new ArrayList<>();
-            for (TKCiKindsVo tKCiKindsVo : ciKindsVo) {
-                String kindCode = null; // 险种编码
-                String kindName = null; // 险种名称
-                String platformKindCode = tKCiKindsVo.getKindCode(); // 平台险种编码
-                String platformKindName = tKCiKindsVo.getKindCName(); // 平台险种名称
-                String amount = tKCiKindsVo.getQuoteAmount().toString(); // 保额
-                String unitAmount = tKCiKindsVo.getUnitAmount().toString(); // 每座保额
-                Integer quantity = tKCiKindsVo.getQuantity(); // 座位数
-                String premium = tKCiKindsVo.getPremium().toString(); // 保费
-                String deductibleRate = null; // 附加绝对免赔率
-                String serviceTimes = null; // 服务次数
-                KindInfoVo kindInfoVo = new KindInfoVo(IdGenerate.nextId(), kindCode, kindName, platformKindCode, platformKindName, amount, unitAmount, quantity, premium, deductibleRate, serviceTimes);
-                kindInfoVos.add(kindInfoVo);
-            }
-            quoteResultsVo.setKindInfoVo(kindInfoVos);
+        if (CollectionUtils.isNotEmpty(preciseInitResult.getCiKindsVo())) {
+            quoteResultsVo.setKindInfoVo(buildKindInfoVo(commonQuoteVo.getKindInfoVo(), preciseInitResult.getCiKindsVo()));
         }
 
         // 交强保费 车船税 商业保费
@@ -186,4 +173,17 @@ public class TkCrawlerQuoteResultsBuild {
             return String.valueOf(RenewalEnum.Transfer.getCode());
         }
     }
+
+    private static List<KindInfoVo> buildKindInfoVo(List<KindInfoVo> kindInfoVo, List<TKCiKindsVo> ciKindsVo) {
+        Map<String, TKCiKindsVo> collect = ciKindsVo.stream().collect(Collectors.toMap(TKCiKindsVo::getKindCode, x -> x));
+        kindInfoVo.forEach(kind -> {
+            TKCiKindsVo itemKindListDTO = collect.get(kind.getKindCode());
+            if (KindCode.A.getCode().equals(kind.getPlatformKindCode())) {
+                kind.setAmount(itemKindListDTO.getPremium() + "");
+            }
+            // 设置保费
+            kind.setPremium(itemKindListDTO.getPremium() + "");
+        });
+        return kindInfoVo;
+    }
 }

+ 22 - 24
tenant/insurance/quotation-zijin/src/main/java/com/jzg/quotation/zijin/crawler/build/ZiJinCrawlerQuoteResultsVoBuild.java

@@ -5,8 +5,10 @@ import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.alibaba.nacos.common.utils.CollectionUtils;
 import com.jzg.commons.constants.dict.InsOrderStatusEnum;
+import com.jzg.commons.constants.quote.enums.quote.KindCode;
 import com.jzg.commons.entity.po.InsFeeOrders;
 import com.jzg.commons.entity.quote.vo.KindInfoVo;
+import com.jzg.commons.entity.quote.vo.QuoteVo;
 import com.jzg.commons.entity.quote.vo.RiskInfoVo;
 import com.jzg.commons.entity.quote.vo.aggregated.QuoteResultsVo;
 import com.jzg.commons.util.DateTimeUtils;
@@ -20,6 +22,8 @@ import lombok.extern.slf4j.Slf4j;
 import java.math.BigDecimal;
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
 
 /**
  * @description: 紫金财险爬虫报价结果构建器
@@ -48,14 +52,14 @@ public class ZiJinCrawlerQuoteResultsVoBuild {
     /**
      * 处理报价结果
      *
-     * @param ordersNo
+     * @param quoteVo
      * @param ziJinCrawlerQuotationResponse
      * @param ziJinCrawlerSaveProposalResponse
      * @return QuoteResultsVo
      */
-    public static QuoteResultsVo buildQuoteResultsVo(String ordersNo, ZiJinCrawlerQuotationResponse ziJinCrawlerQuotationResponse, ZiJinCrawlerSaveProposalResponse ziJinCrawlerSaveProposalResponse) {
+    public static QuoteResultsVo buildQuoteResultsVo(QuoteVo quoteVo, ZiJinCrawlerQuotationResponse ziJinCrawlerQuotationResponse, ZiJinCrawlerSaveProposalResponse ziJinCrawlerSaveProposalResponse) {
         QuoteResultsVo quoteResultsVo = new QuoteResultsVo();
-        quoteResultsVo.setOrdersNo(ordersNo);
+        quoteResultsVo.setOrdersNo(quoteVo.getOrder().getOrdersNo());
 
         if (ziJinCrawlerQuotationResponse.getItemKindList() != null) {
             // 设置交强险投保时间信息
@@ -65,7 +69,7 @@ public class ZiJinCrawlerQuoteResultsVoBuild {
             // 设置驾意险投保时间信息
             // quoteResultsVo.setJyRiskInfoVo(buildJyRiskInfoVo(ziJinCrawlerQuotationResponse));
             // 设置险种明细列表
-            quoteResultsVo.setKindInfoVo(buildKindInfoVoList(ziJinCrawlerQuotationResponse));
+            quoteResultsVo.setKindInfoVo(buildKindInfoVoList(quoteVo.getKindInfoVo(), ziJinCrawlerQuotationResponse));
         }
 
         // 设置投保单号
@@ -84,7 +88,7 @@ public class ZiJinCrawlerQuoteResultsVoBuild {
         }
 
         // 交强保费 车船税 商业保费
-        buildPremium(quoteResultsVo, ziJinCrawlerQuotationResponse);
+        buildResultsPremium(quoteResultsVo, ziJinCrawlerQuotationResponse);
 
         // 设置警告消息(预核保消息)
         warnMessageList(ziJinCrawlerQuotationResponse, quoteResultsVo);
@@ -165,27 +169,21 @@ public class ZiJinCrawlerQuoteResultsVoBuild {
     /**
      * 处理险种明细列表
      *
+     * @param kindInfoVo
      * @param quotationResponse
      * @return List<KindInfoVo>
      */
-    public static List<KindInfoVo> buildKindInfoVoList(ZiJinCrawlerQuotationResponse quotationResponse) {
-        List<KindInfoVo> kindInfoVoList = new java.util.ArrayList<>();
-        if (quotationResponse.getItemKindList() == null) {
-            return kindInfoVoList;
-        }
-
-        for (ZiJinCrawlerQuotationResponse.ItemKindList item : quotationResponse.getItemKindList()) {
-            KindInfoVo kindInfoVo = new KindInfoVo();
-            kindInfoVo.setKindCode(item.getKindCode());
-            kindInfoVo.setKindName(item.getKindName());
-            kindInfoVo.setAmount(item.getAmount());
-            kindInfoVo.setUnitAmount(item.getUnitAmount());
-            kindInfoVo.setQuantity(item.getQuantity());
-            kindInfoVo.setPremium(item.getPremium());
-            kindInfoVoList.add(kindInfoVo);
-        }
-
-        return kindInfoVoList;
+    public static List<KindInfoVo> buildKindInfoVoList(List<KindInfoVo> kindInfoVo, ZiJinCrawlerQuotationResponse quotationResponse) {
+        Map<String, ZiJinCrawlerQuotationResponse.ItemKindList> collect = quotationResponse.getItemKindList().stream().collect(Collectors.toMap(ZiJinCrawlerQuotationResponse.ItemKindList::getKindCode, x -> x));
+        kindInfoVo.forEach(kind -> {
+            ZiJinCrawlerQuotationResponse.ItemKindList itemKindListDTO = collect.get(kind.getKindCode());
+            if (KindCode.A.getCode().equals(kind.getPlatformKindCode())) {
+                kind.setAmount(itemKindListDTO.getPremium());
+            }
+            // 设置保费
+            kind.setPremium(itemKindListDTO.getPremium());
+        });
+        return kindInfoVo;
     }
 
     /**
@@ -194,7 +192,7 @@ public class ZiJinCrawlerQuoteResultsVoBuild {
      * @param quoteResultsVo
      * @param quotationResponse
      */
-    private static void buildPremium(QuoteResultsVo quoteResultsVo, ZiJinCrawlerQuotationResponse quotationResponse) {
+    private static void buildResultsPremium(QuoteResultsVo quoteResultsVo, ZiJinCrawlerQuotationResponse quotationResponse) {
         if (CollectionUtils.isEmpty(quotationResponse.getPlanList())) {
             return;
         }

+ 1 - 1
tenant/insurance/quotation-zijin/src/main/java/com/jzg/quotation/zijin/crawler/service/impl/ZiJinCrawlerRequestImpl.java

@@ -254,7 +254,7 @@ public class ZiJinCrawlerRequestImpl implements ZiJinCrawlerRequest {
                 log.info("ziJinCrawlerSaveProposalResponse参数的值:{}", JSON.toJSONString(ziJinCrawlerSaveProposalResponse));
 
                 ziJinCrawlerOrderService.save(quoteVo, ziJinCrawlerQuotationResponse, ziJinCrawlerSaveProposalResponse, ziJinCrawlerSaveQuoteInfoResponse.getOrderNo(), ziJinCrawlerQuotationRequest.getOrderId(), true);
-                return ZiJinCrawlerQuoteResultsVoBuild.buildQuoteResultsVo(quoteVo.getOrder().getOrdersNo(), ziJinCrawlerQuotationResponse, ziJinCrawlerSaveProposalResponse);
+                return ZiJinCrawlerQuoteResultsVoBuild.buildQuoteResultsVo(quoteVo, ziJinCrawlerQuotationResponse, ziJinCrawlerSaveProposalResponse);
             }
         } catch (Exception e) {
             e.printStackTrace();