|
|
@@ -1,6 +1,7 @@
|
|
|
package com.jzg.quotation.chengtai.api.build;
|
|
|
|
|
|
import com.jzg.commons.constants.dict.InsOrderStatusEnum;
|
|
|
+import com.jzg.commons.entity.quote.vo.TaxInfoVo;
|
|
|
import com.jzg.quotation.chengtai.api.entity.constants.ResponseCode;
|
|
|
import com.jzg.quotation.chengtai.api.entity.response.InsurePremiumResponse;
|
|
|
import com.jzg.quotation.commons.constant.enums.quote.KindCode;
|
|
|
@@ -9,6 +10,7 @@ import com.jzg.quotation.commons.entity.vo.aggregated.QuoteVo;
|
|
|
import com.jzg.commons.entity.quote.vo.KindInfoVo;
|
|
|
import com.jzg.commons.entity.quote.vo.RiskInfoVo;
|
|
|
|
|
|
+import java.util.ArrayList;
|
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
|
import java.util.Objects;
|
|
|
@@ -25,30 +27,40 @@ public final class ChengTaiAPIQuoteResultsVoBuild {
|
|
|
throw new IllegalStateException("Utility class");
|
|
|
}
|
|
|
|
|
|
- public static QuoteResultsVo buildQuoteResultsVo(QuoteVo quoteVo, InsurePremiumResponse insurePremiumResponse) {
|
|
|
+ public static QuoteResultsVo buildQuoteResultsVo(String ordersNo, QuoteVo quoteVo, InsurePremiumResponse insurePremiumResponse) {
|
|
|
|
|
|
|
|
|
QuoteResultsVo quoteResultsVo = new QuoteResultsVo();
|
|
|
quoteResultsVo.setOrdersNo(insurePremiumResponse.getOrderId());
|
|
|
// 交强险
|
|
|
- quoteResultsVo.setCiRiskInfoVo(new RiskInfoVo());
|
|
|
+ quoteResultsVo.setCiRiskInfoVo(quoteVo.getCiRiskInfoVo());
|
|
|
// 商业险
|
|
|
- quoteResultsVo.setBiRiskInfoVo(new RiskInfoVo());
|
|
|
+ quoteResultsVo.setBiRiskInfoVo(quoteVo.getBiRiskInfoVo());
|
|
|
+ quoteResultsVo.setQuoteStatusEnum(InsOrderStatusEnum.WAIT_AUDIT);
|
|
|
+
|
|
|
+ if(!ResponseCode.R_000.getCode().equals(insurePremiumResponse.getCode())){
|
|
|
+ quoteResultsVo.setQuoteStatusEnum(InsOrderStatusEnum.QUOTE_FAIL);
|
|
|
+ quoteResultsVo.setErrorMessage(insurePremiumResponse.getMessage());
|
|
|
+ return quoteResultsVo;
|
|
|
+ }
|
|
|
+
|
|
|
+ // 交强保费 车船税 商业保费
|
|
|
+ buildPremium(quoteResultsVo, insurePremiumResponse);
|
|
|
+ quoteResultsVo.setCompanyOrderNo(insurePremiumResponse.getOrderId());
|
|
|
+ quoteResultsVo.setOrdersNo(ordersNo);
|
|
|
// 商业险险种信息
|
|
|
if(Objects.nonNull(insurePremiumResponse.getBiContract())){
|
|
|
List<KindInfoVo> kindInfoVo = buildKindInfoVo(quoteVo.getKindInfoVo(), insurePremiumResponse.getBiContract().getCoverage());
|
|
|
quoteResultsVo.setKindInfoVo(kindInfoVo);
|
|
|
}
|
|
|
- quoteResultsVo.setQuoteStatusEnum(InsOrderStatusEnum.WAIT_AUDIT);
|
|
|
+
|
|
|
+
|
|
|
// 费用因子
|
|
|
// List<ExpenseFactor> expenseFactors = buildExpenseFactor(calculatePremiumResponse.getPriceInfoList());
|
|
|
// quoteResultsVo.setExpenseFactors(expenseFactors);
|
|
|
- // 交强保费 车船税 商业保费
|
|
|
- if(!ResponseCode.R_000.getCode().equals(insurePremiumResponse.getCode())){
|
|
|
- quoteResultsVo.setQuoteStatusEnum(InsOrderStatusEnum.QUOTE_FAIL);
|
|
|
- quoteResultsVo.setErrorMessage(insurePremiumResponse.getMessage());
|
|
|
- }
|
|
|
- buildPremium(quoteResultsVo, insurePremiumResponse);
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
return quoteResultsVo;
|
|
|
}
|
|
|
|
|
|
@@ -77,19 +89,58 @@ public final class ChengTaiAPIQuoteResultsVoBuild {
|
|
|
|
|
|
private static void buildPremium(QuoteResultsVo quoteResultsVo, InsurePremiumResponse insurePremiumResponse) {
|
|
|
|
|
|
+ QuoteResultsVo.CostsVo costsVo = new QuoteResultsVo.CostsVo();
|
|
|
+
|
|
|
+ double jqPremium = 0;
|
|
|
+ double syPremium = 0;
|
|
|
+ double jyPremium = 0;
|
|
|
+ double sumTax = 0;
|
|
|
// 交强
|
|
|
if(Objects.nonNull(insurePremiumResponse.getCiContract())){
|
|
|
InsurePremiumResponse.CiContractDTO.ContractMainDTO ciContractMain = insurePremiumResponse.getCiContract().getContractMain();
|
|
|
- quoteResultsVo.setCiPremium(ciContractMain.getTotalPremium() + "");
|
|
|
+ jqPremium = ciContractMain.getTotalPremium();
|
|
|
+ costsVo.setCiPremium( jqPremium+ "");
|
|
|
//车船税
|
|
|
InsurePremiumResponse.CiContractDTO.TaxDTO taxDTO = insurePremiumResponse.getCiContract().getTax();
|
|
|
- quoteResultsVo.setVvTax(taxDTO.getSumTax() + "");
|
|
|
+ sumTax = taxDTO.getSumTax();
|
|
|
+ costsVo.setVvTax(sumTax + "");
|
|
|
+
|
|
|
+ //起保日期
|
|
|
+ quoteResultsVo.setCiStartDate(ciContractMain.getValidDate());
|
|
|
+ quoteResultsVo.setCiEndDate(ciContractMain.getExpiryDate());
|
|
|
+
|
|
|
+ //欠税信息
|
|
|
+ if (null != insurePremiumResponse.getCiContract().getTax()) {
|
|
|
+ InsurePremiumResponse.CiContractDTO.TaxDTO tax = insurePremiumResponse.getCiContract().getTax();
|
|
|
+ List<TaxInfoVo> taxArrearsList = new ArrayList<>();
|
|
|
+ TaxInfoVo taxArrear = new TaxInfoVo();
|
|
|
+
|
|
|
+ taxArrear.setYears(tax.getLastPaidYear());
|
|
|
+ taxArrear.setTaxDefault(tax.getAnnualTaxDue());
|
|
|
+ taxArrear.setLateFee(tax.getSumOverdue());
|
|
|
+ taxArrearsList.add(taxArrear);
|
|
|
+ quoteResultsVo.setTaxVo(taxArrearsList);
|
|
|
+ }
|
|
|
}
|
|
|
//商业
|
|
|
if(Objects.nonNull(insurePremiumResponse.getBiContract())){
|
|
|
InsurePremiumResponse.BiContractDTO.ContractMainDTO biContractMain = insurePremiumResponse.getBiContract().getContractMain();
|
|
|
- quoteResultsVo.setBiPremium(biContractMain.getTotalPremium()+"");
|
|
|
+ syPremium = biContractMain.getTotalPremium();
|
|
|
+ costsVo.setBiPremium(syPremium+"");
|
|
|
+
|
|
|
+ //起保日期
|
|
|
+ quoteResultsVo.setBiStartDate(biContractMain.getValidDate());
|
|
|
+ quoteResultsVo.setBiEndDate(biContractMain.getExpiryDate());
|
|
|
+ }
|
|
|
+ // 驾意
|
|
|
+ if(Objects.nonNull(insurePremiumResponse.getAccContract())){
|
|
|
+ InsurePremiumResponse.AccContractDTO accContract = insurePremiumResponse.getAccContract();
|
|
|
+ jyPremium = accContract.getContractMain().getTotalPremium();
|
|
|
+ costsVo.setNiPremium(syPremium+"");
|
|
|
}
|
|
|
+ costsVo.setSumPremium(String.valueOf(jqPremium + syPremium + jyPremium + sumTax));
|
|
|
+
|
|
|
+ quoteResultsVo.setCosts(costsVo);
|
|
|
}
|
|
|
|
|
|
}
|