Bläddra i källkod

处理泰山、华泰评分添加 上年承保险别的问题

lixiaolong 2 månader sedan
förälder
incheckning
7a5a77bd9b

+ 12 - 0
tenant/insurance/quotation-huatai/src/main/java/com/jzg/quotation/huatai/crawler/build/HuaTaiCrawlerQuoteResultsVoBuild.java

@@ -18,6 +18,7 @@ import java.math.BigDecimal;
 import java.time.LocalDateTime;
 import java.time.LocalTime;
 import java.time.format.DateTimeFormatter;
+import java.util.Collections;
 import java.util.List;
 import java.util.Map;
 import java.util.stream.Collectors;
@@ -74,6 +75,17 @@ public class HuaTaiCrawlerQuoteResultsVoBuild {
                 .fluentPut("scoreName","商业业务品质")
                 .fluentPut("scoreKey","SyBusiQuality")
                 .fluentPut("score",quoteResponseData.getApplicationdto().getBicategory()));
+        List<HtCrawlerQuoteResponse.DataDTO.CoverageDTOList.CoverageDTO> coverageDTOList = quoteResponseData.getCoveragedtolist().getCoveragedto();
+        if (coverageDTOList != null && !coverageDTOList.isEmpty()) {
+            // 获取商业险种是否有上年保单出单日期、上年保单开始结束日期
+            Map<String, String> renewalMap = coverageDTOList.stream().filter(x -> StringUtils.isNotBlank(x.getLaststartdate()) && StringUtils.isNotBlank(x.getLastenddate()) && !ContractEnum.C_BZ.getKindCode().equals(x.getComcoveragecode())).collect(Collectors.toMap(HtCrawlerQuoteResponse.DataDTO.CoverageDTOList.CoverageDTO::getCoveragename, x -> x.getLastbilldate() != null ? x.getLastbilldate() : ""));
+            // 放入 scoreJson
+            // 获取renewalMap中所有的key 逗号分隔
+            scoreJson.add(new JSONObject()
+                    .fluentPut("scoreName", "上年承保险别")
+                    .fluentPut("scoreKey", "HTOrigItemKind")
+                    .fluentPut("score", String.join(",", renewalMap.keySet())));
+        }
         quoteResultsVo.getScoreVo().setScoreJson(scoreJson);
 
         //续保标志

+ 24 - 0
tenant/insurance/quotation-taishan/src/main/java/com/jzg/quotation/taishan/crawler/build/TaiShanCrawlerQuoteResultsVoBuild.java

@@ -70,6 +70,30 @@ public class TaiShanCrawlerQuoteResultsVoBuild {
                     .fluentPut("riskScore", saveResponse.getResult().getProposalInfo().getRiskScore()));
         }
 
+        // 上年承保险别
+        // 泰山 ItemKind 单险种没有 lastStartDate/lastEndDate,用 ProductInfo 整单维度的上年保单日期作为"是否续保"判断
+        // itemKinds 本身已是本年承保的险种列表,不需要"不投保"过滤
+        if (saveResponse != null
+                && saveResponse.getResult() != null
+                && saveResponse.getResult().getBusinessInsurance() != null) {
+            TaiShanCrawlerQuotationSaveResponse.Result.BusinessInsurance businessInsurance = saveResponse.getResult().getBusinessInsurance();
+            if (CollUtil.isNotEmpty(businessInsurance.getItemKinds())
+                    && businessInsurance.getProductInfo() != null
+                    && StringUtils.hasText(businessInsurance.getProductInfo().getLastStartDate())
+                    && StringUtils.hasText(businessInsurance.getProductInfo().getLastEndDate())) {
+                String origItemKinds = businessInsurance.getItemKinds().stream()
+                        .map(TaiShanCrawlerQuotationSaveResponse.Result.BusinessInsurance.ItemKind::getKindName)
+                        .filter(StringUtils::hasText)
+                        .collect(Collectors.joining(","));
+                if (StringUtils.hasText(origItemKinds)) {
+                    scoreJson.add(new JSONObject()
+                            .fluentPut("scoreName", "上年承保险别")
+                            .fluentPut("scoreKey", "TSOrigItemKind")
+                            .fluentPut("score", origItemKinds));
+                }
+            }
+        }
+
         if(riskResponse != null && riskResponse.getResult() != null){
             // 续保标识逻辑:renewalClass不为空时jq_renewalflag=1,否则=0;sy_renewalflag 一样  有值就是续保  对照python最新更改
             String renewalClass = riskResponse.getResult().getRenewalClass();