Przeglądaj źródła

处理 93169 需要重新报价异常

wks 3 lat temu
rodzic
commit
98f9f3dd7c

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

@@ -61,6 +61,8 @@ public class ZijinRequestApiComponents {
 
     private ZijinVehicleTypeErrorComponents zijinVehicleTypeErrorComponents;
 
+   private ZijinSystemExceptionComponents zijinSystemExceptionComponents;
+
     @Autowired
     public void setZijinDuplicateInsuranceComponents(ZijinDuplicateInsuranceComponents zijinDuplicateInsuranceComponents) {
         this.zijinDuplicateInsuranceComponents = zijinDuplicateInsuranceComponents;
@@ -76,6 +78,10 @@ public class ZijinRequestApiComponents {
         this.zijinVehicleTypeErrorComponents = zijinVehicleTypeErrorComponents;
     }
 
+    @Autowired
+    public void setZijinSystemExceptionComponents(ZijinSystemExceptionComponents zijinSystemExceptionComponents) {
+        this.zijinSystemExceptionComponents = zijinSystemExceptionComponents;
+    }
 
     public ZijinRequestApiComponents(InsCrawlerOrderComponents insCrawlerOrderComponents, ZjApiConfigurationProperties zjApiConfigurationProperties, ConfigureParametersComponents configureParametersComponents, StringRedisTemplate redisTemplate, RedissonClient redissonClient) {
         this.insCrawlerOrderComponents = insCrawlerOrderComponents;
@@ -257,6 +263,8 @@ public class ZijinRequestApiComponents {
         calculatePremiumResponse = zijinReinsuranceComponents.reinsurance(calculatePremiumRequest, calculatePremiumResponse, httpHeaders, modelQueryRequest);
         // 3. 车型不一致
         calculatePremiumResponse = zijinVehicleTypeErrorComponents.modification(calculatePremiumRequest, calculatePremiumResponse, httpHeaders, modelQueryRequest);
+        // 4. 处理 93169 需要重新报价异常
+        calculatePremiumResponse = zijinSystemExceptionComponents.exceptionProcessing(calculatePremiumRequest, calculatePremiumResponse, httpHeaders, modelQueryRequest);
 
         return calculatePremiumResponse;
     }

+ 68 - 0
src/main/java/com/ydtech/modules/order/components/zj/ZijinSystemExceptionComponents.java

@@ -0,0 +1,68 @@
+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.request.CalculatePremiumRequest;
+import com.ydtech.modules.order.entity.api.zj.request.ModelQueryRequest;
+import com.ydtech.modules.order.entity.api.zj.response.CalculatePremiumResponse;
+import com.ydtech.modules.order.utils.InsuranceLog;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.Getter;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpHeaders;
+import org.springframework.stereotype.Component;
+
+
+/**
+ * @description: 紫金财险 999 异常处理
+ * @author: wenks
+ * @date: 2023/9/22 14:27
+ **/
+
+@Data
+@Component
+public class ZijinSystemExceptionComponents {
+
+    private ZijinRequestApiComponents zijinRequestApiComponents;
+
+    @Autowired
+    public void setZijinRequestApiComponents(ZijinRequestApiComponents zijinRequestApiComponents) {
+        this.zijinRequestApiComponents = zijinRequestApiComponents;
+    }
+
+    /**
+     * 处理 93169 需要重新报价异常
+     */
+    public CalculatePremiumResponse exceptionProcessing(CalculatePremiumRequest calculatePremiumRequest, CalculatePremiumResponse calculatePremiumResponse, HttpHeaders httpHeaders, ModelQueryRequest modelQueryRequest) {
+        InsuranceLog.infoLog(InsuranceEnum.ZKIC.getPinyin(), "\n\t---------> {}\n\t---------> {}", "紫金财险 999 异常处理", calculatePremiumResponse.getRtnMsg());
+        String rtnMsg = calculatePremiumResponse.getRtnMsg();
+        if (rtnMsg.contains(ResultEnum.R_93169.getCode())) {
+
+            try {
+                Thread.sleep(1000);
+            } catch (InterruptedException e) {
+                InsuranceLog.infoLog(InsuranceEnum.ZKIC.getPinyin(), e.getMessage());
+                Thread.currentThread().interrupt();
+            }
+
+            return zijinRequestApiComponents.calculatePremium(calculatePremiumRequest, httpHeaders, modelQueryRequest);
+        }
+        throw new SystemException(calculatePremiumResponse.getRtnMsg());
+    }
+
+    @AllArgsConstructor
+    @Getter
+    public enum ResultEnum {
+
+        R_93169("93169", "系统异常:93169:找不到投保询价待校验信息(投保询价信息不存在,或投保询价已经成功)。");
+
+        private final String code;
+
+        private final String desc;
+
+    }
+
+
+}

+ 1 - 1
src/main/java/com/ydtech/modules/order/entity/api/zj/constants/enums/ResultEnum.java

@@ -29,7 +29,7 @@ public enum ResultEnum {
     private final String desc;
 
     public static void verify(String rtnCode, String rtnMsg) {
-        String[] s = new String[]{"0000", "4001", "9980", "1557"};
+        String[] s = new String[]{"0000", "4001", "9980", "1557", "999"};
         List<String> list = Arrays.asList(s);
         if (!list.contains(rtnCode)) {
             throw new SystemException(rtnMsg);