Răsfoiți Sursa

大家保险修改

785834757 2 ani în urmă
părinte
comite
cac927a45c

+ 2 - 0
src/main/java/com/ydtech/modules/order/components/dajia/DaJiaRequestApiComponents.java

@@ -1,5 +1,6 @@
 package com.ydtech.modules.order.components.dajia;
 
+import cn.dev33.satoken.annotation.SaCheckPermission;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import com.fasterxml.jackson.core.JsonProcessingException;
@@ -41,6 +42,7 @@ public class DaJiaRequestApiComponents {
     @Value("${dajia.api.encryptKey}")
     private String encryptKey;
 
+
     public DaJiaRequestApiComponents(RestTemplate restTemplate, DaJiaApiConfigurationProperties apiComponents) {
         this.restTemplate = restTemplate;
         this.apiComponents = apiComponents;

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

@@ -43,10 +43,10 @@ public enum CCvrgNo {
     NO035805("035805","","附加外部电网故障损失险"),
     NO035806("035806","","附加自用充电桩损失保险"),
     NO035807("035807","","附加自用充电桩责任保险"),
-    NO035810("035810","","道路救援服务特约条款(新能源汽车)"),
-    NO035811("035811","","车辆安全检测特约条款(新能源汽车)"),
-    NO035812("035812","","代为驾驶服务特约条款(新能源汽车)"),
-    NO035813("035813","","代为送检服务特约条款(新能源汽车)"),
+    NO035810("035810","TY1","道路救援服务特约条款(新能源汽车)"),
+    NO035811("035811","TY2","车辆安全检测特约条款(新能源汽车)"),
+    NO035812("035812","TY3","代为驾驶服务特约条款(新能源汽车)"),
+    NO035813("035813","TY4","代为送检服务特约条款(新能源汽车)"),
     ;
     private final String code;
     private final String insurCode;

+ 2 - 0
src/main/java/com/ydtech/modules/order/entity/api/dajia/constants/CProdNo.java

@@ -11,9 +11,11 @@ import lombok.Getter;
 public enum CProdNo {
     JQ("0320","交强险"),
     SY("0356","商业险"),
+    SY_XNY("0358","新能源商业险"),
     MTJQ("0316","摩托车交强险"),
     MTSY("0355","摩托车商业险");
 
+
     private final String code;
 
     private final String desc;

+ 47 - 6
src/main/java/com/ydtech/modules/order/entity/api/dajia/request/ODR1008Request.java

@@ -17,6 +17,7 @@ import java.io.Serializable;
 import java.util.List;
 import java.util.Objects;
 
+import static com.ydtech.modules.order.entity.api.dajia.constants.CFuelType.*;
 import static com.ydtech.modules.order.entity.api.dajia.constants.CInspectRec.INSREC1;
 
 
@@ -283,7 +284,7 @@ public class ODR1008Request extends DaJiaBaseRequest {
             @JsonProperty("vehicleChgOwnerFlag")
             private Integer vehicleChgOwnerFlag;
             @JsonProperty("vehicleEcdemicMrk")
-            private Integer vehicleEcdemicMrk;
+            private String vehicleEcdemicMrk;
             @JsonProperty("vehicleEngNo")
             private String vehicleEngNo;
             @JsonProperty("vehicleFrmNo")
@@ -301,7 +302,7 @@ public class ODR1008Request extends DaJiaBaseRequest {
             @JsonProperty("vehicleModelCde")
             private String vehicleModelCde;
             @JsonProperty("vehicleModelEnergyType")
-            private Integer vehicleModelEnergyType;
+            private String vehicleModelEnergyType;
             @JsonProperty("vehicleModelNme")
             private String vehicleModelNme;
             @JsonProperty("vehicleNConsultPurchaseValue")
@@ -460,6 +461,11 @@ public class ODR1008Request extends DaJiaBaseRequest {
         vehicleOwnerInfoDTO.setVehicleOwnerCCertfCde(quoteInfoVo.getOwnerInfo().getIdentifyNumber());
         //设置证件类型
         vehicleOwnerInfoDTO.setVehicleOwnerCCertfCls("01");
+
+        //新能源测试使用
+        vehicleOwnerInfoDTO.setVehicleOwnerCCertfCde("E88888888");
+        vehicleOwnerInfoDTO.setVehicleOwnerCCertfCls("02");
+
         //通讯地址
         vehicleOwnerInfoDTO.setVehicleOwnerCClntAddr(quoteInfoVo.getOwnerInfo().getAddr());
         //手机号
@@ -494,7 +500,12 @@ public class ODR1008Request extends DaJiaBaseRequest {
         vehicleOwnerInfoDTO.setVehicleOwnerProvince(OwnerPersonArea.getProvinceCode());
         vehicleOwnerInfoDTO.setVehicleOwnerCity(OwnerPersonArea.getCityCode());
         vehicleOwnerInfoDTO.setVehicleOwnerCounty(OwnerPersonArea.getCountyCode());
-        vehicleOwnerInfoDTO.setVehicleOwnerSuffixAddr(quoteInfoVo.getOwnerInfo().getAddr());
+        int index = quoteInfoVo.getOwnerInfo().getAddr().indexOf(OwnerPersonArea.getCountyName());
+        if(index > -1){
+            vehicleOwnerInfoDTO.setVehicleOwnerSuffixAddr(quoteInfoVo.getOwnerInfo().getAddr().substring(index + OwnerPersonArea.getCountyName().length()));
+        }else{
+            vehicleOwnerInfoDTO.setVehicleOwnerSuffixAddr(quoteInfoVo.getOwnerInfo().getAddr());
+        }
         this.body.setVehicleOwnerInfo(vehicleOwnerInfoDTO);
     }
 
@@ -505,6 +516,9 @@ public class ODR1008Request extends DaJiaBaseRequest {
         applicantInfoDTO.setApplicantCCertfCde(quoteInfoVo.getPolicyHolderInfo().getIdentifyNumber());
         //设置证件类型
         applicantInfoDTO.setApplicantCCertfCls("01");
+        //新能源测试使用
+        applicantInfoDTO.setApplicantCCertfCde("E88888888");
+        applicantInfoDTO.setApplicantCCertfCls("02");
         //客户类型
         applicantInfoDTO.setApplicantClntMrk(1);
         //通讯地址
@@ -533,7 +547,12 @@ public class ODR1008Request extends DaJiaBaseRequest {
         applicantInfoDTO.setApplicantProvince(policyHolderPersonArea.getProvinceCode());
         applicantInfoDTO.setApplicantCity(policyHolderPersonArea.getCityCode());
         applicantInfoDTO.setApplicantCounty(policyHolderPersonArea.getCountyCode());
-        applicantInfoDTO.setApplicantSuffixAddr(quoteInfoVo.getPolicyHolderInfo().getAddr());
+        int index = quoteInfoVo.getOwnerInfo().getAddr().indexOf(policyHolderPersonArea.getCountyName());
+        if(index > -1){
+            applicantInfoDTO.setApplicantSuffixAddr(quoteInfoVo.getOwnerInfo().getAddr().substring(index + policyHolderPersonArea.getCountyName().length()));
+        }else{
+            applicantInfoDTO.setApplicantSuffixAddr(quoteInfoVo.getOwnerInfo().getAddr());
+        }
 //        applicantInfoDTO.setApplicantZipCde("030024");
         this.body.setApplicantInfo(applicantInfoDTO);
     }
@@ -545,6 +564,9 @@ public class ODR1008Request extends DaJiaBaseRequest {
         insuredInfoDTO.setInsuredCertfCde(quoteInfoVo.getInsuredPersonInfo().getIdentifyNumber());
         //设置证件类型
         insuredInfoDTO.setInsuredCertfCls("01");
+        //新能源测试使用
+        insuredInfoDTO.setInsuredCertfCde("E88888888");
+        insuredInfoDTO.setInsuredCertfCls("02");
         //客户类型
         insuredInfoDTO.setInsuredClntMrk(1);
         //通讯地址
@@ -572,6 +594,13 @@ public class ODR1008Request extends DaJiaBaseRequest {
         insuredInfoDTO.setInsuredCity(insuredPersonArea.getCityCode());
         insuredInfoDTO.setInsuredCounty(insuredPersonArea.getCountyCode());
         insuredInfoDTO.setInsuredSuffixAddr(quoteInfoVo.getInsuredPersonInfo().getAddr());
+
+        int index = quoteInfoVo.getOwnerInfo().getAddr().indexOf(insuredPersonArea.getCountyName());
+        if(index > -1){
+            insuredInfoDTO.setInsuredSuffixAddr(quoteInfoVo.getOwnerInfo().getAddr().substring(index + insuredPersonArea.getCountyName().length()));
+        }else{
+            insuredInfoDTO.setInsuredSuffixAddr(quoteInfoVo.getOwnerInfo().getAddr());
+        }
         //邮编
 //        insuredInfoDTO.setInsuredZipCde("030024");
         this.body.setInsuredInfo(insuredInfoDTO);
@@ -596,7 +625,16 @@ public class ODR1008Request extends DaJiaBaseRequest {
         //初登日期
         vehicleInfoDTO.setVehicleFstRegYmBar(quoteInfoVo.getCarInfo().getRegisterDate());
         //能源类型
-        vehicleInfoDTO.setVehicleFuelType(quoteInfoVo.getCarInfo().getEnergyType());
+        String EnergyType = "0";
+        if(FUEL1.getCode().equals(quoteInfoVo.getCarInfo().getEnergyType())){
+            EnergyType="1";  //纯电动
+            vehicleInfoDTO.setVehicleModelEnergyType(EnergyType);
+        }else if(FUEL2.getCode().equals(quoteInfoVo.getCarInfo().getEnergyType())){
+            EnergyType="2";  //燃料电池
+        }else if(FUEL3.getCode().equals(quoteInfoVo.getCarInfo().getEnergyType())){
+            EnergyType="3";  //插电式混合动力
+        }
+        vehicleInfoDTO.setVehicleFuelType(EnergyType);
         //行驶证车辆类型
         vehicleInfoDTO.setVehicleRegVhlTyp(quoteInfoVo.getCarInfo().getCartype());
         //交强险特殊车标志
@@ -650,6 +688,8 @@ public class ODR1008Request extends DaJiaBaseRequest {
             vehicleInfoDTO.setVehiclePlateNo(quoteInfoVo.getCarInfo().getLicenseNo());
             //车牌种类
             vehicleInfoDTO.setVehiclePlateTyp("02");
+            //是否为外地车
+            vehicleInfoDTO.setVehicleEcdemicMrk(quoteInfoVo.getCarInfo().getLicenseNo().contains("晋") ?"0":"1");
         }else{
             //新车
             vehicleInfoDTO.setVehicleNewPlate(1);
@@ -691,7 +731,8 @@ public class ODR1008Request extends DaJiaBaseRequest {
         //整备质量
         vehicleInfoDTO.setVehicleNCurbWt(0);
         vehicleInfoDTO.setVehicleNTonage(0.0);
-
+        //交强险特殊车标志   无特殊投保情况
+        vehicleInfoDTO.setVehicleTfiSpecialMrk(0);
         //验车情况
         vehicleInfoDTO.setVehicleInspectionCde(CInspectionCde.INS3.getCode().toString());
         //免验原因

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

@@ -25,10 +25,8 @@ import lombok.EqualsAndHashCode;
 import lombok.NoArgsConstructor;
 
 import java.io.Serializable;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-import java.util.Objects;
+import java.util.*;
+import java.util.stream.Stream;
 
 import static com.ydtech.modules.order.entity.api.dajia.constants.CInspectRec.INSREC1;
 import static com.ydtech.modules.order.entity.api.dajia.constants.CPayTaxType.T5002;
@@ -91,6 +89,7 @@ public class ODR1009Request extends DaJiaBaseRequest {
     public void setBasePartReq(List<RiskInfoVo> riskInfoVos, BaseQuoteInfoVo quoteInfoVo, ODR1016Response odr1016Response){
         BodyDTO.basePartReqDTO basePartReqDTO = new BodyDTO.basePartReqDTO();
         riskInfoVos.forEach(risk->{
+
             if(InsuranceRisk.TRAFFIC.getCode().equals(risk.getRiskCode())) {
                 //交强险保险起期
                 basePartReqDTO.setJqEffectiveDate(risk.getStartDate());
@@ -100,6 +99,7 @@ public class ODR1009Request extends DaJiaBaseRequest {
                 basePartReqDTO.setJqImmeffMrk("0");
                 //交强险产品编码
                 basePartReqDTO.setJqProdNo(CProdNo.JQ.getCode());
+
             }
             if(InsuranceRisk.BUSINESS.getCode().equals(risk.getRiskCode())){
                 //商业险保险起期
@@ -108,8 +108,13 @@ public class ODR1009Request extends DaJiaBaseRequest {
                 basePartReqDTO.setSyExpireDate(risk.getEndDate());
                 //商业险及时生效
                 basePartReqDTO.setSyImmeffMrk("0");
-                //商业险产品编码
-                basePartReqDTO.setSyProdNo(CProdNo.SY.getCode());
+                if(CFuelType.FUEL0.getCode().equals(quoteInfoVo.getCarInfo().getEnergyType())) {
+                    //商业险产品编码
+                    basePartReqDTO.setSyProdNo(CProdNo.SY.getCode());
+                }else{
+                    //商业险产品编码
+                    basePartReqDTO.setSyProdNo(CProdNo.SY_XNY.getCode());
+                }
                 //商业折扣是否下浮标志
                 basePartReqDTO.setFixedDropDiscount("0");
             }
@@ -123,7 +128,8 @@ public class ODR1009Request extends DaJiaBaseRequest {
         //协商实际价值
         basePartReqDTO.setConsultPurchaseValue(odr1016Response.getResult().getActualValue());
         //大家测试使用
-        basePartReqDTO.setRemark("【分公司特批:测试服务使用】");
+        basePartReqDTO.setRemark("【超权限特批:】【分公司特批:】");
+
         this.body.setBasePartReq(basePartReqDTO);
     }
 

+ 6 - 2
src/main/java/com/ydtech/modules/order/entity/api/dajia/request/ODR1010Request.java

@@ -239,13 +239,17 @@ public class ODR1010Request extends DaJiaBaseRequest {
         //投保人名称
         body.checkInfo.setApplicantNme(insOrders.getApplyinfo().getString("name"));
         //投保人证件号码
-        body.checkInfo.setApplicantCCertfCde(insOrders.getApplyinfo().getString("identifyNumber"));
+//        body.checkInfo.setApplicantCCertfCde(insOrders.getApplyinfo().getString("identifyNumber"));
+        //新能源测试
+        body.checkInfo.setApplicantCCertfCde("E88888888");
         //投保人手机号
         body.checkInfo.setApplicantMobile(insOrders.getApplyinfo().getString("mobile"));
         //被保人名称
         body.checkInfo.setInsuredNme(insOrders.getInsureinfo().getString("name"));
         //被保人证件号码
-        body.checkInfo.setInsuredCertfCde(insOrders.getInsureinfo().getString("identifyNumber"));
+//        body.checkInfo.setInsuredCertfCde(insOrders.getInsureinfo().getString("identifyNumber"));
+        //新能源测试
+        body.checkInfo.setInsuredCertfCde("E88888888");
         //被保人手机号
         body.checkInfo.setInsuredMobile(insOrders.getInsureinfo().getString("mobile"));
 

+ 4 - 1
src/main/java/com/ydtech/modules/order/entity/api/dajia/request/ODR2009Request.java

@@ -11,6 +11,7 @@ import lombok.EqualsAndHashCode;
 import lombok.NoArgsConstructor;
 
 import java.io.Serializable;
+import java.util.ArrayList;
 import java.util.List;
 import java.util.Objects;
 
@@ -64,7 +65,7 @@ public class ODR2009Request extends DaJiaBaseRequest{
         }
         //订单号
         this.body.orderNo = orderNo;
-        //车型名称
+        //vin码
         this.body.vin = quoteInfoVo.getCarInfo().getVinNo();
         //发动机号码
         this.body.engineNo = quoteInfoVo.getCarInfo().getEngineNo();
@@ -72,5 +73,7 @@ public class ODR2009Request extends DaJiaBaseRequest{
         this.body.licensePlateNo = quoteInfoVo.getCarInfo().getLicenseNo();
         //出单口
         this.body.cdptCde = daJiaConfigureParameters.getIssuingInstitution();
+        //车型名称
+        this.body.vehicleName = quoteInfoVo.getCarInfo().getModelcname();
     }
 }

+ 5 - 2
src/main/java/com/ydtech/modules/order/service/impl/DaJiaOrderServiceImpl.java

@@ -521,9 +521,9 @@ public class DaJiaOrderServiceImpl implements DaJiaOrderService {
                     return HttpResult.ok("核保成功");
                 }
             } else {
-                if (odr1010Response.getResult().getJqAppStatus().equals("0") && odr1010Response.getStatus().equals("0003")) {
+                if ("0".equals(odr1010Response.getResult().getJqAppStatus()) && "0003".equals(odr1010Response.getStatus())) {
                     return HttpResult.error("核保失败,原因:" + odr1010Response.getResult().getJqAppStatusMessage());
-                } else if (odr1010Response.getResult().getSyAppStatus().equals("0") && odr1010Response.getStatus().equals("0003")) {
+                } else if ("0".equals(odr1010Response.getResult().getSyAppStatus()) && "0003".equals(odr1010Response.getStatus())) {
                     return HttpResult.error("核保失败,原因:" + odr1010Response.getResult().getSyAppStatusMessage());
                 }
             }
@@ -653,6 +653,9 @@ public class DaJiaOrderServiceImpl implements DaJiaOrderService {
                             insAreaCompany.setJqpolicyno(collect.get(i).getPlyNo());
                         } else if (collect.get(i).getProdNo().equals(CProdNo.SY.getCode())) {
                             insAreaCompany.setSypolicyno(collect.get(i).getPlyNo());
+                        } else if(collect.get(i).getProdNo().equals(CProdNo.SY_XNY.getCode())){
+                            //新能源保单号
+                            insAreaCompany.setSypolicyno(collect.get(i).getPlyNo());
                         }
                     }
                     insAreaCompanyService.updateCompanyAndOrders(insAreaCompany);