jinshihui 11 months ago
parent
commit
7cdb0c72cb
27 changed files with 2027 additions and 2788 deletions
  1. 0 2
      commons/src/main/java/com/jzg/commons/entity/quote/vo/QuoteVo.java
  2. 11 42
      tenant/insurance/quotation-commons/src/main/java/com/jzg/quotation/commons/component/RequestComponent.java
  3. 0 1
      tenant/insurance/quotation-zijin/src/main/java/com/jzg/quotation/zijin/crawler/component/ZiJinBuildingAttributionInformation.java
  4. 14 14
      tenant/insurance/quotation-zijin/src/main/java/com/jzg/quotation/zijin/crawler/component/ZiJinCrawlerCacheComponent.java
  5. 104 186
      tenant/insurance/quotation-zijin/src/main/java/com/jzg/quotation/zijin/crawler/component/ZiJinCrawlerRequestComponent.java
  6. 3 20
      tenant/insurance/quotation-zijin/src/main/java/com/jzg/quotation/zijin/crawler/entity/ZiJinCrawlerConfigureParameters.java
  7. 18 0
      tenant/insurance/quotation-zijin/src/main/java/com/jzg/quotation/zijin/crawler/entity/ZiJinCrawlerTokenInfo.java
  8. 3 4
      tenant/insurance/quotation-zijin/src/main/java/com/jzg/quotation/zijin/crawler/entity/request/ZiJinCrawlerBaseRequest.java
  9. 11 224
      tenant/insurance/quotation-zijin/src/main/java/com/jzg/quotation/zijin/crawler/entity/request/ZiJinCrawlerCarRequest.java
  10. 0 50
      tenant/insurance/quotation-zijin/src/main/java/com/jzg/quotation/zijin/crawler/entity/request/ZiJinCrawlerChannelPackagesRequest.java
  11. 7 7
      tenant/insurance/quotation-zijin/src/main/java/com/jzg/quotation/zijin/crawler/entity/request/ZiJinCrawlerCheckTokenRequest.java
  12. 73 0
      tenant/insurance/quotation-zijin/src/main/java/com/jzg/quotation/zijin/crawler/entity/request/ZiJinCrawlerGetCarActualValueRequest.java
  13. 97 0
      tenant/insurance/quotation-zijin/src/main/java/com/jzg/quotation/zijin/crawler/entity/request/ZiJinCrawlerGetOrderNoRequest.java
  14. 891 41
      tenant/insurance/quotation-zijin/src/main/java/com/jzg/quotation/zijin/crawler/entity/request/ZiJinCrawlerQuotationRequest.java
  15. 0 762
      tenant/insurance/quotation-zijin/src/main/java/com/jzg/quotation/zijin/crawler/entity/request/ZiJinCrawlerQuotationRequest2.java
  16. 1 1
      tenant/insurance/quotation-zijin/src/main/java/com/jzg/quotation/zijin/crawler/entity/request/quote/ProposalInfoDTO.java
  17. 7 9
      tenant/insurance/quotation-zijin/src/main/java/com/jzg/quotation/zijin/crawler/entity/request/quote/VehicleInfoDTO.java
  18. 147 448
      tenant/insurance/quotation-zijin/src/main/java/com/jzg/quotation/zijin/crawler/entity/response/ZiJinCrawlerCarResponse.java
  19. 0 402
      tenant/insurance/quotation-zijin/src/main/java/com/jzg/quotation/zijin/crawler/entity/response/ZiJinCrawlerCarResponse1.java
  20. 8 17
      tenant/insurance/quotation-zijin/src/main/java/com/jzg/quotation/zijin/crawler/entity/response/ZiJinCrawlerCheckTokenResponse.java
  21. 43 0
      tenant/insurance/quotation-zijin/src/main/java/com/jzg/quotation/zijin/crawler/entity/response/ZiJinCrawlerGetCarActualValueResponse.java
  22. 450 0
      tenant/insurance/quotation-zijin/src/main/java/com/jzg/quotation/zijin/crawler/entity/response/ZiJinCrawlerGetOrderNoResponse.java
  23. 6 7
      tenant/insurance/quotation-zijin/src/main/java/com/jzg/quotation/zijin/crawler/enums/RequestUrl.java
  24. 12 0
      tenant/insurance/quotation-zijin/src/main/java/com/jzg/quotation/zijin/crawler/service/ZiJinCrawlerRequest.java
  25. 25 45
      tenant/insurance/quotation-zijin/src/main/java/com/jzg/quotation/zijin/crawler/service/impl/ZiJinCrawlerQuoteProcessServiceImpl.java
  26. 93 505
      tenant/insurance/quotation-zijin/src/main/java/com/jzg/quotation/zijin/crawler/service/impl/ZiJinCrawlerRequestImpl.java
  27. 3 1
      tenant/insurance/quotation-zijin/src/main/java/com/jzg/quotation/zijin/crawler/util/RS6Item.java

+ 0 - 2
commons/src/main/java/com/jzg/commons/entity/quote/vo/QuoteVo.java

@@ -19,8 +19,6 @@ import java.io.Serializable;
 import java.time.format.DateTimeFormatter;
 import java.time.format.DateTimeFormatter;
 import java.util.List;
 import java.util.List;
 import java.util.Objects;
 import java.util.Objects;
-
-
 @AllArgsConstructor
 @AllArgsConstructor
 @NoArgsConstructor
 @NoArgsConstructor
 @Data
 @Data

+ 11 - 42
tenant/insurance/quotation-commons/src/main/java/com/jzg/quotation/commons/component/RequestComponent.java

@@ -1,4 +1,5 @@
 package com.jzg.quotation.commons.component;
 package com.jzg.quotation.commons.component;
+
 import com.alibaba.fastjson2.JSON;
 import com.alibaba.fastjson2.JSON;
 import com.jzg.commons.exception.SystemException;
 import com.jzg.commons.exception.SystemException;
 import com.jzg.quotation.commons.config.WebClientConfig;
 import com.jzg.quotation.commons.config.WebClientConfig;
