Просмотр исходного кода

Merge remote-tracking branch 'origin/master'

# Conflicts:
#	tenant/organization/src/main/resources/mapper/SysUserJzgInfoBankCardMapper.xml
Qchen 1 год назад
Родитель
Сommit
d3c3e7ef83
52 измененных файлов с 499 добавлено и 261 удалено
  1. 2 0
      commons/src/main/java/com/jzg/commons/aop/aspect/OperatorTrajectoryAspect.java
  2. 6 0
      commons/src/main/java/com/jzg/commons/entity/vo/CardUserInfo.java
  3. 2 0
      tenant/insurance/quotation-commons/src/main/java/com/jzg/quotation/commons/component/RequestComponent.java
  4. 11 12
      tenant/insurance/quotation-huanong/src/main/java/com/jzg/quotation/huanong/crawler/component/HuaNongCrawlerCacheComponent.java
  5. 46 18
      tenant/insurance/quotation-huanong/src/main/java/com/jzg/quotation/huanong/crawler/component/HuaNongCrawlerRequestComponent.java
  6. 3 1
      tenant/insurance/quotation-huanong/src/main/java/com/jzg/quotation/huanong/crawler/constant/enums/RequestUrl.java
  7. 2 2
      tenant/insurance/quotation-huanong/src/main/java/com/jzg/quotation/huanong/crawler/entity/HuaNongCrawlerConfigureParameters.java
  8. 4 8
      tenant/insurance/quotation-huanong/src/main/java/com/jzg/quotation/huanong/crawler/entity/request/HuaNongCrawlerActualValueRequestRequest.java
  9. 49 0
      tenant/insurance/quotation-huanong/src/main/java/com/jzg/quotation/huanong/crawler/entity/request/HuaNongCrawlerBaseCodeRequestRequest.java
  10. 2 3
      tenant/insurance/quotation-huanong/src/main/java/com/jzg/quotation/huanong/crawler/entity/request/HuaNongCrawlerComInfoQueryRequestRequest.java
  11. 1 3
      tenant/insurance/quotation-huanong/src/main/java/com/jzg/quotation/huanong/crawler/entity/request/HuaNongCrawlerDocumentsPrintRequestRequest.java
  12. 2 3
      tenant/insurance/quotation-huanong/src/main/java/com/jzg/quotation/huanong/crawler/entity/request/HuaNongCrawlerFindBusinessesRequestRequest.java
  13. 2 3
      tenant/insurance/quotation-huanong/src/main/java/com/jzg/quotation/huanong/crawler/entity/request/HuaNongCrawlerFtpDownloadRequestRequest.java
  14. 3 4
      tenant/insurance/quotation-huanong/src/main/java/com/jzg/quotation/huanong/crawler/entity/request/HuaNongCrawlerLoginRequestRequest.java
  15. 2 3
      tenant/insurance/quotation-huanong/src/main/java/com/jzg/quotation/huanong/crawler/entity/request/HuaNongCrawlerModelsQueryRequestRequest.java
  16. 1 2
      tenant/insurance/quotation-huanong/src/main/java/com/jzg/quotation/huanong/crawler/entity/request/HuaNongCrawlerNewImageQueryRequestRequest.java
  17. 57 54
      tenant/insurance/quotation-huanong/src/main/java/com/jzg/quotation/huanong/crawler/entity/request/HuaNongCrawlerQuotedPriceRequestRequest.java
  18. 3 1
      tenant/insurance/quotation-huanong/src/main/java/com/jzg/quotation/huanong/crawler/entity/request/HuaNongCrawlerRequestBaseHead.java
  19. 7 8
      tenant/insurance/quotation-huanong/src/main/java/com/jzg/quotation/huanong/crawler/entity/request/HuaNongCrawlerSaveRequestRequest.java
  20. 2 3
      tenant/insurance/quotation-huanong/src/main/java/com/jzg/quotation/huanong/crawler/entity/request/HuaNongCrawlerSubmitRequestRequest.java
  21. 5 7
      tenant/insurance/quotation-huanong/src/main/java/com/jzg/quotation/huanong/crawler/entity/request/HuaNongCrawlerUserTypeAndProxyInfoQueryRequestRequest.java
  22. 2 4
      tenant/insurance/quotation-huanong/src/main/java/com/jzg/quotation/huanong/crawler/entity/request/HuaNongCrawlerVerificationCodeRequestRequest.java
  23. 8 1
      tenant/insurance/quotation-huanong/src/main/java/com/jzg/quotation/huanong/crawler/entity/request/HuaNongHeadRequest.java
  24. 12 1
      tenant/insurance/quotation-huanong/src/main/java/com/jzg/quotation/huanong/crawler/entity/response/HuaNongCrawlerActualValueResponse.java
  25. 40 0
      tenant/insurance/quotation-huanong/src/main/java/com/jzg/quotation/huanong/crawler/entity/response/HuaNongCrawlerBaseCodeResponse.java
  26. 1 2
      tenant/insurance/quotation-huanong/src/main/java/com/jzg/quotation/huanong/crawler/entity/response/HuaNongCrawlerBaseResponseHead.java
  27. 5 1
      tenant/insurance/quotation-huanong/src/main/java/com/jzg/quotation/huanong/crawler/entity/response/HuaNongCrawlerComInfoQueryResponse.java
  28. 7 30
      tenant/insurance/quotation-huanong/src/main/java/com/jzg/quotation/huanong/crawler/entity/response/HuaNongCrawlerDocumentsPrintResponse.java
  29. 5 2
      tenant/insurance/quotation-huanong/src/main/java/com/jzg/quotation/huanong/crawler/entity/response/HuaNongCrawlerFindBusinessesResponse.java
  30. 5 2
      tenant/insurance/quotation-huanong/src/main/java/com/jzg/quotation/huanong/crawler/entity/response/HuaNongCrawlerFtpDownloadResponse.java
  31. 5 1
      tenant/insurance/quotation-huanong/src/main/java/com/jzg/quotation/huanong/crawler/entity/response/HuaNongCrawlerLoginResponse.java
  32. 6 2
      tenant/insurance/quotation-huanong/src/main/java/com/jzg/quotation/huanong/crawler/entity/response/HuaNongCrawlerModelsQueryResponse.java
  33. 6 1
      tenant/insurance/quotation-huanong/src/main/java/com/jzg/quotation/huanong/crawler/entity/response/HuaNongCrawlerNewImageQueryResponse.java
  34. 5 2
      tenant/insurance/quotation-huanong/src/main/java/com/jzg/quotation/huanong/crawler/entity/response/HuaNongCrawlerQuotedPriceResponse.java
  35. 5 2
      tenant/insurance/quotation-huanong/src/main/java/com/jzg/quotation/huanong/crawler/entity/response/HuaNongCrawlerSaveResponse.java
  36. 5 2
      tenant/insurance/quotation-huanong/src/main/java/com/jzg/quotation/huanong/crawler/entity/response/HuaNongCrawlerSubmitResponse.java
  37. 5 2
      tenant/insurance/quotation-huanong/src/main/java/com/jzg/quotation/huanong/crawler/entity/response/HuaNongCrawlerUserTypeAndProxyInfoQueryResponse.java
  38. 6 1
      tenant/insurance/quotation-huanong/src/main/java/com/jzg/quotation/huanong/crawler/entity/response/HuaNongCrawlerVerificationCodeResponse.java
  39. 19 0
      tenant/insurance/quotation-huanong/src/main/java/com/jzg/quotation/huanong/crawler/entity/response/HuaNongHeadResponse.java
  40. 1 1
      tenant/insurance/quotation-huanong/src/main/java/com/jzg/quotation/huanong/crawler/properties/HuaNongCrawlerProperties.java
  41. 8 0
      tenant/insurance/quotation-huanong/src/main/java/com/jzg/quotation/huanong/crawler/service/HuaNongCrawlerGetToken.java
  42. 5 3
      tenant/insurance/quotation-huanong/src/main/java/com/jzg/quotation/huanong/crawler/service/HuaNongCrawlerQuoteProcessService.java
  43. 35 6
      tenant/insurance/quotation-huanong/src/main/java/com/jzg/quotation/huanong/crawler/service/impl/HuaNongCrawlerGetTokenImpl.java
  44. 28 16
      tenant/insurance/quotation-huanong/src/main/java/com/jzg/quotation/huanong/crawler/service/impl/HuaNongCrawlerQuoteProcessServiceImpl.java
  45. 24 18
      tenant/insurance/quotation-huanong/src/main/java/com/jzg/quotation/huanong/crawler/service/impl/HuaNongCrawlerRequestImpl.java
  46. 15 18
      tenant/insurance/quotation-huanong/src/main/java/com/jzg/quotation/huanong/crawler/utils/RequestEncryptor.java
  47. 2 0
      tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/service/InsOrdersTaxService.java
  48. 6 2
      tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/service/impl/InsOrdersServiceImpl.java
  49. 4 1
      tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/service/impl/InsOrdersTaxServiceImpl.java
  50. 8 1
      tenant/organization/src/main/java/com/jzg/organization/service/impl/PtlSchemeServiceImpl.java
  51. 3 3
      tenant/organization/src/main/java/com/jzg/organization/service/impl/SysUserServiceImpl.java
  52. 1 1
      tenant/organization/src/main/resources/mapper/SysUserJzgInfoMapper.xml

+ 2 - 0
commons/src/main/java/com/jzg/commons/aop/aspect/OperatorTrajectoryAspect.java

@@ -141,6 +141,8 @@ public class OperatorTrajectoryAspect {
                 argStrBuilrder.append(s).append(",");
             }
             return argStrBuilrder.substring(0, argStrBuilrder.length() - 1);
