Explorar el Código

修改紫金投保实际价格错误问题

wks hace 2 años
padre
commit
a0951d2e06

+ 9 - 1
src/main/java/com/ydtech/modules/order/components/zj/ResponseMessageAbstractHandler.java

@@ -3,6 +3,7 @@ package com.ydtech.modules.order.components.zj;
 
 import com.ydtech.modules.order.entity.api.zj.request.CalculatePremiumRequest;
 import com.ydtech.modules.order.entity.api.zj.request.ModelQueryRequest;
+import com.ydtech.modules.order.entity.api.zj.request.QueryActualValueRequest;
 import com.ydtech.modules.order.entity.api.zj.response.CalculatePremiumResponse;
 import org.springframework.http.HttpHeaders;
 
@@ -25,7 +26,14 @@ public abstract class ResponseMessageAbstractHandler {
      * @param modelQueryRequest        车型请求体
      * @return 报价响应参数
      */
-    public abstract CalculatePremiumResponse messageHandler(CalculatePremiumRequest calculatePremiumRequest, CalculatePremiumResponse calculatePremiumResponse, HttpHeaders httpHeaders, ModelQueryRequest modelQueryRequest, String message) ;
+    public abstract CalculatePremiumResponse messageHandler(
+            CalculatePremiumRequest calculatePremiumRequest,
+            CalculatePremiumResponse calculatePremiumResponse,
+            HttpHeaders httpHeaders,
+            ModelQueryRequest modelQueryRequest,
+            String message,
+            QueryActualValueRequest queryActualValueRequest
+    ) ;
 
 
 }

+ 3 - 2
src/main/java/com/ydtech/modules/order/components/zj/ZijinDuplicateInsuranceComponents.java

@@ -7,6 +7,7 @@ import com.ydtech.modules.order.entity.api.zj.constants.enums.CalculateFlagEnum;
 import com.ydtech.modules.order.entity.api.zj.constants.enums.ResultEnum;
 import com.ydtech.modules.order.entity.api.zj.request.CalculatePremiumRequest;
 import com.ydtech.modules.order.entity.api.zj.request.ModelQueryRequest;
+import com.ydtech.modules.order.entity.api.zj.request.QueryActualValueRequest;
 import com.ydtech.modules.order.entity.api.zj.response.CalculatePremiumResponse;
 import com.ydtech.modules.order.utils.InsuranceLog;
 import lombok.extern.slf4j.Slf4j;
@@ -89,7 +90,7 @@ public class ZijinDuplicateInsuranceComponents extends ResponseMessageAbstractHa
 
 
     @Override