@@ -260,7 +261,8 @@ public class RequestComponent {
     }
     }
 
 
     /**
     /**
-     * 构造post请求 返回的content-type:application/json;charset=UTF-8
+     * 构造post请求
+     *
      * @param url           请求地址
      * @param url           请求地址
      * @param body          请求体
      * @param body          请求体
      * @param responseClass 响应类
      * @param responseClass 响应类
@@ -269,12 +271,8 @@ public class RequestComponent {
      * @return <Response> ResponseEntity<Response> 响应
      * @return <Response> ResponseEntity<Response> 响应
      */
      */
     public <Response> ResponseEntity<Response> post(String url, String body, Class<Response> responseClass, HttpHeaders headers) {
     public <Response> ResponseEntity<Response> post(String url, String body, Class<Response> responseClass, HttpHeaders headers) {
-        if (log.isDebugEnabled()) {
-            log.debug("request body is {}", body);
-        }
         body = Optional.ofNullable(body).orElse("");
         body = Optional.ofNullable(body).orElse("");
         log.info("URL的值:{},body的值:{}", url, body);
         log.info("URL的值:{},body的值:{}", url, body);
-
         WebClient webClient = selectNoSSLWebClient();
         WebClient webClient = selectNoSSLWebClient();
         try {
         try {
             return webClient.post()
             return webClient.post()
@@ -289,21 +287,19 @@ public class RequestComponent {
                     .block();
                     .block();
         } catch (WebClientResponseException e) {
         } catch (WebClientResponseException e) {
             e.printStackTrace();
             e.printStackTrace();
-            // 如果服务端返回非2xx状态码
-            System.err.println("状态码: " + e.getRawStatusCode());
-            System.err.println("响应体: " + e.getResponseBodyAsString());
             throw e;
             throw e;
         }
         }
     }
     }
 
 
     /**
     /**
-     * 构造post请求,返回的content-type:text/json;charset=UTF-8
+     * 构造post请求
+     *
      * @param url
      * @param url
      * @param body
      * @param body
      * @param responseClass
      * @param responseClass
      * @param headers
      * @param headers
      * @param <Response>    响应实体
      * @param <Response>    响应实体
-     * @return <Response> ResponseEntity<Response> 响应
+     * @return <Response> ResponseEntity<Response>
      */
      */
     public <Response> ResponseEntity<Response> post(String url, Object body, Class<Response> responseClass, HttpHeaders headers) {
     public <Response> ResponseEntity<Response> post(String url, Object body, Class<Response> responseClass, HttpHeaders headers) {
         body = Optional.ofNullable(body).orElse("");
         body = Optional.ofNullable(body).orElse("");
@@ -313,9 +309,6 @@ public class RequestComponent {
             return webClient.post()
             return webClient.post()
                     .uri(url)
                     .uri(url)
                     .headers(setHeaders(headers))
                     .headers(setHeaders(headers))
-                    .header(HttpHeaders.ACCEPT, "application/json,text/html,text/json,*/*")
-                    .header(HttpHeaders.ACCEPT_LANGUAGE, "zh-CN,zh;q=0.9")
-                    .header(HttpHeaders.CACHE_CONTROL, "no-cache")
                     .body(BodyInserters.fromValue(body))
                     .body(BodyInserters.fromValue(body))
                     .retrieve()
                     .retrieve()
                     .toEntity(responseClass)
                     .toEntity(responseClass)
@@ -328,6 +321,7 @@ public class RequestComponent {
 
 
     /**
     /**
      * 发送post请求,返回的content-type:text/json;charset=UTF-8
      * 发送post请求,返回的content-type:text/json;charset=UTF-8
+     *
      * @param url           请求地址
      * @param url           请求地址
      * @param body          请求体
      * @param body          请求体
      * @param responseClass 响应类
      * @param responseClass 响应类
@@ -356,33 +350,6 @@ public class RequestComponent {
         }
         }
     }
     }
 
 
-    /**
-     * 构造post请求
-     * @param url
-     * @param body
-     * @param responseClass
-     * @param headers
-     * @param <Response>    响应实体
-     * @return <Response> ResponseEntity<Response> 响应
-     */
-    public <Response> ResponseEntity<Response> post3(String url, Object body, Class<Response> responseClass, HttpHeaders headers) {
-        body = Optional.ofNullable(body).orElse("");
-        log.info("URL的值:{},body的值:{}", url, body);
-        WebClient webClient = selectNoSSLWebClient2();
-        try {
-            return webClient.post()
-                    .uri(url)
-                    .headers(setHeaders(headers))
-                    .body(BodyInserters.fromValue(body))
-                    .retrieve()
-                    .toEntity(responseClass)
-                    .block();
-        } catch (WebClientResponseException e) {
-            e.printStackTrace();
-            throw e;
-        }
-    }
-
     /**
     /**
      * gbk
      * gbk
      *
      *
@@ -452,6 +419,7 @@ public class RequestComponent {
 
 
     /**
     /**
      * 构造post请求
      * 构造post请求
+     *
      * @param url           请求地址
      * @param url           请求地址
      * @param body          请求体
      * @param body          请求体
      * @param responseClass 响应类
      * @param responseClass 响应类
@@ -466,6 +434,7 @@ public class RequestComponent {
 
 
     /**
     /**
      * 构造post请求
      * 构造post请求
+     *
      * @param url           请求地址
      * @param url           请求地址
      * @param body          请求体
      * @param body          请求体
      * @param responseClass 响应类
      * @param responseClass 响应类
@@ -474,7 +443,7 @@ public class RequestComponent {
      * @return <Response> ResponseEntity<Response> 响应
      * @return <Response> ResponseEntity<Response> 响应
      */
      */
     public <Response> ResponseEntity<Response> stringPost2(String url, Object body, Class<Response> responseClass, HttpHeaders headers) {
     public <Response> ResponseEntity<Response> stringPost2(String url, Object body, Class<Response> responseClass, HttpHeaders headers) {
-        return post3(url, body, responseClass, headers);
+        return post(url, body, responseClass, headers);
     }
     }
 
 
     /**
     /**
@@ -719,7 +688,7 @@ public class RequestComponent {
      * @return 响应
      * @return 响应
      */
      */
     public <Response> ResponseEntity<Response> objectPostForUpload(String url, Object body, Class<Response> responseClass, HttpHeaders headers) {
     public <Response> ResponseEntity<Response> objectPostForUpload(String url, Object body, Class<Response> responseClass, HttpHeaders headers) {
-        return post3(url, body, responseClass, headers);
+        return post(url, body, responseClass, headers);
     }
     }
 
 
 
 

+ 0 - 1
tenant/insurance/quotation-zijin/src/main/java/com/jzg/quotation/zijin/crawler/component/ZiJinBuildingAttributionInformation.java

@@ -1,7 +1,6 @@
 package com.jzg.quotation.zijin.crawler.component;
 package com.jzg.quotation.zijin.crawler.component;
 
 
 import com.jzg.quotation.zijin.crawler.entity.ZiJinCrawlerConfigureParameters;
 import com.jzg.quotation.zijin.crawler.entity.ZiJinCrawlerConfigureParameters;
-import com.jzg.quotation.zijin.crawler.entity.request.ZiJinCrawlerChannelPackagesRequest;
 import com.jzg.quotation.zijin.crawler.entity.request.ZiJinCrawlerCompaniesRequest;
 import com.jzg.quotation.zijin.crawler.entity.request.ZiJinCrawlerCompaniesRequest;
 import com.jzg.quotation.zijin.crawler.entity.request.quote.ProposalInfoDTO;
 import com.jzg.quotation.zijin.crawler.entity.request.quote.ProposalInfoDTO;
 import com.jzg.quotation.zijin.crawler.entity.response.ZiJinCrawlerChannelPackagesResponse;
 import com.jzg.quotation.zijin.crawler.entity.response.ZiJinCrawlerChannelPackagesResponse;

+ 14 - 14
tenant/insurance/quotation-zijin/src/main/java/com/jzg/quotation/zijin/crawler/component/ZiJinCrawlerCacheComponent.java

@@ -27,15 +27,15 @@ public class ZiJinCrawlerCacheComponent {
 
 
     private final RedissonClient redissonClient;
     private final RedissonClient redissonClient;
 
 
-    public static final String BOHAI_SAVE = "bohai:save:";
+    public static final String ZIJIN_SAVE = "bohai:save:";
 
 
-    public static final Duration BOHAI_SAVE_TIME = Duration.ofHours(3L);
+    public static final Duration ZIJIN_SAVE_TIME = Duration.ofHours(3L);
 
 
-    // 渤海财险授权
-    public static final String BOHAI_AUTHORIZATION = "bohai:authorization:";
+    // 紫金财险授权
+    public static final String ZIJIN_AUTHORIZATION = "zijin:authorization:";
 
 
     //渤海财险授权保存时间
     //渤海财险授权保存时间
-    public static final int BOHAI_AUTHORIZATION_TIME = 6;
+    public static final int ZIJIN_AUTHORIZATION_TIME = 6;
 
 
     public static final String BEARER = "Bearer ";
     public static final String BEARER = "Bearer ";
 
 
@@ -52,12 +52,12 @@ public class ZiJinCrawlerCacheComponent {
      */
      */
     public String cacheAuthorization(String token, String userCode, String userName) {
     public String cacheAuthorization(String token, String userCode, String userName) {
         Map<String, String> authorizationMap = new HashMap<>();
         Map<String, String> authorizationMap = new HashMap<>();
-        String authorization = BEARER + token;
+        String authorization = token;
         authorizationMap.put(AUTHORIZATION, authorization);
         authorizationMap.put(AUTHORIZATION, authorization);
         authorizationMap.put(USER_CODE, userCode);
         authorizationMap.put(USER_CODE, userCode);
-        RMap<Object, Object> map = redissonClient.getMap(BOHAI_AUTHORIZATION + userName);
+        RMap<Object, Object> map = redissonClient.getMap(ZIJIN_AUTHORIZATION + userName);
         map.putAll(authorizationMap);
         map.putAll(authorizationMap);
-        map.expire(Duration.ofHours(BOHAI_AUTHORIZATION_TIME));
+        map.expire(Duration.ofHours(ZIJIN_AUTHORIZATION_TIME));
         return authorization;
         return authorization;
     }
     }
 
 
@@ -69,8 +69,8 @@ public class ZiJinCrawlerCacheComponent {
      */
      */
     public void cacheDaJiaCrawlerSaveResponse(ZiJinCrawlerSaveResponse daJiaCrawlerSaveResponse, String ordersNo) {
     public void cacheDaJiaCrawlerSaveResponse(ZiJinCrawlerSaveResponse daJiaCrawlerSaveResponse, String ordersNo) {
         String response = JSONObject.toJSONString(daJiaCrawlerSaveResponse);
         String response = JSONObject.toJSONString(daJiaCrawlerSaveResponse);
-        RBucket<String> bucket = redissonClient.getBucket(BOHAI_SAVE + ordersNo);
-        bucket.set(response, BOHAI_SAVE_TIME);
+        RBucket<String> bucket = redissonClient.getBucket(ZIJIN_SAVE + ordersNo);
+        bucket.set(response, ZIJIN_SAVE_TIME);
     }
     }
 
 
     /**
     /**
@@ -80,7 +80,7 @@ public class ZiJinCrawlerCacheComponent {
      * @return ZiJinCrawlerSaveResponse
      * @return ZiJinCrawlerSaveResponse
      */
      */
     public ZiJinCrawlerSaveResponse getDaJiaCrawlerSaveResponse(String ordersNo) {
     public ZiJinCrawlerSaveResponse getDaJiaCrawlerSaveResponse(String ordersNo) {
-        RBucket<String> bucket = redissonClient.getBucket(BOHAI_SAVE + ordersNo);
+        RBucket<String> bucket = redissonClient.getBucket(ZIJIN_SAVE + ordersNo);
         return JSON.parseObject(bucket.get(), ZiJinCrawlerSaveResponse.class);
         return JSON.parseObject(bucket.get(), ZiJinCrawlerSaveResponse.class);
     }
     }
 
 
@@ -91,17 +91,17 @@ public class ZiJinCrawlerCacheComponent {
      * @return userCode
      * @return userCode
      */
      */
     public String getUserCode(String username) {
     public String getUserCode(String username) {
-        return (String) redissonClient.getMap(BOHAI_AUTHORIZATION + username).get(USER_CODE);
+        return (String) redissonClient.getMap(ZIJIN_AUTHORIZATION + username).get(USER_CODE);
     }
     }
 
 
     /**
     /**
      * 获取授权信息
      * 获取授权信息
      *
      *
      * @param username 用户名
      * @param username 用户名
-     * @return 授权token
+     * @return String 授权token
      */
      */
     public String getAuthorization(String username) {
     public String getAuthorization(String username) {
-        return (String) redissonClient.getMap(BOHAI_AUTHORIZATION + username).get(AUTHORIZATION);
+        return (String) redissonClient.getMap(ZIJIN_AUTHORIZATION + username).get(AUTHORIZATION);
     }
     }
 
 
 }
 }

+ 104 - 186
tenant/insurance/quotation-zijin/src/main/java/com/jzg/quotation/zijin/crawler/component/ZiJinCrawlerRequestComponent.java

@@ -6,7 +6,6 @@ import com.fasterxml.jackson.databind.ObjectMapper;
 import com.google.zxing.NotFoundException;
 import com.google.zxing.NotFoundException;
 import com.jzg.commons.entity.quote.vo.image.InsuranceImageVo;
 import com.jzg.commons.entity.quote.vo.image.InsuranceImageVo;
 import com.jzg.commons.exception.SystemException;
 import com.jzg.commons.exception.SystemException;
-import com.jzg.commons.util.AssertionUtils;
 import com.jzg.quotation.zijin.crawler.enums.RequestUrl;
 import com.jzg.quotation.zijin.crawler.enums.RequestUrl;
 import com.jzg.quotation.zijin.crawler.entity.request.*;
 import com.jzg.quotation.zijin.crawler.entity.request.*;
 import com.jzg.quotation.zijin.crawler.entity.response.*;
 import com.jzg.quotation.zijin.crawler.entity.response.*;
@@ -14,10 +13,10 @@ import com.jzg.quotation.zijin.crawler.properties.ZiJinCrawlerProperties;
 import com.jzg.quotation.zijin.crawler.util.*;
 import com.jzg.quotation.zijin.crawler.util.*;
 import com.jzg.quotation.commons.component.RequestComponent;
 import com.jzg.quotation.commons.component.RequestComponent;
 import com.jzg.quotation.commons.service.ExteriorUtilsRequest;
 import com.jzg.quotation.commons.service.ExteriorUtilsRequest;
-import com.jzg.quotation.commons.standard.CrawlerRequestUrlStandard;
 import com.jzg.quotation.commons.utils.RequestObjectConversion;
 import com.jzg.quotation.commons.utils.RequestObjectConversion;
 import lombok.RequiredArgsConstructor;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import lombok.extern.slf4j.Slf4j;
+import org.jetbrains.annotations.NotNull;
 import org.springframework.core.io.ByteArrayResource;
 import org.springframework.core.io.ByteArrayResource;
 import org.springframework.http.HttpHeaders;
 import org.springframework.http.HttpHeaders;
 import org.springframework.http.MediaType;
 import org.springframework.http.MediaType;
@@ -40,11 +39,11 @@ import java.util.*;
 @RequiredArgsConstructor
 @RequiredArgsConstructor
 public class ZiJinCrawlerRequestComponent {
 public class ZiJinCrawlerRequestComponent {
 
 
-    private static final String TOKEN = "114050281-9605ec6831302f4d5e37ea64b3c15370";
-
     // 循环次数
     // 循环次数
     public static final int CIRCULATE_NUMBER = 3;
     public static final int CIRCULATE_NUMBER = 3;
 
 
+    private final ZiJinCrawlerRequestComponent  ziJinCrawlerRequestComponent;
+
     private final RequestComponent requestComponent;
     private final RequestComponent requestComponent;
 
 
     private final ExteriorUtilsRequest exteriorUtilsRequest;
     private final ExteriorUtilsRequest exteriorUtilsRequest;
@@ -61,22 +60,16 @@ public class ZiJinCrawlerRequestComponent {
         ZiJinCrawlerCaptchaResponse ziJinCrawlerCaptchaResponse = null;
         ZiJinCrawlerCaptchaResponse ziJinCrawlerCaptchaResponse = null;
         try {
         try {
             if (frequency <= 0) {
             if (frequency <= 0) {
-                throw new SystemException("验证码异常");
+                throw new SystemException("验证码请求频次异常");
             }
             }
 
 
-            HttpHeaders headers = new HttpHeaders();
-            headers.setContentType(MediaType.APPLICATION_JSON);
-            //获取cookie的值
-            String cookie = getCookie();
-            headers.set("Cookie", cookie);
-
-            MultiValueMap<String, String> map = new LinkedMultiValueMap<>();
-            map.add("expirationType", "H5");
+            HttpHeaders headers = setHttpHeaders();
 
 
-            Map<String, Object> requestBody = new HashMap<>();
+            Map<String, String> requestBody = new HashMap<>();
             requestBody.put("expirationType", "H5");
             requestBody.put("expirationType", "H5");
+            String requestUrl = RequestUrl.CAPTCHA.getRequestUrl(ziJinCrawlerProperties.getBaseUrl()) + "?expirationType=H5";
             // 请求
             // 请求
-            ResponseEntity<ZiJinCrawlerCaptchaResponse> responseEntity = requestComponent.post(RequestUrl.CAPTCHA.getRequestUrl(ziJinCrawlerProperties.getBaseUrl()), requestBody, ZiJinCrawlerCaptchaResponse.class, headers);
+            ResponseEntity<ZiJinCrawlerCaptchaResponse> responseEntity = requestComponent.post(requestUrl, requestBody, ZiJinCrawlerCaptchaResponse.class, headers);
             ziJinCrawlerCaptchaResponse = responseEntity.getBody();
             ziJinCrawlerCaptchaResponse = responseEntity.getBody();
             log.info("获取验证码接口响应内容:{}", JSON.toJSONString(ziJinCrawlerCaptchaResponse));
             log.info("获取验证码接口响应内容:{}", JSON.toJSONString(ziJinCrawlerCaptchaResponse));
             String captchaImg = ziJinCrawlerCaptchaResponse.getCaptchaImg();
             String captchaImg = ziJinCrawlerCaptchaResponse.getCaptchaImg();
@@ -94,6 +87,7 @@ public class ZiJinCrawlerRequestComponent {
 
 
 
 
 
 
+
     /**
     /**
      *校验验证码
      *校验验证码
      *
      *
@@ -101,13 +95,27 @@ public class ZiJinCrawlerRequestComponent {
      * @return ZiJinCrawlerCheckCaptchaResponse
      * @return ZiJinCrawlerCheckCaptchaResponse
      */
      */
     public ZiJinCrawlerCheckCaptchaResponse checkCaptchaAndGetToken(ZiJinCrawlerCheckCaptchaRequest ziJinCrawlerCheckCaptchaRequest) throws IOException {
     public ZiJinCrawlerCheckCaptchaResponse checkCaptchaAndGetToken(ZiJinCrawlerCheckCaptchaRequest ziJinCrawlerCheckCaptchaRequest) throws IOException {
-        HttpHeaders headers = new HttpHeaders();
-        headers.setContentType(MediaType.APPLICATION_JSON);
-        //获取cookie的值
-        String cookie = getCookie();
-        headers.set("Cookie", cookie);
+        log.info("ziJinCrawlerCheckCaptchaRequest请求参数的值:{}",JSON.toJSONString(ziJinCrawlerCheckCaptchaRequest));
 
 
-        ResponseEntity<ZiJinCrawlerCheckCaptchaResponse> responseEntity = requestComponent.post(RequestUrl.CHECKCAPTCHAANDGETTOKEN.getRequestUrl(ziJinCrawlerProperties.getBaseUrl()), ziJinCrawlerCheckCaptchaRequest, ZiJinCrawlerCheckCaptchaResponse.class, headers);
+        HttpHeaders httpHeaders = setHttpHeaders();
+        httpHeaders.setContentLength(289);
+        ResponseEntity<ZiJinCrawlerCheckCaptchaResponse> responseEntity = requestComponent.post(RequestUrl.CHECKCAPTCHAANDGETTOKEN.getRequestUrl(ziJinCrawlerProperties.getBaseUrl()), ziJinCrawlerCheckCaptchaRequest, ZiJinCrawlerCheckCaptchaResponse.class, httpHeaders);
+        return responseEntity.getBody();
+    }
+
+    /**
+     * 校验token
+     *
+     * @param ziJinCrawlerCheckTokenRequest
+     * @return ZiJinCrawlerCheckTokenResponse
+     */
+    public ZiJinCrawlerCheckTokenResponse checkToken(ZiJinCrawlerCheckTokenRequest ziJinCrawlerCheckTokenRequest) throws IOException {
+        log.info("ziJinCrawlerCheckTokenRequest请求参数的值:{}",JSON.toJSONString(ziJinCrawlerCheckTokenRequest));
+
+        HttpHeaders httpHeaders = setHttpHeaders();
+        //需要单独设置这个
+        httpHeaders.setContentLength(66);
+        ResponseEntity<ZiJinCrawlerCheckTokenResponse> responseEntity = requestComponent.post(RequestUrl.CHECK_TOKEN.getRequestUrl(ziJinCrawlerProperties.getBaseUrl()), ziJinCrawlerCheckTokenRequest, ZiJinCrawlerCheckTokenResponse.class, httpHeaders);
         return responseEntity.getBody();
         return responseEntity.getBody();
     }
     }
 
 
@@ -129,135 +137,6 @@ public class ZiJinCrawlerRequestComponent {
     }
     }
 
 
 
 
-
-    /**
-     * 创建token(查看token是否过期前一步)
-     *
-     * @param operatorCode
-     * @param headers      请求头
-     * @return
-     */
-    public String createToken(String operatorCode, HttpHeaders headers) {
-        String url = RequestUrl.CREATE_TOKEN.getRequestUrl("");
-        MultiValueMap<String, String> map = new LinkedMultiValueMap<>();
-        map.add("operatorCode", operatorCode);
-        ZiJinCrawlerBaseResponse daJiaCrawlerBaseResponse = requestComponent.get(url, map, "", ZiJinCrawlerBaseResponse.class, headers);
-        return DESEncryption.decrypt(daJiaCrawlerBaseResponse.getResult()).replace("\"", "");
-    }
-
-    /**
-     * 校验token(获取新的token)
-     *
-     * @param daJiaCrawlerCheckTokenRequest 校验token
-     * @param headers                       请求头
-     * @return 车型列表
-     */
-    public ZiJinCrawlerCheckTokenResponse checkToken(ZiJinCrawlerCheckTokenRequest boHaiCrawlerCheckTokenRequest, HttpHeaders headers) {
-        return executeRequest(RequestType.UNENCRYPTED, RequestUrl.CHECK_TOKEN, boHaiCrawlerCheckTokenRequest, ZiJinCrawlerCheckTokenResponse.class, headers);
-    }
-
-    /**
-     * 统一请求方法
-     *
-     * @param requestType   请求类型
-     * @param urlOrStandard URL或请求标准
-     * @param request       请求对象
-     * @param responseClass 响应类型
-     * @param headers       请求头
-     * @return ZiJinResponse 响应对象
-     */
-    public <ZiJinResponse> ZiJinResponse executeRequest(RequestType requestType, Object urlOrStandard, Object request, Class<ZiJinResponse> responseClass, HttpHeaders headers) {
-        try {
-            switch (requestType) {
-                // 请求参数加密
-                case ENCRYPTED:
-                    String jsonString = JSON.toJSONString(request);
-                    log.info("请求参数:{}", jsonString);
-                    // 请求参数加密
-                    // 参数加密
-                    String encrypt = DESUtil.des_encrypt(jsonString);
-                    log.info("请求参数加密:{}", encrypt);
-                    //生成md5值
-                    String md5Value = DESUtil.md5(encrypt + "c2lub3NvZnQuY2hhbm5lbC55ZHBpYw==");
-                    log.info("请求参数md5的值:{}", md5Value);
-                    ZiJinCrawlerEncryptionRequest boHaiCrawlerEncryptionRequest = new ZiJinCrawlerEncryptionRequest();
-                    boHaiCrawlerEncryptionRequest.setEncryptionData(encrypt);
-                    boHaiCrawlerEncryptionRequest.setMd5(md5Value);
-
-                    CrawlerRequestUrlStandard standard = (CrawlerRequestUrlStandard) urlOrStandard;
-                    ResponseEntity<String> encryptedResponse = requestComponent.objectPost2(
-                            standard.getRequestUrl(ziJinCrawlerProperties.getBaseUrl()),
-                            boHaiCrawlerEncryptionRequest,
-                            String.class,
-                            headers
-                    );
-
-                    String responseString = encryptedResponse.getBody();
-                    log.info("请求返回参数:{}", responseString);
-                    AssertionUtils.isEmpty(responseString, "请求异常请重试");
-                    // 参数解密
-                    String decrypt = DESUtil.des_decrypt(responseString);
-                    log.info("请求返回参数解密:{}", decrypt);
-                    return JSON.parseObject(decrypt, responseClass);
-                // 请求参数不加密
-                case UNENCRYPTED:
-                    CrawlerRequestUrlStandard unencryptedStandard = (CrawlerRequestUrlStandard) urlOrStandard;
-                    ResponseEntity<ZiJinResponse> unencryptedResponse = requestComponent.objectPost(
-                            unencryptedStandard.getRequestUrl(ziJinCrawlerProperties.getBaseUrl()),
-                            request,
-                            responseClass,
-                            headers
-                    );
-                    AssertionUtils.isEmpty(unencryptedResponse, "请求异常请重试");
-                    ZiJinResponse body = unencryptedResponse.getBody();
-                    if(body instanceof String){
-                        return body;
-                    }
-                    return JSON.parseObject(JSON.toJSONString(body), responseClass);
-                // 文件上传
-                case FILE_UPLOAD:
-                    String url = (String) urlOrStandard;
-                    ResponseEntity<String> uploadResponse = requestComponent.objectPostForUpload(
-                            url,
-                            request,
-                            String.class,
-                            headers
-                    );
-                    String result = uploadResponse.getBody();
-
-                    AssertionUtils.isEmpty(result, "请求异常请重试");
-                    // 参数解密
-                    String uploadDecrypt = DESUtil.des_decrypt(result);
-                    log.info("解密的值:{}", uploadDecrypt);
-                    return (ZiJinResponse) parseImageUploadResponse(uploadDecrypt);
-                default:
-                    throw new IllegalArgumentException("不支持的请求类型: " + requestType);
-            }
-        } catch (Exception e) {
-            e.printStackTrace();
-            throw new RuntimeException(e);
-        }
-    }
-
-    /**
-     * 请求类型枚举
-     */
-    public enum RequestType {
-        /**
-         * 请求参数加密
-         */
-        ENCRYPTED,
-        /**
-         * 请求参数不加密
-         */
-        UNENCRYPTED,
-        /**
-         * 文件上传
-         */
-        FILE_UPLOAD
-    }
-
-
     /**
     /**
      * 解析JSON字符串为ZiJinCrawlerImageUploadResponse
      * 解析JSON字符串为ZiJinCrawlerImageUploadResponse
      *
      *
@@ -288,27 +167,6 @@ public class ZiJinCrawlerRequestComponent {
         }
         }
     }
     }
 
 
-    /**
-     * 获取机构信息(目前这个没有用)
-     *
-     * @param request 获取机构信息 请求实体
-     * @param cDptCde 机构编码
-     * @param headers 请求头
-     * @return 唯一机构列表
-     */
-    public ZiJinCrawlerCompaniesResponse.ListDTO companies(ZiJinCrawlerCompaniesRequest request, String cDptCde, HttpHeaders headers) {
-        MultiValueMap<String, String> multiValueMap = RequestObjectConversion.convertMultiValueStringMap(request);
-        //ZiJinCrawlerBaseResponse response = requestComponent.get(RequestUrl.COMPANIES.getRequestUrl(boHaiCrawlerProperties.getBaseUrl()), multiValueMap, "", ZiJinCrawlerBaseResponse.class, headers);
-        ZiJinCrawlerBaseResponse response = requestComponent.get("", multiValueMap, "", ZiJinCrawlerBaseResponse.class, headers);
-        ZiJinCrawlerCompaniesResponse daJiaCrawlerCompaniesResponse = DESEncryption.decryptStrToObject(response.getResult(), ZiJinCrawlerCompaniesResponse.class);
-        return daJiaCrawlerCompaniesResponse.getList()
-                .stream()
-                .filter(x -> cDptCde.equals(x.getCDptCde()))
-                .findFirst()
-                .orElseThrow(() -> new SystemException(""));
-    }
-
-
     /**
     /**
      * 获取渠道信息
      * 获取渠道信息
      *
      *
@@ -343,25 +201,48 @@ public class ZiJinCrawlerRequestComponent {
     }
     }
 
 
     /**
     /**
-     * 车型查询
+     * 查询车辆信息
+     *
+     * @param ziJinCrawlerCarRequest
+     * @param headers
+     * @return ZiJinCrawlerCarResponse
+     */
+    public ZiJinCrawlerCarResponse car(ZiJinCrawlerCarRequest ziJinCrawlerCarRequest, HttpHeaders headers) throws IOException {
+        //设置headers
+        HttpHeaders httpHeaders = ziJinCrawlerRequestComponent.setHttpHeaders();
+        String jsonString = JSON.toJSONString(ziJinCrawlerCarRequest);
+        ResponseEntity<ZiJinCrawlerCarResponse> responseEntity = requestComponent.post(RequestUrl.CAR.getRequestUrl(ziJinCrawlerProperties.getBaseUrl()), jsonString, ZiJinCrawlerCarResponse.class, httpHeaders);
+        return responseEntity.getBody();
+    }
+
+    /**
+     * 获取订单号
      *
      *
-     * @param boHaiCrawlerCarRequest 车型查询请求体
-     * @param headers                请求头
-     * @return ZiJinCrawlerCarResponse 车型列表
+     * @param ziJinCrawlerGetOrderNoRequest
+     * @param headers
+     * @return ZiJinCrawlerCarResponse
      */
      */
-    public ZiJinCrawlerCarResponse car(ZiJinCrawlerCarRequest boHaiCrawlerCarRequest, HttpHeaders headers) {
-        return executeRequest(RequestType.ENCRYPTED, RequestUrl.CAR, boHaiCrawlerCarRequest, ZiJinCrawlerCarResponse.class, headers);
+    public ZiJinCrawlerGetOrderNoResponse getOrderNo(ZiJinCrawlerGetOrderNoRequest ziJinCrawlerGetOrderNoRequest, HttpHeaders headers) throws IOException {
+        //设置headers
+        HttpHeaders httpHeaders = ziJinCrawlerRequestComponent.setHttpHeaders();
+        String jsonString = JSON.toJSONString(ziJinCrawlerGetOrderNoRequest);
+        ResponseEntity<ZiJinCrawlerGetOrderNoResponse> responseEntity = requestComponent.post(RequestUrl.GET_ORDER_NUMBER.getRequestUrl(ziJinCrawlerProperties.getBaseUrl()), jsonString, ZiJinCrawlerGetOrderNoResponse.class, httpHeaders);
+        return responseEntity.getBody();
     }
     }
 
 
     /**
     /**
-     * 车辆确认
+     * 获取车辆实际价值
      *
      *
-     * @param request 车辆确认请求实体
+     * @param ziJinCrawlerGetCarActualValueRequest
      * @param headers
      * @param headers
-     * @return ZiJinCrawlerVehicleConfirmationResponse
+     * @return ZiJinCrawlerGetCarActualValueResponse
      */
      */
-    public ZiJinCrawlerVehicleConfirmationResponse2 vehicleConfirmation(ZiJinCrawlerVehicleConfirmationReqeust1 boHaiCrawlerVehicleConfirmationReqeust1, HttpHeaders headers) {
-        return executeRequest(RequestType.ENCRYPTED, RequestUrl.VEHICLECONFIRMATION, boHaiCrawlerVehicleConfirmationReqeust1, ZiJinCrawlerVehicleConfirmationResponse2.class, headers);
+    public ZiJinCrawlerGetCarActualValueResponse getCarActualValue(ZiJinCrawlerGetCarActualValueRequest ziJinCrawlerGetCarActualValueRequest, HttpHeaders headers) throws IOException {
+        //设置headers
+        HttpHeaders httpHeaders = ziJinCrawlerRequestComponent.setHttpHeaders();
+        String jsonString = JSON.toJSONString(ziJinCrawlerGetCarActualValueRequest);
+        ResponseEntity<ZiJinCrawlerGetCarActualValueResponse> responseEntity = requestComponent.post(RequestUrl.GET_ACTUAL_VALUE.getRequestUrl(ziJinCrawlerProperties.getBaseUrl()), jsonString, ZiJinCrawlerGetCarActualValueResponse.class, httpHeaders);
+        return responseEntity.getBody();
     }
     }
 
 
     /**
     /**
@@ -371,7 +252,7 @@ public class ZiJinCrawlerRequestComponent {
      * @param headers
      * @param headers
      * @return ZiJinCrawlerQuotationResponse
      * @return ZiJinCrawlerQuotationResponse
      */
      */
-    public ZiJinCrawlerQuotationResponse quotation(ZiJinCrawlerQuotationRequest2 boHaiCrawlerQuotationRequest2, HttpHeaders headers) {
+    public ZiJinCrawlerQuotationResponse quotation(ZiJinCrawlerQuotationRequest boHaiCrawlerQuotationRequest2, HttpHeaders headers) {
         return executeRequest(RequestType.ENCRYPTED, RequestUrl.PRICE, boHaiCrawlerQuotationRequest2, ZiJinCrawlerQuotationResponse.class, headers);
         return executeRequest(RequestType.ENCRYPTED, RequestUrl.PRICE, boHaiCrawlerQuotationRequest2, ZiJinCrawlerQuotationResponse.class, headers);
     }
     }
 
 
@@ -455,7 +336,7 @@ public class ZiJinCrawlerRequestComponent {
         ZiJinCrawlerImageUploadSubmitRequest submitRequest = new ZiJinCrawlerImageUploadSubmitRequest();
         ZiJinCrawlerImageUploadSubmitRequest submitRequest = new ZiJinCrawlerImageUploadSubmitRequest();
         // 设置请求头信息
         // 设置请求头信息
         ZiJinCrawlerImageUploadSubmitRequest.Head head = new ZiJinCrawlerImageUploadSubmitRequest.Head();
         ZiJinCrawlerImageUploadSubmitRequest.Head head = new ZiJinCrawlerImageUploadSubmitRequest.Head();
-        head.setToken(TOKEN);
+        head.setToken("");
         head.setTransType("Req");
         head.setTransType("Req");
         head.setTransCode("UploadImage");
         head.setTransCode("UploadImage");
         submitRequest.setHead(head);
         submitRequest.setHead(head);
@@ -655,7 +536,7 @@ public class ZiJinCrawlerRequestComponent {
         ZiJinCrawlerPaymentNoticeNoGenerationRequest.HeadDTO head = new ZiJinCrawlerPaymentNoticeNoGenerationRequest.HeadDTO();
         ZiJinCrawlerPaymentNoticeNoGenerationRequest.HeadDTO head = new ZiJinCrawlerPaymentNoticeNoGenerationRequest.HeadDTO();
         head.setTransCode("PaymentNoticeNoGeneration");
         head.setTransCode("PaymentNoticeNoGeneration");
         head.setTransType("Req");
         head.setTransType("Req");
-        head.setToken(TOKEN);
+        head.setToken("");
         boHaiCrawlerPaymentNoticeNoGenerationRequest.setHead(head);
         boHaiCrawlerPaymentNoticeNoGenerationRequest.setHead(head);
 
 
         // 设置授权结果
         // 设置授权结果
@@ -709,7 +590,7 @@ public class ZiJinCrawlerRequestComponent {
 
 
 
 
     /**
     /**
-     * 获取Cookie
+     * 获取Cookie的值
      * @return String
      * @return String
      * @throws IOException
      * @throws IOException
      */
      */
@@ -719,4 +600,41 @@ public class ZiJinCrawlerRequestComponent {
         Map<String, String> cookies = rs6Item.updateCookies();
         Map<String, String> cookies = rs6Item.updateCookies();
         return rs6Item.convertJsonCookieToSemicolonFormat(cookies.toString());
         return rs6Item.convertJsonCookieToSemicolonFormat(cookies.toString());
     }
     }
+
+    /**
+     * 设置HTTP请求头
+     * @return HttpHeaders
+     * @throws IOException
+     */
+    @NotNull
+    private static HttpHeaders setHttpHeaders() throws IOException {
+        HttpHeaders headers = new HttpHeaders();
+        headers.setContentType(MediaType.APPLICATION_JSON);
+        //获取cookie的值
+        String cookie = getCookie();
+        headers.set("Cookie", cookie);
+        // 设置请求头
+        headers.set("Accept", "application/json, text/plain, */*, application/problem+json");
+        headers.set("Accept-Encoding", "gzip, deflate, br, zstd");
+        headers.set("Accept-Language", "zh-CN,zh;q=0.9,en;q=0.8");
+        headers.set("Authorization", "1B0234C742C12BD632AA5027EB3A501A");
+        headers.set("Cache-Control", "no-cache");
+        headers.set("Connection", "keep-alive");
+        headers.set("Content-Length", "23");
+        headers.set("Host", "kscd.zking.com");
+        headers.set("Origin", "https://kscd.zking.com");
+        headers.set("Pragma", "no-cache");
+        headers.set("Referer", "https://kscd.zking.com/app/vehicle/proposal/commonlogin");
+        headers.set("Sec-Fetch-Dest", "empty");
+        headers.set("Sec-Fetch-Mode", "cors");
+        headers.set("Sec-Fetch-Site", "same-origin");
+        headers.set("Tokentype", "DEFULT");
+        headers.set("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.0.0 Safari/537.36");
+        headers.set("loginToken", "1B0234C742C12BD632AA5027EB3A501A");
+        headers.set("sec-ch-ua", "\"Google Chrome\";v=\"141\", \"Not?A_Brand\";v=\"8\", \"Chromium\";v=\"141\"");
+        headers.set("sec-ch-ua-mobile", "?0");
+        headers.set("sec-ch-ua-platform", "\"Windows\"");
+        headers.set("x-csrf-token", "CrwLEmSfUevAb8PcN7kXff-I");
+        return headers;
+    }
 }
 }

+ 3 - 20
tenant/insurance/quotation-zijin/src/main/java/com/jzg/quotation/zijin/crawler/entity/ZiJinCrawlerConfigureParameters.java

@@ -6,7 +6,7 @@ import lombok.Data;
 import java.io.Serial;
 import java.io.Serial;
 
 
 /**
 /**
- * @description: 渤海财险爬虫配置参数
+ * @description: 紫金财险爬虫配置参数
  * @author:
  * @author:
  * @date:
  * @date:
  **/
  **/
@@ -16,23 +16,6 @@ public class ZiJinCrawlerConfigureParameters implements ConfigureParameters {
     @Serial
     @Serial
     private static final long serialVersionUID = -4576395685599605562L;
     private static final long serialVersionUID = -4576395685599605562L;
 
 
-    /**
-     * 产品组合
-     */
-    private String combineProductCode;
-    /**
-     * 登录机构编码
-     */
-    private String loginCompany;
-    /**
-     * 承保机构
-     */
-    private String cDptCde;
-    /**
-     * 渠道套餐
-     */
-    private String channelPackages;
-
     /**
     /**
      * 用户编码
      * 用户编码
      */
      */
@@ -46,11 +29,11 @@ public class ZiJinCrawlerConfigureParameters implements ConfigureParameters {
     /**
     /**
      * 机构编码
      * 机构编码
      */
      */
-    private String orgCode;
+    private String comCode;
 
 
     /**
     /**
      * 机构名称
      * 机构名称
      */
      */
-    private String orgName;
+    private String comName;
 
 
 }
 }

+ 18 - 0
tenant/insurance/quotation-zijin/src/main/java/com/jzg/quotation/zijin/crawler/entity/ZiJinCrawlerTokenInfo.java

@@ -0,0 +1,18 @@
+package com.jzg.quotation.zijin.crawler.entity;
+
+import lombok.Data;
+
+@Data
+public class ZiJinCrawlerTokenInfo {
+    private String loginComCode;      // 登录公司编码
+    private String userCode;          // 用户编码
+    private Attach attach;            // 附加信息
+
+    @Data
+    public static class Attach {
+        private String loginComName;  // 登录公司名称
+        private String loginflag;     // 登录标识
+        private String userCode;      // 用户编码
+        private String accountType;   // 账号类型
+    }
+}

+ 3 - 4
tenant/insurance/quotation-zijin/src/main/java/com/jzg/quotation/zijin/crawler/entity/request/ZiJinCrawlerBaseRequest.java

@@ -7,7 +7,6 @@ import lombok.AllArgsConstructor;
 import lombok.Data;
 import lombok.Data;
 import lombok.NoArgsConstructor;
 import lombok.NoArgsConstructor;
 import org.springframework.util.ObjectUtils;
 import org.springframework.util.ObjectUtils;
-
 import java.io.Serial;
 import java.io.Serial;
 import java.io.Serializable;
 import java.io.Serializable;
 import java.time.LocalDateTime;
 import java.time.LocalDateTime;
@@ -29,7 +28,7 @@ public class ZiJinCrawlerBaseRequest implements Serializable {
     @JsonProperty("baseParam")
     @JsonProperty("baseParam")
     private BaseParamDTO baseParam;
     private BaseParamDTO baseParam;
 
 
-    public void setBaseParam(ZiJinCrawlerConfigureParameters parameters) {
+    /*public void setBaseParam(ZiJinCrawlerConfigureParameters parameters) {
         if (ObjectUtils.isEmpty(this.baseParam)) {
         if (ObjectUtils.isEmpty(this.baseParam)) {
             baseParam = new BaseParamDTO();
             baseParam = new BaseParamDTO();
         }
         }
@@ -37,7 +36,7 @@ public class ZiJinCrawlerBaseRequest implements Serializable {
         baseParam.requestTime = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SSS"));
         baseParam.requestTime = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SSS"));
         baseParam.orgCode = parameters.getOrgCode();
         baseParam.orgCode = parameters.getOrgCode();
         baseParam.orgName = parameters.getOrgName();
         baseParam.orgName = parameters.getOrgName();
-    }
+    }*/
 
 
     public void setBaseParamRequestType(String requestType) {
     public void setBaseParamRequestType(String requestType) {
         if (ObjectUtils.isEmpty(this.baseParam)) {
         if (ObjectUtils.isEmpty(this.baseParam)) {
@@ -47,7 +46,7 @@ public class ZiJinCrawlerBaseRequest implements Serializable {
     }
     }
 
 
     public void setBaseParam(ZiJinCrawlerConfigureParameters parameters, String orderNo) {
     public void setBaseParam(ZiJinCrawlerConfigureParameters parameters, String orderNo) {
-        setBaseParam(parameters);
+        //setBaseParam(parameters);
         baseParam.orderNo = orderNo;
         baseParam.orderNo = orderNo;
     }
     }
 
 

+ 11 - 224
tenant/insurance/quotation-zijin/src/main/java/com/jzg/quotation/zijin/crawler/entity/request/ZiJinCrawlerCarRequest.java

@@ -2,253 +2,40 @@ package com.jzg.quotation.zijin.crawler.entity.request;
 
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import com.jzg.commons.entity.quote.vo.CarInfoVo;
 import com.jzg.commons.entity.quote.vo.CarInfoVo;
+import lombok.Data;
 
 
 import java.io.Serial;
 import java.io.Serial;
 import java.io.Serializable;
 import java.io.Serializable;
 
 
 /**
 /**
- * 渤海财险车辆查询请求参数实体类
+ * 紫金财险查询车辆请求参数实体类
  *
  *
  * @author system
  * @author system
  * @date 2025/09/28
  * @date 2025/09/28
  */
  */
+@Data
 public class ZiJinCrawlerCarRequest implements Serializable {
 public class ZiJinCrawlerCarRequest implements Serializable {
 
 
     @Serial
     @Serial
     private static final long serialVersionUID = 3887879260967024252L;
     private static final long serialVersionUID = 3887879260967024252L;
 
 
     /**
     /**
-     * 请求头信息
+     * 渠道代码
      */
      */
-    @JsonProperty("head")
-    private Head head;
+    private String channelCode;
 
 
     /**
     /**
-     * 请求数据
+     * 公司代码
      */
      */
-    @JsonProperty("data")
-    private Data data;
-
-    public ZiJinCrawlerCarRequest() {
-    }
+    private String comCode;
 
 
     /**
     /**
-     * 构造函数
-     *
-     * @param carInfoVo 车辆信息
-     * @param loginCompany 登录公司
-     * @param dptCode 部门代码
-     * @param userCode 用户代码
+     * 车牌号
      */
      */
-    public ZiJinCrawlerCarRequest(CarInfoVo carInfoVo, String loginCompany, String dptCode, String userCode) {
-        this.head = new Head();
-        this.head.setChannelCode("");
-        this.head.setComCode(loginCompany != null ? loginCompany : "");
-        this.head.setTransDate("");
-
-        this.data = new Data();
-        this.data.setComCode("14070201");
-        this.data.setResourceTypeCode("004");
-        this.data.setVin(carInfoVo != null ? carInfoVo.getVinNo() : "");
-        this.data.setPlateNumber(carInfoVo != null ? carInfoVo.getLicenseNo() : "");
-        this.data.setNewCarFlag("0");
-        this.data.setPlateNoType(carInfoVo != null && carInfoVo.getLicenseKindCode() != null ? carInfoVo.getLicenseKindCode() : "02");
-        this.data.setPlateNoColor("01");
-        this.data.setVehicleModels(carInfoVo != null ? carInfoVo.getBrandName() : "");
-        this.data.setOperatorCode(userCode != null ? userCode : "");
-    }
-
-    public Head getHead() {
-        return head;
-    }
-
-    public void setHead(Head head) {
-        this.head = head;
-    }
-
-    public Data getData() {
-        return data;
-    }
-
-    public void setData(Data data) {
-        this.data = data;
-    }
-
-    /**
-     * 请求头信息
-     */
-    public static class Head {
-        /**
-         * 渠道代码
-         */
-        @JsonProperty("channelCode")
-        private String channelCode;
-
-        /**
-         * 公司代码
-         */
-        @JsonProperty("comCode")
-        private String comCode;
-
-        /**
-         * 交易日期
-         */
-        @JsonProperty("transDate")
-        private String transDate;
-
-        public String getChannelCode() {
-            return channelCode;
-        }
-
-        public void setChannelCode(String channelCode) {
-            this.channelCode = channelCode;
-        }
-
-        public String getComCode() {
-            return comCode;
-        }
-
-        public void setComCode(String comCode) {
-            this.comCode = comCode;
-        }
-
-        public String getTransDate() {
-            return transDate;
-        }
-
-        public void setTransDate(String transDate) {
-            this.transDate = transDate;
-        }
-    }
+    private String licenseNo;
 
 
     /**
     /**
-     * 请求数据
+     * 车架号(VIN码)
      */
      */
-    public static class Data {
-        /**
-         * 公司代码
-         */
-        @JsonProperty("comCode")
-        private String comCode;
-
-        /**
-         * 资源类型代码
-         */
-        @JsonProperty("resourceTypeCode")
-        private String resourceTypeCode;
-
-        /**
-         * 车架号
-         */
-        @JsonProperty("vin")
-        private String vin;
-
-        /**
-         * 车牌号
-         */
-        @JsonProperty("plateNumber")
-        private String plateNumber;
-
-        /**
-         * 新车标志 0-否 1-是
-         */
-        @JsonProperty("newCarFlag")
-        private String newCarFlag;
-
-        /**
-         * 号牌种类
-         */
-        @JsonProperty("plateNoType")
-        private String plateNoType;
-
-        /**
-         * 号牌颜色
-         */
-        @JsonProperty("plateNoColor")
-        private String plateNoColor;
-
-        /**
-         * 车辆型号
-         */
-        @JsonProperty("vehicleModels")
-        private String vehicleModels;
-
-        /**
-         * 操作员代码
-         */
-        @JsonProperty("operatorCode")
-        private String operatorCode;
-
-        public String getComCode() {
-            return comCode;
-        }
-
-        public void setComCode(String comCode) {
-            this.comCode = comCode;
-        }
-
-        public String getResourceTypeCode() {
-            return resourceTypeCode;
-        }
-
-        public void setResourceTypeCode(String resourceTypeCode) {
-            this.resourceTypeCode = resourceTypeCode;
-        }
-
-        public String getVin() {
-            return vin;
-        }
-
-        public void setVin(String vin) {
-            this.vin = vin;
-        }
-
-        public String getPlateNumber() {
-            return plateNumber;
-        }
-
-        public void setPlateNumber(String plateNumber) {
-            this.plateNumber = plateNumber;
-        }
-
-        public String getNewCarFlag() {
-            return newCarFlag;
-        }
-
-        public void setNewCarFlag(String newCarFlag) {
-            this.newCarFlag = newCarFlag;
-        }
-
-        public String getPlateNoType() {
-            return plateNoType;
-        }
-
-        public void setPlateNoType(String plateNoType) {
-            this.plateNoType = plateNoType;
-        }
-
-        public String getPlateNoColor() {
-            return plateNoColor;
-        }
-
-        public void setPlateNoColor(String plateNoColor) {
-            this.plateNoColor = plateNoColor;
-        }
-
-        public String getVehicleModels() {
-            return vehicleModels;
-        }
-
-        public void setVehicleModels(String vehicleModels) {
-            this.vehicleModels = vehicleModels;
-        }
-
-        public String getOperatorCode() {
-            return operatorCode;
-        }
-
-        public void setOperatorCode(String operatorCode) {
-            this.operatorCode = operatorCode;
-        }
-    }
+    private String vin;
 }
 }

+ 0 - 50
tenant/insurance/quotation-zijin/src/main/java/com/jzg/quotation/zijin/crawler/entity/request/ZiJinCrawlerChannelPackagesRequest.java

@@ -1,50 +0,0 @@
-package com.jzg.quotation.zijin.crawler.entity.request;
-
-import com.jzg.quotation.zijin.crawler.entity.ZiJinCrawlerConfigureParameters;
-import com.jzg.quotation.zijin.crawler.entity.response.ZiJinCrawlerBaseResponse;
-import lombok.AllArgsConstructor;
-import lombok.Data;
-import lombok.NoArgsConstructor;
-
-/**
- * 渤海保险爬虫渠道套餐查询请求实体
- * 用于查询指定机构和产品组合的可用套餐信息
- * 
- * @author system
- * @date 2025/9/18
- */
-@Data
-@AllArgsConstructor
-@NoArgsConstructor
-public class ZiJinCrawlerChannelPackagesRequest {
-
-    /**
-     * 登录机构
-     */
-    private String loginCompany;
-    /**
-     * 承保机构
-     */
-    private String companyCode;
-    /**
-     * 产品组合编码
-     */
-    private String combineProductCode;
-    /**
-     * 登录userCode
-     */
-    private String operatorCode;
-
-    /**
-     * 构造方法:基于配置参数和操作员代码创建请求对象
-     * 
-     * @param parameters 大家保险爬虫配置参数
-     * @param operatorCode 操作员代码
-     */
-    public ZiJinCrawlerChannelPackagesRequest(ZiJinCrawlerConfigureParameters parameters, String operatorCode) {
-        this.loginCompany = parameters.getLoginCompany();
-        this.companyCode = parameters.getCDptCde();
-        this.combineProductCode = parameters.getCombineProductCode();
-        this.operatorCode = operatorCode;
-    }
-}

+ 7 - 7
tenant/insurance/quotation-zijin/src/main/java/com/jzg/quotation/zijin/crawler/entity/request/ZiJinCrawlerCheckTokenRequest.java

@@ -7,19 +7,19 @@ import lombok.NoArgsConstructor;
 
 
 /**
 /**
  * @version
  * @version
- * @description: 渤海财险【校验token】响应
- * @author: wenks
- * @date: 2025/5/21 16:59
+ * @description: 紫金财险【校验token】请求
+ * @author:
+ * @date:
  **/
  **/
 @AllArgsConstructor
 @AllArgsConstructor
 @NoArgsConstructor
 @NoArgsConstructor
 @Data
 @Data
 public class ZiJinCrawlerCheckTokenRequest {
 public class ZiJinCrawlerCheckTokenRequest {
 
 
-    @JsonProperty("tokenId")
-    private String tokenId;
+    @JsonProperty("expirationType")
+    private String expirationType;
 
 
-    @JsonProperty("operatorCode")
-    private String operatorCode;
+    @JsonProperty("token")
+    private String token;
 
 
 }
 }

+ 73 - 0
tenant/insurance/quotation-zijin/src/main/java/com/jzg/quotation/zijin/crawler/entity/request/ZiJinCrawlerGetCarActualValueRequest.java

@@ -0,0 +1,73 @@
+package com.jzg.quotation.zijin.crawler.entity.request;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serial;
+import java.io.Serializable;
+
+/**
+ * 紫金保险获取车辆实际价值请求类
+ */
+@NoArgsConstructor
+@Data
+public class ZiJinCrawlerGetCarActualValueRequest implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 987654321234567890L;
+
+    /**
+     * 车辆类型代码,A0通常代表小型车
+     */
+    @JsonProperty("carKindCode")
+    private String carKindCode;
+
+    /**
+     * 初次登记日期,车辆首次上牌日期
+     */
+    @JsonProperty("enrollDate")
+    private String enrollDate;
+
+    /**
+     * 更新登记日期,车辆信息最后更新日期
+     */
+    @JsonProperty("updateEnrollDate")
+    private String updateEnrollDate;
+
+    /**
+     * 购车价格,车辆购买时的价格(单位:元)
+     */
+    @JsonProperty("purchasePrice")
+    private String purchasePrice;
+
+    /**
+     * 座位数,车辆核定座位数量
+     */
+    @JsonProperty("seatCount")
+    private Integer seatCount;
+
+    /**
+     * 使用性质代码,85通常代表非营业用
+     */
+    @JsonProperty("useNatureCode")
+    private String useNatureCode;
+
+    /**
+     * 保险开始日期,保单生效日期
+     */
+    @JsonProperty("startDate")
+    private String startDate;
+
+    /**
+     * 新能源标志,0代表传统燃油车
+     */
+    @JsonProperty("newEnergyFlag")
+    private String newEnergyFlag;
+
+    /**
+     * 车辆能源类型,D1通常代表汽油
+     */
+    @JsonProperty("modelEnergyType")
+    private String modelEnergyType;
+}

+ 97 - 0
tenant/insurance/quotation-zijin/src/main/java/com/jzg/quotation/zijin/crawler/entity/request/ZiJinCrawlerGetOrderNoRequest.java

@@ -0,0 +1,97 @@
+package com.jzg.quotation.zijin.crawler.entity.request;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serial;
+import java.io.Serializable;
+
+/**
+ * 紫金保险获取订单号请求类
+ */
+@NoArgsConstructor
+@Data
+public class ZiJinCrawlerGetOrderNoRequest implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 1234567890123456789L;
+
+    /**
+     * 品牌名称
+     */
+    @JsonProperty("brandName")
+    private String brandName;
+
+    /**
+     * 车牌号
+     */
+    @JsonProperty("licenseNo")
+    private String licenseNo;
+
+    /**
+     * 操作员编号
+     */
+    @JsonProperty("operatorCode")
+    private String operatorCode;
+
+    /**
+     * 订单来源(快速出单生产环境)
+     */
+    @JsonProperty("orderOrigin")
+    private String orderOrigin;
+
+    /**
+     * 投保地区代码(山西省)
+     */
+    @JsonProperty("proposalAreaCode")
+    private String proposalAreaCode;
+
+    /**
+     * 投保城市代码(山西省)
+     */
+    @JsonProperty("proposalCityCode")
+    private String proposalCityCode;
+
+    /**
+     * 用户公司代码
+     */
+    @JsonProperty("userComCode")
+    private String userComCode;
+
+    /**
+     * 车架号(VIN码)
+     */
+    @JsonProperty("vinNo")
+    private String vinNo;
+
+    /**
+     * 车型代码
+     */
+    @JsonProperty("modelCode")
+    private String modelCode;
+
+    /**
+     * 产品代码
+     */
+    @JsonProperty("productCode")
+    private String productCode;
+
+    /**
+     * 产品名称
+     */
+    @JsonProperty("productName")
+    private String productName;
+
+    /**
+     * 终端ID(快速出单)
+     */
+    @JsonProperty("terminalId")
+    private String terminalId;
+
+    /**
+     * 终端类型(Vue PC端)
+     */
+    @JsonProperty("terminalIdType")
+    private String terminalIdType;
+}

+ 891 - 41
tenant/insurance/quotation-zijin/src/main/java/com/jzg/quotation/zijin/crawler/entity/request/ZiJinCrawlerQuotationRequest.java

@@ -1,51 +1,901 @@
 package com.jzg.quotation.zijin.crawler.entity.request;
 package com.jzg.quotation.zijin.crawler.entity.request;
 
 
-import com.jzg.commons.entity.quote.vo.AccidentalDrivingVo;
-import com.jzg.commons.entity.quote.vo.QuoteVo;
-import com.jzg.quotation.zijin.crawler.entity.ZiJinCrawlerConfigureParameters;
+import com.fasterxml.jackson.annotation.JsonProperty;
 import lombok.Data;
 import lombok.Data;
+import lombok.NoArgsConstructor;
 
 
+import java.io.Serial;
+import java.io.Serializable;
 import java.util.List;
 import java.util.List;
-import java.util.Map;
 
 
 /**
 /**
- * @description: 渤海财险爬虫报价请求
- * @author:
- * @date:
- **/
+ * 紫金保险报价请求实体类
+ */
+@NoArgsConstructor
 @Data
 @Data
-public class ZiJinCrawlerQuotationRequest extends ZiJinCrawlerBaseRequest {
-
-    private ZiJinCrawlerConfigureParameters parameters;
-    private QuoteVo quoteVo;
-    private String currentValue;
-    private String orderNO;
-    private List<AccidentalDrivingVo> accidentVo;
-    private String discount;
-
-    public ZiJinCrawlerQuotationRequest(ZiJinCrawlerConfigureParameters parameters, QuoteVo quoteVo,
-                                        String currentValue, String orderNO, List<AccidentalDrivingVo> accidentVo, String discount) {
-        //super(buildRequestData(parameters, quoteVo, currentValue, orderNO, accidentVo, discount));
-        this.parameters = parameters;
-        this.quoteVo = quoteVo;
-        this.currentValue = currentValue;
-        //默认设置为空字符串
-        this.orderNO = "";
-        this.accidentVo = accidentVo;
-        this.discount = discount;
-    }
-
-    private static Object buildRequestData(ZiJinCrawlerConfigureParameters parameters, QuoteVo quoteVo,
-                                         String currentValue, String orderNO, List<AccidentalDrivingVo> accidentVo, String discount) {
-        // 这里构建渤海API需要的请求数据格式
-        // 实际实现需要根据渤海API的具体要求来构建
-        return Map.of(
-            "parameters", parameters,
-            "quoteVo", quoteVo,
-            "currentValue", currentValue,
-            "orderNO", orderNO,
-            "accidentVo", accidentVo,
-            "discount", discount
-        );
+public class ZiJinCrawlerQuotationRequest implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 1234567890123456789L;
+
+    /**
+     * 基础信息对象
+     */
+    @JsonProperty("baseInfo")
+    private BaseInfo baseInfo;
+
+    /**
+     * 车主信息
+     */
+    @JsonProperty("carOwnerInfo")
+    private CarOwnerInfo carOwnerInfo;
+
+    /**
+     * 保险标志
+     */
+    @JsonProperty("insuranceSign")
+    private String insuranceSign;
+
+    /**
+     * 被保险人列表
+     */
+    @JsonProperty("insuredList")
+    private List<InsuredList> insuredList;
+
+    /**
+     * 订单ID
+     */
+    @JsonProperty("orderId")
+    private String orderId;
+
+    /**
+     * 订单来源
+     */
+    @JsonProperty("orderOrigin")
+    private String orderOrigin;
+
+    /**
+     * 需求单校验标志
+     */
+    @JsonProperty("demandNoCheckFlag")
+    private String demandNoCheckFlag;
+
+    /**
+     * 产品代码
+     */
+    @JsonProperty("productCode")
+    private String productCode;
+
+    /**
+     * 产品名称
+     */
+    @JsonProperty("productName")
+    private String productName;
+
+    /**
+     * 减税信息
+     */
+    @JsonProperty("taxRelifInfo")
+    private TaxRelifInfo taxRelifInfo;
+
+    /**
+     * 险种列表
+     */
+    @JsonProperty("itemKindList")
+    private List<ItemKindList> itemKindList;
+
+    /**
+     * 附加保单信息列表
+     */
+    @JsonProperty("carPolicySubInfoList")
+    private List<CarPolicySubInfoList> carPolicySubInfoList;
+
+    /**
+     * 车辆信息
+     */
+    @JsonProperty("vehicleInfo")
+    private VehicleInfo vehicleInfo;
+
+    /**
+     * 盈利数据列表
+     */
+    @JsonProperty("profitDataList")
+    private List<ProfitDataList> profitDataList;
+
+    /**
+     * 税务字段
+     */
+    @JsonProperty("taxFields")
+    private String taxFields;
+
+    /**
+     * 附加险列表
+     */
+    @JsonProperty("attachRiskList")
+    private List<String> attachRiskList;
+
+    /**
+     * 车载设备保费列表
+     */
+    @JsonProperty("carDevicePremiumDtoList")
+    private List<String> carDevicePremiumDtoList;
+
+    /**
+     * 基础信息类
+     */
+    @NoArgsConstructor
+    @Data
+    public static class BaseInfo implements Serializable {
+
+        @Serial
+        private static final long serialVersionUID = 6911413212196452849L;
+
+        /**
+         * 代理人编号
+         */
+        @JsonProperty("agentCode")
+        private String agentCode;
+
+        /**
+         * 协议号
+         */
+        @JsonProperty("agreementNo")
+        private String agreementNo;
+
+        /**
+         * 业务性质
+         */
+        @JsonProperty("businessNature")
+        private String businessNature;
+
+        /**
+         * 公司代码
+         */
+        @JsonProperty("comCode")
+        private String comCode;
+
+        /**
+         * 公司名称
+         */
+        @JsonProperty("comName")
+        private String comName;
+
+        /**
+         * 经办人1编号
+         */
+        @JsonProperty("handler1Code")
+        private String handler1Code;
+
+        /**
+         * 经办人1姓名
+         */
+        @JsonProperty("handler1Name")
+        private String handler1Name;
+
+        /**
+         * 操作员编号
+         */
+        @JsonProperty("operatorCode")
+        private String operatorCode;
+
+        /**
+         * 起保日期
+         */
+        @JsonProperty("startDate")
+        private String startDate;
+
+        /**
+         * 交强险起保日期
+         */
+        @JsonProperty("startDateCI")
+        private String startDateCI;
+
+        /**
+         * 起保小时
+         */
+        @JsonProperty("startHour")
+        private String startHour;
+
+        /**
+         * 交强险起保小时
+         */
+        @JsonProperty("startHourCI")
+        private String startHourCI;
+
+        /**
+         * 起保分钟
+         */
+        @JsonProperty("startMinute")
+        private String startMinute;
+
+        /**
+         * 交强险起保分钟
+         */
+        @JsonProperty("startMinuteCI")
+        private String startMinuteCI;
+
+        /**
+         * 终保日期
+         */
+        @JsonProperty("endDate")
+        private String endDate;
+
+        /**
+         * 交强险终保日期
+         */
+        @JsonProperty("endDateCI")
+        private String endDateCI;
+
+        /**
+         * 终保小时
+         */
+        @JsonProperty("endHour")
+        private String endHour;
+
+        /**
+         * 交强险终保小时
+         */
+        @JsonProperty("endHourCI")
+        private String endHourCI;
+
+        /**
+         * 终保分钟
+         */
+        @JsonProperty("endMinute")
+        private String endMinute;
+
+        /**
+         * 交强险终保分钟
+         */
+        @JsonProperty("endMinuteCI")
+        private String endMinuteCI;
+
+        /**
+         * 续保标志
+         */
+        @JsonProperty("xbFlag")
+        private String xbFlag;
+
+        /**
+         * 交强险续保标志
+         */
+        @JsonProperty("xbFlagCI")
+        private String xbFlagCI;
+
+        /**
+         * 目标被保险人标志
+         */
+        @JsonProperty("goalInsuredFlag")
+        private String goalInsuredFlag;
+
+        /**
+         * 配置名称
+         */
+        @JsonProperty("configName")
+        private String configName;
+
+        /**
+         * 主键ID
+         */
+        @JsonProperty("id")
+        private String id;
+
+        /**
+         * 业务名称
+         */
+        @JsonProperty("businessName")
+        private String businessName;
+
+        /**
+         * MongoDB文档ID
+         */
+        @JsonProperty("_id")
+        private String idMongo;
+
+        /**
+         * 描述
+         */
+        @JsonProperty("desc")
+        private String desc;
+
+        /**
+         * 经手人编号
+         */
+        @JsonProperty("handerCode")
+        private String handerCode;
+
+        /**
+         * 经手人姓名
+         */
+        @JsonProperty("handerName")
+        private String handerName;
+
+        /**
+         * 需求单号
+         */
+        @JsonProperty("demandNo")
+        private String demandNo;
+
+        /**
+         * 交强险需求单号
+         */
+        @JsonProperty("demandNoCI")
+        private String demandNoCI;
+
+        /**
+         * 计算标志
+         */
+        @JsonProperty("calculateFlag")
+        private String calculateFlag;
+    }
+
+    /**
+     * 车主信息类
+     */
+    @NoArgsConstructor
+    @Data
+    public static class CarOwnerInfo implements Serializable {
+
+        @Serial
+        private static final long serialVersionUID = 4380441311981992022L;
+
+        /**
+         * 车主姓名
+         */
+        @JsonProperty("carOwner")
+        private String carOwner;
+
+        /**
+         * 车主证件号码
+         */
+        @JsonProperty("ownerIdentifyNumber")
+        private String ownerIdentifyNumber;
+
+        /**
+         * 车主证件类型(01-身份证)
+         */
+        @JsonProperty("ownerIdentifyType")
+        private String ownerIdentifyType;
+
+        /**
+         * 车主性质(1-个人)
+         */
+        @JsonProperty("vehicleOwnerNature")
+        private String vehicleOwnerNature;
+    }
+
+    /**
+     * 被保险人类
+     */
+    @NoArgsConstructor
+    @Data
+    public static class InsuredList implements Serializable {
+
+
+        @Serial
+        private static final long serialVersionUID = 3456743234816194829L;
+
+        /**
+         * 被保险人姓名
+         */
+        @JsonProperty("insuredName")
+        private String insuredName;
+
+        /**
+         * 被保险人性质
+         */
+        @JsonProperty("insuredNature")
+        private String insuredNature;
+
+        /**
+         * 证件类型(01-身份证)
+         */
+        @JsonProperty("identifyType")
+        private String identifyType;
+
+        /**
+         * 证件号码
+         */
+        @JsonProperty("identifyNumber")
+        private String identifyNumber;
+
+        /**
+         * 性别(2-女)
+         */
+        @JsonProperty("sex")
+        private String sex;
+
+        /**
+         * 被保险人类型
+         */
+        @JsonProperty("insuredType")
+        private String insuredType;
+
+        /**
+         * 手机号码
+         */
+        @JsonProperty("mobile")
+        private String mobile;
+
+        /**
+         * 邮政编码
+         */
+        @JsonProperty("postCode")
+        private String postCode;
+
+        /**
+         * 被保险人标志(2-商业险)
+         */
+        @JsonProperty("insuredFlag")
+        private Integer insuredFlag;
+    }
+
+    /**
+     * 减税信息类
+     */
+    @NoArgsConstructor
+    @Data
+    public static class TaxRelifInfo implements Serializable {
+
+        @Serial
+        private static final long serialVersionUID = -950440240765022855L;
+
+        /**
+         * 减税标志
+         */
+        @JsonProperty("taxRelifFlag")
+        private String taxRelifFlag;
+
+        /**
+         * 纳税人名称
+         */
+        @JsonProperty("taxpayerName")
+        private String taxpayerName;
+
+        /**
+         * 纳税人识别类型
+         */
+        @JsonProperty("taxpayerIdentifier")
+        private String taxpayerIdentifier;
+
+        /**
+         * 证件号码
+         */
+        @JsonProperty("identifyNumber")
+        private String identifyNumber;
+
+        /**
+         * 税务登记号
+         */
+        @JsonProperty("taxRegistryNumber")
+        private String taxRegistryNumber;
+
+        /**
+         * 整备质量(吨)
+         */
+        @JsonProperty("completeKerbMass")
+        private String completeKerbMass;
+    }
+
+    /**
+     * 险种类
+     */
+    @NoArgsConstructor
+    @Data
+    public static class ItemKindList implements Serializable {
+
+        @Serial
+        private static final long serialVersionUID = 8227129685448977576L;
+
+        /**
+         * 保额(元)
+         */
+        @JsonProperty("amount")
+        private Object amount; // String or Integer based on JSON data
+
+        /**
+         * 险种代码
+         */
+        @JsonProperty("kindCode")
+        private String kindCode;
+
+        /**
+         * 险种名称
+         */
+        @JsonProperty("kindName")
+        private String kindName;
+
+        /**
+         * 险别代码
+         */
+        @JsonProperty("riskCode")
+        private String riskCode;
+
+        /**
+         * 基准保费
+         */
+        @JsonProperty("benchMarkPremium")
+        private String benchMarkPremium;
+
+        /**
+         * 基础保费
+         */
+        @JsonProperty("basePremium")
+        private String basePremium;
+
+        /**
+         * 服务次数
+         */
+        @JsonProperty("serviceTimes")
+        private String serviceTimes;
+    }
+
+    /**
+     * 附加保单信息类
+     */
+    @NoArgsConstructor
+    @Data
+    public static class CarPolicySubInfoList implements Serializable {
+
+        @Serial
+        private static final long serialVersionUID = 6666666666666666666L;
+
+        /**
+         * 计划名称
+         */
+        @JsonProperty("planName")
+        private String planName;
+
+        /**
+         * 保险等级编号
+         */
+        @JsonProperty("insureGradeNo")
+        private String insureGradeNo;
+
+        /**
+         * 是否使用被保险人
+         */
+        @JsonProperty("isUseInsured")
+        private String isUseInsured;
+
+        /**
+         * 数量
+         */
+        @JsonProperty("quantity")
+        private String quantity;
+
+        /**
+         * 险别代码
+         */
+        @JsonProperty("riskCode")
+        private String riskCode;
+
+        /**
+         * 险别名称
+         */
+        @JsonProperty("riskName")
+        private String riskName;
+
+        /**
+         * 总保额
+         */
+        @JsonProperty("sumAmount")
+        private Integer sumAmount;
+
+        /**
+         * 总保费
+         */
+        @JsonProperty("sumPremium")
+        private Integer sumPremium;
+
+        /**
+         * 实际保费
+         */
+        @JsonProperty("actualPremium")
+        private String actualPremium;
+
+        /**
+         * 产品代码
+         */
+        @JsonProperty("productCode")
+        private String productCode;
+    }
+
+    /**
+     * 车辆信息类
+     */
+    @NoArgsConstructor
+    @Data
+    public static class VehicleInfo implements Serializable {
+
+        @Serial
+        private static final long serialVersionUID = 1593853832032482765L;
+
+        /**
+         * 实际价值
+         */
+        @JsonProperty("actualValue")
+        private Double actualValue;
+
+        /**
+         * 约定实际价值
+         */
+        @JsonProperty("agreeActualValue")
+        private Double agreeActualValue;
+
+        /**
+         * 品牌名称
+         */
+        @JsonProperty("brandName")
+        private String brandName;
+
+        /**
+         * 车辆种类代码
+         */
+        @JsonProperty("carKindCode")
+        private String carKindCode;
+
+        /**
+         * 车辆种类明细ID
+         */
+        @JsonProperty("carKindDetailId")
+        private String carKindDetailId;
+
+        /**
+         * 车贷标志
+         */
+        @JsonProperty("carLoanFlag")
+        private String carLoanFlag;
+
+        /**
+         * 合格证日期
+         */
+        @JsonProperty("certificateDate")
+        private String certificateDate;
+
+        /**
+         * 过户标志
+         */
+        @JsonProperty("chgOwnerFlag")
+        private String chgOwnerFlag;
+
+        /**
+         * 整备质量(kg)
+         */
+        @JsonProperty("completekerbmass")
+        private Integer completekerbmass;
+
+        /**
+         * 疫情车辆标志
+         */
+        @JsonProperty("ecdemicVehicleFlag")
+        private String ecdemicVehicleFlag;
+
+        /**
+         * 发动机号
+         */
+        @JsonProperty("engineNo")
+        private String engineNo;
+
+        /**
+         * 初登日期
+         */
+        @JsonProperty("enrollDate")
+        private String enrollDate;
+
+        /**
+         * 更新初登日期
+         */
+        @JsonProperty("updateEnrollDate")
+        private String updateEnrollDate;
+
+        /**
+         * 排量(cc)
+         */
+        @JsonProperty("exhaustCapacity")
+        private Integer exhaustCapacity;
+
+        /**
+         * 燃料类型
+         */
+        @JsonProperty("fuelType")
+        private String fuelType;
+
+        /**
+         * 精友燃料类型
+         */
+        @JsonProperty("fuelTypeJY")
+        private String fuelTypeJY;
+
+        /**
+         * 新能源标志
+         */
+        @JsonProperty("newEnergyFlag")
+        private String newEnergyFlag;
+
+        /**
+         * 号牌颜色代码(01-蓝色)
+         */
+        @JsonProperty("licenseColorCode")
+        private String licenseColorCode;
+
+        /**
+         * 号牌种类代码
+         */
+        @JsonProperty("licenseKindCode")
+        private String licenseKindCode;
+
+        /**
+         * 车牌号
+         */
+        @JsonProperty("licenseNo")
+        private String licenseNo;
+
+        /**
+         * 贷款车辆标志
+         */
+        @JsonProperty("loanVehicleFlag")
+        private String loanVehicleFlag;
+
+        /**
+         * 车型代码
+         */
+        @JsonProperty("modelCode")
+        private String modelCode;
+
+        /**
+         * 无牌照标志
+         */
+        @JsonProperty("noLicenseFlag")
+        private String noLicenseFlag;
+
+        /**
+         * 发证日期
+         */
+        @JsonProperty("issueDate")
+        private String issueDate;
+
+        /**
+         * 原车辆种类名称
+         */
+        @JsonProperty("oriCarKindName")
+        private String oriCarKindName;
+
+        /**
+         * 平台车辆代码
+         */
+        @JsonProperty("platVehicleCode")
+        private String platVehicleCode;
+
+        /**
+         * 功率(kW)
+         */
+        @JsonProperty("power")
+        private String power;
+
+        /**
+         * 购置价格(元)
+         */
+        @JsonProperty("purchasePrice")
+        private String purchasePrice;
+
+        /**
+         * 座位数
+         */
+        @JsonProperty("seatCount")
+        private Integer seatCount;
+
+        /**
+         * 使用性质代码(85-家庭自用)
+         */
+        @JsonProperty("useNatureCode")
+        private String useNatureCode;
+
+        /**
+         * 车辆ID
+         */
+        @JsonProperty("vehicleId")
+        private String vehicleId;
+
+        /**
+         * 车架号(VIN码)
+         */
+        @JsonProperty("vinNo")
+        private String vinNo;
+
+        /**
+         * 制造日期
+         */
+        @JsonProperty("makeDate")
+        private String makeDate;
+
+        /**
+         * 交强险制造日期
+         */
+        @JsonProperty("makeDateJQ")
+        private String makeDateJQ;
+
+        /**
+         * 打印车型名称
+         */
+        @JsonProperty("printVehicleModelName")
+        private String printVehicleModelName;
+
+        /**
+         * 别名
+         */
+        @JsonProperty("aliasName")
+        private String aliasName;
+
+        /**
+         * 4S店销售标志
+         */
+        @JsonProperty("sale4SFlag")
+        private String sale4SFlag;
+
+        /**
+         * 原品牌名称
+         */
+        @JsonProperty("oriBrandName")
+        private String oriBrandName;
+
+        /**
+         * 原购置价格
+         */
+        @JsonProperty("oriPurchasePrice")
+        private String oriPurchasePrice;
+
+        /**
+         * 是否调用精友
+         */
+        @JsonProperty("isInvokeJingYou")
+        private String isInvokeJingYou;
+
+        /**
+         * 车型唯一ID
+         */
+        @JsonProperty("vehicleStyleUniqueId")
+        private String vehicleStyleUniqueId;
+
+        /**
+         * 原车型名称
+         */
+        @JsonProperty("oriModelName")
+        private String oriModelName;
+
+        /**
+         * 车型能源类型
+         */
+        @JsonProperty("modelEnergyType")
+        private String modelEnergyType;
+
+        /**
+         * 打印车型名称
+         */
+        @JsonProperty("printModelName")
+        private String printModelName;
+    }
+
+    /**
+     * 盈利数据类
+     */
+    @NoArgsConstructor
+    @Data
+    public static class ProfitDataList implements Serializable {
+
+        @Serial
+        private static final long serialVersionUID = 8888888888888888888L;
+
+        /**
+         * 盈利代码
+         */
+        @JsonProperty("profitCode")
+        private String profitCode;
+
+        /**
+         * 盈利率
+         */
+        @JsonProperty("profitRate")
+        private String profitRate;
     }
     }
 }
 }

+ 0 - 762
tenant/insurance/quotation-zijin/src/main/java/com/jzg/quotation/zijin/crawler/entity/request/ZiJinCrawlerQuotationRequest2.java

@@ -1,762 +0,0 @@
-package com.jzg.quotation.zijin.crawler.entity.request;
-
-import com.alibaba.fastjson.annotation.JSONField;
-import com.jzg.commons.entity.quote.vo.AccidentalDrivingVo;
-import com.jzg.commons.entity.quote.vo.QuoteVo;
-import com.jzg.quotation.zijin.crawler.entity.ZiJinCrawlerConfigureParameters;
-import lombok.Data;
-import javax.swing.plaf.nimbus.State;
-import java.util.List;
-
-/**
- * 渤海财险爬虫—报价请求载体
- * 用于封装一次完整的报价入参:请求头、业务数据以及登录上下文。
- * 仅为数据承载对象(DTO),不包含业务逻辑。
- */
-@Data
-public class ZiJinCrawlerQuotationRequest2 {
-
-    /** 请求头信息,含交易码/类型/令牌等 */
-    @JSONField(ordinal = 1)
-    private Head head;
-
-    /** 业务主体数据,含车辆、被保人、险种等 */
-    @JSONField(ordinal = 2)
-    private BusinessData businessData;
-
-    /** 登录机构代码(承保机构) */
-    @JSONField(ordinal = 3)
-    private String loginCom;
-
-    /** 当前操作员代码 */
-    @JSONField(ordinal = 4)
-    private String userCode;
-
-    /** 一级用户/渠道主账号(若有多级账号体系) */
-    @JSONField(ordinal = 5)
-    private String firstUserCode;
-
-    /**
-     * 请求头
-     */
-    @Data
-    public static class Head {
-        /** 交易码 */
-        private String transCode;
-        /** 交易类型 */
-        private String transType;
-        /** 访问令牌 */
-        private String token;
-    }
-
-    /**
-     * 业务数据
-     */
-    @Data
-    public static class BusinessData {
-        /** 业务主信息(投保基本信息) */
-        private BusinessMainInfo businessMainInfo;
-        /** 车辆信息(车型、车况等) */
-        private CarInfo carInfo;
-        /** 被保险人列表(投保人/被保人/车主等) */
-        private List<Insured> insuredList;
-        /** 险种集合(商业险/交强险及其条款) */
-        private List<Risk> riskList;
-    }
-
-    /**
-     * 业务主信息
-     */
-    @Data
-    public static class BusinessMainInfo {
-        /** 业务订单号/流水号 */
-        private String orderNo;
-        /** 定价方式(是否定损/议价等) */
-        private String fixPriceType;
-        /** 风控标志(是否触发风控) */
-        private String riskControlFlag;
-        /** 请求唯一标识 */
-        private String uuid;
-        /** 试算次数/试算标记 */
-        private Integer trial;
-        /** 争议解决方式 */
-        private String argueSolution;
-        /** 仲裁机构名称 */
-        private String arbitBoardName;
-        /** 业务类型(个商、车商、直销等) */
-        private String businessType;
-        /** 机构代码(归属机构/承保机构) */
-        private String comCode;
-        /** 业务一级分类 */
-        private String businessCategories1;
-        /** 业务二级分类 */
-        private String businessCategories2;
-        /** 业务三级分类 */
-        private String businessCategories3;
-        /** 处理人代码(经办人) */
-        private String handlerCode;
-        /** 中介/代理代码 */
-        private String agentCode;
-        /** 中介/代理名称 */
-        private String agentName;
-        /** 协议/协议号 */
-        private String agreementNo;
-        /** 城市代码 */
-        private String cityCode;
-        /** 区县代码 */
-        private String countyCode;
-        /** 受理/操作日期 */
-        private String operateDate;
-        /** 目标客户标识(是否目标客户) */
-        private String goalInsuredFlag;
-        /** 承保单位/核算单位 */
-        private String underUnit;
-        /** 核保识别类型 */
-        private String identifyType;
-        /** 核保识别明细 */
-        private String identifyDetail;
-        /** 核保识别编号 */
-        private String identifyCode;
-        /** 核保识别VIP标志 */
-        private String identifyVip;
-        /** 计算机IP(操作IP) */
-        private String computerIp;
-        /** 主车种标志(渤海字段) */
-        private String mainCarKindBC;
-        /** 资源类型代码(渠道来源) */
-        private String resourceTypeCode;
-        /** 期望折扣 */
-        private String expectDiscount;
-        /** 报案号/报备号(如有) */
-        private String reportNo;
-        /** 期望佣金 */
-        private String expectedCommission;
-        /** 业务属性(新保/续保等) */
-        private String businessAttribute;
-        /** 渠道类型 */
-        private String channelType;
-        /** 销售人员证件号 */
-        private String salerIdentifyNumber;
-        /** 销售平台/门店标识 */
-        private String sdId;
-        /** 投保方式(同步/投保模式) */
-        private String tbMode;
-        /** 交强险归属单位代码 */
-        private String bussUnitCodeCI;
-        /** 商业险归属单位代码 */
-        private String bussUnitCode;
-        /** 定价模式(标准/自主等) */
-        private String priceMode;
-        /** 高风险评估编号 */
-        private String highRiskAssessId;
-        /** 客户回流类型/再营销类型 */
-        private String reCustomerType;
-        /** 上年调整值(经验调) */
-        private String lastYearAdjustValue;
-    }
-
-    /**
-     * 车辆信息
-     */
-    @Data
-   public static class CarInfo {
-        /** 车辆详细信息 */
-        private ItemCarInfo itemCarInfo;
-
-        /**
-         * 价格信息列表
-         */
-        private List<Object> chargingInfoList;
-
-        /**
-         * 设备列表
-         */
-        private List<Object> deviceList;
-    }
-
-    /**
-     * 车辆详细信息
-     */
-    @Data
-    public static class ItemCarInfo {
-        /** 登记/合格证编号 */
-        private String certificateNo;
-        /** 证件类型(行驶证/登记证等) */
-        private String certificateType;
-        /** 其它能源类型描述 */
-        private String otherEnergyTypeDesc;
-        /** 纯电续航里程 */
-        private String pureRange;
-        /** 燃料类型(渤海字段) */
-        private String pmFuelType;
-        /** 验车状态 */
-        private String carCheckStatus;
-        /** 实际价值/评估价 */
-        private String actualValue;
-        /** 其他使用性质(渤海字段) */
-        private String otherNature7BI;
-        /** 协议价/议定价 */
-        private String negotiatedValue;
-        /** 是否新车标志 */
-        private String newVehicleFlag;
-        /** 号牌号码 */
-        private String licenseNo;
-        /** 车架号(VIN) */
-        private String frameNo;
-        /** 发动机号 */
-        private String engineNo;
-        /** VIN 码 */
-        private String vinNo;
-        /** 无牌标志 */
-        private String noLicenseFlag;
-        /** 号牌底色代码 */
-        private String licenseColorCode;
-        /** 使用性质代码(营运/非营运) */
-        private String useNatureCode;
-        /** 主车种代码 */
-        private String mainCarKindCode;
-        /** 车种代码 */
-        private String carKindCode;
-        /** 品牌型号名称 */
-        private String brandName;
-        /** 核定载客数 */
-        private String seatCount;
-        /** 核定载质量/吨位 */
-        private String tonCount;
-        /** 购置价(新车购置价) */
-        private String purchasePrice;
-        /** 基础购置价(车型基价) */
-        private String basePurchasePrice;
-        /** 排量/功率(L/kW) */
-        private Double exhaustScale;
-        /** 注册日期(初登) */
-        private String enrollDate;
-        /** 使用年限(商业险口径) */
-        private String useYearsBI;
-        /** 使用年限(交强险口径) */
-        private Integer useYearsCI;
-        /** 使用年限(设备口径) */
-        private String useYearsDI;
-        /** 过户标志 */
-        private String chgOwnerFlag;
-        /** 过户类型标志 */
-        private String chgTypeFlag;
-        /** 过户日期 */
-        private String chgOwnerDate;
-        /** 国别属性 */
-        private String countryNature;
-        /** 车型代码(平台车型ID) */
-        private String modelCode;
-        /** 行驶里程数(公里) */
-        private Integer runMiles;
-        /** 行驶地域代码 */
-        private String runAreaCode;
-        /** 交通违法记录说明 */
-        private String trafficViolationRecords;
-        /** 车身颜色代码 */
-        private String colorCode;
-        /** 制造厂商 */
-        private String madeFactory;
-        /** 出厂日期 */
-        private String makeDate;
-        /** 品牌系列 */
-        private String vehicleBrand;
-        /** 整备质量(kg) */
-        private Integer completeKerbMass;
-        /** 号牌种类代码 */
-        private String licenseKindCode;
-        /** 号牌分类 */
-        private String licenseCategory;
-        /** 续保标志(商业险) */
-        private String renewalFlagBI;
-        /** 出险频度等级/损失等级 */
-        private String damagedFactorGrade;
-        /** 特种车标志 */
-        private String specialVehicleFlag;
-        /** 按揭/贷款车辆标志 */
-        private String loanVehicleFlag;
-        /** 占比/份额(共保/共管) */
-        private String proportion;
-        /** 节能/新能源标志 */
-        private String energySavingOrNewEnergy;
-        /** 上次承保公司代码 */
-        private String lastProducerCode;
-        /** 抵押/债权标志 */
-        private String debtFlag;
-        /** 限行/限制标志 */
-        private String restricFlag;
-        /** 查询流水号(核档/车型查询) */
-        private String searchSequenceNo;
-        /** 是否营运出租车(网约/出租) */
-        private String isTaxi;
-        /** 燃料类型1 */
-        private String fuelType1;
-        /** 指定查询区域 */
-        private String specifiedQueryArea;
-        /** 行业车型代码 */
-        private String industryCarTypeCode;
-        /** 行业车型名称 */
-        private String industryCarTypeName;
-        /** 是否ABS */
-        private String carABSFlag;
-        /** 燃料类型2 */
-        private String fuelType2;
-        /** 微型车标志 */
-        private String miniCar;
-        /** 车辆所在地代码 */
-        private String carAddressCode;
-        /** 证件签发日期 */
-        private String issueDate;
-        /** 是否新加装设备 */
-        private String newDeviceFlag;
-        /** 发票号 */
-        private String invoiceNo;
-        /** 车主地址 */
-        private String ownerAddress;
-        /** 牵引车类型 */
-        private String tractorType;
-        /** 无赔优调整原因 */
-        private String noClaimAdjustReason;
-        /** 无赔优年数(商业险) */
-        private String noDamageYearsBI;
-        /** 无赔优年数(交强险) */
-        private String noDamageYearsCI;
-        /** 忠诚度未调整原因 */
-        private String noLoyaltyAdjustReason;
-        /** 动力类型(油/电/混动等) */
-        private String powerType;
-        /** 动力类型代码 */
-        private String powerTypeCode;
-        /** 车系 */
-        private String series;
-        /** 车系代码 */
-        private String seriesCode;
-        /** 优先服务商类型 */
-        private String priorityServicerType;
-        /** 优先服务商代码 */
-        private String priorityServicerCode;
-        /** 通知类型 */
-        private String noticeType;
-        /** 纯风险保费 */
-        private String pureRiskPremium;
-        /** 外籍/外地车标志 */
-        private String ecdemicVehicleFlag;
-        /** 新车标志 */
-        private String newCarFlag;
-        /** 预填排量(展示用途) */
-        private String prnExhaustScale;
-        /** 预填整备质量(展示用途) */
-        private String prnCompleteKerbMassNew;
-        /** 是否网约车标志 */
-        private Integer isNetworkCar;
-        /** 功率(kW) */
-        private String power;
-        /** 使用性质(如家用/营运) */
-        private String carUsage;
-        /** 验车人员 */
-        private String carChecker;
-        /** 验车时间 */
-        private String carCheckTime;
-        /** 核档/校验原因 */
-        private String verifyReason;
-        /** 延迟验车天数 */
-        private String carCheckDelayDays;
-        /** 核档其他原因说明 */
-        private String verifyReasonOtherReason;
-        /** 核档状态 */
-        private String verifyStatus;
-        /** 验车不通过原因 */
-        private String carCheckReason;
-        /** 验车其他原因 */
-        private String carCheckOtherReason;
-        /** 风险类型 */
-        private String riskType;
-        /** 车型唯一标识(外部平台) */
-        private String vehicleStyleUniqueId;
-        /** 是否新车(逻辑标识) */
-        private String isNewCar;
-        /** 交易前置车牌号(如查二手车) */
-        private String jyPreCarNo;
-
-    }
-
-    /**
-     * 被保险人
-     */
-    @Data
-    public static class Insured {
-        /** 序号(列表顺序) */
-        private String serialNo;
-        /** 客户代码(保险公司侧客户号) */
-        private String insuredCode;
-        /** 证件号/统一社会信用代码 */
-        private String identifyNumber;
-        /** 证件类型 */
-        private String identifyType;
-        /** 姓名/单位名称 */
-        private String insuredName;
-        /** 关系标志(1投保人/2被保人/3受益人等) */
-        private String insuredFlag;
-        /** 客户类型(个人/团体) */
-        private String insuredType;
-        /** 性别(个人适用) */
-        private String gender;
-        /** 客户性质(企事业等属性) */
-        private String insuredNature;
-        /** 固定电话 */
-        private String phoneNumber;
-        /** 手机号 */
-        private String mobile;
-        /** 通讯地址 */
-        private String insuredAddress;
-        /** 邮编 */
-        private String postCode;
-        /** 邮寄地址 */
-        private String postAddress;
-        /** 组织机构代码(旧) */
-        private String orgCode;
-        /** 年龄(个人适用) */
-        private Object age;
-        /** 生日(yyyy-MM-dd) */
-        private String birthDay;
-        /** 是否个体工商户 */
-        private String isIndividualBusi;
-        /** 公民身份标识(渤海字段) */
-        private String appliCitizenshipBC;
-        /** 国家/地区代码(渤海字段) */
-        private String appliCountryBC;
-        /** 邮箱 */
-        private String email;
-        /** 营业执照类型(单位适用) */
-        private String businessLicenseType;
-        /** 民族(个人适用) */
-        private String nation;
-        /** 证件地址 */
-        private String identifyAddress;
-        /** 证件有效期起 */
-        private String identifyStartDate;
-        /** 证件有效期止 */
-        private String identifyEndDate;
-        /** 与车辆关系(所有人/使用人等) */
-        private String carInsuredRelation;
-        /** 业务分类(客户分群) */
-        private String businessSort;
-        /** 联系人姓名 */
-        private String linkerName;
-
-        /** 是否特定关系人 */
-        private String isSpecialDInsured;
-
-        /** 特定关系人姓名 */
-        private String specialDInsuredName;
-        /** 特定关系人证件类型 */
-        private String specialDInsuredIDType;
-        /** 特定关系人证件号 */
-        private String specialDInsuredID;
-        /** 无特定关系人证明标记 */
-        private String noSpecialDInsuredP;
-        /** 是否指定受益人 */
-        private String benefitFlag;
-        /** 是否绿色产业客户 */
-        private String isGreenIndustryFlag;
-        /** 绿色产业一级编码 */
-        private String greenIndustryFCode;
-        /** 绿色产业二级编码 */
-        private String greenIndustrySCode;
-        /** 绿色产业三级编码 */
-        private String greenIndustryTCode;
-    }
-
-    /**
-     * 险种信息
-     */
-    @Data
-    public static class Risk {
-        /** 险别条款明细列表 */
-        private List<ItemKind> itemKindList;
-        /** 险种主信息(生效时间、折扣、系数等) */
-        private RiskMainInfo riskMainInfo;
-        /** 车船税信息(仅交强险相关) */
-        private CarShipTaxInfo carShipTaxInfo;
-    }
-    /**
-     * 险别条款
-     */
-    @Data
-    public static class ItemKind {
-        /** 险别序号 */
-        private String itemKindNo;
-        /** 险别代码 */
-        private String kindCode;
-        /** 险别名称 */
-        private String kindName;
-        /** 操作类型(新增/变更等) */
-        private String operateType;
-        /** 起期(yyyy-MM-dd) */
-        private String startDate;
-        /** 起期小时(00-24) */
-        private String startHour;
-        /** 止期(yyyy-MM-dd) */
-        private String endDate;
-        /** 止期小时(00-24) */
-        private String endHour;
-        /** 保额 */
-        private String amount;
-        /** 单位保额(按单位计价时使用) */
-        private String unitAmount;
-        /** 数量(座/件/次等) */
-        private String quantity;
-        /** 计费方式代码 */
-        private String modeCode;
-        /** 计费方式名称 */
-        private String modeName;
-        /** 短期费率标志 */
-        private String shortRateFlag;
-        /** 短期费率 */
-        private String shortRate;
-        /** 计算标志(是否计费) */
-        private String calculateFlag;
-        /** 费率(基础或实用) */
-        private String rate;
-        /** 不计免赔标志 */
-        private String notDeductibleFlag;
-        /** 免赔率/免赔比例 */
-        private String deductibleRatio;
-        /** 折扣系数(险别层面) */
-        private String discount;
-        /** 调整系数(人工或渠道) */
-        private String adjustRate;
-        /** 其它取值(如保额档次/档位) */
-        private String value;
-
-        // getter/setter省略
-    }
-    /**
-     * 险种主信息
-     */
-    @Data
-    public static class RiskMainInfo {
-        /** 是否含驾意险费用 */
-        private String isDrivingFee;
-        /** 农险标志 */
-        private String agriflag;
-        /** 险类代码(车险类) */
-        private String classCode;
-        /** 险种代码(交强/商业) */
-        private String riskCode;
-        /** 合同号/保单号(历史) */
-        private String contractNo;
-        /** 折扣(险种层面) */
-        private String discount;
-        /** 币种 */
-        private String currency;
-        /** 上年保单号 */
-        private String lastPolicyNo;
-        /** 续保标志 */
-        private String renewalFlag;
-        /** 起保日期 */
-        private String startDate;
-        /** 起保小时 */
-        private String startHour;
-        /** 止保日期 */
-        private String endDate;
-        /** 止保小时 */
-        private String endHour;
-        /** 是否即时生效 */
-        private String immediatelyActiveFlag;
-        /** 生效开始时间 */
-        private String activeStartTime;
-        /** 生效结束时间 */
-        private String activeEndTime;
-        /** 查询序号(核保/核价查询) */
-        private String querySequenceNo;
-        /** 确认序号(确认报价/核保) */
-        private String confirmSequenceNo;
-        /** 是否有特别约定 */
-        private String specialContractFlag;
-        /** 特别约定摘要 */
-        private String specialContractSummary;
-        /** 无波动费率标志 */
-        private String noneFluctuateFlag;
-        /** 无赔优系数(NCD) */
-        private String ncdCoefficient;
-        /** 渠道系数 */
-        private String channelCoefficient;
-        /** 承保系数(核保系数) */
-        private String underwritingCoefficient;
-        /** 调整系数(人工校正) */
-        private String adjustCoefficient;
-        /** 交通违法系数 */
-        private String trafficViolationCoefficient;
-        /** 渠道系数变动值 */
-        private String channelCoefficientVariation;
-        /** 承保系数变动值 */
-        private String underwritingCoefficientVariation;
-        /** 是否需要出报价 */
-        private String ifNeedQuote;
-        /** 期望费率 */
-        private String hopeRate;
-        /** 投保单号 */
-        private String proposalNo;
-        /** 客户属性 */
-        private String customerProperty;
-        /** 风险系数 */
-        private String riskCoefficient;
-        /** 商业因素系数 */
-        private String businessCoefficient;
-        /** 车辆因素系数 */
-        private String vehicleCoefficient;
-        /** 客户因素系数 */
-        private String customerCoefficient;
-        /** 车队系数 */
-        private String fleetCoefficient;
-        /** 条款类型 */
-        private String clauseType;
-        /** 签单日期 */
-        private String signDate;
-        /** 操作日期 */
-        private String operateDate;
-        /** 录入日期 */
-        private String inputDate;
-        /** 图片校验码 */
-        private String pictureVerificationCode;
-        /** 特别批复码 */
-        private String specialApprovalCode;
-        /** 团单编码/集团代码 */
-        private String groupBillCode;
-        /** 定价方案ID/价格ID */
-        private String priceId;
-        /** 不含税金额 */
-        private String noTaxAmount;
-        /** 税额 */
-        private String taxAmount;
-        /** 定价调整值 */
-        private String pricingAdjustValue;
-        /** 经验定价调整值 */
-        private String expPricingAdjustValue;
-        /** 不浮动费用率 */
-        private String NoneFluctuateFeeRate;
-
-        // getter/setter省略
-    }
-    /**
-     * 车船税信息
-     */
-    @Data
-    public static class CarShipTaxInfo {
-        /** 完税/免税凭证日期 */
-        private String taxDocumentDate;
-        /** 缴税所在地代码 */
-        private String taxPaidAreaCode;
-        /** 纳税人标识(类型+号码组合) */
-        private String taxPayerIdentifier;
-        /** 纳税人名称 */
-        private String taxPayerName;
-        /** 纳税人证件类型 */
-        private String taxPayerIdentifyNumberType;
-        /** 纳税人证件号码 */
-        private String taxPayerIdentifyNumber;
-        /** 纳税人组织机构代码 */
-        private String taxPayerOrgCode;
-        /** 空载质量(车船税口径) */
-        private Integer unladenMassCS;
-        /** 号牌分类(车船税口径) */
-        private String licenseCategory;
-        /** 证书/凭证日期 */
-        private String certificateDate;
-        /** 税务机构代码 */
-        private String taxComCode;
-        /** 税务机构名称 */
-        private String taxComName;
-        /** 税目代码 */
-        private String taxItemCode;
-        /** 税目名称 */
-        private String taxItemName;
-        /** 减免税标志 */
-        private String taxRelifFlag;
-        /** 减免税原因 */
-        private String reliefReason;
-        /** 计税基数 */
-        private String baseTaxation;
-        /** 减免税额 */
-        private String taxRelief;
-        /** 减免税比例 */
-        private String reliefRate;
-        /** 减免税说明 */
-        private String reliefDescription;
-        /** 已缴/免税凭证号 */
-        private String paidFreeCertificate;
-        /** 免税原因 */
-        private String exemptionReason;
-        /** 计费方式(按年/按月等) */
-        private String calculateMode;
-        /** 是否补缴上年税费 */
-        private String payLastYear;
-        /** 上年保单止期(参考) */
-        private String hisPolicyEndDate;
-        /** 补缴余额 */
-        private String payBalanceFee;
-        /** 滞纳金起算日期 */
-        private String lateFeeStartDate;
-        /** 是否计算滞纳金 */
-        private String calLateFeeFlag;
-        /** 是否计算补缴余额 */
-        private String calPayBalanceFeeFlag;
-        /** 税种类型 */
-        private String taxType;
-        /** 税务编号类型 */
-        private String taxNumType;
-        /** 税务编号 */
-        private String taxNum;
-        /** 缴税日期 */
-        private String payTaxDate;
-        /** 车主性质(个人/单位) */
-        private String carOwnerNature;
-        /** 整备质量(车船税口径) */
-        private String completeKerbMass;
-        /** 车主姓名/单位名称 */
-        private String carOwnerName;
-        /** 地址(行政区划) */
-        private String addressName;
-        /** 邮寄地址 */
-        private String postAddress;
-        /** 邮编 */
-        private String postCode;
-        /** 联系电话 */
-        private String phoneNumber;
-        /** 车辆所在地代码 */
-        private String carAddressCode;
-        /** 单位名称(单位车主适用) */
-        private String companyName;
-        /** 组织机构证书号/单位证件号 */
-        private String unitCertiNo;
-        /** 注册地址 */
-        private String registeredAddress;
-        /** 原号牌号码(过户/变更) */
-        private String preLicenseNo;
-        /** 交易日期 */
-        private String transactionDate;
-        /** 备用日期1 */
-        private String extendDate1;
-        /** 计算机编号/流水 */
-        private String computerNo;
-        /** 国家代码 */
-        private String countryCode;
-        /** 车辆所在地街道代码 */
-        private String carAddressStreetCode;
-        /** 使用性质(税收口径) */
-        private String useType;
-        /** 统一社会信用代码(单位) */
-        private String creditCode;
-        /** 缴税开始日期 */
-        private String payStartDate;
-        /** 缴税结束日期 */
-        private String payEndDate;
-        /** 是否计算税费 */
-        private String calFeeFlag;
-        /** 身份识别号(税务) */
-        private String identificationNo;
-        /** 证件类型(税务) */
-        private String certificateType;
-    }
-}

+ 1 - 1
tenant/insurance/quotation-zijin/src/main/java/com/jzg/quotation/zijin/crawler/entity/request/quote/ProposalInfoDTO.java

@@ -11,7 +11,7 @@ import java.io.Serial;
 import java.io.Serializable;
 import java.io.Serializable;
 
 
 /**
 /**
- * 渤海保险报价投保信息DTO
+ * 紫金保险报价投保信息DTO
  * 用于封装保险报价请求中的投保相关信息
  * 用于封装保险报价请求中的投保相关信息
  * 
  * 
  * @author system
  * @author system

+ 7 - 9
tenant/insurance/quotation-zijin/src/main/java/com/jzg/quotation/zijin/crawler/entity/request/quote/VehicleInfoDTO.java

@@ -1,5 +1,4 @@
 package com.jzg.quotation.zijin.crawler.entity.request.quote;
 package com.jzg.quotation.zijin.crawler.entity.request.quote;
-
 import com.fasterxml.jackson.annotation.JsonProperty;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import com.jzg.commons.entity.quote.vo.CarInfoVo;
 import com.jzg.commons.entity.quote.vo.CarInfoVo;
 import com.jzg.commons.util.StringUtils;
 import com.jzg.commons.util.StringUtils;
@@ -8,9 +7,8 @@ import com.jzg.quotation.commons.utils.TimeProcessing;
 import lombok.Data;
 import lombok.Data;
 import lombok.NoArgsConstructor;
 import lombok.NoArgsConstructor;
 
 
-
 /**
 /**
- * 渤海保险车辆信息请求DTO
+ * 紫金保险车辆信息请求DTO
  * 包含车辆基本信息、证件信息、价格信息等完整数据
  * 包含车辆基本信息、证件信息、价格信息等完整数据
  */
  */
 @NoArgsConstructor
 @NoArgsConstructor
@@ -594,15 +592,15 @@ public class VehicleInfoDTO {
      * @param car 爬虫响应中的车辆数据
      * @param car 爬虫响应中的车辆数据
      * @param ownerName 车主姓名
      * @param ownerName 车主姓名
      */
      */
-    public VehicleInfoDTO(CarInfoVo carInfoVo, ZiJinCrawlerCarResponse.ListDTO car, String ownerName) {
+    /*public VehicleInfoDTO(CarInfoVo carInfoVo, ZiJinCrawlerCarResponse.ListDTO car, String ownerName) {
         this.pureRange = "";
         this.pureRange = "";
         this.approvedLoad = carInfoVo.getLimitLoad();
         this.approvedLoad = carInfoVo.getLimitLoad();
         //this.brand = car.getVehicleName();
         //this.brand = car.getVehicleName();
         this.brandName = car.getModelCode();
         this.brandName = car.getModelCode();
         this.buyCarDate = "";
         this.buyCarDate = "";
         this.carOwnerName = ownerName;
         this.carOwnerName = ownerName;
-        /*UsedYearCode usedYearCode = UsedYearCode.getUsedYearCode(daJiaCrawlerActualValueResponse.getUsedYear());
-        this.carYear = usedYearCode.getCode();*/
+        *//*UsedYearCode usedYearCode = UsedYearCode.getUsedYearCode(daJiaCrawlerActualValueResponse.getUsedYear());
+        this.carYear = usedYearCode.getCode();*//*
 
 
         this.certificationDate = TimeProcessing.dateToDateTime(carInfoVo.getIssueDate());
         this.certificationDate = TimeProcessing.dateToDateTime(carInfoVo.getIssueDate());
         this.colorCode = "";
         this.colorCode = "";
@@ -631,8 +629,8 @@ public class VehicleInfoDTO {
         }
         }
         this.loanVehicleFlag = "0";
         this.loanVehicleFlag = "0";
         this.motorType = carInfoVo.getCarTypeCode();
         this.motorType = carInfoVo.getCarTypeCode();
-        /*this.negotiatedActulValue = daJiaCrawlerActualValueResponse.getActualValue();
-        this.negotiatedValue = daJiaCrawlerActualValueResponse.getActualValue();*/
+        *//*this.negotiatedActulValue = daJiaCrawlerActualValueResponse.getActualValue();
+        this.negotiatedValue = daJiaCrawlerActualValueResponse.getActualValue();*//*
         // 新车编制
         // 新车编制
         if (StringUtils.hasText(carInfoVo.getLicenseNo())) {
         if (StringUtils.hasText(carInfoVo.getLicenseNo())) {
             this.newCarFlag = "0";
             this.newCarFlag = "0";
@@ -670,5 +668,5 @@ public class VehicleInfoDTO {
         this.industryModelCode = "";
         this.industryModelCode = "";
         this.ocrTaskId = "";
         this.ocrTaskId = "";
         this.vehicleTypeNew = car.getNewVehicleClassCode();
         this.vehicleTypeNew = car.getNewVehicleClassCode();
-    }
+    }*/
 }
 }

+ 147 - 448
tenant/insurance/quotation-zijin/src/main/java/com/jzg/quotation/zijin/crawler/entity/response/ZiJinCrawlerCarResponse.java

@@ -1,9 +1,5 @@
 package com.jzg.quotation.zijin.crawler.entity.response;
 package com.jzg.quotation.zijin.crawler.entity.response;
 
 
-import com.fasterxml.jackson.annotation.JsonProperty;
-import com.jzg.quotation.zijin.crawler.entity.request.quote.CarModelDataDTO;
-import com.jzg.quotation.commons.filter.CarModelsFilter;
-import lombok.AllArgsConstructor;
 import lombok.Data;
 import lombok.Data;
 import lombok.NoArgsConstructor;
 import lombok.NoArgsConstructor;
 
 
@@ -12,7 +8,7 @@ import java.io.Serializable;
 import java.util.List;
 import java.util.List;
 
 
 /**
 /**
- * 渤海保险车辆查询响应类
+ * 紫金保险车辆查询响应类
  */
  */
 @NoArgsConstructor
 @NoArgsConstructor
 @Data
 @Data
@@ -22,666 +18,369 @@ public class ZiJinCrawlerCarResponse implements Serializable {
     private static final long serialVersionUID = 8290844541630850445L;
     private static final long serialVersionUID = 8290844541630850445L;
 
 
     /**
     /**
-     * 基础部分
+     * 返回码
      */
      */
-    @JsonProperty("basePart")
-    private Object basePart;
-
-    @JsonProperty("prpDCarModels")
-    private List<PrpDCarModel> prpDCarModels;
+    private String rtnCode;
 
 
     /**
     /**
-     * 车型价格列表
+     * 返回消息
      */
      */
-    @JsonProperty("modelPrices")
-    private Object modelPrices;
+    private String rtnMsg;
 
 
     /**
     /**
-     * 交管车辆模型填充信息
+     * 待选的车辆识别代号列表
      */
      */
-    @JsonProperty("jyCarModelFill")
-    private JyCarModelFill jyCarModelFill;
+    private List<String> toSelectedVinList;
 
 
     /**
     /**
-     * 交管填充错误信息
+     * 车辆基础信息对象
      */
      */
-    @JsonProperty("jyFillErrorMsg")
-    private String jyFillErrorMsg;
+    private VehicleBaseInfo vehicleBaseInfo;
 
 
     /**
     /**
-     * 预填错误信息
+     * 车辆型号信息列表
      */
      */
-    @JsonProperty("preFillErrorMsg")
-    private String preFillErrorMsg;
+    private List<VehicleModelInfo> vehicleModelInfoList;
 
 
     /**
     /**
-     * 渤海保险车辆信息DTO
-     * 包含车辆基本信息、配置参数、价格等详细数据
+     * 车辆基础信息类
      */
      */
     @NoArgsConstructor
     @NoArgsConstructor
     @Data
     @Data
-    public static class ListDTO implements Serializable, CarModelsFilter {
+    public static class VehicleBaseInfo implements Serializable {
+
         @Serial
         @Serial
-        private static final long serialVersionUID = -9139048419262298709L;
+        private static final long serialVersionUID = -345678901234567890L;
 
 
         /**
         /**
-         * 车型代码
+         * 车辆识别代号 (VIN)
          */
          */
-        @JsonProperty("modelCode")
-        private String modelCode;
+        private String vin;
 
 
         /**
         /**
-         * 行业车型代码
+         * 整备质量 (kg)
          */
          */
-        @JsonProperty("industryCarTypeCode")
-        private String industryCarTypeCode;
+        private Double completeKerbMass;
 
 
         /**
         /**
-         * 行业车型名称
+         * 发动机号
          */
          */
-        @JsonProperty("industryCarTypeName")
-        private String industryCarTypeName;
+        private String engine;
 
 
         /**
         /**
-         * 简称代码
+         * 发动机型号
          */
          */
-        @JsonProperty("shorthandCode")
-        private String shorthandCode;
+        private String engineModel;
 
 
         /**
         /**
-         * 车辆种类
+         * 排气量
          */
          */
-        @JsonProperty("carKind")
-        private String carKind;
+        private Double exhaustScale;
 
 
         /**
         /**
-         * 车辆类型
+         * 功率
          */
          */
-        @JsonProperty("carStyle")
-        private String carStyle;
+        private Double power;
 
 
         /**
         /**
-         * 车型名称
+         * 吨位数
          */
          */
-        @JsonProperty("modelName")
-        private String modelName;
+        private Integer tonCount;
 
 
         /**
         /**
-         * 车系名称
+         * 牵引能力
          */
          */
-        @JsonProperty("carSeriesName")
-        private String carSeriesName;
+        private String haulage;
 
 
         /**
         /**
          * 座位数
          * 座位数
          */
          */
-        @JsonProperty("seatCount")
-        private String seatCount;
-
-        /**
-         * 吨位
-         */
-        @JsonProperty("tonCount")
-        private String tonCount;
-
-        /**
-         * 排量
-         */
-        @JsonProperty("exhaustScale")
-        private String exhaustScale;
+        private Integer seatCount;
+    }
 
 
-        /**
-         * 厂家
-         */
-        @JsonProperty("factory")
-        private String factory;
+    /**
+     * 车辆型号信息类
+     */
+    @NoArgsConstructor
+    @Data
+    public static class VehicleModelInfo implements Serializable {
 
 
-        /**
-         * 国别代码
-         */
-        @JsonProperty("countryCode")
-        private String countryCode;
+        @Serial
+        private static final long serialVersionUID = -1234567890123456789L;
 
 
         /**
         /**
-         * 购置价
+         * 品牌代码
          */
          */
-        @JsonProperty("purchasePrice")
-        private String purchasePrice;
+        private String brandCode;
 
 
         /**
         /**
-         * 风险范围
+         * 品牌名称
          */
          */
-        @JsonProperty("riskScope")
-        private String riskScope;
+        private String brandName;
 
 
         /**
         /**
-         * 有效日期
+         * 排量 (L)
          */
          */
-        @JsonProperty("validDate")
-        private String validDate;
+        private String displacement;
 
 
         /**
         /**
-         * 有效状态
+         * 车系代码
          */
          */
-        @JsonProperty("validstatus")
-        private String validstatus;
+        private String familyCode;
 
 
         /**
         /**
-         * 备注
+         * 车系名称
          */
          */
-        @JsonProperty("remark")
-        private String remark;
+        private String familyName;
 
 
         /**
         /**
-         * 标志
+         * 生产厂家代码
          */
          */
-        @JsonProperty("flag")
-        private String flag;
+        private String companyCode;
 
 
         /**
         /**
-         * 系数1
+         * 生产厂家名称
          */
          */
-        @JsonProperty("coefficient1")
-        private String coefficient1;
+        private String companyName;
 
 
         /**
         /**
-         * 系数2
+         * 车型别名/配置代码
          */
          */
-        @JsonProperty("coefficient2")
-        private String coefficient2;
+        private String aliasCode;
 
 
         /**
         /**
-         * 车辆品牌
+         * 车型别名/配置名称
          */
          */
-        @JsonProperty("carBrand")
-        private String carBrand;
+        private String aliasName;
 
 
         /**
         /**
-         * 车辆年款
+         * 整备质量最大值
          */
          */
-        @JsonProperty("carYear")
-        private String carYear;
+        private String fullWeightMax;
 
 
         /**
         /**
-         * 车系代码
+         * 整备质量最小值
          */
          */
-        @JsonProperty("carSeriesCode")
-        private String carSeriesCode;
+        private String fullWeightMin;
 
 
         /**
         /**
          * 整备质量
          * 整备质量
          */
          */
-        @JsonProperty("completeKerbMass")
-        private String completeKerbMass;
+        private String fullWeight;
 
 
         /**
         /**
-         * 风险类型
+         * 变速箱类型
          */
          */
-        @JsonProperty("riskType")
-        private String riskType;
+        private String gearboxType;
 
 
         /**
         /**
-         * 厂家代码
+         * 交强险保险类别代码
          */
          */
-        @JsonProperty("factoryCode")
-        private String factoryCode;
+        private String jqxInsuranceId;
 
 
         /**
         /**
-         * 车辆品牌代码
+         * 交强险保险类别名称
          */
          */
-        @JsonProperty("carBrandCode")
-        private String carBrandCode;
+        private String jqxInsuranceName;
 
 
         /**
         /**
-         * 安全装置
+         * 亲属价格,此处为0
          */
          */
-        @JsonProperty("safeDevice")
-        private String safeDevice;
+        private String kindredPrice;
 
 
         /**
         /**
-         * 气囊
+         * 含税亲属价格,此处为0
          */
          */
-        @JsonProperty("airbag")
-        private String airbag;
-
-        /**
-         * ABS标志
-         */
-        @JsonProperty("absFlag")
-        private String absFlag;
+        private String kindredPriceTax;
 
 
         /**
         /**
-         * 座位数上限
+         * 购置价格(裸价)
          */
          */
-        @JsonProperty("seatCountUpper")
-        private String seatCountUpper;
-
-        /**
-         * 座位数下限
-         */
-        @JsonProperty("seatCountLower")
-        private String seatCountLower;
+        private String purchasePrice;
 
 
         /**
         /**
-         * 购置价税
+         * 购置价格(含税)
          */
          */
-        @JsonProperty("purchasePriceTax")
         private String purchasePriceTax;
         private String purchasePriceTax;
 
 
         /**
         /**
-         * 模拟价格
+         * 上市日期 (YYYYMM)
          */
          */
-        @JsonProperty("analogPrice")
-        private String analogPrice;
-
-        /**
-         * 模拟价格税
-         */
-        @JsonProperty("analogPriceTax")
-        private String analogPriceTax;
-
-        /**
-         * 动力类型
-         */
-        @JsonProperty("powerType")
-        private String powerType;
-
-        /**
-         * 动力类型代码
-         */
-        @JsonProperty("powerTypeCode")
-        private String powerTypeCode;
-
-        /**
-         * 减半名称
-         */
-        @JsonProperty("hfName")
-        private String hfName;
-
-        /**
-         * 减半代码
-         */
-        @JsonProperty("hfCode")
-        private String hfCode;
-
-        /**
-         * 分组名称
-         */
-        @JsonProperty("groupName")
-        private String groupName;
-
-        /**
-         * 分组代码
-         */
-        @JsonProperty("groupCode")
-        private String groupCode;
-
-        /**
-         * 新车辆分类
-         */
-        @JsonProperty("newVehiclecLass")
-        private String newVehiclecLass;
-
-        /**
-         * 新车辆分类代码
-         */
-        @JsonProperty("newVehicleClassCode")
-        private String newVehicleClassCode;
-
-        /**
-         * 座位最小值
-         */
-        @JsonProperty("seatMin")
-        private String seatMin;
-
-        /**
-         * 座位最大值
-         */
-        @JsonProperty("seatMax")
-        private String seatMax;
+        private String marketDate;
 
 
         /**
         /**
          * 功率
          * 功率
          */
          */
-        @JsonProperty("power")
         private String power;
         private String power;
 
 
         /**
         /**
-         * 上市日期
+         * 备注,包含驱动、排放标准等信息
          */
          */
-        @JsonProperty("marketDate")
-        private String marketDate;
-
-        /**
-         * 商业险分类名称
-         */
-        @JsonProperty("syxClassname")
-        private String syxClassname;
-
-        /**
-         * 厂家ID
-         */
-        @JsonProperty("cfactoryId")
-        private String cfactoryId;
-
-        /**
-         * 车系ID
-         */
-        @JsonProperty("cfamilId")
-        private String cfamilId;
-
-        /**
-         * 变速器类型
-         */
-        @JsonProperty("ctransmissionType")
-        private String ctransmissionType;
-
-        /**
-         * 车辆ID
-         */
-        @JsonProperty("crefVegicleId")
-        private String crefVegicleId;
-
-        /**
-         * 质量最小值
-         */
-        @JsonProperty("cqualityMin")
-        private String cqualityMin;
-
-        /**
-         * 红色车辆标识
-         */
-        @JsonProperty("ckindRedCar")
-        private String ckindRedCar;
+        private String remark;
 
 
         /**
         /**
-         * 创建时间
+         * 搜索代码
          */
          */
-        @JsonProperty("tdateCreated")
-        private String tdateCreated;
+        private String searchCode;
 
 
         /**
         /**
-         * 更新时间
+         * 状态,此处为空
          */
          */
-        @JsonProperty("tdateUpdated")
-        private String tdateUpdated;
+        private String status;
 
 
         /**
         /**
-         * 商业险分类ID
+         * 停产标志
          */
          */
-        @JsonProperty("syxclassId")
-        private String syxclassId;
+        private String stopFlag;
 
 
         /**
         /**
-         * 交强险分类ID
+         * 商业险保险类别代码
          */
          */
-        @JsonProperty("jqxclassId")
-        private String jqxclassId;
+        private String syxInsuranceId;
 
 
         /**
         /**
-         * 状态
+         * 商业险保险类别名称
          */
          */
-        @JsonProperty("nstate")
-        private String nstate;
-
-        @Override
-        public String getCarYear() {
-            return carYear;
-        }
-
-        @Override
-        public String getPurchasePrice() {
-            return purchasePrice;
-        }
-    }
-
-    /**
-     * 交管车辆模型填充信息
-     * 对应JSON中的jyCarModelFill对象
-     */
-    @NoArgsConstructor
-    @Data
-    public static class JyCarModelFill implements Serializable {
-        @Serial
-        private static final long serialVersionUID = 1234567890123456789L;
+        private String syxInsuranceName;
 
 
         /**
         /**
-         * 参考号
+         * 座位数
          */
          */
-        @JsonProperty("referenceNo")
-        private String referenceNo;
+        private String seat;
 
 
         /**
         /**
-         * 时间戳
+         * 最大座位数,此处为空
          */
          */
-        @JsonProperty("reTimestamp")
-        private String reTimestamp;
+        private String seatMax;
 
 
         /**
         /**
-         * 是否新车
+         * 最小座位数,此处为空
          */
          */
-        @JsonProperty("isNewCar")
-        private String isNewCar;
+        private String seatMin;
 
 
         /**
         /**
-         * 车牌号
+         * 吨位,此处为空
          */
          */
-        @JsonProperty("plateNumber")
-        private String plateNumber;
+        private String tonnage;
 
 
         /**
         /**
-         * VIN码
+         * 车辆类别
          */
          */
-        @JsonProperty("vinCodeRe")
-        private String vinCodeRe;
+        private String vehicleClass;
 
 
         /**
         /**
-         * 追踪号
+         * 车辆类别代码
          */
          */
-        @JsonProperty("trackingNumber")
-        private String trackingNumber;
+        private String vehicleClassCode;
 
 
         /**
         /**
-         * 整体状态
+         * 车型代码
          */
          */
-        @JsonProperty("overallStatus")
-        private String overallStatus;
+        private String vehicleCode;
 
 
         /**
         /**
-         * 整体消息
+         * 进口标志 (0: 国产)
          */
          */
-        @JsonProperty("overallMessage")
-        private String overallMessage;
+        private String vehicleImport;
 
 
         /**
         /**
-         * 交易ID
+         * 进口标志名称,此处为空
          */
          */
-        @JsonProperty("transactionID")
-        private String transactionID;
+        private String vehicleImportName;
 
 
         /**
         /**
-         * 响应版本
+         * 车辆正式名称
          */
          */
-        @JsonProperty("responseVersion")
-        private String responseVersion;
+        private String vehicleName;
 
 
         /**
         /**
-         * 结果代码
+         * ABS防抱死系统标志 ("有": 配备)
          */
          */
-        @JsonProperty("resultCode")
-        private String resultCode;
+        private String absFlag;
 
 
         /**
         /**
-         * 结果描述
+         * 防盗报警器标志 ("1": 配备)
          */
          */
-        @JsonProperty("resultDesc")
-        private String resultDesc;
+        private String alarmFlag;
 
 
         /**
         /**
-         * VIN码
+         * 安全气囊数量
          */
          */
-        @JsonProperty("vinCode")
-        private String vinCode;
+        private String airbagNum;
 
 
         /**
         /**
-         * 整备质量
+         * 风险标志
          */
          */
-        @JsonProperty("curbWeight")
-        private String curbWeight;
+        private String riskFlag;
 
 
         /**
         /**
-         * 排量
+         * 车型组别代码
          */
          */
-        @JsonProperty("displacement")
-        private String displacement;
+        private String groupCode;
 
 
         /**
         /**
-         * 发动机型号
+         * 车型组别名称,包含生产年份段
          */
          */
-        @JsonProperty("engineModel")
-        private String engineModel;
+        private String groupName;
 
 
         /**
         /**
-         * 发动机号
+         * 变速箱代码,此处为空
          */
          */
-        @JsonProperty("engineNumber")
-        private String engineNumber;
+        private String gearboxCode;
 
 
         /**
         /**
-         * 功率
+         * 车辆公告代码
          */
          */
-        @JsonProperty("powerNum")
-        private String powerNum;
+        private String vehiclePubCode;
 
 
         /**
         /**
-         * 额定载客
+         * 燃料类型
          */
          */
-        @JsonProperty("ratedCapacity")
-        private String ratedCapacity;
+        private String powerType;
 
 
         /**
         /**
-         * 额定载荷
+         * 燃料类型代码
          */
          */
-        @JsonProperty("ratedLoad")
-        private String ratedLoad;
+        private String powerTypeCode;
 
 
         /**
         /**
-         * 总质量牵引
+         * "hf"状态名称 (推测为某种业务状态)
          */
          */
-        @JsonProperty("totalMassTraction")
-        private String totalMassTraction;
+        private String hfName;
 
 
         /**
         /**
-         * 使用性质
+         * "hf"状态代码
          */
          */
-        @JsonProperty("useCharacter")
-        private String useCharacter;
+        private String hfCode;
 
 
         /**
         /**
-         * 注册日期
+         * 车辆级别名称,此处为空
          */
          */
-        @JsonProperty("registerDate")
-        private String registerDate;
+        private String classLevelName;
 
 
         /**
         /**
-         * 机构代码
+         * 车辆级别代码,此处为空
          */
          */
-        @JsonProperty("comCode")
-        private String comCode;
+        private String classLevelCode;
 
 
         /**
         /**
-         * 操作员代码
+         * "hf"状态开始日期
          */
          */
-        @JsonProperty("operatorCode")
-        private String operatorCode;
+        private String hfStartDate;
 
 
         /**
         /**
-         * 资源类型代码
+         * "hf"状态结束日期
          */
          */
-        @JsonProperty("resourceTypeCode")
-        private String resourceTypeCode;
+        private String hfEndDate;
 
 
         /**
         /**
-         * 车牌颜色
+         * IAC车辆代码(行业车型编码)
          */
          */
-        @JsonProperty("plateNoColor")
-        private String plateNoColor;
+        private String iacVehicleCode;
 
 
         /**
         /**
-         * 有效状态
+         * 数据来源
          */
          */
-        @JsonProperty("validStatus")
-        private String validStatus;
-    }
-
-    @Data
-    @NoArgsConstructor
-    @AllArgsConstructor
-    public static class PrpDCarModel {
-        private String modelCode;
-        private String industryCarTypeCode;
-        private String industryCarTypeName;
-        private String shorthandCode;
-        private String carKind;
-        private String carStyle;
-        private String modelName;
-        private String carSeriesName;
-        private String seatCount;
-        private String tonCount;
-        private String exhaustScale;
-        private String factory;
-        private String countryCode;
-
-        /**
-         * 购买价值
-         */
-        private String purchasePrice;
-
-        private String riskScope;
-        private String validDate;
-        private String validstatus;
-        private String remark;
-        private String flag;
-        private String coefficient1;
-        private String coefficient2;
-        private String carBrand;
-        private String carYear;
-        private String carSeriesCode;
-        private String completeKerbMass;
-        private String riskType;
-        private String factoryCode;
-        private String carBrandCode;
-        private String safeDevice;
-        private String airbag;
-        private String absFlag;
-        private String seatCountUpper;
-        private String seatCountLower;
-        private String purchasePriceTax;
-        private String analogPrice;
-        private String analogPriceTax;
-        private String powerType;
-        private String powerTypeCode;
-        private String hfName;
-        private String hfCode;
-        private String groupName;
-        private String groupCode;
-        private String newVehiclecLass;
-        private String newVehicleClassCode;
-        private String seatMin;
-        private String seatMax;
-        private String power;
-        private String marketDate;
-        private String syxClassname;
-        private String cfactoryId;
-        private String cfamilId;
-        private String ctransmissionType;
-        private String crefVegicleId;
-        private String cqualityMin;
-        private String ckindRedCar;
-        private String tdateCreated;
-        private String tdateUpdated;
-        private String syxclassId;
-        private String jqxclassId;
-        private String nstate;
+        private String dataSource;
     }
     }
 }
 }

+ 0 - 402
tenant/insurance/quotation-zijin/src/main/java/com/jzg/quotation/zijin/crawler/entity/response/ZiJinCrawlerCarResponse1.java

@@ -1,402 +0,0 @@
-package com.jzg.quotation.zijin.crawler.entity.response;
-
-import com.fasterxml.jackson.annotation.JsonProperty;
-import com.jzg.quotation.commons.filter.CarModelsFilter;
-import lombok.Data;
-import lombok.NoArgsConstructor;
-
-import java.io.Serial;
-import java.io.Serializable;
-import java.util.List;
-
-/**
- * 渤海保险车辆信息爬虫响应类
- * 包含分页查询的车辆列表数据
- */
-@NoArgsConstructor
-@Data
-public class ZiJinCrawlerCarResponse1 implements Serializable {
-
-    @Serial
-    private static final long serialVersionUID = 8290844541630850445L;
-
-    /**
-     * 当前页码
-     */
-    @JsonProperty("pageNum")
-    private Integer pageNum;
-
-    /**
-     * 每页大小
-     */
-    @JsonProperty("pageSize")
-    private Integer pageSize;
-
-    /**
-     * 车辆列表
-     */
-    @JsonProperty("list")
-    private List<ListDTO> list;
-
-    /**
-     * 总数
-     */
-    @JsonProperty("total")
-    private Integer total;
-
-    /**
-     * 渠道订单号
-     */
-    @JsonProperty("channelOrderNo")
-    private String channelOrderNo;
-
-    /**
-     * 渤海保险车辆信息DTO
-     * 包含车辆基本信息、配置参数、价格等详细数据
-     */
-    @NoArgsConstructor
-    @Data
-    public static class ListDTO implements Serializable, CarModelsFilter {
-        @Serial
-        private static final long serialVersionUID = -9139048419262298709L;
-
-        /**
-         * 车型代码
-         */
-        @JsonProperty("vehicleId")
-        private String vehicleId;
-
-        /**
-         * 品牌ID
-         */
-        @JsonProperty("brandId")
-        private String brandId;
-        /**
-         * 车型名称
-         */
-        @JsonProperty("vehicleName")
-        private String vehicleName;
-
-        /**
-         * 车型编码
-         */
-        @JsonProperty("vehicleModelCode")
-        private String vehicleModelCode;
-
-        /**
-         * 车型别名
-         */
-        @JsonProperty("vehicleAlias")
-        private String vehicleAlias;
-
-        /**
-         * 车辆制造商
-         */
-        @JsonProperty("vehicleMaker")
-        private String vehicleMaker;
-        /**
-         * 上市年份
-         */
-        @JsonProperty("yearPattern")
-        private String yearPattern;
-
-        /**
-         * 品牌名称
-         */
-        @JsonProperty("brandName")
-        private String brandName;
-
-        /**
-         * 车系名称
-         */
-        @JsonProperty("familyName")
-        private String familyName;
-
-        /**
-         * 车辆级别
-         */
-        @JsonProperty("vehicleClass")
-        private String vehicleClass;
-
-        /**
-         * 车辆类型
-         */
-        @JsonProperty("vehicleType")
-        private String vehicleType;
-
-        /**
-         * 商业险分类名称
-         */
-        @JsonProperty("syxClassname")
-        private String syxClassname;
-
-        /**
-         * 交强险分类名称
-         */
-        @JsonProperty("jqxClassname")
-        private String jqxClassname;
-
-        /**
-         * 搜索代码
-         */
-        @JsonProperty("searchCode")
-        private String searchCode;
-        /**
-         * 排量
-         */
-        @JsonProperty("vehicleExhaust")
-        private String vehicleExhaust;
-
-        /**
-         * 车辆吨位
-         */
-        @JsonProperty("vehicleTonnage")
-        private String vehicleTonnage;
-        /**
-         * 核定载客
-         */
-        @JsonProperty("vehicleSeat")
-        private Integer vehicleSeat;
-
-        /**
-         * 车辆价税
-         */
-        @JsonProperty("vehiclePriceTax")
-        private Integer vehiclePriceTax;
-
-        /**
-         * 防盗装置
-         */
-        @JsonProperty("antiTheft")
-        private String antiTheft;
-
-        /**
-         * 安全气囊
-         */
-        @JsonProperty("airbag")
-        private String airbag;
-
-        /**
-         * ABS标志
-         */
-        @JsonProperty("absFlag")
-        private String absFlag;
-
-        /**
-         * 变速器类型
-         */
-        @JsonProperty("transmissionType")
-        private String transmissionType;
-
-        /**
-         * 备注
-         */
-        @JsonProperty("remark")
-        private String remark;
-
-        /**
-         * 最大质量
-         */
-        @JsonProperty("qualityMax")
-        private Integer qualityMax;
-
-        /**
-         * 最小质量
-         */
-        @JsonProperty("qualityMin")
-        private Integer qualityMin;
-
-        /**
-         * 新车购置价
-         */
-        @JsonProperty("vehiclePrice")
-        private String vehiclePrice;
-
-        /**
-         * 车辆价税1
-         */
-        @JsonProperty("vehiclePriceTax1")
-        private String vehiclePriceTax1;
-
-        /**
-         * 厂家ID
-         */
-        @JsonProperty("factoryId")
-        private String factoryId;
-
-        /**
-         * 功率
-         */
-        @JsonProperty("power")
-        private String power;
-        /**
-         * 车辆类型(新)
-         */
-        @JsonProperty("vehicleTypeNew")
-        private String vehicleTypeNew;
-        /**
-         * 燃料类型代码
-         */
-        @JsonProperty("powerTypeCode")
-        private String powerTypeCode;
-        /**
-         * 燃料类型名称
-         */
-        @JsonProperty("powerTypeName")
-        private String powerTypeName;
-
-        /**
-         * 车船税标志
-         */
-        @JsonProperty("travelTaxMark")
-        private String travelTaxMark;
-
-        /**
-         * 车辆型号代码
-         */
-        @JsonProperty("vehicleHyCode")
-        private String vehicleHyCode;
-
-        /**
-         * 车辆型号名称
-         */
-        @JsonProperty("vehicleHyName")
-        private String vehicleHyName;
-
-        /**
-         * 底盘型号
-         */
-        @JsonProperty("cfrmNo")
-        private String cfrmNo;
-
-        /**
-         * 发动机型号
-         */
-        @JsonProperty("cengNo")
-        private String cengNo;
-
-        /**
-         * 车牌号码
-         */
-        @JsonProperty("cplateNo")
-        private String cplateNo;
-
-        /**
-         * 整备质量
-         */
-        @JsonProperty("ncurbWt")
-        private String ncurbWt;
-
-        /**
-         * 车牌类型
-         */
-        @JsonProperty("cplateTyp")
-        private String cplateTyp;
-
-        /**
-         * 过户日期
-         */
-        @JsonProperty("ttransferDate")
-        private String ttransferDate;
-
-        /**
-         * 注册车辆类型
-         */
-        @JsonProperty("cregVhlTyp")
-        private String cregVhlTyp;
-
-        /**
-         * 车辆类型代码
-         */
-        @JsonProperty("cvhlTyp")
-        private String cvhlTyp;
-
-        /**
-         * 使用性质代码
-         */
-        @JsonProperty("cusageCde")
-        private String cusageCde;
-
-        /**
-         * 初登日期
-         */
-        @JsonProperty("cfstRegYmBar")
-        private String cfstRegYmBar;
-
-        /**
-         * 座位数
-         */
-        @JsonProperty("nseatNum")
-        private String nseatNum;
-
-        /**
-         * 吨位
-         */
-        @JsonProperty("ntonage")
-        private String ntonage;
-
-        /**
-         * 排量
-         */
-        @JsonProperty("ndisplacement")
-        private String ndisplacement;
-
-        /**
-         * 注册所有人
-         */
-        @JsonProperty("cregOwner")
-        private String cregOwner;
-
-        /**
-         * 挂车使用性质代码
-         */
-        @JsonProperty("ctraUsageCde")
-        private String ctraUsageCde;
-
-        /**
-         * 挂车
-         */
-        @JsonProperty("chaulge")
-        private String chaulge;
-
-        /**
-         * 发证日期
-         */
-        @JsonProperty("tcertificateDate")
-        private String tcertificateDate;
-
-        /**
-         * 燃料类型
-         */
-        @JsonProperty("cfuelType")
-        private String cfuelType;
-
-        /**
-         * 车型能源类型
-         */
-        @JsonProperty("cmodelEnergyType")
-        private String cmodelEnergyType;
-
-        /**
-         * 型号名称
-         */
-        @JsonProperty("moldName")
-        private String moldName;
-
-        /**
-         * 型号代码
-         */
-        @JsonProperty("modelCode")
-        private String modelCode;
-
-        @Override
-        public String getCarYear() {
-            return yearPattern;
-        }
-
-        @Override
-        public String getPurchasePrice() {
-            return vehiclePrice;
-        }
-    }
-}

+ 8 - 17
tenant/insurance/quotation-zijin/src/main/java/com/jzg/quotation/zijin/crawler/entity/response/ZiJinCrawlerCheckTokenResponse.java

@@ -6,7 +6,7 @@ import lombok.NoArgsConstructor;
 
 
 /**
 /**
  * @version
  * @version
- * @description: 渤海财险【校验token】 响应
+ * @description: 紫金财险【校验token】 响应
  * @author: wenks
  * @author: wenks
  * @date: 2025/5/21 16:59
  * @date: 2025/5/21 16:59
  **/
  **/
@@ -14,28 +14,19 @@ import lombok.NoArgsConstructor;
 @Data
 @Data
 public class ZiJinCrawlerCheckTokenResponse {
 public class ZiJinCrawlerCheckTokenResponse {
 
 
-    @JsonProperty("flag")
-    private String flag;
+    @JsonProperty("msg")
+    private String msg;
 
 
-    @JsonProperty("mobile")
-    private String mobile;
+    @JsonProperty("tokenInfo")
+    private String tokenInfo;
 
 
     @JsonProperty("userRole")
     @JsonProperty("userRole")
-    private String userRole;
-
-    @JsonProperty("hrCode")
-    private String hrCode;
-
-    @JsonProperty("version")
-    private String version;
+    private Boolean valid;
 
 
     @JsonProperty("userName")
     @JsonProperty("userName")
     private String userName;
     private String userName;
 
 
-    @JsonProperty("userCode")
-    private String userCode;
-
-    @JsonProperty("id_token")
-    private String idToken;
+    @JsonProperty("email")
+    private String email;
 
 
 }
 }

+ 43 - 0
tenant/insurance/quotation-zijin/src/main/java/com/jzg/quotation/zijin/crawler/entity/response/ZiJinCrawlerGetCarActualValueResponse.java

@@ -0,0 +1,43 @@
+package com.jzg.quotation.zijin.crawler.entity.response;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+import java.io.Serial;
+import java.io.Serializable;
+
+@Data
+public class ZiJinCrawlerGetCarActualValueResponse implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 911589555341499228L;
+
+    /**
+     * 返回码
+     */
+    @JsonProperty("rtnCode")
+    private String rtnCode;
+
+    /**
+     * 返回信息
+     */
+    @JsonProperty("rtnMsg")
+    private String rtnMsg;
+
+    /**
+     * 实际价值
+     */
+    @JsonProperty("actualValue")
+    private String actualValue;
+
+    /**
+     * 期数
+     */
+    @JsonProperty("iMonthCount")
+    private String iMonthCount;
+
+    /**
+     * 使用年限
+     */
+    @JsonProperty("useYears")
+    private String useYears;
+}

+ 450 - 0
tenant/insurance/quotation-zijin/src/main/java/com/jzg/quotation/zijin/crawler/entity/response/ZiJinCrawlerGetOrderNoResponse.java

@@ -0,0 +1,450 @@
+package com.jzg.quotation.zijin.crawler.entity.response;
+
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * 紫金保险获取订单号响应类
+ */
+@NoArgsConstructor
+@Data
+public class ZiJinCrawlerGetOrderNoResponse implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 5678901234567890123L;
+
+    /**
+     * 返回码,"0000" 表示请求成功
+     */
+    private String rtnCode;
+
+    /**
+     * 返回消息,描述请求结果
+     */
+    private String rtnMsg;
+
+    /**
+     * 订单ID,系统内部的唯一标识
+     */
+    private String orderId;
+
+    /**
+     * 订单号,业务层面的流水号,更便于用户查阅
+     */
+    private String orderNo;
+
+    /**
+     * 交通信息或特殊提示消息,当前为空
+     */
+    private String trafficMsg;
+
+    /**
+     * 车辆型号信息列表
+     */
+    private List<VehicleModelInfos> vehicleModelInfos;
+
+    /**
+     * 车辆型号信息类
+     */
+    @NoArgsConstructor
+    @Data
+    public static class VehicleModelInfos implements Serializable {
+
+        @Serial
+        private static final long serialVersionUID = -987654321098765432L;
+
+        /**
+         * 车辆信息在列表中的ID
+         */
+        private String vehicleId;
+
+        /**
+         * 生产厂家的代码
+         */
+        private String companyCode;
+
+        /**
+         * 品牌代码
+         */
+        private String brandCode;
+
+        /**
+         * 车系代码
+         */
+        private String familyCode;
+
+        /**
+         * 车系名称,包含生产年份区间
+         */
+        private String groupName;
+
+        /**
+         * 车型组别代码
+         */
+        private String groupCode;
+
+        /**
+         * 整备质量
+         */
+        private String fullWeight;
+
+        /**
+         * 变速箱类型代码
+         */
+        private String gearboxType;
+
+        /**
+         * 车辆类别代码
+         */
+        private String vehicleClassCode;
+
+        /**
+         * 进口标志,备用字段,当前为空
+         */
+        private String importFlag1;
+
+        /**
+         * 标准型号名称或公告型号
+         */
+        private String standardName;
+
+        /**
+         * 车辆类别的新分类名称
+         */
+        private String newVehicleClass;
+
+        /**
+         * 车辆类别新分类的代码
+         */
+        private String newVehicleClassCode;
+
+        /**
+         * 燃料类型
+         */
+        private String powerType;
+
+        /**
+         * 燃料类型的代码
+         */
+        private String powerTypeCode;
+
+        /**
+         * 业务状态名称(推测为风险或合规状态)
+         */
+        private String hfName;
+
+        /**
+         * 业务状态的代码
+         */
+        private String hfCode;
+
+        /**
+         * 总数,当前为空
+         */
+        private String totalCount;
+
+        /**
+         * 认证日期,当前为空
+         */
+        private String certificateDate;
+
+        /**
+         * 车辆种类
+         */
+        private String carKind;
+
+        /**
+         * 具体车型的代码
+         */
+        private String modelCode;
+
+        /**
+         * 车辆型号的正式名称
+         */
+        private String modelName;
+
+        /**
+         * 车型描述,包含配置、驱动和排放等信息
+         */
+        private String modelDesc;
+
+        /**
+         * 品牌名称
+         */
+        private String brand;
+
+        /**
+         * 进口标志,标明是国产还是进口
+         */
+        private String importFlag;
+
+        /**
+         * 上市年份,格式为YYYYMM
+         */
+        private String marketYear;
+
+        /**
+         * 座位数
+         */
+        private String seatCount;
+
+        /**
+         * 车辆重量,同整备质量
+         */
+        private String vehicleWeight;
+
+        /**
+         * 车辆吨位,乘用车通常为空
+         */
+        private String vehicleTonnage;
+
+        /**
+         * 排气量,单位cc
+         */
+        private String exhaustCapacity;
+
+        /**
+         * 发动机功率,单位kW
+         */
+        private String power;
+
+        /**
+         * 变速箱类型
+         */
+        private String transmissionType;
+
+        /**
+         * ABS(防抱死系统)标志,当前为空
+         */
+        private String absFlag;
+
+        /**
+         * 购置价格(不含税)
+         */
+        private String purchasePrice;
+
+        /**
+         * 安全气囊数量
+         */
+        private String airBagNum;
+
+        /**
+         * 防盗报警器标志,当前为空
+         */
+        private String alarmFlag;
+
+        /**
+         * 是否已定价标志,当前为空
+         */
+        private String isPriced;
+
+        /**
+         * 风险评估标志,"0"通常代表正常或低风险
+         */
+        private String riskFlag;
+
+        /**
+         * 备用参考代码字段1
+         */
+        private String refCode1;
+
+        /**
+         * 备用参考代码字段2
+         */
+        private String refCode2;
+
+        /**
+         * 备注信息
+         */
+        private String remark;
+
+        /**
+         * 使用性质代码,当前为空
+         */
+        private String useNatureCode;
+
+        /**
+         * 车主,对于车型查询通常为空
+         */
+        private String carOwner;
+
+        /**
+         * 注册日期,对于车型查询通常为空
+         */
+        private String enrollDate;
+
+        /**
+         * 发动机号,对于车型查询通常为空
+         */
+        private String engineNo;
+
+        /**
+         * 车辆识别号(VIN)的匹配模式,"#"为通配符
+         */
+        private String vinNo;
+
+        /**
+         * 车牌号,对于车型查询通常为空
+         */
+        private String licenseNo;
+
+        /**
+         * 车牌种类代码,当前为空
+         */
+        private String licenseKindCode;
+
+        /**
+         * 制造日期,对于车型查询通常为空
+         */
+        private String makeDate;
+
+        /**
+         * 搜索序列号,当前为空
+         */
+        private String searchSequenceNo;
+
+        /**
+         * 原始车辆种类名称,当前为空
+         */
+        private String oriCarKindName;
+
+        /**
+         * 含购置税的价格
+         */
+        private String purchasePriceTax;
+
+        /**
+         * 平台车辆代码(可能来自特定数据提供商)
+         */
+        private String platVehicleCode;
+
+        /**
+         * 平台发布的公告型号
+         */
+        private String platPublicMode;
+
+        /**
+         * 平台车型名称
+         */
+        private String platModelName;
+
+        /**
+         * 商业险车辆类别代码
+         */
+        private String syxClassId;
+
+        /**
+         * 商业险车辆类别名称
+         */
+        private String syxClassName;
+
+        /**
+         * 业务状态的开始日期,当前为空
+         */
+        private String hfStartTime;
+
+        /**
+         * 业务状态的结束日期,当前为空
+         */
+        private String hfEndTime;
+
+        /**
+         * 车系名称
+         */
+        private String carSeriesName;
+
+        /**
+         * 车身款式代码
+         */
+        private String carStyle;
+
+        /**
+         * 生产状态
+         */
+        private String productStatus;
+
+        /**
+         * 生产厂家
+         */
+        private String factory;
+
+        /**
+         * 车辆年份
+         */
+        private String carYear;
+
+        /**
+         * 风险类型描述
+         */
+        private String riskType;
+
+        /**
+         * 整备质量的最小值,单位吨
+         */
+        private String completeKerbmassMin;
+
+        /**
+         * 整备质量的最大值,单位吨
+         */
+        private String completeKerbmassMax;
+
+        /**
+         * 交强险车辆类别名称
+         */
+        private String jqxClassName;
+
+        /**
+         * 亲属优惠价(不含税)
+         */
+        private String kindredPrice;
+
+        /**
+         * 亲属优惠价(含税)
+         */
+        private String kindredPriceTax;
+
+        /**
+         * 损坏风险类别,当前为空
+         */
+        private String damagedClass;
+
+        /**
+         * 选装配置,当前为空
+         */
+        private String optionalEquipment;
+
+        /**
+         * 标准配置,当前为空
+         */
+        private String standardEquipment;
+
+        /**
+         * 盗抢风险类别,当前为空
+         */
+        private String theftClass;
+
+        /**
+         * 防盗证明标志,"1"可能表示有防盗装置
+         */
+        private String theftProof;
+
+        /**
+         * 车型别名,当前为空
+         */
+        private String aliasName;
+
+        /**
+         * 座位数范围的最小值,当前为空
+         */
+        private String seatMin;
+
+        /**
+         * 座位数范围的最大值,当前为空
+         */
+        private String seatMax;
+    }
+}

+ 6 - 7
tenant/insurance/quotation-zijin/src/main/java/com/jzg/quotation/zijin/crawler/enums/RequestUrl.java

@@ -13,20 +13,19 @@ import lombok.AllArgsConstructor;
 public enum RequestUrl implements CrawlerRequestUrlStandard {
 public enum RequestUrl implements CrawlerRequestUrlStandard {
 
 
     // 登录
     // 登录
-    CAPTCHA("/api/v1/insurance/public/captcha/genImg", "验证码"),
+    CAPTCHA("/api/v1/insurance/public/captcha/genImg", "生成验证码"),
     CHECKCAPTCHAANDGETTOKEN("/kscd-frontend/login/checkCaptchaAndGetToken", "校验验证码并获取token"),
     CHECKCAPTCHAANDGETTOKEN("/kscd-frontend/login/checkCaptchaAndGetToken", "校验验证码并获取token"),
-
+    CHECK_TOKEN("/api_vhl_prod/api/checkToken", "校验token"),
     AUTHENTICATE("/api_prod/api/authenticate", "登录"),
     AUTHENTICATE("/api_prod/api/authenticate", "登录"),
-    CREATE_TOKEN("/api_prod/api/cabinet/createToken", "创建token"),
-    CHECK_TOKEN("/api_vhl_prod/api/checkToken", "校验token(获取新的token)"),
+
     //归属信息
     //归属信息
     GET_SALE_INFO("/api_vhl_prod/api/getSaleInfo/", "获取账号信息"),
     GET_SALE_INFO("/api_vhl_prod/api/getSaleInfo/", "获取账号信息"),
     COMPANIES("/api_vhl_prod/api/companies", "承保机构"),
     COMPANIES("/api_vhl_prod/api/companies", "承保机构"),
     CHANNEL_PACKAGES("/api_vhl_prod/api/default/package/list", "渠道套餐"),
     CHANNEL_PACKAGES("/api_vhl_prod/api/default/package/list", "渠道套餐"),
     // 报价
     // 报价
-    CAR("/app-carmodelinfo/netins/jyPreCarModelFill/queryJYPreCarModelFill", "车型查询"),
-    VEHICLECONFIRMATION("/motor/pspcs/Channel/channelTask/channelTaskMain.do","车辆确认"),
-    SAVE("/api_vhl_prod/api/save", "保存订单"),
+    CAR("/api/v1/insurance/public/vehicle-model/jingyou/preFill", "查询车辆信息"),
+    GET_ORDER_NUMBER("/dpgateway/insurance-order/carInsurance/orderQueryVehicleAndTraffic","获取订单号"),
+    GET_ACTUAL_VALUE("/api/v1/insurance/public/vehicle-proposal/vehicleModel/getActualValue", "获取车辆实际价值"),
     PRICE("/motor/pspcs/Channel/channelTask/channelTaskMain.do", "计算保费"),
     PRICE("/motor/pspcs/Channel/channelTask/channelTaskMain.do", "计算保费"),
     // 核保
     // 核保
     UNDERWRITING("/motor/pspcs/Channel/channelTask/channelTaskMain.do", "核保"),
     UNDERWRITING("/motor/pspcs/Channel/channelTask/channelTaskMain.do", "核保"),

+ 12 - 0
tenant/insurance/quotation-zijin/src/main/java/com/jzg/quotation/zijin/crawler/service/ZiJinCrawlerRequest.java

@@ -0,0 +1,12 @@
+package com.jzg.quotation.zijin.crawler.service;
+
+import com.jzg.quotation.commons.service.QuotationCrawlerBaseService;
+
+/**
+ * @description: 紫金财险请求
+ * @author:
+ * @date:
+ **/
+public interface ZiJinCrawlerRequest extends QuotationCrawlerBaseService {
+
+}

+ 25 - 45
tenant/insurance/quotation-zijin/src/main/java/com/jzg/quotation/zijin/crawler/service/impl/ZiJinCrawlerQuoteProcessServiceImpl.java

@@ -1,8 +1,10 @@
 package com.jzg.quotation.zijin.crawler.service.impl;
 package com.jzg.quotation.zijin.crawler.service.impl;
 
 
+import com.alibaba.fastjson.JSON;
 import com.jzg.commons.exception.SystemException;
 import com.jzg.commons.exception.SystemException;
 import com.jzg.quotation.zijin.crawler.component.ZiJinCrawlerCacheComponent;
 import com.jzg.quotation.zijin.crawler.component.ZiJinCrawlerCacheComponent;
 import com.jzg.quotation.zijin.crawler.component.ZiJinCrawlerRequestComponent;
 import com.jzg.quotation.zijin.crawler.component.ZiJinCrawlerRequestComponent;
+import com.jzg.quotation.zijin.crawler.entity.ZiJinCrawlerTokenInfo;
 import com.jzg.quotation.zijin.crawler.entity.request.ZiJinCrawlerCheckCaptchaRequest;
 import com.jzg.quotation.zijin.crawler.entity.request.ZiJinCrawlerCheckCaptchaRequest;
 import com.jzg.quotation.zijin.crawler.entity.request.ZiJinCrawlerCheckTokenRequest;
 import com.jzg.quotation.zijin.crawler.entity.request.ZiJinCrawlerCheckTokenRequest;
 import com.jzg.quotation.zijin.crawler.entity.response.*;
 import com.jzg.quotation.zijin.crawler.entity.response.*;
@@ -55,29 +57,28 @@ public class ZiJinCrawlerQuoteProcessServiceImpl implements ZiJinCrawlerQuotePro
             ziJinCrawlerCheckCaptchaRequest.setCaptchaVal(ziJinCrawlerCaptchaResponse.getCaptchaContent());
             ziJinCrawlerCheckCaptchaRequest.setCaptchaVal(ziJinCrawlerCaptchaResponse.getCaptchaContent());
 
 
             ZiJinCrawlerCheckCaptchaResponse ziJinCrawlerCheckCaptchaResponse = ziJinCrawlerRequestComponent.checkCaptchaAndGetToken(ziJinCrawlerCheckCaptchaRequest);
             ZiJinCrawlerCheckCaptchaResponse ziJinCrawlerCheckCaptchaResponse = ziJinCrawlerRequestComponent.checkCaptchaAndGetToken(ziJinCrawlerCheckCaptchaRequest);
-
-            for (int i = 0; i < LOGINS_NUMBER; i++) {
-                ResponseEntity<ZiJinCrawlerBaseResponse> responseEntity = ziJinCrawlerRequestComponent.authenticate(username, password);
-                ZiJinCrawlerBaseResponse response = Optional.of(responseEntity)
-                        .map(ResponseEntity::getBody)
-                        .orElseThrow();
-
-                if ("200".equals(response.getCode())) {
-                    ZiJinCrawlerAuthenticateResponse daJiaCrawlerCaptchaResponse = DESEncryption.decryptStrToObject(response.getResult(), ZiJinCrawlerAuthenticateResponse.class);
-
-                    // 校验token
-                    String token = checkToken(daJiaCrawlerCaptchaResponse.getUserCode(), daJiaCrawlerCaptchaResponse.getIdToken());
-                    return ziJinCrawlerCacheComponent.cacheAuthorization(token, daJiaCrawlerCaptchaResponse.getUserCode(), username);
-                }
-
-                String message = Optional.ofNullable(responseEntity.getBody())
-                        .map(ZiJinCrawlerBaseResponse::getMessage)
-                        .orElseThrow(() -> new SystemException("登录失败"));
-                if(!StringUtils.hasLength(message)) {
-                    throw new SystemException(message);
+            //成功
+            if("0000".equals(ziJinCrawlerCheckCaptchaResponse.getRtnCode())){
+                //获取token
+                String token = ziJinCrawlerCheckCaptchaResponse.getData().getToken();
+                //3、校验token
+                ZiJinCrawlerCheckTokenRequest ziJinCrawlerCheckTokenRequest = new ZiJinCrawlerCheckTokenRequest();
+                ziJinCrawlerCheckTokenRequest.setExpirationType("H5");
+                ziJinCrawlerCheckTokenRequest.setToken(token);
+                ZiJinCrawlerCheckTokenResponse ziJinCrawlerCheckTokenResponse = ziJinCrawlerRequestComponent.checkToken(ziJinCrawlerCheckTokenRequest);
+                if(ziJinCrawlerCheckTokenResponse.getValid()){
+                    String userName = ziJinCrawlerCheckTokenResponse.getUserName();
+                    String tokenInfo = ziJinCrawlerCheckTokenResponse.getTokenInfo();
+                    ZiJinCrawlerTokenInfo ziJinCrawlerTokenInfo = JSON.parseObject(tokenInfo, ZiJinCrawlerTokenInfo.class);
+                    String userCode = ziJinCrawlerTokenInfo.getUserCode();
+                    //缓存用户信息
+                    return ziJinCrawlerCacheComponent.cacheAuthorization(token, userCode, userName);
+                }else{
+                    return ziJinCrawlerCheckTokenResponse.getMsg();
                 }
                 }
+            }else{
+                throw new SystemException("校验验证码失败");
             }
             }
-            throw new SystemException("登录失败");
         } catch (IOException e) {
         } catch (IOException e) {
             e.printStackTrace();
             e.printStackTrace();
             throw new RuntimeException(e);
             throw new RuntimeException(e);
@@ -86,8 +87,8 @@ public class ZiJinCrawlerQuoteProcessServiceImpl implements ZiJinCrawlerQuotePro
 
 
     /**
     /**
      * 获取请求头
      * 获取请求头
-     * @param username 用户名
-     * @param password 密码
+     * @param username
+     * @param password
      * @return HttpHeaders
      * @return HttpHeaders
      */
      */
     @Override
     @Override
@@ -99,30 +100,9 @@ public class ZiJinCrawlerQuoteProcessServiceImpl implements ZiJinCrawlerQuotePro
         }
         }
 
 
         HttpHeaders headers = new HttpHeaders();
         HttpHeaders headers = new HttpHeaders();
-        headers.set("Authorization", "Bearer " + authorization);
+        headers.set("Authorization", authorization);
         headers.set("Content-Type", "application/json");
         headers.set("Content-Type", "application/json");
         headers.set("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36");
         headers.set("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36");
         return headers;
         return headers;
-        /*HttpHeaders httpHeaders = new HttpHeaders();
-        httpHeaders.set("Cookie", "HTTPOnly; skin-color=skin-db; Cookie=!uEW94o2278iwLg21yv2qnldjEk8Kb5RsZkOl0FDX8+Mqxb0EGroyfXXQVmrGlnxevDyUYDwsWh2B5iY=; JSESSIONID=0001TTPD95X9DLJB1il0R_O_NhM:3T0NUMVN3E");
-        httpHeaders.set("sessionId","114050281_ys1Joy8Fnl-SL4D515lH1uJ1761182282670");*/
-        //return httpHeaders;
-    }
-
-    /**
-     * 校验token
-     * @param userCode
-     * @param token
-     * @return String
-     */
-    public String checkToken(String userCode, String token) {
-        HttpHeaders httpHeaders = new HttpHeaders();
-        httpHeaders.set(HttpHeaders.AUTHORIZATION, "Bearer " + token);
-        // 创建token
-        String tokenId = ziJinCrawlerRequestComponent.createToken(userCode, httpHeaders);
-        ZiJinCrawlerCheckTokenRequest boHaiCrawlerCheckTokenRequest = new ZiJinCrawlerCheckTokenRequest(tokenId, userCode);
-        // 校验token
-        ZiJinCrawlerCheckTokenResponse daJiaCrawlerCheckTokenResponse = ziJinCrawlerRequestComponent.checkToken(boHaiCrawlerCheckTokenRequest, httpHeaders);
-        return  daJiaCrawlerCheckTokenResponse.getIdToken();
     }
     }
 }
 }

+ 93 - 505
tenant/insurance/quotation-zijin/src/main/java/com/jzg/quotation/zijin/crawler/service/impl/ZiJinCrawlerRequestImpl.java

@@ -27,6 +27,7 @@ import com.jzg.quotation.commons.constant.InsuranceCode;
 import com.jzg.quotation.commons.standard.conversion.ConfigureParametersConversion;
 import com.jzg.quotation.commons.standard.conversion.ConfigureParametersConversion;
 import com.jzg.quotation.zijin.crawler.entity.request.*;
 import com.jzg.quotation.zijin.crawler.entity.request.*;
 import com.jzg.quotation.zijin.crawler.entity.response.*;
 import com.jzg.quotation.zijin.crawler.entity.response.*;
+import com.jzg.quotation.zijin.crawler.service.ZiJinCrawlerRequest;
 import lombok.RequiredArgsConstructor;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.http.HttpHeaders;
 import org.springframework.http.HttpHeaders;
@@ -46,23 +47,23 @@ import java.util.*;
  * @author
  * @author
  * @since
  * @since
  */
  */
-@QuoteCrawlerService(value = InsuranceCode.INSURANCE_BPIC)
+@QuoteCrawlerService(value = InsuranceCode.INSURANCE_ZKIC)
 @RequiredArgsConstructor
 @RequiredArgsConstructor
 @Slf4j
 @Slf4j
-public class ZiJinCrawlerRequestImpl implements QuotationCrawlerBaseService {
+public class ZiJinCrawlerRequestImpl implements ZiJinCrawlerRequest {
 
 
-    private final ZiJinCrawlerRequestComponent boHaiCrawlerRequestComponent;
+    private final ZiJinCrawlerRequestComponent ziJinCrawlerRequestComponent;
 
 
     /**
     /**
      * 归属信息构建组件,用于构建机构、套餐、渠道等归属信息
      * 归属信息构建组件,用于构建机构、套餐、渠道等归属信息
      */
      */
-    private final ZiJinBuildingAttributionInformation boHaiBuildingAttributionInformation;
+    private final ZiJinBuildingAttributionInformation ziJinBuildingAttributionInformation;
 
 
-    private final ZiJinCrawlerCacheComponent boHaiCrawlerCacheComponent;
+    private final ZiJinCrawlerCacheComponent ziJinCrawlerCacheComponent;
 
 
-    private final ZiJinCrawlerOrderService boHaiCrawlerOrderService;
+    private final ZiJinCrawlerOrderService ziJinCrawlerOrderService;
 
 
-    private final ZiJinCrawlerQuoteProcessService boHaiCrawlerQuoteProcessService;
+    private final ZiJinCrawlerQuoteProcessService ziJinCrawlerQuoteProcessService;
 
 
     private static final String TOKEN = "114050281-ab12387d7bb7bd319ac3b7d4ddd22090";
     private static final String TOKEN = "114050281-ab12387d7bb7bd319ac3b7d4ddd22090";
 
 
@@ -73,7 +74,7 @@ public class ZiJinCrawlerRequestImpl implements QuotationCrawlerBaseService {
      */
      */
     @Override
     @Override
     public void login(LoginBase loginBase) {
     public void login(LoginBase loginBase) {
-        boHaiCrawlerQuoteProcessService.login(loginBase.getUsername(), loginBase.getPassword());
+        ziJinCrawlerQuoteProcessService.login(loginBase.getUsername(), loginBase.getPassword());
     }
     }
 
 
     /**
     /**
@@ -84,10 +85,10 @@ public class ZiJinCrawlerRequestImpl implements QuotationCrawlerBaseService {
      */
      */
     @Override
     @Override
     public QuoteResultsVo quote(QuoteVo quoteVo) {
     public QuoteResultsVo quote(QuoteVo quoteVo) {
-        // 1.0 归属信息
+        // 归属信息
         AttributionInformationVo attributionInformationVo = quoteVo.getOrder().getAttributionInformationVo();
         AttributionInformationVo attributionInformationVo = quoteVo.getOrder().getAttributionInformationVo();
-        HttpHeaders headers = boHaiCrawlerQuoteProcessService.getHeaders(attributionInformationVo.getUsername(), attributionInformationVo.getPassword());
-        String userCode = boHaiCrawlerCacheComponent.getUserCode(attributionInformationVo.getUsername());
+        HttpHeaders headers = ziJinCrawlerQuoteProcessService.getHeaders(attributionInformationVo.getUsername(), attributionInformationVo.getPassword());
+        String userCode = ziJinCrawlerCacheComponent.getUserCode(attributionInformationVo.getUsername());
         log.info("userCode:{}", userCode);
         log.info("userCode:{}", userCode);
 
 
         // 1.1 解析配置参数
         // 1.1 解析配置参数
@@ -97,507 +98,88 @@ public class ZiJinCrawlerRequestImpl implements QuotationCrawlerBaseService {
         // 1.2 构建归属信息(机构、套餐、渠道信息)
         // 1.2 构建归属信息(机构、套餐、渠道信息)
         //ProposalInfoDTO proposalInfoDTO = boHaiBuildingAttributionInformation.build(parameters, userCode, headers);
         //ProposalInfoDTO proposalInfoDTO = boHaiBuildingAttributionInformation.build(parameters, userCode, headers);
 
 
-        // 2.0 生成订单号(没有这个逻辑)
-        //String orderNo = generateOrderNo(parameters, headers);
-
-        // 2.1 车辆查询
-        ZiJinCrawlerCarResponse boHaiCrawlerCarResponse = null;
+        // 查询车辆信息
+        ZiJinCrawlerCarResponse ziJinCrawlerCarResponse = null;
         try {
         try {
-            ZiJinCrawlerCarRequest boHaiCrawlerCarRequest = new ZiJinCrawlerCarRequest(quoteVo.getCarInfoVo(), parameters.getOrgName(), parameters.getCDptCde(), userCode);
-            boHaiCrawlerCarResponse = boHaiCrawlerRequestComponent.car(boHaiCrawlerCarRequest, headers);
-            log.info("boHaiCrawlerCarResponse参数的值:{}", JSON.toJSONString(boHaiCrawlerCarResponse));
+            ZiJinCrawlerCarRequest ziJinCrawlerCarRequest = new ZiJinCrawlerCarRequest();
+            ziJinCrawlerCarRequest.setChannelCode("KSCD_PROD");
+            ziJinCrawlerCarRequest.setComCode(parameters.getComCode());
+            ziJinCrawlerCarRequest.setLicenseNo("");
+            ziJinCrawlerCarRequest.setVin("");
+            ziJinCrawlerCarResponse = ziJinCrawlerRequestComponent.car(ziJinCrawlerCarRequest, headers);
+            log.info("ziJinCrawlerCarResponse参数的值:{}", JSON.toJSONString(ziJinCrawlerCarResponse));
+
+            // 车辆和交通查询(获取订单号)
+            ZiJinCrawlerGetOrderNoRequest ziJinCrawlerGetOrderNoRequest = new ZiJinCrawlerGetOrderNoRequest();
+            ziJinCrawlerGetOrderNoRequest.setBrandName("荣威CSA6452NEAQ多用途乘用车");
+            ziJinCrawlerGetOrderNoRequest.setLicenseNo("晋HJW581");
+            ziJinCrawlerGetOrderNoRequest.setOperatorCode("214000151");
+            ziJinCrawlerGetOrderNoRequest.setOrderOrigin("KSCD_PROD");
+            ziJinCrawlerGetOrderNoRequest.setProposalAreaCode("140000");
+            ziJinCrawlerGetOrderNoRequest.setProposalCityCode("140000");
+            ziJinCrawlerGetOrderNoRequest.setUserComCode("2140000601");
+            ziJinCrawlerGetOrderNoRequest.setVinNo("LSJA24U69MS091895");
+            ziJinCrawlerGetOrderNoRequest.setModelCode("RWD1598SQQ");
+            ziJinCrawlerGetOrderNoRequest.setProductCode("CAR20190517");
+            ziJinCrawlerGetOrderNoRequest.setProductName("机动车保险");
+            ziJinCrawlerGetOrderNoRequest.setTerminalId("KSCD");
+            ziJinCrawlerGetOrderNoRequest.setTerminalIdType("Vue-PC");
+
+            ZiJinCrawlerGetOrderNoResponse ziJinCrawlerGetOrderNoResponse = ziJinCrawlerRequestComponent.getOrderNo(ziJinCrawlerGetOrderNoRequest, headers);
+            log.info("ziJinCrawlerGetOrderNoResponse参数的值:{}", JSON.toJSONString(ziJinCrawlerGetOrderNoResponse));
+
+            //获取车辆实际价值
+            ZiJinCrawlerGetCarActualValueRequest ziJinCrawlerGetCarActualValueRequest = new ZiJinCrawlerGetCarActualValueRequest();
+
+            ziJinCrawlerGetCarActualValueRequest.setCarKindCode("A0");
+            ziJinCrawlerGetCarActualValueRequest.setEnrollDate("2021-11-01");
+            ziJinCrawlerGetCarActualValueRequest.setUpdateEnrollDate("2021-11-01");
+            ziJinCrawlerGetCarActualValueRequest.setPurchasePrice("103800");
+            ziJinCrawlerGetCarActualValueRequest.setSeatCount(5);
+            ziJinCrawlerGetCarActualValueRequest.setUseNatureCode("85");
+            ziJinCrawlerGetCarActualValueRequest.setStartDate("2025-11-05");
+            ziJinCrawlerGetCarActualValueRequest.setNewEnergyFlag("0");
+            ziJinCrawlerGetCarActualValueRequest.setModelEnergyType("D1");
+
+            ZiJinCrawlerGetCarActualValueResponse ziJinCrawlerGetCarActualValueResponse = ziJinCrawlerRequestComponent.getCarActualValue(ziJinCrawlerGetCarActualValueRequest, headers);
+            log.info("ziJinCrawlerGetCarActualValueResponse参数的值:{}", JSON.toJSONString(ziJinCrawlerGetCarActualValueResponse));
         } catch (Exception e) {
         } catch (Exception e) {
             e.printStackTrace();
             e.printStackTrace();
             throw new RuntimeException(e);
             throw new RuntimeException(e);
         }
         }
 
 
-        //2.2 车辆确认
-        String currentValue = null;
-        try {
-            Map<String, Object> vehicleConfirmationResult = getVehicleConfirmationResponse(quoteVo, boHaiCrawlerCarResponse, parameters, headers);
-            //获取车辆当前价值
-            currentValue = (String) vehicleConfirmationResult.get("currentValue");
-            log.info("车辆当前价值:{}", currentValue);
-        } catch (Exception e) {
-            e.printStackTrace();
-            throw new RuntimeException(e);
-        }
-
-        // 3.0 报价接口
-        /*ZiJinCrawlerQuotationRequest boHaiCrawlerQuotationRequest = new ZiJinCrawlerQuotationRequest(parameters, quoteVo, currentValue, "", quoteVo.getAccidentalDrivings(), "");*/
-        ZiJinCrawlerQuotationRequest2 boHaiCrawlerQuotationRequest2 = new ZiJinCrawlerQuotationRequest2();
-        ZiJinCrawlerQuotationRequest2.Head head = new ZiJinCrawlerQuotationRequest2.Head();
-        head.setTransType("Req");
-        head.setTransCode("PremiumProposal");
-        head.setToken(TOKEN);
-        boHaiCrawlerQuotationRequest2.setHead(head);
-
-        // 使用 setter 方式设置 businessData、insuredList、riskList、以及登录信息
-        ZiJinCrawlerQuotationRequest2.BusinessData businessData = new ZiJinCrawlerQuotationRequest2.BusinessData();
-
-        // 业务主信息
-        ZiJinCrawlerQuotationRequest2.BusinessMainInfo mainInfo = new ZiJinCrawlerQuotationRequest2.BusinessMainInfo();
-        mainInfo.setOrderNo("O140703302025063172");
-        mainInfo.setFixPriceType("Y2");
-        mainInfo.setRiskControlFlag("");
-        mainInfo.setUuid("");
-        mainInfo.setTrial(1);
-        mainInfo.setArgueSolution("1");
-        mainInfo.setArbitBoardName("");
-        mainInfo.setBusinessType("OTemp");
-        mainInfo.setComCode("14070201");
-        mainInfo.setBusinessCategories1("1");
-        mainInfo.setBusinessCategories2("2");
-        mainInfo.setBusinessCategories3("A06");
-        mainInfo.setHandlerCode("114050281");
-        mainInfo.setAgentCode("M140301000249");
-        mainInfo.setAgentName("太原天勤保险代理有限公司");
-        mainInfo.setAgreementNo("C142024004345_2");
-        mainInfo.setCityCode("140700");
-        mainInfo.setCountyCode("140781");
-        mainInfo.setOperateDate("2025-10-09");
-        mainInfo.setGoalInsuredFlag("2");
-        mainInfo.setUnderUnit("");
-        mainInfo.setIdentifyType("006");
-        mainInfo.setIdentifyDetail("00001");
-        mainInfo.setIdentifyCode("");
-        mainInfo.setIdentifyVip("");
-        mainInfo.setComputerIp("");
-        mainInfo.setMainCarKindBC("0");
-        mainInfo.setResourceTypeCode("004");
-        mainInfo.setExpectDiscount("");
-        mainInfo.setReportNo("");
-        mainInfo.setExpectedCommission("");
-        mainInfo.setBusinessAttribute("2");
-        mainInfo.setChannelType("");
-        mainInfo.setSalerIdentifyNumber("");
-        mainInfo.setSdId("");
-        mainInfo.setTbMode("");
-        mainInfo.setBussUnitCodeCI("");
-        mainInfo.setBussUnitCode("");
-        mainInfo.setPriceMode("");
-        mainInfo.setHighRiskAssessId("");
-        mainInfo.setReCustomerType("");
-        mainInfo.setLastYearAdjustValue("");
-        businessData.setBusinessMainInfo(mainInfo);
-
-        // 车辆信息
-        ZiJinCrawlerQuotationRequest2.CarInfo carInfo = new ZiJinCrawlerQuotationRequest2.CarInfo();
-        ZiJinCrawlerQuotationRequest2.ItemCarInfo item = new ZiJinCrawlerQuotationRequest2.ItemCarInfo();
-        item.setCertificateNo("");
-        item.setCertificateType("");
-        item.setOtherEnergyTypeDesc("");
-        item.setPureRange("");
-        item.setPmFuelType("A");
-        item.setCarCheckStatus("");
-        //实际价值
-        item.setActualValue("15380.00");
-        item.setOtherNature7BI("0");
-        //协商价值
-        item.setNegotiatedValue("15380.00");
-        item.setNewVehicleFlag("0");
-        item.setLicenseNo("晋K38V85");
-        item.setFrameNo("LJDLAA197D0029125");
-        item.setEngineNo("D5685636");
-        item.setVinNo("LJDLAA197D0029125");
-        item.setNoLicenseFlag("");
-        item.setLicenseColorCode("01");
-        item.setUseNatureCode("8A");
-        item.setMainCarKindCode("A");
-        item.setCarKindCode("A0");
-        item.setBrandName("起亚YQZ7143A轿车");
-        item.setSeatCount("5");
-        item.setTonCount("0.0000");
-        item.setPurchasePrice("76900");
-        item.setBasePurchasePrice("76900");
-        item.setExhaustScale(1.396);
-        item.setEnrollDate("2013-10-14");
-        item.setUseYearsBI("12");
-        item.setUseYearsCI(11);
-        item.setUseYearsDI("");
-        item.setChgOwnerFlag("1");
-        item.setChgTypeFlag("0");
-        item.setChgOwnerDate("2024-11-05");
-        item.setCountryNature("C");
-        item.setModelCode("KED1014DFY");
-        item.setRunMiles(20000);
-        item.setRunAreaCode("02");
-        item.setTrafficViolationRecords("0");
-        item.setColorCode("99");
-        item.setMadeFactory("东风悦达起亚汽车有限公司");
-        item.setMakeDate("");
-        item.setVehicleBrand("起亚");
-        item.setCompleteKerbMass(1087);
-        item.setLicenseKindCode("02");
-        item.setLicenseCategory("K33");
-        item.setRenewalFlagBI("0");
-        item.setDamagedFactorGrade("");
-        item.setSpecialVehicleFlag("0");
-        item.setLoanVehicleFlag("0");
-        item.setProportion("");
-        item.setEnergySavingOrNewEnergy("0");
-        item.setLastProducerCode("0");
-        item.setDebtFlag("");
-        item.setRestricFlag("00");
-        item.setSearchSequenceNo("");
-        item.setIsTaxi("0");
-        item.setFuelType1("0");
-        item.setSpecifiedQueryArea("");
-        item.setIndustryCarTypeCode("BYDLKFUC0007");
-        item.setIndustryCarTypeName("起亚YQZ7143A GLS");
-        item.setCarABSFlag(null);
-        item.setFuelType2("");
-        item.setMiniCar("");
-        item.setCarAddressCode("");
-        item.setIssueDate("2013-10-14");
-        item.setNewDeviceFlag("0");
-        item.setInvoiceNo("");
-        item.setOwnerAddress("");
-        item.setTractorType("");
-        item.setNoClaimAdjustReason("");
-        item.setNoDamageYearsBI("");
-        item.setNoDamageYearsCI("");
-        item.setNoLoyaltyAdjustReason("");
-        item.setPowerType("汽油");
-        item.setPowerTypeCode("D1");
-        item.setSeries("K2");
-        item.setSeriesCode(null);
-        item.setPriorityServicerType("0");
-        item.setPriorityServicerCode("");
-        item.setNoticeType("YQZ7143A");
-        item.setPureRiskPremium("0.0");
-        item.setEcdemicVehicleFlag("0");
-        item.setNewCarFlag("0");
-        item.setPrnExhaustScale("");
-        item.setPrnCompleteKerbMassNew("");
-        item.setIsNetworkCar(0);
-        item.setPower("78.7");
-        item.setCarUsage("起亚牌YQZ7143A");
-        item.setCarChecker("");
-        item.setCarCheckTime("2025-10-09 17:14");
-        item.setVerifyReason("");
-        item.setCarCheckDelayDays("");
-        item.setVerifyReasonOtherReason("");
-        item.setVerifyStatus("");
-        item.setCarCheckReason("");
-        item.setCarCheckOtherReason("");
-        item.setRiskType("1");
-        item.setVehicleStyleUniqueId("14970");
-        item.setIsNewCar("0");
-        item.setJyPreCarNo("c44a2adbb1a145b58ff7e1aef164ebd6");
-        carInfo.setItemCarInfo(item);
-        carInfo.setChargingInfoList(Collections.emptyList());
-        carInfo.setDeviceList(Collections.emptyList());
-        businessData.setCarInfo(carInfo);
-
-        // 被保险人列表
-        List<ZiJinCrawlerQuotationRequest2.Insured> insuredList = new ArrayList<>();
-        ZiJinCrawlerQuotationRequest2.Insured insured1 = new ZiJinCrawlerQuotationRequest2.Insured();
-        insured1.setSerialNo("1");
-        insured1.setInsuredCode("");
-        insured1.setIdentifyNumber("");
-        insured1.setIdentifyType("01");
-        insured1.setInsuredName("");
-        insured1.setInsuredFlag("2");
-        insured1.setInsuredType("1");
-        insured1.setGender("");
-        insured1.setInsuredNature("3");
-        insured1.setPhoneNumber("");
-        insured1.setMobile("");
-        insured1.setInsuredAddress("");
-        insured1.setPostCode("");
-        insured1.setPostAddress("");
-        insured1.setOrgCode("");
-        insured1.setAge("");
-        insured1.setBirthDay("");
-        insured1.setIsIndividualBusi("");
-        insured1.setAppliCitizenshipBC("01");
-        insured1.setAppliCountryBC("008zg");
-        insured1.setEmail("");
-        insured1.setBusinessLicenseType("");
-        insured1.setNation("");
-        insured1.setIdentifyAddress("");
-        insured1.setIdentifyStartDate("");
-        insured1.setIdentifyEndDate("");
-        insured1.setCarInsuredRelation("");
-        insured1.setBusinessSort("15");
-        insured1.setLinkerName("");
-        //设置为空
-        insured1.setIsSpecialDInsured("");
-        insured1.setSpecialDInsuredName("");
-        insured1.setSpecialDInsuredIDType("");
-        insured1.setSpecialDInsuredID("");
-        insured1.setNoSpecialDInsuredP("");
-        insured1.setBenefitFlag("");
-        insured1.setIsGreenIndustryFlag("");
-        insured1.setGreenIndustryFCode("");
-        insured1.setGreenIndustrySCode("");
-        insured1.setGreenIndustryTCode("");
-        insuredList.add(insured1);
-
-        ZiJinCrawlerQuotationRequest2.Insured insured2 = new ZiJinCrawlerQuotationRequest2.Insured();
-        insured2.setSerialNo("2");
-        insured2.setInsuredCode("");
-        insured2.setIdentifyNumber("142626196108011016");
-        insured2.setIdentifyType("01");
-        insured2.setInsuredName("段志文");
-        insured2.setInsuredFlag("1");
-        insured2.setInsuredType("1");
-        insured2.setGender("1");
-        insured2.setInsuredNature("3");
-        insured2.setPhoneNumber("");
-        insured2.setMobile("");
-        insured2.setInsuredAddress("");
-        insured2.setPostCode("");
-        insured2.setPostAddress("");
-        insured2.setOrgCode("");
-        insured2.setAge(64);
-        insured2.setBirthDay("1961-08-01");
-        insured2.setIsIndividualBusi("");
-        insured2.setAppliCitizenshipBC("01");
-        insured2.setAppliCountryBC("008zg");
-        insured2.setEmail("");
-        insured2.setBusinessLicenseType("");
-        insured2.setNation("");
-        insured2.setIdentifyAddress("");
-        insured2.setIdentifyStartDate("");
-        insured2.setIdentifyEndDate("");
-        insured2.setCarInsuredRelation("1");
-        insured2.setBusinessSort("15");
-        insured2.setLinkerName("");
-        insured2.setIsSpecialDInsured("0");
-        insured2.setSpecialDInsuredName("");
-        insured2.setSpecialDInsuredIDType("");
-        insured2.setSpecialDInsuredID("");
-        insured2.setNoSpecialDInsuredP("1");
-        insured2.setBenefitFlag("0");
-        insured2.setIsGreenIndustryFlag("");
-        insured2.setGreenIndustryFCode("");
-        insured2.setGreenIndustrySCode("");
-        insured2.setGreenIndustryTCode("");
-        insuredList.add(insured2);
+        //  报价接口
+        ZiJinCrawlerQuotationRequest ziJinCrawlerQuotationRequest = new ZiJinCrawlerQuotationRequest();
 
 
-        ZiJinCrawlerQuotationRequest2.Insured insured3 = new ZiJinCrawlerQuotationRequest2.Insured();
-        insured3.setSerialNo("3");
-        insured3.setInsuredCode("");
-        insured3.setIdentifyNumber("142626196108011016");
-        insured3.setIdentifyType("01");
-        insured3.setInsuredName("段志文");
-        insured3.setInsuredFlag("3");
-        insured3.setInsuredType("1");
-        insured3.setGender("1");
-        insured3.setInsuredNature("1");
-        insured3.setPhoneNumber("");
-        insured3.setMobile("");
-        insured3.setInsuredAddress("");
-        insured3.setPostCode("");
-        insured3.setPostAddress("");
-        insured3.setOrgCode("");
-        insured3.setAge("");
-        insured3.setBirthDay("1961-08-01");
-        insured3.setIsIndividualBusi("");
-        insured3.setAppliCitizenshipBC("01");
-        insured3.setAppliCountryBC("008zg");
-        insured3.setEmail("");
-        insured3.setBusinessLicenseType("");
-        insured3.setNation("");
-        insured3.setIdentifyAddress("");
-        insured3.setIdentifyStartDate("");
-        insured3.setIdentifyEndDate("");
-        insured3.setCarInsuredRelation("");
-        insured3.setBusinessSort("15");
-        insured3.setLinkerName("");
-        //设置为空
-        insured3.setIsSpecialDInsured("");
-        insured3.setSpecialDInsuredName("");
-        insured3.setSpecialDInsuredIDType("");
-        insured3.setSpecialDInsuredID("");
-        insured3.setNoSpecialDInsuredP("");
-        insured3.setBenefitFlag("");
-        insured3.setIsGreenIndustryFlag("");
-        insured3.setGreenIndustryFCode("");
-        insured3.setGreenIndustrySCode("");
-        insured3.setGreenIndustryTCode("");
-        insuredList.add(insured3);
-        businessData.setInsuredList(insuredList);
-
-        // 风险列表
-        List<ZiJinCrawlerQuotationRequest2.Risk> riskList = new ArrayList<>();
-        // 交强险
-        ZiJinCrawlerQuotationRequest2.Risk jqRisk = new ZiJinCrawlerQuotationRequest2.Risk();
-        List<ZiJinCrawlerQuotationRequest2.ItemKind> jqItemKinds = new ArrayList<>();
-
-        //交强险列表
-        ZiJinCrawlerQuotationRequest2.ItemKind jqItem = new ZiJinCrawlerQuotationRequest2.ItemKind();
-        jqItem.setItemKindNo("0");
-        jqItem.setKindCode("BZ");
-        jqItem.setKindName("机动车交通事故责任强制保险");
-        jqItem.setOperateType("");
-        jqItem.setStartDate("2025-10-10");
-        jqItem.setStartHour("");
-        jqItem.setEndDate("2026-10-09");
-        jqItem.setEndHour("");
-        jqItem.setAmount("");
-        jqItem.setUnitAmount("");
-        jqItem.setQuantity("");
-        jqItem.setModeCode("");
-        jqItem.setModeName("");
-        jqItem.setShortRateFlag("2");
-        jqItem.setShortRate("");
-        jqItem.setCalculateFlag("Y");
-        jqItem.setRate("");
-        jqItem.setNotDeductibleFlag("0");
-        jqItem.setDeductibleRatio("");
-        jqItem.setDiscount("");
-        jqItem.setAdjustRate("");
-        jqItem.setValue("");
-        jqItemKinds.add(jqItem);
-        jqRisk.setItemKindList(jqItemKinds);
-
-        ZiJinCrawlerQuotationRequest2.RiskMainInfo jqMain = new ZiJinCrawlerQuotationRequest2.RiskMainInfo();
-        jqMain.setIsDrivingFee("1");
-        jqMain.setAgriflag("012001");
-        jqMain.setClassCode("");
-        jqMain.setRiskCode("0330");
-        jqMain.setContractNo("");
-        jqMain.setDiscount("");
-        jqMain.setCurrency("CNY");
-        jqMain.setLastPolicyNo("");
-        jqMain.setRenewalFlag("0");
-        jqMain.setStartDate("2025-10-10");
-        jqMain.setStartHour("0");
-        jqMain.setEndDate("2026-10-09");
-        jqMain.setEndHour("24");
-        jqMain.setImmediatelyActiveFlag("");
-        jqMain.setActiveStartTime("");
-        jqMain.setActiveEndTime("");
-        jqMain.setQuerySequenceNo("");
-        jqMain.setConfirmSequenceNo("");
-        jqMain.setSpecialContractFlag("");
-        jqMain.setSpecialContractSummary("");
-        jqMain.setNoneFluctuateFlag("N1");
-        jqMain.setNcdCoefficient("");
-        jqMain.setChannelCoefficient("1.00");
-        jqMain.setUnderwritingCoefficient("");
-        jqMain.setAdjustCoefficient("");
-        jqMain.setTrafficViolationCoefficient("");
-        jqMain.setChannelCoefficientVariation("");
-        jqMain.setUnderwritingCoefficientVariation("");
-        jqMain.setIfNeedQuote("");
-        jqMain.setHopeRate("");
-        jqMain.setProposalNo("");
-
-        jqMain.setCustomerCoefficient("364001");
-        jqMain.setFleetCoefficient("365000");
-        jqMain.setSignDate("2025-10-09");
-        jqMain.setOperateDate("2025-10-09");
-        jqMain.setInputDate("2025-10-09");
-        jqMain.setPricingAdjustValue("1");
-        jqMain.setNoneFluctuateFeeRate("N1");
-        jqRisk.setRiskMainInfo(jqMain);
-
-        ZiJinCrawlerQuotationRequest2.CarShipTaxInfo taxInfo = new ZiJinCrawlerQuotationRequest2.CarShipTaxInfo();
-        taxInfo.setTaxPayerIdentifier("142626196108011016");
-        taxInfo.setTaxPayerName("段志文");
-        taxInfo.setTaxPayerIdentifyNumberType("01");
-        taxInfo.setTaxPayerIdentifyNumber("142626196108011016");
-        taxInfo.setUnladenMassCS(1087);
-        taxInfo.setLicenseCategory("K33");
-        taxInfo.setCertificateDate("2013-10-14");
-        taxInfo.setTaxItemCode("A");
-        taxInfo.setTaxItemName("载客汽车");
-        taxInfo.setTaxRelifFlag("1");
-        taxInfo.setCalculateMode("1");
-        taxInfo.setCalLateFeeFlag("0");
-        taxInfo.setCalPayBalanceFeeFlag("0");
-        taxInfo.setTaxType("1");
-        taxInfo.setTaxNumType("1");
-        taxInfo.setPayTaxDate("202510");
-        taxInfo.setCarOwnerNature("1");
-        taxInfo.setCarAddressCode("120000");
-        taxInfo.setUseType("100");
-        taxInfo.setCalFeeFlag("00");
-        jqRisk.setCarShipTaxInfo(taxInfo);
-        riskList.add(jqRisk);
-
-        // 商业险(车辆损失险)
-        ZiJinCrawlerQuotationRequest2.Risk syRisk = new ZiJinCrawlerQuotationRequest2.Risk();
-        List<ZiJinCrawlerQuotationRequest2.ItemKind> syItemKinds = new ArrayList<>();
-        ZiJinCrawlerQuotationRequest2.ItemKind syItem = new ZiJinCrawlerQuotationRequest2.ItemKind();
-        syItem.setItemKindNo("1");
-        syItem.setKindCode("A");
-        syItem.setKindName("车辆损失险");
-        syItem.setStartDate("2025-12-01");
-        syItem.setStartHour("0");
-        syItem.setEndDate("2026-11-30");
-        syItem.setEndHour("24");
-        syItem.setAmount("15380.00");
-        syItem.setShortRateFlag("3");
-        syItem.setCalculateFlag("Y");
-        syItem.setNotDeductibleFlag("0");
-        syItemKinds.add(syItem);
-        syRisk.setItemKindList(syItemKinds);
-
-        ZiJinCrawlerQuotationRequest2.RiskMainInfo syMain = new ZiJinCrawlerQuotationRequest2.RiskMainInfo();
-        syMain.setIsDrivingFee("1");
-        syMain.setAgriflag("012001");
-        syMain.setRiskCode("0380");
-        syMain.setCurrency("CNY");
-        syMain.setRenewalFlag("0");
-        syMain.setStartDate("2025-12-01");
-        syMain.setStartHour("0");
-        syMain.setEndDate("2026-11-30");
-        syMain.setEndHour("24");
-        syMain.setNcdCoefficient("1");
-        syMain.setChannelCoefficient("1.00");
-        syMain.setCustomerProperty("001");
-        syMain.setRiskCoefficient("362003");
-        syMain.setBusinessCoefficient("363000");
-        syMain.setVehicleCoefficient("000");
-        syMain.setCustomerCoefficient("364001");
-        syMain.setFleetCoefficient("365000");
-        syMain.setClauseType("F91");
-        syMain.setSignDate("2025-10-09");
-        syMain.setOperateDate("2025-10-09");
-        syMain.setInputDate("2025-10-09");
-        syRisk.setRiskMainInfo(syMain);
-        riskList.add(syRisk);
-        businessData.setRiskList(riskList);
-
-        // 赋值到请求对象
-        boHaiCrawlerQuotationRequest2.setBusinessData(businessData);
-        boHaiCrawlerQuotationRequest2.setLoginCom("14070201");
-        boHaiCrawlerQuotationRequest2.setUserCode("114050281");
-        boHaiCrawlerQuotationRequest2.setFirstUserCode("114050281");
-
-        ZiJinCrawlerQuotationResponse boHaiCrawlerQuotationResponse = boHaiCrawlerRequestComponent.quotation(boHaiCrawlerQuotationRequest2, headers);
+        ZiJinCrawlerQuotationResponse boHaiCrawlerQuotationResponse = ziJinCrawlerRequestComponent.quotation(ziJinCrawlerQuotationRequest, headers);
         log.info("boHaiCrawlerQuotationResponse参数的值:{}", JSON.toJSONString(boHaiCrawlerQuotationResponse));
         log.info("boHaiCrawlerQuotationResponse参数的值:{}", JSON.toJSONString(boHaiCrawlerQuotationResponse));
-        if(boHaiCrawlerQuotationResponse.getData() == null){
+        if (boHaiCrawlerQuotationResponse.getData() == null) {
             //报价失败
             //报价失败
             return ZiJinCrawlerQuoteResultsVoBuild.buildQuoteFailResultsVo(boHaiCrawlerQuotationResponse);
             return ZiJinCrawlerQuoteResultsVoBuild.buildQuoteFailResultsVo(boHaiCrawlerQuotationResponse);
         }
         }
 
 
         // 4.0 处理报价失败
         // 4.0 处理报价失败
         if (!ResponseCode.R_Z00001.equals(boHaiCrawlerQuotationResponse.getResponseCode())) {
         if (!ResponseCode.R_Z00001.equals(boHaiCrawlerQuotationResponse.getResponseCode())) {
-            boHaiCrawlerOrderService.save(quoteVo, boHaiCrawlerQuotationResponse, false);
+            ziJinCrawlerOrderService.save(quoteVo, boHaiCrawlerQuotationResponse, false);
             return ZiJinCrawlerQuoteResultsVoBuild.buildQuoteFailResultsVo(boHaiCrawlerQuotationResponse);
             return ZiJinCrawlerQuoteResultsVoBuild.buildQuoteFailResultsVo(boHaiCrawlerQuotationResponse);
         } else {
         } else {
             //报价成功
             //报价成功
-            boHaiCrawlerOrderService.save(quoteVo, boHaiCrawlerQuotationResponse, true);
+            ziJinCrawlerOrderService.save(quoteVo, boHaiCrawlerQuotationResponse, true);
             return ZiJinCrawlerQuoteResultsVoBuild.buildQuoteResultsVo(quoteVo.getOrder().getOrdersNo(), quoteVo, boHaiCrawlerQuotationResponse);
             return ZiJinCrawlerQuoteResultsVoBuild.buildQuoteResultsVo(quoteVo.getOrder().getOrdersNo(), quoteVo, boHaiCrawlerQuotationResponse);
         }
         }
     }
     }
 
 
     /**
     /**
      * 核保
      * 核保
+     *
      * @param underwritingVo
      * @param underwritingVo
      * @return UnderwritingResultsVo
      * @return UnderwritingResultsVo
      */
      */
     @Override
     @Override
     public UnderwritingResultsVo underwriting(UnderwritingVo underwritingVo) {
     public UnderwritingResultsVo underwriting(UnderwritingVo underwritingVo) {
         AttributionInformationVo attributionInformationVo = underwritingVo.getOrder().getAttributionInformationVo();
         AttributionInformationVo attributionInformationVo = underwritingVo.getOrder().getAttributionInformationVo();
-        ZiJinCrawlerOrder boHaiCrawlerOrder = boHaiCrawlerOrderService.getById(underwritingVo.getOrder().getOrdersNo());
-        HttpHeaders headers = boHaiCrawlerQuoteProcessService.getHeaders(attributionInformationVo.getUsername(), attributionInformationVo.getPassword());
+        ZiJinCrawlerOrder boHaiCrawlerOrder = ziJinCrawlerOrderService.getById(underwritingVo.getOrder().getOrdersNo());
+        HttpHeaders headers = ziJinCrawlerQuoteProcessService.getHeaders(attributionInformationVo.getUsername(), attributionInformationVo.getPassword());
 
 
         //UnderwritingRequest underwritingRequest = new UnderwritingRequest(attributionInformationVo.getConfigInfo(), boHaiCrawlerOrder.getOrderNo());
         //UnderwritingRequest underwritingRequest = new UnderwritingRequest(attributionInformationVo.getConfigInfo(), boHaiCrawlerOrder.getOrderNo());
 
 
@@ -607,7 +189,7 @@ public class ZiJinCrawlerRequestImpl implements QuotationCrawlerBaseService {
             ZiJinCrawlerUnderwritingRequest2.BusinessData businessData = createBusinessData();
             ZiJinCrawlerUnderwritingRequest2.BusinessData businessData = createBusinessData();
             ZiJinCrawlerUnderwritingRequest2 boHaiCrawlerUnderwritingRequest2 = new ZiJinCrawlerUnderwritingRequest2(head, businessData);
             ZiJinCrawlerUnderwritingRequest2 boHaiCrawlerUnderwritingRequest2 = new ZiJinCrawlerUnderwritingRequest2(head, businessData);
             // 核保
             // 核保
-            boHaiUnderwritingResponse = boHaiCrawlerRequestComponent.underwriting(boHaiCrawlerUnderwritingRequest2, headers);
+            boHaiUnderwritingResponse = ziJinCrawlerRequestComponent.underwriting(boHaiCrawlerUnderwritingRequest2, headers);
         } catch (Exception e) {
         } catch (Exception e) {
             throw new RuntimeException(e);
             throw new RuntimeException(e);
         }
         }
@@ -625,7 +207,7 @@ public class ZiJinCrawlerRequestImpl implements QuotationCrawlerBaseService {
                 underwritingResultsVo.setJqApplyNo(boHaiUnderwritingResponse.getBusinessData().getBusinessMainInfo().getBusinessNoList().get(0).getProposalNoCI());
                 underwritingResultsVo.setJqApplyNo(boHaiUnderwritingResponse.getBusinessData().getBusinessMainInfo().getBusinessNoList().get(0).getProposalNoCI());
                 underwritingResultsVo.setSyApplyNo(boHaiUnderwritingResponse.getBusinessData().getBusinessMainInfo().getBusinessNoList().get(0).getProposalNoBI());
                 underwritingResultsVo.setSyApplyNo(boHaiUnderwritingResponse.getBusinessData().getBusinessMainInfo().getBusinessNoList().get(0).getProposalNoBI());
             }
             }
-        }else{
+        } else {
             underwritingResultsVo.setUnderwritingStatus(InsOrderStatusEnum.AUDIT_FAIL);
             underwritingResultsVo.setUnderwritingStatus(InsOrderStatusEnum.AUDIT_FAIL);
             StringBuilder sb = new StringBuilder();
             StringBuilder sb = new StringBuilder();
             if (null != boHaiUnderwritingResponse.getHead().getReturnMessage()) {
             if (null != boHaiUnderwritingResponse.getHead().getReturnMessage()) {
@@ -639,6 +221,7 @@ public class ZiJinCrawlerRequestImpl implements QuotationCrawlerBaseService {
 
 
     /**
     /**
      * 获取支付链接
      * 获取支付链接
+     *
      * @param paymentLinkVo
      * @param paymentLinkVo
      * @return PaymentLinkResultsVo
      * @return PaymentLinkResultsVo
      */
      */
@@ -648,13 +231,13 @@ public class ZiJinCrawlerRequestImpl implements QuotationCrawlerBaseService {
             //获取归属信息
             //获取归属信息
             AttributionInformationVo attributionInformationVo = paymentLinkVo.getOrder().getAttributionInformationVo();
             AttributionInformationVo attributionInformationVo = paymentLinkVo.getOrder().getAttributionInformationVo();
             log.info("attributionInformationVo对象的值:{}", JSONObject.toJSONString(attributionInformationVo));
             log.info("attributionInformationVo对象的值:{}", JSONObject.toJSONString(attributionInformationVo));
-            HttpHeaders headers = boHaiCrawlerQuoteProcessService.getHeaders(attributionInformationVo.getUsername(), attributionInformationVo.getPassword());
-            ZiJinCrawlerOrder boHaiCrawlerOrder = boHaiCrawlerOrderService.getById(paymentLinkVo.getOrder().getOrdersNo());
+            HttpHeaders headers = ziJinCrawlerQuoteProcessService.getHeaders(attributionInformationVo.getUsername(), attributionInformationVo.getPassword());
+            ZiJinCrawlerOrder boHaiCrawlerOrder = ziJinCrawlerOrderService.getById(paymentLinkVo.getOrder().getOrdersNo());
 
 
             log.info("获取支付链接,订单号:{}", boHaiCrawlerOrder.getOrderNo());
             log.info("获取支付链接,订单号:{}", boHaiCrawlerOrder.getOrderNo());
             ZiJinCrawlerPaymentCertiNoQueryRequest boHaiCrawlerPaymentCertiNoQueryRequest = buildPaymentCertiNoQueryRequest(boHaiCrawlerOrder.getOrderNo());
             ZiJinCrawlerPaymentCertiNoQueryRequest boHaiCrawlerPaymentCertiNoQueryRequest = buildPaymentCertiNoQueryRequest(boHaiCrawlerOrder.getOrderNo());
 
 
-            ZiJinCrawlerQrcodeResponse boHaiPaymentResponse = boHaiCrawlerRequestComponent.payment(boHaiCrawlerPaymentCertiNoQueryRequest, headers);
+            ZiJinCrawlerQrcodeResponse boHaiPaymentResponse = ziJinCrawlerRequestComponent.payment(boHaiCrawlerPaymentCertiNoQueryRequest, headers);
             PaymentLinkResultsVo paymentLinkResultsVo = new PaymentLinkResultsVo();
             PaymentLinkResultsVo paymentLinkResultsVo = new PaymentLinkResultsVo();
             paymentLinkResultsVo.setPaymentLink(boHaiPaymentResponse.getUrl());
             paymentLinkResultsVo.setPaymentLink(boHaiPaymentResponse.getUrl());
             return paymentLinkResultsVo;
             return paymentLinkResultsVo;
@@ -669,6 +252,7 @@ public class ZiJinCrawlerRequestImpl implements QuotationCrawlerBaseService {
 
 
     /**
     /**
      * 影像上传
      * 影像上传
+     *
      * @param insuranceUploadImageVo
      * @param insuranceUploadImageVo
      */
      */
     @Override
     @Override
@@ -676,15 +260,15 @@ public class ZiJinCrawlerRequestImpl implements QuotationCrawlerBaseService {
         try {
         try {
             //获取归属信息
             //获取归属信息
             AttributionInformationVo attributionInformationVo = insuranceUploadImageVo.getOrder().getAttributionInformationVo();
             AttributionInformationVo attributionInformationVo = insuranceUploadImageVo.getOrder().getAttributionInformationVo();
-            ZiJinCrawlerOrder boHaiCrawlerOrder = boHaiCrawlerOrderService.getById(insuranceUploadImageVo.getOrder().getOrdersNo());
-            HttpHeaders headers = boHaiCrawlerQuoteProcessService.getHeaders(attributionInformationVo.getUsername(), attributionInformationVo.getPassword());
+            ZiJinCrawlerOrder boHaiCrawlerOrder = ziJinCrawlerOrderService.getById(insuranceUploadImageVo.getOrder().getOrdersNo());
+            HttpHeaders headers = ziJinCrawlerQuoteProcessService.getHeaders(attributionInformationVo.getUsername(), attributionInformationVo.getPassword());
 
 
             ZiJinCrawlerConfigureParameters parameters = ConfigureParametersConversion.conversionEntity(ZiJinCrawlerConfigureParameters.class, attributionInformationVo.getConfigInfo());
             ZiJinCrawlerConfigureParameters parameters = ConfigureParametersConversion.conversionEntity(ZiJinCrawlerConfigureParameters.class, attributionInformationVo.getConfigInfo());
 
 
             // 上传影像文件请求参数
             // 上传影像文件请求参数
             ZiJinCrawlerImageUploadRequestDto boHaiCrawlerImageUploadRequest = new ZiJinCrawlerImageUploadRequestDto(parameters, boHaiCrawlerOrder.getOrderNo(), insuranceUploadImageVo.getImageVoList());
             ZiJinCrawlerImageUploadRequestDto boHaiCrawlerImageUploadRequest = new ZiJinCrawlerImageUploadRequestDto(parameters, boHaiCrawlerOrder.getOrderNo(), insuranceUploadImageVo.getImageVoList());
-            ZiJinCrawlerImageUploadSubmitResponse boHaiCrawlerImageUploadSubmitResponse = boHaiCrawlerRequestComponent.uploadImage(boHaiCrawlerImageUploadRequest, headers);
-            log.info("boHaiCrawlerImageUploadSubmitResponse对象的值:{}",JSON.toJSONString(boHaiCrawlerImageUploadSubmitResponse));
+            ZiJinCrawlerImageUploadSubmitResponse boHaiCrawlerImageUploadSubmitResponse = ziJinCrawlerRequestComponent.uploadImage(boHaiCrawlerImageUploadRequest, headers);
+            log.info("boHaiCrawlerImageUploadSubmitResponse对象的值:{}", JSON.toJSONString(boHaiCrawlerImageUploadSubmitResponse));
         } catch (Exception e) {
         } catch (Exception e) {
             e.printStackTrace();
             e.printStackTrace();
             throw new RuntimeException(e);
             throw new RuntimeException(e);
@@ -693,6 +277,7 @@ public class ZiJinCrawlerRequestImpl implements QuotationCrawlerBaseService {
 
 
     /**
     /**
      * 构建支付凭证查询请求对象
      * 构建支付凭证查询请求对象
+     *
      * @param orderNo 订单号
      * @param orderNo 订单号
      * @return ZiJinCrawlerPaymentCertiNoQueryRequest 支付凭证查询请求对象
      * @return ZiJinCrawlerPaymentCertiNoQueryRequest 支付凭证查询请求对象
      */
      */
@@ -800,6 +385,7 @@ public class ZiJinCrawlerRequestImpl implements QuotationCrawlerBaseService {
 
 
     /**
     /**
      * 下载保单
      * 下载保单
+     *
      * @param downloadPolicyVo
      * @param downloadPolicyVo
      * @return DownloadPolicyResultVo
      * @return DownloadPolicyResultVo
      */
      */
@@ -807,8 +393,8 @@ public class ZiJinCrawlerRequestImpl implements QuotationCrawlerBaseService {
     public DownloadPolicyResultVo downloadPolicy(DownloadPolicyVo downloadPolicyVo) {
     public DownloadPolicyResultVo downloadPolicy(DownloadPolicyVo downloadPolicyVo) {
         //获取归属信息
         //获取归属信息
         AttributionInformationVo attributionInformationVo = downloadPolicyVo.getOrder().getAttributionInformationVo();
         AttributionInformationVo attributionInformationVo = downloadPolicyVo.getOrder().getAttributionInformationVo();
-        HttpHeaders headers = boHaiCrawlerQuoteProcessService.getHeaders(attributionInformationVo.getUsername(), attributionInformationVo.getPassword());
-        ZiJinCrawlerOrder boHaiCrawlerOrder = boHaiCrawlerOrderService.getById(downloadPolicyVo.getOrder().getOrdersNo());
+        HttpHeaders headers = ziJinCrawlerQuoteProcessService.getHeaders(attributionInformationVo.getUsername(), attributionInformationVo.getPassword());
+        ZiJinCrawlerOrder boHaiCrawlerOrder = ziJinCrawlerOrderService.getById(downloadPolicyVo.getOrder().getOrdersNo());
 
 
         /*ElectronicPolicyRequest electronicPolicyRequest = new ElectronicPolicyRequest(attributionInformationVo.getConfigInfo(),
         /*ElectronicPolicyRequest electronicPolicyRequest = new ElectronicPolicyRequest(attributionInformationVo.getConfigInfo(),
                 boHaiCrawlerOrder.getOrderNo(), boHaiCrawlerOrder.getCiPolicyNo(), boHaiCrawlerOrder.getBiPolicyNo());*/
                 boHaiCrawlerOrder.getOrderNo(), boHaiCrawlerOrder.getCiPolicyNo(), boHaiCrawlerOrder.getBiPolicyNo());*/
@@ -819,15 +405,15 @@ public class ZiJinCrawlerRequestImpl implements QuotationCrawlerBaseService {
         // 下载交强险保单
         // 下载交强险保单
         if (StringUtils.hasLength(boHaiCrawlerOrder.getCiPolicyNo())) {
         if (StringUtils.hasLength(boHaiCrawlerOrder.getCiPolicyNo())) {
             //boHaiCrawlerDownloadRequest.setBusinessNo(boHaiCrawlerOrder.getCiPolicyNo());
             //boHaiCrawlerDownloadRequest.setBusinessNo(boHaiCrawlerOrder.getCiPolicyNo());
-            response = boHaiCrawlerRequestComponent.electronPolicyIODownload(boHaiCrawlerDownloadRequest, headers);
+            response = ziJinCrawlerRequestComponent.electronPolicyIODownload(boHaiCrawlerDownloadRequest, headers);
             downloadPolicyResultVo.setJqUrl(response.getFiles().get(0).getAddress());
             downloadPolicyResultVo.setJqUrl(response.getFiles().get(0).getAddress());
         }
         }
 
 
         // 下载商业险保单
         // 下载商业险保单
         if (StringUtils.hasLength(boHaiCrawlerOrder.getBiPolicyNo())) {
         if (StringUtils.hasLength(boHaiCrawlerOrder.getBiPolicyNo())) {
             boHaiCrawlerDownloadRequest.setBusinessNo(boHaiCrawlerOrder.getBiPolicyNo());
             boHaiCrawlerDownloadRequest.setBusinessNo(boHaiCrawlerOrder.getBiPolicyNo());
-            response = boHaiCrawlerRequestComponent.electronPolicyIODownload(boHaiCrawlerDownloadRequest, headers);
-            if(!CollectionUtils.isEmpty(response.getFiles())){
+            response = ziJinCrawlerRequestComponent.electronPolicyIODownload(boHaiCrawlerDownloadRequest, headers);
+            if (!CollectionUtils.isEmpty(response.getFiles())) {
                 downloadPolicyResultVo.setSyUrl(response.getFiles().get(0).getAddress());
                 downloadPolicyResultVo.setSyUrl(response.getFiles().get(0).getAddress());
             }
             }
         }
         }
@@ -835,8 +421,8 @@ public class ZiJinCrawlerRequestImpl implements QuotationCrawlerBaseService {
         // 下载驾意险保单
         // 下载驾意险保单
         if (StringUtils.hasLength(boHaiCrawlerOrder.getNiPolicyNo())) {
         if (StringUtils.hasLength(boHaiCrawlerOrder.getNiPolicyNo())) {
             boHaiCrawlerDownloadRequest.setBusinessNo(boHaiCrawlerOrder.getNiPolicyNo());
             boHaiCrawlerDownloadRequest.setBusinessNo(boHaiCrawlerOrder.getNiPolicyNo());
-            response = boHaiCrawlerRequestComponent.electronPolicyIODownload(boHaiCrawlerDownloadRequest, headers);
-            if(!CollectionUtils.isEmpty(response.getFiles())){
+            response = ziJinCrawlerRequestComponent.electronPolicyIODownload(boHaiCrawlerDownloadRequest, headers);
+            if (!CollectionUtils.isEmpty(response.getFiles())) {
                 downloadPolicyResultVo.setJyUrl(response.getFiles().get(0).getAddress());
                 downloadPolicyResultVo.setJyUrl(response.getFiles().get(0).getAddress());
             }
             }
         }
         }
@@ -878,11 +464,11 @@ public class ZiJinCrawlerRequestImpl implements QuotationCrawlerBaseService {
     public OrderStatusResultVo queryOrderState(OrderStatusVo orderStatusVo) {
     public OrderStatusResultVo queryOrderState(OrderStatusVo orderStatusVo) {
         try {
         try {
             AttributionInformationVo attributionInformationVo = orderStatusVo.getOrder().getAttributionInformationVo();
             AttributionInformationVo attributionInformationVo = orderStatusVo.getOrder().getAttributionInformationVo();
-            HttpHeaders headers = boHaiCrawlerQuoteProcessService.getHeaders(attributionInformationVo.getUsername(), attributionInformationVo.getPassword());
-            ZiJinCrawlerOrder boHaiCrawlerOrder = boHaiCrawlerOrderService.getById(orderStatusVo.getOrder().getOrdersNo());
+            HttpHeaders headers = ziJinCrawlerQuoteProcessService.getHeaders(attributionInformationVo.getUsername(), attributionInformationVo.getPassword());
+            ZiJinCrawlerOrder boHaiCrawlerOrder = ziJinCrawlerOrderService.getById(orderStatusVo.getOrder().getOrdersNo());
 
 
             ZiJinCrawlerQueryOrderStatusRequest boHaiCrawlerQueryOrderStatusRequest = buildOrderStatusRequest(boHaiCrawlerOrder);
             ZiJinCrawlerQueryOrderStatusRequest boHaiCrawlerQueryOrderStatusRequest = buildOrderStatusRequest(boHaiCrawlerOrder);
-            ZiJinCrawlerQueryOrderStatusResponse boHaiCrawlerQueryOrderStatusResponse = boHaiCrawlerRequestComponent.queryOrderStatus(boHaiCrawlerQueryOrderStatusRequest, headers);
+            ZiJinCrawlerQueryOrderStatusResponse boHaiCrawlerQueryOrderStatusResponse = ziJinCrawlerRequestComponent.queryOrderStatus(boHaiCrawlerQueryOrderStatusRequest, headers);
             log.info("查询订单状态响应:{}", JSON.toJSONString(boHaiCrawlerQueryOrderStatusResponse));
             log.info("查询订单状态响应:{}", JSON.toJSONString(boHaiCrawlerQueryOrderStatusResponse));
             //获取订单状态
             //获取订单状态
             InsOrderStatusEnum insOrderStatusEnum = determineOrderStatus(boHaiCrawlerQueryOrderStatusResponse);
             InsOrderStatusEnum insOrderStatusEnum = determineOrderStatus(boHaiCrawlerQueryOrderStatusResponse);
@@ -898,6 +484,7 @@ public class ZiJinCrawlerRequestImpl implements QuotationCrawlerBaseService {
 
 
     /**
     /**
      * 确定订单状态
      * 确定订单状态
+     *
      * @param response
      * @param response
      * @return InsOrderStatusEnum
      * @return InsOrderStatusEnum
      */
      */
@@ -1022,7 +609,7 @@ public class ZiJinCrawlerRequestImpl implements QuotationCrawlerBaseService {
         boHaiCrawlerVehicleConfirmationReqeust1.setBody(bodyDTO);
         boHaiCrawlerVehicleConfirmationReqeust1.setBody(bodyDTO);
 
 
         //调用车辆确认接口
         //调用车辆确认接口
-        ZiJinCrawlerVehicleConfirmationResponse2 boHaiCrawlerVehicleConfirmationResponse = boHaiCrawlerRequestComponent.vehicleConfirmation(boHaiCrawlerVehicleConfirmationReqeust1, headers);
+        ZiJinCrawlerVehicleConfirmationResponse2 boHaiCrawlerVehicleConfirmationResponse = ziJinCrawlerRequestComponent.vehicleConfirmation(boHaiCrawlerVehicleConfirmationReqeust1, headers);
         log.info("boHaiCrawlerVehicleConfirmationResponse参数的值:{}", JSON.toJSONString(boHaiCrawlerVehicleConfirmationResponse));
         log.info("boHaiCrawlerVehicleConfirmationResponse参数的值:{}", JSON.toJSONString(boHaiCrawlerVehicleConfirmationResponse));
 
 
         Map<String, Object> map = new HashMap<>();
         Map<String, Object> map = new HashMap<>();
@@ -1141,9 +728,10 @@ public class ZiJinCrawlerRequestImpl implements QuotationCrawlerBaseService {
 
 
     /**
     /**
      * 创建车辆信息(用于核保)
      * 创建车辆信息(用于核保)
+     *
      * @return CarInfo
      * @return CarInfo
      */
      */
-    private ZiJinCrawlerUnderwritingRequest2.CarInfo createCarInfo(){
+    private ZiJinCrawlerUnderwritingRequest2.CarInfo createCarInfo() {
         ZiJinCrawlerUnderwritingRequest2.CarInfo carInfo = new ZiJinCrawlerUnderwritingRequest2.CarInfo();
         ZiJinCrawlerUnderwritingRequest2.CarInfo carInfo = new ZiJinCrawlerUnderwritingRequest2.CarInfo();
 
 
         // 创建车辆详细信息
         // 创建车辆详细信息
@@ -2086,7 +1674,7 @@ public class ZiJinCrawlerRequestImpl implements QuotationCrawlerBaseService {
     /**
     /**
      * 构建订单状态查询请求对象
      * 构建订单状态查询请求对象
      *
      *
-     * @param boHaiCrawlerOrder        渤海爬虫订单
+     * @param boHaiCrawlerOrder 渤海爬虫订单
      * @return ZiJinCrawlerQueryOrderStatusRequest
      * @return ZiJinCrawlerQueryOrderStatusRequest
      */
      */
     private ZiJinCrawlerQueryOrderStatusRequest buildOrderStatusRequest(ZiJinCrawlerOrder boHaiCrawlerOrder) {
     private ZiJinCrawlerQueryOrderStatusRequest buildOrderStatusRequest(ZiJinCrawlerOrder boHaiCrawlerOrder) {

+ 3 - 1
tenant/insurance/quotation-zijin/src/main/java/com/jzg/quotation/zijin/crawler/util/RS6Item.java

@@ -10,7 +10,6 @@ import org.apache.http.util.EntityUtils;
 import org.jsoup.Jsoup;
 import org.jsoup.Jsoup;
 import org.jsoup.nodes.Document;
 import org.jsoup.nodes.Document;
 import org.jsoup.select.Elements;
 import org.jsoup.select.Elements;
-
 import java.io.BufferedReader;
 import java.io.BufferedReader;
 import java.io.File;
 import java.io.File;
 import java.io.IOException;
 import java.io.IOException;
@@ -25,6 +24,9 @@ import java.util.Map;
 import java.util.regex.Matcher;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 import java.util.regex.Pattern;
 
 
+/**
+ * 获取Cookie的工具类
+ */
 @Slf4j
 @Slf4j
 public class RS6Item {
 public class RS6Item {
     private final CloseableHttpClient httpClient;
     private final CloseableHttpClient httpClient;