+        } else if (arg instanceof Long){
+            return arg.toString();
         }else if (arg != null) {
             JSONObject jsonObject = (JSONObject) JSON.toJSON(arg);
             return jsonObject.getString(key);

+ 6 - 0
commons/src/main/java/com/jzg/commons/entity/vo/CardUserInfo.java

@@ -32,6 +32,12 @@ public class CardUserInfo {
     private String approvedPassengersCapacity;
     private String backOcrID;
     private String motorTypeCode;
+    private String address;
+    // 总质量
+    private String totalTonCount;
+
+    //外廓只存
+    private String overallDimensions;
 
     private String motorUsageTypeCode;
 

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

@@ -6,6 +6,7 @@ import com.jzg.commons.exception.SystemException;
 import com.jzg.quotation.commons.utils.RequestObjectConversion;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
+import org.slf4j.MDC;
 import org.springframework.core.ParameterizedTypeReference;
 import org.springframework.core.io.buffer.DataBuffer;
 import org.springframework.core.io.buffer.DataBufferUtils;
@@ -229,6 +230,7 @@ public class RequestComponent {
      */
     public <Response> ResponseEntity<Response> stringPost(String url, Object body, Class<Response> responseClass, HttpHeaders headers) {
         String requestBody = JSON.toJSONString(body);
+        log.info(requestBody);
         return post(url, requestBody, responseClass, headers);
     }
 

+ 11 - 12
tenant/insurance/quotation-huanong/src/main/java/com/jzg/quotation/huanong/crawler/component/HuaNongCrawlerCacheComponent.java

@@ -7,8 +7,10 @@ import lombok.RequiredArgsConstructor;
 import org.redisson.api.RMap;
 import org.redisson.api.RedissonClient;
 import org.springframework.stereotype.Component;
+import org.springframework.util.ObjectUtils;
 
 import java.time.Duration;
+import java.util.HashMap;
 import java.util.Map;
 import java.util.stream.Collectors;
 
@@ -43,11 +45,11 @@ public class HuaNongCrawlerCacheComponent {
         String token = login.getHead().getToken();
         Map<String, Object> collect = login.getLoginCom()
                 .stream()
-                .collect(Collectors.toMap(HuaNongCrawlerLoginResponse.LoginComDTO::getComCode, x -> x));
+                .collect(Collectors.toMap(HuaNongCrawlerLoginResponse.LoginComDTO::getComName, HuaNongCrawlerLoginResponse.LoginComDTO::getComCode));
         collect.put(TOKEN, token);
 
         // 3.1 存入redis中
-        RMap<Object, Object> rMap = redissonClient.getMap(AUTHORIZATION + username);
+        RMap<String, Object> rMap = redissonClient.getMap(AUTHORIZATION + username);
         rMap.putAll(collect);
         rMap.expire(Duration.ofHours(AUTHORIZATION_TIME));
     }
@@ -67,8 +69,8 @@ public class HuaNongCrawlerCacheComponent {
      * @param username 用户名
      */
     public void isAccountLockout(String username) {
-        boolean o = (boolean) redissonClient.getBucket(ACCOUNT_LOCKOUT + username).get();
-        if (o) {
+        Boolean o = (Boolean) redissonClient.getBucket(ACCOUNT_LOCKOUT + username).get();
+        if (!ObjectUtils.isEmpty(o) && o) {
             throw new SystemException("账号已锁定,请重新登陆");
         }
     }
@@ -80,20 +82,17 @@ public class HuaNongCrawlerCacheComponent {
      * @return token
      */
     public String getToken(String username) {
-        RMap<String, Object> map = redissonClient.getMap(AUTHORIZATION + username);
+        RMap<String, Object> map = getAuthorization(username);
         return (String) map.get(TOKEN);
     }
 
     /**
-     * 获取请求 登录归属
-     *
+     * 获取存入认证信息
      * @param username 用户名
-     * @param comCode  归属机构编码
-     * @return token
+     * @return 认证信息
      */
-    public HuaNongCrawlerLoginResponse.LoginComDTO getLoginCom(String username, String comCode) {
-        RMap<String, Object> map = redissonClient.getMap(AUTHORIZATION + username);
-        return (HuaNongCrawlerLoginResponse.LoginComDTO) map.get(comCode);
+    public RMap<String, Object> getAuthorization(String username){
+        return redissonClient.getMap(AUTHORIZATION + username);
     }
 
 }

+ 46 - 18
tenant/insurance/quotation-huanong/src/main/java/com/jzg/quotation/huanong/crawler/component/HuaNongCrawlerRequestComponent.java

@@ -1,6 +1,7 @@
 package com.jzg.quotation.huanong.crawler.component;
 
 import cn.hutool.core.codec.Base64;
+import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson2.JSONObject;
 import com.jzg.commons.exception.SystemException;
 import com.jzg.quotation.commons.component.RequestComponent;
@@ -21,6 +22,7 @@ import org.springframework.util.StringUtils;
 
 import java.io.File;
 import java.net.URI;
+import java.util.Collections;
 import java.util.HashMap;
 import java.util.Map;
 import java.util.Optional;
@@ -42,14 +44,22 @@ public class HuaNongCrawlerRequestComponent {
 
     private final RequestComponent requestComponent;
 
-    public <Request extends HuaNongHead, Response> Response post(RequestUrl requestUrl, Request body, Class<Response> responseClass, HttpHeaders headers) {
+    public <Request extends HuaNongHeadRequest, Response extends HuaNongHeadResponse> Response post(RequestUrl requestUrl, Request body, Class<Response> responseClass, HttpHeaders headers) {
         HuaNongCrawlerRequestBaseHead head = body.getHead();
-        head.setSource(requestUrl.getUri());
+        head.setTransCode(requestUrl.getUri());
         JSONObject json = JSONObject.from(body);
-        String requestBody = RequestEncryptor.processRequest(json);
+        // 加盐
+        RequestEncryptor.processRequest(json);
         String url = properties.getUrl() + "?" + requestUrl.getRequestSuffix();
-        ResponseEntity<Response> responseResponseEntity = requestComponent.stringPost(url, requestBody, responseClass, headers);
-        return responseResponseEntity.getBody();
+        ResponseEntity<String> responseResponseEntity = requestComponent.stringPost(url, json, String.class, headers);
+        Response response = JSON.parseObject(responseResponseEntity.getBody(), responseClass);
+        HuaNongCrawlerBaseResponseHead responseHead = Optional.ofNullable(response)
+                .map(HuaNongHeadResponse::getHead)
+                .orElseThrow(() -> new SystemException(requestUrl.getRequestDescription() + "异常"));
+        if ("1".equals(responseHead.getReturnCode())) {
+            throw new SystemException(responseHead.getReturnMessage());
+        }
+        return response;
     }
 
     /**
@@ -59,7 +69,7 @@ public class HuaNongCrawlerRequestComponent {
      * @param headers 请求头
      * @return 验证码信息
      */
-    public HuaNongCrawlerVerificationCodeResponse verificationCode(HuaNongCrawlerVerificationCodeRequest request, HttpHeaders headers) {
+    public HuaNongCrawlerVerificationCodeResponse verificationCode(HuaNongCrawlerVerificationCodeRequestRequest request, HttpHeaders headers) {
         return post(VERIFICATION_CODE, request, HuaNongCrawlerVerificationCodeResponse.class, headers);
     }
 
@@ -70,10 +80,28 @@ public class HuaNongCrawlerRequestComponent {
      * @param headers 请求头
      * @return 登录后的信息
      */
-    public HuaNongCrawlerLoginResponse login(HuaNongCrawlerLoginRequest request, HttpHeaders headers) {
+    public HuaNongCrawlerLoginResponse login(HuaNongCrawlerLoginRequestRequest request, HttpHeaders headers) {
         return post(LOGIN, request, HuaNongCrawlerLoginResponse.class, headers);
     }
 
+
+    /**
+     * 归属机构
+     *
+     * @param request 查询归属机构
+     * @param headers 请求头
+     * @return 归属机构
+     */
+    public HuaNongCrawlerBaseCodeResponse.BaseInfoDTO channelSource(HuaNongCrawlerBaseCodeRequestRequest request, HttpHeaders headers, String channelSource) {
+        HuaNongCrawlerBaseCodeResponse baseCodeResponse = post(CHANNEL_SOURCE, request, HuaNongCrawlerBaseCodeResponse.class, headers);
+        return Optional.ofNullable(baseCodeResponse.getBaseInfo())
+                .orElseGet(Collections::emptyList)
+                .stream()
+                .filter(x -> x.getCode().equals(channelSource))
+                .findFirst()
+                .orElse(new HuaNongCrawlerBaseCodeResponse.BaseInfoDTO());
+    }
+
     /**
      * 查询归属信息
      *
@@ -81,7 +109,7 @@ public class HuaNongCrawlerRequestComponent {
      * @param headers 请求头
      * @return 归属信息
      */
-    public HuaNongCrawlerComInfoQueryResponse comInfoQuery(HuaNongCrawlerComInfoQueryRequest request, HttpHeaders headers) {
+    public HuaNongCrawlerComInfoQueryResponse comInfoQuery(HuaNongCrawlerComInfoQueryRequestRequest request, HttpHeaders headers) {
         return post(COM_INFO_QUERY, request, HuaNongCrawlerComInfoQueryResponse.class, headers);
     }
 
@@ -92,7 +120,7 @@ public class HuaNongCrawlerRequestComponent {
      * @param headers 请求头
      * @return 验证码信息
      */
-    public HuaNongCrawlerUserTypeAndProxyInfoQueryResponse userTypeAndProxyInfoQuery(HuaNongCrawlerUserTypeAndProxyInfoQueryRequest request, HttpHeaders headers) {
+    public HuaNongCrawlerUserTypeAndProxyInfoQueryResponse userTypeAndProxyInfoQuery(HuaNongCrawlerUserTypeAndProxyInfoQueryRequestRequest request, HttpHeaders headers) {
         return post(USER_TYPE_AND_PROXY_INFO_QUERY, request, HuaNongCrawlerUserTypeAndProxyInfoQueryResponse.class, headers);
     }
 
@@ -103,7 +131,7 @@ public class HuaNongCrawlerRequestComponent {
      * @param headers 请求头
      * @return 报价信息
      */
-    public HuaNongCrawlerModelsQueryResponse modelsQuery(HuaNongCrawlerModelsQueryRequest request, HttpHeaders headers) {
+    public HuaNongCrawlerModelsQueryResponse modelsQuery(HuaNongCrawlerModelsQueryRequestRequest request, HttpHeaders headers) {
         return post(MODELS_QUERY, request, HuaNongCrawlerModelsQueryResponse.class, headers);
     }
 
@@ -114,7 +142,7 @@ public class HuaNongCrawlerRequestComponent {
      * @param headers 请求头
      * @return 折旧价
      */
-    public String actualValue(HuaNongCrawlerActualValueRequest request, HttpHeaders headers) {
+    public String actualValue(HuaNongCrawlerActualValueRequestRequest request, HttpHeaders headers) {
         HuaNongCrawlerActualValueResponse response = post(ACTUAL_VALUE, request, HuaNongCrawlerActualValueResponse.class, headers);
         return response.getActualValue();
     }
@@ -126,7 +154,7 @@ public class HuaNongCrawlerRequestComponent {
      * @param headers 请求头
      * @return 报价信息
      */
-    public HuaNongCrawlerQuotedPriceResponse quotedPrice(HuaNongCrawlerQuotedPriceRequest request, HttpHeaders headers) {
+    public HuaNongCrawlerQuotedPriceResponse quotedPrice(HuaNongCrawlerQuotedPriceRequestRequest request, HttpHeaders headers) {
         return post(QUOTED_PRICE, request, HuaNongCrawlerQuotedPriceResponse.class, headers);
     }
 
@@ -137,7 +165,7 @@ public class HuaNongCrawlerRequestComponent {
      * @param headers 请求头
      * @return 保存订单信息
      */
-    public void save(HuaNongCrawlerSaveRequest request, HttpHeaders headers) {
+    public void save(HuaNongCrawlerSaveRequestRequest request, HttpHeaders headers) {
         HuaNongCrawlerSaveResponse response = post(SAVE, request, HuaNongCrawlerSaveResponse.class, headers);
 
     }
@@ -149,7 +177,7 @@ public class HuaNongCrawlerRequestComponent {
      * @param headers 请求头
      * @return 跳转页面需要的data
      */
-    public String newImageQuery(HuaNongCrawlerNewImageQueryRequest request, HttpHeaders headers) {
+    public String newImageQuery(HuaNongCrawlerNewImageQueryRequestRequest request, HttpHeaders headers) {
         HuaNongCrawlerNewImageQueryResponse response = post(NEW_IMAGE_QUERY, request, HuaNongCrawlerNewImageQueryResponse.class, headers);
         return response.getData();
     }
@@ -251,7 +279,7 @@ public class HuaNongCrawlerRequestComponent {
      * @param headers 请求头
      * @return 提交核保信息
      */
-    public HuaNongCrawlerSubmitResponse submit(HuaNongCrawlerSubmitRequest request, HttpHeaders headers) {
+    public HuaNongCrawlerSubmitResponse submit(HuaNongCrawlerSubmitRequestRequest request, HttpHeaders headers) {
         return post(SUBMIT, request, HuaNongCrawlerSubmitResponse.class, headers);
     }
 
@@ -262,7 +290,7 @@ public class HuaNongCrawlerRequestComponent {
      * @param headers 请求头
      * @return 保单链接
      */
-    public String ftpDownload(HuaNongCrawlerFtpDownloadRequest request, HttpHeaders headers) {
+    public String ftpDownload(HuaNongCrawlerFtpDownloadRequestRequest request, HttpHeaders headers) {
         HuaNongCrawlerFtpDownloadResponse response = post(FTP_DOWNLOAD, request, HuaNongCrawlerFtpDownloadResponse.class, headers);
         return response.getDowloadURL().get(0).getDowloadURL();
     }
@@ -274,7 +302,7 @@ public class HuaNongCrawlerRequestComponent {
      * @param headers 请求头
      * @return 非车保单下载链接
      */
-    public String documentsPrint(HuaNongCrawlerDocumentsPrintRequest request, HttpHeaders headers) {
+    public String documentsPrint(HuaNongCrawlerDocumentsPrintRequestRequest request, HttpHeaders headers) {
         HuaNongCrawlerDocumentsPrintResponse response = post(DOCUMENTS_PRINT, request, HuaNongCrawlerDocumentsPrintResponse.class, headers);
         String fileUrl = response.getFileUrl();
         return fileUrl.replace(properties.getDocumentsPrintUrl(), properties.getFtpDownloadUrl());
@@ -287,7 +315,7 @@ public class HuaNongCrawlerRequestComponent {
      * @param headers 请求头
      * @return 订单列表
      */
-    public HuaNongCrawlerFindBusinessesResponse findBusinesses(HuaNongCrawlerFindBusinessesRequest request, HttpHeaders headers) {
+    public HuaNongCrawlerFindBusinessesResponse findBusinesses(HuaNongCrawlerFindBusinessesRequestRequest request, HttpHeaders headers) {
         return post(FIND_BUSINESSES, request, HuaNongCrawlerFindBusinessesResponse.class, headers);
     }
 

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

@@ -14,10 +14,12 @@ import lombok.Getter;
 public enum RequestUrl implements CrawlerRequestUrlStandard {
 
     // 登录
-    Message("Message", "发送验证码", "message"),
+    MESSAGE("Message", "发送验证码", "message"),
     VERIFICATION_CODE("VERIFICATIONCODE", "获取验证码", "message"),
     LOGIN("Login", "登录", "login"),
     // 归属信息
+    CHANNEL_SOURCE("BaseCode", "字典查询", "baseCode"),
+
     COM_INFO_QUERY("comInfoQuery", "查询归属机构", "comInfoQuery"),
     USER_TYPE_AND_PROXY_INFO_QUERY("userTypeAndProxyinfoQuery", "渠道类型和代理信息", "userTypeAndProxyinfoQuery"),
     // 报价

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

@@ -21,13 +21,13 @@ public class HuaNongCrawlerConfigureParameters implements ConfigureParameters {
     /**
      * 登录机构
      */
-    private String loginComCode;
+    private String loginCom;
     /**
      * 归属机构编码
      */
     private String comCode;
     /**
-     * 渠道类型编码
+     * 渠道类型
      */
     private String producer;
     /**

+ 4 - 8
tenant/insurance/quotation-huanong/src/main/java/com/jzg/quotation/huanong/crawler/entity/request/HuaNongCrawlerActualValueRequest.java → tenant/insurance/quotation-huanong/src/main/java/com/jzg/quotation/huanong/crawler/entity/request/HuaNongCrawlerActualValueRequestRequest.java

@@ -8,11 +8,10 @@ import lombok.Data;
 import lombok.NoArgsConstructor;
 
 import java.io.Serial;
-import java.io.Serializable;
 
 @NoArgsConstructor
 @Data
-public class HuaNongCrawlerActualValueRequest implements Serializable, HuaNongHead {
+public class HuaNongCrawlerActualValueRequestRequest implements HuaNongHeadRequest {
 
     @Serial
     private static final long serialVersionUID = 3848690084024362135L;
@@ -50,10 +49,7 @@ public class HuaNongCrawlerActualValueRequest implements Serializable, HuaNongHe
     @JsonProperty("EnergyType")
     private String energyType;
 
-    public HuaNongCrawlerActualValueRequest(String token,
-                                            String loginCom,
-                                            HuaNongCrawlerModelsQueryResponse.CarModelDTO carModelDTO,
-                                            CarInfoVo carInfoVo) {
+    public HuaNongCrawlerActualValueRequestRequest(String token, String loginCom, HuaNongCrawlerModelsQueryResponse.CarModelDTO carModelDTO, CarInfoVo carInfoVo) {
         this.head = new HuaNongCrawlerRequestBaseHead(token);
         this.localModelCode = carModelDTO.getFullCarData().getLocalModelCode();
         this.approvedPassengersCapacity = Integer.valueOf(carInfoVo.getSeatCount());
@@ -61,10 +57,10 @@ public class HuaNongCrawlerActualValueRequest implements Serializable, HuaNongHe
         this.purchasePrice = carModelDTO.getPurchasePrice();
         this.motorUsageTypeCode = carInfoVo.getVehicleUseCode();
         this.motorTypeCode = carInfoVo.getCarKindCode();
-        this.registerDate = carInfoVo.getRegisterDate();
+        this.registerDate = TimeProcessing.dateToDateTime(carInfoVo.getRegisterDate());
         this.loginCom = loginCom;
         this.isNewEnergyFlag = false;
-        this.energyType = "";
+        this.energyType = carInfoVo.getEnergyTypeCode();
     }
 
 }

+ 49 - 0
tenant/insurance/quotation-huanong/src/main/java/com/jzg/quotation/huanong/crawler/entity/request/HuaNongCrawlerBaseCodeRequestRequest.java

@@ -0,0 +1,49 @@
+package com.jzg.quotation.huanong.crawler.entity.request;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serial;
+import java.util.Collections;
+import java.util.List;
+
+/**
+ * @description: 大家财险请求通用信息请求接口
+ * @author: wenks
+ * @date: 2025/6/18 16:47
+ **/
+@NoArgsConstructor
+@Data
+public class HuaNongCrawlerBaseCodeRequestRequest implements HuaNongHeadRequest {
+
+    @Serial
+    private static final long serialVersionUID = -2726060030361984854L;
+
+    @JsonProperty("head")
+    private HuaNongCrawlerRequestBaseHead head;
+
+    @JsonProperty("queryType")
+    private String queryType;
+
+    @JsonProperty("conditions")
+    private List<?> conditions;
+
+    @JsonProperty("loginCom")
+    private String loginCom;
+
+    @JsonProperty("userCode")
+    private String userCode;
+
+    @JsonProperty("riskCode")
+    private String riskCode;
+
+    public HuaNongCrawlerBaseCodeRequestRequest(String token, String loginCom, String userCode, String queryType) {
+        this.head = new HuaNongCrawlerRequestBaseHead(token);
+        this.conditions = Collections.emptyList();
+        this.queryType = queryType;
+        this.loginCom = loginCom;
+        this.userCode = userCode;
+        this.riskCode = "";
+    }
+}

+ 2 - 3
tenant/insurance/quotation-huanong/src/main/java/com/jzg/quotation/huanong/crawler/entity/request/HuaNongCrawlerComInfoQueryRequest.java → tenant/insurance/quotation-huanong/src/main/java/com/jzg/quotation/huanong/crawler/entity/request/HuaNongCrawlerComInfoQueryRequestRequest.java

@@ -6,7 +6,6 @@ import lombok.Getter;
 import lombok.NoArgsConstructor;
 
 import java.io.Serial;
-import java.io.Serializable;
 
 
 /**
@@ -16,7 +15,7 @@ import java.io.Serializable;
  **/
 @NoArgsConstructor
 @Data
-public class HuaNongCrawlerComInfoQueryRequest implements Serializable, HuaNongHead {
+public class HuaNongCrawlerComInfoQueryRequestRequest implements HuaNongHeadRequest {
 
     @Serial
     private static final long serialVersionUID = -7566804567059721650L;
@@ -31,7 +30,7 @@ public class HuaNongCrawlerComInfoQueryRequest implements Serializable, HuaNongH
     @JsonProperty("flag")
     private String flag;
 
-    public HuaNongCrawlerComInfoQueryRequest(String comCode, String token) {
+    public HuaNongCrawlerComInfoQueryRequestRequest(String comCode, String token) {
         this.head = new HuaNongCrawlerRequestBaseHead(token);
         this.comCode = comCode;
         this.flag = "1";

+ 1 - 3
tenant/insurance/quotation-huanong/src/main/java/com/jzg/quotation/huanong/crawler/entity/request/HuaNongCrawlerDocumentsPrintRequest.java → tenant/insurance/quotation-huanong/src/main/java/com/jzg/quotation/huanong/crawler/entity/request/HuaNongCrawlerDocumentsPrintRequestRequest.java

@@ -5,18 +5,16 @@ import lombok.Data;
 import lombok.NoArgsConstructor;
 
 import java.io.Serial;
-import java.io.Serializable;
 import java.util.List;
 
 /**
- * @version
  * @description: 华农财险 爬虫 非车险保单请求
  * @author: wenks
  * @date: 2025/3/25 11:21
  **/
 @NoArgsConstructor
 @Data
-public class HuaNongCrawlerDocumentsPrintRequest implements Serializable, HuaNongHead  {
+public class HuaNongCrawlerDocumentsPrintRequestRequest implements HuaNongHeadRequest {
 
     @Serial
     private static final long serialVersionUID = 4496389865677680959L;

+ 2 - 3
tenant/insurance/quotation-huanong/src/main/java/com/jzg/quotation/huanong/crawler/entity/request/HuaNongCrawlerFindBusinessesRequest.java → tenant/insurance/quotation-huanong/src/main/java/com/jzg/quotation/huanong/crawler/entity/request/HuaNongCrawlerFindBusinessesRequestRequest.java

@@ -5,7 +5,6 @@ import lombok.Data;
 import lombok.NoArgsConstructor;
 
 import java.io.Serial;
-import java.io.Serializable;
 import java.util.List;
 
 /**
@@ -15,7 +14,7 @@ import java.util.List;
  **/
 @NoArgsConstructor
 @Data
-public class HuaNongCrawlerFindBusinessesRequest implements Serializable, HuaNongHead {
+public class HuaNongCrawlerFindBusinessesRequestRequest implements HuaNongHeadRequest {
 
     @Serial
     private static final long serialVersionUID = -1977232815995533612L;
@@ -125,7 +124,7 @@ public class HuaNongCrawlerFindBusinessesRequest implements Serializable, HuaNon
     @JsonProperty("expireDateEnd")
     private String expireDateEnd;
 
-    public HuaNongCrawlerFindBusinessesRequest(String token, String loginCom) {
+    public HuaNongCrawlerFindBusinessesRequestRequest(String token, String loginCom) {
         this.head = new HuaNongCrawlerRequestBaseHead(token);
         this.loginCom = loginCom;
         this.rows = 1;

+ 2 - 3
tenant/insurance/quotation-huanong/src/main/java/com/jzg/quotation/huanong/crawler/entity/request/HuaNongCrawlerFtpDownloadRequest.java → tenant/insurance/quotation-huanong/src/main/java/com/jzg/quotation/huanong/crawler/entity/request/HuaNongCrawlerFtpDownloadRequestRequest.java

@@ -5,7 +5,6 @@ import lombok.Data;
 import lombok.NoArgsConstructor;
 
 import java.io.Serial;
-import java.io.Serializable;
 import java.util.List;
 
 /**
@@ -15,11 +14,11 @@ import java.util.List;
  **/
 @NoArgsConstructor
 @Data
-public class HuaNongCrawlerFtpDownloadRequest implements Serializable, HuaNongHead {
+public class HuaNongCrawlerFtpDownloadRequestRequest implements HuaNongHeadRequest {
 
     @Serial
     private static final long serialVersionUID = 6018163851123731993L;
-    
+
     @JsonProperty("head")
     private HuaNongCrawlerRequestBaseHead head;
 

+ 3 - 4
tenant/insurance/quotation-huanong/src/main/java/com/jzg/quotation/huanong/crawler/entity/request/HuaNongCrawlerLoginRequest.java → tenant/insurance/quotation-huanong/src/main/java/com/jzg/quotation/huanong/crawler/entity/request/HuaNongCrawlerLoginRequestRequest.java

@@ -6,7 +6,6 @@ import lombok.Data;
 import lombok.NoArgsConstructor;
 
 import java.io.Serial;
-import java.io.Serializable;
 
 /**
  * @description: 大家财险 登录 请求
@@ -15,7 +14,7 @@ import java.io.Serializable;
  **/
 @NoArgsConstructor
 @Data
-public class HuaNongCrawlerLoginRequest implements Serializable, HuaNongHead {
+public class HuaNongCrawlerLoginRequestRequest implements HuaNongHeadRequest {
 
     @Serial
     private static final long serialVersionUID = 4577459748247898283L;
@@ -50,7 +49,7 @@ public class HuaNongCrawlerLoginRequest implements Serializable, HuaNongHead {
     @JsonProperty("pwd")
     private String pwd;
 
-    public HuaNongCrawlerLoginRequest(String username, String password, String captchaKey, String captcha) {
+    public HuaNongCrawlerLoginRequestRequest(String username, String password, String captchaKey, String captcha) {
         this.head = new HuaNongCrawlerRequestBaseHead("");
         this.userCode = username;
         this.type = type;
@@ -60,6 +59,6 @@ public class HuaNongCrawlerLoginRequest implements Serializable, HuaNongHead {
         this.mobile = "";
         this.saaLoginFlag = "1";
         this.verificationNo = "";
-        this.pwd = Base64.encodeToString(password) ;
+        this.pwd = Base64.encodeToString(password);
     }
 }

+ 2 - 3
tenant/insurance/quotation-huanong/src/main/java/com/jzg/quotation/huanong/crawler/entity/request/HuaNongCrawlerModelsQueryRequest.java → tenant/insurance/quotation-huanong/src/main/java/com/jzg/quotation/huanong/crawler/entity/request/HuaNongCrawlerModelsQueryRequestRequest.java

@@ -6,7 +6,6 @@ import lombok.Data;
 import lombok.NoArgsConstructor;
 
 import java.io.Serial;
-import java.io.Serializable;
 
 /**
  * @description: 华农财险 车型查询 请求
@@ -15,7 +14,7 @@ import java.io.Serializable;
  **/
 @NoArgsConstructor
 @Data
-public class HuaNongCrawlerModelsQueryRequest  implements Serializable, HuaNongHead {
+public class HuaNongCrawlerModelsQueryRequestRequest implements HuaNongHeadRequest {
 
     @Serial
     private static final long serialVersionUID = 6713193234259181775L;
@@ -71,7 +70,7 @@ public class HuaNongCrawlerModelsQueryRequest  implements Serializable, HuaNongH
     @JsonProperty("windowsFlag")
     private String windowsFlag;
 
-    public HuaNongCrawlerModelsQueryRequest(String token, String loginCom,CarInfoVo carInfoVo) {
+    public HuaNongCrawlerModelsQueryRequestRequest(String token, String loginCom, CarInfoVo carInfoVo) {
         this.head = new HuaNongCrawlerRequestBaseHead(token);
         this.loginCom = loginCom;
         this.pageNo = "1";

+ 1 - 2
tenant/insurance/quotation-huanong/src/main/java/com/jzg/quotation/huanong/crawler/entity/request/HuaNongCrawlerNewImageQueryRequest.java → tenant/insurance/quotation-huanong/src/main/java/com/jzg/quotation/huanong/crawler/entity/request/HuaNongCrawlerNewImageQueryRequestRequest.java

@@ -5,7 +5,6 @@ import lombok.Data;
 import lombok.NoArgsConstructor;
 
 import java.io.Serial;
-import java.io.Serializable;
 
 /**
  * @description: 华农财险 爬虫 新影像上传
@@ -14,7 +13,7 @@ import java.io.Serializable;
  **/
 @NoArgsConstructor
 @Data
-public class HuaNongCrawlerNewImageQueryRequest implements Serializable, HuaNongHead {
+public class HuaNongCrawlerNewImageQueryRequestRequest implements HuaNongHeadRequest {
 
     @Serial
     private static final long serialVersionUID = 7337617295810357364L;

+ 57 - 54
tenant/insurance/quotation-huanong/src/main/java/com/jzg/quotation/huanong/crawler/entity/request/HuaNongCrawlerQuotedPriceRequest.java → tenant/insurance/quotation-huanong/src/main/java/com/jzg/quotation/huanong/crawler/entity/request/HuaNongCrawlerQuotedPriceRequestRequest.java

@@ -2,12 +2,9 @@ package com.jzg.quotation.huanong.crawler.entity.request;
 
 import cn.hutool.core.codec.Base64;
 import com.fasterxml.jackson.annotation.JsonProperty;
-import com.jzg.commons.entity.quote.vo.CarInfoVo;
-import com.jzg.commons.entity.quote.vo.CustomerInfoVo;
-import com.jzg.commons.entity.quote.vo.KindInfoVo;
-import com.jzg.commons.entity.quote.vo.RiskInfoVo;
-import com.jzg.commons.entity.quote.vo.QuoteVo;
+import com.jzg.commons.entity.quote.vo.*;
 import com.jzg.quotation.huanong.crawler.entity.HuaNongCrawlerConfigureParameters;
+import com.jzg.quotation.huanong.crawler.entity.response.HuaNongCrawlerBaseCodeResponse;
 import com.jzg.quotation.huanong.crawler.entity.response.HuaNongCrawlerComInfoQueryResponse;
 import com.jzg.quotation.huanong.crawler.entity.response.HuaNongCrawlerModelsQueryResponse;
 import com.jzg.quotation.huanong.crawler.entity.response.HuaNongCrawlerUserTypeAndProxyInfoQueryResponse;
@@ -16,7 +13,6 @@ import lombok.Data;
 import lombok.NoArgsConstructor;
 
 import java.io.Serial;
-import java.io.Serializable;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
@@ -29,7 +25,7 @@ import java.util.List;
  **/
 @NoArgsConstructor
 @Data
-public class HuaNongCrawlerQuotedPriceRequest implements Serializable, HuaNongHead {
+public class HuaNongCrawlerQuotedPriceRequestRequest implements HuaNongHeadRequest {
 
     @Serial
     private static final long serialVersionUID = -5873004327248461555L;
@@ -52,18 +48,21 @@ public class HuaNongCrawlerQuotedPriceRequest implements Serializable, HuaNongHe
     @JsonProperty("businessData")
     private BusinessDataDTO businessData;
 
-    public HuaNongCrawlerQuotedPriceRequest(String token,
-                                            String username,
-                                            QuoteVo quoteVo,
-                                            HuaNongCrawlerModelsQueryResponse.CarModelDTO carModelDTO,
-                                            HuaNongCrawlerConfigureParameters huaNongCrawlerConfigureParameter,
-                                            String actualValue) {
+    public HuaNongCrawlerQuotedPriceRequestRequest(String token,
+                                                   String username,
+                                                   QuoteVo quoteVo,
+                                                   String loginComCode,
+                                                   String actualValue,
+                                                   HuaNongCrawlerConfigureParameters parameters,
+                                                   HuaNongCrawlerModelsQueryResponse.CarModelDTO carModelDTO,
+                                                   HuaNongCrawlerQuotedPriceRequestRequest.BusinessDataDTO.SaleInfoDTO saleInfoDTO) {
         this.head = new HuaNongCrawlerRequestBaseHead(token);
-        this.loginCom = huaNongCrawlerConfigureParameter.getLoginComCode();
+        this.loginCom = loginComCode;
         this.userCode = username;
-        this.comeCode = huaNongCrawlerConfigureParameter.getComCode();
-        this.agentCode = "";
-        this.businessData = new BusinessDataDTO(quoteVo, carModelDTO, huaNongCrawlerConfigureParameter.getLoginComCode(), huaNongCrawlerConfigureParameter.getComCode(), actualValue);
+        this.comeCode = parameters.getComCode();
+        this.agentCode = saleInfoDTO.getAgentCode();
+        this.businessData = new BusinessDataDTO(quoteVo, carModelDTO, loginComCode, parameters.getLoginCom(), actualValue, saleInfoDTO);
+
     }
 
     @NoArgsConstructor
@@ -149,8 +148,9 @@ public class HuaNongCrawlerQuotedPriceRequest implements Serializable, HuaNongHe
         private List<Object> glassInfo;
 
 
-        public BusinessDataDTO(QuoteVo quoteVo, HuaNongCrawlerModelsQueryResponse.CarModelDTO carModelDTO, String loginCom, String comeCode,  String actualValue) {
-            this.businessMain = new BusinessMainDTO(loginCom, comeCode);
+        public BusinessDataDTO(QuoteVo quoteVo, HuaNongCrawlerModelsQueryResponse.CarModelDTO carModelDTO, String loginCom, String loginComName, String actualValue, HuaNongCrawlerQuotedPriceRequestRequest.BusinessDataDTO.SaleInfoDTO saleInfoDTO) {
+            this.saleInfo = saleInfoDTO;
+            this.businessMain = new BusinessMainDTO(loginCom, loginComName);
             this.insuredObject = new InsuredObjectDTO(carModelDTO, quoteVo.getCarInfoVo(), quoteVo.getOwnersInfo(), actualValue);
             this.platFormMessageNvehBean = new PlatFormMessageNvehBeanDTO("");
             this.sum = 0;
@@ -251,40 +251,40 @@ public class HuaNongCrawlerQuotedPriceRequest implements Serializable, HuaNongHe
             @JsonProperty("isAloneInsureNveh")
             private Integer isAloneInsureNveh;
 
-            public BusinessMainDTO(String loginCom, String comeCode) {
+            public BusinessMainDTO(String makeCom, String makeComName) {
                 this.accessSource = "";
                 this.agreementNo = "";
                 this.appointAreaCode = "";
-                this.argueSolution = "";
+                this.argueSolution = "1";
                 this.argueSolutionCom = "";
-                this.beforeFXQStockOnline = beforeFXQStockOnline;
-                this.billAcceptDate = billAcceptDate;
+                this.beforeFXQStockOnline = false;
+                this.billAcceptDate = "";
                 this.businessType = "2";
-                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.constract5 = "";
+                this.hnscoreGroup = "";
+                this.inputDateTime = "";
+                this.isAloneCorrectingNveh = "";
+                this.isAsync = false;
+                this.isCorrectGLASS = false;
+                this.isCorrectHOME = false;
+                this.isCorrectNVEH = false;
+                this.isElectronicInsuredFlag = false;
+                this.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.operateDateTime = "";
+                this.operatorName = "";
+                this.relateType = "";
+                this.underWriteEndDate = "";
+                this.underwritingReminderFlag = "";
+                this.verificationCode = "";
+                this.reCalculateFlag = "0";
+                this.suggestedDiscountQuoted = "";
+                this.priceAdjustType = "1";
+                this.quoteFlag = "0";
+                this.quoteMd5 = "";
+                this.isPeerComparison = "";
+                this.isRunFlag = "";
                 this.bjLogId = "";
                 this.lastPolicyNos = Collections.emptyList();
                 this.isAloneInsureNveh = 0;
@@ -500,7 +500,7 @@ public class HuaNongCrawlerQuotedPriceRequest implements Serializable, HuaNongHe
                 @JsonProperty("certificateDate")
                 private String certificateDate;
 
-                public PolicyCarDTO(CarInfoVo carInfoVo, CustomerInfoVo ownersInfo, HuaNongCrawlerModelsQueryResponse.CarModelDTO.FullCarDataDTO fullCarDataDTO,  String actualValue) {
+                public PolicyCarDTO(CarInfoVo carInfoVo, CustomerInfoVo ownersInfo, HuaNongCrawlerModelsQueryResponse.CarModelDTO.FullCarDataDTO fullCarDataDTO, String actualValue) {
                     this.actualValue = actualValue;
                     this.bankCode = "";
                     this.bankName = "";
@@ -878,6 +878,8 @@ public class HuaNongCrawlerQuotedPriceRequest implements Serializable, HuaNongHe
             public SaleInfoDTO(HuaNongCrawlerComInfoQueryResponse.ComListDTO comListDTO,
                                HuaNongCrawlerUserTypeAndProxyInfoQueryResponse.HandlerListDTO handlerListDTO,
                                HuaNongCrawlerUserTypeAndProxyInfoQueryResponse.AgentInfoListDTO agentInfoListDTO,
+                               HuaNongCrawlerUserTypeAndProxyInfoQueryResponse.ProducerListDTO producerListDTO,
+                               HuaNongCrawlerBaseCodeResponse.BaseInfoDTO baseInfoDTO,
                                String callerName) {
                 this.agentAddress = agentInfoListDTO.getAgentAddress();
                 this.agentCode = agentInfoListDTO.getAgentCode();
@@ -901,12 +903,11 @@ public class HuaNongCrawlerQuotedPriceRequest implements Serializable, HuaNongHe
                 this.staffName = "";
                 this.teamCode = handlerListDTO.getTeamCode();
                 this.teamName = handlerListDTO.getTeamName();
-                this.channelSource = "";
-                this.channelSourceName = "";
-
-                this.producerCode = "";
-                this.producerName = "";
+                this.channelSource = baseInfoDTO.getCode();
+                this.channelSourceName = baseInfoDTO.getValue();
 
+                this.producerCode = producerListDTO.getProducerCode();
+                this.producerName = producerListDTO.getProducerName();
             }
 
             @NoArgsConstructor
@@ -953,7 +954,7 @@ public class HuaNongCrawlerQuotedPriceRequest implements Serializable, HuaNongHe
                     this.handlerName = handlerListDTO.getHandlerName();
                     this.handlerIdentifynumber = handlerListDTO.getHandlerCode();
                     this.handlerMobile = handlerListDTO.getHandlerMobile();
-                    this.riskClassType = "201705";
+                    this.riskClassType = handlerListDTO.getRiskClassType();
                 }
             }
         }
@@ -1255,7 +1256,9 @@ public class HuaNongCrawlerQuotedPriceRequest implements Serializable, HuaNongHe
             private static ContractDTO getBiContractDTO(RiskInfoVo biRiskInfoVo, List<KindInfoVo> kindInfoVo) {
                 ContractDTO contractDTO = new ContractDTO();
 
-                List<CoverageDTO> coverageDTOS = kindInfoVo.stream().map(kind -> new CoverageDTO(biRiskInfoVo, kind)).toList();
+                List<CoverageDTO> coverageDTOS = kindInfoVo.stream()
+                        .map(kind -> new CoverageDTO(biRiskInfoVo, kind))
+                        .toList();
                 contractDTO.setCoverage(coverageDTOS);
 
                 return new ContractDTO();

+ 3 - 1
tenant/insurance/quotation-huanong/src/main/java/com/jzg/quotation/huanong/crawler/entity/request/HuaNongCrawlerRequestBaseHead.java

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

+ 7 - 8
tenant/insurance/quotation-huanong/src/main/java/com/jzg/quotation/huanong/crawler/entity/request/HuaNongCrawlerSaveRequest.java → tenant/insurance/quotation-huanong/src/main/java/com/jzg/quotation/huanong/crawler/entity/request/HuaNongCrawlerSaveRequestRequest.java

@@ -6,7 +6,6 @@ import lombok.Data;
 import lombok.NoArgsConstructor;
 
 import java.io.Serial;
-import java.io.Serializable;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
@@ -19,7 +18,7 @@ import java.util.stream.Collectors;
  **/
 @NoArgsConstructor
 @Data
-public class HuaNongCrawlerSaveRequest implements Serializable, HuaNongHead {
+public class HuaNongCrawlerSaveRequestRequest implements HuaNongHeadRequest {
 
     @Serial
     private static final long serialVersionUID = 5383273187105919255L;
@@ -32,9 +31,9 @@ public class HuaNongCrawlerSaveRequest implements Serializable, HuaNongHead {
     private String loginCom;
 
 
-    public HuaNongCrawlerSaveRequest(List<HuaNongCrawlerQuotedPriceRequest.BusinessDataDTO.ContractDTO> contract,
-                                     List<HuaNongCrawlerQuotedPriceRequest.BusinessDataDTO.ContractAccidentDTO> contractAccident,
-                                     String token, String loginCom) {
+    public HuaNongCrawlerSaveRequestRequest(List<HuaNongCrawlerQuotedPriceRequestRequest.BusinessDataDTO.ContractDTO> contract,
+                                            List<HuaNongCrawlerQuotedPriceRequestRequest.BusinessDataDTO.ContractAccidentDTO> contractAccident,
+                                            String token, String loginCom) {
         this.head = new HuaNongCrawlerRequestBaseHead(token);
         this.businessData = new BusinessDataDTO(contract, contractAccident);
         this.loginCom = loginCom;
@@ -61,8 +60,8 @@ public class HuaNongCrawlerSaveRequest implements Serializable, HuaNongHead {
         @JsonProperty("ocrIdentityInfoId")
         private List<Object> ocrIdentityInfoId;
 
-        public BusinessDataDTO(List<HuaNongCrawlerQuotedPriceRequest.BusinessDataDTO.ContractDTO> contract,
-                               List<HuaNongCrawlerQuotedPriceRequest.BusinessDataDTO.ContractAccidentDTO> contractAccident) {
+        public BusinessDataDTO(List<HuaNongCrawlerQuotedPriceRequestRequest.BusinessDataDTO.ContractDTO> contract,
+                               List<HuaNongCrawlerQuotedPriceRequestRequest.BusinessDataDTO.ContractAccidentDTO> contractAccident) {
             this.contract = new ArrayList<>();
             contract.forEach(item -> {
                 String riskCode = item.getContractMain().getRiskCode();
@@ -120,7 +119,7 @@ public class HuaNongCrawlerSaveRequest implements Serializable, HuaNongHead {
             @JsonProperty("riskCode")
             private String riskCode;
 
-            public ContractNvehDTO(HuaNongCrawlerQuotedPriceRequest.BusinessDataDTO.ContractAccidentDTO.ContractMainDTO contractMain) {
+            public ContractNvehDTO(HuaNongCrawlerQuotedPriceRequestRequest.BusinessDataDTO.ContractAccidentDTO.ContractMainDTO contractMain) {
                 this.provisonalNo = contractMain.getContractNo();
                 this.relationProNo = "";
                 this.proposalNo = "";

+ 2 - 3
tenant/insurance/quotation-huanong/src/main/java/com/jzg/quotation/huanong/crawler/entity/request/HuaNongCrawlerSubmitRequest.java → tenant/insurance/quotation-huanong/src/main/java/com/jzg/quotation/huanong/crawler/entity/request/HuaNongCrawlerSubmitRequestRequest.java

@@ -7,7 +7,6 @@ import lombok.Data;
 import lombok.NoArgsConstructor;
 
 import java.io.Serial;
-import java.io.Serializable;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Optional;
@@ -20,7 +19,7 @@ import java.util.Optional;
  **/
 @NoArgsConstructor
 @Data
-public class HuaNongCrawlerSubmitRequest implements Serializable, HuaNongHead {
+public class HuaNongCrawlerSubmitRequestRequest implements HuaNongHeadRequest {
 
     @Serial
     private static final long serialVersionUID = -5508418245097370566L;
@@ -50,7 +49,7 @@ public class HuaNongCrawlerSubmitRequest implements Serializable, HuaNongHead {
     private String htmlSource;
 
 
-    public HuaNongCrawlerSubmitRequest(HuaNongCrawlerOrder huaNongCrawlerOrder, String token, String loginCom) {
+    public HuaNongCrawlerSubmitRequestRequest(HuaNongCrawlerOrder huaNongCrawlerOrder, String token, String loginCom) {
         this.head = new HuaNongCrawlerRequestBaseHead(token);
         this.operateType = "1";
         this.contractMain = ContractMainDTO.toContractMainDTO(huaNongCrawlerOrder);

+ 5 - 7
tenant/insurance/quotation-huanong/src/main/java/com/jzg/quotation/huanong/crawler/entity/request/HuaNongCrawlerUserTypeAndProxyInfoQueryRequest.java → tenant/insurance/quotation-huanong/src/main/java/com/jzg/quotation/huanong/crawler/entity/request/HuaNongCrawlerUserTypeAndProxyInfoQueryRequestRequest.java

@@ -5,18 +5,16 @@ import lombok.Data;
 import lombok.NoArgsConstructor;
 
 import java.io.Serial;
-import java.io.Serializable;
 
 
 /**
- * @version
  * @description: 华农财险 渠道类型和代理信息 请求
  * @author: wenks
  * @date: 2025/3/20 11:22
  **/
 @NoArgsConstructor
 @Data
-public class HuaNongCrawlerUserTypeAndProxyInfoQueryRequest implements Serializable, HuaNongHead {
+public class HuaNongCrawlerUserTypeAndProxyInfoQueryRequestRequest implements HuaNongHeadRequest {
 
     @Serial
     private static final long serialVersionUID = 6595377147028787981L;
@@ -37,11 +35,11 @@ public class HuaNongCrawlerUserTypeAndProxyInfoQueryRequest implements Serializa
     private String userCode;
 
 
-    public HuaNongCrawlerUserTypeAndProxyInfoQueryRequest(String username, String token, HuaNongCrawlerComInfoQueryRequest huaNongCrawlerComInfoQueryRequest) {
+    public HuaNongCrawlerUserTypeAndProxyInfoQueryRequestRequest(String username, String token, String loginCom, String comCode) {
         this.head = new HuaNongCrawlerRequestBaseHead(token);
-        this.loginCom = huaNongCrawlerComInfoQueryRequest.getComCode();
-        this.comCode = huaNongCrawlerComInfoQueryRequest.getComCode();
-        this.producerCode = huaNongCrawlerComInfoQueryRequest.getComCode();
+        this.loginCom = loginCom;
+        this.comCode = comCode;
+        this.producerCode = "";
         this.userCode = username;
     }
 

+ 2 - 4
tenant/insurance/quotation-huanong/src/main/java/com/jzg/quotation/huanong/crawler/entity/request/HuaNongCrawlerVerificationCodeRequest.java → tenant/insurance/quotation-huanong/src/main/java/com/jzg/quotation/huanong/crawler/entity/request/HuaNongCrawlerVerificationCodeRequestRequest.java

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

+ 8 - 1
tenant/insurance/quotation-huanong/src/main/java/com/jzg/quotation/huanong/crawler/entity/request/HuaNongHead.java → tenant/insurance/quotation-huanong/src/main/java/com/jzg/quotation/huanong/crawler/entity/request/HuaNongHeadRequest.java

@@ -1,12 +1,19 @@
 package com.jzg.quotation.huanong.crawler.entity.request;
 
+import java.io.Serializable;
+
 /**
  * @description: head 接口
  * @author: wenks
  * @date: 2025/3/20 14:13
  **/
-public interface HuaNongHead {
+public interface HuaNongHeadRequest extends Serializable {
 
+    /**
+     * 获取请求head
+     *
+     * @return head
+     */
     HuaNongCrawlerRequestBaseHead getHead();
 
 }

+ 12 - 1
tenant/insurance/quotation-huanong/src/main/java/com/jzg/quotation/huanong/crawler/entity/response/HuaNongCrawlerActualValueResponse.java

@@ -4,22 +4,33 @@ import com.fasterxml.jackson.annotation.JsonProperty;
 import lombok.Data;
 import lombok.NoArgsConstructor;
 
+import java.io.Serial;
+
 @NoArgsConstructor
 @Data
-public class HuaNongCrawlerActualValueResponse {
+public class HuaNongCrawlerActualValueResponse implements HuaNongHeadResponse {
+
+    @Serial
+    private static final long serialVersionUID = -1111614139013668844L;
 
     @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;
 

+ 40 - 0
tenant/insurance/quotation-huanong/src/main/java/com/jzg/quotation/huanong/crawler/entity/response/HuaNongCrawlerBaseCodeResponse.java

@@ -0,0 +1,40 @@
+package com.jzg.quotation.huanong.crawler.entity.response;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serial;
+import java.util.List;
+
+@NoArgsConstructor
+@Data
+public class HuaNongCrawlerBaseCodeResponse implements HuaNongHeadResponse {
+
+    @Serial
+    private static final long serialVersionUID = 2043370098186424356L;
+
+    @JsonProperty("baseInfo")
+    private List<BaseInfoDTO> baseInfo;
+
+    @JsonProperty("head")
+    private HuaNongCrawlerBaseResponseHead head;
+
+    @JsonProperty("pageNo")
+    private Integer pageNo;
+
+    @JsonProperty("totalRow")
+    private Integer totalRow;
+
+    @NoArgsConstructor
+    @Data
+    public static class BaseInfoDTO {
+
+        @JsonProperty("code")
+        private String code;
+
+        @JsonProperty("value")
+        private String value;
+    }
+
+}

+ 1 - 2
tenant/insurance/quotation-huanong/src/main/java/com/jzg/quotation/huanong/crawler/entity/response/HuaNongCrawlerBaseResponseHead.java

@@ -5,14 +5,13 @@ import lombok.Data;
 import lombok.NoArgsConstructor;
 
 /**
- * @version
  * @description: 华农财险 响应 head
  * @author: wenks
  * @date: 2025/3/20 11:23
  **/
 @NoArgsConstructor
 @Data
-public class HuaNongCrawlerBaseResponseHead {
+public class HuaNongCrawlerBaseResponseHead  {
 
     @JsonProperty("errorCode")
     private String errorCode;

+ 5 - 1
tenant/insurance/quotation-huanong/src/main/java/com/jzg/quotation/huanong/crawler/entity/response/HuaNongCrawlerComInfoQueryResponse.java

@@ -4,6 +4,7 @@ import com.fasterxml.jackson.annotation.JsonProperty;
 import lombok.Data;
 import lombok.NoArgsConstructor;
 
+import java.io.Serial;
 import java.util.List;
 
 
@@ -14,7 +15,10 @@ import java.util.List;
  **/
 @NoArgsConstructor
 @Data
-public class HuaNongCrawlerComInfoQueryResponse {
+public class HuaNongCrawlerComInfoQueryResponse implements HuaNongHeadResponse{
+
+    @Serial
+    private static final long serialVersionUID = 5714052780968307221L;
 
     @JsonProperty("comList")
     private List<ComListDTO> comList;

+ 7 - 30
tenant/insurance/quotation-huanong/src/main/java/com/jzg/quotation/huanong/crawler/entity/response/HuaNongCrawlerDocumentsPrintResponse.java

@@ -4,6 +4,8 @@ import com.fasterxml.jackson.annotation.JsonProperty;
 import lombok.Data;
 import lombok.NoArgsConstructor;
 
+import java.io.Serial;
+
 /**
  * @description: 华农财险 非车险保单下载 响应
  * @author: wenks
@@ -11,7 +13,10 @@ import lombok.NoArgsConstructor;
  **/
 @NoArgsConstructor
 @Data
-public class HuaNongCrawlerDocumentsPrintResponse {
+public class HuaNongCrawlerDocumentsPrintResponse implements HuaNongHeadResponse{
+
+    @Serial
+    private static final long serialVersionUID = -329060115522620265L;
 
     @JsonProperty("fileName")
     private String fileName;
@@ -20,34 +25,6 @@ public class HuaNongCrawlerDocumentsPrintResponse {
     private String fileUrl;
 
     @JsonProperty("head")
-    private HeadDTO head;
-
-    @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;
+    private HuaNongCrawlerBaseResponseHead head;
 
-        @JsonProperty("sign")
-        private String sign;
-    }
 }

+ 5 - 2
tenant/insurance/quotation-huanong/src/main/java/com/jzg/quotation/huanong/crawler/entity/response/HuaNongCrawlerFindBusinessesResponse.java

@@ -4,17 +4,20 @@ import com.fasterxml.jackson.annotation.JsonProperty;
 import lombok.Data;
 import lombok.NoArgsConstructor;
 
+import java.io.Serial;
 import java.util.List;
 
 /**
- * @version
  * @description: 华农财险 投保单状态查询 响应
  * @author: wenks
  * @date: 2025/3/25 10:02
  **/
 @NoArgsConstructor
 @Data
-public class HuaNongCrawlerFindBusinessesResponse {
+public class HuaNongCrawlerFindBusinessesResponse implements HuaNongHeadResponse{
+
+    @Serial
+    private static final long serialVersionUID = -4673462603962561921L;
 
     @JsonProperty("business")
     private List<BusinessDTO> business;

+ 5 - 2
tenant/insurance/quotation-huanong/src/main/java/com/jzg/quotation/huanong/crawler/entity/response/HuaNongCrawlerFtpDownloadResponse.java

@@ -5,17 +5,20 @@ import com.fasterxml.jackson.annotation.JsonProperty;
 import lombok.Data;
 import lombok.NoArgsConstructor;
 
+import java.io.Serial;
 import java.util.List;
 
 /**
- * @version
  * @description: 华农财险 下载保单
  * @author: wenks
  * @date: 2025/3/25 9:41
  **/
 @NoArgsConstructor
 @Data
-public class HuaNongCrawlerFtpDownloadResponse {
+public class HuaNongCrawlerFtpDownloadResponse implements HuaNongHeadResponse{
+
+    @Serial
+    private static final long serialVersionUID = 5993537141569990809L;
 
     @JsonProperty("dowloadURL")
     private List<DowloadURLDTO> dowloadURL;

+ 5 - 1
tenant/insurance/quotation-huanong/src/main/java/com/jzg/quotation/huanong/crawler/entity/response/HuaNongCrawlerLoginResponse.java

@@ -4,6 +4,7 @@ import com.fasterxml.jackson.annotation.JsonProperty;
 import lombok.Data;
 import lombok.NoArgsConstructor;
 
+import java.io.Serial;
 import java.util.List;
 
 /**
@@ -13,7 +14,10 @@ import java.util.List;
  **/
 @NoArgsConstructor
 @Data
-public class HuaNongCrawlerLoginResponse {
+public class HuaNongCrawlerLoginResponse implements HuaNongHeadResponse {
+
+    @Serial
+    private static final long serialVersionUID = -3099838282056091123L;
 
     @JsonProperty("carOwnerQiTaPower")
     private String carOwnerQiTaPower;

+ 6 - 2
tenant/insurance/quotation-huanong/src/main/java/com/jzg/quotation/huanong/crawler/entity/response/HuaNongCrawlerModelsQueryResponse.java

@@ -5,6 +5,7 @@ import com.jzg.quotation.commons.filter.CarModelsFilter;
 import lombok.Data;
 import lombok.NoArgsConstructor;
 
+import java.io.Serial;
 import java.util.List;
 
 /**
@@ -14,7 +15,10 @@ import java.util.List;
  **/
 @NoArgsConstructor
 @Data
-public class HuaNongCrawlerModelsQueryResponse {
+public class HuaNongCrawlerModelsQueryResponse implements HuaNongHeadResponse {
+
+    @Serial
+    private static final long serialVersionUID = -6002742614927679583L;
 
     @JsonProperty("carModel")
     private List<CarModelDTO> carModel;
@@ -53,7 +57,7 @@ public class HuaNongCrawlerModelsQueryResponse {
 
         @NoArgsConstructor
         @Data
-        public static class FullCarDataDTO{
+        public static class FullCarDataDTO {
 
             @JsonProperty("absFlag")
             private String absFlag;

+ 6 - 1
tenant/insurance/quotation-huanong/src/main/java/com/jzg/quotation/huanong/crawler/entity/response/HuaNongCrawlerNewImageQueryResponse.java

@@ -4,6 +4,8 @@ import com.fasterxml.jackson.annotation.JsonProperty;
 import lombok.Data;
 import lombok.NoArgsConstructor;
 
+import java.io.Serial;
+
 
 /**
  * @description: 大家财险 上传影像 跳转页面
@@ -12,7 +14,10 @@ import lombok.NoArgsConstructor;
  **/
 @NoArgsConstructor
 @Data
-public class HuaNongCrawlerNewImageQueryResponse {
+public class HuaNongCrawlerNewImageQueryResponse implements HuaNongHeadResponse {
+
+    @Serial
+    private static final long serialVersionUID = -894572684497594836L;
 
     @JsonProperty("data")
     private String data;

+ 5 - 2
tenant/insurance/quotation-huanong/src/main/java/com/jzg/quotation/huanong/crawler/entity/response/HuaNongCrawlerQuotedPriceResponse.java

@@ -4,17 +4,20 @@ import com.fasterxml.jackson.annotation.JsonProperty;
 import lombok.Data;
 import lombok.NoArgsConstructor;
 
+import java.io.Serial;
 import java.util.List;
 
 /**
- * @version
  * @description: 华农财险 保费计算 响应
  * @author: wenks
  * @date: 2025/3/20 11:24
  **/
 @NoArgsConstructor
 @Data
-public class HuaNongCrawlerQuotedPriceResponse {
+public class HuaNongCrawlerQuotedPriceResponse implements HuaNongHeadResponse{
+
+    @Serial
+    private static final long serialVersionUID = -5612292812326405141L;
 
     @JsonProperty("head")
     private HuaNongCrawlerBaseResponseHead head;

+ 5 - 2
tenant/insurance/quotation-huanong/src/main/java/com/jzg/quotation/huanong/crawler/entity/response/HuaNongCrawlerSaveResponse.java

@@ -4,18 +4,21 @@ import com.fasterxml.jackson.annotation.JsonProperty;
 import lombok.Data;
 import lombok.NoArgsConstructor;
 
+import java.io.Serial;
 import java.util.List;
 
 
 /**
- * @version
  * @description: 华农财险 保存订单 响应
  * @author: wenks
  * @date: 2025/3/20 11:24
  **/
 @NoArgsConstructor
 @Data
-public class HuaNongCrawlerSaveResponse {
+public class HuaNongCrawlerSaveResponse implements HuaNongHeadResponse {
+
+    @Serial
+    private static final long serialVersionUID = 7498309693697089048L;
 
     @JsonProperty("businessData")
     private BusinessDataDTO businessData;

+ 5 - 2
tenant/insurance/quotation-huanong/src/main/java/com/jzg/quotation/huanong/crawler/entity/response/HuaNongCrawlerSubmitResponse.java

@@ -4,17 +4,20 @@ import com.fasterxml.jackson.annotation.JsonProperty;
 import lombok.Data;
 import lombok.NoArgsConstructor;
 
+import java.io.Serial;
 import java.util.List;
 
 /**
- * @version
  * @description: 华农财险 提交核保 响应
  * @author: wenks
  * @date: 2025/3/20 11:24
  **/
 @NoArgsConstructor
 @Data
-public class HuaNongCrawlerSubmitResponse {
+public class HuaNongCrawlerSubmitResponse implements HuaNongHeadResponse {
+
+    @Serial
+    private static final long serialVersionUID = 8087394692131380596L;
 
     @JsonProperty("appliResult")
     private List<AppliResultDTO> appliResult;

+ 5 - 2
tenant/insurance/quotation-huanong/src/main/java/com/jzg/quotation/huanong/crawler/entity/response/HuaNongCrawlerUserTypeAndProxyInfoQueryResponse.java

@@ -4,17 +4,20 @@ import com.fasterxml.jackson.annotation.JsonProperty;
 import lombok.Data;
 import lombok.NoArgsConstructor;
 
+import java.io.Serial;
 import java.util.List;
 
 /**
- * @version
  * @description: 华农财险 渠道类型和代理信息 响应
  * @author: wenks
  * @date: 2025/3/20 11:25
  **/
 @NoArgsConstructor
 @Data
-public class HuaNongCrawlerUserTypeAndProxyInfoQueryResponse {
+public class HuaNongCrawlerUserTypeAndProxyInfoQueryResponse implements HuaNongHeadResponse {
+
+    @Serial
+    private static final long serialVersionUID = -3010491639092019154L;
 
     @JsonProperty("agentInfoList")
     private List<AgentInfoListDTO> agentInfoList;

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

@@ -4,6 +4,8 @@ import com.fasterxml.jackson.annotation.JsonProperty;
 import lombok.Data;
 import lombok.NoArgsConstructor;
 
+import java.io.Serial;
+
 
 /**
  * @description: 华农财险 验证码 响应
@@ -12,7 +14,10 @@ import lombok.NoArgsConstructor;
  **/
 @NoArgsConstructor
 @Data
-public class HuaNongCrawlerVerificationCodeResponse {
+public class HuaNongCrawlerVerificationCodeResponse implements HuaNongHeadResponse {
+
+    @Serial
+    private static final long serialVersionUID = -1067345386688802815L;
 
     @JsonProperty("captchaKey")
     private String captchaKey;

+ 19 - 0
tenant/insurance/quotation-huanong/src/main/java/com/jzg/quotation/huanong/crawler/entity/response/HuaNongHeadResponse.java

@@ -0,0 +1,19 @@
+package com.jzg.quotation.huanong.crawler.entity.response;
+
+import java.io.Serializable;
+
+/**
+ * @description: 华农响应头
+ * @author: wenks
+ * @date: 2025/6/18 17:41
+ **/
+public interface HuaNongHeadResponse extends Serializable {
+
+    /**
+     * 获取响应head
+     *
+     * @return head
+     */
+    HuaNongCrawlerBaseResponseHead getHead();
+
+}

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

@@ -32,7 +32,7 @@ public class HuaNongCrawlerProperties {
     /**
      * 非车险保单地址
      */
-    private String DocumentsPrintUrl;
+    private String documentsPrintUrl;
     /**
      * 替换的保单下载地址
      */

+ 8 - 0
tenant/insurance/quotation-huanong/src/main/java/com/jzg/quotation/huanong/crawler/service/HuaNongCrawlerGetToken.java

@@ -1,6 +1,8 @@
 package com.jzg.quotation.huanong.crawler.service;
 
 
+import org.redisson.api.RMap;
+
 public interface HuaNongCrawlerGetToken {
 
     /**
@@ -12,4 +14,10 @@ public interface HuaNongCrawlerGetToken {
      */
     String getToken(String username, String password);
 
+
+    /**
+     * 获取登录信息
+     */
+    RMap<String, Object> getAuthorization(String username, String password);
+
 }

+ 5 - 3
tenant/insurance/quotation-huanong/src/main/java/com/jzg/quotation/huanong/crawler/service/HuaNongCrawlerQuoteProcessService.java

@@ -2,7 +2,7 @@ package com.jzg.quotation.huanong.crawler.service;
 
 import com.jzg.commons.entity.quote.vo.image.InsuranceImageVo;
 import com.jzg.quotation.huanong.crawler.entity.HuaNongCrawlerConfigureParameters;
-import com.jzg.quotation.huanong.crawler.entity.request.HuaNongCrawlerQuotedPriceRequest;
+import com.jzg.quotation.huanong.crawler.entity.request.HuaNongCrawlerQuotedPriceRequestRequest;
 
 import java.util.List;
 
@@ -23,13 +23,15 @@ public interface HuaNongCrawlerQuoteProcessService {
      * @param huaNongCrawlerConfigureParameters 配置信息
      * @param username                          用户名
      * @param token                             token
+     * @param loginComCode                      登录机构编码
      */
-    HuaNongCrawlerQuotedPriceRequest.BusinessDataDTO.SaleInfoDTO attributionInformation(HuaNongCrawlerConfigureParameters huaNongCrawlerConfigureParameters, String username, String token);
+    HuaNongCrawlerQuotedPriceRequestRequest.BusinessDataDTO.SaleInfoDTO attributionInformation(HuaNongCrawlerConfigureParameters huaNongCrawlerConfigureParameters, String username, String token, String loginComCode);
 
     /**
      * 上传影像
+     *
      * @param imageVoList 影像列表
-     * @param token 登录 token
+     * @param token       登录 token
      */
     void uploadImage(List<InsuranceImageVo> imageVoList, String token);
 

+ 35 - 6
tenant/insurance/quotation-huanong/src/main/java/com/jzg/quotation/huanong/crawler/service/impl/HuaNongCrawlerGetTokenImpl.java

@@ -1,12 +1,18 @@
 package com.jzg.quotation.huanong.crawler.service.impl;
 
 
+import com.jzg.commons.exception.SystemException;
 import com.jzg.commons.util.StringUtils;
 import com.jzg.quotation.huanong.crawler.component.HuaNongCrawlerCacheComponent;
 import com.jzg.quotation.huanong.crawler.service.HuaNongCrawlerGetToken;
 import com.jzg.quotation.huanong.crawler.service.HuaNongCrawlerQuoteProcessService;
 import lombok.RequiredArgsConstructor;
+import org.redisson.api.RMap;
 import org.springframework.stereotype.Service;
+import org.springframework.util.ObjectUtils;
+
+import java.util.function.Predicate;
+import java.util.function.Supplier;
 
 @Service
 @RequiredArgsConstructor
@@ -18,13 +24,36 @@ public class HuaNongCrawlerGetTokenImpl implements HuaNongCrawlerGetToken {
 
     @Override
     public String getToken(String username, String password) {
-        String token = huaNongCrawlerCacheComponent.getToken(username);
-        if(StringUtils.hasText(token)) {
-            return token;
-        }
-        huaNongCrawlerQuoteProcessService.login(username, password, false);
-        return huaNongCrawlerCacheComponent.getToken(username);
+        return getAuthData(username, password,
+                () -> huaNongCrawlerCacheComponent.getToken(username),
+                StringUtils::hasText);
+    }
+
 
+    @Override
+    public RMap<String, Object> getAuthorization(String username, String password) {
+        return getAuthData(username, password,
+                () -> huaNongCrawlerCacheComponent.getAuthorization(username),
+                auth -> !ObjectUtils.isEmpty(auth));
     }
 
+    private <T> T getAuthData(String username, String password,
+                              Supplier<T> cacheSupplier,
+                              Predicate<T> validator) {
+        try {
+            T data = cacheSupplier.get();
+            if (validator.test(data)) {
+                return data;
+            }
+            huaNongCrawlerQuoteProcessService.login(username, password, false);
+            T newData = cacheSupplier.get();
+            if (!validator.test(newData)) {
+                throw new SystemException("登录后无法获取有效的身份验证数据");
+            }
+            return newData;
+        } catch (Exception e) {
+            throw new SystemException("身份信息验证失败:" + e.getMessage());
+        }
+
+    }
 }

+ 28 - 16
tenant/insurance/quotation-huanong/src/main/java/com/jzg/quotation/huanong/crawler/service/impl/HuaNongCrawlerQuoteProcessServiceImpl.java

@@ -1,8 +1,8 @@
 package com.jzg.quotation.huanong.crawler.service.impl;
 
+import com.jzg.commons.entity.quote.vo.image.InsuranceImageVo;
 import com.jzg.commons.exception.SystemException;
 import com.jzg.quotation.commons.component.DistributedLockUtil;
-import com.jzg.commons.entity.quote.vo.image.InsuranceImageVo;
 import com.jzg.quotation.commons.service.ExteriorUtilsRequest;
 import com.jzg.quotation.huanong.crawler.component.HuaNongCrawlerCacheComponent;
 import com.jzg.quotation.huanong.crawler.component.HuaNongCrawlerRequestComponent;
@@ -16,6 +16,7 @@ import org.springframework.http.HttpHeaders;
 import org.springframework.stereotype.Service;
 
 import java.io.File;
+import java.util.Collections;
 import java.util.List;
 import java.util.Map;
 import java.util.Optional;
@@ -62,12 +63,12 @@ public class HuaNongCrawlerQuoteProcessServiceImpl implements HuaNongCrawlerQuot
         for (int i = 0; i < LOGIN_RETRY_COUNT; i++) {
             HttpHeaders httpHeaders = new HttpHeaders();
             // 验证码
-            HuaNongCrawlerVerificationCodeRequest huaNongCrawlerVerificationCodeRequest = new HuaNongCrawlerVerificationCodeRequest();
+            HuaNongCrawlerVerificationCodeRequestRequest huaNongCrawlerVerificationCodeRequest = new HuaNongCrawlerVerificationCodeRequestRequest();
             HuaNongCrawlerVerificationCodeResponse huaNongCrawlerVerificationCodeResponse = huaNongCrawlerRequestComponent.verificationCode(huaNongCrawlerVerificationCodeRequest, httpHeaders);
             // 识别验证码
             String captcha = exteriorUtilsRequest.captchaIdentify(huaNongCrawlerVerificationCodeResponse.getImageStream());
             // 登录
-            HuaNongCrawlerLoginRequest huaNongCrawlerLoginRequest = new HuaNongCrawlerLoginRequest(username, password, huaNongCrawlerVerificationCodeResponse.getCaptchaKey(), captcha);
+            HuaNongCrawlerLoginRequestRequest huaNongCrawlerLoginRequest = new HuaNongCrawlerLoginRequestRequest(username, password, huaNongCrawlerVerificationCodeResponse.getCaptchaKey(), captcha);
             HuaNongCrawlerLoginResponse login = huaNongCrawlerRequestComponent.login(huaNongCrawlerLoginRequest, httpHeaders);
             if (isLoginSuccessful(login)) {
                 huaNongCrawlerCacheComponent.cacheLoginInfo(login, username);
@@ -92,45 +93,56 @@ public class HuaNongCrawlerQuoteProcessServiceImpl implements HuaNongCrawlerQuot
     }
 
     @Override
-    public HuaNongCrawlerQuotedPriceRequest.BusinessDataDTO.SaleInfoDTO attributionInformation(HuaNongCrawlerConfigureParameters huaNongCrawlerConfigureParameters, String username, String token) {
+    public HuaNongCrawlerQuotedPriceRequestRequest.BusinessDataDTO.SaleInfoDTO attributionInformation(HuaNongCrawlerConfigureParameters parameters, String username, String token, String loginComCode) {
         HttpHeaders httpHeaders = new HttpHeaders();
-
         // 归属机构
-        HuaNongCrawlerComInfoQueryRequest huaNongCrawlerComInfoQueryRequest = new HuaNongCrawlerComInfoQueryRequest(huaNongCrawlerConfigureParameters.getLoginComCode(), token);
+        HuaNongCrawlerComInfoQueryRequestRequest huaNongCrawlerComInfoQueryRequest = new HuaNongCrawlerComInfoQueryRequestRequest(loginComCode, token);
         HuaNongCrawlerComInfoQueryResponse huaNongCrawlerComInfoQueryResponse = huaNongCrawlerRequestComponent.comInfoQuery(huaNongCrawlerComInfoQueryRequest, httpHeaders);
         List<HuaNongCrawlerComInfoQueryResponse.ComListDTO> comList = huaNongCrawlerComInfoQueryResponse.getComList();
         Map<String, HuaNongCrawlerComInfoQueryResponse.ComListDTO> com = comList.stream()
                 .collect(Collectors.toMap(HuaNongCrawlerComInfoQueryResponse.ComListDTO::getComCode, x -> x));
 
         // 代理人信息
-        HuaNongCrawlerUserTypeAndProxyInfoQueryRequest huaNongCrawlerUserTypeAndProxyInfoQueryRequest = new HuaNongCrawlerUserTypeAndProxyInfoQueryRequest(username, token, huaNongCrawlerComInfoQueryRequest);
-        HuaNongCrawlerUserTypeAndProxyInfoQueryResponse huaNongCrawlerUserTypeAndProxyInfoQueryResponse = huaNongCrawlerRequestComponent.userTypeAndProxyInfoQuery(huaNongCrawlerUserTypeAndProxyInfoQueryRequest, httpHeaders);
+        HuaNongCrawlerUserTypeAndProxyInfoQueryRequestRequest userTypeAndProxyInfoQueryRequest = new HuaNongCrawlerUserTypeAndProxyInfoQueryRequestRequest(username, token, loginComCode, parameters.getComCode());
+        HuaNongCrawlerUserTypeAndProxyInfoQueryResponse userTypeAndProxyInfoQueryResponse = huaNongCrawlerRequestComponent.userTypeAndProxyInfoQuery(userTypeAndProxyInfoQueryRequest, httpHeaders);
 
         //代理人
-        List<HuaNongCrawlerUserTypeAndProxyInfoQueryResponse.AgentInfoListDTO> agentInfoList = huaNongCrawlerUserTypeAndProxyInfoQueryResponse.getAgentInfoList();
+        List<HuaNongCrawlerUserTypeAndProxyInfoQueryResponse.AgentInfoListDTO> agentInfoList = userTypeAndProxyInfoQueryResponse.getAgentInfoList();
         Map<String, HuaNongCrawlerUserTypeAndProxyInfoQueryResponse.AgentInfoListDTO> agentInfoListDTOMap = agentInfoList.stream()
                 .collect(Collectors.toMap(HuaNongCrawlerUserTypeAndProxyInfoQueryResponse.AgentInfoListDTO::getAgentCode, x -> x));
 
         // 协议号
-        List<HuaNongCrawlerUserTypeAndProxyInfoQueryResponse.AgreementListDTO> agreementList = huaNongCrawlerUserTypeAndProxyInfoQueryResponse.getAgreementList();
+        List<HuaNongCrawlerUserTypeAndProxyInfoQueryResponse.AgreementListDTO> agreementList = userTypeAndProxyInfoQueryResponse.getAgreementList();
         Map<String, String> map = agreementList.stream()
                 .collect(Collectors.toMap(HuaNongCrawlerUserTypeAndProxyInfoQueryResponse.AgreementListDTO::getAgreementNo, HuaNongCrawlerUserTypeAndProxyInfoQueryResponse.AgreementListDTO::getAgentCode));
 
         // 业务员
-        List<HuaNongCrawlerUserTypeAndProxyInfoQueryResponse.HandlerListDTO> handlerList = huaNongCrawlerUserTypeAndProxyInfoQueryResponse.getHandlerList();
+        List<HuaNongCrawlerUserTypeAndProxyInfoQueryResponse.HandlerListDTO> handlerList = userTypeAndProxyInfoQueryResponse.getHandlerList();
         Map<String, HuaNongCrawlerUserTypeAndProxyInfoQueryResponse.HandlerListDTO> handler = handlerList.stream()
                 .collect(Collectors.toMap(HuaNongCrawlerUserTypeAndProxyInfoQueryResponse.HandlerListDTO::getHandlerCode, x -> x));
 
-        HuaNongCrawlerComInfoQueryResponse.ComListDTO comListDTO = com.get(huaNongCrawlerConfigureParameters.getComCode());
-        HuaNongCrawlerUserTypeAndProxyInfoQueryResponse.HandlerListDTO handlerListDTO = handler.get(huaNongCrawlerConfigureParameters.getHandlerCode());
-        HuaNongCrawlerUserTypeAndProxyInfoQueryResponse.AgentInfoListDTO agentInfoListDTO = agentInfoListDTOMap.get(map.get(huaNongCrawlerConfigureParameters.getAgreementNo()));
-        return new HuaNongCrawlerQuotedPriceRequest.BusinessDataDTO.SaleInfoDTO(comListDTO, handlerListDTO, agentInfoListDTO, huaNongCrawlerConfigureParameters.getCallerName());
+        // 管理渠道
+        HuaNongCrawlerBaseCodeRequestRequest baseCodeRequest = new HuaNongCrawlerBaseCodeRequestRequest(token, loginComCode, parameters.getComCode(), "CHANNEL_SOURCE");
+        HuaNongCrawlerBaseCodeResponse.BaseInfoDTO baseInfoDTO = huaNongCrawlerRequestComponent.channelSource(baseCodeRequest, httpHeaders, userTypeAndProxyInfoQueryResponse.getChannelSource());
+
+        Map<String, HuaNongCrawlerUserTypeAndProxyInfoQueryResponse.ProducerListDTO> producerMap = Optional.ofNullable(userTypeAndProxyInfoQueryResponse.getProducerList())
+                .orElseGet(Collections::emptyList)
+                .stream()
+                .collect(Collectors.toMap(HuaNongCrawlerUserTypeAndProxyInfoQueryResponse.ProducerListDTO::getProducerName, x->x));
+        HuaNongCrawlerUserTypeAndProxyInfoQueryResponse.ProducerListDTO producerListDTO = producerMap.get(parameters.getProducer());
+
+        HuaNongCrawlerComInfoQueryResponse.ComListDTO comListDTO = com.get(parameters.getComCode());
+        HuaNongCrawlerUserTypeAndProxyInfoQueryResponse.HandlerListDTO handlerListDTO = handler.get(parameters.getHandlerCode());
+        HuaNongCrawlerUserTypeAndProxyInfoQueryResponse.AgentInfoListDTO agentInfoListDTO = agentInfoListDTOMap.get(map.get(parameters.getAgreementNo()));
+        return new HuaNongCrawlerQuotedPriceRequestRequest.BusinessDataDTO.SaleInfoDTO(comListDTO, handlerListDTO, agentInfoListDTO, producerListDTO, baseInfoDTO, parameters.getCallerName());
     }
 
+
+
     @Override
     public void uploadImage(List<InsuranceImageVo> imageVoList, String token) {
         // 跳转上传影像页面
-        HuaNongCrawlerNewImageQueryRequest huaNongCrawlerNewImageQueryRequest = new HuaNongCrawlerNewImageQueryRequest();
+        HuaNongCrawlerNewImageQueryRequestRequest huaNongCrawlerNewImageQueryRequest = new HuaNongCrawlerNewImageQueryRequestRequest();
         String data = huaNongCrawlerRequestComponent.newImageQuery(huaNongCrawlerNewImageQueryRequest, new HttpHeaders());
         // 获取accessToken
         HttpHeaders httpHeaders = new HttpHeaders();

+ 24 - 18
tenant/insurance/quotation-huanong/src/main/java/com/jzg/quotation/huanong/crawler/service/impl/HuaNongCrawlerRequestImpl.java

@@ -4,10 +4,10 @@ import com.jzg.commons.entity.quote.vo.AttributionInformationVo;
 import com.jzg.commons.entity.quote.vo.CarInfoVo;
 import com.jzg.commons.entity.quote.vo.QuoteVo;
 import com.jzg.commons.entity.quote.vo.aggregated.*;
+import com.jzg.commons.entity.quote.vo.base.LoginBase;
 import com.jzg.commons.exception.SystemException;
 import com.jzg.quotation.commons.annotation.QuoteCrawlerService;
 import com.jzg.quotation.commons.constant.InsuranceCode;
-import com.jzg.commons.entity.quote.vo.base.LoginBase;
 import com.jzg.quotation.commons.filter.CarModelsFilterUtils;
 import com.jzg.quotation.commons.standard.conversion.ConfigureParametersConversion;
 import com.jzg.quotation.huanong.crawler.build.HuaNongCrawlerQuoteResultsVoBuild;
@@ -24,6 +24,7 @@ import com.jzg.quotation.huanong.crawler.service.HuaNongCrawlerOrderService;
 import com.jzg.quotation.huanong.crawler.service.HuaNongCrawlerQuoteProcessService;
 import com.jzg.quotation.huanong.crawler.service.HuaNongCrawlerRequest;
 import lombok.RequiredArgsConstructor;
+import org.redisson.api.RMap;
 import org.springframework.http.HttpHeaders;
 
 import java.util.List;
@@ -52,34 +53,38 @@ public class HuaNongCrawlerRequestImpl implements HuaNongCrawlerRequest {
     public QuoteResultsVo quote(QuoteVo quoteVo) {
         HttpHeaders httpHeaders = new HttpHeaders();
         AttributionInformationVo attributionInformationVo = quoteVo.getOrder().getAttributionInformationVo();
-        HuaNongCrawlerConfigureParameters huaNongCrawlerConfigureParameters = ConfigureParametersConversion.conversionEntity(HuaNongCrawlerConfigureParameters.class, attributionInformationVo.getConfigInfo());
-        String token = huaNongCrawlerGetToken.getToken(attributionInformationVo.getUsername(), attributionInformationVo.getPassword());
+        HuaNongCrawlerConfigureParameters parameters = ConfigureParametersConversion.conversionEntity(HuaNongCrawlerConfigureParameters.class, attributionInformationVo.getConfigInfo());
+        RMap<String, Object> authorization = huaNongCrawlerGetToken.getAuthorization(attributionInformationVo.getUsername(), attributionInformationVo.getPassword());
+        String token = (String) authorization.get(HuaNongCrawlerCacheComponent.TOKEN);
+
+        String loginCom = parameters.getLoginCom();
+        String loginComCode = (String) authorization.get(loginCom);
         // 归属信息
-        HuaNongCrawlerQuotedPriceRequest.BusinessDataDTO.SaleInfoDTO saleInfoDTO = huaNongCrawlerQuoteProcessService.attributionInformation(huaNongCrawlerConfigureParameters, attributionInformationVo.getUsername(), token);
-        String loginComCode = huaNongCrawlerConfigureParameters.getLoginComCode();
+        HuaNongCrawlerQuotedPriceRequestRequest.BusinessDataDTO.SaleInfoDTO saleInfoDTO = huaNongCrawlerQuoteProcessService.attributionInformation(parameters, attributionInformationVo.getUsername(), token, loginComCode);
 
         // 车型查询
         CarInfoVo carInfoVo = quoteVo.getCarInfoVo();
-        HuaNongCrawlerModelsQueryRequest huaNongCrawlerModelsQueryRequest = new HuaNongCrawlerModelsQueryRequest(token, loginComCode, carInfoVo);
+        HuaNongCrawlerModelsQueryRequestRequest huaNongCrawlerModelsQueryRequest = new HuaNongCrawlerModelsQueryRequestRequest(token, loginComCode, carInfoVo);
         HuaNongCrawlerModelsQueryResponse huaNongCrawlerModelsQueryResponse = huaNongCrawlerRequestComponent.modelsQuery(huaNongCrawlerModelsQueryRequest, httpHeaders);
         HuaNongCrawlerModelsQueryResponse.CarModelDTO carModelDTO = CarModelsFilterUtils.to(huaNongCrawlerModelsQueryResponse.getCarModel(), carInfoVo);
 
         // 折旧价查询
-        HuaNongCrawlerActualValueRequest huaNongCrawlerActualValueRequest = new HuaNongCrawlerActualValueRequest(token, loginComCode, carModelDTO, carInfoVo);
+        HuaNongCrawlerActualValueRequestRequest huaNongCrawlerActualValueRequest = new HuaNongCrawlerActualValueRequestRequest(token, loginComCode, carModelDTO, carInfoVo);
         String actualValue = huaNongCrawlerRequestComponent.actualValue(huaNongCrawlerActualValueRequest, httpHeaders);
 
         // 保费计算
-        HuaNongCrawlerQuotedPriceRequest huaNongCrawlerQuotedPriceRequest = new HuaNongCrawlerQuotedPriceRequest(token, attributionInformationVo.getUsername(), quoteVo, carModelDTO, huaNongCrawlerConfigureParameters, actualValue);
-        huaNongCrawlerQuotedPriceRequest.getBusinessData().setSaleInfo(saleInfoDTO);
+        HuaNongCrawlerQuotedPriceRequestRequest huaNongCrawlerQuotedPriceRequest
+                = new HuaNongCrawlerQuotedPriceRequestRequest(token, attributionInformationVo.getUsername(), quoteVo, loginComCode, actualValue, parameters, carModelDTO, saleInfoDTO);
+
         HuaNongCrawlerQuotedPriceResponse huaNongCrawlerQuotedPriceResponse = huaNongCrawlerRequestComponent.quotedPrice(huaNongCrawlerQuotedPriceRequest, httpHeaders);
 
         // 保存
-        List<HuaNongCrawlerQuotedPriceRequest.BusinessDataDTO.ContractDTO> contract = huaNongCrawlerQuotedPriceRequest.getBusinessData()
+        List<HuaNongCrawlerQuotedPriceRequestRequest.BusinessDataDTO.ContractDTO> contract = huaNongCrawlerQuotedPriceRequest.getBusinessData()
                 .getContract();
-        List<HuaNongCrawlerQuotedPriceRequest.BusinessDataDTO.ContractAccidentDTO> contractAccident = huaNongCrawlerQuotedPriceRequest.getBusinessData()
+        List<HuaNongCrawlerQuotedPriceRequestRequest.BusinessDataDTO.ContractAccidentDTO> contractAccident = huaNongCrawlerQuotedPriceRequest.getBusinessData()
                 .getContractAccident();
 
-        HuaNongCrawlerSaveRequest huaNongCrawlerSaveRequest = new HuaNongCrawlerSaveRequest(contract, contractAccident, token, loginComCode);
+        HuaNongCrawlerSaveRequestRequest huaNongCrawlerSaveRequest = new HuaNongCrawlerSaveRequestRequest(contract, contractAccident, token, loginComCode);
         huaNongCrawlerRequestComponent.save(huaNongCrawlerSaveRequest, httpHeaders);
 
         return HuaNongCrawlerQuoteResultsVoBuild.buildQuoteResultsVo(quoteVo.getOrder()
@@ -97,7 +102,7 @@ public class HuaNongCrawlerRequestImpl implements HuaNongCrawlerRequest {
         HuaNongCrawlerOrder huaNongCrawlerOrder = huaNongCrawlerOrderService.getById(underwritingVo.getOrder()
                 .getOrdersNo());
         // 提交核保
-        HuaNongCrawlerSubmitRequest huaNongCrawlerSubmitRequest = new HuaNongCrawlerSubmitRequest(huaNongCrawlerOrder, token, huaNongCrawlerConfigureParameters.getComCode());
+        HuaNongCrawlerSubmitRequestRequest huaNongCrawlerSubmitRequest = new HuaNongCrawlerSubmitRequestRequest(huaNongCrawlerOrder, token, huaNongCrawlerConfigureParameters.getComCode());
         HuaNongCrawlerSubmitResponse submit = huaNongCrawlerRequestComponent.submit(huaNongCrawlerSubmitRequest, new HttpHeaders());
         UnderwritingResultsVo underwritingResultsVo = new UnderwritingResultsVo();
         return underwritingResultsVo;
@@ -105,7 +110,8 @@ public class HuaNongCrawlerRequestImpl implements HuaNongCrawlerRequest {
 
     @Override
     public PaymentLinkResultsVo getPaymentLink(PaymentLinkVo paymentLinkVo) {
-        HuaNongCrawlerOrder huaNongCrawlerOrder = huaNongCrawlerOrderService.getById(paymentLinkVo.getOrder().getOrdersNo());
+        HuaNongCrawlerOrder huaNongCrawlerOrder = huaNongCrawlerOrderService.getById(paymentLinkVo.getOrder()
+                .getOrdersNo());
         if (!huaNongCrawlerOrder.isApproved()) {
             throw new SystemException("核保未通过不支持调取支付二维码");
         }
@@ -134,7 +140,7 @@ public class HuaNongCrawlerRequestImpl implements HuaNongCrawlerRequest {
         // 获取订单信息
         HuaNongCrawlerOrder order = huaNongCrawlerOrderService.getById(downloadPolicyVo.getOrder().getOrdersNo());
         HttpHeaders httpHeaders = new HttpHeaders();
-        HuaNongCrawlerFtpDownloadRequest huaNongCrawlerFtpDownloadRequest = new HuaNongCrawlerFtpDownloadRequest();
+        HuaNongCrawlerFtpDownloadRequestRequest huaNongCrawlerFtpDownloadRequest = new HuaNongCrawlerFtpDownloadRequestRequest();
         // 交强保单 标志
         Optional.ofNullable(order.getCiPolicyNo()).ifPresent(ciPolicyNo -> {
             // 交强保单
@@ -151,7 +157,7 @@ public class HuaNongCrawlerRequestImpl implements HuaNongCrawlerRequest {
         order.getNiInfos().forEach(niInfo -> {
             Optional.ofNullable(niInfo.getNiPolicyNo())
                     .ifPresent(x -> {
-                                HuaNongCrawlerDocumentsPrintRequest huaNongCrawlerDocumentsPrintRequest = new HuaNongCrawlerDocumentsPrintRequest();
+                                HuaNongCrawlerDocumentsPrintRequestRequest huaNongCrawlerDocumentsPrintRequest = new HuaNongCrawlerDocumentsPrintRequestRequest();
                                 huaNongCrawlerRequestComponent.documentsPrint(huaNongCrawlerDocumentsPrintRequest, httpHeaders);
                             }
                     );
@@ -160,14 +166,14 @@ public class HuaNongCrawlerRequestImpl implements HuaNongCrawlerRequest {
     }
 
     @Override
-    public OrderStatusResultVo queryOrderState(OrderStatusVo orderStatusVo){
+    public OrderStatusResultVo queryOrderState(OrderStatusVo orderStatusVo) {
         AttributionInformationVo attributionInformationVo = orderStatusVo.getOrder().getAttributionInformationVo();
         HuaNongCrawlerConfigureParameters huaNongCrawlerConfigureParameters = ConfigureParametersConversion.conversionEntity(HuaNongCrawlerConfigureParameters.class, attributionInformationVo.getConfigInfo());
         String token = huaNongCrawlerGetToken.getToken(attributionInformationVo.getUsername(), attributionInformationVo.getPassword());
         HttpHeaders httpHeaders = new HttpHeaders();
         HuaNongCrawlerOrder order = huaNongCrawlerOrderService.getById(orderStatusVo.getOrder().getOrdersNo());
 
-        HuaNongCrawlerFindBusinessesRequest huaNongCrawlerFindBusinessesRequest = new HuaNongCrawlerFindBusinessesRequest();
+        HuaNongCrawlerFindBusinessesRequestRequest huaNongCrawlerFindBusinessesRequest = new HuaNongCrawlerFindBusinessesRequestRequest();
         huaNongCrawlerRequestComponent.findBusinesses(huaNongCrawlerFindBusinessesRequest, httpHeaders);
         return null;
     }

+ 15 - 18
tenant/insurance/quotation-huanong/src/main/java/com/jzg/quotation/huanong/crawler/utils/RequestEncryptor.java

@@ -6,6 +6,7 @@ import cn.hutool.crypto.asymmetric.KeyType;
 import cn.hutool.crypto.asymmetric.RSA;
 import com.alibaba.fastjson2.JSON;
 import com.alibaba.fastjson2.JSONObject;
+import com.jzg.quotation.huanong.crawler.entity.request.HuaNongCrawlerRequestBaseHead;
 
 /**
  * @description: 华农财险 加盐
@@ -18,25 +19,21 @@ public class RequestEncryptor {
 
     private static final RSA rsa = new RSA(null, PUBLIC_KEY);
 
-    public static String processRequest(JSONObject request) {
+    public static void 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();
+        HuaNongCrawlerRequestBaseHead headers = (HuaNongCrawlerRequestBaseHead) request.get("head");
+        request.put("head", "");
+        // 生成JSON并处理
+        String jsonStr = JSON.toJSONString(request).trim();
+        String base64Data = Base64.encode(jsonStr);
+        // 计算MD5(带Token盐值)
+        String token = headers.getToken();
+        String md5Hash = SecureUtil.md5().digestHex(base64Data + token);
+        // RSA加密签名
+        String encryptedSign = rsa.encryptBase64(md5Hash, KeyType.PublicKey);
+        // 还原请求头并添加签名
+        headers.setSign(encryptedSign);
+        request.put("head", headers);
     }
 
 }

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

@@ -6,5 +6,7 @@ import com.jzg.commons.entity.orders.po.InsOrdersTax;
 import com.jzg.commons.entity.quote.vo.QuoteVo;
 
 public interface InsOrdersTaxService extends IService<InsOrdersTax> {
+
     void createTax(InsOrders insOrders, QuoteVo quoteVo);
+
 }

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

@@ -394,8 +394,12 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
     private CustomerInfoVo mapCarUserInfoToCustomerInfo(InsOrdersCarUserInfo carUserInfo) {
         DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
         CustomerInfoVo customerInfoVo = BeanUtil.copyProperties(carUserInfo, CustomerInfoVo.class);
-        customerInfoVo.setIdentifyValidDate(carUserInfo.getIdentifyValidDate().format(formatter));
-        customerInfoVo.setIdentifyValidEndDate(carUserInfo.getIdentifyValidEndDate().format(formatter));
+        if(Objects.nonNull(carUserInfo.getIdentifyValidDate())) {
+            customerInfoVo.setIdentifyValidDate(carUserInfo.getIdentifyValidDate().format(formatter));
+        }
+        if(Objects.nonNull(carUserInfo.getIdentifyValidEndDate())) {
+            customerInfoVo.setIdentifyValidEndDate(carUserInfo.getIdentifyValidEndDate().format(formatter));
+        }
         customerInfoVo.setProperty(customerInfoVo.getPersonType());
         return customerInfoVo;
     }

+ 4 - 1
tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/service/impl/InsOrdersTaxServiceImpl.java

@@ -10,10 +10,13 @@ import org.springframework.stereotype.Service;
 
 @Service
 public class InsOrdersTaxServiceImpl extends ServiceImpl<InsOrdersTaxMapper, InsOrdersTax> implements InsOrdersTaxService {
-    public void createTax(InsOrders insOrders,QuoteVo quoteVo) {
+
+    @Override
+    public void createTax(InsOrders insOrders, QuoteVo quoteVo) {
         InsOrdersTax insOrdersTax = new InsOrdersTax();
         insOrdersTax.setOrderNo(insOrders.getId());
         insOrdersTax.setTaxRelifFlag(Integer.parseInt(quoteVo.getVehicleAndVesselTaxVo().getTaxRelifFlag()));
         this.save(insOrdersTax);
     }
+
 }

+ 8 - 1
tenant/organization/src/main/java/com/jzg/organization/service/impl/PtlSchemeServiceImpl.java

@@ -308,8 +308,15 @@ public class PtlSchemeServiceImpl extends ServiceImpl<PtlSchemeMapper, PtlScheme
 
     @Override
     public List<PtlAgreementInsCompanyVo> ruleFilterCompany(SchemeRuleFilterVo schemeRuleFilterVo){
+        //如果用户租户code为App  则使用参数传来的租户code
+        String systemCode = "";
+        if("APP".equals(baseController.getUserSystemCode())){
+            systemCode = baseController.getAppSystemCode();
+        }else{
+            systemCode = baseController.getUserSystemCode();
+        }
         //根据权限获取所有保司
-        HttpResult<List<EsmInsCompany>> companyListResult = esmInsCompanyClient.getUserCompany(baseController.getUserSystemCode());
+        HttpResult<List<EsmInsCompany>> companyListResult = esmInsCompanyClient.getUserCompany(systemCode);
         AssertionUtils.isFail(companyListResult.getCode()!=200,companyListResult.getMsg());
         List<EsmInsCompany> companyList = companyListResult.getData();
         //根据基本规则 能源、车辆类型、使用性质获取方案

+ 3 - 3
tenant/organization/src/main/java/com/jzg/organization/service/impl/SysUserServiceImpl.java

@@ -243,7 +243,7 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
                 .eq(SysUserJzgInfo::getIsEnable,0)
         ;
 
-        queryWrapper1.eq(SysUserJzgInfo::getStatus,4); // 未审核
+        queryWrapper1.eq(SysUserJzgInfo::getStatus, UserState.UserStateEnum.COMPANY_REVIEW_ING.getValue()); // 未审核
         Long noCount = sysUserJzgInfoService.count(queryWrapper1);
 
         LambdaQueryWrapper<SysUserJzgInfo> queryWrapper2 = new LambdaQueryWrapper<>();
@@ -253,7 +253,7 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
                 .eq(SysUserJzgInfo::getIsEnable,0)
         ;
 
-        queryWrapper2.eq(SysUserJzgInfo::getStatus,6); // 审核失败
+        queryWrapper2.eq(SysUserJzgInfo::getStatus,UserState.UserStateEnum.COMPANY_REVIEW_FAILED.getValue()); // 审核失败
         Long failCount = sysUserJzgInfoService.count(queryWrapper2);
         auditCountVo.setNoAuditCount(noCount);
         auditCountVo.setFailAuditCount(failCount);
@@ -309,8 +309,8 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
             BeanUtils.copyProperties(sysUserVo, sysUserJzgInfo);
             sysUserJzgInfo.setId(IdGenerate.nextId());
             sysUserJzgInfo.setUserId(sysUser1.getId());
-            sysUserJzgInfoId = sysUserJzgInfo.getId();
             sysUserId = sysUser1.getId();
+            sysUserJzgInfo.setStatus(UserState.UserStateEnum.ALREADY_EMPLOYEE.getValue());
             sysUserJzgInfoService.save(sysUserJzgInfo);
             if (sysUserVo.getOrganizationId() != null && !sysUserVo.getOrganizationId().equals("")) {
                 saveOrganization(sysUserVo.getOrganizationId(), sysUserJzgInfo.getUserId());

+ 1 - 1
tenant/organization/src/main/resources/mapper/SysUserJzgInfoMapper.xml

@@ -74,7 +74,7 @@
             and suji.dept_id = #{sysUserInfoListVo.deptId}
         </if>
         <if test="sysUserInfoListVo.deptName != null and sysUserInfoListVo.deptName != ''">
-            and sd.name like concat('%',#{sysUserInfoListVo.deptName},'%')
+            and so.name like concat('%',#{sysUserInfoListVo.deptName},'%')
         </if>
 
         <if test="sysUserInfoListVo.typeAttr != null and sysUserInfoListVo.typeAttr != ''">