-    public CalculatePremiumResponse messageHandler(CalculatePremiumRequest calculatePremiumRequest, CalculatePremiumResponse calculatePremiumResponse, HttpHeaders httpHeaders, ModelQueryRequest modelQueryRequest, String message) {
+    public CalculatePremiumResponse messageHandler(CalculatePremiumRequest calculatePremiumRequest, CalculatePremiumResponse calculatePremiumResponse, HttpHeaders httpHeaders, ModelQueryRequest modelQueryRequest, String message, QueryActualValueRequest queryActualValueRequest) {
         InsuranceLog.infoLog(InsuranceEnum.ZKIC.getPinyin(), "\n\t---------> {}\n\t---------> {}", "紫金财险重复投保处理", calculatePremiumResponse.getRtnMsg());
         String rtnMsg = calculatePremiumResponse.getRtnMsg();
         CalculatePremiumRequest.BaseInfoDTO baseInfo = calculatePremiumRequest.getBaseInfo();
@@ -121,7 +122,7 @@ public class ZijinDuplicateInsuranceComponents extends ResponseMessageAbstractHa
 
         baseInfo.setTrafficTime(jqEndDate);
         baseInfo.setBusinessTime(syEndDate);
-        calculatePremiumResponse = zijinRequestApiComponents.calculatePremium(calculatePremiumRequest, httpHeaders, modelQueryRequest, message);
+        calculatePremiumResponse = zijinRequestApiComponents.calculatePremium(calculatePremiumRequest, httpHeaders, modelQueryRequest, message, queryActualValueRequest);
         return calculatePremiumResponse;
     }
 

+ 3 - 2
src/main/java/com/ydtech/modules/order/components/zj/ZijinReinsuranceComponents.java

@@ -6,6 +6,7 @@ import com.ydtech.modules.order.components.VerificationCodeIdentification;
 import com.ydtech.modules.order.entity.api.zj.constants.enums.ResultEnum;
 import com.ydtech.modules.order.entity.api.zj.request.CalculatePremiumRequest;
 import com.ydtech.modules.order.entity.api.zj.request.ModelQueryRequest;
+import com.ydtech.modules.order.entity.api.zj.request.QueryActualValueRequest;
 import com.ydtech.modules.order.entity.api.zj.response.CalculatePremiumResponse;
 import com.ydtech.modules.order.entity.crawler.request.RecognitionRequest;
 import com.ydtech.modules.order.entity.crawler.response.RecognitionResponse;
@@ -44,7 +45,7 @@ public class ZijinReinsuranceComponents extends ResponseMessageAbstractHandler {
      * @return CalculatePremiumResponse
      */
     @Override
-    public CalculatePremiumResponse messageHandler(CalculatePremiumRequest calculatePremiumRequest, CalculatePremiumResponse calculatePremiumResponse, HttpHeaders httpHeaders, ModelQueryRequest modelQueryRequest, String message) {
+    public CalculatePremiumResponse messageHandler(CalculatePremiumRequest calculatePremiumRequest, CalculatePremiumResponse calculatePremiumResponse, HttpHeaders httpHeaders, ModelQueryRequest modelQueryRequest, String message, QueryActualValueRequest queryActualValueRequest) {
         InsuranceLog.infoLog(InsuranceEnum.ZKIC.getPinyin(), "\n\t---------> {}\n\t---------> {}", "紫金财险转保处理", calculatePremiumResponse.getRtnMsg());
         CalculatePremiumResponse.BasePartDTO basePart = calculatePremiumResponse.getBasePart();
         RecognitionRequest recognitionRequest = new RecognitionRequest();
@@ -65,6 +66,6 @@ public class ZijinReinsuranceComponents extends ResponseMessageAbstractHandler {
         baseInfo.setAnswerCI(recognition.getData().getJqImageCode());
         baseInfo.setAnswer(recognition.getData().getSyImageCode());
 
-        return zijinRequestApiComponents.calculatePremium(calculatePremiumRequest, httpHeaders, modelQueryRequest, message);
+        return zijinRequestApiComponents.calculatePremium(calculatePremiumRequest, httpHeaders, modelQueryRequest, message, queryActualValueRequest);
     }
 }

+ 2 - 2
src/main/java/com/ydtech/modules/order/components/zj/ZijinRequestApiComponents.java

@@ -236,12 +236,12 @@ public class ZijinRequestApiComponents {
      * @param message                 传输信息
      * @return 出参实体
      */
-    public CalculatePremiumResponse calculatePremium(CalculatePremiumRequest calculatePremiumRequest, HttpHeaders httpHeaders, ModelQueryRequest modelQueryRequest, String message) {
+    public CalculatePremiumResponse calculatePremium(CalculatePremiumRequest calculatePremiumRequest, HttpHeaders httpHeaders, ModelQueryRequest modelQueryRequest, String message,QueryActualValueRequest queryActualValueRequest ) {
         CalculatePremiumResponse calculatePremiumResponse = requestQuotation(RequestUrl.CALCULATE_PREMIUM, calculatePremiumRequest, CalculatePremiumResponse.class, httpHeaders);
         // 通过状态码获取处理器处理
         ResponseMessageAbstractHandler responseMessageAbstractHandler = handlerMap.get(ResponseMessageAbstractHandler.CALCULATE_PREMIUM_COMPONENTS + calculatePremiumResponse.getRtnCode());
         if (!ObjectUtils.isEmpty(responseMessageAbstractHandler)) {
-            calculatePremiumResponse = responseMessageAbstractHandler.messageHandler(calculatePremiumRequest, calculatePremiumResponse, httpHeaders, modelQueryRequest, message);
+            calculatePremiumResponse = responseMessageAbstractHandler.messageHandler(calculatePremiumRequest, calculatePremiumResponse, httpHeaders, modelQueryRequest, message, queryActualValueRequest);
         }
         return calculatePremiumResponse;
     }

+ 2 - 1
src/main/java/com/ydtech/modules/order/components/zj/ZijinSystemExceptionComponents.java

@@ -6,6 +6,7 @@ import com.ydtech.exception.SystemException;
 import com.ydtech.modules.order.entity.api.zj.constants.enums.ResultEnum;
 import com.ydtech.modules.order.entity.api.zj.request.CalculatePremiumRequest;
 import com.ydtech.modules.order.entity.api.zj.request.ModelQueryRequest;
+import com.ydtech.modules.order.entity.api.zj.request.QueryActualValueRequest;
 import com.ydtech.modules.order.entity.api.zj.response.CalculatePremiumResponse;
 import com.ydtech.modules.order.utils.InsuranceLog;
 import lombok.AllArgsConstructor;
@@ -35,7 +36,7 @@ public class ZijinSystemExceptionComponents extends ResponseMessageAbstractHandl
     }
 
     @Override
-    public CalculatePremiumResponse messageHandler(CalculatePremiumRequest calculatePremiumRequest, CalculatePremiumResponse calculatePremiumResponse, HttpHeaders httpHeaders, ModelQueryRequest modelQueryRequest, String message) {
+    public CalculatePremiumResponse messageHandler(CalculatePremiumRequest calculatePremiumRequest, CalculatePremiumResponse calculatePremiumResponse, HttpHeaders httpHeaders, ModelQueryRequest modelQueryRequest, String message, QueryActualValueRequest queryActualValueRequest) {
         InsuranceLog.infoLog(InsuranceEnum.ZKIC.getPinyin(), "\n\t---------> {}\n\t---------> {}", "紫金财险 999 异常处理", calculatePremiumResponse.getRtnMsg());
         String rtnMsg = calculatePremiumResponse.getRtnMsg();
 

+ 21 - 3
src/main/java/com/ydtech/modules/order/components/zj/ZijinVehicleTypeErrorComponents.java

@@ -3,11 +3,14 @@ package com.ydtech.modules.order.components.zj;
 
 import com.ydtech.constants.InsuranceEnum;
 import com.ydtech.exception.SystemException;
+import com.ydtech.modules.order.entity.api.zj.constants.enums.MotorVehicleInsuranceEnum;
 import com.ydtech.modules.order.entity.api.zj.constants.enums.ResultEnum;
 import com.ydtech.modules.order.entity.api.zj.request.CalculatePremiumRequest;
 import com.ydtech.modules.order.entity.api.zj.request.ModelQueryRequest;
+import com.ydtech.modules.order.entity.api.zj.request.QueryActualValueRequest;
 import com.ydtech.modules.order.entity.api.zj.response.CalculatePremiumResponse;
 import com.ydtech.modules.order.entity.api.zj.response.ModelQueryResponse;
+import com.ydtech.modules.order.entity.api.zj.response.QueryActualValueResponse;
 import com.ydtech.modules.order.utils.InsuranceLog;
 import lombok.Data;
 import lombok.extern.slf4j.Slf4j;
@@ -15,6 +18,7 @@ import org.springframework.context.annotation.Lazy;
 import org.springframework.http.HttpHeaders;
 import org.springframework.stereotype.Component;
 
+import java.util.List;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 import java.util.stream.Collectors;
@@ -60,7 +64,7 @@ public class ZijinVehicleTypeErrorComponents extends ResponseMessageAbstractHand
      * 修改正确车型报价
      */
     @Override
-    public CalculatePremiumResponse messageHandler(CalculatePremiumRequest calculatePremiumRequest, CalculatePremiumResponse calculatePremiumResponse, HttpHeaders httpHeaders, ModelQueryRequest modelQueryRequest, String message) {
+    public CalculatePremiumResponse messageHandler(CalculatePremiumRequest calculatePremiumRequest, CalculatePremiumResponse calculatePremiumResponse, HttpHeaders httpHeaders, ModelQueryRequest modelQueryRequest, String message, QueryActualValueRequest queryActualValueRequest) {
         InsuranceLog.infoLog(InsuranceEnum.ZKIC.getPinyin(), "\n\t---------> {}\n\t---------> {}", "紫金财险转修改正确车型报价", calculatePremiumResponse.getRtnMsg());
         CarType carType = getCarInconsistentInformation(calculatePremiumResponse.getRtnMsg());
 
@@ -71,10 +75,24 @@ public class ZijinVehicleTypeErrorComponents extends ResponseMessageAbstractHand
                 .filter(x -> x.getModelCode().equals(carType.modelCode) && x.getPlatVehicleCode().equals(carType.platVehicleCode))
                 .collect(Collectors.toList()).get(0);
 
-        calculatePremiumRequest.modificationOfVehicleType(vehicleModelInfosDTO);
+        // 车型实际价格
+        queryActualValueRequest.setSeatCount(vehicleModelInfosDTO.getSeatCount());
+        queryActualValueRequest.setPurchasePrice(vehicleModelInfosDTO.getPurchasePrice());
+        QueryActualValueResponse queryActualValueResponse = zijinRequestApiComponents.queryActualValue(queryActualValueRequest, httpHeaders);
+        String actualValue = queryActualValueResponse.getActualValue();
+
+        calculatePremiumRequest.modificationOfVehicleType(vehicleModelInfosDTO, actualValue);
         calculatePremiumRequest.setOrderId(modelQueryResponse.getOrderId());
         calculatePremiumRequest.setOrderNo(modelQueryResponse.getOrderNo());
-        return zijinRequestApiComponents.calculatePremium(calculatePremiumRequest, httpHeaders, modelQueryRequest, message);
+
+        List<CalculatePremiumRequest.ItemKindListDTO> itemKindListDTO = calculatePremiumRequest.getItemKindList().stream()
+                .filter(x -> x.getKindCode().equals(MotorVehicleInsuranceEnum.MVI_A.getCode())).collect(Collectors.toList());
+
+        if (itemKindListDTO.size() == 1) {
+            itemKindListDTO.get(0).setAmount(actualValue);
+        }
+
+        return zijinRequestApiComponents.calculatePremium(calculatePremiumRequest, httpHeaders, modelQueryRequest, message, queryActualValueRequest);
     }
 
     @Data

+ 5 - 3
src/main/java/com/ydtech/modules/order/entity/api/zj/request/CalculatePremiumRequest.java

@@ -133,8 +133,8 @@ public class CalculatePremiumRequest implements Serializable {
         this.taxRelifInfo = new TaxRelifInfoDTO(quoteInfoVo.getVehicleAndVesselTax());
     }
 
-    public void modificationOfVehicleType(ModelQueryResponse.VehicleModelInfosDTO vehicleModelInfosDTO) {
-        this.vehicleInfo.modificationOfVehicleType(vehicleModelInfosDTO);
+    public void modificationOfVehicleType(ModelQueryResponse.VehicleModelInfosDTO vehicleModelInfosDTO, String actualValue) {
+        this.vehicleInfo.modificationOfVehicleType(vehicleModelInfosDTO, actualValue);
     }
 
     /**
@@ -897,7 +897,9 @@ public class CalculatePremiumRequest implements Serializable {
             }
         }
 
-        public void modificationOfVehicleType(ModelQueryResponse.VehicleModelInfosDTO vehicleModelInfosDTO) {
+        public void modificationOfVehicleType(ModelQueryResponse.VehicleModelInfosDTO vehicleModelInfosDTO, String actualValue) {
+            this.actualValue = actualValue;
+            this.agreeActualValue = actualValue;
             this.modelCode = vehicleModelInfosDTO.getModelCode();
             this.purchasePrice = vehicleModelInfosDTO.getPurchasePrice();
             this.vehicleId = vehicleModelInfosDTO.getVehicleId();

+ 2 - 1
src/main/java/com/ydtech/modules/order/service/impl/ZijinOrderApiServiceImpl.java

@@ -131,13 +131,14 @@ public class ZijinOrderApiServiceImpl implements ZijinOrderApiService {
         }
 
         QueryActualValueRequest queryActualValueRequest = new QueryActualValueRequest(carInfo.getRegisterDate(), purchasePrice, seatCount, startDate);
+
         QueryActualValueResponse queryActualValueResponse = zijinRequestApiComponents.queryActualValue(queryActualValueRequest, httpHeaders);
         // 4. 报价
         CalculatePremiumRequest calculatePremiumRequest
                 = new CalculatePremiumRequest(quoteInfoVo, vehicleModelInfosDTO, queryActualValueResponse.getActualValue(), quoteVo.getAccidentalDrivingVo(), zjConfigureParameters, modelQueryResponse);
 
         String message = "";
-        CalculatePremiumResponse calculatePremiumResponse = zijinRequestApiComponents.calculatePremium(calculatePremiumRequest, httpHeaders, modelQueryRequest, message);
+        CalculatePremiumResponse calculatePremiumResponse = zijinRequestApiComponents.calculatePremium(calculatePremiumRequest, httpHeaders, modelQueryRequest, message, queryActualValueRequest);
         // 警告信息
         QuoteRespVo quoteRespVo = getQuoteRespVo(calculatePremiumResponse, quoteInfoVo, quoteVo.getAccidentalDrivingVo());
         if (!StringUtils.isEmpty(message)) {