Procházet zdrojové kódy

Merge remote-tracking branch 'origin/dev_jzg_lipf_v20260622' into dev_jzg_lipf_v20260622

jiakai před 2 měsíci
rodič
revize
d3a1bb6f2c
14 změnil soubory, kde provedl 136 přidání a 23 odebrání
  1. 2 0
      commons/src/main/java/com/jzg/commons/entity/rights/dto/InsOrderRightsDto.java
  2. 2 0
      commons/src/main/java/com/jzg/commons/entity/rights/dto/InsOrderRightsPackageDto.java
  3. 1 1
      commons/src/main/java/com/jzg/commons/entity/rights/dto/RightsGrantReceiverDTO.java
  4. 19 0
      tenant/insurance/quotation-commons/src/main/java/com/jzg/quotation/commons/component/RequestComponent.java
  5. 22 0
      tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/aop/aspect/QuoteVerificationAspect.java
  6. 3 0
      tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/entity/dto/ChannelRightsQueryDTO.java
  7. 2 0
      tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/service/impl/InsOrderRightsInfoServiceImpl.java
  8. 26 0
      tenant/insurance/quotation-taikang/src/main/java/com/jzg/quotation/taikang/crawler/ConvertUtil.java
  9. 3 3
      tenant/insurance/quotation-taikang/src/main/java/com/jzg/quotation/taikang/crawler/build/TkCrawlerQuoteResultsBuild.java
  10. 1 1
      tenant/insurance/quotation-taikang/src/main/java/com/jzg/quotation/taikang/crawler/model/entity/TKFlag.java
  11. 5 2
      tenant/insurance/quotation-taikang/src/main/java/com/jzg/quotation/taikang/crawler/model/entity/TKOther.java
  12. 10 5
      tenant/insurance/quotation-taikang/src/main/java/com/jzg/quotation/taikang/crawler/service/TKSimpleService.java
  13. 6 2
      tenant/insurance/quotation-taishan/src/main/java/com/jzg/quotation/taishan/crawler/component/TaiShanCrawlerRequestComponent.java
  14. 34 9
      tenant/insurance/quotation-taishan/src/main/java/com/jzg/quotation/taishan/crawler/service/impl/TaiShanCrawlerRequestImpl.java

+ 2 - 0
commons/src/main/java/com/jzg/commons/entity/rights/dto/InsOrderRightsDto.java

@@ -20,6 +20,8 @@ import java.util.List;
 @Schema(description = "订单选择权益券DTO")
 @Data
 public class InsOrderRightsDto {
+    @Schema(description = "权益id")
+    private String id;
 
     @Schema(description = "权益类型 1 券  2 套餐")
     private String rightType;

+ 2 - 0
commons/src/main/java/com/jzg/commons/entity/rights/dto/InsOrderRightsPackageDto.java

@@ -20,6 +20,8 @@ import java.util.List;
 @Schema(description = "订单选择权益套餐DTO")
 @Data
 public class InsOrderRightsPackageDto {
+    @Schema(description = "id")
+    private String id;
     @Schema(description = "权益套餐id:对应生活服务平台返回的id")
     private String rightsId;
 

+ 1 - 1
commons/src/main/java/com/jzg/commons/entity/rights/dto/RightsGrantReceiverDTO.java

@@ -13,7 +13,7 @@ import lombok.Data;
 @Schema(description = "权益发放接收人DTO")
 public class RightsGrantReceiverDTO {
 
-    @Schema(description = "接收人类型 1 车主 2 投保人 3 被保人")
+    @Schema(description = "接收人类型 1 车主 2 投保人 3 被保人 4 其他")
     private Integer receiverType;
 
     @Schema(description = "接收人姓名")

+ 19 - 0
tenant/insurance/quotation-commons/src/main/java/com/jzg/quotation/commons/component/RequestComponent.java

@@ -22,6 +22,7 @@ import org.springframework.stereotype.Component;
 import org.springframework.util.MultiValueMap;
 import org.springframework.web.reactive.function.BodyInserters;
 import org.springframework.web.reactive.function.client.WebClient;
+import org.springframework.web.reactive.function.client.WebClientRequestException;
 import org.springframework.web.reactive.function.client.WebClientResponseException;
 import reactor.core.publisher.Flux;
 import reactor.core.publisher.Mono;
@@ -299,6 +300,15 @@ public class RequestComponent {
                                 null
                         )
                 )
+                .onErrorMap(WebClientRequestException.class, ex ->
+                        new WebClientResponseException(
+                                502,
+                                "第三方接口请求失败(DNS解析失败或连接异常):" + url + ",原因:" + ex.getMessage(),
+                                HttpHeaders.EMPTY,
+                                null,
+                                null
+                        )
+                )
                 .block();
     }
 
@@ -418,6 +428,15 @@ public class RequestComponent {
                                     null
                             )
                     )
