|
|
@@ -11,10 +11,12 @@ import com.jzg.commons.entity.quote.vo.RiskInfoVo;
|
|
|
import com.jzg.commons.entity.quote.vo.aggregated.OrderStatusResultVo;
|
|
|
import com.jzg.commons.entity.quote.vo.aggregated.QuoteResultsVo;
|
|
|
import com.jzg.commons.util.StringUtils;
|
|
|
+import com.jzg.quotation.commons.constant.enums.quote.RenewalEnum;
|
|
|
import com.jzg.quotation.commons.utils.TimeProcessing;
|
|
|
import com.jzg.quotation.dajia.crawler.constant.enums.DaJiaCrawlerOrderState;
|
|
|
import com.jzg.quotation.dajia.crawler.entity.request.quote.BusinessInsuranceDTO;
|
|
|
import com.jzg.quotation.dajia.crawler.entity.request.quote.CompulsoryInsuranceDTO;
|
|
|
+import com.jzg.quotation.dajia.crawler.entity.response.DaJiaCrawlerActualValueResponse;
|
|
|
import com.jzg.quotation.dajia.crawler.entity.response.DaJiaCrawlerOrderListRevisedResponse;
|
|
|
import com.jzg.quotation.dajia.crawler.entity.response.DaJiaCrawlerSaveResponse;
|
|
|
import org.apache.logging.log4j.LogManager;
|
|
|
@@ -24,6 +26,7 @@ import org.springframework.util.ObjectUtils;
|
|
|
import java.math.BigDecimal;
|
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
|
+import java.util.Objects;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
|
@@ -47,7 +50,7 @@ public final class DaJiaCrawlerQuoteResultsVoBuild {
|
|
|
* @param daJiaCrawlerSaveResponse 大家财险保存
|
|
|
* @return 报价结果
|
|
|
*/
|
|
|
- public static QuoteResultsVo buildQuoteResultsVo(String orderNo, QuoteVo quoteVo, DaJiaCrawlerSaveResponse daJiaCrawlerSaveResponse) {
|
|
|
+ public static QuoteResultsVo buildQuoteResultsVo(String orderNo, QuoteVo quoteVo, DaJiaCrawlerSaveResponse daJiaCrawlerSaveResponse,DaJiaCrawlerActualValueResponse daJiaCrawlerActualValueResponse) {
|
|
|
QuoteResultsVo quoteResultsVo = new QuoteResultsVo();
|
|
|
buildKindInfoVo(quoteVo.getKindInfoVo(), daJiaCrawlerSaveResponse.getBusinessInsurance().getItemKinds());
|
|
|
quoteResultsVo.setOrdersNo(orderNo);
|
|
|
@@ -67,16 +70,15 @@ public final class DaJiaCrawlerQuoteResultsVoBuild {
|
|
|
quoteResultsVo.setQuoteStatusEnum(InsOrderStatusEnum.WAIT_AUDIT);
|
|
|
// 评分
|
|
|
quoteResultsVo.setScoreVo(buildScoreVo(daJiaCrawlerSaveResponse));
|
|
|
- // 非车费用
|
|
|
- quoteResultsVo.getCosts().setNiPremium(daJiaCrawlerSaveResponse.getDriveInsurance().getProductInfo().getPremium().equals("") ? "0.00" : daJiaCrawlerSaveResponse.getDriveInsurance().getProductInfo().getPremium());
|
|
|
// 交强保费 车船税 商业保费
|
|
|
- buildOtherInfo(quoteResultsVo, daJiaCrawlerSaveResponse.getCompulsoryInsurance(), daJiaCrawlerSaveResponse.getBusinessInsurance());
|
|
|
+ buildOtherInfo(quoteResultsVo, daJiaCrawlerSaveResponse);
|
|
|
BusinessInsuranceDTO.ProductInfoDTO productInfo = daJiaCrawlerSaveResponse.getBusinessInsurance().getProductInfo();
|
|
|
CompulsoryInsuranceDTO.ProductInfoDTO compulsoryInsuranceProductInfo = daJiaCrawlerSaveResponse.getCompulsoryInsurance().getProductInfo();
|
|
|
quoteResultsVo.setCiStartDate(compulsoryInsuranceProductInfo.getStartDate());
|
|
|
quoteResultsVo.setCiEndDate(compulsoryInsuranceProductInfo.getEndDate());
|
|
|
quoteResultsVo.setBiStartDate(productInfo.getStartDate());
|
|
|
quoteResultsVo.setBiEndDate(productInfo.getEndDate());
|
|
|
+ quoteResultsVo.setCarActualValue(StringUtils.isNotEmpty(daJiaCrawlerActualValueResponse.getActualValue()) ? new BigDecimal(daJiaCrawlerActualValueResponse.getActualValue()) : BigDecimal.ZERO);
|
|
|
log.info("构建返回信息:{}",JSONObject.toJSONString(quoteResultsVo));
|
|
|
return quoteResultsVo;
|
|
|
}
|
|
|
@@ -121,13 +123,19 @@ public final class DaJiaCrawlerQuoteResultsVoBuild {
|
|
|
return ciRiskInfoVo;
|
|
|
}
|
|
|
|
|
|
- private static void buildOtherInfo(QuoteResultsVo quoteResultsVo, CompulsoryInsuranceDTO compulsoryInsurance, BusinessInsuranceDTO businessInsurance) {
|
|
|
+ private static void buildOtherInfo(QuoteResultsVo quoteResultsVo, DaJiaCrawlerSaveResponse daJiaCrawlerSaveResponse) {
|
|
|
+ BusinessInsuranceDTO businessInsurance = daJiaCrawlerSaveResponse.getBusinessInsurance();
|
|
|
+ CompulsoryInsuranceDTO compulsoryInsurance = daJiaCrawlerSaveResponse.getCompulsoryInsurance();
|
|
|
// 交强
|
|
|
+ BigDecimal sumPremium = BigDecimal.ZERO;
|
|
|
+ BigDecimal totalAmount = BigDecimal.ZERO;
|
|
|
if (!ObjectUtils.isEmpty(quoteResultsVo.getCiRiskInfoVo())) {
|
|
|
CompulsoryInsuranceDTO.ProductInfoDTO ciProductInfo = compulsoryInsurance.getProductInfo();
|
|
|
quoteResultsVo.getCosts().setCiPremium(ciProductInfo.getPremium());
|
|
|
quoteResultsVo.setCiPolicyNumber(ciProductInfo.getProposalNo());
|
|
|
quoteResultsVo.getCosts().setVvTax(compulsoryInsurance.getCarShipTax().getTotalTax());
|
|
|
+ sumPremium = sumPremium.add(new BigDecimal(compulsoryInsurance.getCarShipTax().getTotalTax()).add(new BigDecimal(ciProductInfo.getPremium())));
|
|
|
+ totalAmount = totalAmount.add(new BigDecimal(ciProductInfo.getPremium()));
|
|
|
}
|
|
|
|
|
|
// 商业
|
|
|
@@ -135,8 +143,18 @@ public final class DaJiaCrawlerQuoteResultsVoBuild {
|
|
|
BusinessInsuranceDTO.ProductInfoDTO biProductInfo = businessInsurance.getProductInfo();
|
|
|
quoteResultsVo.getCosts().setBiPremium(biProductInfo.getPremium());
|
|
|
quoteResultsVo.setBiPolicyNumber(biProductInfo.getProposalNo());
|
|
|
+ sumPremium = sumPremium.add(new BigDecimal(biProductInfo.getPremium()));
|
|
|
+ totalAmount = totalAmount.add(new BigDecimal(biProductInfo.getPremium()));
|
|
|
}
|
|
|
-
|
|
|
+ if (StringUtils.isNotEmpty(daJiaCrawlerSaveResponse.getDriveInsurance().getProductInfo().getPremium())){
|
|
|
+ sumPremium = sumPremium.add(new BigDecimal(daJiaCrawlerSaveResponse.getDriveInsurance().getProductInfo().getPremium()));
|
|
|
+ totalAmount = totalAmount.add(new BigDecimal(daJiaCrawlerSaveResponse.getDriveInsurance().getProductInfo().getPremium()));
|
|
|
+ }
|
|
|
+ // 非车费用
|
|
|
+ String string = daJiaCrawlerSaveResponse.getDriveInsurance().getProductInfo().getPremium().equals("") ? "0.00" : daJiaCrawlerSaveResponse.getDriveInsurance().getProductInfo().getPremium();
|
|
|
+ quoteResultsVo.getCosts().setSumPremium(sumPremium.toString());
|
|
|
+ quoteResultsVo.getCosts().setTotalAmount(totalAmount.toString());
|
|
|
+ quoteResultsVo.getCosts().setNiPremium(string);
|
|
|
}
|
|
|
|
|
|
private static List<KindInfoVo> buildKindInfoVo(List<KindInfoVo> kindInfoVo, List<BusinessInsuranceDTO.ItemKindsDTO> itemKinds) {
|
|
|
@@ -164,13 +182,24 @@ public final class DaJiaCrawlerQuoteResultsVoBuild {
|
|
|
if (!ObjectUtils.isEmpty(compulsoryInsurance)) {
|
|
|
scoreVo.setJqLossRation(StringUtils.isNotEmpty(compulsoryInsurance.getCoefficientInfo().getLossRatioCi()) ? compulsoryInsurance.getCoefficientInfo().getLossRatioCi() : null);
|
|
|
scoreVo.setCiClaims(String.valueOf(new BigDecimal(compulsoryInsurance.getCoefficientInfo().getLastPolicyNum()).intValue()));
|
|
|
- scoreVo.setJqRenewal(compulsoryInsurance.getCoefficientInfo().getRenewalFrequency());
|
|
|
+ String renewalFrequency = compulsoryInsurance.getCoefficientInfo().getRenewalFrequency();
|
|
|
+ if (StringUtils.isNotEmpty(renewalFrequency) && Objects.equals(renewalFrequency, "0")){
|
|
|
+ scoreVo.setJqRenewal(String.valueOf(RenewalEnum.Transfer.getCode()));
|
|
|
+ }else {
|
|
|
+ scoreVo.setJqRenewal(String.valueOf(RenewalEnum.Renewal.getCode()));
|
|
|
+ }
|
|
|
+
|
|
|
}
|
|
|
boolean sy = CollectionUtil.isNotEmpty(businessInsurance.getItemKinds());
|
|
|
if (sy) {
|
|
|
scoreVo.setSyLossRation(StringUtils.isNotEmpty(businessInsurance.getCoefficientInfo().getLossRatioBi()) ? businessInsurance.getCoefficientInfo().getLossRatioBi() : null);
|
|
|
scoreVo.setBiClaims(String.valueOf(new BigDecimal(businessInsurance.getCoefficientInfo().getLastPolicyNum()).intValue()));
|
|
|
- scoreVo.setSyRenewal(businessInsurance.getCoefficientInfo().getRenewalFrequency());
|
|
|
+ String renewalFrequency = businessInsurance.getCoefficientInfo().getRenewalFrequency();
|
|
|
+ if (StringUtils.isNotEmpty(renewalFrequency) && Objects.equals(renewalFrequency, "0")){
|
|
|
+ scoreVo.setSyRenewal(String.valueOf(RenewalEnum.Transfer.getCode()));
|
|
|
+ }else {
|
|
|
+ scoreVo.setSyRenewal(String.valueOf(RenewalEnum.Renewal.getCode()));
|
|
|
+ }
|
|
|
}
|
|
|
// 总赔付率 违章评分 高速风险分
|
|
|
String carIllegalScore;
|