Răsfoiți Sursa

国任永诚添加服务特约条款

wks 2 ani în urmă
părinte
comite
db14c0e24e

+ 31 - 19
src/main/java/com/ydtech/constants/enums/InsurKindGuoRen.java

@@ -13,29 +13,41 @@ import lombok.Getter;
 @AllArgsConstructor
 public enum InsurKindGuoRen {
 
-    B("20B", "机动车第三者责任保险","33"," 1  1"),
-    A("20A", "机动车损失保险","34"," 1  1"),
-    D3("20D3", "机动车车上人员责任保险(驾驶员)","35"," 1  1"),
-    D4("20D4", "机动车车上人员责任保险(乘客)","37"," 1  1"),
-
-    MJ1("20E1", "附加绝对免赔率特约险(机动车损失保险)","39"," 2  0"),
-    MJ2("20E3", "附加绝对免赔率特约险(机动车第三者责任保险)","41"," 2  0"),
-    MJ3("20E4", "附加绝对免赔率特约险(机动车车上人员责任保险(司机))","42"," 2  0"),
-    MJ4("20E5", "附加绝对免赔率特约险(机动车车上人员责任保险(乘客))","43"," 2  0"),
-    BD("20J", "附加法定节假日限额翻倍险","45"," 2  0"),
-    L("20L", "附加车身划痕损失险","47"," 2  0"),
-    SY_FJ_YBW1("20Y", "附加医保外医疗费用责任险-三者险","54"," 2  0"),
-    SY_FJ_YBW3("20Y1", "附加医保外医疗费用责任险-驾驶员","55"," 2  0"),
-    SY_FJ_YBW2("20Y2", "附加医保外医疗费用责任险-乘客","56"," 2  0"),
-
-    B_N("21B", "新能源汽车第三者责任保险","33"," 1  1"),
-    A_N("21A", "新能源汽车损失保险","34"," 1  1"),
-    D3_N("21D3", "新能源汽车车上人员责任保险(司机","35"," 1  1"),
-    D4_N("21D4", "新能源汽车车上人员责任保险(乘客)","37"," 1  1"),
+    B("20B", "机动车第三者责任保险", "33", " 1  1"),
+    A("20A", "机动车损失保险", "34", " 1  1"),
+    D3("20D3", "机动车车上人员责任保险(驾驶员)", "35", " 1  1"),
+    D4("20D4", "机动车车上人员责任保险(乘客)", "37", " 1  1"),
 
+    MJ1("20E1", "附加绝对免赔率特约险(机动车损失保险)", "39", " 2  0"),
+    MJ2("20E3", "附加绝对免赔率特约险(机动车第三者责任保险)", "41", " 2  0"),
+    MJ3("20E4", "附加绝对免赔率特约险(机动车车上人员责任保险(司机))", "42", " 2  0"),
+    MJ4("20E5", "附加绝对免赔率特约险(机动车车上人员责任保险(乘客))", "43", " 2  0"),
+    BD("20J", "附加法定节假日限额翻倍险", "45", " 2  0"),
+    L("20L", "附加车身划痕损失险", "47", " 2  0"),
+
+    SY_FJ_YBW1("20Y", "附加医保外医疗费用责任险-三者险", "54", " 2  0"),
+    SY_FJ_YBW3("20Y1", "附加医保外医疗费用责任险-驾驶员", "55", " 2  0"),
+    SY_FJ_YBW2("20Y2", "附加医保外医疗费用责任险-乘客", "56", " 2  0"),
+
+    B_N("21B", "新能源汽车第三者责任保险", "33", " 1  1"),
+    A_N("21A", "新能源汽车损失保险", "34", " 1  1"),
+    D3_N("21D3", "新能源汽车车上人员责任保险(司机", "35", " 1  1"),
+    D4_N("21D4", "新能源汽车车上人员责任保险(乘客)", "37", " 1  1"),
+
+    TY1("20Z1", "道路救援服务特约条款", "57", " 2  1"),
+    TY2("20Z2", "车辆安全检测特约条款", "58", " 2  1"),
+    TY3("20Z3", "代为驾驶服务特约条款", "59", " 2  1"),
+    TY4("20Z4", "代为送检服务特约条款", "38", " 2  1"),
+
+    TY1_N("21Z1", "道路救援服务特约条款(新能源车)", "66", " 2  1"),
+    TY2_N("21Z2", "车辆安全检测特约条款(新能源车)", "67", " 2  1"),
+    TY3_N("21Z3", "代为驾驶服务特约条款(新能源车)", "68", " 2  1"),
+    TY4_N("21Z4", "代为送检服务特约条款(新能源车)", "69", "  2  1"),
 
     ;
 
+
+
     public static InsurKindGuoRen matchKey(String key) {
         InsurKindGuoRen result = null;
         for (InsurKindGuoRen e : values()) {

+ 69 - 2
src/main/java/com/ydtech/modules/ins/model/guoren/PremiumReq.java

@@ -78,8 +78,7 @@ public class PremiumReq {
                 CiDTO ciDto = buildCiDto(ownerInfo, a, isNoCar, trafficSpecialAgreement);
                 ciDto.setTrafficTime(a.getStartDate());
                 quoteReq.setCi(ciDto);
-            }
-            if (a.getRiskCode().equals(InsuranceRisk.BUSINESS_CODE)) {
+            } else if (a.getRiskCode().equals(InsuranceRisk.BUSINESS_CODE)) {
                 List<GuoRenSpecialAgreementVo> businessSpecialAgreement =
                         specialAgreementVo.stream().filter(x -> InsuranceRisk.BUSINESS_CODE.equals(x.getRiskCode())).collect(Collectors.toList());
                 BiDTO biDto = buildBiDto(ownerInfo, a, kindInfoVList, carPriceResult, vinQ, isNoCar, businessSpecialAgreement);
@@ -493,6 +492,74 @@ public class PremiumReq {
                 prptitemkind.setQuantity("1");
             }
 
+            if (k.getKindCode().equals(InsurKind.TY1.getCode())) {
+                if (isEnergy) {
+                    prptitemkind.setKindCode(InsurKindGuoRen.TY1_N.getCode());
+                    prptitemkind.setKindName(InsurKindGuoRen.TY1_N.getDesc());
+                    prptitemkind.setItemKindNo(InsurKindGuoRen.TY1_N.getItemKindNo());
+                    prptitemkind.setFlag(InsurKindGuoRen.TY1_N.getFlag());
+                } else {
+                    prptitemkind.setKindCode(InsurKindGuoRen.TY1.getCode());
+                    prptitemkind.setKindName(InsurKindGuoRen.TY1.getDesc());
+                    prptitemkind.setItemKindNo(InsurKindGuoRen.TY1.getItemKindNo());
+                    prptitemkind.setFlag(InsurKindGuoRen.TY1.getFlag());
+                }
+                prptitemkind.setAmount(StringUtils.toString(k.getAmount()));
+                prptitemkind.setMainKindFlag("S");
+                prptitemkind.setQuantity(String.valueOf(k.getServiceTimes()));
+            }
+
+            if (k.getKindCode().equals(InsurKind.TY2.getCode())) {
+                if (isEnergy) {
+                    prptitemkind.setKindCode(InsurKindGuoRen.TY2_N.getCode());
+                    prptitemkind.setKindName(InsurKindGuoRen.TY2_N.getDesc());
+                    prptitemkind.setItemKindNo(InsurKindGuoRen.TY2_N.getItemKindNo());
+                    prptitemkind.setFlag(InsurKindGuoRen.TY2_N.getFlag());
+                } else {
+                    prptitemkind.setKindCode(InsurKindGuoRen.TY2.getCode());
+                    prptitemkind.setKindName(InsurKindGuoRen.TY2.getDesc());
+                    prptitemkind.setItemKindNo(InsurKindGuoRen.TY2.getItemKindNo());
+                    prptitemkind.setFlag(InsurKindGuoRen.TY2.getFlag());
+                }
+                prptitemkind.setAmount(StringUtils.toString(k.getAmount()));
+                prptitemkind.setMainKindFlag("S");
+                prptitemkind.setQuantity(String.valueOf(k.getServiceTimes()));
+            }
+
+            if (k.getKindCode().equals(InsurKind.TY3.getCode())) {
+                if (isEnergy) {
+                    prptitemkind.setKindCode(InsurKindGuoRen.TY3_N.getCode());
+                    prptitemkind.setKindName(InsurKindGuoRen.TY3_N.getDesc());
+                    prptitemkind.setItemKindNo(InsurKindGuoRen.TY3_N.getItemKindNo());
+                    prptitemkind.setFlag(InsurKindGuoRen.TY3_N.getFlag());
+                } else {
+                    prptitemkind.setKindCode(InsurKindGuoRen.TY3.getCode());
+                    prptitemkind.setKindName(InsurKindGuoRen.TY3.getDesc());
+                    prptitemkind.setItemKindNo(InsurKindGuoRen.TY3.getItemKindNo());
+                    prptitemkind.setFlag(InsurKindGuoRen.TY3.getFlag());
+                }
+                prptitemkind.setAmount(StringUtils.toString(k.getAmount()));
+                prptitemkind.setMainKindFlag("S");
+                prptitemkind.setQuantity(String.valueOf(k.getServiceTimes()));
+            }
+
+            if (k.getKindCode().equals(InsurKind.TY4.getCode())) {
+                if (isEnergy) {
+                    prptitemkind.setKindCode(InsurKindGuoRen.TY4_N.getCode());
+                    prptitemkind.setKindName(InsurKindGuoRen.TY4_N.getDesc());
+                    prptitemkind.setItemKindNo(InsurKindGuoRen.TY4_N.getItemKindNo());
+                    prptitemkind.setFlag(InsurKindGuoRen.TY4_N.getFlag());
+                } else {
+                    prptitemkind.setKindCode(InsurKindGuoRen.TY4.getCode());
+                    prptitemkind.setKindName(InsurKindGuoRen.TY4.getDesc());
+                    prptitemkind.setItemKindNo(InsurKindGuoRen.TY4.getItemKindNo());
+                    prptitemkind.setFlag(InsurKindGuoRen.TY4.getFlag());
+                }
+                prptitemkind.setAmount(StringUtils.toString(k.getAmount()));
+                prptitemkind.setMainKindFlag("S");
+                prptitemkind.setQuantity(String.valueOf(k.getServiceTimes()));
+            }
+
             prptitemkindList.add(prptitemkind);
         });
         return prptitemkindList;

+ 45 - 0
src/main/java/com/ydtech/modules/ins/model/yc/ruote/CvrgListSY.java

@@ -184,6 +184,51 @@ public class CvrgListSY {
 //                bean.setCResvTxt4(a.getDeductibleRate());
             }
 
+            if("32773002,32773003,32773004,".contains(vhl.getFuelType())) {
+                //
+                if(InsurKind.TY1.getCode().equals(a.getKindCode())){
+                    bean.setCCvrgNo("030235");
+                    bean.setNLiabDaysLmt(String.valueOf(a.getServiceTimes()));
+                }
+
+                if(InsurKind.TY2.getCode().equals(a.getKindCode())){
+                    bean.setCCvrgNo("030236");
+                    bean.setNLiabDaysLmt(String.valueOf(a.getServiceTimes()));
+                }
+
+                if(InsurKind.TY3.getCode().equals(a.getKindCode())){
+                    bean.setCCvrgNo("030237");
+                    bean.setNLiabDaysLmt(String.valueOf(a.getServiceTimes()));
+                }
+
+                if(InsurKind.TY4.getCode().equals(a.getKindCode())){
+                    bean.setCCvrgNo("030238");
+                    bean.setNLiabDaysLmt(String.valueOf(a.getServiceTimes()));
+                }
+
+            }else {
+                //
+                if(InsurKind.TY1.getCode().equals(a.getKindCode())){
+                    bean.setCCvrgNo("030209");
+                    bean.setNLiabDaysLmt(String.valueOf(a.getServiceTimes()));
+                }
+
+                if(InsurKind.TY2.getCode().equals(a.getKindCode())){
+                    bean.setCCvrgNo("030210");
+                    bean.setNLiabDaysLmt(String.valueOf(a.getServiceTimes()));
+                }
+
+                if(InsurKind.TY3.getCode().equals(a.getKindCode())){
+                    bean.setCCvrgNo("030211");
+                    bean.setNLiabDaysLmt(String.valueOf(a.getServiceTimes()));
+                }
+
+                if(InsurKind.TY4.getCode().equals(a.getKindCode())){
+                    bean.setCCvrgNo("030212");
+                    bean.setNLiabDaysLmt(String.valueOf(a.getServiceTimes()));
+                }
+            }
+
             if (StringUtils.isEmpty(bean.getNPerAmt())) {
                 bean.setNPerAmt(((int) a.getAmount()) + "");
             }

+ 18 - 9
src/main/java/com/ydtech/modules/order/entity/api/zhongmei/request/QuotedPriceRequest.java

@@ -48,7 +48,8 @@ public class QuotedPriceRequest extends BaseRequest {
     @JsonProperty("businessData")
     private BusinessDataDTO businessData;
 
-    public QuotedPriceRequest(BaseQuoteInfoVo baseQuoteInfoVo, ModelsQueryResponse.SimpleStadarCarDTO simpleStadarCarDTO, AccidentalDrivingVo accidentalDrivingVo, ZmConfigureParameters zmConfigureParameters) {
+    public QuotedPriceRequest(BaseQuoteInfoVo baseQuoteInfoVo, ModelsQueryResponse.SimpleStadarCarDTO simpleStadarCarDTO,
+                              AccidentalDrivingVo accidentalDrivingVo, ZmConfigureParameters zmConfigureParameters) {
         this.businessData = new BusinessDataDTO(baseQuoteInfoVo, simpleStadarCarDTO, accidentalDrivingVo, zmConfigureParameters);
     }
 
@@ -89,7 +90,8 @@ public class QuotedPriceRequest extends BaseRequest {
         @JsonProperty("productPlan")
         private String productPlan;
 
-        public BusinessDataDTO(BaseQuoteInfoVo baseQuoteInfoVo, ModelsQueryResponse.SimpleStadarCarDTO simpleStadarCarDTO, AccidentalDrivingVo accidentalDrivingVo, ZmConfigureParameters zmConfigureParameters) {
+        public BusinessDataDTO(BaseQuoteInfoVo baseQuoteInfoVo, ModelsQueryResponse.SimpleStadarCarDTO simpleStadarCarDTO,
+                               AccidentalDrivingVo accidentalDrivingVo, ZmConfigureParameters zmConfigureParameters) {
             CarInfoVo carInfo = baseQuoteInfoVo.getCarInfo();
             List<RiskInfoVo> riskList = baseQuoteInfoVo.getRiskList();
             List<KindInfoVo> kindList = baseQuoteInfoVo.getKindList();
@@ -98,18 +100,19 @@ public class QuotedPriceRequest extends BaseRequest {
             CustomerInfoVo insuredPersonInfo = baseQuoteInfoVo.getInsuredPersonInfo();
             int i = Integer.parseInt(carInfo.getSeatCount());
             //产品编码
-            this.productPlan=InsuranceTypeCorrespondence.getZhongMei_PRODUCT().get(simpleStadarCarDTO.getEnergyTypes());
+            this.productPlan = InsuranceTypeCorrespondence.getZhongMei_PRODUCT().get(simpleStadarCarDTO.getEnergyTypes());
             // 保单归属地
             this.policyLocation = new PolicyLocationDTO(zmConfigureParameters);
             // 车辆信息
             this.insuredObject = new InsuredObjectDTO(carInfo, simpleStadarCarDTO);
             // 保险信息
-            this.contract = new ContractDTO().getContract(riskList, kindList, i - 1,simpleStadarCarDTO.getEnergyTypes());
+            this.contract = new ContractDTO().getContract(riskList, kindList, i - 1, simpleStadarCarDTO.getEnergyTypes());
             // 客户信息
             this.customer = new CustomerDTO().getCustomers(ownerInfo, policyHolderInfo, insuredPersonInfo);
             // 驾意险
             if (!StringUtils.isEmpty(accidentalDrivingVo.getRideRiskCode())) {
-                this.accident = Collections.singletonList(new AccidentDTO(accidentalDrivingVo.getRideRiskCode(), accidentalDrivingVo.getQuantity()));
+                this.accident = Collections.singletonList(new AccidentDTO(accidentalDrivingVo.getRideRiskCode(),
+                        accidentalDrivingVo.getQuantity()));
             }
 
         }
@@ -278,11 +281,12 @@ public class QuotedPriceRequest extends BaseRequest {
         @JsonProperty("coverage")
         private List<CoverageDTO> coverage;
 
-        public List<ContractDTO> getContract(List<RiskInfoVo> riskInfoVos, List<KindInfoVo> kindInfoVos, Integer quantity,String energyTypes) {
+        public List<ContractDTO> getContract(List<RiskInfoVo> riskInfoVos, List<KindInfoVo> kindInfoVos, Integer quantity,
+                                             String energyTypes) {
             List<ContractDTO> contractDTOS = new ArrayList<>();
             for (RiskInfoVo riskInfoVo : riskInfoVos) {
                 ContractDTO contractDTO = new ContractDTO();
-                contractDTO.contractMain = new ContractMainDTO(riskInfoVo,energyTypes);
+                contractDTO.contractMain = new ContractMainDTO(riskInfoVo, energyTypes);
                 if (InsuranceRisk.TRAFFIC.getCode().equals(riskInfoVo.getRiskCode())) {
                     contractDTO.coverage = Collections.singletonList(new CoverageDTO().fetchTraffic());
                 }
@@ -316,7 +320,7 @@ public class QuotedPriceRequest extends BaseRequest {
             @JsonProperty("reinsuranceFlag")
             private String reinsuranceFlag;
 
-            public ContractMainDTO(RiskInfoVo riskInfoVo,String energyTypes) {
+            public ContractMainDTO(RiskInfoVo riskInfoVo, String energyTypes) {
                 this.riskCode = InsuranceTypeCorrespondence.getZhongMei_RISK().get(energyTypes).get(riskInfoVo.getRiskCode());
                 String startDate = riskInfoVo.getStartDate();
                 DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
@@ -404,6 +408,10 @@ public class QuotedPriceRequest extends BaseRequest {
                     if (ArrayUtil.indexOf(InsuranceTypeCorrespondence.getAbsoluteDeductible(), code) >= 0) {
                         coverageDTO.deductible = "-" + kindInfoVo.getDeductibleRate();
                     }
+                    // 增值服务
+                    if (ArrayUtil.indexOf(InsuranceTypeCorrespondence.getSpecialContractClause(), code) >= 0) {
+                        coverageDTO.quantity = kindInfoVo.getServiceTimes();
+                    }
                     list.add(coverageDTO);
 
                 }
@@ -495,7 +503,8 @@ public class QuotedPriceRequest extends BaseRequest {
         }
 
         public List<CustomerDTO> getCustomers(CustomerInfoVo ownerInfo, CustomerInfoVo policyHolderInfo, CustomerInfoVo insuredPersonInfo) {
-            return Arrays.asList(new CustomerDTO(ownerInfo, "3"), new CustomerDTO(policyHolderInfo, "1"), new CustomerDTO(insuredPersonInfo, "2"));
+            return Arrays.asList(new CustomerDTO(ownerInfo, "3"), new CustomerDTO(policyHolderInfo, "1"),
+                    new CustomerDTO(insuredPersonInfo, "2"));
         }
 
     }