+                    .onErrorMap(WebClientRequestException.class, ex ->
+                            new WebClientResponseException(
+                                    502,
+                                    "第三方接口请求失败(DNS解析失败或连接异常):" + url + ",原因:" + ex.getMessage(),
+                                    HttpHeaders.EMPTY,
+                                    null,
+                                    null
+                            )
+                    )
                     .block();
             if (rawResponse == null) {
                 throw new WebClientResponseException(

+ 22 - 0
tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/aop/aspect/QuoteVerificationAspect.java

@@ -96,6 +96,28 @@ public class QuoteVerificationAspect {
             // 获取协议信息
             HttpResult<AgreementInfoVo> ptlAgreement = orgClient.queryAgreementById(insOrders.getAgreementId());
             AgreementInfoVo agreementInfoVo = ptlAgreement.getData();
+            // 校验协议有效性
+            if (agreementInfoVo != null && agreementInfoVo.getAgreement() != null) {
+                AgreementVo agreementVo = agreementInfoVo.getAgreement();
+                if ("1".equals(agreementVo.getValidStatus())) {
+                    result.setCode(500);
+                    result.setMsg("协议已失效,请重新配置协议后再次报价");
+                    return;
+                }
+                if ("1".equals(String.valueOf(agreementVo.getIsEnable()))) {
+                    result.setCode(500);
+                    result.setMsg("协议已停用,请重新配置协议后再次报价");
+                    return;
+                }
+                if (agreementVo.getStartDate() != null && agreementVo.getEndDate() != null) {
+                    java.time.LocalDateTime now = java.time.LocalDateTime.now();
+                    if (now.isBefore(agreementVo.getStartDate()) || now.isAfter(agreementVo.getEndDate())) {
+                        result.setCode(500);
+                        result.setMsg("协议已超出有效期,请重新配置协议后再次报价");
+                        return;
+                    }
+                }
+            }
             // 通过协议id和产品id查询费用列表
             CostAgreementParam costAgreementParam = new CostAgreementParam();
             costAgreementParam.setPtlAgreementId(insOrders.getAgreementId());

+ 3 - 0
tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/entity/dto/ChannelRightsQueryDTO.java

@@ -4,6 +4,7 @@ import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 
 import java.math.BigDecimal;
+import java.util.List;
 
 @Data
 @Schema(description = "权益券查询参数")
@@ -30,6 +31,8 @@ public class ChannelRightsQueryDTO {
     @Schema(description = "权益券分类")
     private String classify;
 
+    @Schema(description = "权益券分类集合")
+    private List<String> classifyList;
     @Schema(description = "页码,默认1")
     private Integer pageNo = 1;
 

+ 2 - 0
tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/service/impl/InsOrderRightsInfoServiceImpl.java

@@ -81,6 +81,7 @@ public class InsOrderRightsInfoServiceImpl implements InsOrderRightsInfoService
                     insOrderRights.setReceiverName(rightsGrantReceiverDTO.getReceiverName());
                     insOrderRights.setReceiverType(rightsGrantReceiverDTO.getReceiverType());
                     insOrderRights.setOrderId(orderNo);
+                    insOrderRights.setRightsId(insOrderRightsDto.getId());
                     insOrderRightsList.add(insOrderRights);
                 }
                 insOrderRightsService.saveInsOrderRights(insOrderRightsList);
@@ -99,6 +100,7 @@ public class InsOrderRightsInfoServiceImpl implements InsOrderRightsInfoService
                     insOrderRightsPackage.setReceiverName(rightsGrantReceiverDTO.getReceiverName());
                     insOrderRightsPackage.setReceiverType(rightsGrantReceiverDTO.getReceiverType());
                     insOrderRightsPackage.setOrderId(orderNo);
+                    insOrderRightsPackage.setRightsId(insOrderRightsPackageDto.getId());
                     insOrderRightsPackageList.add(insOrderRightsPackage);
                 }
                 insOrderRightsPackageService.saveInsOrderRightsPackage(insOrderRightsPackageList);

+ 26 - 0
tenant/insurance/quotation-taikang/src/main/java/com/jzg/quotation/taikang/crawler/ConvertUtil.java

@@ -1,5 +1,8 @@
 package com.jzg.quotation.taikang.crawler;
 
+import java.math.BigDecimal;
+import java.math.RoundingMode;
+
 public class ConvertUtil {
 
     /**
@@ -20,4 +23,27 @@ public class ConvertUtil {
             return 0.0;
         }
     }
+
+    /**
+     * 将数字字符串转换为*万格式,如10000转换为1万,63177.4转换为6.32万
+     * 入参是字符串数字(整数 / 小数都支持,如 "10000"、"63177.4"、"1000")
+     * 数值 ≥10000:除以 10000,保留 2 位小数,拼接「万」
+     * 数值 <10000:原样返回原字符串
+     * @param quoteAmount
+     * @return
+     */
+    public static String simpleConvert(String quoteAmount) {
+        if (quoteAmount == null || quoteAmount.isBlank()) return quoteAmount;
+        BigDecimal num;
+        try {
+            num = new BigDecimal(quoteAmount.trim());
+        } catch (Exception e) {
+            return quoteAmount;
+        }
+        if (num.compareTo(new BigDecimal("10000")) < 0) {
+            return quoteAmount;
+        }
+        BigDecimal res = num.divide(new BigDecimal("10000"), 2, RoundingMode.HALF_UP);
+        return res + "万";
+    }
 }

+ 3 - 3
tenant/insurance/quotation-taikang/src/main/java/com/jzg/quotation/taikang/crawler/build/TkCrawlerQuoteResultsBuild.java

@@ -61,9 +61,9 @@ public class TkCrawlerQuoteResultsBuild {
 
         if (other.getVehicleOwnerMessage() != null) {
             errorMessage = other.getVehicleOwnerMessage();
-        } else if (other.getMessageBZ() != null && other.getMessageBZ().size() >= 2) {
-            errorMessage = other.getMessageBZ().get(0) + "\n" + other.getMessageBZ().get(1);
-        }
+        } else if ((other.getMessageBZ() instanceof List<?>) && ((List<?>) other.getMessageBZ()).size() >= 2) {
+            errorMessage = ((List<?>) other.getMessageBZ()).get(0) + "\n" + ((List<?>) other.getMessageBZ()).get(1);
+        } else
 
         // 初始化有提示跳过,应该属于警告信息(目前只遇到选择的三者险是300万,初始化依然提示:规则管控提示$商业三者险保额请选择300万以上),后续看是否有其他情况影响报价,如果出现其他情况,对这个提示单独处理放行
         if (!initFlag && preciseInitResult.getPremium() == null) {

+ 1 - 1
tenant/insurance/quotation-taikang/src/main/java/com/jzg/quotation/taikang/crawler/model/entity/TKFlag.java

@@ -134,7 +134,7 @@ public class TKFlag extends UnknownFieldEntity {
      */
     private String isStaffCar;
     /**
-     *
+     * 价格差异标志
      */
     private String priceDifferFlag;
 }

+ 5 - 2
tenant/insurance/quotation-taikang/src/main/java/com/jzg/quotation/taikang/crawler/model/entity/TKOther.java

@@ -50,7 +50,7 @@ public class TKOther extends UnknownFieldEntity {
     /**
      * 商业保险消息
      */
-    private List<String> messageBZ;
+    private Object messageBZ;
     /**
      * 通知信息
      */
@@ -80,7 +80,7 @@ public class TKOther extends UnknownFieldEntity {
     /**
      * 商业险消息
      */
-    private List<String> messageCI;
+    private Object messageCI;
 
     /**
      * 来源ID
@@ -92,6 +92,9 @@ public class TKOther extends UnknownFieldEntity {
      */
     private String vehicleOwnerMessage;
 
+    /**
+     * 价格差异标志
+     */
     private String priceDifferFlag;
 
 }

+ 10 - 5
tenant/insurance/quotation-taikang/src/main/java/com/jzg/quotation/taikang/crawler/service/TKSimpleService.java

@@ -5,6 +5,7 @@ import com.jzg.commons.entity.quote.vo.*;
 
 import com.jzg.quotation.commons.filter.CarModelsFilterUtils;
 import com.jzg.quotation.taikang.crawler.CodeUtil;
+import com.jzg.quotation.taikang.crawler.ConvertUtil;
 import com.jzg.quotation.taikang.crawler.model.TKLoginSession;
 import com.jzg.quotation.taikang.crawler.model.api.*;
 import com.jzg.quotation.taikang.crawler.model.entity.*;
@@ -31,6 +32,7 @@ public class TKSimpleService {
 
     /**
      * 车船税减免标志映射表:公司系统标志 -> 保司系统标志
+     * 1-正常交税; 2-免税; 3-减税; 4-完税
      */
     private static final Map<String, String> TAX_RELIEF_FLAG_MAP = Map.of(
             "1", "T",
@@ -952,9 +954,9 @@ public class TKSimpleService {
                 TKFlag::new
         );
         flag.setVipWeekFlag("0");
-        flag.setQuoteLinkageFlag("0");
-        flag.setInstantInsureBZAllowed("0");
-        flag.setPriceDifferFlag("0");
+        // flag.setQuoteLinkageFlag("0"); //解决选择三者险300万进行报价时,依然提示:规则管控提示$商业三者险保额请选择300万以上问题,测试正常,不行完了放开
+        // flag.setInstantInsureBZAllowed("0");//解决选择三者险300万进行报价时,依然提示:规则管控提示$商业三者险保额请选择300万以上问题,测试正常,不行完了放开
+        // flag.setPriceDifferFlag("0");//解决选择三者险300万进行报价时,依然提示:规则管控提示$商业三者险保额请选择300万以上问题,测试正常,不行完了放开
 
         // 无商业险时设置商业险标志为"0"
         if (CollectionUtils.isEmpty(commonQuoteVo.getKindInfoVo())) {
@@ -969,6 +971,9 @@ public class TKSimpleService {
         );
         other.setFromID(fromId);
         other.setChannelCode("OffWeb");
+        other.setMessageBZ("");
+        other.setMessageCI("");
+        other.setPriceDifferFlag("0");
 
         // 获取时间参数对象(保司系统已初始化,无需创建)
         TKDateInfo date = preciseInitParam.getDate();
@@ -1037,7 +1042,7 @@ public class TKSimpleService {
                     TKCiKindsVo tkCiKindVo = tkCiKindsVoMap.get(commonBiKindInfoVo.getKindCode());
                     tkCiKindVo.setIsSelect("1");
                     tkCiKindVo.setQuoteAmount(commonBiKindInfoVo.getAmount());
-                    tkCiKindVo.setQuoteAmountCN(commonBiKindInfoVo.getAmount());
+                    tkCiKindVo.setQuoteAmountCN(ConvertUtil.simpleConvert(commonBiKindInfoVo.getAmount()));
 
                     if (StringUtils.isNotBlank(commonBiKindInfoVo.getUnitAmount())) {
                         tkCiKindVo.setUnitAmount(new BigDecimal(commonBiKindInfoVo.getUnitAmount()));
@@ -1133,7 +1138,7 @@ public class TKSimpleService {
         // ========== 8. 调用报价接口 ==========
 
         // 设置请求参数
-        preciseInitParam.setChannelCode("OffWeb");
+        // preciseInitParam.setChannelCode("OffWeb");// 这个值第二次请求不需要,并且多了版本号orderVersion:"2"
         preciseInitParam.setInitFlag("quote");
         preciseInitParam.setTplatformId(tplatformId);
         preciseInitParam.setTplatLoginKey(tplatLoginKey);

+ 6 - 2
tenant/insurance/quotation-taishan/src/main/java/com/jzg/quotation/taishan/crawler/component/TaiShanCrawlerRequestComponent.java

@@ -314,9 +314,13 @@ public class TaiShanCrawlerRequestComponent {
     public TaiShanCrawlerQuotationResponse quotation(TaiShanCrawlerQuotationRequest request, HttpHeaders headers, int repeatNumber) {
         TaiShanCrawlerQuotationResponse response = post(RequestUrl.PRICE, request, TaiShanCrawlerQuotationResponse.class, headers);
 
+        if (response.getResult() == null) {
+            throw new SystemException(response.getMessage() != null ? response.getMessage() : "报价接口返回异常,result为空");
+        }
+
         TaiShanCrawlerQuotationResponse.ResultDTO.ExceptionDTO exception = response.getResult().getException();
-        String errorMessage = response.getResult() != null ? exception.getMsg() : response.getMessage();
-        ResultEnum.verify(exception.getCode(), errorMessage);
+        String errorMessage = exception != null ? exception.getMsg() : response.getMessage();
+        ResultEnum.verify(exception != null ? exception.getCode() : null, errorMessage);
 
         // 通过状态码获取处理器处理
         ResponseMessageAbstractHandler responseMessageAbstractHandler =

+ 34 - 9
tenant/insurance/quotation-taishan/src/main/java/com/jzg/quotation/taishan/crawler/service/impl/TaiShanCrawlerRequestImpl.java

@@ -113,6 +113,9 @@ public class TaiShanCrawlerRequestImpl implements TaiShanCrawlerRequest {
         // 2.2 计算折旧价格 获取车辆实际价值
         TaiShanCrawlerGetActualValueRequest taiShanCrawlerGetActualValueRequest = new TaiShanCrawlerGetActualValueRequest(quoteVo,modelsDTO);
         TaiShanCrawlerGetActualValueResponse taiShanCrawlerGetActualValueResponse = taiShanCrawlerRequestComponent.getActualValue(taiShanCrawlerGetActualValueRequest, headers);
+        if (taiShanCrawlerGetActualValueResponse.getResult() == null) {
+            throw new SystemException("获取车辆实际价值失败:" + taiShanCrawlerGetActualValueResponse.getMessage());
+        }
         String currentValue = taiShanCrawlerGetActualValueResponse.getResult().getActualValue();
         log.info("车辆当前价值:{}", currentValue);
 
@@ -135,12 +138,22 @@ public class TaiShanCrawlerRequestImpl implements TaiShanCrawlerRequest {
         log.info("taiShanCrawlerQuotationRequest参数的值:{}", JSON.toJSONString(taiShanCrawlerQuotationRequest));
         TaiShanCrawlerQuotationResponse taiShanCrawlerQuotationResponse = taiShanCrawlerRequestComponent.quotation(taiShanCrawlerQuotationRequest, headers,CIRCULATE_NUMBER);
         log.info("taiShanCrawlerQuotationResponse参数的值:{}", JSON.toJSONString(taiShanCrawlerQuotationResponse));
-        TaiShanCrawlerQuotationResponse.ResultDTO.ExceptionDTO exception = taiShanCrawlerQuotationResponse.getResult().getException();
         String errMsg = null;
         TaiShanCrawlerQuotationSaveResponse taiShanCrawlerQuotationSaveResponse = null;
         TaiShanCrawlerRiskManagementResponse taiShanCrawlerRiskManagementResponse = null;
         boolean success = false;
-        if (exception.getCode().equals("H1")){
+
+        if (taiShanCrawlerQuotationResponse.getResult() == null) {
+            errMsg = taiShanCrawlerQuotationResponse.getMessage();
+            throw new SystemException(errMsg != null ? errMsg : "报价接口返回异常,result为空");
+        }
+
+        TaiShanCrawlerQuotationResponse.ResultDTO.ExceptionDTO exception = taiShanCrawlerQuotationResponse.getResult().getException();
+        if (exception == null || exception.getCode() == null) {
+            throw new SystemException("报价接口返回异常:缺少异常信息");
+        }
+
+        if ("H1".equals(exception.getCode())){
             String colorCode = quoteVo.getCarInfoVo().getColorCode();
             if(org.apache.commons.lang3.StringUtils.isBlank(colorCode)){
                 taiShanCrawlerQuotationRequest.getVehicleInfo().setCarColor("01");
@@ -166,9 +179,13 @@ public class TaiShanCrawlerRequestImpl implements TaiShanCrawlerRequest {
                         // 重新报价
                         taiShanCrawlerQuotationResponse = taiShanCrawlerRequestComponent.quotation(taiShanCrawlerQuotationRequest, headers, CIRCULATE_NUMBER);
                         log.info("泰山报价重复投保后报价响应: {}", JSON.toJSONString(taiShanCrawlerQuotationResponse));
+                        if (taiShanCrawlerQuotationResponse.getResult() == null) {
+                            errMsg = taiShanCrawlerQuotationResponse.getMessage();
+                            throw new SystemException(errMsg != null ? errMsg : "重复投保后报价接口返回异常,result为空");
+                        }
                         exception = taiShanCrawlerQuotationResponse.getResult().getException();
-                        if (!exception.getCode().equals("H1")) {
-                            errMsg = exception.getMsg();
+                        if (exception == null || !"H1".equals(exception.getCode())) {
+                            errMsg = exception != null ? exception.getMsg() : "重复投保后报价失败";
                             return TaiShanCrawlerQuoteResultsVoBuild.buildQuoteResultsVo(quoteVo, null, null, errMsg, false);
                         }
                         // 更新报价信息
@@ -186,18 +203,22 @@ public class TaiShanCrawlerRequestImpl implements TaiShanCrawlerRequest {
             log.info("taiShanCrawlerQuotationSaveResponse参数的值:{}", JSON.toJSONString(taiShanCrawlerQuotationSaveResponse));
             if (taiShanCrawlerQuotationSaveResponse.getResult() != null) {
                 TaiShanCrawlerQuotationSaveResponse.Result.Exception saveException = taiShanCrawlerQuotationSaveResponse.getResult().getException();
-                if (saveException.getCode().equals("H1")){
+                if (saveException != null && "H1".equals(saveException.getCode())){
                     TaiShanCrawlerOrder taiShanCrawlerOrder = new TaiShanCrawlerOrder();
                     taiShanCrawlerOrder.setOrdersNo(quoteVo.getOrder().getOrdersNo());
                     taiShanCrawlerOrderService.save(taiShanCrawlerQuotationSaveResponse, taiShanCrawlerOrder);
                     success = true;
 
                     //风险管控
-                    String proposalNo = taiShanCrawlerQuotationSaveResponse.getResult().getCompulsoryInsurance().getProductInfo().getProposalNo();
+                    TaiShanCrawlerQuotationSaveResponse.Result.CompulsoryInsurance compulsoryIns = taiShanCrawlerQuotationSaveResponse.getResult().getCompulsoryInsurance();
+                    if (compulsoryIns == null || compulsoryIns.getProductInfo() == null) {
+                        throw new SystemException("保存报价成功但获取交强险产品信息失败");
+                    }
+                    String proposalNo = compulsoryIns.getProductInfo().getProposalNo();
                     TaiShanCrawlerRiskManagementRequest taiShanCrawlerRiskManagementRequest = new TaiShanCrawlerRiskManagementRequest(proposalNo);
                     taiShanCrawlerRiskManagementResponse = taiShanCrawlerRequestComponent.getRiskManagement(taiShanCrawlerRiskManagementRequest, headers);
                 }else{
-                    errMsg = saveException.getMsg();
+                    errMsg = saveException != null ? saveException.getMsg() : taiShanCrawlerQuotationSaveResponse.getMessage();
                     throw new SystemException(errMsg);
                 }
             }else {
@@ -205,7 +226,7 @@ public class TaiShanCrawlerRequestImpl implements TaiShanCrawlerRequest {
                 throw new SystemException(errMsg);
             }
         }else{
-            errMsg = taiShanCrawlerQuotationResponse.getResult() != null ? exception.getMsg() : taiShanCrawlerQuotationResponse.getMessage();
+            errMsg = exception != null ? exception.getMsg() : taiShanCrawlerQuotationSaveResponse.getMessage();
             throw new SystemException(errMsg);
         }
         return TaiShanCrawlerQuoteResultsVoBuild.buildQuoteResultsVo(quoteVo,
@@ -640,7 +661,11 @@ public class TaiShanCrawlerRequestImpl implements TaiShanCrawlerRequest {
         log.info("taiShanCrawlerOrderQueryResponse对象的值:{}", JSON.toJSONString(taiShanCrawlerOrderQueryResponse));
         OrderStatusResultVo orderStatusResultVo = new OrderStatusResultVo();
         if ("200".equals(taiShanCrawlerOrderQueryResponse.getCode())) {
-            //获取订单状态
+            if (taiShanCrawlerOrderQueryResponse.getResult() == null
+                    || taiShanCrawlerOrderQueryResponse.getResult().getList() == null
+                    || taiShanCrawlerOrderQueryResponse.getResult().getList().isEmpty()) {
+                return orderStatusResultVo;
+            }
             String orderStatus = taiShanCrawlerOrderQueryResponse.getResult().getList().get(0).getStatus();
             //将保司返回的订单状态转换为系统定义的订单状态枚举类型
             InsOrderStatusEnum orderStatusEnum = null;