Browse Source

save: 华农财险报价相关

wks 1 năm trước cách đây
mục cha
commit
774aba0f83
38 tập tin đã thay đổi với 1280 bổ sung38 xóa
  1. 5 1
      tenant/insurance/quotation-dajia/src/main/java/com/jzg/quotation/dajia/crawler/properties/DaJiaCrawlerProperties.java
  2. 6 0
      tenant/insurance/quotation-huanong/pom.xml
  3. 142 0
      tenant/insurance/quotation-huanong/src/main/java/com/jzg/quote/huanong/crawler/component/HuaNongCrawlerRequestComponent.java
  4. 8 1
      tenant/insurance/quotation-huanong/src/main/java/com/jzg/quote/huanong/crawler/constant/enums/RequestUrl.java
  5. 18 0
      tenant/insurance/quotation-huanong/src/main/java/com/jzg/quote/huanong/crawler/entity/HuaNongCrawlerConfigureParameters.java
  6. 64 0
      tenant/insurance/quotation-huanong/src/main/java/com/jzg/quote/huanong/crawler/entity/request/HuaNongCrawlerActualValueRequest.java
  7. 15 1
      tenant/insurance/quotation-huanong/src/main/java/com/jzg/quote/huanong/crawler/entity/request/HuaNongCrawlerComInfoQueryRequest.java
  8. 66 0
      tenant/insurance/quotation-huanong/src/main/java/com/jzg/quote/huanong/crawler/entity/request/HuaNongCrawlerLoginRequest.java
  9. 74 0
      tenant/insurance/quotation-huanong/src/main/java/com/jzg/quote/huanong/crawler/entity/request/HuaNongCrawlerModelsQueryRequest.java
  10. 87 20
      tenant/insurance/quotation-huanong/src/main/java/com/jzg/quote/huanong/crawler/entity/request/HuaNongCrawlerQuotedPriceRequest.java
  11. 11 2
      tenant/insurance/quotation-huanong/src/main/java/com/jzg/quote/huanong/crawler/entity/request/HuaNongCrawlerRequestBaseHead.java
  12. 13 1
      tenant/insurance/quotation-huanong/src/main/java/com/jzg/quote/huanong/crawler/entity/request/HuaNongCrawlerSaveRequest.java
  13. 20 1
      tenant/insurance/quotation-huanong/src/main/java/com/jzg/quote/huanong/crawler/entity/request/HuaNongCrawlerSubmitRequest.java
  14. 13 1
      tenant/insurance/quotation-huanong/src/main/java/com/jzg/quote/huanong/crawler/entity/request/HuaNongCrawlerUserTypeAndProxyInfoQueryRequest.java
  15. 17 2
      tenant/insurance/quotation-huanong/src/main/java/com/jzg/quote/huanong/crawler/entity/request/HuaNongCrawlerVerificationCodeRequest.java
  16. 12 0
      tenant/insurance/quotation-huanong/src/main/java/com/jzg/quote/huanong/crawler/entity/request/HuaNongHead.java
  17. 26 0
      tenant/insurance/quotation-huanong/src/main/java/com/jzg/quote/huanong/crawler/entity/response/HuaNongCrawlerActualValueResponse.java
  18. 6 0
      tenant/insurance/quotation-huanong/src/main/java/com/jzg/quote/huanong/crawler/entity/response/HuaNongCrawlerBaseResponseHead.java
  19. 6 0
      tenant/insurance/quotation-huanong/src/main/java/com/jzg/quote/huanong/crawler/entity/response/HuaNongCrawlerComInfoQueryResponse.java
  20. 309 0
      tenant/insurance/quotation-huanong/src/main/java/com/jzg/quote/huanong/crawler/entity/response/HuaNongCrawlerLoginResponse.java
  21. 161 0
      tenant/insurance/quotation-huanong/src/main/java/com/jzg/quote/huanong/crawler/entity/response/HuaNongCrawlerModelsQueryResponse.java
  22. 6 0
      tenant/insurance/quotation-huanong/src/main/java/com/jzg/quote/huanong/crawler/entity/response/HuaNongCrawlerQuotedPriceResponse.java
  23. 7 0
      tenant/insurance/quotation-huanong/src/main/java/com/jzg/quote/huanong/crawler/entity/response/HuaNongCrawlerSaveResponse.java
  24. 6 0
      tenant/insurance/quotation-huanong/src/main/java/com/jzg/quote/huanong/crawler/entity/response/HuaNongCrawlerSubmitResponse.java
  25. 6 0
      tenant/insurance/quotation-huanong/src/main/java/com/jzg/quote/huanong/crawler/entity/response/HuaNongCrawlerUserTypeAndProxyInfoQueryResponse.java
  26. 6 0
      tenant/insurance/quotation-huanong/src/main/java/com/jzg/quote/huanong/crawler/entity/response/HuaNongCrawlerVerificationCodeResponse.java
  27. 6 0
      tenant/insurance/quotation-huanong/src/main/java/com/jzg/quote/huanong/crawler/properties/HuaNongCrawlerProperties.java
  28. 7 0
      tenant/insurance/quotation-huanong/src/main/java/com/jzg/quote/huanong/crawler/service/HuaNongCrawlerQuoteProcessService.java
  29. 37 6
      tenant/insurance/quotation-huanong/src/main/java/com/jzg/quote/huanong/crawler/service/impl/HuaNongCrawlerOrderServiceImpl.java
  30. 38 0
      tenant/insurance/quotation-huanong/src/main/java/com/jzg/quote/huanong/crawler/service/impl/HuaNongCrawlerQuoteProcessServiceImpl.java
  31. 42 0
      tenant/insurance/quotation-huanong/src/main/java/com/jzg/quote/huanong/crawler/utils/RequestEncryptor.java
  32. 6 0
      tenant/insurance/quotation-taiping/src/main/java/com/jzg/quotation/taiping/crawler/properties/TaiPingCrawlerProperties.java
  33. 5 0
      tenant/insurance/quotation-taiping/src/main/java/com/jzg/quotation/taiping/crawler/utils/AESEncryption.java
  34. 5 0
      tenant/insurance/quotation-taiping/src/main/java/com/jzg/quotation/taiping/crawler/utils/VerifyCodeCreate.java
  35. 6 0
      tenant/insurance/quotation-zijin/src/main/java/com/jzg/quotation/zijin/api/entity/request/QueryOrderDetailRequest.java
  36. 6 0
      tenant/insurance/quotation-zijin/src/main/java/com/jzg/quotation/zijin/api/entity/request/UploadImageInfoListRequest.java
  37. 6 0
      tenant/insurance/quotation-zijin/src/main/java/com/jzg/quotation/zijin/api/entity/request/ZbfAggregatePayRequest.java
  38. 6 2
      tenant/insurance/quotation-zijin/src/main/java/com/jzg/quotation/zijin/api/entity/response/CalculatePremiumResponse.java

+ 5 - 1
tenant/insurance/quotation-dajia/src/main/java/com/jzg/quotation/dajia/crawler/properties/DaJiaCrawlerProperties.java

@@ -2,10 +2,14 @@ package com.jzg.quotation.dajia.crawler.properties;
 
 
 
 
 import lombok.Data;
 import lombok.Data;
-import lombok.Getter;
 import org.springframework.boot.context.properties.ConfigurationProperties;
 import org.springframework.boot.context.properties.ConfigurationProperties;
 import org.springframework.stereotype.Component;
 import org.springframework.stereotype.Component;
 
 
+/**
+ * @description: 大家财险爬虫配置信息
+ * @author: wenks
+ * @date: 2025/3/20 11:27
+ **/
 @Data
 @Data
 @Component
 @Component
 @ConfigurationProperties(prefix = "dajia.crawler")
 @ConfigurationProperties(prefix = "dajia.crawler")

+ 6 - 0
tenant/insurance/quotation-huanong/pom.xml

@@ -23,6 +23,12 @@
             <artifactId>quotation-commons</artifactId>
             <artifactId>quotation-commons</artifactId>
             <version>1.0-SNAPSHOT</version>
             <version>1.0-SNAPSHOT</version>
         </dependency>
         </dependency>
+        <dependency>
+            <groupId>com.jzg</groupId>
+            <artifactId>quotation-guoren</artifactId>
+            <version>1.0-SNAPSHOT</version>
+            <scope>compile</scope>
+        </dependency>
     </dependencies>
     </dependencies>
 
 
 </project>
 </project>

+ 142 - 0
tenant/insurance/quotation-huanong/src/main/java/com/jzg/quote/huanong/crawler/component/HuaNongCrawlerRequestComponent.java

