|
|
@@ -86,14 +86,37 @@ public final class YangGuangApiQuoteResultsVoBuild {
|
|
|
}
|
|
|
|
|
|
private static void buildPremium(QuoteResultsVo quoteResultsVo, YangGuangAccuracyCalculateResponse yangGuangAccuracyCalculateResponse) {
|
|
|
- quoteResultsVo.getCosts().setCiPremium(yangGuangAccuracyCalculateResponse.getCiSumPremium());
|
|
|
- quoteResultsVo.getCosts().setBiPremium(yangGuangAccuracyCalculateResponse.getBiSumPremium());
|
|
|
- quoteResultsVo.getCosts().setVvTax(yangGuangAccuracyCalculateResponse.getSumPayTax());
|
|
|
+ String defaultPremium = "0.00";
|
|
|
+ quoteResultsVo.getCosts().setCiPremium(yangGuangAccuracyCalculateResponse.getCiSumPremium() != null ? yangGuangAccuracyCalculateResponse.getCiSumPremium() : defaultPremium);
|
|
|
+ quoteResultsVo.getCosts().setBiPremium(yangGuangAccuracyCalculateResponse.getBiSumPremium() != null ? yangGuangAccuracyCalculateResponse.getBiSumPremium() : defaultPremium);
|
|
|
+ quoteResultsVo.getCosts().setVvTax(yangGuangAccuracyCalculateResponse.getSumPayTax() != null ? yangGuangAccuracyCalculateResponse.getSumPayTax() : defaultPremium);
|
|
|
// 驾意险
|
|
|
List<YangGuangAccuracyCalculateResponse.PtptNonVehicleProductInformationList> notCarList = yangGuangAccuracyCalculateResponse.getPtptNonVehicleProductInformationList();
|
|
|
//驾意险价格
|
|
|
- BigDecimal bigDecimal = YangGuangAccuracyCalculateResponse.PtptNonVehicleProductInformationList.sumPremium(notCarList);
|
|
|
- quoteResultsVo.getCosts().setNiPremium(bigDecimal.toString());
|
|
|
+ BigDecimal jyPremium = YangGuangAccuracyCalculateResponse.PtptNonVehicleProductInformationList.sumPremium(notCarList);
|
|
|
+ quoteResultsVo.getCosts().setNiPremium(jyPremium.toString());
|
|
|
+ if (quoteResultsVo.getCosts().getNiPremium().equals("0")) {
|
|
|
+ quoteResultsVo.getCosts().setNiPremium(defaultPremium);
|
|
|
+ }
|
|
|
+ // 2. 字符串转BigDecimal
|
|
|
+ BigDecimal ci = toBigDecimal(yangGuangAccuracyCalculateResponse.getCiSumPremium(), defaultPremium);
|
|
|
+ BigDecimal bi = toBigDecimal(yangGuangAccuracyCalculateResponse.getBiSumPremium(), defaultPremium);
|
|
|
+ BigDecimal vvTax = toBigDecimal(yangGuangAccuracyCalculateResponse.getSumPayTax(), defaultPremium);
|
|
|
+ BigDecimal ni = toBigDecimal(jyPremium.toString(), defaultPremium);
|
|
|
+ quoteResultsVo.getCosts().setSumPremium(ci.add(bi).add(vvTax).add(ni).toString());
|
|
|
+ }
|
|
|
+
|
|
|
+ private static BigDecimal toBigDecimal(String str, String defaultValue) {
|
|
|
+ if (str == null || str.trim().isEmpty()) {
|
|
|
+ return new BigDecimal(defaultValue);
|
|
|
+ }
|
|
|
+ try {
|
|
|
+ return new BigDecimal(str.trim());
|
|
|
+ } catch (NumberFormatException e) {
|
|
|
+ // 日志记录错误,使用默认值
|
|
|
+ System.err.println("保费格式错误: " + str + ", 使用默认值: " + defaultValue);
|
|
|
+ return new BigDecimal(defaultValue);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
/**
|