|
|
@@ -8,6 +8,7 @@ import com.jzg.commons.entity.quote.vo.KindInfoVo;
|
|
|
import com.jzg.commons.entity.quote.vo.RiskInfoVo;
|
|
|
import com.jzg.commons.entity.quote.vo.aggregated.QuoteResultsVo;
|
|
|
import com.jzg.commons.entity.quote.vo.QuoteVo;
|
|
|
+import com.jzg.quotation.zhongmei.crawler.constant.enums.ZmCrawlerFloatFlag;
|
|
|
import com.jzg.quotation.zhongmei.crawler.entity.Response.ZmCrawlerQuotedPriceResponse;
|
|
|
|
|
|
import java.math.BigDecimal;
|
|
|
@@ -142,14 +143,107 @@ public final class ZmCrawlerQuoteResultVoBuild {
|
|
|
.filter(Objects::nonNull)
|
|
|
.findFirst()
|
|
|
.orElse(null);
|
|
|
+ ZmCrawlerQuotedPriceResponse.BussinessMainDTO.ContractDTO.ContractMainDTO contractMainJq =
|
|
|
+ Optional.ofNullable(quotedPriceResponse)
|
|
|
+ .map(ZmCrawlerQuotedPriceResponse::getBussinessMain)
|
|
|
+ .map(ZmCrawlerQuotedPriceResponse.BussinessMainDTO::getContract)
|
|
|
+ .orElse(Collections.emptyList())
|
|
|
+ .stream()
|
|
|
+ .filter(Objects::nonNull)
|
|
|
+ .map(ZmCrawlerQuotedPriceResponse.BussinessMainDTO.ContractDTO::getContractMain)
|
|
|
+ .filter(Objects::nonNull)
|
|
|
+ .filter(contractMain -> contractMain.getRiskCode().equals("0330"))
|
|
|
+ .findFirst()
|
|
|
+ .orElse(null);
|
|
|
+
|
|
|
+ ZmCrawlerQuotedPriceResponse.BussinessMainDTO.ContractDTO.ContractMainDTO contractMainSy =
|
|
|
+ Optional.ofNullable(quotedPriceResponse)
|
|
|
+ .map(ZmCrawlerQuotedPriceResponse::getBussinessMain)
|
|
|
+ .map(ZmCrawlerQuotedPriceResponse.BussinessMainDTO::getContract)
|
|
|
+ .orElse(Collections.emptyList())
|
|
|
+ .stream()
|
|
|
+ .filter(Objects::nonNull)
|
|
|
+ .map(ZmCrawlerQuotedPriceResponse.BussinessMainDTO.ContractDTO::getContractMain)
|
|
|
+ .filter(Objects::nonNull)
|
|
|
+ .filter(contractMain -> contractMain.getRiskCode().equals("0361"))
|
|
|
+ .findFirst()
|
|
|
+ .orElse(null);
|
|
|
+ ZmCrawlerQuotedPriceResponse.BussinessMainDTO.ContractDTO contractDTO =
|
|
|
+ Optional.ofNullable(quotedPriceResponse)
|
|
|
+ .map(ZmCrawlerQuotedPriceResponse::getBussinessMain)
|
|
|
+ .map(ZmCrawlerQuotedPriceResponse.BussinessMainDTO::getContract)
|
|
|
+ .orElse(List.of())
|
|
|
+ .stream()
|
|
|
+ .filter(c -> c != null && c.getContractMain() != null
|
|
|
+ && "0365".equals(c.getContractMain().getRiskCode()))
|
|
|
+ .findFirst()
|
|
|
+ .orElse(null);
|
|
|
+ JSONArray scoreJson = new JSONArray();
|
|
|
+ if (contractDTO != null) {
|
|
|
+ String noAjustReasonCode = null;
|
|
|
+ List<ZmCrawlerQuotedPriceResponse.BussinessMainDTO.ContractDTO.AdjustDTO> adjustList = contractDTO.getAdjust();
|
|
|
+ if (adjustList != null && !adjustList.isEmpty()) {
|
|
|
+ // 遍历所有adjust,找到存在 noAjustReasonCode 的值
|
|
|
+ noAjustReasonCode = adjustList.stream()
|
|
|
+ .filter(Objects::nonNull)
|
|
|
+ .map(ZmCrawlerQuotedPriceResponse.BussinessMainDTO.ContractDTO.AdjustDTO::getNoAjustReasonCode)
|
|
|
+ .filter(Objects::nonNull)
|
|
|
+ .findFirst()
|
|
|
+ .orElse("");
|
|
|
+ scoreJson.add(new JSONObject()
|
|
|
+ .fluentPut("scoreName", "商业不浮动原因")
|
|
|
+ .fluentPut("scoreKey","SyRateFloatFlag")
|
|
|
+ .fluentPut("score", ZmCrawlerFloatFlag.getNoAdjustReasonDesc(noAjustReasonCode)));
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
if (apQtnResultXom.getGusunlightresultmainDto() != null) {
|
|
|
- JSONArray scoreJson = new JSONArray();
|
|
|
scoreJson.add(new JSONObject()
|
|
|
.fluentPut("scoreName", "中煤分")
|
|
|
.fluentPut("scoreKey","zmScore")
|
|
|
.fluentPut("score", apQtnResultXom.getGusunlightresultmainDto().getZmScore()));
|
|
|
}
|
|
|
+ if (quotedPriceResponse != null) {
|
|
|
+ scoreJson.add(new JSONObject()
|
|
|
+ .fluentPut("scoreName", "交强出险次数")
|
|
|
+ .fluentPut("scoreKey","bzDemandPayCount")
|
|
|
+ .fluentPut("score", quotedPriceResponse.getBussinessMain().getBzDemandPayCount()));
|
|
|
+ scoreJson.add(new JSONObject()
|
|
|
+ .fluentPut("scoreName", "商业出险次数")
|
|
|
+ .fluentPut("scoreKey","busDemandPayCount")
|
|
|
+ .fluentPut("score", quotedPriceResponse.getBussinessMain().getBusDemandPayCount()));
|
|
|
+ scoreJson.add(new JSONObject()
|
|
|
+ .fluentPut("scoreName", "合并出险次数")
|
|
|
+ .fluentPut("scoreKey","sumDemandPayCount")
|
|
|
+ .fluentPut("score", quotedPriceResponse.getBussinessMain().getSumDemandPayCount()));
|
|
|
+ }
|
|
|
+
|
|
|
+ if (contractMainJq != null) {
|
|
|
+ scoreJson.add(new JSONObject()
|
|
|
+ .fluentPut("scoreName", "交强整单折扣")
|
|
|
+ .fluentPut("scoreKey","totalAdjustRateJq")
|
|
|
+ .fluentPut("score", contractMainJq.getTotalAdjustRate()));
|
|
|
+ scoreJson.add(new JSONObject()
|
|
|
+ .fluentPut("scoreName", "交强不浮动原因")
|
|
|
+ .fluentPut("scoreKey","JqRateFloatFlag")
|
|
|
+ .fluentPut("score", ZmCrawlerFloatFlag.getJqRateFloatDesc(contractMainJq.getRateFloatFlag())));
|
|
|
+
|
|
|
+ }
|
|
|
+ if (contractMainSy != null) {
|
|
|
+ scoreJson.add(new JSONObject()
|
|
|
+ .fluentPut("scoreName", "商业整单折扣")
|
|
|
+ .fluentPut("scoreKey","totalAdjustRateSy")
|
|
|
+ .fluentPut("score", contractMainSy.getTotalAdjustRate()));
|
|
|
+ scoreJson.add(new JSONObject()
|
|
|
+ .fluentPut("scoreName", "上年承保公司")
|
|
|
+ .fluentPut("scoreKey","attribute2")
|
|
|
+ .fluentPut("score", contractMainSy.getAttribute2()));
|
|
|
+ scoreJson.add(new JSONObject()
|
|
|
+ .fluentPut("scoreName", "上年承保险别")
|
|
|
+ .fluentPut("scoreKey","repeatInfo")
|
|
|
+ .fluentPut("score", contractMainSy.getRepeatInfo()));
|
|
|
+ }
|
|
|
+ scoreVo.setScoreJson(scoreJson);
|
|
|
return scoreVo;
|
|
|
}
|
|
|
-
|
|
|
}
|