Sfoglia il codice sorgente

渤海报价修改

Qchen 1 anno fa
parent
commit
52111b687c

+ 19 - 8
tenant/insurance/quotation-bohai/src/main/java/com/jzg/quotation/bohai/api/build/BoHaiApiQuoteResultsVoBuild.java

@@ -1,5 +1,6 @@
 package com.jzg.quotation.bohai.api.build;
 
+import com.jzg.commons.constants.dict.InsOrderStatusEnum;
 import com.jzg.quotation.commons.entity.vo.aggregated.QuoteResultsVo;
 import com.jzg.quotation.commons.entity.vo.aggregated.QuoteVo;
 import com.jzg.commons.entity.quote.vo.KindInfoVo;
@@ -8,6 +9,7 @@ import com.jzg.quotation.bohai.api.entity.response.QuotationResponse;
 
 import java.util.List;
 import java.util.Map;
+import java.util.Objects;
 import java.util.stream.Collectors;
 
 /**
@@ -20,15 +22,20 @@ public class BoHaiApiQuoteResultsVoBuild {
         QuoteResultsVo quoteResultsVo = new QuoteResultsVo();
         quoteResultsVo.setOrdersNo(orderNo);
         // 交强险
-        quoteResultsVo.setCiRiskInfoVo(buildCiRiskInfoVo(quotationResponse));
-        // 商业险
-        quoteResultsVo.setBiRiskInfoVo(buildBiRiskInfoVo(quotationResponse));
-        // 商业险险种信息
-        List<KindInfoVo> kindInfoVo = buildKindInfoVo(quoteVo.getKindInfoVo(), quotationResponse.getData().getBusinessPolicy().getCoverages());
-        quoteResultsVo.setKindInfoVo(kindInfoVo);
+        if (Objects.nonNull(quotationResponse.getData().getTrafficPolicy())) {
+            quoteResultsVo.setCiRiskInfoVo(buildCiRiskInfoVo(quotationResponse));
+        }
 
+        // 商业险
+        if (Objects.nonNull(quotationResponse.getData().getBusinessPolicy())) {
+            quoteResultsVo.setBiRiskInfoVo(buildBiRiskInfoVo(quotationResponse));
+            // 商业险险种信息
+            List<KindInfoVo> kindInfoVo = buildKindInfoVo(quoteVo.getKindInfoVo(), quotationResponse.getData().getBusinessPolicy().getCoverages());
+            quoteResultsVo.setKindInfoVo(kindInfoVo);
+        }
         // 交强保费 车船税 商业保费
         buildPremium(quoteResultsVo, quotationResponse);
+        quoteResultsVo.setQuoteStatus(InsOrderStatusEnum.WAIT_AUDIT);
         return quoteResultsVo;
     }
 
@@ -86,9 +93,13 @@ public class BoHaiApiQuoteResultsVoBuild {
      */
     private static void buildPremium(QuoteResultsVo quoteResultsVo, QuotationResponse quotationResponse) {
         // 设置商业险保费
-        quoteResultsVo.setBiPremium(String.valueOf(quotationResponse.getData().getBusinessPolicy().getPremium()));
+        if (Objects.nonNull(quotationResponse.getData().getBusinessPolicy())){
+            quoteResultsVo.setBiPremium(String.valueOf(quotationResponse.getData().getBusinessPolicy().getPremium()));
+        }
         // 设置交强险保费
-        quoteResultsVo.setCiPremium(String.valueOf(quotationResponse.getData().getTrafficPolicy().getPremium()));
+        if (Objects.nonNull(quotationResponse.getData().getTrafficPolicy())) {
+            quoteResultsVo.setCiPremium(String.valueOf(quotationResponse.getData().getTrafficPolicy().getPremium()));
+        }
         // 设置车船税
         quoteResultsVo.setVvTax(String.valueOf(quotationResponse.getData().getTrafficPolicy().getVehicleTax().getTotalAmount()));
         // 设置非车险(驾意险)保费

+ 14 - 7
tenant/insurance/quotation-bohai/src/main/java/com/jzg/quotation/bohai/api/component/BoHaiRequestApiComponent.java

@@ -7,17 +7,21 @@ import com.jzg.quotation.bohai.api.entity.request.*;
 import com.jzg.quotation.bohai.api.entity.response.*;
 import com.jzg.quotation.commons.component.RequestComponent;
 import com.jzg.commons.entity.quote.vo.CarInfoVo;
+import com.jzg.quotation.commons.constant.enums.base.InsuranceEnum;
 import com.jzg.quotation.commons.filter.CarModelsFilterUtils;
 import com.jzg.quotation.bohai.api.constant.enums.RequestType;
 import com.jzg.quotation.bohai.api.constant.enums.ResponseCode;
 import com.jzg.quotation.bohai.api.properties.BohaiApiConfigurationProperties;
 import com.jzg.quotation.bohai.api.util.BoHaiEncrypted;
 import com.jzg.quotation.bohai.api.util.SignatureUtils;
+import com.jzg.quotation.commons.utils.InsuranceLog;
 import lombok.RequiredArgsConstructor;
+import org.springframework.http.HttpEntity;
 import org.springframework.http.HttpHeaders;
 import org.springframework.http.MediaType;
 import org.springframework.http.ResponseEntity;
 import org.springframework.stereotype.Component;
+import org.springframework.web.client.RestTemplate;
 
 import java.util.List;
 import java.util.Map;
@@ -35,14 +39,16 @@ public class BoHaiRequestApiComponent {
 
     private final RequestComponent requestComponent;
 
+    private final RestTemplate restTemplate;
+
     public <T extends BoHaiBaseRequest, B extends BoHaiBaseResponse> B requestUrl(String url, T requestBody, Class<B> responseType, String sysSourceCode, RequestType requestType) throws Exception {
         requestBody.setBaseParamRequestType(requestType.getCode());
         HttpHeaders httpHeaders = new HttpHeaders();
         httpHeaders.setContentType(MediaType.APPLICATION_JSON);
 
         String busReqString = JSON.toJSONString(requestBody, SerializerFeature.WriteMapNullValue, SerializerFeature.WriteNullStringAsEmpty);
-//        InsuranceLog.infoLog(InsuranceEnum.BPIC.getPinyin(), "\n\t---------> {} \n\t---------> URl: {} \n\t---------> 请求参数:{}",
-//                requestType.getDesc(), url, busReqString);
+        InsuranceLog.infoLog(InsuranceEnum.BPIC.getPinyin(), "\n\t---------> {} \n\t---------> URl: {} \n\t---------> 请求参数:{}",
+                requestType.getDesc(), url, busReqString);
         BoHaiEncrypted boHaiEncrypted = new BoHaiEncrypted(busReqString, properties, sysSourceCode);
 
         String json = JSON.toJSONString(boHaiEncrypted, SerializerFeature.WriteMapNullValue, SerializerFeature.WriteNullStringAsEmpty);
@@ -54,14 +60,15 @@ public class BoHaiRequestApiComponent {
         httpHeaders.set("signature", signature);
 //        InsuranceLog.infoLog(InsuranceEnum.BPIC.getPinyin(), "\n\t---------> {} \n\t---------> 加密后的参数:{} \n\t---------> " +
 //                "请求头内容signature:{}", requestType.getDesc(), content, signature);
-
-        ResponseEntity<B> bResponseEntity = requestComponent.objectPost(url, content, responseType, httpHeaders);
-        String body = JSON.toJSONString(bResponseEntity.getBody());//需要联调观察数据格式
+        HttpEntity<String> httpEntity = new HttpEntity<>(content, httpHeaders);
+        ResponseEntity<String> response = restTemplate.postForEntity(url, httpEntity, String.class);
+        String body = response.getBody();
+//        ResponseEntity<B> bResponseEntity = requestComponent.objectPost(url, content, responseType, httpHeaders);
+//        String body = JSON.toJSONString(bResponseEntity.getBody());//需要联调观察数据格式
 //        InsuranceLog.infoLog(InsuranceEnum.BPIC.getPinyin(), "\n\t---------> {} \n\t---------> 解密前的参数:{}", requestType.getDesc(), body);
-
         BoHaiEncrypted encrypted = JSON.parseObject(body).toJavaObject(BoHaiEncrypted.class);
         String info = SignatureUtils.decryptByPrivateKey(encrypted.getBizContent(), properties.getSelfPrivateKey());
-//        InsuranceLog.infoLog(InsuranceEnum.BPIC.getPinyin(), "\n\t---------> {} \n\t---------> 解密后的参数:{}", requestType.getDesc(), info);
+        InsuranceLog.infoLog(InsuranceEnum.BPIC.getPinyin(), "\n\t---------> {} \n\t---------> 解密后的参数:{}", requestType.getDesc(), info);
         return JSON.parseObject(info).toJavaObject(responseType);
     }
 

+ 11 - 6
tenant/insurance/quotation-bohai/src/main/java/com/jzg/quotation/bohai/api/entity/request/QuotationRequest.java

@@ -2,6 +2,7 @@ package com.jzg.quotation.bohai.api.entity.request;
 
 import cn.hutool.core.util.ArrayUtil;
 import com.fasterxml.jackson.annotation.JsonProperty;
+import com.jzg.commons.entity.quote.vo.AccidentalDrivingVo;
 import com.jzg.quotation.bohai.api.entity.vo.BoHaiQuoteAccidentVo;
 import com.jzg.quotation.commons.constant.InsuranceTypeCorrespondence;
 import com.jzg.quotation.commons.constant.enums.quote.KindCode;
@@ -71,13 +72,17 @@ public class QuotationRequest extends BoHaiBaseRequest {
                             QuoteVo quoteVo,
                             String currentValue,
                             String orderNO,
-                            List<BoHaiQuoteAccidentVo> accidentVo,
+                            List<AccidentalDrivingVo> accidentVo,
                             String discount) {
         this.setBaseParam(parameters, orderNO);
         this.argueSolution = "1";
         List<KindInfoVo> kindInfoVos = quoteVo.getKindInfoVo();
         this.trafficPolicy = new TrafficPolicyDTO(quoteVo.getCiRiskInfoVo());
-        this.businessPolicy = new BusinessPolicyDTO(quoteVo.getBiRiskInfoVo(), kindInfoVos, currentValue, quoteVo.getCarInfoVo(), discount);
+        if (quoteVo.getBiRiskInfoVo() != null) {
+            this.businessPolicy = new BusinessPolicyDTO(quoteVo.getBiRiskInfoVo(), kindInfoVos, currentValue, quoteVo.getCarInfoVo(), discount);
+        } else {
+            this.businessPolicy = null;
+        }
         if(ArrayUtil.isNotEmpty(accidentVo)){
             this.unAutos = accidentVo.stream().map(UnAutoDTO::new).collect(Collectors.toList());
         }
@@ -98,10 +103,10 @@ public class QuotationRequest extends BoHaiBaseRequest {
         @JsonProperty("copies")
         private String copies;
 
-        public UnAutoDTO(BoHaiQuoteAccidentVo boHaiQuoteAccidentVo) {
-            this.productCode = boHaiQuoteAccidentVo.getProductCode();
-            this.packageCode = boHaiQuoteAccidentVo.getPackageCode();
-            this.copies = boHaiQuoteAccidentVo.getCopies();
+        public UnAutoDTO(AccidentalDrivingVo accidentalDrivingVo) {
+            this.productCode = accidentalDrivingVo.getProductCode();
+            this.packageCode = accidentalDrivingVo.getProductCategoryCode();
+            this.copies = String.valueOf(accidentalDrivingVo.getQuantity());
         }
     }
 

+ 2 - 6
tenant/insurance/quotation-bohai/src/main/java/com/jzg/quotation/bohai/api/service/impl/BoHaiApiRequestImpl.java

@@ -1,5 +1,6 @@
 package com.jzg.quotation.bohai.api.service.impl;
 
+import com.jzg.commons.entity.quote.vo.AccidentalDrivingVo;
 import com.jzg.commons.exception.SystemException;
 import com.jzg.quotation.bohai.api.entity.request.*;
 import com.jzg.quotation.bohai.api.entity.response.*;
@@ -94,7 +95,7 @@ public class BoHaiApiRequestImpl implements BoHaiApiRequest {
         String currentValue = vehicleConfirmationResponse.getData().getVehicleModels().get(0).getCurrentValue();
         // 4. 报价接口
         String discount = "";// 折扣待补充
-        List<BoHaiQuoteAccidentVo> accidentVos = new ArrayList<>();//驾意险待处理
+        List<AccidentalDrivingVo> accidentVos = quoteVo.getAccidentalDrivings();//驾意险待处理
         QuotationRequest quotationRequest = new QuotationRequest(parameters, quoteVo, currentValue, orderNo, accidentVos, discount);
 
         //报价接口调用
@@ -104,11 +105,6 @@ public class BoHaiApiRequestImpl implements BoHaiApiRequest {
         } catch (Exception e) {
             throw new SystemException(e.getMessage());
         }
-        BoHaiApiOrder apiOrder = new BoHaiApiOrder();
-        apiOrder.setOrdersNo(order.getOrdersNo());
-        apiOrder.setBusUniqueId(quotationResponse.getData().getBusUniqueId());
-        apiOrder.setOrderNo(orderNo);
-        boHaiApiOrderService.save(apiOrder);
         return BoHaiApiQuoteResultsVoBuild.buildQuoteResultsVo(order.getOrdersNo(), quoteVo, quotationResponse);
     }
 

+ 14 - 0
tenant/insurance/quotation-commons/src/main/java/com/jzg/quotation/commons/entity/vo/aggregated/QuoteResultsVo.java

@@ -147,6 +147,20 @@ public class QuoteResultsVo implements Serializable {
          * 商业评分
          */
         private String syScore;
+        /**
+         * 总赔付率
+         */
+        private String lossRation;
+
+        /**
+         * 交强险赔付率
+         */
+        private String jqLossRation;
+
+        /**
+         * 商业险赔付率
+         */
+        private String syLossRation;
 
         /**
          * 太平绿黄红区间评分

+ 41 - 0
tenant/insurance/quotation-commons/src/main/java/com/jzg/quotation/commons/utils/InsuranceLog.java

@@ -0,0 +1,41 @@
+package com.jzg.quotation.commons.utils;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.slf4j.MDC;
+
+/**
+ * @description: 保险公司日志
+ * @author: wenks
+ * @date: 2023/9/5 18:25
+ **/
+public class InsuranceLog {
+
+    private final static String INSURE_NAME = "insureId";
+
+    private InsuranceLog() {
+        throw new IllegalStateException("Utility class");
+    }
+
+    public static final Logger logger = LoggerFactory.getLogger(InsuranceLog.class);
+
+    public static void errorLog(String devId, String message, Object... objects) {
+        log(devId, message, logger::error, objects);
+    }
+
+    public static void infoLog(String devId, String message, Object... objects) {
+        log(devId, message, logger::info, objects);
+    }
+
+    private static void log(String devId,  String message,  LogFunction<String> function, Object... objects) {
+        MDC.put(INSURE_NAME, devId);
+        function.execute(message, objects);
+        MDC.clear();
+    }
+
+    @FunctionalInterface
+    interface LogFunction<T> {
+        void execute(T value, Object... objects);
+    }
+
+}

+ 8 - 5
tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/service/impl/InsOrdersServiceImpl.java

@@ -512,9 +512,9 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
                 ordersCosts = new InsOrdersCosts();
                 ordersCosts.setOrderNo(ordersNo);
             }
-            BigDecimal ciPremium = new BigDecimal(quoteResponse.getCiPremium());
-            BigDecimal biPremium = new BigDecimal(quoteResponse.getBiPremium());
-            BigDecimal niPremium = new BigDecimal(quoteResponse.getNiPremium());
+            BigDecimal ciPremium = quoteResponse.getCiPremium() == null ? new BigDecimal("0.00") : new BigDecimal(quoteResponse.getCiPremium());
+            BigDecimal biPremium = quoteResponse.getBiPremium() == null ? new BigDecimal("0.00") : new BigDecimal(quoteResponse.getBiPremium());
+            BigDecimal niPremium = quoteResponse.getNiPremium() == null ? new BigDecimal("0.00") : new BigDecimal(quoteResponse.getNiPremium());
             BigDecimal vvTax = new BigDecimal(quoteResponse.getVvTax());
             ordersCosts.setJqPremium(ciPremium);
             ordersCosts.setSyPremium(biPremium);
@@ -531,14 +531,17 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
                 ordersOther.setScore(quoteResponse.getScoreVo().getScore());
                 ordersOther.setJqScore(quoteResponse.getScoreVo().getJqScore());
                 ordersOther.setSyScore(quoteResponse.getScoreVo().getSyScore());
+                ordersOther.setLossRation(new BigDecimal(quoteResponse.getScoreVo().getLossRation()));
+                ordersOther.setJqLossRation(new BigDecimal(quoteResponse.getScoreVo().getJqLossRation()));
+                ordersOther.setSyLossRation(new BigDecimal(quoteResponse.getScoreVo().getSyLossRation()));
                 ordersOther.setTpColorScore(quoteResponse.getScoreVo().getTpColorScore());
             }
             insOrdersOtherService.saveOrUpdate(ordersOther);
 
             //更新投保单号
             InsOrdersPolicy ordersPolicy = insOrdersPolicyService.getOne(new LambdaQueryWrapper<InsOrdersPolicy>().eq(InsOrdersPolicy::getOrderNo, ordersNo));
-            ordersPolicy.setJqApplyNo(quoteResponse.getCiPolicyNumber());
-            ordersPolicy.setSyApplyNo(quoteResponse.getBiPolicyNumber());
+            ordersPolicy.setJqApplyNo(quoteResponse.getCiPolicyNumber() == null ? "" : quoteResponse.getCiPolicyNumber());
+            ordersPolicy.setSyApplyNo(quoteResponse.getBiPolicyNumber() == null ? "" : quoteResponse.getBiPolicyNumber());
             insOrdersPolicyService.saveOrUpdate(ordersPolicy);
         }
 

+ 9 - 0
tenant/insurance/quotation-summary/src/main/resources/application.yaml

@@ -131,3 +131,12 @@ guoren:
     interfacePwd: $2a$04$r4neihDJh420OyWEji5w5OMbiyHqYEZHJGLZP0FHFEjXmr7nVW7te
     iftest: N
 
+# 渤海财险
+bohai:
+  api:
+    #    url: https://esales.bpic.com.cn
+    url: http://39.98.238.167/bohai/app-intermediary/gatewayFromPlat
+    selfPublicKey: MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCGw4XAPHi+K+/F1yb4pP3MTSOurAWsV+o2bzeVLaI+L4AYeXWhMSZ/L5yEX1OvpZKkBRD6KeIzDFqlP+wZ3qgt4n8MoaeA4//Zj4TSXbyXVPtFAtpeTidd7oWBJWcydvhtcWXrhBRh9wErYZ6+hCwh10JBWmSbTcDm0qY8PyqusQIDAQAB
+    selfPrivateKey: MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAIbDhcA8eL4r78XXJvik/cxNI66sBaxX6jZvN5Utoj4vgBh5daExJn8vnIRfU6+lkqQFEPop4jMMWqU/7BneqC3ifwyhp4Dj/9mPhNJdvJdU+0UC2l5OJ13uhYElZzJ2+G1xZeuEFGH3ASthnr6ELCHXQkFaZJtNwObSpjw/Kq6xAgMBAAECgYB2odAwNgukfVEJvCjWYYf6PT3YGh60ZIANg0JO1GkqjO4anXFrgLT+6Y7DCJfG296G/N7BGfXCMnHpXqgc7eDlmSy2JVfKzvptgKJBLktP7Yfajg3oY9S8parSK+iyHT6qYqQv6wBmQ3Q9smOp/TM2ndBMDXu9MjoTkNJhrfMDsQJBANbWHciQhazb3Y2DY42hW/zBf7rmmJFrw7aOrEjzw5E+SnGs/vcr3LUWBbSRTYHcoJ+V/kudfwRMlz0SLkfMAvMCQQCglcjNRx35Zw6vNKHE4vTN/ny2gukjvtkzXpPeTUfblrXjK3w3x9aWBZ/MUiphVe5NB8CAtlfYZMo4UG+WMEjLAkA4yHsyydArMinK/5FOm/meQt6p3c0xkpQ2KlurJJLqTtaKWTlCx1scmeeEJGuiCViDFbgS8FvkHQJUZ/vHikq1AkAHbUX/MHXTbg/AzKdaqsB1snpkGoPb0lzLQmmGU36qSjsZSY6SKdzjzVjJo1cwbz/5Mg2WJljDuk2b8yRmBs+nAkEAzoEZmM031u/0KBpukSbqef8JgJOZ0Do9KDbf2P6YuBal6drUeNYVhImKBxQAbjETp9m5TxxW/dkKmHCnc3zqsA==
+    boHaiPublicKey: MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCIC3wgJd+7Wue63Qjdh3/uscQSKec2m9gaeCq007kjEiSFES5Tfx75VPSxRj6qk6XN4umHOsHY+W9jkv+Cj4+z3XpPozsRdoj21oxPx8fPJzpVeaUHrEkZtj9Yvo/KhByBK5sRjKmlENXVF3wXVfAg48JZR2XUyUcBdZhR9aHhoQIDAQAB
+    insurerCode: 'BPIC'

+ 44 - 12
tenant/insurance/quotation-yangguang/src/main/java/com/jzg/quotation/yangguang/api/build/YangGuangApiQuoteResultsVoBuild.java

@@ -1,5 +1,6 @@
 package com.jzg.quotation.yangguang.api.build;
 
+import com.jzg.commons.constants.dict.InsOrderStatusEnum;
 import com.jzg.quotation.commons.constant.enums.quote.KindCode;
 import com.jzg.quotation.commons.entity.vo.aggregated.QuoteResultsVo;
 import com.jzg.quotation.commons.entity.vo.aggregated.QuoteVo;
@@ -7,6 +8,7 @@ import com.jzg.commons.entity.quote.vo.KindInfoVo;
 import com.jzg.commons.entity.quote.vo.RiskInfoVo;
 import com.jzg.quotation.yangguang.api.entity.response.YangGuangAccuracyCalculateResponse;
 
+import java.math.BigDecimal;
 import java.util.List;
 import java.util.Map;
 import java.util.Objects;
@@ -22,29 +24,21 @@ public final class YangGuangApiQuoteResultsVoBuild {
         QuoteResultsVo quoteResultsVo = new QuoteResultsVo();
         quoteResultsVo.setOrdersNo(orderNo);
         // 交强险
-        quoteResultsVo.setCiRiskInfoVo(new RiskInfoVo());
+        quoteResultsVo.setCiRiskInfoVo(buildCiRiskInfoVo(yangGuangAccuracyCalculateResponse));
         // 商业险
-        quoteResultsVo.setBiRiskInfoVo(new RiskInfoVo());
+        quoteResultsVo.setBiRiskInfoVo(buildBiRiskInfoVo(yangGuangAccuracyCalculateResponse));
         // 商业险险种信息
         if (Objects.nonNull(quoteVo.getKindInfoVo())) {
             List<KindInfoVo> kindInfoVo = buildKindInfoVo(quoteVo.getKindInfoVo(), yangGuangAccuracyCalculateResponse.getKindList());
             quoteResultsVo.setKindInfoVo(kindInfoVo);
         }
-
-        // 费用因子
-//        List<ExpenseFactor> expenseFactors = buildExpenseFactor(yangGuangAccuracyCalculateResponse.getDiscount());
-//        quoteResultsVo.setExpenseFactors(expenseFactors);
         // 交强保费 车船税 商业保费
         buildPremium(quoteResultsVo, yangGuangAccuracyCalculateResponse);
+        quoteResultsVo.setQuoteStatus(InsOrderStatusEnum.WAIT_AUDIT);
+        quoteResultsVo.setScoreVo(buildScoreVo(yangGuangAccuracyCalculateResponse.getDiscount()));
         return quoteResultsVo;
     }
 
-//    private static List<ExpenseFactor> buildExpenseFactor(List<CalculatePremiumResponse.PriceInfoListDTO> priceInfoList) {
-//
-//
-//        return new ArrayList<>();
-//    }
-
     /**
      * 处理商业险信息
      * @param kindInfoVo
@@ -71,6 +65,44 @@ public final class YangGuangApiQuoteResultsVoBuild {
         quoteResultsVo.setCiPremium(yangGuangAccuracyCalculateResponse.getCiSumPremium());
         quoteResultsVo.setBiPremium(yangGuangAccuracyCalculateResponse.getBiSumPremium());
         quoteResultsVo.setVvTax(yangGuangAccuracyCalculateResponse.getSumPayTax());
+        // 驾意险
+        List<YangGuangAccuracyCalculateResponse.PtptNonVehicleProductInformationList> notCarList = yangGuangAccuracyCalculateResponse.getPtptNonVehicleProductInformationList();
+        //驾意险价格
+        BigDecimal bigDecimal = YangGuangAccuracyCalculateResponse.PtptNonVehicleProductInformationList.sumPremium(notCarList);
+        quoteResultsVo.setNiPremium(bigDecimal.toString());
+    }
+
+    /**
+     * 处理交强险数据
+     * @param quotationResponse
+     * @return
+     */
+    public static RiskInfoVo buildCiRiskInfoVo(YangGuangAccuracyCalculateResponse quotationResponse) {
+        RiskInfoVo riskInfoVo = new RiskInfoVo();
+        riskInfoVo.setStartDate(quotationResponse.getCiStartDate());
+        riskInfoVo.setEndDate(quotationResponse.getCiEndDate());
+        return riskInfoVo;
+    }
+
+    /**
+     * 处理交强险数据
+     * @param quotationResponse
+     * @return
+     */
+    public static RiskInfoVo buildBiRiskInfoVo(YangGuangAccuracyCalculateResponse quotationResponse) {
+        RiskInfoVo riskInfoVo = new RiskInfoVo();
+        riskInfoVo.setStartDate(quotationResponse.getBiStartDate());
+        riskInfoVo.setEndDate(quotationResponse.getBiEndDate());
+        return riskInfoVo;
+    }
+    private static QuoteResultsVo.ScoreVo buildScoreVo(YangGuangAccuracyCalculateResponse.discount discount) {
+        QuoteResultsVo.ScoreVo scoreVo = new QuoteResultsVo.ScoreVo();
+        scoreVo.setJqScore(discount.getMarkingnobcCI());
+        scoreVo.setSyScore(discount.getMarkingnobcBI());
+        scoreVo.setLossRation(discount.getFinalmarkingnobc());
+        scoreVo.setJqLossRation(discount.getFinalmarkingnoCi());
+        scoreVo.setSyLossRation(discount.getFinalmarkingnoBi());
+        return scoreVo;
     }
 
 }

+ 25 - 20
tenant/insurance/quotation-yangguang/src/main/java/com/jzg/quotation/yangguang/api/componet/YangGuangApiRequestComponent.java

@@ -3,6 +3,8 @@ package com.jzg.quotation.yangguang.api.componet;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import com.fasterxml.jackson.core.JsonProcessingException;
+import com.jzg.quotation.commons.constant.enums.base.InsuranceEnum;
+import com.jzg.quotation.commons.utils.InsuranceLog;
 import com.jzg.quotation.yangguang.api.entity.request.*;
 import com.jzg.quotation.yangguang.api.entity.response.*;
 import com.jzg.quotation.yangguang.api.properties.YangGuangApiProperties;
@@ -39,12 +41,15 @@ public class YangGuangApiRequestComponent {
         this.restTemplate = restTemplate;
     }
 
-    private <Q extends YangGuangBaseRequest, S extends YangGuangBaseResponse> S post(Q q, Class<S> tClass) throws JsonProcessingException {
+    private <Q extends YangGuangBaseRequest, S extends YangGuangBaseResponse> S post(Q q, Class<S> tClass,String type) throws JsonProcessingException {
 
         // 发送请求
         String url = yangGuangApiProperties.getUrl();
         String encryptRequestBody = yangGuangEncryption.encryptRequestBody
                 (q, yangGuangApiProperties.getKey());
+        String request = JSON.toJSONString(q);
+        InsuranceLog.infoLog(InsuranceEnum.YGBX.getPinyin(), "\n\t---------> {} \n\t---------> URl: {} \n\t---------> 请求参数:{}",
+                type,url,request);
         //设置请求头类型
         HttpHeaders headers = new HttpHeaders();
         HttpEntity<String> entity = new HttpEntity<>(encryptRequestBody, headers);
@@ -54,7 +59,7 @@ public class YangGuangApiRequestComponent {
         // 处理解密
         String decryptedResponse = yangGuangEncryption.authcodeDecode(body, yangGuangApiProperties.getKey());
 
-//        InsuranceLog.infoLog(InsuranceEnum.YGBX.getPinyin(), "\n\n---------> 响应参数:{}", decryptedResponse);
+        InsuranceLog.infoLog(InsuranceEnum.BPIC.getPinyin(), "\n\t---------> {} \n\t---------> 响应参数:{}", type, decryptedResponse);
         JSONObject jsonObject = JSON.parseObject(decryptedResponse);
         S t = jsonObject.toJavaObject(tClass);
         // 反序列化响应
@@ -123,35 +128,35 @@ public class YangGuangApiRequestComponent {
      * 查询车型
      */
     public YangGuangQueryVehicleModelResponse queryVehicleModel(YangGuangQueryVehicleModelRequest yangGuangQueryVehicleModel) throws JsonProcessingException {
-        return post(yangGuangQueryVehicleModel, YangGuangQueryVehicleModelResponse.class);
+        return post(yangGuangQueryVehicleModel, YangGuangQueryVehicleModelResponse.class, "查询车型");
     }
 
     /**
      *  报价
      */
     public YangGuangAccuracyCalculateResponse accuracyCalculaye(YangGuangAccuracyCalculateRequest yangGuangAccuracyCalculateRequest) throws JsonProcessingException {
-        return post(yangGuangAccuracyCalculateRequest, YangGuangAccuracyCalculateResponse.class);
+        return post(yangGuangAccuracyCalculateRequest, YangGuangAccuracyCalculateResponse.class,"报价");
     }
 
     /**
      * 投保单提交
      */
     public YangGuangSubmitResponse submit(YangGuangSubmitRequest yangGuangSubmitRequest) throws JsonProcessingException {
-        return post(yangGuangSubmitRequest, YangGuangSubmitResponse.class);
+        return post(yangGuangSubmitRequest, YangGuangSubmitResponse.class, "投保单提交");
     }
 
     /**
      *  投保单状态查询
      */
     public YangGuangProposalStatusQueryResponse proposalStatusQuery(YangGuangProposalStatusQueryRequest yangGuangProposalStatusQueryRequest) throws JsonProcessingException {
-        return post(yangGuangProposalStatusQueryRequest, YangGuangProposalStatusQueryResponse.class);
+        return post(yangGuangProposalStatusQueryRequest, YangGuangProposalStatusQueryResponse.class,"投保单状态查询");
     }
 
     /**
      * 线上支付
      */
     public YangGuangPaymentResponse payment(YangGuangPaymentRequest yangGuangPaymentRequest) throws JsonProcessingException {
-        return post(yangGuangPaymentRequest, YangGuangPaymentResponse.class);
+        return post(yangGuangPaymentRequest, YangGuangPaymentResponse.class,"获取支付链接");
     }
 
 //    /**
@@ -161,19 +166,19 @@ public class YangGuangApiRequestComponent {
 //        return post(yangGuangCallbackRequest, YangGuangCallbackResponse.class);
 //    }
 //
-//    /**
-//     *  获取驾意险套餐列表
-//     */
-//    public YangGuangGetNonVehicleProductsResponse getNonVehicleProducts(YangGuangGetNonVehicleProductsRequest yangGuangGetNonVehicleProductsRequest) throws JsonProcessingException {
-//        return post(yangGuangGetNonVehicleProductsRequest, YangGuangGetNonVehicleProductsResponse.class);
-//    }
-//
-//    /**
-//     *  获取电子保单下载地址
-//     */
-//    public YangGuangGetEpolicyPdfUrlResponse getEpolicyPDFURL(YangGuangGetEpolicyPdfUrlRequest yangGuangGetEpolicyPdfUrlRequest) throws JsonProcessingException {
-//        return post(yangGuangGetEpolicyPdfUrlRequest, YangGuangGetEpolicyPdfUrlResponse.class);
-//    }
+    /**
+     *  获取驾意险套餐列表
+     */
+    public YangGuangGetNonVehicleProductsResponse getNonVehicleProducts(YangGuangGetNonVehicleProductsRequest yangGuangGetNonVehicleProductsRequest) throws JsonProcessingException {
+        return post(yangGuangGetNonVehicleProductsRequest, YangGuangGetNonVehicleProductsResponse.class,"获取非车套餐列表");
+    }
+
+    /**
+     *  获取电子保单下载地址
+     */
+    public YangGuangGetEpolicyPdfUrlResponse getEpolicyPDFURL(YangGuangGetEpolicyPdfUrlRequest yangGuangGetEpolicyPdfUrlRequest) throws JsonProcessingException {
+        return post(yangGuangGetEpolicyPdfUrlRequest, YangGuangGetEpolicyPdfUrlResponse.class, "获取电子保单下载地址");
+    }
 //
 //    /**
 //     *  投保单注销