Kaynağa Gözat

大家新能源新增

cuixinpeng 2 yıl önce
ebeveyn
işleme
68c4688046

+ 14 - 1
src/main/java/com/ydtech/modules/order/entity/api/dajia/constants/CCvrgNo.java

@@ -34,7 +34,20 @@ public enum CCvrgNo {
     NO035613("035613","SY_FJ_YBW3","附加医保外医疗费用责任险(车上人员责任保险(司机))"),
     NO035614("035614","SY_FJ_YBW2","附加医保外医疗费用责任险(车上人员责任保险(乘客))"),
     NO035615("035615","","附加精神损害抚慰金责任险(车上人员责任保险(司机))"),
-    NO035616("035616","","附加精神损害抚慰金责任险(车上人员责任保险(乘客))");
+    NO035616("035616","","附加精神损害抚慰金责任险(车上人员责任保险(乘客))"),
+
+    NO035804("035804","D3","新能源汽车车上人员责任保险(司机)"),
+    NO035801("035801","A","新能源汽车损失保险"),
+    NO035803("035803","D4","新能源汽车车上人员责任保险(乘客)"),
+    NO035802("035802","B","新能源汽车第三者责任保险"),
+    NO035805("035805","","附加外部电网故障损失险"),
+    NO035806("035806","","附加自用充电桩损失保险"),
+    NO035807("035807","","附加自用充电桩责任保险"),
+    NO035810("035810","","道路救援服务特约条款(新能源汽车)"),
+    NO035811("035811","","车辆安全检测特约条款(新能源汽车)"),
+    NO035812("035812","","代为驾驶服务特约条款(新能源汽车)"),
+    NO035813("035813","","代为送检服务特约条款(新能源汽车)"),
+    ;
     private final String code;
     private final String insurCode;
     private final String desc;

+ 23 - 7
src/main/java/com/ydtech/modules/order/entity/api/dajia/request/ODR1009Request.java

@@ -45,7 +45,7 @@ public class ODR1009Request extends DaJiaBaseRequest {
     @JsonProperty("body")
     private BodyDTO body;
 
-    public ODR1009Request(String orderNo, List<KindInfoVo> kindInfoVos, List<RiskInfoVo> riskInfoVos, BaseQuoteInfoVo quoteInfoVo, ODR1016Response odr1016Response) {
+    public ODR1009Request(String orderNo, List<KindInfoVo> kindInfoVos, List<RiskInfoVo> riskInfoVos, BaseQuoteInfoVo quoteInfoVo, ODR1016Response odr1016Response,boolean isEnergy) {
         super("TQBD", ServiceCode.ODR1009.getCode());
         if(Objects.isNull(body)){
             body = new BodyDTO();
@@ -69,7 +69,7 @@ public class ODR1009Request extends DaJiaBaseRequest {
         //设置车船税
         setVehicleTaxation(riskInfoVos);
         //设置商业险信息
-        setCoverageList(kindInfoVos,quoteInfoVo,odr1016Response);
+        setCoverageList(kindInfoVos,quoteInfoVo,odr1016Response,isEnergy);
         //设置验车情况
         setInspectionInfo();
         //设置特殊属性
@@ -184,7 +184,7 @@ public class ODR1009Request extends DaJiaBaseRequest {
     }
 
     //商业险别信息(列表)
-    public void setCoverageList(List<KindInfoVo> kindInfoVos,BaseQuoteInfoVo quoteInfoVo,ODR1016Response odr1016Response){
+    public void setCoverageList(List<KindInfoVo> kindInfoVos,BaseQuoteInfoVo quoteInfoVo,ODR1016Response odr1016Response,boolean isEnergy){
         ArrayList<BodyDTO.coverageListDTO> coverageListDTOS = new ArrayList<>();
         Integer seatCount = Integer.parseInt(quoteInfoVo.getCarInfo().getSeatCount());
 
@@ -193,7 +193,11 @@ public class ODR1009Request extends DaJiaBaseRequest {
             if(kindInfoVo.getKindCode().equals(CCvrgNo.NO030006.getInsurCode())){
                 //保额
                 BodyDTO.coverageListDTO coverageListDTO = new BodyDTO.coverageListDTO();
-                coverageListDTO.setCvrgNo(CCvrgNo.NO030006.getCode());
+                if(isEnergy){
+                    coverageListDTO.setCvrgNo(CCvrgNo.NO035801.getCode());
+                }else {
+                    coverageListDTO.setCvrgNo(CCvrgNo.NO030006.getCode());
+                }
                 coverageListDTO.setLossNAmt(odr1016Response.getResult().getActualValue());
                 coverageListDTOS.add(coverageListDTO);
             }else if(kindInfoVo.getKindCode().equals(CCvrgNo.NO035601.getInsurCode())){
@@ -205,7 +209,11 @@ public class ODR1009Request extends DaJiaBaseRequest {
             } else if(kindInfoVo.getKindCode().equals(CCvrgNo.NO030018.getInsurCode())) {
                 //第三者责任险
                 BodyDTO.coverageListDTO coverageListDTO = new BodyDTO.coverageListDTO();
-                coverageListDTO.setCvrgNo(CCvrgNo.NO030018.getCode());
+                if(isEnergy){
+                    coverageListDTO.setCvrgNo(CCvrgNo.NO035802.getCode());
+                }else {
+                    coverageListDTO.setCvrgNo(CCvrgNo.NO030018.getCode());
+                }
                 //限额档次
                 coverageListDTO.setThreeCIndemLmtLvl(getCPayTaxType(kindInfoVo).getCode());
                 //档次对应限额
@@ -241,7 +249,11 @@ public class ODR1009Request extends DaJiaBaseRequest {
             }else if(kindInfoVo.getKindCode().equals(CCvrgNo.NO030001.getInsurCode())) {
                 //车上人员责任保险(司机)
                 BodyDTO.coverageListDTO coverageListDTO = new BodyDTO.coverageListDTO();
-                coverageListDTO.setCvrgNo(CCvrgNo.NO030001.getCode());
+                if(isEnergy){
+                    coverageListDTO.setCvrgNo(CCvrgNo.NO035804.getCode());
+                }else {
+                    coverageListDTO.setCvrgNo(CCvrgNo.NO030001.getCode());
+                }
                 coverageListDTO.setDriverNLiabDaysLmt("1");
                 coverageListDTO.setDriverNPerAmt(kindInfoVo.getAmount());
                 coverageListDTOS.add(coverageListDTO);
@@ -254,7 +266,11 @@ public class ODR1009Request extends DaJiaBaseRequest {
             }else if(kindInfoVo.getKindCode().equals(CCvrgNo.NO030009.getInsurCode())) {
                 //车上人员责任保险(乘客)
                 BodyDTO.coverageListDTO coverageListDTO = new BodyDTO.coverageListDTO();
-                coverageListDTO.setCvrgNo(CCvrgNo.NO030009.getCode());
+                if(isEnergy){
+                    coverageListDTO.setCvrgNo(CCvrgNo.NO035803.getCode());
+                }else {
+                    coverageListDTO.setCvrgNo(CCvrgNo.NO030009.getCode());
+                }
                 coverageListDTO.setPassengerNLiabDaysLmt(seatCount- 1 + "");
                 coverageListDTO.setPassengerNPerAmt(kindInfoVo.getUnitAmount());
                 coverageListDTOS.add(coverageListDTO);

+ 7 - 1
src/main/java/com/ydtech/modules/order/service/impl/DaJiaOrderServiceImpl.java

@@ -165,6 +165,12 @@ public class DaJiaOrderServiceImpl implements DaJiaOrderService {
             if(!odr1008Response.getStatus().equals(Message.M0000.getCode())){
                 throw new Exception("车辆与客户信息确认接口失败");
             }
+
+            String fuelType = odr1008Response.getResult().getVehicleInfo().getVehicleFuelType();
+            boolean isEnergy = false;
+            if("1,2,3,".contains(fuelType+",")) {//纯电动 燃料电池 插电式混合动力 归属为新能源产品
+                isEnergy = true;
+            }
             //查询车辆商业起保日期
             InsOrders insOrders = insOrdersService.getById(quoteInfoVo.getOrderNo());
             String bxStartDate = Objects.isNull(insOrders.getSystartdate()) ?
@@ -179,7 +185,7 @@ public class DaJiaOrderServiceImpl implements DaJiaOrderService {
             //5.保费计算接口
             List<KindInfoVo> kindList = quoteInfoVo.getKindList();
             List<RiskInfoVo> riskList = quoteInfoVo.getRiskList();
-            ODR1009Request odr1009Request = new ODR1009Request(orderNo, kindList, riskList,quoteInfoVo,odr1016Response);
+            ODR1009Request odr1009Request = new ODR1009Request(orderNo, kindList, riskList,quoteInfoVo,odr1016Response,isEnergy);
             ODR1009Response odr1009Response = daJiaRequestApiComponents.newPremiumXnyCalculation(odr1009Request);
             if(odr1009Response.getStatus().equals(Message.M0000.getCode())){
                 //保费计算接口返回