@@ -0,0 +1,142 @@
+package com.jzg.quote.huanong.crawler.component;
+
+import com.alibaba.fastjson2.JSON;
+import com.alibaba.fastjson2.JSONObject;
+import com.jzg.quotation.commons.component.RequestComponent;
+import com.jzg.quote.huanong.crawler.constant.enums.RequestUrl;
+import com.jzg.quote.huanong.crawler.entity.request.*;
+import com.jzg.quote.huanong.crawler.entity.response.*;
+import com.jzg.quote.huanong.crawler.properties.HuaNongCrawlerProperties;
+import com.jzg.quote.huanong.crawler.utils.RequestEncryptor;
+import lombok.RequiredArgsConstructor;
+import org.springframework.http.HttpHeaders;
+import org.springframework.http.ResponseEntity;
+import org.springframework.stereotype.Component;
+
+
+/**
+ * @description: 华农请求基类
+ * @author: wenks
+ * @date: 2025/3/20 12:01
+ **/
+@Component
+@RequiredArgsConstructor
+public class HuaNongCrawlerRequestComponent {
+
+    private final HuaNongCrawlerProperties properties;
+
+    private final RequestComponent requestComponent;
+
+    public <Request extends HuaNongHead, Response> Response post(RequestUrl requestUrl, Request body, Class<Response> responseClass, HttpHeaders headers) {
+        HuaNongCrawlerRequestBaseHead head = body.getHead();
+        head.setSource(requestUrl.getUri());
+        JSONObject json = JSONObject.from(body);
+        String requestBody = RequestEncryptor.processRequest(json);
+        String url = properties.getUrl() + "?" + requestUrl.getRequestSuffix();
+        ResponseEntity<Response> responseResponseEntity = requestComponent.stringPost(url, requestBody, responseClass, headers);
+        return responseResponseEntity.getBody();
+    }
+
+    /**
+     * 验证码
+     *
+     * @param request 验证码请求
+     * @param headers 请求头
+     * @return 验证码信息
+     */
+    public HuaNongCrawlerVerificationCodeResponse verificationCode(HuaNongCrawlerVerificationCodeRequest request, HttpHeaders headers) {
+        return post(RequestUrl.VERIFICATION_CODE, request, HuaNongCrawlerVerificationCodeResponse.class, headers);
+    }
+
+    /**
+     * 登录
+     *
+     * @param request 验证码请求
+     * @param headers 请求头
+     * @return 登录后的信息
+     */
+    public HuaNongCrawlerLoginResponse login(HuaNongCrawlerLoginRequest request, HttpHeaders headers) {
+        return post(RequestUrl.LOGIN, request, HuaNongCrawlerLoginResponse.class, headers);
+    }
+
+    /**
+     * 查询归属信息
+     *
+     * @param request 查询归属信息请求
+     * @param headers 请求头
+     * @return 归属信息
+     */
+    public HuaNongCrawlerComInfoQueryResponse comInfoQuery(HuaNongCrawlerComInfoQueryRequest request, HttpHeaders headers) {
+        return post(RequestUrl.COM_INFO_QUERY, request, HuaNongCrawlerComInfoQueryResponse.class, headers);
+    }
+
+    /**
+     * 验证码
+     *
+     * @param request 验证码请求
+     * @param headers 请求头
+     * @return 验证码信息
+     */
+    public HuaNongCrawlerUserTypeAndProxyInfoQueryResponse userTypeAndProxyInfoQuery(HuaNongCrawlerUserTypeAndProxyInfoQueryRequest request, HttpHeaders headers) {
+        return post(RequestUrl.USER_TYPE_AND_PROXY_INFO_QUERY, request, HuaNongCrawlerUserTypeAndProxyInfoQueryResponse.class, headers);
+    }
+
+    /**
+     * 车型查询
+     *
+     * @param request 保费计算请求
+     * @param headers 请求头
+     * @return 报价信息
+     */
+    public HuaNongCrawlerModelsQueryResponse modelsQuery(HuaNongCrawlerModelsQueryRequest request, HttpHeaders headers) {
+        return post(RequestUrl.MODELS_QUERY, request, HuaNongCrawlerModelsQueryResponse.class, headers);
+    }
+
+    /**
+     * 计算折旧价
+     *
+     * @param request 计算折旧价请求
+     * @param headers 请求头
+     * @return 折旧价
+     */
+    public String actualValue(HuaNongCrawlerActualValueRequest request, HttpHeaders headers) {
+        HuaNongCrawlerActualValueResponse response = post(RequestUrl.ACTUAL_VALUE, request, HuaNongCrawlerActualValueResponse.class, headers);
+        return response.getActualValue();
+    }
+
+    /**
+     * 保费计算
+     *
+     * @param request 保费计算请求
+     * @param headers 请求头
+     * @return 报价信息
+     */
+    public HuaNongCrawlerQuotedPriceResponse quotedPrice(HuaNongCrawlerQuotedPriceRequest request, HttpHeaders headers) {
+        return post(RequestUrl.QUOTED_PRICE, request, HuaNongCrawlerQuotedPriceResponse.class, headers);
+    }
+
+    /**
+     * 保存订单
+     *
+     * @param request 保存订单请求
+     * @param headers 请求头
+     * @return 保存订单信息
+     */
+    public HuaNongCrawlerSaveResponse save(HuaNongCrawlerSaveRequest request, HttpHeaders headers) {
+        return post(RequestUrl.SAVE, request, HuaNongCrawlerSaveResponse.class, headers);
+    }
+
+    /**
+     * 提交核保
+     *
+     * @param request 提交核保请求
+     * @param headers 请求头
+     * @return 提交核保信息
+     */
+    public HuaNongCrawlerSubmitResponse submit(HuaNongCrawlerSubmitRequest request, HttpHeaders headers) {
+        return post(RequestUrl.SUBMIT, request, HuaNongCrawlerSubmitResponse.class, headers);
+    }
+
+
+
+}

+ 8 - 1
tenant/insurance/quotation-huanong/src/main/java/com/jzg/quote/huanong/crawler/constant/enums/RequestUrl.java

@@ -4,17 +4,25 @@ import com.jzg.quotation.commons.standard.CrawlerRequestUrlStandard;
 import lombok.AllArgsConstructor;
 import lombok.AllArgsConstructor;
 import lombok.Getter;
 import lombok.Getter;
 
 
