dongxin 1 год назад
Родитель
Сommit
d1d128a4f9

+ 4 - 2
tenant/insurance/quotation-chengtai/src/main/java/com/jzg/quotation/chengtai/api/build/ChengTaiAPIQuoteResultsVoBuild.java

@@ -35,8 +35,10 @@ public final class ChengTaiAPIQuoteResultsVoBuild {
         // 商业险
         quoteResultsVo.setBiRiskInfoVo(new RiskInfoVo());
         // 商业险险种信息
-        List<KindInfoVo> kindInfoVo = buildKindInfoVo(quoteVo.getKindInfoVo(), insurePremiumResponse.getBiContract().getCoverage());
-        quoteResultsVo.setKindInfoVo(kindInfoVo);
+        if(Objects.nonNull(insurePremiumResponse.getBiContract())){
+            List<KindInfoVo> kindInfoVo = buildKindInfoVo(quoteVo.getKindInfoVo(), insurePremiumResponse.getBiContract().getCoverage());
+            quoteResultsVo.setKindInfoVo(kindInfoVo);
+        }
         quoteResultsVo.setQuoteStatus(InsOrderStatusEnum.WAIT_AUDIT);
         // 费用因子
 //        List<ExpenseFactor> expenseFactors = buildExpenseFactor(calculatePremiumResponse.getPriceInfoList());

+ 4 - 1
tenant/insurance/quotation-chengtai/src/main/java/com/jzg/quotation/chengtai/api/component/ChengTaiRequestApiComponent.java

@@ -52,6 +52,7 @@ public class ChengTaiRequestApiComponent {
         try{
             PrivateKey privateKey = RSAUtil.getPrivateKeyFromPKCS8("RSA", chengTaiApiProperties.getPrivateKey());
             PublicKey ctPublicKey = RSAUtil.getPublicKeyFromX509("RSA", chengTaiApiProperties.getCtPublicKey());
+            System.out.println(busReqString);
             //base64加密
             String baseStr = Base64.getEncoder().encodeToString(busReqString.getBytes(Charset.forName("UTF-8")));
             //rsa加密
@@ -63,10 +64,12 @@ public class ChengTaiRequestApiComponent {
 
             String body = JSON.toJSONString(bResponseEntity.getBody());//需要联调观察数据格式
             B res = JSON.parseObject(body).toJavaObject(responseType);
-            if (!ResponseCode.R_000.getCode().equals(res.getCode())){throw new SystemException(res.message);}
+            System.out.println(JSON.toJSON(res));
+//            if (!ResponseCode.R_000.getCode().equals(res.getCode())){throw new SystemException(res.message);}
             // 解密响应
             String newSource = RSAUtil.decryptString(privateKey, res.encryptionMessage);
             String info = new String(Base64.getDecoder().decode(newSource), Charset.forName("UTF-8"));
+            System.out.println(info);
             boolean flag = RSAUtil.signatureVerfiy(newSource, res.signature, ctPublicKey);
             if(!flag){throw new SystemException(res.message);}
             res.setDecodeData(info);

+ 13 - 1
tenant/insurance/quotation-chengtai/src/main/java/com/jzg/quotation/chengtai/api/entity/request/InsurePremiumRequest.java

@@ -688,6 +688,9 @@ public class InsurePremiumRequest extends BaseRequest {
             @JsonProperty("monthDepRate")
             private BigDecimal monthDepRate;
 
+            @JsonProperty("newCarSign")
+            private String newCarSign;
+
             /**
              * 车牌号/移动证号牌
              */
@@ -736,6 +739,9 @@ public class InsurePremiumRequest extends BaseRequest {
             @JsonProperty("enrollDate")
             private String enrollDate;
 
+            @JsonProperty("verifyCode")
+            private String verifyCode;
+
             /**
              * VIN-车架号
              */
@@ -748,6 +754,8 @@ public class InsurePremiumRequest extends BaseRequest {
             @JsonProperty("useNatureCode")
             private String useNatureCode;
 
+
+
             /**
              * 车辆损失险车型
              */
@@ -792,7 +800,7 @@ public class InsurePremiumRequest extends BaseRequest {
                 this.modelCode = carModelListDTO.getModelCode();
                 this.registerDate = carInfo.getRegisterDate();
                 this.enrollDate = carInfo.getRegisterDate();  // 后期需要改
-                this.useNatureCode = carInfo.getCarNatureCode();
+                this.useNatureCode = carInfo.getVehicleUseCode();
                 this.carKindCode = carInfo.getCarKindCode();
                 this.vehicleType = carInfo.getCarTypeCode();
                 this.ecdemicVehicleFlag = "0"; // 外地车标志
@@ -1148,9 +1156,13 @@ public class InsurePremiumRequest extends BaseRequest {
             @JsonProperty("lastYearPolicyNo")
             private String lastYearPolicyNo;
 
+            @JsonProperty("currency")
+            private String currency;
+
             public ContractMainDTO(RiskInfoVo quoteInfoVo){
                 this.riskCode = RiskCodeEnum.R1002.getCode();
                 this.riskName = RiskCodeEnum.R1002.getDesc();
+                this.currency = "CNY";
                 this.validAtOnce = !quoteInfoVo.isInstantFlag()?"0" : "1"; // 及时起保
                 this.validDate =quoteInfoVo.getStartDate();
                 this.expiryDate =quoteInfoVo.getEndDate();

+ 1 - 1
tenant/insurance/quotation-chengtai/src/main/java/com/jzg/quotation/chengtai/api/entity/request/QueryCarActualValueRequest.java

@@ -109,7 +109,7 @@ public class QueryCarActualValueRequest extends BaseRequest{
             this.plateType = PlateType.P02.getCode();
         }
         this.approvedPassengersCapacity = seatCount;
-        this.useNatureCode = carInfo.getCarNatureCode();
+        this.useNatureCode = carInfo.getVehicleUseCode();
         this.energyTypes = carInfo.getEnergyTypeCode();
     }
 }

+ 13 - 10
tenant/insurance/quotation-chengtai/src/main/java/com/jzg/quotation/chengtai/api/service/impl/ChengTaiApiRequestImpl.java

@@ -101,17 +101,20 @@ public class ChengTaiApiRequestImpl implements ChengTaiApiRequest {
     private void codeRecognitionErrHandler(InsurePremiumRequest insurePremiumRequest,
                                            InsurePremiumResponse insurePremiumResponse,
                                            HttpHeaders httpHeaders) {
-        InsurePremiumRequest.CiContractDTO ciContractReq = insurePremiumRequest.getCiContract();
-        InsurePremiumRequest.BiContractDTO biContractReq = insurePremiumRequest.getBiContract();
-        if(Objects.nonNull(ciContractReq)){
-            InsurePremiumRequest.CiContractDTO.PlatFormMessageDTO platFormMessageDTO = ciContractReq.getPlatFormMessage();
-            platFormMessageDTO.setAnswer(replacingStrings(platFormMessageDTO.getAnswer()));
-        }
-        if(Objects.nonNull(biContractReq)){
-            InsurePremiumRequest.BiContractDTO.PlatFormMessageDTO platFormMessageDTO = biContractReq.getPlatFormMessage();
-            platFormMessageDTO.setAnswer(replacingStrings(platFormMessageDTO.getAnswer()));
+
+        if(!ResponseCode.R_000.getCode().equals(insurePremiumResponse.getCode()) && insurePremiumResponse.getMessage().contains("录入的校验码有误")){
+            InsurePremiumRequest.CiContractDTO ciContractReq = insurePremiumRequest.getCiContract();
+            InsurePremiumRequest.BiContractDTO biContractReq = insurePremiumRequest.getBiContract();
+            if(Objects.nonNull(ciContractReq)){
+                InsurePremiumRequest.CiContractDTO.PlatFormMessageDTO platFormMessageDTO = ciContractReq.getPlatFormMessage();
+                platFormMessageDTO.setAnswer(replacingStrings(platFormMessageDTO.getAnswer()));
+            }
+            if(Objects.nonNull(biContractReq)){
+                InsurePremiumRequest.BiContractDTO.PlatFormMessageDTO platFormMessageDTO = biContractReq.getPlatFormMessage();
+                platFormMessageDTO.setAnswer(replacingStrings(platFormMessageDTO.getAnswer()));
+            }
+            insurePremiumResponse = chengTaiRequestApiComponent.calculatePremium(insurePremiumRequest,httpHeaders,chengTaiApiProperties.getPartnerCode());
         }
-        insurePremiumResponse = chengTaiRequestApiComponent.calculatePremium(insurePremiumRequest,httpHeaders,chengTaiApiProperties.getPartnerCode());
     }
 
     public static String replacingStrings(String code) {