|
|
@@ -116,7 +116,8 @@ public class TaiPingCrawlerPremiumCalculateRequest {
|
|
|
Optional.ofNullable(quoteVo.getCiRiskInfoVo()).ifPresent(ciRiskInfoVo -> {
|
|
|
this.pfItemKind0801DtoList = List.of(PfItemKind0801DtoListDTO.getCiKindInfo());
|
|
|
});
|
|
|
- this.pfItemKind0802DtoList = PfItemKind0802DtoListDTO.buildKindList(quoteVo.getKindInfoVo(),carActualValue,Integer.parseInt(quoteVo.getCarInfoVo().getSeatCount()));
|
|
|
+ boolean isNewEnergy = !quoteVo.getCarInfoVo().getEnergyTypeCode().equals("0") && !quoteVo.getCarInfoVo().getEnergyTypeCode().equals("4");
|
|
|
+ this.pfItemKind0802DtoList = PfItemKind0802DtoListDTO.buildKindList(quoteVo.getKindInfoVo(),carActualValue,Integer.parseInt(quoteVo.getCarInfoVo().getSeatCount()),isNewEnergy);
|
|
|
this.clauseList0801 = new ArrayList<>();
|
|
|
this.clauseList0802 = new ArrayList<>();
|
|
|
this.orderNo = orderNo;
|
|
|
@@ -144,12 +145,14 @@ public class TaiPingCrawlerPremiumCalculateRequest {
|
|
|
// 驾意险
|
|
|
this.fcProductList = new ArrayList<>();
|
|
|
this.cjcSaleInfoDto = new Object();
|
|
|
- this.fCsaleinfoDto = new FCsaleinfoDTO(record, parameters,taiPingCrawlerFindSolutionCodeData,orderNo);
|
|
|
+ if (quoteVo.getAccidentalDrivings()!=null && !quoteVo.getAccidentalDrivings().isEmpty()) {
|
|
|
+ this.fCsaleinfoDto = new FCsaleinfoDTO(record, parameters,taiPingCrawlerFindSolutionCodeData,orderNo);
|
|
|
+ }
|
|
|
this.businessType = "Proposal";
|
|
|
this.optType = "N";
|
|
|
this.personInd = "C";
|
|
|
this.productType = "1";
|
|
|
- this.isMatchClause = true;
|
|
|
+// this.isMatchClause = true;
|
|
|
}
|
|
|
|
|
|
@NoArgsConstructor
|
|
|
@@ -2106,7 +2109,7 @@ public class TaiPingCrawlerPremiumCalculateRequest {
|
|
|
@JsonProperty("serviceTimes")
|
|
|
private String serviceTimes;
|
|
|
|
|
|
- public static List<PfItemKind0802DtoListDTO> buildKindList(List<KindInfoVo> kindInfoVoList,String actualValue,Integer seatCount) {
|
|
|
+ public static List<PfItemKind0802DtoListDTO> buildKindList(List<KindInfoVo> kindInfoVoList,String actualValue,Integer seatCount,boolean isNewEnergy) {
|
|
|
List<PfItemKind0802DtoListDTO> kindList = new ArrayList<>();
|
|
|
for (KindInfoVo kindInfoVo : kindInfoVoList) {
|
|
|
PfItemKind0802DtoListDTO kind = new PfItemKind0802DtoListDTO();
|
|
|
@@ -2115,6 +2118,7 @@ public class TaiPingCrawlerPremiumCalculateRequest {
|
|
|
if (kindCodeEnum.getKindInd().equals("1")) {
|
|
|
kind.setRiskCode("0802");
|
|
|
}
|
|
|
+ kind.setKindName(kindInfoVo.getKindName());
|
|
|
kind.setKindInd(kindCodeEnum.getKindInd());
|
|
|
kind.setKindCode(kindCode);
|
|
|
kind.setShortRate(100);
|
|
|
@@ -2123,17 +2127,27 @@ public class TaiPingCrawlerPremiumCalculateRequest {
|
|
|
kind.setRelatedInd("0");
|
|
|
kind.setRelatedFlagFG2020("0");
|
|
|
kind.setRelatedFlagFG2020Type(false);
|
|
|
- kind.setValueType("");
|
|
|
+ kind.setValueType(null);
|
|
|
kind.setClauseType(false);
|
|
|
kind.setNoChange(true);
|
|
|
+ kind.setShareModel("0");
|
|
|
kind.setSumInsured(kindInfoVo.getAmount());
|
|
|
kind.setUnitInsured(kindInfoVo.getAmount());
|
|
|
+ if (kindInfoVo.getDeductibleRate().equals("0")) {
|
|
|
+ kind.setDeductible("0");
|
|
|
+ }
|
|
|
// 车损险
|
|
|
if (kindCodeEnum.getKindCode().equals("0301200") || kindCodeEnum.getKindCode().equals("0401200")) {
|
|
|
kind.setSumInsured(actualValue);
|
|
|
kind.setMax(actualValue);
|
|
|
- kind.setDisplayNo(0);
|
|
|
- kind.setSrcIndex(0);
|
|
|
+ if (kindCodeEnum.getKindCode().equals("0301200")) {
|
|
|
+ kind.setDisplayNo(0);
|
|
|
+ kind.setSrcIndex(0);
|
|
|
+ }
|
|
|
+ if (kindCodeEnum.getKindCode().equals("0401200")) {
|
|
|
+ kind.setDisplayNo(1);
|
|
|
+ kind.setSrcIndex(1);
|
|
|
+ }
|
|
|
kind.setDeductible("0");
|
|
|
kind.setDeductibleRate("");
|
|
|
kind.setRelatedFlagFG2020("1");
|
|
|
@@ -2142,25 +2156,66 @@ public class TaiPingCrawlerPremiumCalculateRequest {
|
|
|
// 三者险
|
|
|
if (kindCodeEnum.getKindCode().equals("0301600") || kindCodeEnum.getKindCode().equals("0401600")) {
|
|
|
kind.setSumInsured(kindInfoVo.getAmount());
|
|
|
- kind.setDisplayNo(2);
|
|
|
- kind.setSrcIndex(2);
|
|
|
+ kind.setDisplayNo(0);
|
|
|
+ kind.setSrcIndex(0);
|
|
|
+ }
|
|
|
+ // 医保外三者
|
|
|
+ if (kindCodeEnum.getKindCode().equals("0301002") && !isNewEnergy) {
|
|
|
+ kind.setDisplayNo(1);
|
|
|
+ kind.setSrcIndex(1);
|
|
|
}
|
|
|
- // 司机
|
|
|
+ if (kindCodeEnum.getKindCode().equals("0301002") && isNewEnergy) {
|
|
|
+ kind.setDisplayNo(4);
|
|
|
+ kind.setSrcIndex(4);
|
|
|
+ }
|
|
|
+ // 机动车车上人员责任保险(司机)
|
|
|
if (kindCodeEnum.getKindCode().equals("0301701") || kindCodeEnum.getKindCode().equals("0401701") || kindCodeEnum.getKindCode().equals("0301011")) {
|
|
|
kind.setQuantity(1);
|
|
|
kind.setUnitInsured(kindInfoVo.getUnitAmount());
|
|
|
kind.setSumInsured(kindInfoVo.getAmount());
|
|
|
- kind.setDisplayNo(4);
|
|
|
- kind.setSrcIndex(4);
|
|
|
+ kind.setDisplayNo(2);
|
|
|
+ kind.setSrcIndex(2);
|
|
|
+ }
|
|
|
+ // 医保外司机
|
|
|
+ if (kindCodeEnum.getKindCode().equals("0301011") && !isNewEnergy) {
|
|
|
+ kind.setDisplayNo(3);
|
|
|
+ kind.setSrcIndex(3);
|
|
|
}
|
|
|
- // 乘客
|
|
|
+ if (kindCodeEnum.getKindCode().equals("0301011") && isNewEnergy) {
|
|
|
+ kind.setDisplayNo(5);
|
|
|
+ kind.setSrcIndex(5);
|
|
|
+ }
|
|
|
+ // 机动车车上人员责任保险(乘客)
|
|
|
if (kindCodeEnum.getKindCode().equals("0301702") || kindCodeEnum.getKindCode().equals("0401702") || kindCodeEnum.getKindCode().equals("0301012")) {
|
|
|
kind.setQuantity(seatCount - 1);
|
|
|
kind.setUnitInsured(kindInfoVo.getUnitAmount());
|
|
|
kind.setSumInsured(String.valueOf(new BigDecimal(kindInfoVo.getUnitAmount()).multiply(new BigDecimal(seatCount - 1))));
|
|
|
+ kind.setDisplayNo(4);
|
|
|
+ kind.setSrcIndex(4);
|
|
|
+ if (isNewEnergy) {
|
|
|
+ kind.setSrcIndex(3);
|
|
|
+ kind.setDisplayNo(3);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ // 医保外乘客
|
|
|
+ if (kindCodeEnum.getKindCode().equals("0301012") && !isNewEnergy) {
|
|
|
+ kind.setSrcIndex(5);
|
|
|
+ kind.setDisplayNo(5);
|
|
|
+ }
|
|
|
+ if (kindCodeEnum.getKindCode().equals("0301012") && isNewEnergy) {
|
|
|
kind.setDisplayNo(6);
|
|
|
kind.setSrcIndex(6);
|
|
|
}
|
|
|
+ // 车身划痕
|
|
|
+ if (kindCodeEnum.getKindCode().equals("0301210")) {
|
|
|
+ kind.setSrcIndex(1);
|
|
|
+ kind.setDisplayNo(1);
|
|
|
+ }
|
|
|
+ // 附加电网故障损失险
|
|
|
+ if (kindCodeEnum.getKindCode().equals("0401201")) {
|
|
|
+ kind.setDisplayNo(4);
|
|
|
+ kind.setSrcIndex(4);
|
|
|
+ }
|
|
|
// 绝对免赔率
|
|
|
if (kindCodeEnum.getKindCode().equals("0301008") || kindCodeEnum.getKindCode().equals("0301009") || kindCodeEnum.getKindCode().equals("0301010")) {
|
|
|
kind.setDeductible(kindInfoVo.getDeductibleRate());
|