+/**
+ * @description: 华农财险 请求链接
+ * @author: wenks
+ * @date: 2025/3/20 11:25
+ **/
 @AllArgsConstructor
 @AllArgsConstructor
 @Getter
 @Getter
 public enum RequestUrl implements CrawlerRequestUrlStandard {
 public enum RequestUrl implements CrawlerRequestUrlStandard {
 
 
     // 登录
     // 登录
+    Message("Message", "发送验证码", "message"),
     VERIFICATION_CODE("VERIFICATIONCODE", "获取验证码", "message"),
     VERIFICATION_CODE("VERIFICATIONCODE", "获取验证码", "message"),
     LOGIN("Login", "登录", "login"),
     LOGIN("Login", "登录", "login"),
     // 归属信息
     // 归属信息
     COM_INFO_QUERY("comInfoQuery", "查询归属机构", "comInfoQuery"),
     COM_INFO_QUERY("comInfoQuery", "查询归属机构", "comInfoQuery"),
     USER_TYPE_AND_PROXY_INFO_QUERY("userTypeAndProxyinfoQuery", "渠道类型和代理信息", "userTypeAndProxyinfoQuery"),
     USER_TYPE_AND_PROXY_INFO_QUERY("userTypeAndProxyinfoQuery", "渠道类型和代理信息", "userTypeAndProxyinfoQuery"),
     // 报价
     // 报价
+    MODELS_QUERY("ModelsQuery", "车型查询", "modelsQuery"),
+    ACTUAL_VALUE("ActualValue", "折旧价计算", "actualValue"),
     QUOTED_PRICE("QuotedPrice", "保费计算", "QuotedPrice"),
     QUOTED_PRICE("QuotedPrice", "保费计算", "QuotedPrice"),
     SAVE("Save", "保存订单", "Save"),
     SAVE("Save", "保存订单", "Save"),
     // 上传影像
     // 上传影像
@@ -25,7 +33,6 @@ public enum RequestUrl implements CrawlerRequestUrlStandard {
     // 状态查询
     // 状态查询
 
 
     // 保单下载
     // 保单下载
-
     ;
     ;
 
 
 
 

+ 18 - 0
tenant/insurance/quotation-huanong/src/main/java/com/jzg/quote/huanong/crawler/entity/HuaNongCrawlerConfigureParameters.java

@@ -0,0 +1,18 @@
+package com.jzg.quote.huanong.crawler.entity;
+
+import lombok.Data;
+import lombok.RequiredArgsConstructor;
+import org.springframework.stereotype.Component;
+
+@Data
+@Component
+@RequiredArgsConstructor
+public class HuaNongCrawlerConfigureParameters {
+
+    /**
+     * 归属机构编码
+     */
+    private String comCode;
+
+
+}

+ 64 - 0
tenant/insurance/quotation-huanong/src/main/java/com/jzg/quote/huanong/crawler/entity/request/HuaNongCrawlerActualValueRequest.java

@@ -0,0 +1,64 @@
+package com.jzg.quote.huanong.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 HuaNongCrawlerActualValueRequest implements Serializable, HuaNongHead  {
+
+    @Serial
+    private static final long serialVersionUID = 3848690084024362135L;
+
+    @JsonProperty("head")
+    private HuaNongCrawlerRequestBaseHead head;
+
+    @JsonProperty("localModelCode")
+    private String localModelCode;
+
+    @JsonProperty("approvedPassengersCapacity")
+    private Integer approvedPassengersCapacity;
+
+    @JsonProperty("validDate")
+    private String validDate;
+
+    @JsonProperty("purchasePrice")
+    private String purchasePrice;
+
+    @JsonProperty("motorUsageTypeCode")
+    private String motorUsageTypeCode;
+
+    @JsonProperty("motorTypeCode")
+    private String motorTypeCode;
+
+    @JsonProperty("registerDate")
+    private String registerDate;
+
+    @JsonProperty("loginCom")
+    private String loginCom;
+
+    @JsonProperty("isNewEnergyFlag")
+    private Boolean isNewEnergyFlag;
+
+    @JsonProperty("EnergyType")
+    private String energyType;
+
+    @NoArgsConstructor
+    @Data
+    public static class HeadDTO {
+        @JsonProperty("TransCode")
+        private String transCode;
+        @JsonProperty("TransType")
+        private String transType;
+        @JsonProperty("token")
+        private String token;
+        @JsonProperty("source")
+        private String source;
+        @JsonProperty("sign")
+        private String sign;
+    }
+}

+ 15 - 1
tenant/insurance/quotation-huanong/src/main/java/com/jzg/quote/huanong/crawler/entity/request/HuaNongCrawlerComInfoQueryRequest.java

@@ -2,12 +2,26 @@ package com.jzg.quote.huanong.crawler.entity.request;
 
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import lombok.Data;
 import lombok.Data;
+import lombok.Getter;
 import lombok.NoArgsConstructor;
 import lombok.NoArgsConstructor;
 
 
+import java.io.Serial;
+import java.io.Serializable;
+
+
+/**
+ * @description: 华农财险 查询归属机构 请求
+ * @author: wenks
+ * @date: 2025/3/20 11:19
+ **/
 @NoArgsConstructor
 @NoArgsConstructor
 @Data
 @Data
-public class HuaNongCrawlerComInfoQueryRequest {
+public class HuaNongCrawlerComInfoQueryRequest implements Serializable, HuaNongHead {
+
+    @Serial
+    private static final long serialVersionUID = -7566804567059721650L;
 
 
+    @Getter
     @JsonProperty("head")
     @JsonProperty("head")
     private HuaNongCrawlerRequestBaseHead head;
     private HuaNongCrawlerRequestBaseHead head;
 
 

+ 66 - 0
tenant/insurance/quotation-huanong/src/main/java/com/jzg/quote/huanong/crawler/entity/request/HuaNongCrawlerLoginRequest.java

@@ -0,0 +1,66 @@
+package com.jzg.quote.huanong.crawler.entity.request;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.jzg.quote.huanong.crawler.entity.response.HuaNongCrawlerVerificationCodeResponse;
+import jodd.util.Base64;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serial;
+import java.io.Serializable;
+
+/**
+ * @description: 大家财险 登录 请求
+ * @author: wenks
+ * @date: 2025/3/20 14:35
+ **/
+@NoArgsConstructor
+@Data
+public class HuaNongCrawlerLoginRequest implements Serializable, HuaNongHead {
+
+    @Serial
+    private static final long serialVersionUID = 4577459748247898283L;
+
+    @JsonProperty("head")
+    private HuaNongCrawlerRequestBaseHead head;
+
+    @JsonProperty("userCode")
+    private String userCode;
+
+    @JsonProperty("type")
+    private String type;
+
+    @JsonProperty("captchaKey")
+    private String captchaKey;
+
+    @JsonProperty("verificationCode")
+    private String verificationCode;
+
+    @JsonProperty("deviceId")
+    private String deviceId;
+
+    @JsonProperty("mobile")
+    private String mobile;
+
+    @JsonProperty("saaLoginFlag")
+    private String saaLoginFlag;
+
+    @JsonProperty("verificationNo")
+    private String verificationNo;
+
+    @JsonProperty("pwd")
+    private String pwd;
+
+    public HuaNongCrawlerLoginRequest(String username, String password, String captchaKey, String captcha) {
+        this.head = new HuaNongCrawlerRequestBaseHead("");
+        this.userCode = username;
+        this.type = type;
+        this.captchaKey = captchaKey;
+        this.verificationCode = captcha;
+        this.deviceId = deviceId;
+        this.mobile = "";
+        this.saaLoginFlag = "1";
+        this.verificationNo = "";
+        this.pwd = Base64.encodeToString(password) ;
+    }
+}

+ 74 - 0
tenant/insurance/quotation-huanong/src/main/java/com/jzg/quote/huanong/crawler/entity/request/HuaNongCrawlerModelsQueryRequest.java

@@ -0,0 +1,74 @@
+package com.jzg.quote.huanong.crawler.entity.request;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.jzg.quotation.commons.entity.vo.quote.CarInfoVo;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serial;
+import java.io.Serializable;
+
+/**
+ * @description: 华农财险 车型查询 请求
+ * @author: wenks
+ * @date: 2025/3/20 15:02
+ **/
+@NoArgsConstructor
+@Data
+public class HuaNongCrawlerModelsQueryRequest  implements Serializable, HuaNongHead {
+
+    @Serial
+    private static final long serialVersionUID = 6713193234259181775L;
+
+    @JsonProperty("head")
+    private HuaNongCrawlerRequestBaseHead head;
+    @JsonProperty("loginCom")
+    private String loginCom;
+    @JsonProperty("pageNo")
+    private String pageNo;
+    @JsonProperty("rows")
+    private Integer rows;
+    @JsonProperty("modelName")
+    private String modelName;
+    @JsonProperty("modelCode")
+    private String modelCode;
+    @JsonProperty("brand")
+    private String brand;
+    @JsonProperty("carYear")
+    private String carYear;
+    @JsonProperty("carKind")
+    private String carKind;
+    @JsonProperty("deptCode")
+    private String deptCode;
+    @JsonProperty("purchasepricenottaxMin")
+    private String purchasepricenottaxMin;
+    @JsonProperty("purchasepricenottaxMax")
+    private String purchasepricenottaxMax;
+    @JsonProperty("factory")
+    private String factory;
+    @JsonProperty("series")
+    private String series;
+    @JsonProperty("localModelCode")
+    private String localModelCode;
+    @JsonProperty("plateNo")
+    private String plateNo;
+    @JsonProperty("plateType")
+    private String plateType;
+    @JsonProperty("noLicenseFlag")
+    private Boolean noLicenseFlag;
+    @JsonProperty("frameNo")
+    private String frameNo;
+    @JsonProperty("engineNo")
+    private String engineNo;
+    @JsonProperty("motorUsageTypeCode")
+    private String motorUsageTypeCode;
+    @JsonProperty("motorTypeCode")
+    private String motorTypeCode;
+    @JsonProperty("newCarFlag")
+    private String newCarFlag;
+    @JsonProperty("ecdemicVehicleFlag")
+    private String ecdemicVehicleFlag;
+    @JsonProperty("windowsFlag")
+    private String windowsFlag;
+
+}

+ 87 - 20
tenant/insurance/quotation-huanong/src/main/java/com/jzg/quote/huanong/crawler/entity/request/HuaNongCrawlerQuotedPriceRequest.java

@@ -1,14 +1,27 @@
 package com.jzg.quote.huanong.crawler.entity.request;
 package com.jzg.quote.huanong.crawler.entity.request;
 
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import com.fasterxml.jackson.annotation.JsonProperty;
+import com.jzg.quotation.commons.entity.vo.aggregated.QuoteVo;
 import lombok.Data;
 import lombok.Data;
 import lombok.NoArgsConstructor;
 import lombok.NoArgsConstructor;
 
 
+import java.io.Serial;
+import java.io.Serializable;
 import java.util.List;
 import java.util.List;
 
 
+
+/**
+ * @version
+ * @description: 华农财险 计算保费 请求
+ * @author: wenks
+ * @date: 2025/3/20 11:20
+ **/
 @NoArgsConstructor
 @NoArgsConstructor
 @Data
 @Data
-public class HuaNongCrawlerQuotedPriceRequest {
+public class HuaNongCrawlerQuotedPriceRequest implements Serializable, HuaNongHead  {
+
+    @Serial
+    private static final long serialVersionUID = -5873004327248461555L;
 
 
     @JsonProperty("head")
     @JsonProperty("head")
     private HuaNongCrawlerRequestBaseHead head;
     private HuaNongCrawlerRequestBaseHead head;
@@ -28,6 +41,15 @@ public class HuaNongCrawlerQuotedPriceRequest {
     @JsonProperty("businessData")
     @JsonProperty("businessData")
     private BusinessDataDTO businessData;
     private BusinessDataDTO businessData;
 
 
+    public HuaNongCrawlerQuotedPriceRequest(String loginCom, String userCode, String comeCode, String agentCode, QuoteVo quoteVo) {
+        this.head = new HuaNongCrawlerRequestBaseHead();
+        this.loginCom = loginCom;
+        this.userCode = userCode;
+        this.comeCode = comeCode;
+        this.agentCode = agentCode;
+        this.businessData = new BusinessDataDTO(quoteVo, "", "");
+    }
+
     @NoArgsConstructor
     @NoArgsConstructor
     @Data
     @Data
     public static class BusinessDataDTO {
     public static class BusinessDataDTO {
@@ -38,13 +60,13 @@ public class HuaNongCrawlerQuotedPriceRequest {
         @JsonProperty("insuredObject")
         @JsonProperty("insuredObject")
         private InsuredObjectDTO insuredObject;
         private InsuredObjectDTO insuredObject;
         @JsonProperty("nvehInfo")
         @JsonProperty("nvehInfo")
-        private List<?> nvehInfo;
+        private List<Object> nvehInfo;
         @JsonProperty("policyInfo")
         @JsonProperty("policyInfo")
         private PolicyInfoDTO policyInfo;
         private PolicyInfoDTO policyInfo;
         @JsonProperty("saleInfo")
         @JsonProperty("saleInfo")
         private SaleInfoDTO saleInfo;
         private SaleInfoDTO saleInfo;
         @JsonProperty("benefityLists")
         @JsonProperty("benefityLists")
-        private List<?> benefityLists;
+        private List<Object> benefityLists;
         @JsonProperty("sum")
         @JsonProperty("sum")
         private Integer sum;
         private Integer sum;
         @JsonProperty("threeMountFlag")
         @JsonProperty("threeMountFlag")
@@ -76,9 +98,9 @@ public class HuaNongCrawlerQuotedPriceRequest {
         @JsonProperty("vehicleRiskFactor")
         @JsonProperty("vehicleRiskFactor")
         private VehicleRiskFactorDTO vehicleRiskFactor;
         private VehicleRiskFactorDTO vehicleRiskFactor;
         @JsonProperty("contractHome")
         @JsonProperty("contractHome")
-        private List<?> contractHome;
+        private List<Object> contractHome;
         @JsonProperty("contractGlass")
         @JsonProperty("contractGlass")
-        private List<?> contractGlass;
+        private List<Object> contractGlass;
         @JsonProperty("centerFlag")
         @JsonProperty("centerFlag")
         private String centerFlag;
         private String centerFlag;
         @JsonProperty("centerText")
         @JsonProperty("centerText")
@@ -88,9 +110,15 @@ public class HuaNongCrawlerQuotedPriceRequest {
         @JsonProperty("customer")
         @JsonProperty("customer")
         private List<CustomerDTO> customer;
         private List<CustomerDTO> customer;
         @JsonProperty("homeInfo")
         @JsonProperty("homeInfo")
-        private List<?> homeInfo;
+        private List<Object> homeInfo;
         @JsonProperty("glassInfo")
         @JsonProperty("glassInfo")
-        private List<?> glassInfo;
+        private List<Object> glassInfo;
+
+
+        public BusinessDataDTO(QuoteVo quoteVo, String loginCom, String comeCode) {
+            this.businessMain = new BusinessMainDTO(loginCom, comeCode);
+
+        }
 
 
         @NoArgsConstructor
         @NoArgsConstructor
         @Data
         @Data
@@ -164,16 +192,55 @@ public class HuaNongCrawlerQuotedPriceRequest {
             @JsonProperty("bjLogId")
             @JsonProperty("bjLogId")
             private String bjLogId;
             private String bjLogId;
             @JsonProperty("lastPolicyNos")
             @JsonProperty("lastPolicyNos")
-            private List<?> lastPolicyNos;
+            private List<Object> lastPolicyNos;
             @JsonProperty("isAloneInsureNveh")
             @JsonProperty("isAloneInsureNveh")
             private Integer isAloneInsureNveh;
             private Integer isAloneInsureNveh;
+
+            public BusinessMainDTO(String loginCom, String comeCode) {
+                this.accessSource = accessSource;
+                this.agreementNo = agreementNo;
+                this.appointAreaCode = appointAreaCode;
+                this.argueSolution = argueSolution;
+                this.argueSolutionCom = argueSolutionCom;
+                this.beforeFXQStockOnline = beforeFXQStockOnline;
+                this.billAcceptDate = billAcceptDate;
+                this.businessType = businessType;
+                this.constract5 = constract5;
+                this.hnscoreGroup = hnscoreGroup;
+                this.inputDateTime = inputDateTime;
+                this.isAloneCorrectingNveh = isAloneCorrectingNveh;
+                this.isAsync = isAsync;
+                this.isCorrectGLASS = isCorrectGLASS;
+                this.isCorrectHOME = isCorrectHOME;
+                this.isCorrectNVEH = isCorrectNVEH;
+                this.isElectronicInsuredFlag = isElectronicInsuredFlag;
+                this.isFace = isFace;
+                this.makeCom = makeCom;
+                this.makeComName = makeComName;
+                this.operateDateTime = operateDateTime;
+                this.operatorName = operatorName;
+                this.relateType = relateType;
+                this.underWriteEndDate = underWriteEndDate;
+                this.underwritingReminderFlag = underwritingReminderFlag;
+                this.verificationCode = verificationCode;
+                this.reCalculateFlag = reCalculateFlag;
+                this.suggestedDiscountQuoted = suggestedDiscountQuoted;
+                this.priceAdjustType = priceAdjustType;
+                this.quoteFlag = quoteFlag;
+                this.quoteMd5 = quoteMd5;
+                this.isPeerComparison = isPeerComparison;
+                this.isRunFlag = isRunFlag;
+                this.bjLogId = bjLogId;
+                this.lastPolicyNos = lastPolicyNos;
+                this.isAloneInsureNveh = isAloneInsureNveh;
+            }
         }
         }
 
 
         @NoArgsConstructor
         @NoArgsConstructor
         @Data
         @Data
         public static class InsuredObjectDTO {
         public static class InsuredObjectDTO {
             @JsonProperty("chargingPostInfos")
             @JsonProperty("chargingPostInfos")
-            private List<?> chargingPostInfos;
+            private List<Object> chargingPostInfos;
             @JsonProperty("platformCar")
             @JsonProperty("platformCar")
             private PlatformCarDTO platformCar;
             private PlatformCarDTO platformCar;
             @JsonProperty("policyCar")
             @JsonProperty("policyCar")
@@ -181,9 +248,9 @@ public class HuaNongCrawlerQuotedPriceRequest {
             @JsonProperty("simpleStadarCar")
             @JsonProperty("simpleStadarCar")
             private SimpleStadarCarDTO simpleStadarCar;
             private SimpleStadarCarDTO simpleStadarCar;
             @JsonProperty("specializedDevice")
             @JsonProperty("specializedDevice")
-            private List<?> specializedDevice;
+            private List<Object> specializedDevice;
             @JsonProperty("violation")
             @JsonProperty("violation")
-            private List<?> violation;
+            private List<Object> violation;
 
 
             @NoArgsConstructor
             @NoArgsConstructor
             @Data
             @Data
@@ -654,7 +721,7 @@ public class HuaNongCrawlerQuotedPriceRequest {
         @Data
         @Data
         public static class ContractAccidentDTO {
         public static class ContractAccidentDTO {
             @JsonProperty("accident")
             @JsonProperty("accident")
-            private List<?> accident;
+            private List<Object> accident;
             @JsonProperty("contractMain")
             @JsonProperty("contractMain")
             private ContractMainDTO contractMain;
             private ContractMainDTO contractMain;
             @JsonProperty("coverage")
             @JsonProperty("coverage")
@@ -936,23 +1003,23 @@ public class HuaNongCrawlerQuotedPriceRequest {
         @Data
         @Data
         public static class ContractDTO {
         public static class ContractDTO {
             @JsonProperty("accident")
             @JsonProperty("accident")
-            private List<?> accident;
+            private List<Object> accident;
             @JsonProperty("adjust")
             @JsonProperty("adjust")
-            private List<?> adjust;
+            private List<Object> adjust;
             @JsonProperty("contractMain")
             @JsonProperty("contractMain")
             private ContractMainDTO contractMain;
             private ContractMainDTO contractMain;
             @JsonProperty("dummyCoverage")
             @JsonProperty("dummyCoverage")
-            private List<?> dummyCoverage;
+            private List<Object> dummyCoverage;
             @JsonProperty("engage")
             @JsonProperty("engage")
-            private List<?> engage;
+            private List<Object> engage;
             @JsonProperty("platFormMessage")
             @JsonProperty("platFormMessage")
             private PlatFormMessageDTO platFormMessage;
             private PlatFormMessageDTO platFormMessage;
             @JsonProperty("rescueInfo")
             @JsonProperty("rescueInfo")
-            private List<?> rescueInfo;
+            private List<Object> rescueInfo;
             @JsonProperty("tax")
             @JsonProperty("tax")
             private TaxDTO tax;
             private TaxDTO tax;
             @JsonProperty("violation")
             @JsonProperty("violation")
-            private List<?> violation;
+            private List<Object> violation;
             @JsonProperty("loocked")
             @JsonProperty("loocked")
             private Boolean loocked;
             private Boolean loocked;
             @JsonProperty("coverage")
             @JsonProperty("coverage")
@@ -1287,7 +1354,7 @@ public class HuaNongCrawlerQuotedPriceRequest {
                 @JsonProperty("commissionRate")
                 @JsonProperty("commissionRate")
                 private String commissionRate;
                 private String commissionRate;
                 @JsonProperty("coveragePremium")
                 @JsonProperty("coveragePremium")
-                private List<?> coveragePremium;
+                private List<Object> coveragePremium;
                 @JsonProperty("districtCoeff")
                 @JsonProperty("districtCoeff")
                 private String districtCoeff;
                 private String districtCoeff;
                 @JsonProperty("districtRateReason")
                 @JsonProperty("districtRateReason")
@@ -1361,7 +1428,7 @@ public class HuaNongCrawlerQuotedPriceRequest {
                 @JsonProperty("reInsure")
                 @JsonProperty("reInsure")
                 private List<ReInsureDTO> reInsure;
                 private List<ReInsureDTO> reInsure;
                 @JsonProperty("riskWarn")
                 @JsonProperty("riskWarn")
-                private List<?> riskWarn;
+                private List<Object> riskWarn;
                 @JsonProperty("useTypeMessage")
                 @JsonProperty("useTypeMessage")
                 private String useTypeMessage;
                 private String useTypeMessage;
                 @JsonProperty("vehicleOwnerMessage")
                 @JsonProperty("vehicleOwnerMessage")

+ 11 - 2
tenant/insurance/quotation-huanong/src/main/java/com/jzg/quote/huanong/crawler/entity/request/HuaNongCrawlerRequestBaseHead.java

@@ -5,6 +5,12 @@ import com.fasterxml.jackson.annotation.JsonProperty;
 import lombok.Data;
 import lombok.Data;
 import lombok.NoArgsConstructor;
 import lombok.NoArgsConstructor;
 
 
+/**
+ * @version
+ * @description: 华农财险 请求 head
+ * @author: wenks
+ * @date: 2025/3/20 11:21
+ **/
 @NoArgsConstructor
 @NoArgsConstructor
 @Data
 @Data
 public class HuaNongCrawlerRequestBaseHead {
 public class HuaNongCrawlerRequestBaseHead {
@@ -21,7 +27,10 @@ public class HuaNongCrawlerRequestBaseHead {
     @JsonProperty("source")
     @JsonProperty("source")
     private String source;
     private String source;
 
 
-    @JsonProperty("sign")
-    private String sign;
+    public HuaNongCrawlerRequestBaseHead(String token) {
+        this.transType = "Req";
+        this.token = token;
+        this.source = "2";
+    }
 
 
 }
 }

+ 13 - 1
tenant/insurance/quotation-huanong/src/main/java/com/jzg/quote/huanong/crawler/entity/request/HuaNongCrawlerSaveRequest.java

@@ -4,11 +4,23 @@ import com.fasterxml.jackson.annotation.JsonProperty;
 import lombok.Data;
 import lombok.Data;
 import lombok.NoArgsConstructor;
 import lombok.NoArgsConstructor;
 
 
+import java.io.Serial;
+import java.io.Serializable;
 import java.util.List;
 import java.util.List;
 
 
+/**
+ * @version
+ * @description: 华农财险 保存订单 请求
+ * @author: wenks
+ * @date: 2025/3/20 11:21
+ **/
 @NoArgsConstructor
 @NoArgsConstructor
 @Data
 @Data
-public class HuaNongCrawlerSaveRequest {
+public class HuaNongCrawlerSaveRequest  implements Serializable, HuaNongHead  {
+
+    @Serial
+    private static final long serialVersionUID = 5383273187105919255L;
+
     @JsonProperty("head")
     @JsonProperty("head")
     private HuaNongCrawlerRequestBaseHead head;
     private HuaNongCrawlerRequestBaseHead head;
     @JsonProperty("businessData")
     @JsonProperty("businessData")

+ 20 - 1
tenant/insurance/quotation-huanong/src/main/java/com/jzg/quote/huanong/crawler/entity/request/HuaNongCrawlerSubmitRequest.java

@@ -4,26 +4,45 @@ import com.fasterxml.jackson.annotation.JsonProperty;
 import lombok.Data;
 import lombok.Data;
 import lombok.NoArgsConstructor;
 import lombok.NoArgsConstructor;
 
 
+import java.io.Serial;
+import java.io.Serializable;
 import java.util.List;
 import java.util.List;
 
 
+
+/**
+ * @version
+ * @description: 华农财险 提交核保 请求
+ * @author: wenks
+ * @date: 2025/3/20 11:22
+ **/
 @NoArgsConstructor
 @NoArgsConstructor
 @Data
 @Data
-public class HuaNongCrawlerSubmitRequest {
+public class HuaNongCrawlerSubmitRequest  implements Serializable, HuaNongHead {
+
+    @Serial
+    private static final long serialVersionUID = -5508418245097370566L;
 
 
     @JsonProperty("head")
     @JsonProperty("head")
     private HuaNongCrawlerRequestBaseHead head;
     private HuaNongCrawlerRequestBaseHead head;
+
     @JsonProperty("operateType")
     @JsonProperty("operateType")
     private String operateType;
     private String operateType;
+
     @JsonProperty("contractMain")
     @JsonProperty("contractMain")
     private List<ContractMainDTO> contractMain;
     private List<ContractMainDTO> contractMain;
+
     @JsonProperty("appliType")
     @JsonProperty("appliType")
     private String appliType;
     private String appliType;
+
     @JsonProperty("underwritingMark")
     @JsonProperty("underwritingMark")
     private String underwritingMark;
     private String underwritingMark;
+
     @JsonProperty("loginCom")
     @JsonProperty("loginCom")
     private String loginCom;
     private String loginCom;
+
     @JsonProperty("submitQuoteFlag")
     @JsonProperty("submitQuoteFlag")
     private String submitQuoteFlag;
     private String submitQuoteFlag;
+
     @JsonProperty("htmlSource")
     @JsonProperty("htmlSource")
     private String htmlSource;
     private String htmlSource;
 
 

+ 13 - 1
tenant/insurance/quotation-huanong/src/main/java/com/jzg/quote/huanong/crawler/entity/request/HuaNongCrawlerUserTypeAndProxyInfoQueryRequest.java

@@ -4,10 +4,22 @@ import com.fasterxml.jackson.annotation.JsonProperty;
 import lombok.Data;
 import lombok.Data;
 import lombok.NoArgsConstructor;
 import lombok.NoArgsConstructor;
 
 
+import java.io.Serial;
+import java.io.Serializable;
+
+
+/**
+ * @version
+ * @description: 华农财险 渠道类型和代理信息 请求
+ * @author: wenks
+ * @date: 2025/3/20 11:22
+ **/
 @NoArgsConstructor
 @NoArgsConstructor
 @Data
 @Data
-public class HuaNongCrawlerUserTypeAndProxyInfoQueryRequest {
+public class HuaNongCrawlerUserTypeAndProxyInfoQueryRequest implements Serializable, HuaNongHead {
 
 
+    @Serial
+    private static final long serialVersionUID = 6595377147028787981L;
 
 
     @JsonProperty("head")
     @JsonProperty("head")
     private HuaNongCrawlerRequestBaseHead head;
     private HuaNongCrawlerRequestBaseHead head;

+ 17 - 2
tenant/insurance/quotation-huanong/src/main/java/com/jzg/quote/huanong/crawler/entity/request/HuaNongCrawlerVerificationCodeRequest.java

@@ -4,11 +4,26 @@ import com.fasterxml.jackson.annotation.JsonProperty;
 import lombok.Data;
 import lombok.Data;
 import lombok.NoArgsConstructor;
 import lombok.NoArgsConstructor;
 
 
-@NoArgsConstructor
+import java.io.Serial;
+import java.io.Serializable;
+
+/**
+ * @version
+ * @description: 华农财险 验证码 请求
+ * @author: wenks
+ * @date: 2025/3/20 11:23
+ **/
 @Data
 @Data
-public class HuaNongCrawlerVerificationCodeRequest {
+public class HuaNongCrawlerVerificationCodeRequest implements Serializable, HuaNongHead  {
+
+    @Serial
+    private static final long serialVersionUID = 4115125832315355447L;
 
 
     @JsonProperty("head")
     @JsonProperty("head")
     private HuaNongCrawlerRequestBaseHead head;
     private HuaNongCrawlerRequestBaseHead head;
 
 
+    public HuaNongCrawlerVerificationCodeRequest() {
+        this.head = new HuaNongCrawlerRequestBaseHead("");
+    }
+
 }
 }

+ 12 - 0
tenant/insurance/quotation-huanong/src/main/java/com/jzg/quote/huanong/crawler/entity/request/HuaNongHead.java

@@ -0,0 +1,12 @@
+package com.jzg.quote.huanong.crawler.entity.request;
+
+/**
+ * @description: head 接口
+ * @author: wenks
+ * @date: 2025/3/20 14:13
+ **/
+public interface HuaNongHead {
+
+    HuaNongCrawlerRequestBaseHead getHead();
+
+}

+ 26 - 0
tenant/insurance/quotation-huanong/src/main/java/com/jzg/quote/huanong/crawler/entity/response/HuaNongCrawlerActualValueResponse.java

@@ -0,0 +1,26 @@
+package com.jzg.quote.huanong.crawler.entity.response;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@NoArgsConstructor
+@Data
+public class HuaNongCrawlerActualValueResponse {
+
+    @JsonProperty("actualValue")
+    private String actualValue;
+    @JsonProperty("head")
+    private HuaNongCrawlerBaseResponseHead head;
+    @JsonProperty("lowValue")
+    private Double lowValue;
+    @JsonProperty("permonthRate")
+    private Double permonthRate;
+    @JsonProperty("supValue")
+    private Double supValue;
+    @JsonProperty("useYears")
+    private Integer useYears;
+    @JsonProperty("useYearsDetail")
+    private Double useYearsDetail;
+
+}

+ 6 - 0
tenant/insurance/quotation-huanong/src/main/java/com/jzg/quote/huanong/crawler/entity/response/HuaNongCrawlerBaseResponseHead.java

@@ -4,6 +4,12 @@ import com.fasterxml.jackson.annotation.JsonProperty;
 import lombok.Data;
 import lombok.Data;
 import lombok.NoArgsConstructor;
 import lombok.NoArgsConstructor;
 
 
+/**
+ * @version
+ * @description: 华农财险 响应 head
+ * @author: wenks
+ * @date: 2025/3/20 11:23
+ **/
 @NoArgsConstructor
 @NoArgsConstructor
 @Data
 @Data
 public class HuaNongCrawlerBaseResponseHead {
 public class HuaNongCrawlerBaseResponseHead {

+ 6 - 0
tenant/insurance/quotation-huanong/src/main/java/com/jzg/quote/huanong/crawler/entity/response/HuaNongCrawlerComInfoQueryResponse.java

@@ -6,6 +6,12 @@ import lombok.NoArgsConstructor;
 
 
 import java.util.List;
 import java.util.List;
 
 
+
+/**
+ * @description: 华农财险  查询归属机构 响应
+ * @author: wenks
+ * @date: 2025/3/20 11:20
+ **/
 @NoArgsConstructor
 @NoArgsConstructor
 @Data
 @Data
 public class HuaNongCrawlerComInfoQueryResponse {
 public class HuaNongCrawlerComInfoQueryResponse {

+ 309 - 0
tenant/insurance/quotation-huanong/src/main/java/com/jzg/quote/huanong/crawler/entity/response/HuaNongCrawlerLoginResponse.java

@@ -0,0 +1,309 @@
+package com.jzg.quote.huanong.crawler.entity.response;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.List;
+
+/**
+ * @description: 华农财险 登录 响应
+ * @author: wenks
+ * @date: 2025/3/20 14:36
+ **/
+@NoArgsConstructor
+@Data
+public class HuaNongCrawlerLoginResponse {
+
+    @JsonProperty("carOwnerQiTaPower")
+    private String carOwnerQiTaPower;
+    @JsonProperty("carVerifyCode")
+    private String carVerifyCode;
+    @JsonProperty("configValue")
+    private String configValue;
+    @JsonProperty("hasMobile")
+    private String hasMobile;
+    @JsonProperty("head")
+    private HuaNongCrawlerBaseResponseHead head;
+    @JsonProperty("loginCom")
+    private List<LoginComDTO> loginCom;
+    @JsonProperty("login_mobile_switch")
+    private String loginMobileSwitch;
+    @JsonProperty("lowValue")
+    private Integer lowValue;
+    @JsonProperty("mobile")
+    private String mobile;
+    @JsonProperty("newQuotePriceswitch")
+    private String newQuotePriceswitch;
+    @JsonProperty("newUpdatePasswordFlag")
+    private String newUpdatePasswordFlag;
+    @JsonProperty("phoneCountCheckSwitch")
+    private String phoneCountCheckSwitch;
+    @JsonProperty("privateKey")
+    private String privateKey;
+    @JsonProperty("publicKey")
+    private String publicKey;
+    @JsonProperty("reInsurePower")
+    private String reInsurePower;
+    @JsonProperty("responseFlag")
+    private String responseFlag;
+    @JsonProperty("supValue")
+    private Integer supValue;
+    @JsonProperty("time")
+    private String time;
+    @JsonProperty("toolTips")
+    private String toolTips;
+    @JsonProperty("userCode")
+    private String userCode;
+    @JsonProperty("userName")
+    private String userName;
+
+    @NoArgsConstructor
+    @Data
+    public static class HeadDTO {
+        @JsonProperty("errorCode")
+        private String errorCode;
+        @JsonProperty("logId")
+        private String logId;
+        @JsonProperty("returnCode")
+        private String returnCode;
+        @JsonProperty("returnMessage")
+        private String returnMessage;
+        @JsonProperty("token")
+        private String token;
+        @JsonProperty("transCode")
+        private String transCode;
+        @JsonProperty("transType")
+        private String transType;
+        @JsonProperty("sign")
+        private String sign;
+    }
+
+    @NoArgsConstructor
+    @Data
+    public static class LoginComDTO {
+        @JsonProperty("allTaxPayedSwitch")
+        private String allTaxPayedSwitch;
+        @JsonProperty("asysnPolicySwitch")
+        private String asysnPolicySwitch;
+        @JsonProperty("authors")
+        private AuthorsDTO authors;
+        @JsonProperty("bDConfigSwith")
+        private String bDConfigSwith;
+        @JsonProperty("beneficiaryInfoSwitch")
+        private String beneficiaryInfoSwitch;
+        @JsonProperty("carDefaultPlanSwitch")
+        private String carDefaultPlanSwitch;
+        @JsonProperty("carModelPriceSwitch")
+        private String carModelPriceSwitch;
+        @JsonProperty("carShipTaxFlag")
+        private String carShipTaxFlag;
+        @JsonProperty("checkAgencyFlag")
+        private String checkAgencyFlag;
+        @JsonProperty("comCode")
+        private String comCode;
+        @JsonProperty("comCodeFlag")
+        private String comCodeFlag;
+        @JsonProperty("comName")
+        private String comName;
+        @JsonProperty("findRecognitionSwitch")
+        private String findRecognitionSwitch;
+        @JsonProperty("grades")
+        private GradesDTO grades;
+        @JsonProperty("indivduation")
+        private List<IndivduationDTO> indivduation;
+        @JsonProperty("isAloneInsureNveh")
+        private String isAloneInsureNveh;
+        @JsonProperty("isApplyNewRiskCode")
+        private String isApplyNewRiskCode;
+        @JsonProperty("isCFCAMotoEp")
+        private String isCFCAMotoEp;
+        @JsonProperty("isEnterPhone")
+        private String isEnterPhone;
+        @JsonProperty("isFTPdownload")
+        private String isFTPdownload;
+        @JsonProperty("isHandConfirmReplacePhone")
+        private String isHandConfirmReplacePhone;
+        @JsonProperty("isNewEnergyFlag")
+        private String isNewEnergyFlag;
+        @JsonProperty("isNewTBSwitch")
+        private String isNewTBSwitch;
+        @JsonProperty("isPCD")
+        private String isPCD;
+        @JsonProperty("isPrintAZFlag")
+        private String isPrintAZFlag;
+        @JsonProperty("isPrintDWFlag")
+        private String isPrintDWFlag;
+        @JsonProperty("isPrintJXSGFlag")
+        private String isPrintJXSGFlag;
+        @JsonProperty("isSendMessageSwitch")
+        private String isSendMessageSwitch;
+        @JsonProperty("isStarOnlineTime")
+        private String isStarOnlineTime;
+        @JsonProperty("isThirdQuarterSwitch")
+        private String isThirdQuarterSwitch;
+        @JsonProperty("isUseTypeAndSuspendTimeControl")
+        private String isUseTypeAndSuspendTimeControl;
+        @JsonProperty("issueDateFlag")
+        private String issueDateFlag;
+        @JsonProperty("issueFlag")
+        private String issueFlag;
+        @JsonProperty("kConfigSwith")
+        private String kConfigSwith;
+        @JsonProperty("legalPersonCardPayment")
+        private String legalPersonCardPayment;
+        @JsonProperty("loginSaaMenuSwitch")
+        private String loginSaaMenuSwitch;
+        @JsonProperty("lowValue")
+        private Double lowValue;
+        @JsonProperty("maximumDays")
+        private String maximumDays;
+        @JsonProperty("moToPlatformUpFlag")
+        private String moToPlatformUpFlag;
+        @JsonProperty("motoDutyFreeSwitch")
+        private String motoDutyFreeSwitch;
+        @JsonProperty("motorcycleSpeedAdjustSwitch")
+        private String motorcycleSpeedAdjustSwitch;
+        @JsonProperty("newCarDeclareSwitch")
+        private String newCarDeclareSwitch;
+        @JsonProperty("newCarSalesSwitch")
+        private String newCarSalesSwitch;
+        @JsonProperty("newImageSwitch")
+        private String newImageSwitch;
+        @JsonProperty("newSaaSwitch")
+        private String newSaaSwitch;
+        @JsonProperty("newShareFlag")
+        private String newShareFlag;
+        @JsonProperty("permitComCode")
+        private String permitComCode;
+        @JsonProperty("permitComName")
+        private String permitComName;
+        @JsonProperty("pi_individual")
+        private String piIndividual;
+        @JsonProperty("policyDownloadToEmailSwitch")
+        private String policyDownloadToEmailSwitch;
+        @JsonProperty("precisionService")
+        private String precisionService;
+        @JsonProperty("presupposeAmountTime")
+        private String presupposeAmountTime;
+        @JsonProperty("printMCarTypeGS")
+        private String printMCarTypeGS;
+        @JsonProperty("printSwith")
+        private String printSwith;
+        @JsonProperty("proposalPrint")
+        private String proposalPrint;
+        @JsonProperty("purchasePriceTime")
+        private String purchasePriceTime;
+        @JsonProperty("queryRenewModelScoreFlag")
+        private String queryRenewModelScoreFlag;
+        @JsonProperty("renewalNewSwitch")
+        private String renewalNewSwitch;
+        @JsonProperty("routerList")
+        private List<RouterListDTO> routerList;
+        @JsonProperty("secondPlatformVersionSwitch")
+        private String secondPlatformVersionSwitch;
+        @JsonProperty("showNvehFlag")
+        private String showNvehFlag;
+        @JsonProperty("sky2Flag")
+        private String sky2Flag;
+        @JsonProperty("supValue")
+        private Double supValue;
+        @JsonProperty("taxPaidControl")
+        private String taxPaidControl;
+        @JsonProperty("taxPayedSwitch")
+        private String taxPayedSwitch;
+        @JsonProperty("timeEffectSwitchBI")
+        private String timeEffectSwitchBI;
+        @JsonProperty("timeEffectSwitchCI")
+        private String timeEffectSwitchCI;
+        @JsonProperty("tractorPlatformUpFlag")
+        private String tractorPlatformUpFlag;
+        @JsonProperty("tranfficQueryCheckResultSwitch")
+        private String tranfficQueryCheckResultSwitch;
+        @JsonProperty("tranfficQuerySwitch")
+        private String tranfficQuerySwitch;
+        @JsonProperty("twoThreeThirdVersionSwitch")
+        private String twoThreeThirdVersionSwitch;
+        @JsonProperty("vehicleServiceFlag")
+        private String vehicleServiceFlag;
+
+        @NoArgsConstructor
+        @Data
+        public static class AuthorsDTO {
+            @JsonProperty("author")
+            private List<String> author;
+        }
+
+        @NoArgsConstructor
+        @Data
+        public static class GradesDTO {
+            @JsonProperty("grade")
+            private List<?> grade;
+        }
+
+        @NoArgsConstructor
+        @Data
+        public static class IndivduationDTO {
+            @JsonProperty("indivCode")
+            private String indivCode;
+            @JsonProperty("indivValue")
+            private String indivValue;
+        }
+
+        @NoArgsConstructor
+        @Data
+        public static class RouterListDTO {
+            @JsonProperty("component")
+            private String component;
+            @JsonProperty("hidden")
+            private Boolean hidden;
+            @JsonProperty("meta")
+            private MetaDTO meta;
+            @JsonProperty("name")
+            private String name;
+            @JsonProperty("path")
+            private String path;
+            @JsonProperty("children")
+            private List<ChildrenDTO> children;
+            @JsonProperty("redirect")
+            private String redirect;
+
+            @NoArgsConstructor
+            @Data
+            public static class MetaDTO {
+                @JsonProperty("icon")
+                private String icon;
+                @JsonProperty("noCache")
+                private Boolean noCache;
+                @JsonProperty("title")
+                private String title;
+            }
+
+            @NoArgsConstructor
+            @Data
+            public static class ChildrenDTO {
+                @JsonProperty("component")
+                private String component;
+                @JsonProperty("hidden")
+                private Boolean hidden;
+                @JsonProperty("meta")
+                private MetaDTO meta;
+                @JsonProperty("name")
+                private String name;
+                @JsonProperty("path")
+                private String path;
+
+                @NoArgsConstructor
+                @Data
+                public static class MetaDTO {
+                    @JsonProperty("icon")
+                    private String icon;
+                    @JsonProperty("noCache")
+                    private Boolean noCache;
+                    @JsonProperty("title")
+                    private String title;
+                }
+            }
+        }
+    }
+}

+ 161 - 0
tenant/insurance/quotation-huanong/src/main/java/com/jzg/quote/huanong/crawler/entity/response/HuaNongCrawlerModelsQueryResponse.java

@@ -0,0 +1,161 @@
+package com.jzg.quote.huanong.crawler.entity.response;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.List;
+
+/**
+ * @description: 华农财险 车型查询 响应
+ * @author: wenks
+ * @date: 2025/3/20 15:03
+ **/
+@NoArgsConstructor
+@Data
+public class HuaNongCrawlerModelsQueryResponse {
+
+    @JsonProperty("carModel")
+    private List<CarModelDTO> carModel;
+    @JsonProperty("head")
+    private HuaNongCrawlerBaseResponseHead head;
+    @JsonProperty("pageNo")
+    private Integer pageNo;
+    @JsonProperty("totalRow")
+    private Integer totalRow;
+
+    @NoArgsConstructor
+    @Data
+    public static class CarModelDTO {
+        @JsonProperty("fullCarData")
+        private FullCarDataDTO fullCarData;
+        @JsonProperty("licenseKindCode")
+        private String licenseKindCode;
+        @JsonProperty("platFormCar")
+        private PlatFormCarDTO platFormCar;
+        @JsonProperty("vehicleType")
+        private String vehicleType;
+
+        @NoArgsConstructor
+        @Data
+        public static class FullCarDataDTO {
+            @JsonProperty("absFlag")
+            private String absFlag;
+            @JsonProperty("airbagCount")
+            private String airbagCount;
+            @JsonProperty("analogyPrice")
+            private Integer analogyPrice;
+            @JsonProperty("analogyPriceTax")
+            private Integer analogyPriceTax;
+            @JsonProperty("approvedLoad")
+            private Integer approvedLoad;
+            @JsonProperty("approvedPassengersCapacity")
+            private Integer approvedPassengersCapacity;
+            @JsonProperty("brand")
+            private String brand;
+            @JsonProperty("brandCode")
+            private String brandCode;
+            @JsonProperty("carAlias")
+            private String carAlias;
+            @JsonProperty("carKind")
+            private String carKind;
+            @JsonProperty("carType")
+            private String carType;
+            @JsonProperty("carYear")
+            private String carYear;
+            @JsonProperty("disPlayFlag")
+            private Boolean disPlayFlag;
+            @JsonProperty("displacement")
+            private Double displacement;
+            @JsonProperty("energyTypes")
+            private String energyTypes;
+            @JsonProperty("factory")
+            private String factory;
+            @JsonProperty("grossMass")
+            private Integer grossMass;
+            @JsonProperty("hfEndTime")
+            private String hfEndTime;
+            @JsonProperty("hfStartTime")
+            private String hfStartTime;
+            @JsonProperty("hfcode")
+            private String hfcode;
+            @JsonProperty("hfname")
+            private String hfname;
+            @JsonProperty("hnCarNo")
+            private String hnCarNo;
+            @JsonProperty("insCarClass")
+            private String insCarClass;
+            @JsonProperty("insCarClassName")
+            private String insCarClassName;
+            @JsonProperty("localModelCode")
+            private String localModelCode;
+            @JsonProperty("modelCode")
+            private String modelCode;
+            @JsonProperty("modelFlag")
+            private String modelFlag;
+            @JsonProperty("modelName")
+            private String modelName;
+            @JsonProperty("newVehicleClass")
+            private String newVehicleClass;
+            @JsonProperty("oldMark")
+            private String oldMark;
+            @JsonProperty("power")
+            private Integer power;
+            @JsonProperty("productStatus")
+            private String productStatus;
+            @JsonProperty("purchasePrice")
+            private String purchasePrice;
+            @JsonProperty("purchasePriceTax")
+            private String purchasePriceTax;
+            @JsonProperty("qualityMax")
+            private Integer qualityMax;
+            @JsonProperty("qualityMin")
+            private Integer qualityMin;
+            @JsonProperty("remark")
+            private String remark;
+            @JsonProperty("riskType")
+            private String riskType;
+            @JsonProperty("seatMax")
+            private Integer seatMax;
+            @JsonProperty("seatMin")
+            private Integer seatMin;
+            @JsonProperty("series")
+            private String series;
+            @JsonProperty("seriesCode")
+            private String seriesCode;
+            @JsonProperty("seriesType")
+            private String seriesType;
+            @JsonProperty("shortHandCode")
+            private String shortHandCode;
+            @JsonProperty("theftProof")
+            private String theftProof;
+            @JsonProperty("topSpeed")
+            private String topSpeed;
+            @JsonProperty("tractionMass")
+            private Integer tractionMass;
+            @JsonProperty("transmissionType")
+            private String transmissionType;
+            @JsonProperty("unladenMass")
+            private Integer unladenMass;
+        }
+
+        @NoArgsConstructor
+        @Data
+        public static class PlatFormCarDTO {
+            @JsonProperty("carName")
+            private String carName;
+            @JsonProperty("categoryCode")
+            private String categoryCode;
+            @JsonProperty("categoryName")
+            private String categoryName;
+            @JsonProperty("configType")
+            private String configType;
+            @JsonProperty("deptCode")
+            private String deptCode;
+            @JsonProperty("deptName")
+            private String deptName;
+            @JsonProperty("noticeType")
+            private String noticeType;
+        }
+    }
+}

+ 6 - 0
tenant/insurance/quotation-huanong/src/main/java/com/jzg/quote/huanong/crawler/entity/response/HuaNongCrawlerQuotedPriceResponse.java

@@ -6,6 +6,12 @@ import lombok.NoArgsConstructor;
 
 
 import java.util.List;
 import java.util.List;
 
 
+/**
+ * @version
+ * @description: 华农财险 保费计算 响应
+ * @author: wenks
+ * @date: 2025/3/20 11:24
+ **/
 @NoArgsConstructor
 @NoArgsConstructor
 @Data
 @Data
 public class HuaNongCrawlerQuotedPriceResponse {
 public class HuaNongCrawlerQuotedPriceResponse {

+ 7 - 0
tenant/insurance/quotation-huanong/src/main/java/com/jzg/quote/huanong/crawler/entity/response/HuaNongCrawlerSaveResponse.java

@@ -6,6 +6,13 @@ import lombok.NoArgsConstructor;
 
 
 import java.util.List;
 import java.util.List;
 
 
+
+/**
+ * @version
+ * @description: 华农财险 保存订单 响应
+ * @author: wenks
+ * @date: 2025/3/20 11:24
+ **/
 @NoArgsConstructor
 @NoArgsConstructor
 @Data
 @Data
 public class HuaNongCrawlerSaveResponse {
 public class HuaNongCrawlerSaveResponse {

+ 6 - 0
tenant/insurance/quotation-huanong/src/main/java/com/jzg/quote/huanong/crawler/entity/response/HuaNongCrawlerSubmitResponse.java

@@ -6,6 +6,12 @@ import lombok.NoArgsConstructor;
 
 
 import java.util.List;
 import java.util.List;
 
 
+/**
+ * @version
+ * @description: 华农财险 提交核保 响应
+ * @author: wenks
+ * @date: 2025/3/20 11:24
+ **/
 @NoArgsConstructor
 @NoArgsConstructor
 @Data
 @Data
 public class HuaNongCrawlerSubmitResponse {
 public class HuaNongCrawlerSubmitResponse {

+ 6 - 0
tenant/insurance/quotation-huanong/src/main/java/com/jzg/quote/huanong/crawler/entity/response/HuaNongCrawlerUserTypeAndProxyInfoQueryResponse.java

@@ -6,6 +6,12 @@ import lombok.NoArgsConstructor;
 
 
 import java.util.List;
 import java.util.List;
 
 
+/**
+ * @version
+ * @description: 华农财险 渠道类型和代理信息 响应
+ * @author: wenks
+ * @date: 2025/3/20 11:25
+ **/
 @NoArgsConstructor
 @NoArgsConstructor
 @Data
 @Data
 public class HuaNongCrawlerUserTypeAndProxyInfoQueryResponse {
 public class HuaNongCrawlerUserTypeAndProxyInfoQueryResponse {

+ 6 - 0
tenant/insurance/quotation-huanong/src/main/java/com/jzg/quote/huanong/crawler/entity/response/HuaNongCrawlerVerificationCodeResponse.java

@@ -4,6 +4,12 @@ import com.fasterxml.jackson.annotation.JsonProperty;
 import lombok.Data;
 import lombok.Data;
 import lombok.NoArgsConstructor;
 import lombok.NoArgsConstructor;
 
 
+
+/**
+ * @description: 华农财险 验证码 响应
+ * @author: wenks
+ * @date: 2025/3/20 11:25
+ **/
 @NoArgsConstructor
 @NoArgsConstructor
 @Data
 @Data
 public class HuaNongCrawlerVerificationCodeResponse {
 public class HuaNongCrawlerVerificationCodeResponse {

+ 6 - 0
tenant/insurance/quotation-huanong/src/main/java/com/jzg/quote/huanong/crawler/properties/HuaNongCrawlerProperties.java

@@ -4,6 +4,12 @@ import lombok.Data;
 import org.springframework.boot.context.properties.ConfigurationProperties;
 import org.springframework.boot.context.properties.ConfigurationProperties;
 import org.springframework.stereotype.Component;
 import org.springframework.stereotype.Component;
 
 
+/**
+ * @version
+ * @description: 华农财险 配置信息
+ * @author: wenks
+ * @date: 2025/3/20 11:26
+ **/
 @Data
 @Data
 @Component
 @Component
 @ConfigurationProperties(prefix = "huanong.crawler")
 @ConfigurationProperties(prefix = "huanong.crawler")

+ 7 - 0
tenant/insurance/quotation-huanong/src/main/java/com/jzg/quote/huanong/crawler/service/HuaNongCrawlerQuoteProcessService.java

@@ -0,0 +1,7 @@
+package com.jzg.quote.huanong.crawler.service;
+
+public interface HuaNongCrawlerQuoteProcessService {
+
+    void login(String username, String password);
+
+}

+ 37 - 6
tenant/insurance/quotation-huanong/src/main/java/com/jzg/quote/huanong/crawler/service/impl/HuaNongCrawlerOrderServiceImpl.java

@@ -7,12 +7,46 @@ import com.jzg.quotation.commons.entity.vo.aggregated.QuoteVo;
 import com.jzg.quotation.commons.entity.vo.aggregated.UnderwritingVo;
 import com.jzg.quotation.commons.entity.vo.aggregated.UnderwritingVo;
 import com.jzg.quotation.commons.entity.vo.base.LoginBase;
 import com.jzg.quotation.commons.entity.vo.base.LoginBase;
 import com.jzg.quotation.commons.entity.vo.base.OrderBase;
 import com.jzg.quotation.commons.entity.vo.base.OrderBase;
+import com.jzg.quote.huanong.crawler.component.HuaNongCrawlerRequestComponent;
+import com.jzg.quote.huanong.crawler.entity.request.HuaNongCrawlerActualValueRequest;
+import com.jzg.quote.huanong.crawler.entity.request.HuaNongCrawlerModelsQueryRequest;
+import com.jzg.quote.huanong.crawler.entity.request.HuaNongCrawlerQuotedPriceRequest;
 import com.jzg.quote.huanong.crawler.service.HuaNongCrawlerOrderService;
 import com.jzg.quote.huanong.crawler.service.HuaNongCrawlerOrderService;
+import lombok.RequiredArgsConstructor;
+import org.springframework.http.HttpHeaders;
+import org.springframework.stereotype.Service;
 
 
+@Service
+@RequiredArgsConstructor
 public class HuaNongCrawlerOrderServiceImpl implements HuaNongCrawlerOrderService {
 public class HuaNongCrawlerOrderServiceImpl implements HuaNongCrawlerOrderService {
 
 
+    private final HuaNongCrawlerRequestComponent huaNongCrawlerRequestComponent;
+
     @Override
     @Override
-    public QuoteResultsVo quote(QuoteVo quoteVo) throws JsonProcessingException {
+    public void login(LoginBase loginBase) {
+
+    }
+
+    @Override
+    public QuoteResultsVo quote(QuoteVo quoteVo)  {
+        HttpHeaders httpHeaders = new HttpHeaders();
+        // 归属信息
+
+
+
+        // 车型查询
+        HuaNongCrawlerModelsQueryRequest huaNongCrawlerModelsQueryRequest = new HuaNongCrawlerModelsQueryRequest();
+        huaNongCrawlerRequestComponent.modelsQuery(huaNongCrawlerModelsQueryRequest, httpHeaders);
+
+        // 折旧价查询
+        HuaNongCrawlerActualValueRequest huaNongCrawlerActualValueRequest = new HuaNongCrawlerActualValueRequest();
+        huaNongCrawlerRequestComponent.actualValue(huaNongCrawlerActualValueRequest, httpHeaders);
+
+        // 保费计算
+        HuaNongCrawlerQuotedPriceRequest huaNongCrawlerQuotedPriceRequest = new HuaNongCrawlerQuotedPriceRequest();
+        huaNongCrawlerRequestComponent.quotedPrice(huaNongCrawlerQuotedPriceRequest, httpHeaders);
+
+
         return null;
         return null;
     }
     }
 
 
@@ -22,7 +56,8 @@ public class HuaNongCrawlerOrderServiceImpl implements HuaNongCrawlerOrderServic
     }
     }
 
 
     @Override
     @Override
-    public String getPaymentLink(OrderBase orderBase) throws JsonProcessingException {
+    public String getPaymentLink(OrderBase orderBase) {
+
         return "";
         return "";
     }
     }
 
 
@@ -41,8 +76,4 @@ public class HuaNongCrawlerOrderServiceImpl implements HuaNongCrawlerOrderServic
 
 
     }
     }
 
 
-    @Override
-    public void login(LoginBase loginBase) {
-
-    }
 }
 }

+ 38 - 0
tenant/insurance/quotation-huanong/src/main/java/com/jzg/quote/huanong/crawler/service/impl/HuaNongCrawlerQuoteProcessServiceImpl.java

@@ -0,0 +1,38 @@
+package com.jzg.quote.huanong.crawler.service.impl;
+
+import com.jzg.quotation.commons.service.ExteriorUtilsRequest;
+import com.jzg.quote.huanong.crawler.component.HuaNongCrawlerRequestComponent;
+import com.jzg.quote.huanong.crawler.entity.request.HuaNongCrawlerLoginRequest;
+import com.jzg.quote.huanong.crawler.entity.request.HuaNongCrawlerVerificationCodeRequest;
+import com.jzg.quote.huanong.crawler.entity.response.HuaNongCrawlerLoginResponse;
+import com.jzg.quote.huanong.crawler.entity.response.HuaNongCrawlerVerificationCodeResponse;
+import com.jzg.quote.huanong.crawler.service.HuaNongCrawlerQuoteProcessService;
+import lombok.RequiredArgsConstructor;
+import org.springframework.http.HttpHeaders;
+import org.springframework.stereotype.Service;
+
+@Service
+@RequiredArgsConstructor
+public class HuaNongCrawlerQuoteProcessServiceImpl implements HuaNongCrawlerQuoteProcessService {
+
+    private final HuaNongCrawlerRequestComponent huaNongCrawlerRequestComponent;
+
+    private final ExteriorUtilsRequest exteriorUtilsRequest;
+
+    @Override
+    public void login(String username, String password) {
+        HttpHeaders httpHeaders = new HttpHeaders();
+        // 验证码
+        HuaNongCrawlerVerificationCodeRequest huaNongCrawlerVerificationCodeRequest = new HuaNongCrawlerVerificationCodeRequest();
+        HuaNongCrawlerVerificationCodeResponse huaNongCrawlerVerificationCodeResponse = huaNongCrawlerRequestComponent.verificationCode(huaNongCrawlerVerificationCodeRequest, new HttpHeaders());
+        // 识别验证码
+        String captcha = exteriorUtilsRequest.captchaIdentify(huaNongCrawlerVerificationCodeResponse.getImageStream());
+
+        // 登录
+        HuaNongCrawlerLoginRequest huaNongCrawlerLoginRequest = new HuaNongCrawlerLoginRequest(username, password, huaNongCrawlerVerificationCodeResponse.getCaptchaKey(), captcha);
+        HuaNongCrawlerLoginResponse login = huaNongCrawlerRequestComponent.login(huaNongCrawlerLoginRequest, new HttpHeaders());
+
+    }
+
+
+}

+ 42 - 0
tenant/insurance/quotation-huanong/src/main/java/com/jzg/quote/huanong/crawler/utils/RequestEncryptor.java

@@ -0,0 +1,42 @@
+package com.jzg.quote.huanong.crawler.utils;
+
+import cn.hutool.core.codec.Base64;
+import cn.hutool.crypto.SecureUtil;
+import cn.hutool.crypto.asymmetric.KeyType;
+import cn.hutool.crypto.asymmetric.RSA;
+import com.alibaba.fastjson2.JSON;
+import com.alibaba.fastjson2.JSONObject;
+
+/**
+ * @description: 华农财险 加盐
+ * @author: wenks
+ * @date: 2025/3/20 16:50
+ **/
+public class RequestEncryptor {
+
+    private static final String PUBLIC_KEY = "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCcgQiJm3fWeCBAxTJTejYPAOqBGQxaOX21v/QDPmN9o/UyzC/ctLnsi2MCf4kmZnExOsE04sHZl/IMl8HrBrZnU7DnlnixtGGy8BR+MO/XbCuJtsYy5uu5S6fCBFHObyurOzt5gUyhB5/SawOHhbb3Eemy/tlPKBkBkJqOF0WhWQIDAQAB";
+
+    private static final RSA rsa = new RSA(null, PUBLIC_KEY);
+
+    public static String processRequest(JSONObject request) {
+        // 保存并清空请求头
+        Object o = request.get("head");
+        if (o instanceof JSONObject headers) {
+            request.put("head", "");
+            // 生成JSON并处理
+            String jsonStr = JSON.toJSONString(request).trim();
+            String base64Data = Base64.encode(jsonStr);
+            // 计算MD5(带Token盐值)
+            String token = (String) headers.get("token");
+            String md5Hash = SecureUtil.md5().digestHex(base64Data + token);
+            // RSA加密签名
+            String encryptedSign = rsa.encryptBase64(md5Hash, KeyType.PublicKey);
+            // 还原请求头并添加签名
+            headers.put("sign", encryptedSign);
+            request.put("head", headers);
+            return request.toString();
+        }
+        return request.toString();
+    }
+
+}

+ 6 - 0
tenant/insurance/quotation-taiping/src/main/java/com/jzg/quotation/taiping/crawler/properties/TaiPingCrawlerProperties.java

@@ -5,6 +5,12 @@ import lombok.Data;
 import org.springframework.boot.context.properties.ConfigurationProperties;
 import org.springframework.boot.context.properties.ConfigurationProperties;
 import org.springframework.stereotype.Component;
 import org.springframework.stereotype.Component;
 
 
+/**
+ * @version
+ * @description: 配置信息
+ * @author: wenks
+ * @date: 2025/3/20 11:33
+ **/
 @Data
 @Data
 @Component
 @Component
 @ConfigurationProperties(prefix = "taiping.crawler")
 @ConfigurationProperties(prefix = "taiping.crawler")

+ 5 - 0
tenant/insurance/quotation-taiping/src/main/java/com/jzg/quotation/taiping/crawler/utils/AESEncryption.java

@@ -6,6 +6,11 @@ import cn.hutool.crypto.symmetric.AES;
 import com.alibaba.fastjson2.JSON;
 import com.alibaba.fastjson2.JSON;
 import com.alibaba.fastjson2.TypeReference;
 import com.alibaba.fastjson2.TypeReference;
 
 
+/**
+ * @description: AES 加解密
+ * @author: wenks
+ * @date: 2025/3/20 11:31
+ **/
 public final class AESEncryption {
 public final class AESEncryption {
 
 
     private AESEncryption() {
     private AESEncryption() {

+ 5 - 0
tenant/insurance/quotation-taiping/src/main/java/com/jzg/quotation/taiping/crawler/utils/VerifyCodeCreate.java

@@ -2,6 +2,11 @@ package com.jzg.quotation.taiping.crawler.utils;
 
 
 import java.util.concurrent.ThreadLocalRandom;
 import java.util.concurrent.ThreadLocalRandom;
 
 
+/**
+ * @description: 太平财险 爬虫 信息
+ * @author: wenks
+ * @date: 2025/3/20 11:31
+ **/
 public final class VerifyCodeCreate {
 public final class VerifyCodeCreate {
 
 
     private VerifyCodeCreate() {
     private VerifyCodeCreate() {

+ 6 - 0
tenant/insurance/quotation-zijin/src/main/java/com/jzg/quotation/zijin/api/entity/request/QueryOrderDetailRequest.java

@@ -8,6 +8,12 @@ import lombok.NoArgsConstructor;
 import java.io.Serial;
 import java.io.Serial;
 import java.io.Serializable;
 import java.io.Serializable;
 
 
+/**
+ * @version
+ * @description: TODO
+ * @author: wenks
+ * @date: 2025/3/20 11:29
+ **/
 @NoArgsConstructor
 @NoArgsConstructor
 @AllArgsConstructor
 @AllArgsConstructor
 @Data
 @Data

+ 6 - 0
tenant/insurance/quotation-zijin/src/main/java/com/jzg/quotation/zijin/api/entity/request/UploadImageInfoListRequest.java

@@ -10,6 +10,12 @@ import java.io.Serial;
 import java.io.Serializable;
 import java.io.Serializable;
 import java.util.List;
 import java.util.List;
 
 
+/**
+ * @version
+ * @description: TODO
+ * @author: wenks
+ * @date: 2025/3/20 11:30
+ **/
 @AllArgsConstructor
 @AllArgsConstructor
 @NoArgsConstructor
 @NoArgsConstructor
 @Data
 @Data

+ 6 - 0
tenant/insurance/quotation-zijin/src/main/java/com/jzg/quotation/zijin/api/entity/request/ZbfAggregatePayRequest.java

@@ -7,6 +7,12 @@ import lombok.NoArgsConstructor;
 import java.io.Serial;
 import java.io.Serial;
 import java.io.Serializable;
 import java.io.Serializable;
 
 
+/**
+ * @version
+ * @description: TODO
+ * @author: wenks
+ * @date: 2025/3/20 11:30
+ **/
 @NoArgsConstructor
 @NoArgsConstructor
 @Data
 @Data
 public class ZbfAggregatePayRequest implements Serializable {
 public class ZbfAggregatePayRequest implements Serializable {

+ 6 - 2
tenant/insurance/quotation-zijin/src/main/java/com/jzg/quotation/zijin/api/entity/response/CalculatePremiumResponse.java

@@ -9,9 +9,13 @@ import java.io.Serial;
 import java.io.Serializable;
 import java.io.Serializable;
 import java.util.List;
 import java.util.List;
 
 
+
 /**
 /**
- * 紫金财险 保费计算 出参实体
- */
+ * @version
+ * @description: 紫金财险 保费计算 出参实体
+ * @author: wenks
+ * @date: 2025/3/20 11:30
+ **/
 @EqualsAndHashCode(callSuper = true)
 @EqualsAndHashCode(callSuper = true)
 @NoArgsConstructor
 @NoArgsConstructor
 @Data
 @Data