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

大家财险增加报价过程参数

wks 1 год назад
Родитель
Сommit
5e3b3ad5b4
78 измененных файлов с 840 добавлено и 373 удалено
  1. 2 2
      tenant/insurance/quotation-commons/pom.xml
  2. 35 4
      tenant/insurance/quotation-commons/src/main/java/com/jzg/quotation/commons/component/RequestComponent.java
  3. 13 7
      tenant/insurance/quotation-commons/src/main/java/com/jzg/quotation/commons/config/WebClientConfig.java
  4. 6 1
      tenant/insurance/quotation-commons/src/main/java/com/jzg/quotation/commons/constant/CacheConstant.java
  5. 11 26
      tenant/insurance/quotation-commons/src/main/java/com/jzg/quotation/commons/constant/InsuranceTypeCorrespondence.java
  6. 0 1
      tenant/insurance/quotation-commons/src/main/java/com/jzg/quotation/commons/constant/enums/base/ExpenseRequestUrl.java
  7. 0 1
      tenant/insurance/quotation-commons/src/main/java/com/jzg/quotation/commons/constant/enums/base/ProductsType.java
  8. 0 1
      tenant/insurance/quotation-commons/src/main/java/com/jzg/quotation/commons/constant/enums/base/QuoteRuleCategory.java
  9. 1 2
      tenant/insurance/quotation-commons/src/main/java/com/jzg/quotation/commons/constant/enums/quote/CarKindCode.java
  10. 0 1
      tenant/insurance/quotation-commons/src/main/java/com/jzg/quotation/commons/constant/enums/quote/CarNatureCode.java
  11. 0 1
      tenant/insurance/quotation-commons/src/main/java/com/jzg/quotation/commons/constant/enums/quote/EnergyTypeCode.java
  12. 0 1
      tenant/insurance/quotation-commons/src/main/java/com/jzg/quotation/commons/constant/enums/quote/LicenseColorCode.java
  13. 0 1
      tenant/insurance/quotation-commons/src/main/java/com/jzg/quotation/commons/constant/enums/quote/PropertyCode.java
  14. 0 1
      tenant/insurance/quotation-commons/src/main/java/com/jzg/quotation/commons/constant/enums/quote/VehicleUseCode.java
  15. 0 2
      tenant/insurance/quotation-commons/src/main/java/com/jzg/quotation/commons/entity/vo/aggregated/InsuranceUploadImageVo.java
  16. 1 1
      tenant/insurance/quotation-commons/src/main/java/com/jzg/quotation/commons/entity/vo/aggregated/QuoteResultsVo.java
  17. 6 0
      tenant/insurance/quotation-commons/src/main/java/com/jzg/quotation/commons/entity/vo/base/OrderBase.java
  18. 0 1
      tenant/insurance/quotation-commons/src/main/java/com/jzg/quotation/commons/entity/vo/quote/AccidentalDrivingVo.java
  19. 1 0
      tenant/insurance/quotation-commons/src/main/java/com/jzg/quotation/commons/entity/vo/quote/CarInfoVo.java
  20. 24 0
      tenant/insurance/quotation-commons/src/main/java/com/jzg/quotation/commons/entity/vo/quote/CustomerInfoVo.java
  21. 4 2
      tenant/insurance/quotation-commons/src/main/java/com/jzg/quotation/commons/entity/vo/quote/ExpenseFactor.java
  22. 10 4
      tenant/insurance/quotation-commons/src/main/java/com/jzg/quotation/commons/filter/CarModelsFilterUtils.java
  23. 0 1
      tenant/insurance/quotation-commons/src/main/java/com/jzg/quotation/commons/properties/CaptchaRecognitionProperties.java
  24. 2 3
      tenant/insurance/quotation-commons/src/main/java/com/jzg/quotation/commons/standard/ExpenseFactorStandard.java
  25. 8 3
      tenant/insurance/quotation-commons/src/main/java/com/jzg/quotation/commons/standard/conversion/ConfigureParametersConversion.java
  26. 107 26
      tenant/insurance/quotation-dajia/src/main/java/com/jzg/quotation/dajia/crawler/component/DaJiaCrawlerRequestComponent.java
  27. 8 2
      tenant/insurance/quotation-dajia/src/main/java/com/jzg/quotation/dajia/crawler/constant/enums/RequestUrl.java
  28. 0 55
      tenant/insurance/quotation-dajia/src/main/java/com/jzg/quotation/dajia/crawler/constant/enums/dictionary/BIKind.java
  29. 13 1
      tenant/insurance/quotation-dajia/src/main/java/com/jzg/quotation/dajia/crawler/entity/DaJiaCrawlerConfigureParameters.java
  30. 26 1
      tenant/insurance/quotation-dajia/src/main/java/com/jzg/quotation/dajia/crawler/entity/request/DaJiaCrawlerActualValueRequest.java
  31. 0 1
      tenant/insurance/quotation-dajia/src/main/java/com/jzg/quotation/dajia/crawler/entity/request/DaJiaCrawlerAuthenticateRequest.java
  32. 0 1
      tenant/insurance/quotation-dajia/src/main/java/com/jzg/quotation/dajia/crawler/entity/request/DaJiaCrawlerBaseRequest.java
  33. 1 1
      tenant/insurance/quotation-dajia/src/main/java/com/jzg/quotation/dajia/crawler/entity/request/DaJiaCrawlerCarRequest.java
  34. 23 0
      tenant/insurance/quotation-dajia/src/main/java/com/jzg/quotation/dajia/crawler/entity/request/DaJiaCrawlerChannelPackagesRequest.java
  35. 39 0
      tenant/insurance/quotation-dajia/src/main/java/com/jzg/quotation/dajia/crawler/entity/request/DaJiaCrawlerCompaniesRequest.java
  36. 7 0
      tenant/insurance/quotation-dajia/src/main/java/com/jzg/quotation/dajia/crawler/entity/request/DaJiaCrawlerPriceRequest.java
  37. 39 0
      tenant/insurance/quotation-dajia/src/main/java/com/jzg/quotation/dajia/crawler/entity/response/DaJiaCrawlerAuthenticateResponse.java
  38. 0 1
      tenant/insurance/quotation-dajia/src/main/java/com/jzg/quotation/dajia/crawler/entity/response/DaJiaCrawlerBaseResponse.java
  39. 38 7
      tenant/insurance/quotation-dajia/src/main/java/com/jzg/quotation/dajia/crawler/entity/response/DaJiaCrawlerCarResponse.java
  40. 104 0
      tenant/insurance/quotation-dajia/src/main/java/com/jzg/quotation/dajia/crawler/entity/response/DaJiaCrawlerChannelPackagesResponse.java
  41. 46 0
      tenant/insurance/quotation-dajia/src/main/java/com/jzg/quotation/dajia/crawler/entity/response/DaJiaCrawlerCompaniesResponse.java
  42. 0 1
      tenant/insurance/quotation-dajia/src/main/java/com/jzg/quotation/dajia/crawler/service/DaJiaCrawlerRequest.java
  43. 11 6
      tenant/insurance/quotation-dajia/src/main/java/com/jzg/quotation/dajia/crawler/service/impl/DaJiaCrawlerRequestImpl.java
  44. 18 1
      tenant/insurance/quotation-dajia/src/main/java/com/jzg/quotation/dajia/crawler/utils/DESEncryption.java
  45. 1 2
      tenant/insurance/quotation-dajia/src/main/java/com/jzg/quotation/dajia/enums/dictionary/CIKind.java
  46. 1 1
      tenant/insurance/quotation-dajia/src/main/java/com/jzg/quotation/dajia/enums/dictionary/Risk.java
  47. 2 2
      tenant/insurance/quotation-summary/pom.xml
  48. 0 1
      tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/controller/InsuranceCompanyRequestController.java
  49. 33 14
      tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/converter/QuoteInfoConverter.java
  50. 6 11
      tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/entity/po/QuoteImageRuleMapping.java
  51. 5 7
      tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/entity/po/QuoteRuleConfig.java
  52. 3 11
      tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/entity/po/QuoteRuleMapping.java
  53. 6 6
      tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/mapper/QuoteImageRuleMappingMapper.java
  54. 5 5
      tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/mapper/QuoteRuleConfigMapper.java
  55. 5 5
      tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/mapper/QuoteRuleMappingMapper.java
  56. 1 2
      tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/service/QuoteImageRuleMappingService.java
  57. 4 5
      tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/service/QuoteRuleConfigService.java
  58. 5 5
      tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/service/QuoteRuleMappingService.java
  59. 4 2
      tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/service/impl/InsuranceCompanyRequestServiceImpl.java
  60. 3 5
      tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/service/impl/QuoteImageRuleMappingServiceImpl.java
  61. 5 5
      tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/service/impl/QuoteRuleConfigServiceImpl.java
  62. 2 1
      tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/service/impl/QuoteRuleMappingServiceImpl.java
  63. 6 6
      tenant/insurance/quotation-summary/src/main/resources/mapper/QuoteImageRuleMappingMapper.xml
  64. 3 3
      tenant/insurance/quotation-summary/src/main/resources/mapper/QuoteRuleConfigMapper.xml
  65. 7 7
      tenant/insurance/quotation-summary/src/main/resources/mapper/QuoteRuleMappingMapper.xml
  66. 2 2
      tenant/insurance/quotation-zijin/pom.xml
  67. 8 5
      tenant/insurance/quotation-zijin/src/main/java/com/jzg/quotation/zijin/api/build/ZiJinAPIQuoteResultsVoBuild.java
  68. 15 6
      tenant/insurance/quotation-zijin/src/main/java/com/jzg/quotation/zijin/api/component/ZiJinApiRequestComponent.java
  69. 0 1
      tenant/insurance/quotation-zijin/src/main/java/com/jzg/quotation/zijin/api/constant/enums/CalculateFlagEnum.java
  70. 0 1
      tenant/insurance/quotation-zijin/src/main/java/com/jzg/quotation/zijin/api/constant/enums/CarCheckReasonEnum.java
  71. 8 2
      tenant/insurance/quotation-zijin/src/main/java/com/jzg/quotation/zijin/api/entity/po/ZiJinApiOrder.java
  72. 45 37
      tenant/insurance/quotation-zijin/src/main/java/com/jzg/quotation/zijin/api/entity/request/CalculatePremiumRequest.java
  73. 0 1
      tenant/insurance/quotation-zijin/src/main/java/com/jzg/quotation/zijin/api/entity/request/NewPayRequest.java
  74. 4 1
      tenant/insurance/quotation-zijin/src/main/java/com/jzg/quotation/zijin/api/entity/request/SubmitVerifyRequest.java
  75. 14 14
      tenant/insurance/quotation-zijin/src/main/java/com/jzg/quotation/zijin/api/entity/response/CalculatePremiumResponse.java
  76. 1 1
      tenant/insurance/quotation-zijin/src/main/java/com/jzg/quotation/zijin/api/entity/response/QueryClauseDataResponse.java
  77. 25 15
      tenant/insurance/quotation-zijin/src/main/java/com/jzg/quotation/zijin/api/service/Impl/ZiJinApiRequestImpl.java
  78. 7 10
      tenant/insurance/quotation-zijin/src/main/java/com/jzg/quotation/zijin/api/utils/InsuranceTimeProcessing.java

+ 2 - 2
tenant/insurance/quotation-commons/pom.xml

@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0"
-         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xmlns="http://maven.apache.org/POM/4.0.0"
          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
     <modelVersion>4.0.0</modelVersion>
 

+ 35 - 4
tenant/insurance/quotation-commons/src/main/java/com/jzg/quotation/commons/component/RequestComponent.java

@@ -5,6 +5,7 @@ import com.alibaba.fastjson2.JSON;
 import com.jzg.commons.exception.SystemException;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
+import org.springframework.core.ParameterizedTypeReference;
 import org.springframework.http.HttpHeaders;
 import org.springframework.http.ResponseEntity;
 import org.springframework.stereotype.Component;
@@ -52,7 +53,10 @@ public class RequestComponent {
      * @return 响应返回值
      */
     private <Response> Response bodyIsEmpty(ResponseEntity<Response> responseEntity, String description) {
-        return Optional.ofNullable(responseEntity).map(ResponseEntity::getBody).orElseThrow(() -> new SystemException(description + "请求异常"));
+        return Optional
+                .ofNullable(responseEntity)
+                .map(ResponseEntity::getBody)
+                .orElseThrow(() -> new SystemException(description + "请求异常"));
     }
 
     /**
@@ -67,10 +71,28 @@ public class RequestComponent {
      * @return 响应
      */
     public <Response> Response get(String url, Map<String, Object> param, String description, Class<Response> responseClass, HttpHeaders headers) {
-        ResponseEntity<Response> responseEntity = webClient.get().uri(url, param).headers(setHeaders(headers)).retrieve().toEntity(responseClass).block();
+        ResponseEntity<Response> responseEntity = webClient
+                .get()
+                .uri(url, param)
+                .headers(setHeaders(headers))
+                .retrieve()
+                .toEntity(responseClass)
+                .block();
         return bodyIsEmpty(responseEntity, description);
     }
 
+    public <Response> Response get(String url, Map<String, Object> param, String description, ParameterizedTypeReference<Response> bodyTypeReference, HttpHeaders headers) {
+        ResponseEntity<Response> responseEntity = webClient
+                .get()
+                .uri(url, param)
+                .headers(setHeaders(headers))
+                .retrieve()
+                .toEntity(bodyTypeReference)
+                .block();
+        return bodyIsEmpty(responseEntity, description);
+    }
+
+
     /**
      * @param url           请求地址
      * @param param         拼接的请求参数
@@ -91,8 +113,17 @@ public class RequestComponent {
      * @return 响应
      */
     public <Response> ResponseEntity<Response> post(String url, String body, Class<Response> responseClass, HttpHeaders headers) {
-        body = Optional.ofNullable(body).orElse("");
-        return webClient.post().uri(url).headers(setHeaders(headers)).body(BodyInserters.fromValue(body)).retrieve().toEntity(responseClass).block();
+        body = Optional
+                .ofNullable(body)
+                .orElse("");
+        return webClient
+                .post()
+                .uri(url)
+                .headers(setHeaders(headers))
+                .body(BodyInserters.fromValue(body))
+                .retrieve()
+                .toEntity(responseClass)
+                .block();
     }
 
     /**

+ 13 - 7
tenant/insurance/quotation-commons/src/main/java/com/jzg/quotation/commons/config/WebClientConfig.java

@@ -42,20 +42,24 @@ public class WebClientConfig {
     @Bean
     public WebClient clientBuilder() {
         // 配置HTTP连接池
-        ConnectionProvider connectionProvider = ConnectionProvider.builder("http")
+        ConnectionProvider connectionProvider = ConnectionProvider
+                .builder("http")
                 .maxConnections(CONNECTION_PROVIDER_MAX_CONNECTIONS)
                 .maxIdleTime(CONNECTION_PROVIDER_MAX_IDLE_TIME)
                 .build();
 
         // 配置HTTP客户端
-        HttpClient httpClient = HttpClient.create(connectionProvider)
+        HttpClient httpClient = HttpClient
+                .create(connectionProvider)
                 .option(ChannelOption.CONNECT_TIMEOUT_MILLIS, HTTPCLIENT_CONNECT_TIMEOUT_MILLIS)
                 .responseTimeout(HTTPCLIENT_RESPONSE_TIMEOUT)
                 .doOnConnected(conn ->
-                        conn.addHandlerLast(new ReadTimeoutHandler(READ_TIMEOUT))
+                        conn
+                                .addHandlerLast(new ReadTimeoutHandler(READ_TIMEOUT))
                                 .addHandlerLast(new WriteTimeoutHandler(WRITE_TIMEOUT)));
         // 构建WebClient实例
-        return WebClient.builder()
+        return WebClient
+                .builder()
                 .clientConnector(new ReactorClientHttpConnector(httpClient))
                 .defaultHeader(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON_VALUE)
                 .defaultHeader(HttpHeaders.ACCEPT, MediaType.APPLICATION_JSON_VALUE)
@@ -63,9 +67,11 @@ public class WebClientConfig {
                         clientRequest -> {
                             log.info("Client request: {}", clientRequest.url());
                             // 打印请求头信息
-                            clientRequest.headers().forEach((key, values) -> {
-                                log.info("请求头: {}: {}", key, values);
-                            });
+                            clientRequest
+                                    .headers()
+                                    .forEach((key, values) -> {
+                                        log.info("请求头: {}: {}", key, values);
+                                    });
                             return Mono.just(clientRequest);
                         }
                 ))

+ 6 - 1
tenant/insurance/quotation-commons/src/main/java/com/jzg/quotation/commons/constant/CacheConstant.java

@@ -11,7 +11,12 @@ public class CacheConstant {
     public static final String DAJIA_AUTHORIZATION = "dajia:authorization:";
 
     // 大家财险授权保存时间
-    public static final int DAJIA_AUTHORIZATION_TIME = 12;
+    public static final int DAJIA_AUTHORIZATION_TIME = 6;
 
+    // 大家财险授权
+    public static final String ZIJIN_AUTHORIZATION = "zijin:authorization:";
+
+    // 大家财险授权保存时间
+    public static final long ZIJIN_AUTHORIZATION_TIME = 6 * 24L + 23L;
 
 }

+ 11 - 26
tenant/insurance/quotation-commons/src/main/java/com/jzg/quotation/commons/constant/InsuranceTypeCorrespondence.java

@@ -11,41 +11,29 @@ import java.util.Map;
  * @date:2025/2/24 17:45
  **/
 public class InsuranceTypeCorrespondence {
-    private InsuranceTypeCorrespondence() {
-    }
-
     protected static final String[] JINZHANGGUI_TYPE = {"A", "B", "D3", "D4", "MJ1", "MJ2", "MJ3", "MJ4", "BD", "L", "SY_FJ_YBW1",
             "SY_FJ_YBW2", "SY_FJ_YBW3", "TY1", "TY2", "TY3", "TY4"};
-
     // 中煤财险
     protected static final String[] ZM_CONNECT_INSURANCE_TYPE = {"01", "02", "041", "044", "501", "502", "5041", "5044", "49", "21",
             "5302", "5344", "5341", "54", "55", "56", "57"};
-
-
     //华泰财险
     protected static final String[] HuaTai_CONNECT_INSURANCE_TYPE = {"A", "B", "D11", "D12", "MMA", "MMB", "MMD11", "MMD12", "BD", "L",
             "PB", "PD12", "PD11", "SR", "", "SD", ""};
-
     // 紫金财险
     protected static final String[] ZJ_CONNECT_INSURANCE_TYPE = {"A", "B", "D3", "D4", "FA", "FB", "FD3", "FD4", "B2", "L", "S1", "S3",
             "S2", "T1", "T2", "T3", "T4"};
-
     //紫金财险新能源
     protected static final String[] ZJ_CONNECT_INSURANCE_TYPE_NEW_EMERGY = {"A3", "B3", "D5", "D6", "FA", "FB", "FD3", "FD4", "B2", "L",
             "S1", "S3", "S2", "T5", "T6", "T7", "T8"};
-
-
     // 永诚财险
     protected static final String[] YONGCHENG_CONNECT_INSURANCE_TYPE = {"030006", "030018", "030101", "030102", "030213", "030214", "030215", "030216", "030019", "030108", "030208",
             "030220", "030219", "030209", "030210", "030211", "030212"};
-
     // 永诚财险新能源
     protected static final String[] YONGCHENG_CONNECT_INSURANCE_TYPE_NEW_EMERGY = {"030226", "030227", "030228", "030229", "030213", "030214", "030215", "030216", "030019", "030108", "030208",
             "030220", "030219", "030235", "030236", "030237", "030238"};
-
     //阳光财险
-    protected static final String[] YG_CONNECT_INSURANCE_TYPE = {"20A", "20B", "20C1", "20C2", "20FD","20FE","20FF","20FG","20FA","20F7","20FH","20FR","20FQ","20FK","20FL",
-            "20FM","20FN"};
+    protected static final String[] YG_CONNECT_INSURANCE_TYPE = {"20A", "20B", "20C1", "20C2", "20FD", "20FE", "20FF", "20FG", "20FA", "20F7", "20FH", "20FR", "20FQ", "20FK", "20FL",
+            "20FM", "20FN"};
     //阳光财险新能源
     protected static final String[] YG_CONNECT_INSURANCE_TYPE_NEW_EMERGY = {"21A", "21B", "21C1", "21C2", "20FD", "20FE", "20FF", "20FG", "20FA",
             "20F7", "20FH", "20FR", "20FQ", "21FK", "21FL", "21FM", "21FN"};
@@ -53,22 +41,18 @@ public class InsuranceTypeCorrespondence {
     protected static final String[] PASSENGER = {"D4", "SY_FJ_YBW2"};
     // 中煤 报价入参转换过,所以增加
     protected static final String[] ZMBX_PASSENGER = {"044", "5344"};
-
     //司机
     protected static final String[] DRIVER = {"D3", "SY_FJ_YBW3"};
     // 中煤 报价入参转换过,所以增加
     protected static final String[] ZMBX_DRIVER = {"041", "5341"};
-
     // 绝对免赔
     protected static final String[] ABSOLUTE_DEDUCTIBLE = {"MJ1", "MJ2", "MJ3", "MJ4"};
     // 中煤 报价入参转换过,所以增加 绝对免赔
     protected static final String[] ZMBX_ABSOLUTE_DEDUCTIBLE = {"501", "502", "5041", "5044"};
-
     // 服务特约条款
     protected static final String[] SPECIAL_CONTRACT_CLAUSE = {"TY1", "TY2", "TY3", "TY4"};
     // 中煤 报价入参转换过,所以增加 服务特约条款
     protected static final String[] ZMBX_SPECIAL_CONTRACT_CLAUSE = {"54", "55", "56", "57"};
-
     //中煤机动车险种
     protected static final Map<String, String> ZhongMei_RISK_1379 = new HashMap<>();
     //中煤新能源车险种
@@ -77,9 +61,10 @@ public class InsuranceTypeCorrespondence {
     protected static final Map<String, String> ZhongMei_PRODUCT = new HashMap<>();
     //中煤险种编码
     protected static final Map<String, Map<String, String>> ZhongMei_RISK = new HashMap<>();
-
     protected static final Map<String, String> HuaTai_RISK = new HashMap<>();
     protected static final String HuaTai_NEW_ENERGY_RISK = "1255";
+    //中煤使用性质转换关系
+    protected static final Map<String, String> ZM_CAR_MotorUsageTypeCode = new HashMap<>();
 
     static {
         ZhongMei_RISK_1379.put("0507", "0330");
@@ -121,14 +106,14 @@ public class InsuranceTypeCorrespondence {
         HuaTai_RISK.put("0510", "1251");
     }
 
-    //中煤使用性质转换关系
-    protected static final Map<String, String> ZM_CAR_MotorUsageTypeCode = new HashMap<>();
-
     static {
         ZM_CAR_MotorUsageTypeCode.put(CarNatureCode.CAR_NATURE_CODE_01.getCode(), "01");//营业
         ZM_CAR_MotorUsageTypeCode.put(CarNatureCode.CAR_NATURE_CODE_02.getCode(), "02");//非营业
     }
 
+    private InsuranceTypeCorrespondence() {
+    }
+
     public static String[] getJinZhangGuiType() {
         return JINZHANGGUI_TYPE;
     }
@@ -153,7 +138,7 @@ public class InsuranceTypeCorrespondence {
         return YG_CONNECT_INSURANCE_TYPE_NEW_EMERGY;
     }
 
-    public static String[] getSpecialContractClause(){
+    public static String[] getSpecialContractClause() {
         return SPECIAL_CONTRACT_CLAUSE;
     }
 
@@ -201,11 +186,11 @@ public class InsuranceTypeCorrespondence {
         return ZM_CAR_MotorUsageTypeCode;
     }
 
-    public static String[] getYongchengConnectInsuranceType(){
+    public static String[] getYongchengConnectInsuranceType() {
         return YONGCHENG_CONNECT_INSURANCE_TYPE;
     }
 
-    public static String[] getYongchengConnectInsuranceTypeNewEmergy(){
+    public static String[] getYongchengConnectInsuranceTypeNewEmergy() {
         return YONGCHENG_CONNECT_INSURANCE_TYPE_NEW_EMERGY;
     }
 
@@ -221,7 +206,7 @@ public class InsuranceTypeCorrespondence {
         return ZMBX_ABSOLUTE_DEDUCTIBLE;
     }
 
-    public static String[] getZmbxSpecialContractClause(){
+    public static String[] getZmbxSpecialContractClause() {
         return ZMBX_SPECIAL_CONTRACT_CLAUSE;
     }
 }

+ 0 - 1
tenant/insurance/quotation-commons/src/main/java/com/jzg/quotation/commons/constant/enums/base/ExpenseRequestUrl.java

@@ -5,7 +5,6 @@ import lombok.Getter;
 
 
 /**
- * @version
  * @description: 外部提供的接口
  * @author: wenks
  * @date: 2025/2/14 10:21

+ 0 - 1
tenant/insurance/quotation-commons/src/main/java/com/jzg/quotation/commons/constant/enums/base/ProductsType.java

@@ -4,7 +4,6 @@ import lombok.AllArgsConstructor;
 import lombok.Getter;
 
 /**
- * @version
  * @description: 产品代码
  * @author: wenks
  * @date: 2025/2/26 18:35

+ 0 - 1
tenant/insurance/quotation-commons/src/main/java/com/jzg/quotation/commons/constant/enums/base/QuoteRuleCategory.java

@@ -5,7 +5,6 @@ import lombok.Getter;
 
 
 /**
- * @version
  * @description: 报价属性规则分类
  * @author: wenks
  * @date: 2025/2/24 10:51

+ 1 - 2
tenant/insurance/quotation-commons/src/main/java/com/jzg/quotation/commons/constant/enums/quote/CarKindCode.java

@@ -5,7 +5,6 @@ import lombok.Getter;
 
 
 /**
- * @version
  * @description: 车险出单 车辆种类代码
  * @author: wenks
  * @date: 2025/2/18 10:11
@@ -15,7 +14,7 @@ import lombok.Getter;
 public enum CarKindCode {
 
     CAR_KIND_CODE_A0("A0", "客车"),
-    CAR_KIND_CODE_A1("A1","货车");
+    CAR_KIND_CODE_A1("A1", "货车");
 
     private final String code;
 

+ 0 - 1
tenant/insurance/quotation-commons/src/main/java/com/jzg/quotation/commons/constant/enums/quote/CarNatureCode.java

@@ -4,7 +4,6 @@ import lombok.AllArgsConstructor;
 import lombok.Getter;
 
 /**
- * @version
  * @description: 车险出单 使用性质代码
  * @author: wenks
  * @date: 2025/2/18 9:52

+ 0 - 1
tenant/insurance/quotation-commons/src/main/java/com/jzg/quotation/commons/constant/enums/quote/EnergyTypeCode.java

@@ -5,7 +5,6 @@ import lombok.AllArgsConstructor;
 import lombok.Getter;
 
 /**
- * @version
  * @description: 车险出单 能源种类代码
  * @author: wenks
  * @date: 2025/2/18 10:45

+ 0 - 1
tenant/insurance/quotation-commons/src/main/java/com/jzg/quotation/commons/constant/enums/quote/LicenseColorCode.java

@@ -5,7 +5,6 @@ import lombok.AllArgsConstructor;
 import lombok.Getter;
 
 /**
- * @version
  * @description: 车险出单 号牌颜色代码
  * @author: wenks
  * @date: 2025/2/24 15:39

+ 0 - 1
tenant/insurance/quotation-commons/src/main/java/com/jzg/quotation/commons/constant/enums/quote/PropertyCode.java

@@ -4,7 +4,6 @@ import lombok.AllArgsConstructor;
 import lombok.Getter;
 
 /**
- * @version
  * @description: 所属性质代码
  * @author: wenks
  * @date: 2025/2/18 10:46

+ 0 - 1
tenant/insurance/quotation-commons/src/main/java/com/jzg/quotation/commons/constant/enums/quote/VehicleUseCode.java

@@ -5,7 +5,6 @@ import lombok.Getter;
 
 
 /**
- * @version
  * @description: 车险出单 车辆用途
  * @author: wenks
  * @date: 2025/2/18 9:59

+ 0 - 2
tenant/insurance/quotation-commons/src/main/java/com/jzg/quotation/commons/entity/vo/aggregated/InsuranceUploadImageVo.java

@@ -11,7 +11,6 @@ import java.io.Serializable;
 import java.util.List;
 
 /**
- * @version
  * @description: 传入保司的上传影像
  * @author: wenks
  * @date: 2025/2/26 17:27
@@ -35,5 +34,4 @@ public class InsuranceUploadImageVo implements Serializable {
     private List<InsuranceImageVo> imageVoList;
 
 
-
 }

+ 1 - 1
tenant/insurance/quotation-commons/src/main/java/com/jzg/quotation/commons/entity/vo/aggregated/QuoteResultsVo.java

@@ -54,7 +54,7 @@ public class QuoteResultsVo implements Serializable {
      */
     private String biPremium;
     /**
-     *  非车险(交叉销售/驾意险)保费
+     * 非车险(交叉销售/驾意险)保费
      */
     private String niPremium;
     /**

+ 6 - 0
tenant/insurance/quotation-commons/src/main/java/com/jzg/quotation/commons/entity/vo/base/OrderBase.java

@@ -32,6 +32,12 @@ public class OrderBase implements Serializable {
      */
     private AttributionInformationVo attributionInformationVo;
 
+    /**
+     * @see com.jzg.quotation.commons.constant.enums.base.ProductsType
+     * 产品代码
+     */
+    private String productsCode;
+
     /**
      * @see com.jzg.quotation.commons.constant.enums.base.ApiType
      * 请求方式

+ 0 - 1
tenant/insurance/quotation-commons/src/main/java/com/jzg/quotation/commons/entity/vo/quote/AccidentalDrivingVo.java

@@ -1,6 +1,5 @@
 package com.jzg.quotation.commons.entity.vo.quote;
 
-import com.fasterxml.jackson.annotation.JsonProperty;
 import lombok.AllArgsConstructor;
 import lombok.Data;
 import lombok.NoArgsConstructor;

+ 1 - 0
tenant/insurance/quotation-commons/src/main/java/com/jzg/quotation/commons/entity/vo/quote/CarInfoVo.java

@@ -146,6 +146,7 @@ public class CarInfoVo implements Serializable {
      * 过户日期:发证日期的正确格式为yyyy-MM-dd
      */
     private String transferDate;
+
     /**
      * 获取 吨位数/核定载质量
      *

+ 24 - 0
tenant/insurance/quotation-commons/src/main/java/com/jzg/quotation/commons/entity/vo/quote/CustomerInfoVo.java

@@ -49,6 +49,30 @@ public class CustomerInfoVo implements Serializable {
      * 地址
      */
     private String addr;
+    /**
+     * 省 区划编码
+     */
+    private String provinceCode;
+    /**
+     * 省
+     */
+    private String province;
+    /**
+     * 市 区划编码
+     */
+    private String cityCode;
+    /**
+     * 市
+     */
+    private String city;
+    /**
+     * 县 区划编码
+     */
+    private String countyCode;
+    /**
+     * 县
+     */
+    private String county;
     /**
      * 邮箱
      */

+ 4 - 2
tenant/insurance/quotation-commons/src/main/java/com/jzg/quotation/commons/entity/vo/quote/ExpenseFactor.java

@@ -10,7 +10,6 @@ import java.util.Map;
 import java.util.stream.Collectors;
 
 /**
- * @version
  * @description: 保险公司报价 费用因子
  * @author: wenks
  * @date: 2025/2/13 17:51
@@ -39,11 +38,14 @@ public class ExpenseFactor implements Serializable {
 
     /**
      * 将费用信息转为 map
+     *
      * @param expenseFactorList 费用信息
      * @return Map
      */
     public static Map<String, String> toMap(List<ExpenseFactor> expenseFactorList) {
-        return expenseFactorList.stream().collect(Collectors.toMap(ExpenseFactor::getCode, ExpenseFactor::getValue));
+        return expenseFactorList
+                .stream()
+                .collect(Collectors.toMap(ExpenseFactor::getCode, ExpenseFactor::getValue));
     }
 
 }

+ 10 - 4
tenant/insurance/quotation-commons/src/main/java/com/jzg/quotation/commons/filter/CarModelsFilterUtils.java

@@ -22,8 +22,11 @@ public class CarModelsFilterUtils {
 
         List<T> stadarCarDTOS = new ArrayList<>();
         if (!StringUtils.isEmpty(carInfo.getCarYear())) {
-            stadarCarDTOS = carModelsFilterList.stream()
-                    .filter(car -> carInfo.getCarYear().equals(car.getCarYear()))
+            stadarCarDTOS = carModelsFilterList
+                    .stream()
+                    .filter(car -> carInfo
+                            .getCarYear()
+                            .equals(car.getCarYear()))
                     .collect(Collectors.toList());
         }
 
@@ -33,8 +36,11 @@ public class CarModelsFilterUtils {
             stadarCarDTOS = carModelsFilterList;
         }
 
-        carModelsFilterList = carModelsFilterList.stream()
-                .filter(car -> carInfo.getPurchasePrice().equals(String.valueOf(car.getPurchasePrice())))
+        carModelsFilterList = carModelsFilterList
+                .stream()
+                .filter(car -> carInfo
+                        .getPurchasePrice()
+                        .equals(String.valueOf(car.getPurchasePrice())))
                 .collect(Collectors.toList());
 
         if (carModelsFilterList.isEmpty()) {

+ 0 - 1
tenant/insurance/quotation-commons/src/main/java/com/jzg/quotation/commons/properties/CaptchaRecognitionProperties.java

@@ -6,7 +6,6 @@ import org.springframework.stereotype.Component;
 
 
 /**
- * @version
  * @description: 验证码识别配置
  * @author: wenks
  * @date: 2025/2/13 8:59

+ 2 - 3
tenant/insurance/quotation-commons/src/main/java/com/jzg/quotation/commons/standard/ExpenseFactorStandard.java

@@ -1,15 +1,14 @@
 package com.jzg.quotation.commons.standard;
 
 /**
- * @version
  * @description: 险公司报价 费用因子 规定
  * @author: wenks
  * @date: 2025/2/13 17:53
  **/
 public interface ExpenseFactorStandard {
 
-     String getExpenseFactorCode();
+    String getExpenseFactorCode();
 
-     String getExpenseFactorName();
+    String getExpenseFactorName();
 
 }

+ 8 - 3
tenant/insurance/quotation-commons/src/main/java/com/jzg/quotation/commons/standard/conversion/ConfigureParametersConversion.java

@@ -26,12 +26,17 @@ public class ConfigureParametersConversion {
     public static <T extends ConfigureParameters> T conversionEntity(Class<T> t, Map<String, String> configInfo) {
         T t1;
         try {
-            t1 = t.getDeclaredConstructor().newInstance();
-        }catch (InstantiationException | IllegalAccessException | NoSuchMethodException | InvocationTargetException e) {
+            t1 = t
+                    .getDeclaredConstructor()
+                    .newInstance();
+        } catch (InstantiationException | IllegalAccessException | NoSuchMethodException |
+                 InvocationTargetException e) {
             throw new SystemException("");
         }
 
-        Field[] fieldsList = t1.getClass().getDeclaredFields();
+        Field[] fieldsList = t1
+                .getClass()
+                .getDeclaredFields();
         for (Field field : fieldsList) {
             try {
                 ReflectionUtils.makeAccessible(field);

+ 107 - 26
tenant/insurance/quotation-dajia/src/main/java/com/jzg/quotation/dajia/crawler/component/DaJiaCrawlerRequestComponent.java

@@ -2,6 +2,7 @@ package com.jzg.quotation.dajia.crawler.component;
 
 
 import com.alibaba.fastjson2.JSON;
+import com.alibaba.fastjson2.TypeReference;
 import com.jzg.commons.exception.SystemException;
 import com.jzg.quotation.commons.component.RequestComponent;
 import com.jzg.quotation.commons.constant.CacheConstant;
@@ -14,7 +15,11 @@ import com.jzg.quotation.dajia.crawler.properties.DaJiaCrawlerProperties;
 import com.jzg.quotation.dajia.crawler.utils.DESEncryption;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.beanutils.BeanUtils;
+import org.apache.commons.beanutils.PropertyUtils;
+import org.redisson.api.RMap;
 import org.redisson.api.RedissonClient;
+import org.springframework.core.ParameterizedTypeReference;
 import org.springframework.http.HttpHeaders;
 import org.springframework.http.HttpStatus;
 import org.springframework.http.HttpStatusCode;
@@ -22,11 +27,9 @@ import org.springframework.http.ResponseEntity;
 import org.springframework.stereotype.Component;
 import org.springframework.util.StringUtils;
 
+import java.lang.reflect.InvocationTargetException;
 import java.time.Duration;
-import java.util.List;
-import java.util.Map;
-import java.util.Optional;
-import java.util.UUID;
+import java.util.*;
 
 @Slf4j
 @Component
@@ -46,6 +49,12 @@ public class DaJiaCrawlerRequestComponent {
     // 登陆次数
     public static final int LOGINS_NUMBER = 3;
 
+    public static final String BEARER = "Bearer ";
+
+    public static final String AUTHORIZATION = "AUTHORIZATION";
+
+    public static final String USER_CODE = "USER_CODE";
+
     public int processCaptcha(String res) {
         // 检查字符串长度是否足够,并且第三个字符不是'='
         if (res.length() >= 3 && res.charAt(2) != '=') {
@@ -86,11 +95,14 @@ public class DaJiaCrawlerRequestComponent {
         if (frequency <= 0) {
             throw new SystemException("验证码异常");
         }
-        Map<String, Object> map = Map.of("imgId", UUID.randomUUID().toString().replaceAll("-", ""));
+        Map<String, Object> map = Map.of("imgId", UUID
+                .randomUUID()
+                .toString()
+                .replaceAll("-", ""));
         // 请求
-        DaJiaCrawlerBaseResponse request = requestComponent.requestGET(RequestUrl.CAPTCHA.getRequestUrl(daJiaCrawlerProperties.getBaseUrl()), map, "",DaJiaCrawlerBaseResponse.class);
-        String decrypt = DESEncryption.decrypt(request.getResult());
-        DaJiaCrawlerCaptchaResponse daJiaCrawlerCaptchaResponse = JSON.parseObject(decrypt, DaJiaCrawlerCaptchaResponse.class);
+        DaJiaCrawlerBaseResponse request = requestComponent.requestGET(
+                RequestUrl.CAPTCHA.getRequestUrl(daJiaCrawlerProperties.getBaseUrl()), map, "", DaJiaCrawlerBaseResponse.class);
+        DaJiaCrawlerCaptchaResponse daJiaCrawlerCaptchaResponse = DESEncryption.decrypt(request.getResult(), DaJiaCrawlerCaptchaResponse.class);
         // 识别验证码
         String s = exteriorUtilsRequest.captchaIdentify(daJiaCrawlerCaptchaResponse.getImg());
         try {
@@ -104,6 +116,53 @@ public class DaJiaCrawlerRequestComponent {
         return daJiaCrawlerCaptchaResponse;
     }
 
+    /**
+     * 获取机构信息
+     *
+     * @param request 获取机构信息 请求实体
+     * @param cDptCde 机构编码
+     * @param headers 请求头
+     * @return 唯一机构列表
+     */
+    public DaJiaCrawlerCompaniesResponse.ListDTO companies(DaJiaCrawlerCompaniesRequest request, String cDptCde, HttpHeaders headers) {
+        try {
+            Map<String, Object> describe = PropertyUtils.describe(request);
+            DaJiaCrawlerCompaniesResponse daJiaCrawlerCompaniesResponse = requestComponent.get(
+                    RequestUrl.CAPTCHA.getRequestUrl(daJiaCrawlerProperties.getBaseUrl()), describe, "", DaJiaCrawlerCompaniesResponse.class, headers);
+            return daJiaCrawlerCompaniesResponse
+                    .getList()
+                    .stream()
+                    .filter(x -> cDptCde.equals(x.getCDptCde()))
+                    .findFirst()
+                    .orElseThrow(() -> new SystemException(""));
+        } catch (InvocationTargetException | IllegalAccessException | NoSuchMethodException e) {
+            throw new SystemException("");
+        }
+    }
+
+    /**
+     * 获取套餐信息
+     *
+     * @param request      获取套餐 请求实体
+     * @param packagesName 套餐名称
+     * @param headers      请求头
+     * @return 套餐信息
+     */
+    public DaJiaCrawlerChannelPackagesResponse channelPackages(DaJiaCrawlerChannelPackagesRequest request, String packagesName, HttpHeaders headers) {
+        try {
+            Map<String, Object> describe = PropertyUtils.describe(request);
+            List<DaJiaCrawlerChannelPackagesResponse> responses = requestComponent.get(RequestUrl.CAPTCHA.getRequestUrl(daJiaCrawlerProperties.getBaseUrl()), describe, "", new ParameterizedTypeReference<>() {
+            }, headers);
+            return responses
+                    .stream()
+                    .filter(x -> packagesName.equals(x.getName()))
+                    .findFirst()
+                    .orElseThrow(() -> new SystemException(""));
+        } catch (InvocationTargetException | IllegalAccessException | NoSuchMethodException e) {
+            throw new SystemException("");
+        }
+    }
+
     /**
      * 登录次数
      *
@@ -118,31 +177,42 @@ public class DaJiaCrawlerRequestComponent {
         // 登录存入缓存当中
         DaJiaCrawlerAuthenticateRequest request = new DaJiaCrawlerAuthenticateRequest(captcha, username, password);
         ResponseEntity<DaJiaCrawlerBaseResponse> responseEntity = requestComponent.objectPost(RequestUrl.AUTHENTICATE.getRequestUrl(daJiaCrawlerProperties.getVhlUrl()), request, DaJiaCrawlerBaseResponse.class);
-        HttpStatusCode statusCode = responseEntity.getStatusCode();
-        String authorization = responseEntity.getHeaders().getFirst(HttpHeaders.AUTHORIZATION);
-        // 判断请求是否成功和授权码是否返回
-        if (HttpStatus.OK.value() != statusCode.value() && !StringUtils.hasLength(authorization)) {
-            loginsNumber = loginsNumber - 1;
-            if (loginsNumber <= 0) {
-                String message = Optional.ofNullable(responseEntity.getBody())
-                        .map(DaJiaCrawlerBaseResponse::getMessage)
-                        .orElseThrow(() -> new SystemException("登录失败"));
-                throw new SystemException(message);
-            }
-            return authenticate(username, password, loginsNumber);
+        DaJiaCrawlerBaseResponse response = Optional
+                .of(responseEntity)
+                .map(ResponseEntity::getBody)
+                .orElseThrow();
+        if ("200".equals(response.getCode())) {
+            DaJiaCrawlerAuthenticateResponse daJiaCrawlerCaptchaResponse = DESEncryption.decrypt(response.getResult(), DaJiaCrawlerAuthenticateResponse.class);
+            String idToken = daJiaCrawlerCaptchaResponse.getIdToken();
+            String authorization = BEARER + idToken;
+            Map<String, String> authorizationMap = new HashMap<>();
+            authorizationMap.put(AUTHORIZATION, authorization);
+            authorizationMap.put(USER_CODE, daJiaCrawlerCaptchaResponse.getUserCode());
+            RMap<Object, Object> map = redissonClient.getMap(CacheConstant.DAJIA_AUTHORIZATION + username);
+            map.putAll(authorizationMap);
+            map.expire(Duration.ofHours(CacheConstant.DAJIA_AUTHORIZATION_TIME));
+            return authorization;
+        }
+        loginsNumber = loginsNumber - 1;
+        if (loginsNumber <= 0) {
+            String message = Optional
+                    .ofNullable(responseEntity.getBody())
+                    .map(DaJiaCrawlerBaseResponse::getMessage)
+                    .orElseThrow(() -> new SystemException("登录失败"));
+            throw new SystemException(message);
         }
-        redissonClient.getBucket(CacheConstant.DAJIA_AUTHORIZATION + username).set(authorization, Duration.ofHours(CacheConstant.DAJIA_AUTHORIZATION_TIME));
-        return authorization;
+        return authenticate(username, password, loginsNumber);
     }
 
-
     /**
      * 获取请求头
      *
      * @return
      */
     public HttpHeaders getHeaders(String username, String password) {
-        String authorization = (String) redissonClient.getBucket(CacheConstant.DAJIA_AUTHORIZATION).get();
+        String authorization = (String) redissonClient
+                .getMap(CacheConstant.DAJIA_AUTHORIZATION)
+                .get(AUTHORIZATION);
         if (!StringUtils.hasLength(authorization)) {
             authorization = authenticate(username, password, LOGINS_NUMBER);
         }
@@ -151,6 +221,18 @@ public class DaJiaCrawlerRequestComponent {
         return headers;
     }
 
+    /**
+     * 通过用户名获取userCode
+     *
+     * @param username 用户名
+     * @return userCode
+     */
+    public String getUserCode(String username) {
+        return (String) redissonClient
+                .getMap(CacheConstant.DAJIA_AUTHORIZATION)
+                .get(USER_CODE);
+    }
+
     /**
      * 请求
      *
@@ -171,8 +253,7 @@ public class DaJiaCrawlerRequestComponent {
      * @param headers                请求头
      * @return 车型列表
      */
-    public List<DaJiaCrawlerCarResponse.ListDTO> car(DaJiaCrawlerCarRequest daJiaCrawlerCarRequest, HttpHeaders
-            headers) {
+    public List<DaJiaCrawlerCarResponse.ListDTO> car(DaJiaCrawlerCarRequest daJiaCrawlerCarRequest, HttpHeaders headers) {
         DaJiaCrawlerCarResponse request = request(RequestUrl.CAR, daJiaCrawlerCarRequest, DaJiaCrawlerCarResponse.class, headers);
         return request.getList();
     }

+ 8 - 2
tenant/insurance/quotation-dajia/src/main/java/com/jzg/quotation/dajia/crawler/constant/enums/RequestUrl.java

@@ -15,11 +15,17 @@ public enum RequestUrl implements CrawlerRequestUrlStandard {
     // 登录
     CAPTCHA("captcha", "验证码"),
     AUTHENTICATE("authenticate", "登录"),
-    // 业务
+    //归属信息
+    COMPANIES("/api/companies", "承保机构"),
+    CHANNEL_PACKAGES("/default/package/list", "渠道套餐"),
+
+    // 报价
     PRICE("price", "报价"),
     SAVE("save", "保存订单"),
     CAR("car", "车型查询"),
-    ACTUAL_VALUE("", "计算折旧价格"),
+    ACTUAL_VALUE("actualvalue", "计算折旧价格"),
+
+
     ;
 
     private final String uri;

+ 0 - 55
tenant/insurance/quotation-dajia/src/main/java/com/jzg/quotation/dajia/crawler/constant/enums/dictionary/BIKind.java

@@ -1,55 +0,0 @@
-package com.jzg.quotation.dajia.crawler.constant.enums.dictionary;
-
-import lombok.AllArgsConstructor;
-import lombok.Getter;
-
-
-/**
- * @description: 大家财险 商业险
- * @author: wenks
- * @date: 2025/2/13 15:39
- **/
-@Getter
-@AllArgsConstructor
-public enum BIKind {
-
-    KIND_030006("030006", "车辆损失险"),
-    KIND_030021("030021", "附加新增加设备损失险"),
-    KIND_030042("030042", "附加修理期间费用补偿险 "),
-    KIND_032601("032601", "附加车身划痕损失险"),
-    KIND_035601("035601", "附加绝对免赔率特约条款(车辆损失保险)"),
-    KIND_035606("035606", "附加车轮单独损失险"),
-    KIND_035607("035607", "附加发动机进水损坏除外特约条款"),
-
-    KIND_030018("030018", "第三者责任险"),
-    KIND_030015("030015", "附加精神损害抚慰金责任险(第三者责任保险)"),
-    KIND_030032("030032", "附加车上货物责任险"),
-    KIND_033614("033614", "附加法定节假日限额翻倍险"),
-    KIND_035602("035602", "附加绝对免赔率特约条款(第三者责任保险)"),
-    KIND_035608("035608", "附加医保外医疗费用责任险(第三者责任保险)"),
-
-    KIND_030001("030001", "车上人员责任险驾驶人座位"),
-    KIND_035603("035603", "附加绝对免赔率特约条款(车上人员责任保险(司机))"),
-    KIND_035613("035613", "附加医保外医疗费用责任险(车上人员责任保险(司机))"),
-    KIND_035615("035615", "附加精神损害抚慰金责任险(车上人员责任保险(司机))"),
-
-    KIND_030009("030009", "车上人员责任险乘客座位"),
-    KIND_035604("035604", "附加绝对免赔率特约条款(车上人员责任保险(乘客))"),
-    KIND_035614("035614", "附加医保外医疗费用责任险(车上人员责任保险(乘客))"),
-    KIND_035616("035616", "附加精神损害抚慰金责任险(车上人员责任保险(乘客))"),
-
-    KIND_030061("030061", "盗抢险"),
-    KIND_035605("035605", "附加绝对免赔率特约条款(特种车全车盗抢保险)"),
-
-    KIND_035609("035609", "道路救援服务特约条款"),
-    KIND_035610("035610", "车辆安全检测特约条款"),
-    KIND_035611("035611", "代为驾驶服务特约条款"),
-    KIND_035612("035612", "代为送检服务特约条款"),
-    KIND_032612("032612", "附加起重、装卸、挖掘车辆损失扩展条款"),
-    KIND_032613("032613", "附加特种车辆固定设备、仪器损坏扩展条款");
-
-    private final String kindCode;
-
-    private final String kindName;
-
-}

+ 13 - 1
tenant/insurance/quotation-dajia/src/main/java/com/jzg/quotation/dajia/crawler/entity/DaJiaCrawlerConfigureParameters.java

@@ -19,7 +19,19 @@ public class DaJiaCrawlerConfigureParameters implements ConfigureParameters {
 
     @Serial
     private static final long serialVersionUID = -4576395685599605562L;
+    /**
+     * 登录机构编码
+     */
+    private String loginCompany;
+    /**
+     * 机构代码
+     */
+    private String cDptCde;
 
-    private String url;
+    private String operatorEmail;
+
+    private String operatorPhone;
+
+    private String operatorAddress;
 
 }

+ 26 - 1
tenant/insurance/quotation-dajia/src/main/java/com/jzg/quotation/dajia/crawler/entity/request/DaJiaCrawlerActualValueRequest.java

@@ -1,12 +1,13 @@
 package com.jzg.quotation.dajia.crawler.entity.request;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
+import com.jzg.quotation.commons.entity.vo.quote.CarInfoVo;
+import com.jzg.quotation.dajia.crawler.entity.response.DaJiaCrawlerCarResponse;
 import lombok.Data;
 import lombok.NoArgsConstructor;
 
 
 /**
- * @version
  * @description: 大家财险 爬虫 计算折旧价
  * @author: wenks
  * @date: 2025/2/15 15:14
@@ -15,12 +16,21 @@ import lombok.NoArgsConstructor;
 @Data
 public class DaJiaCrawlerActualValueRequest {
 
+    /**
+     * 新车购置价
+     */
     @JsonProperty("purchaseValue")
     private String purchaseValue;
 
+    /**
+     * 注册日期
+     */
     @JsonProperty("registerDate")
     private String registerDate;
 
+    /**
+     * 车辆类型 车种明细
+     */
     @JsonProperty("rideKind")
     private String rideKind;
 
@@ -47,4 +57,19 @@ public class DaJiaCrawlerActualValueRequest {
 
     @JsonProperty("operatorCode")
     private String operatorCode;
+
+
+    public DaJiaCrawlerActualValueRequest(DaJiaCrawlerCarResponse.ListDTO listDTO, CarInfoVo carInfoVo, String operatorCode) {
+        this.purchaseValue = listDTO.getPurchasePrice();
+        this.registerDate = carInfoVo.getRegisterDate();
+        this.rideKind = carInfoVo.getCarKindDetailIdCode();
+        this.startDate = startDate;
+        this.usage = usage;
+        this.vehicleName = listDTO.getVehicleName();
+        this.fuelType = fuelType;
+        this.combineProductCode = combineProductCode;
+        this.seatNumber = carInfoVo.getSeatCount();
+        this.modelEnergyType = modelEnergyType;
+        this.operatorCode = operatorCode;
+    }
 }

+ 0 - 1
tenant/insurance/quotation-dajia/src/main/java/com/jzg/quotation/dajia/crawler/entity/request/DaJiaCrawlerAuthenticateRequest.java

@@ -11,7 +11,6 @@ import java.io.Serializable;
 
 
 /**
- * @version
  * @description: 大家财险【爬虫】【登录】【响应体】
  * @author: wenks
  * @date: 2025/2/13 14:23

+ 0 - 1
tenant/insurance/quotation-dajia/src/main/java/com/jzg/quotation/dajia/crawler/entity/request/DaJiaCrawlerBaseRequest.java

@@ -8,7 +8,6 @@ import java.io.Serial;
 import java.io.Serializable;
 
 /**
- * @version
  * @description: 大家财险 爬虫 基础请求体
  * @author: wenks
  * @date: 2025/2/15 15:03

+ 1 - 1
tenant/insurance/quotation-dajia/src/main/java/com/jzg/quotation/dajia/crawler/entity/request/DaJiaCrawlerCarRequest.java

@@ -60,7 +60,7 @@ public class DaJiaCrawlerCarRequest implements Serializable {
     @JsonProperty("operatorCode")
     private String operatorCode;
 
-    public DaJiaCrawlerCarRequest(CarInfoVo carInfoVo,String areaCode, String dptCode, String operatorCode) {
+    public DaJiaCrawlerCarRequest(CarInfoVo carInfoVo, String areaCode, String dptCode, String operatorCode) {
         this.pageNo = 1;
         this.pageSize = 30;
         this.vehicleName = carInfoVo.getBrandName();

+ 23 - 0
tenant/insurance/quotation-dajia/src/main/java/com/jzg/quotation/dajia/crawler/entity/request/DaJiaCrawlerChannelPackagesRequest.java

@@ -0,0 +1,23 @@
+package com.jzg.quotation.dajia.crawler.entity.request;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serial;
+import java.io.Serializable;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class DaJiaCrawlerChannelPackagesRequest {
+
+    private String loginCompany;
+
+    private String companyCode;
+
+    private String combineProductCode;
+
+    private String productCode;
+
+}

+ 39 - 0
tenant/insurance/quotation-dajia/src/main/java/com/jzg/quotation/dajia/crawler/entity/request/DaJiaCrawlerCompaniesRequest.java

@@ -0,0 +1,39 @@
+package com.jzg.quotation.dajia.crawler.entity.request;
+
+import com.jzg.quotation.dajia.crawler.entity.DaJiaCrawlerConfigureParameters;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * @description: 大家财险 【爬虫】 查询机构列表
+ * @author: wenks
+ * @date: 2025/2/28 10:51
+ **/
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class DaJiaCrawlerCompaniesRequest {
+
+    private String companyPrefix;
+
+    private String companyName;
+
+    private String recommendCode;
+
+    private int pageNum;
+
+    private int pageSize;
+
+    private String operatorCode;
+
+    public DaJiaCrawlerCompaniesRequest(String companyPrefix, String operatorCode) {
+        this.companyPrefix = companyPrefix;
+        this.companyName = "";
+        this.recommendCode = operatorCode;
+        this.pageNum = 1;
+        this.pageSize = 10;
+        this.operatorCode = operatorCode;
+    }
+
+}

+ 7 - 0
tenant/insurance/quotation-dajia/src/main/java/com/jzg/quotation/dajia/crawler/entity/request/DaJiaCrawlerPriceRequest.java

@@ -1,6 +1,8 @@
 package com.jzg.quotation.dajia.crawler.entity.request;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
+import com.jzg.quotation.commons.entity.vo.aggregated.QuoteVo;
+import com.jzg.quotation.dajia.crawler.entity.DaJiaCrawlerConfigureParameters;
 import com.jzg.quotation.dajia.crawler.entity.request.quote.*;
 import lombok.Data;
 import lombok.NoArgsConstructor;
@@ -88,4 +90,9 @@ public class DaJiaCrawlerPriceRequest implements Serializable {
     @JsonProperty("operatorCode")
     private String operatorCode;
 
+
+    public DaJiaCrawlerPriceRequest(QuoteVo quoteVo, DaJiaCrawlerConfigureParameters parameters, String operatorCode) {
+
+    }
+
 }

+ 39 - 0
tenant/insurance/quotation-dajia/src/main/java/com/jzg/quotation/dajia/crawler/entity/response/DaJiaCrawlerAuthenticateResponse.java

@@ -0,0 +1,39 @@
+package com.jzg.quotation.dajia.crawler.entity.response;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * @description: 大家财险 【爬虫】 登陆响应
+ * @author: wenks
+ * @date: 2025/2/27 16:55
+ **/
+@AllArgsConstructor
+@NoArgsConstructor
+@Data
+public class DaJiaCrawlerAuthenticateResponse {
+
+    @JsonProperty("flag")
+    private String flag;
+
+    @JsonProperty("hrCode")
+    private String hrCode;
+
+    @JsonProperty("idToken")
+    private String idToken;
+
+    @JsonProperty("mobile")
+    private String mobile;
+
+    @JsonProperty("userCode")
+    private String userCode;
+
+    @JsonProperty("userRole")
+    private String userRole;
+
+    @JsonProperty("version")
+    private String version;
+
+}

+ 0 - 1
tenant/insurance/quotation-dajia/src/main/java/com/jzg/quotation/dajia/crawler/entity/response/DaJiaCrawlerBaseResponse.java

@@ -10,7 +10,6 @@ import java.io.Serializable;
 
 
 /**
- * @version
  * @description: 大家财险【爬虫】【总】【响应体】
  * @author: wenks
  * @date: 2025/2/11 15:06

+ 38 - 7
tenant/insurance/quotation-dajia/src/main/java/com/jzg/quotation/dajia/crawler/entity/response/DaJiaCrawlerCarResponse.java

@@ -37,40 +37,62 @@ public class DaJiaCrawlerCarResponse implements Serializable {
         @Serial
         private static final long serialVersionUID = -9139048419262298709L;
 
+        /**
+         * 车型代码
+         */
         @JsonProperty("vehicleId")
         private String vehicleId;
 
         @JsonProperty("brandId")
         private String brandId;
-
+        /**
+         * 车型名称
+         */
         @JsonProperty("vehicleName")
         private String vehicleName;
 
         @JsonProperty("vehicleAlias")
         private String vehicleAlias;
+
         @JsonProperty("vehicleMaker")
         private String vehicleMaker;
+        /**
+         * 上市年份
+         */
         @JsonProperty("yearPattern")
         private String yearPattern;
+
         @JsonProperty("brandName")
         private String brandName;
+
         @JsonProperty("familyName")
         private String familyName;
+
         @JsonProperty("vehicleClass")
         private String vehicleClass;
+
         @JsonProperty("vehicleType")
         private String vehicleType;
+
         @JsonProperty("syxClassname")
         private String syxClassname;
+
         @JsonProperty("jqxClassname")
         private String jqxClassname;
+
         @JsonProperty("searchCode")
         private String searchCode;
+        /**
+         * 排量
+         */
         @JsonProperty("vehicleExhaust")
         private Double vehicleExhaust;
+
         @JsonProperty("vehicleTonnage")
         private String vehicleTonnage;
-
+        /**
+         * 核定载客
+         */
         @JsonProperty("vehicleSeat")
         private Integer vehicleSeat;
 
@@ -98,6 +120,9 @@ public class DaJiaCrawlerCarResponse implements Serializable {
         @JsonProperty("qualityMin")
         private Integer qualityMin;
 
+        /**
+         * 新车购置价
+         */
         @JsonProperty("vehiclePrice")
         private String vehiclePrice;
 
@@ -109,13 +134,19 @@ public class DaJiaCrawlerCarResponse implements Serializable {
 
         @JsonProperty("power")
         private String power;
-
+        /**
+         * 功率
+         */
         @JsonProperty("vehicleTypeNew")
         private String vehicleTypeNew;
-
+        /**
+         * 燃料类型代码
+         */
         @JsonProperty("powerTypeCode")
         private String powerTypeCode;
-
+        /**
+         * 燃料类型名称
+         */
         @JsonProperty("powerTypeName")
         private String powerTypeName;
 
@@ -187,12 +218,12 @@ public class DaJiaCrawlerCarResponse implements Serializable {
 
         @Override
         public String getCarYear() {
-            return "";
+            return yearPattern;
         }
 
         @Override
         public String getPurchasePrice() {
-            return "";
+            return vehiclePrice;
         }
     }
 }

+ 104 - 0
tenant/insurance/quotation-dajia/src/main/java/com/jzg/quotation/dajia/crawler/entity/response/DaJiaCrawlerChannelPackagesResponse.java

@@ -0,0 +1,104 @@
+package com.jzg.quotation.dajia.crawler.entity.response;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.List;
+
+@NoArgsConstructor
+@Data
+public class DaJiaCrawlerChannelPackagesResponse {
+
+    @JsonProperty("id")
+    private Integer id;
+
+    @JsonProperty("name")
+    private String name;
+
+    @JsonProperty("coopCode")
+    private String coopCode;
+
+    @JsonProperty("coopName")
+    private String coopName;
+
+    @JsonProperty("serviceCode")
+    private String serviceCode;
+
+    @JsonProperty("source")
+    private String source;
+
+    @JsonProperty("recommend")
+    private String recommend;
+
+    @JsonProperty("channelCode")
+    private String channelCode;
+
+    @JsonProperty("salesCode")
+    private String salesCode;
+
+    @JsonProperty("salesType")
+    private String salesType;
+    @JsonProperty("salesId")
+    private String salesId;
+    @JsonProperty("salesGroupCode")
+    private String salesGroupCode;
+    @JsonProperty("reworkPlantCode")
+    private String reworkPlantCode;
+    @JsonProperty("clientServiceCode")
+    private String clientServiceCode;
+    @JsonProperty("isDefault")
+    private String isDefault;
+    @JsonProperty("loginCompany")
+    private String loginCompany;
+    @JsonProperty("agencyCode")
+    private String agencyCode;
+    @JsonProperty("agencyName")
+    private String agencyName;
+    @JsonProperty("recommendName")
+    private String recommendName;
+    @JsonProperty("salesGroupName")
+    private String salesGroupName;
+    @JsonProperty("reworkName")
+    private String reworkName;
+    @JsonProperty("companyCode")
+    private String companyCode;
+    @JsonProperty("companyName")
+    private String companyName;
+    @JsonProperty("salesName")
+    private String salesName;
+    @JsonProperty("loadModel")
+    private String loadModel;
+    @JsonProperty("saleManagerId")
+    private String saleManagerId;
+    @JsonProperty("saleManagerName")
+    private String saleManagerName;
+    @JsonProperty("licenseNumber")
+    private String licenseNumber;
+    @JsonProperty("salesDisabled")
+    private String salesDisabled;
+    @JsonProperty("referrerDisabled")
+    private String referrerDisabled;
+    @JsonProperty("dptCodeId")
+    private String dptCodeId;
+    @JsonProperty("dptCodeName")
+    private String dptCodeName;
+    @JsonProperty("departmentCode")
+    private String departmentCode;
+    @JsonProperty("recommendCode")
+    private String recommendCode;
+    @JsonProperty("recSubChannel")
+    private String recSubChannel;
+    @JsonProperty("combineProductCode")
+    private String combineProductCode;
+    @JsonProperty("toBQr")
+    private String toBQr;
+    @JsonProperty("url")
+    private String url;
+    @JsonProperty("busiLabel")
+    private String busiLabel;
+    @JsonProperty("feeType")
+    private String feeType;
+    @JsonProperty("dptRelCde")
+    private String dptRelCde;
+}

+ 46 - 0
tenant/insurance/quotation-dajia/src/main/java/com/jzg/quotation/dajia/crawler/entity/response/DaJiaCrawlerCompaniesResponse.java

@@ -0,0 +1,46 @@
+package com.jzg.quotation.dajia.crawler.entity.response;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.List;
+
+@NoArgsConstructor
+@Data
+public class DaJiaCrawlerCompaniesResponse {
+
+    @JsonProperty("pageNum")
+    private Integer pageNum;
+
+    @JsonProperty("pageSize")
+    private Integer pageSize;
+
+    @JsonProperty("list")
+    private List<ListDTO> list;
+
+    @JsonProperty("total")
+    private Integer total;
+
+    @JsonProperty("channelOrderNo")
+    private String channelOrderNo;
+
+    @NoArgsConstructor
+    @Data
+    public static class ListDTO {
+        @JsonProperty("parentCode")
+        private String parentCode;
+        @JsonProperty("relationCode")
+        private String relationCode;
+        @JsonProperty("companyNature")
+        private String companyNature;
+        @JsonProperty("manageCompanyCode")
+        private String manageCompanyCode;
+        @JsonProperty("departmentCode")
+        private String departmentCode;
+        @JsonProperty("cDptCde")
+        private String cDptCde;
+        @JsonProperty("cDptNme")
+        private String cDptNme;
+    }
+}

+ 0 - 1
tenant/insurance/quotation-dajia/src/main/java/com/jzg/quotation/dajia/crawler/service/DaJiaCrawlerRequest.java

@@ -11,7 +11,6 @@ import com.jzg.quotation.commons.service.QuotationCrawlerBaseService;
 public interface DaJiaCrawlerRequest extends QuotationCrawlerBaseService {
 
 
-
 }
 
 

+ 11 - 6
tenant/insurance/quotation-dajia/src/main/java/com/jzg/quotation/dajia/crawler/service/impl/DaJiaCrawlerRequestImpl.java

@@ -35,33 +35,38 @@ public class DaJiaCrawlerRequestImpl implements DaJiaCrawlerRequest {
 
     @Override
     public void login(LoginBase loginBase) {
-        daJiaCrawlerRequestComponent.authenticate(loginBase.getUsername(), loginBase.getUsername(), DaJiaCrawlerRequestComponent.LOGINS_NUMBER);
+        daJiaCrawlerRequestComponent.authenticate(loginBase.getUsername(), loginBase.getPassword(), DaJiaCrawlerRequestComponent.LOGINS_NUMBER);
     }
 
     @Override
     public QuoteResultsVo quote(QuoteVo quoteVo) {
         // 获取token的请求头
-        AttributionInformationVo attributionInformationVo = quoteVo.getOrder().getAttributionInformationVo();
+        AttributionInformationVo attributionInformationVo = quoteVo
+                .getOrder()
+                .getAttributionInformationVo();
         HttpHeaders headers = daJiaCrawlerRequestComponent.getHeaders(attributionInformationVo.getUsername(), attributionInformationVo.getPassword());
+        String userCode = daJiaCrawlerRequestComponent.getUserCode(attributionInformationVo.getUsername());
+
         // 配置信息
         DaJiaCrawlerConfigureParameters parameters = ConfigureParametersConversion.conversionEntity(DaJiaCrawlerConfigureParameters.class, attributionInformationVo.getConfigInfo());
         // 车型查询
-        DaJiaCrawlerCarRequest daJiaCrawlerCarRequest = new DaJiaCrawlerCarRequest();
+        DaJiaCrawlerCarRequest daJiaCrawlerCarRequest = new DaJiaCrawlerCarRequest(quoteVo.getCarInfoVo(), "", "", userCode);
         List<DaJiaCrawlerCarResponse.ListDTO> car = daJiaCrawlerRequestComponent.car(daJiaCrawlerCarRequest, headers);
         // 获取相同的车型
         DaJiaCrawlerCarResponse.ListDTO listDTO = CarModelsFilterUtils.to(car, quoteVo.getCarInfoVo());
 
         // 计算折旧价格
-        DaJiaCrawlerActualValueRequest daJiaCrawlerActualValueRequest = new DaJiaCrawlerActualValueRequest();
+        DaJiaCrawlerActualValueRequest daJiaCrawlerActualValueRequest = new DaJiaCrawlerActualValueRequest(listDTO, quoteVo.getCarInfoVo(), userCode);
         String actualValue = daJiaCrawlerRequestComponent.actualValue(daJiaCrawlerActualValueRequest, headers);
 
         // 保费计算
-        DaJiaCrawlerPriceRequest daJiaCrawlerPriceRequest = new DaJiaCrawlerPriceRequest();
+        DaJiaCrawlerPriceRequest daJiaCrawlerPriceRequest = new DaJiaCrawlerPriceRequest(quoteVo, parameters, userCode);
         DaJiaCrawlerPriceResponse crawlerPriceResponse = daJiaCrawlerRequestComponent.price(daJiaCrawlerPriceRequest, headers);
 
         // 订单保存
-        DaJiaCrawlerSaveRequest daJiaCrawlerSaveRequest = new DaJiaCrawlerSaveRequest(crawlerPriceResponse, "");
+        DaJiaCrawlerSaveRequest daJiaCrawlerSaveRequest = new DaJiaCrawlerSaveRequest(crawlerPriceResponse, userCode);
         DaJiaCrawlerSaveResponse daJiaCrawlerSaveResponse = daJiaCrawlerRequestComponent.save(daJiaCrawlerSaveRequest, headers);
+
         // 返回报价信息
         return null;
     }

+ 18 - 1
tenant/insurance/quotation-dajia/src/main/java/com/jzg/quotation/dajia/crawler/utils/DESEncryption.java

@@ -5,6 +5,7 @@ import cn.hutool.core.codec.Base64;
 import cn.hutool.crypto.Mode;
 import cn.hutool.crypto.Padding;
 import cn.hutool.crypto.symmetric.DES;
+import com.alibaba.fastjson2.JSON;
 import org.apache.tomcat.util.buf.HexUtils;
 
 import java.time.LocalDate;
@@ -25,13 +26,16 @@ public class DESEncryption {
 
     /**
      * 加密key的过程
+     *
      * @return DES
      */
     private static DES des() {
         LocalDate localDate = LocalDate.now();
         int dayOfMonth = localDate.getDayOfMonth();
         int month = localDate.getMonthValue() - 2;
-        String now = localDate.plusMonths(dayOfMonth + month).format(DateTimeFormatter.ofPattern("yyyyMMdd"));
+        String now = localDate
+                .plusMonths(dayOfMonth + month)
+                .format(DateTimeFormatter.ofPattern("yyyyMMdd"));
         String key = now + SIGN;
         String encode = Base64.encode(key);
         return new DES(Mode.ECB, Padding.PKCS5Padding, encode.getBytes());
@@ -58,4 +62,17 @@ public class DESEncryption {
         return des().decryptStr(bytes);
     }
 
+    /**
+     * 解密并且转码
+     *
+     * @param data   加密参数
+     * @param tClass json转换后的类型
+     * @param <T>    json转换后的泛型
+     * @return 解密后的类
+     */
+    public static <T> T decrypt(String data, Class<T> tClass) {
+        String decrypt = decrypt(data);
+        return JSON.parseObject(decrypt, tClass);
+    }
+
 }

+ 1 - 2
tenant/insurance/quotation-dajia/src/main/java/com/jzg/quotation/dajia/crawler/constant/enums/dictionary/CIKind.java → tenant/insurance/quotation-dajia/src/main/java/com/jzg/quotation/dajia/enums/dictionary/CIKind.java

@@ -1,11 +1,10 @@
-package com.jzg.quotation.dajia.crawler.constant.enums.dictionary;
+package com.jzg.quotation.dajia.enums.dictionary;
 
 import lombok.AllArgsConstructor;
 import lombok.Getter;
 
 
 /**
- * @version
  * @description: 大家财险 交强险
  * @author: wenks
  * @date: 2025/2/13 15:39

+ 1 - 1
tenant/insurance/quotation-dajia/src/main/java/com/jzg/quotation/dajia/crawler/constant/enums/dictionary/Risk.java → tenant/insurance/quotation-dajia/src/main/java/com/jzg/quotation/dajia/enums/dictionary/Risk.java

@@ -1,4 +1,4 @@
-package com.jzg.quotation.dajia.crawler.constant.enums.dictionary;
+package com.jzg.quotation.dajia.enums.dictionary;
 
 
 import lombok.AllArgsConstructor;

+ 2 - 2
tenant/insurance/quotation-summary/pom.xml

@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0"
-         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xmlns="http://maven.apache.org/POM/4.0.0"
          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
     <modelVersion>4.0.0</modelVersion>
     <parent>

+ 0 - 1
tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/controller/InsuranceCompanyRequestController.java

@@ -16,5 +16,4 @@ public class InsuranceCompanyRequestController {
     private final InsuranceCompanyRequestService insuranceCompanyRequestService;
 
 
-
 }

+ 33 - 14
tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/converter/QuoteInfoConverter.java

@@ -24,38 +24,57 @@ public class QuoteInfoConverter {
      * @param quoteRuleMappingList 报价规则映射
      */
     public static void converterCarInfoVo(CarInfoVo carInfoVo, List<QuoteRuleMapping> quoteRuleMappingList) {
-        Map<String, Map<String, String>> groupCodeMap = quoteRuleMappingList.stream()
+        Map<String, Map<String, String>> groupCodeMap = quoteRuleMappingList
+                .stream()
                 .collect(Collectors.groupingBy(QuoteRuleMapping::getGroupCode, Collectors.toMap(QuoteRuleMapping::getPlatformCode, QuoteRuleMapping::getRuleCode)));
         // 使用性质
-        carInfoVo.setCarNatureCode(groupCodeMap.get(QuoteRuleGroup.CAR_NATURE.getCode()).get(carInfoVo.getCarNatureCode()));
+        carInfoVo.setCarNatureCode(groupCodeMap
+                .get(QuoteRuleGroup.CAR_NATURE.getCode())
+                .get(carInfoVo.getCarNatureCode()));
         // 车辆用途
-        carInfoVo.setVehicleUseCode(groupCodeMap.get(QuoteRuleGroup.VEHICLE_USE.getCode()).get(carInfoVo.getVehicleUseCode()));
+        carInfoVo.setVehicleUseCode(groupCodeMap
+                .get(QuoteRuleGroup.VEHICLE_USE.getCode())
+                .get(carInfoVo.getVehicleUseCode()));
         // 车辆种类
-        carInfoVo.setCarKindCode(groupCodeMap.get(QuoteRuleGroup.CAR_KIND.getCode()).get(carInfoVo.getCarKindCode()));
+        carInfoVo.setCarKindCode(groupCodeMap
+                .get(QuoteRuleGroup.CAR_KIND.getCode())
+                .get(carInfoVo.getCarKindCode()));
         // 能源类型
-        carInfoVo.setEnergyTypeCode(groupCodeMap.get(QuoteRuleGroup.ENERGY_TYPE.getCode()).get(carInfoVo.getEnergyTypeCode()));
+        carInfoVo.setEnergyTypeCode(groupCodeMap
+                .get(QuoteRuleGroup.ENERGY_TYPE.getCode())
+                .get(carInfoVo.getEnergyTypeCode()));
         // 车辆类型 有的保险公司不需要映射
-        String carType = groupCodeMap.get(QuoteRuleGroup.CAR_TYPE.getCode()).get(carInfoVo.getCarTypeCode());
-        if(StringUtils.hasText(carType)) {
+        String carType = groupCodeMap
+                .get(QuoteRuleGroup.CAR_TYPE.getCode())
+                .get(carInfoVo.getCarTypeCode());
+        if (StringUtils.hasText(carType)) {
             carInfoVo.setCarTypeCode(carType);
         }
         // 所属性质
-        carInfoVo.setPropertyCode(groupCodeMap.get(QuoteRuleGroup.PROPERTY.getCode()).get(carInfoVo.getPropertyCode()));
+        carInfoVo.setPropertyCode(groupCodeMap
+                .get(QuoteRuleGroup.PROPERTY.getCode())
+                .get(carInfoVo.getPropertyCode()));
         // 车辆明细
-        carInfoVo.setLicenseColorCode(groupCodeMap.get(QuoteRuleGroup.CAR_KIND_DETAIL.getCode()).get(carInfoVo.getLicenseColorCode()));
+        carInfoVo.setLicenseColorCode(groupCodeMap
+                .get(QuoteRuleGroup.CAR_KIND_DETAIL.getCode())
+                .get(carInfoVo.getLicenseColorCode()));
         // 号牌颜色
-        carInfoVo.setLicenseColorCode(groupCodeMap.get(QuoteRuleGroup.LICENSE_COLOR.getCode()).get(carInfoVo.getLicenseColorCode()));
+        carInfoVo.setLicenseColorCode(groupCodeMap
+                .get(QuoteRuleGroup.LICENSE_COLOR.getCode())
+                .get(carInfoVo.getLicenseColorCode()));
         // 号牌种类
-        carInfoVo.setLicenseKindCode(groupCodeMap.get(QuoteRuleGroup.LICENSE_KIND.getCode()).get(carInfoVo.getLicenseKindCode()));
+        carInfoVo.setLicenseKindCode(groupCodeMap
+                .get(QuoteRuleGroup.LICENSE_KIND.getCode())
+                .get(carInfoVo.getLicenseKindCode()));
     }
 
     /**
-     *
-     * @param kindInfoVo 险种信息
+     * @param kindInfoVo           险种信息
      * @param quoteRuleMappingList 报价规则映射
      */
     public static void converterKindInfoVo(List<KindInfoVo> kindInfoVo, List<QuoteRuleMapping> quoteRuleMappingList) {
-        Map<String, QuoteRuleMapping> ruleMappingMap = quoteRuleMappingList.stream()
+        Map<String, QuoteRuleMapping> ruleMappingMap = quoteRuleMappingList
+                .stream()
                 .collect(Collectors.toMap(QuoteRuleMapping::getPlatformCode, x -> x));
         kindInfoVo.forEach(kind -> {
             QuoteRuleMapping quoteRuleMapping = ruleMappingMap.get(kind.getPlatformKindCode());

+ 6 - 11
tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/entity/po/QuoteImageRuleMapping.java

@@ -4,56 +4,51 @@ import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
 
 import java.io.Serial;
 import java.io.Serializable;
-import lombok.Data;
 
 /**
  * 报价险种映射
+ *
  * @TableName quote_image_rule_mapping
  */
-@TableName(value ="quote_image_rule_mapping")
+@TableName(value = "quote_image_rule_mapping")
 @Data
 public class QuoteImageRuleMapping implements Serializable {
+    @Serial
+    @TableField(exist = false)
+    private static final long serialVersionUID = 1L;
     /**
      * 主键
      */
     @TableId(value = "id", type = IdType.AUTO)
     private Integer id;
-
     /**
      * 保险公司编码
      */
     @TableField(value = "insurance_company_code")
     private String insuranceCompanyCode;
-
     /**
      * 平台影像分类代码
      */
     @TableField(value = "image_code")
     private String imageCode;
-
     /**
      * 平台影像分类名称
      */
     @TableField(value = "image_type")
     private String imageType;
-
     /**
      * 保司影像分类代码
      */
     @TableField(value = "insurance_image_code")
     private String insuranceImageCode;
-
     /**
      * 保司影像分类代码
      */
     @TableField(value = "insurance_image_type")
     private String insuranceImageType;
 
-    @Serial
-    @TableField(exist = false)
-    private static final long serialVersionUID = 1L;
-
 }

+ 5 - 7
tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/entity/po/QuoteRuleConfig.java

@@ -11,32 +11,30 @@ import java.io.Serializable;
 
 /**
  * 报价险种规则配置
+ *
  * @TableName quote_kind_config
  */
 @Data
-@TableName(value ="quote_rule_config")
+@TableName(value = "quote_rule_config")
 public class QuoteRuleConfig implements Serializable {
+    @Serial
+    @TableField(exist = false)
+    private static final long serialVersionUID = 1L;
     /**
      * 主键
      */
     @TableId(value = "id", type = IdType.AUTO)
     private Integer id;
-
     /**
      * 分类代码
      */
     @TableField(value = "group_code")
     private String groupCode;
-
     /**
      * 分类名称
      */
     @TableField(value = "group_name")
     private String groupName;
 
-    @Serial
-    @TableField(exist = false)
-    private static final long serialVersionUID = 1L;
-
 
 }

+ 3 - 11
tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/entity/po/QuoteRuleMapping.java

@@ -17,56 +17,48 @@ import java.io.Serializable;
 @Data
 @TableName(value = "quote_rule_mapping")
 public class QuoteRuleMapping implements Serializable {
+    @Serial
+    @TableField(exist = false)
+    private static final long serialVersionUID = 1L;
     /**
      * 主键
      */
     @TableId(value = "id", type = IdType.AUTO)
     private Integer id;
-
     /**
      * 分类
      */
     @TableField(value = "category")
     private String category;
-
     /**
      * 保险公司编码
      */
     @TableField(value = "insurance_company_code")
     private String insuranceCompanyCode;
-
     /**
      * 分类代码
      */
     @TableField(value = "group_code")
     private String groupCode;
-
     /**
      * 分类名称
      */
     @TableField(value = "group_name")
     private String groupName;
-
     /**
      * 规则名称
      */
     @TableField(value = "rule_name")
     private String ruleName;
-
     /**
      * 规则编码
      */
     @TableField(value = "rule_code")
     private String ruleCode;
-
     /**
      * 默认代码
      */
     @TableField(value = "platform_code")
     private String platformCode;
 
-    @Serial
-    @TableField(exist = false)
-    private static final long serialVersionUID = 1L;
-
 }

+ 6 - 6
tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/mapper/QuoteImageRuleMappingMapper.java

@@ -1,14 +1,14 @@
 package com.jzg.quotation.summary.mapper;
 
-import com.jzg.quotation.summary.entity.po.QuoteImageRuleMapping;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.jzg.quotation.summary.entity.po.QuoteImageRuleMapping;
 
 /**
-* @author Administrator
-* @description 针对表【quote_image_rule_mapping(报价险种映射)】的数据库操作Mapper
-* @createDate 2025-02-26 18:57:59
-* @Entity generator.domain.QuoteImageRuleMapping
-*/
+ * @author Administrator
+ * @description 针对表【quote_image_rule_mapping(报价险种映射)】的数据库操作Mapper
+ * @createDate 2025-02-26 18:57:59
+ * @Entity generator.domain.QuoteImageRuleMapping
+ */
 public interface QuoteImageRuleMappingMapper extends BaseMapper<QuoteImageRuleMapping> {
 
 }

+ 5 - 5
tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/mapper/QuoteRuleConfigMapper.java

@@ -4,11 +4,11 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.jzg.quotation.summary.entity.po.QuoteRuleConfig;
 
 /**
-* @author Administrator
-* @description 针对表【quote_kind_config(报价险种规则配置)】的数据库操作Mapper
-* @createDate 2025-02-20 11:00:39
-* @Entity generator.domain.QuoteKindConfig
-*/
+ * @author Administrator
+ * @description 针对表【quote_kind_config(报价险种规则配置)】的数据库操作Mapper
+ * @createDate 2025-02-20 11:00:39
+ * @Entity generator.domain.QuoteKindConfig
+ */
 public interface QuoteRuleConfigMapper extends BaseMapper<QuoteRuleConfig> {
 
 }

+ 5 - 5
tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/mapper/QuoteRuleMappingMapper.java

@@ -4,11 +4,11 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.jzg.quotation.summary.entity.po.QuoteRuleMapping;
 
 /**
-* @author Administrator
-* @description 针对表【quote_kind_mapping(报价险种映射)】的数据库操作Mapper
-* @createDate 2025-02-20 11:00:39
-* @Entity generator.domain.QuoteKindMapping
-*/
+ * @author Administrator
+ * @description 针对表【quote_kind_mapping(报价险种映射)】的数据库操作Mapper
+ * @createDate 2025-02-20 11:00:39
+ * @Entity generator.domain.QuoteKindMapping
+ */
 public interface QuoteRuleMappingMapper extends BaseMapper<QuoteRuleMapping> {
 
 }

+ 1 - 2
tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/service/QuoteImageRuleMappingService.java

@@ -1,10 +1,9 @@
 package com.jzg.quotation.summary.service;
 
-import com.jzg.quotation.commons.entity.vo.aggregated.InsuranceUploadImageVo;
+import com.baomidou.mybatisplus.extension.service.IService;
 import com.jzg.quotation.commons.entity.vo.image.ImageVo;
 import com.jzg.quotation.commons.entity.vo.image.InsuranceImageVo;
 import com.jzg.quotation.summary.entity.po.QuoteImageRuleMapping;
-import com.baomidou.mybatisplus.extension.service.IService;
 
 import java.util.List;
 import java.util.Map;

+ 4 - 5
tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/service/QuoteRuleConfigService.java

@@ -4,12 +4,11 @@ import com.baomidou.mybatisplus.extension.service.IService;
 import com.jzg.quotation.summary.entity.po.QuoteRuleConfig;
 
 /**
-* @author Administrator
-* @description 针对表【quote_kind_config(报价险种规则配置)】的数据库操作Service
-* @createDate 2025-02-20 11:00:39
-*/
+ * @author Administrator
+ * @description 针对表【quote_kind_config(报价险种规则配置)】的数据库操作Service
+ * @createDate 2025-02-20 11:00:39
+ */
 public interface QuoteRuleConfigService extends IService<QuoteRuleConfig> {
 
 
-
 }

+ 5 - 5
tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/service/QuoteRuleMappingService.java

@@ -1,21 +1,21 @@
 package com.jzg.quotation.summary.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
-import com.jzg.quotation.commons.entity.vo.aggregated.UploadImageVo;
 import com.jzg.quotation.summary.entity.po.QuoteRuleMapping;
 
 import java.util.List;
 import java.util.Map;
 
 /**
-* @author Administrator
-* @description 针对表【quote_kind_mapping(报价险种映射)】的数据库操作Service
-* @createDate 2025-02-20 11:00:39
-*/
+ * @author Administrator
+ * @description 针对表【quote_kind_mapping(报价险种映射)】的数据库操作Service
+ * @createDate 2025-02-20 11:00:39
+ */
 public interface QuoteRuleMappingService extends IService<QuoteRuleMapping> {
 
     /**
      * 根据保险公司获取保险公司报价映射规则
+     *
      * @param insuranceCompanyCode 保险公司code
      * @return 映射关系
      */

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

@@ -14,7 +14,6 @@ import com.jzg.quotation.commons.service.QuotationApiBaseService;
 import com.jzg.quotation.commons.service.QuotationBaseService;
 import com.jzg.quotation.commons.service.QuotationCrawlerBaseService;
 import com.jzg.quotation.summary.converter.QuoteInfoConverter;
-import com.jzg.quotation.summary.entity.po.QuoteImageRuleMapping;
 import com.jzg.quotation.summary.entity.po.QuoteRuleMapping;
 import com.jzg.quotation.summary.service.InsuranceCompanyRequestService;
 import com.jzg.quotation.summary.service.QuoteImageRuleMappingService;
@@ -77,7 +76,10 @@ public class InsuranceCompanyRequestServiceImpl implements InsuranceCompanyReque
     public void uploadImage(UploadImageVo uploadImageVo) {
         OrderBase order = uploadImageVo.getOrder();
         String insuranceCode = extractEnglishChars(order.getInsuranceCompanyCode());
-        Map<String, ImageVo> imageVoMap = uploadImageVo.getImageVoList().stream().collect(Collectors.toMap(ImageVo::getImageType, x -> x));
+        Map<String, ImageVo> imageVoMap = uploadImageVo
+                .getImageVoList()
+                .stream()
+                .collect(Collectors.toMap(ImageVo::getImageType, x -> x));
         List<InsuranceImageVo> insuranceImageVoList = quoteImageRuleMappingService.buildInsuranceUploadImageVo(insuranceCode, imageVoMap);
         InsuranceUploadImageVo insuranceUploadImageVo = new InsuranceUploadImageVo(uploadImageVo.getOrder(), insuranceImageVoList);
         getQuotationBase(order.getApiType(), insuranceCode).uploadImage(insuranceUploadImageVo);

+ 3 - 5
tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/service/impl/QuoteImageRuleMappingServiceImpl.java

@@ -29,10 +29,7 @@ public class QuoteImageRuleMappingServiceImpl extends ServiceImpl<QuoteImageRule
                 .eq(QuoteImageRuleMapping::getInsuranceCompanyCode, insuranceCode)
                 .list()
                 .stream()
-                .collect(Collectors.groupingBy(
-                        QuoteImageRuleMapping::getInsuranceImageCode,
-                        Collectors.collectingAndThen(Collectors.toList(), mappings -> buildImageVo(mappings, imageVoMap))
-                ))
+                .collect(Collectors.groupingBy(QuoteImageRuleMapping::getInsuranceImageCode, Collectors.collectingAndThen(Collectors.toList(), mappings -> buildImageVo(mappings, imageVoMap))))
                 .values()
                 .stream()
                 .filter(Objects::nonNull)
@@ -42,7 +39,8 @@ public class QuoteImageRuleMappingServiceImpl extends ServiceImpl<QuoteImageRule
     private InsuranceImageVo buildImageVo(List<QuoteImageRuleMapping> mappings, Map<String, ImageVo> imageVoMap) {
         final QuoteImageRuleMapping firstMapping = mappings.get(0);
 
-        List<InsuranceImageVo.ImageDTO> imageList = mappings.stream()
+        List<InsuranceImageVo.ImageDTO> imageList = mappings
+                .stream()
                 .map(QuoteImageRuleMapping::getImageCode)
                 .map(imageVoMap::get)
                 .filter(Objects::nonNull)

+ 5 - 5
tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/service/impl/QuoteRuleConfigServiceImpl.java

@@ -7,13 +7,13 @@ import com.jzg.quotation.summary.service.QuoteRuleConfigService;
 import org.springframework.stereotype.Service;
 
 /**
-* @author Administrator
-* @description 针对表【quote_kind_config(报价险种规则配置)】的数据库操作Service实现
-* @createDate 2025-02-20 11:00:39
-*/
+ * @author Administrator
+ * @description 针对表【quote_kind_config(报价险种规则配置)】的数据库操作Service实现
+ * @createDate 2025-02-20 11:00:39
+ */
 @Service
 public class QuoteRuleConfigServiceImpl extends ServiceImpl<QuoteRuleConfigMapper, QuoteRuleConfig>
-    implements QuoteRuleConfigService{
+        implements QuoteRuleConfigService {
 
 }
 

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

@@ -31,7 +31,8 @@ public class QuoteRuleMappingServiceImpl extends ServiceImpl<QuoteRuleMappingMap
             throw new SystemException("该保险公司未配置险种映射");
         }
 
-        return list.stream()
+        return list
+                .stream()
                 .filter(quoteKindMapping -> StringUtils.hasLength(quoteKindMapping.getPlatformCode()))
                 .collect(Collectors.groupingBy(QuoteRuleMapping::getCategory));
     }

+ 6 - 6
tenant/insurance/quotation-summary/src/main/resources/mapper/QuoteImageRuleMappingMapper.xml

@@ -5,12 +5,12 @@
 <mapper namespace="com.jzg.quotation.summary.mapper.QuoteImageRuleMappingMapper">
 
     <resultMap id="BaseResultMap" type="com.jzg.quotation.summary.entity.po.QuoteImageRuleMapping">
-            <id property="id" column="id" jdbcType="INTEGER"/>
-            <result property="insuranceCompanyCode" column="insurance_company_code" jdbcType="VARCHAR"/>
-            <result property="imageCode" column="image_code" jdbcType="VARCHAR"/>
-            <result property="imageType" column="image_type" jdbcType="VARCHAR"/>
-            <result property="insuranceImageCode" column="insurance_image_code" jdbcType="VARCHAR"/>
-            <result property="insuranceImageType" column="insurance_image_type" jdbcType="VARCHAR"/>
+        <id property="id" column="id" jdbcType="INTEGER"/>
+        <result property="insuranceCompanyCode" column="insurance_company_code" jdbcType="VARCHAR"/>
+        <result property="imageCode" column="image_code" jdbcType="VARCHAR"/>
+        <result property="imageType" column="image_type" jdbcType="VARCHAR"/>
+        <result property="insuranceImageCode" column="insurance_image_code" jdbcType="VARCHAR"/>
+        <result property="insuranceImageType" column="insurance_image_type" jdbcType="VARCHAR"/>
     </resultMap>
 
     <sql id="Base_Column_List">

+ 3 - 3
tenant/insurance/quotation-summary/src/main/resources/mapper/QuoteRuleConfigMapper.xml

@@ -5,9 +5,9 @@
 <mapper namespace="com.jzg.quotation.summary.mapper.QuoteRuleConfigMapper">
 
     <resultMap id="BaseResultMap" type="com.jzg.quotation.summary.entity.po.QuoteRuleConfig">
-            <id property="id" column="id" jdbcType="INTEGER"/>
-            <result property="groupCode" column="group_code" jdbcType="VARCHAR"/>
-            <result property="groupName" column="group_name" jdbcType="VARCHAR"/>
+        <id property="id" column="id" jdbcType="INTEGER"/>
+        <result property="groupCode" column="group_code" jdbcType="VARCHAR"/>
+        <result property="groupName" column="group_name" jdbcType="VARCHAR"/>
     </resultMap>
 
     <sql id="Base_Column_List">

+ 7 - 7
tenant/insurance/quotation-summary/src/main/resources/mapper/QuoteRuleMappingMapper.xml

@@ -5,13 +5,13 @@
 <mapper namespace="com.jzg.quotation.summary.mapper.QuoteRuleMappingMapper">
 
     <resultMap id="BaseResultMap" type="com.jzg.quotation.summary.entity.po.QuoteRuleMapping">
-            <id property="id" column="id" jdbcType="INTEGER"/>
-            <result property="insuranceCompanyCode" column="insurance_company_code" jdbcType="VARCHAR"/>
-            <result property="groupCode" column="group_code" jdbcType="VARCHAR"/>
-            <result property="groupName" column="group_name" jdbcType="VARCHAR"/>
-            <result property="ruleName" column="rule_name" jdbcType="VARCHAR"/>
-            <result property="ruleCode" column="rule_code" jdbcType="VARCHAR"/>
-            <result property="platformCode" column="platform_code" jdbcType="VARCHAR"/>
+        <id property="id" column="id" jdbcType="INTEGER"/>
+        <result property="insuranceCompanyCode" column="insurance_company_code" jdbcType="VARCHAR"/>
+        <result property="groupCode" column="group_code" jdbcType="VARCHAR"/>
+        <result property="groupName" column="group_name" jdbcType="VARCHAR"/>
+        <result property="ruleName" column="rule_name" jdbcType="VARCHAR"/>
+        <result property="ruleCode" column="rule_code" jdbcType="VARCHAR"/>
+        <result property="platformCode" column="platform_code" jdbcType="VARCHAR"/>
     </resultMap>
 
     <sql id="Base_Column_List">

+ 2 - 2
tenant/insurance/quotation-zijin/pom.xml

@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0"
-         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xmlns="http://maven.apache.org/POM/4.0.0"
          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
     <modelVersion>4.0.0</modelVersion>
     <parent>

+ 8 - 5
tenant/insurance/quotation-zijin/src/main/java/com/jzg/quotation/zijin/api/build/ZiJinAPIQuoteResultsVoBuild.java

@@ -16,7 +16,6 @@ import java.util.stream.Collectors;
 
 
 /**
- * @version
  * @description: 紫金财险【API】 构造报价返回参数
  * @author: wenks
  * @date: 2025/2/25 18:10
@@ -48,16 +47,18 @@ public class ZiJinAPIQuoteResultsVoBuild {
     private static List<ExpenseFactor> buildExpenseFactor(List<CalculatePremiumResponse.PriceInfoListDTO> priceInfoList) {
 
 
-
         return new ArrayList<>();
     }
 
     private static List<KindInfoVo> buildKindInfoVo(List<KindInfoVo> kindInfoVo, List<CalculatePremiumResponse.ItemKindListDTO> itemKindList) {
-        Map<String, CalculatePremiumResponse.ItemKindListDTO> collect = itemKindList.stream()
+        Map<String, CalculatePremiumResponse.ItemKindListDTO> collect = itemKindList
+                .stream()
                 .collect(Collectors.toMap(CalculatePremiumResponse.ItemKindListDTO::getKindCode, x -> x));
         kindInfoVo.forEach(kind -> {
             CalculatePremiumResponse.ItemKindListDTO itemKindListDTO = collect.get(kind.getKindCode());
-            if (KindCode.A.getCode().equals(kind.getPlatformKindCode())) {
+            if (KindCode.A
+                    .getCode()
+                    .equals(kind.getPlatformKindCode())) {
                 kind.setAmount(itemKindListDTO.getAmount());
             }
             // 设置保费
@@ -67,7 +68,9 @@ public class ZiJinAPIQuoteResultsVoBuild {
     }
 
     private static void buildPremium(QuoteResultsVo quoteResultsVo, List<CalculatePremiumResponse.PlanListDTO> planList) {
-        Map<String, String> planMap = planList.stream().collect(Collectors.toMap(CalculatePremiumResponse.PlanListDTO::getRiskCode, CalculatePremiumResponse.PlanListDTO::getPlanDate));
+        Map<String, String> planMap = planList
+                .stream()
+                .collect(Collectors.toMap(CalculatePremiumResponse.PlanListDTO::getRiskCode, CalculatePremiumResponse.PlanListDTO::getPlanDate));
         quoteResultsVo.setCiPremium(planMap.get(RiskCodeEnum.TRAFFIC_CODE));
         quoteResultsVo.setBiPremium(planMap.get(RiskCodeEnum.BUSINESS_CODE));
         quoteResultsVo.setVvTax(planMap.get(RiskCodeEnum.ACCIDENT_CODE));

+ 15 - 6
tenant/insurance/quotation-zijin/src/main/java/com/jzg/quotation/zijin/api/component/ZiJinApiRequestComponent.java

@@ -2,6 +2,7 @@ package com.jzg.quotation.zijin.api.component;
 
 import com.jzg.commons.exception.SystemException;
 import com.jzg.quotation.commons.component.RequestComponent;
+import com.jzg.quotation.commons.constant.CacheConstant;
 import com.jzg.quotation.zijin.api.constant.enums.RequestUrl;
 import com.jzg.quotation.zijin.api.entity.ZiJinApiConfigureParameters;
 import com.jzg.quotation.zijin.api.entity.request.*;
@@ -71,9 +72,9 @@ public class ZiJinApiRequestComponent {
         map.put(AUTHORIZATION, accessToken.getToken());
         map.put(ZKI_API_AUTHORIZATION, queryTokenResponse.getToken());
         // 3.1 存入redis中
-        RMap<Object, Object> rMap = redissonClient.getMap("zj:accessToken:" + ziJinApiConfigureParameters.getAppKey());
+        RMap<Object, Object> rMap = redissonClient.getMap(CacheConstant.ZIJIN_AUTHORIZATION + ziJinApiConfigureParameters.getAppKey());
         rMap.putAll(map);
-        rMap.expire(Duration.ofHours(10));
+        rMap.expire(Duration.ofHours(CacheConstant.ZIJIN_AUTHORIZATION_TIME));
         return httpHeaders;
     }
 
@@ -89,8 +90,12 @@ public class ZiJinApiRequestComponent {
         }
         number--;
         HttpHeaders httpHeaders = new HttpHeaders();
-        String authorization = (String) redissonClient.getMap(ZKI_API_AUTHORIZATION).get(AUTHORIZATION);
-        String zKIApiAuthorization = (String) redissonClient.getMap(ZKI_API_AUTHORIZATION).get(ZKI_API_AUTHORIZATION);
+        String authorization = (String) redissonClient
+                .getMap(CacheConstant.ZIJIN_AUTHORIZATION + ziJinApiConfigureParameters.getAppKey())
+                .get(AUTHORIZATION);
+        String zKIApiAuthorization = (String) redissonClient
+                .getMap(CacheConstant.ZIJIN_AUTHORIZATION + ziJinApiConfigureParameters.getAppKey())
+                .get(ZKI_API_AUTHORIZATION);
         // 缓存中不存在就去请求token
         if (!ObjectUtils.isEmpty(authorization) && !ObjectUtils.isEmpty(zKIApiAuthorization)) {
             System.out.print("---------------\n--------------\n---------------\n--------------\n---------------\n--------------\n---------------\n--------------\n---------------\n--------------\n");
@@ -116,7 +121,9 @@ public class ZiJinApiRequestComponent {
         } catch (InterruptedException e) {
             log.debug(e.getMessage());
             lock.unlock();
-            Thread.currentThread().interrupt();
+            Thread
+                    .currentThread()
+                    .interrupt();
             throw new SystemException(e.getMessage());
         }
 
@@ -125,7 +132,9 @@ public class ZiJinApiRequestComponent {
             Thread.sleep(280);
         } catch (InterruptedException e) {
             log.debug(e.getMessage());
-            Thread.currentThread().interrupt();
+            Thread
+                    .currentThread()
+                    .interrupt();
             throw new SystemException("接口请求异常,请重试!");
         }
 

+ 0 - 1
tenant/insurance/quotation-zijin/src/main/java/com/jzg/quotation/zijin/api/constant/enums/CalculateFlagEnum.java

@@ -4,7 +4,6 @@ import lombok.AllArgsConstructor;
 import lombok.Getter;
 
 /**
- * @version
  * @description: 关联单标识
  * @author: wenks
  * @date: 2023/9/20 9:19

+ 0 - 1
tenant/insurance/quotation-zijin/src/main/java/com/jzg/quotation/zijin/api/constant/enums/CarCheckReasonEnum.java

@@ -5,7 +5,6 @@ import lombok.AllArgsConstructor;
 import lombok.Getter;
 
 
-
 @AllArgsConstructor
 @Getter
 public enum CarCheckReasonEnum {

+ 8 - 2
tenant/insurance/quotation-zijin/src/main/java/com/jzg/quotation/zijin/api/entity/po/ZiJinApiOrder.java

@@ -28,7 +28,13 @@ public class ZiJinApiOrder {
      * 订单号
      */
     private String orderNo;
-
-    private String status;
+    /**
+     * 产品代码
+     */
+    private String productsCode;
+    /**
+     * 被保人省份证
+     */
+    private String insuredIdentify;
 
 }

+ 45 - 37
tenant/insurance/quotation-zijin/src/main/java/com/jzg/quotation/zijin/api/entity/request/CalculatePremiumRequest.java

@@ -241,6 +241,30 @@ public class CalculatePremiumRequest implements Serializable {
         @JsonProperty("startMinuteCI")
         private String startMinuteCI;
 
+        public BaseInfoDTO(RiskInfoVo ciRiskInfoVo, RiskInfoVo biRiskInfoVo) {
+            // 交强险
+            String ciStartDate = Optional
+                    .ofNullable(ciRiskInfoVo)
+                    .map(RiskInfoVo::getStartDate)
+                    .orElse("");
+            setCommerceTime(ciStartDate);
+            // 商业险
+            String biStartDate = Optional
+                    .ofNullable(biRiskInfoVo)
+                    .map(RiskInfoVo::getStartDate)
+                    .orElse("");
+            setStrengthTime(biStartDate);
+
+            if (!StringUtils.hasLength(ciStartDate)) {
+                this.calculateFlag = CalculateFlagEnum.CF_1.getCode();
+            } else if (!StringUtils.hasLength(biStartDate)) {
+                this.calculateFlag = CalculateFlagEnum.CF_2.getCode();
+            } else {
+                this.calculateFlag = CalculateFlagEnum.CF_0.getCode();
+            }
+
+        }
+
         /**
          * 商业险
          *
@@ -252,7 +276,6 @@ public class CalculatePremiumRequest implements Serializable {
             }
         }
 
-
         /**
          * 交强险
          *
@@ -322,28 +345,6 @@ public class CalculatePremiumRequest implements Serializable {
                 this.startMinuteCI = timely.getStartMinute();
             }
         }
-
-        public BaseInfoDTO(RiskInfoVo ciRiskInfoVo, RiskInfoVo biRiskInfoVo) {
-            // 交强险
-            String ciStartDate = Optional.ofNullable(ciRiskInfoVo)
-                    .map(RiskInfoVo::getStartDate)
-                    .orElse("");
-            setCommerceTime(ciStartDate);
-            // 商业险
-            String biStartDate = Optional.ofNullable(biRiskInfoVo)
-                    .map(RiskInfoVo::getStartDate)
-                    .orElse("");
-            setStrengthTime(biStartDate);
-
-            if (!StringUtils.hasLength(ciStartDate)) {
-                this.calculateFlag = CalculateFlagEnum.CF_1.getCode();
-            } else if (!StringUtils.hasLength(biStartDate)) {
-                this.calculateFlag = CalculateFlagEnum.CF_2.getCode();
-            } else {
-                this.calculateFlag = CalculateFlagEnum.CF_0.getCode();
-            }
-
-        }
     }
 
     /**
@@ -392,19 +393,10 @@ public class CalculatePremiumRequest implements Serializable {
         @JsonProperty("vehicleOwnerNature")
         private String vehicleOwnerNature;
 
-        @AllArgsConstructor
-        @Getter
-        public enum VehicleOwnerNature {
-
-            VEHICLE_OWNER_NATURE_1("1"),
-            VEHICLE_OWNER_NATURE_2("2"),
-            VEHICLE_OWNER_NATURE_3("3");
-            // 编号
-            private final String code;
-        }
-
         public CarOwnerInfoDTO(CustomerInfoVo customerInfoVo) {
-            if (VehicleOwnerNature.VEHICLE_OWNER_NATURE_1.getCode().equals(customerInfoVo.getProperty())) {
+            if (VehicleOwnerNature.VEHICLE_OWNER_NATURE_1
+                    .getCode()
+                    .equals(customerInfoVo.getProperty())) {
                 this.ownerIdentifyNumber = customerInfoVo.getIdentifyNumber();
                 this.ownerIdentifyType = "01";
                 this.vehicleOwnerNature = "1";
@@ -418,6 +410,17 @@ public class CalculatePremiumRequest implements Serializable {
             this.ownerAddress = customerInfoVo.getAddr();
         }
 
+        @AllArgsConstructor
+        @Getter
+        public enum VehicleOwnerNature {
+
+            VEHICLE_OWNER_NATURE_1("1"),
+            VEHICLE_OWNER_NATURE_2("2"),
+            VEHICLE_OWNER_NATURE_3("3");
+            // 编号
+            private final String code;
+        }
+
     }
 
     /**
@@ -1094,7 +1097,9 @@ public class CalculatePremiumRequest implements Serializable {
                 itemKindListDTO.unitAmount = kindInfoVo.getAmount();
                 itemKindListDTO.amount = kindInfoVo.getAmount();
                 // 车损险
-                if (KindCode.A.getCode().equals(kindInfoVo.getPlatformKindCode())) {
+                if (KindCode.A
+                        .getCode()
+                        .equals(kindInfoVo.getPlatformKindCode())) {
                     itemKindListDTO.amount = actualValue;
                 }
                 itemKindListDTO.deductibleRate = kindInfoVo.getDeductibleRate();
@@ -1165,7 +1170,10 @@ public class CalculatePremiumRequest implements Serializable {
         }
 
         public static List<CarPolicySubInfoListDTO> toCarPolicySubInfoListDTO(List<AccidentalDrivingVo> accidentalDrivings) {
-            return accidentalDrivings.stream().map(CarPolicySubInfoListDTO::new).collect(Collectors.toList());
+            return accidentalDrivings
+                    .stream()
+                    .map(CarPolicySubInfoListDTO::new)
+                    .collect(Collectors.toList());
         }
 
     }

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

@@ -10,7 +10,6 @@ import java.io.Serial;
 import java.io.Serializable;
 
 /**
- * @version
  * @description: 紫金财险 新支付 入参实体
  * @author: wenks
  * @date: 2024/5/28 17:26

+ 4 - 1
tenant/insurance/quotation-zijin/src/main/java/com/jzg/quotation/zijin/api/entity/request/SubmitVerifyRequest.java

@@ -40,7 +40,10 @@ public class SubmitVerifyRequest implements Serializable {
     public SubmitVerifyRequest(ZiJinApiOrder ziJinApiOrder, String productId, List<SpecialAppointmentsVo> specialAppointmentsVos) {
         this.orderId = ziJinApiOrder.getOrderId();
         this.orderNo = ziJinApiOrder.getOrderNo();
-        this.engageList = specialAppointmentsVos.stream().map(EngageListDTO::new).collect(Collectors.toList());
+        this.engageList = specialAppointmentsVos
+                .stream()
+                .map(EngageListDTO::new)
+                .collect(Collectors.toList());
         String code;
         if (productId.equals(ProductsType.PT_034002.getCode())) {
             code = CarCheckReasonEnum.CCR_3.getCode();

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

@@ -831,36 +831,36 @@ public class CalculatePremiumResponse extends BaseResponse implements Serializab
         private String zjStatus;
 
         @Data
-        public static class UbiPredictedInfoDTO implements Serializable{
+        public static class UbiPredictedInfoDTO implements Serializable {
 
             @Serial
             private static final long serialVersionUID = -3821813924645067621L;
 
-            private  String id;
+            private String id;
 
-            private  String vin;
+            private String vin;
 
-            private  String resultFlag;
+            private String resultFlag;
 
-            private  String score;
+            private String score;
 
-            private  String vehCheck;
+            private String vehCheck;
 
-            private  String proba;
+            private String proba;
 
-            private  String dwlPurePremium;
+            private String dwlPurePremium;
 
-            private  String tplPurePremium;
+            private String tplPurePremium;
 
-            private  String clpPurePremium;
+            private String clpPurePremium;
 
-            private  String dwlLossRate;
+            private String dwlLossRate;
 
-            private  String tplLossRate;
+            private String tplLossRate;
 
-            private  String clpLossRate;
+            private String clpLossRate;
 
-            private  String vehicleLossRate;
+            private String vehicleLossRate;
 
         }
 

+ 1 - 1
tenant/insurance/quotation-zijin/src/main/java/com/jzg/quotation/zijin/api/entity/response/QueryClauseDataResponse.java

@@ -66,7 +66,7 @@ public class QueryClauseDataResponse extends BaseResponse implements Serializabl
 
         @NoArgsConstructor
         @Data
-        public static class ProClauseConfDtoDTO implements Serializable{
+        public static class ProClauseConfDtoDTO implements Serializable {
 
             @Serial
             private static final long serialVersionUID = -5616060670260884786L;

+ 25 - 15
tenant/insurance/quotation-zijin/src/main/java/com/jzg/quotation/zijin/api/service/Impl/ZiJinApiRequestImpl.java

@@ -21,7 +21,6 @@ import com.jzg.quotation.zijin.api.repository.ZiJinApiOrderRepository;
 import com.jzg.quotation.zijin.api.service.ZiJinApiRequest;
 import lombok.RequiredArgsConstructor;
 import org.jetbrains.annotations.NotNull;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpHeaders;
 import org.springframework.stereotype.Service;
 
@@ -71,6 +70,11 @@ public class ZiJinApiRequestImpl implements ZiJinApiRequest {
         ziJinApiOrder.setId(order.getOrdersNo());
         ziJinApiOrder.setOrderNo(modelQueryResponse.getOrderNo());
         ziJinApiOrder.setOrderId(modelQueryResponse.getOrderId());
+        ziJinApiOrder.setProductsCode(order.getProductsCode());
+        ziJinApiOrder.setInsuredIdentify(quoteVo
+                .getInsuredPersonInfo()
+                .getIdentifyNumber());
+
         ziJinApiOrderRepository.save(ziJinApiOrder);
         return ZiJinAPIQuoteResultsVoBuild.buildQuoteResultsVo(order.getOrdersNo(), quoteVo, calculatePremiumResponse);
     }
@@ -80,18 +84,21 @@ public class ZiJinApiRequestImpl implements ZiJinApiRequest {
         OrderBase orderBase = underwritingVo.getOrder();
         ZiJinApiOrder ziJinApiOrder = ziJinApiOrderRepository.getById(orderBase.getOrdersNo());
         // 配置信息
-        ZiJinApiConfigureParameters parameters = ConfigureParametersConversion.conversionEntity(ZiJinApiConfigureParameters.class, orderBase.getAttributionInformationVo().getConfigInfo());
+        ZiJinApiConfigureParameters parameters = ConfigureParametersConversion.conversionEntity(ZiJinApiConfigureParameters.class, orderBase
+                .getAttributionInformationVo()
+                .getConfigInfo());
         HttpHeaders httpHeaders = ziJinApiRequestComponent.getHttpHeaders(parameters);
         List<SpecialAppointmentsVo> specialAppointmentsVos = underwritingVo.getSpecialAppointmentsVos();
         SubmitVerifyRequest submitVerifyRequest = new SubmitVerifyRequest(ziJinApiOrder, "", specialAppointmentsVos);
         SubmitVerifyResponse submitVerifyResponse = ziJinApiRequestComponent.submitVerify(submitVerifyRequest, httpHeaders);
-
     }
 
     @Override
     public String getPaymentLink(OrderBase orderBase) {
         ZiJinApiOrder ziJinApiOrder = ziJinApiOrderRepository.getById(orderBase.getOrdersNo());
-        ZiJinApiConfigureParameters parameters = ConfigureParametersConversion.conversionEntity(ZiJinApiConfigureParameters.class, orderBase.getAttributionInformationVo().getConfigInfo());
+        ZiJinApiConfigureParameters parameters = ConfigureParametersConversion.conversionEntity(ZiJinApiConfigureParameters.class, orderBase
+                .getAttributionInformationVo()
+                .getConfigInfo());
         HttpHeaders httpHeaders = ziJinApiRequestComponent.getHttpHeaders(parameters);
         NewPayRequest newPayRequest = new NewPayRequest("", ziJinApiOrder.getOrderNo(), parameters.getOrderOrigin(), parameters.getProposalCityCode());
         NewPayRequestResponse newPayRequestResponse = ziJinApiRequestComponent.newPay(newPayRequest, httpHeaders);
@@ -104,7 +111,9 @@ public class ZiJinApiRequestImpl implements ZiJinApiRequest {
         OrderBase orderBase = insuranceUploadImageVo.getOrder();
         ZiJinApiOrder ziJinApiOrder = ziJinApiOrderRepository.getById(orderBase.getOrdersNo());
         // 配置信息
-        ZiJinApiConfigureParameters parameters = ConfigureParametersConversion.conversionEntity(ZiJinApiConfigureParameters.class, orderBase.getAttributionInformationVo().getConfigInfo());
+        ZiJinApiConfigureParameters parameters = ConfigureParametersConversion.conversionEntity(ZiJinApiConfigureParameters.class, orderBase
+                .getAttributionInformationVo()
+                .getConfigInfo());
         HttpHeaders httpHeaders = ziJinApiRequestComponent.getHttpHeaders(parameters);
         // 获取影像信息
         List<UploadImageInfoListRequest.ItemFileDataListDTO> itemFileDataListDTOS = uploadFile(insuranceUploadImageVo, ziJinApiOrder, httpHeaders);
@@ -120,15 +129,17 @@ public class ZiJinApiRequestImpl implements ZiJinApiRequest {
         // 封装文件订单
         List<UploadImageInfoListRequest.ItemFileDataListDTO> itemFileDataListDTOS = new ArrayList<>();
         imageVoList.forEach(imageVo -> {
-            imageVo.getImageBase64List().forEach(imageBase64 -> {
-                UploadFileRequest uploadImageRequest = new UploadFileRequest(imageBase64, imageVo.getImageCode(), ziJinApiOrder.getOrderNo());
-                // 文件上传
-                UploadFileResponse uploadFileResponse = ziJinApiRequestComponent.uploadFile(uploadImageRequest, httpHeaders);
-                // 文件信息与订单关联 itemFileDataList
-                UploadImageInfoListRequest.ItemFileDataListDTO itemFileDataListDTO =
-                        new UploadImageInfoListRequest.ItemFileDataListDTO(uploadImageRequest, uploadFileResponse.getFileId());
-                itemFileDataListDTOS.add(itemFileDataListDTO);
-            });
+            imageVo
+                    .getImageBase64List()
+                    .forEach(imageBase64 -> {
+                        UploadFileRequest uploadImageRequest = new UploadFileRequest(imageBase64, imageVo.getImageCode(), ziJinApiOrder.getOrderNo());
+                        // 文件上传
+                        UploadFileResponse uploadFileResponse = ziJinApiRequestComponent.uploadFile(uploadImageRequest, httpHeaders);
+                        // 文件信息与订单关联 itemFileDataList
+                        UploadImageInfoListRequest.ItemFileDataListDTO itemFileDataListDTO =
+                                new UploadImageInfoListRequest.ItemFileDataListDTO(uploadImageRequest, uploadFileResponse.getFileId());
+                        itemFileDataListDTOS.add(itemFileDataListDTO);
+                    });
         });
         return itemFileDataListDTOS;
     }
@@ -137,7 +148,6 @@ public class ZiJinApiRequestImpl implements ZiJinApiRequest {
     public void downloadPolicy(OrderBase orderBase) {
         ZiJinApiOrder ziJinApiOrder = ziJinApiOrderRepository.getById(orderBase.getOrdersNo());
 
-
     }
 
 }

+ 7 - 10
tenant/insurance/quotation-zijin/src/main/java/com/jzg/quotation/zijin/api/utils/InsuranceTimeProcessing.java

@@ -10,21 +10,16 @@ import java.time.format.DateTimeFormatter;
 public class InsuranceTimeProcessing {
 
     public static final DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
-
-    private InsuranceTimeProcessing() {
-        throw new IllegalStateException("Utility class");
-    }
-
     public static final String START_HOUR = "00";
-
     public static final String END_HOUR = "24";
-
     public static final String MINUTE = "00";
-
     public static final String START_TIME = "00:00:00";
-
     public static final String END_TIME = "23:59:59";
 
+    private InsuranceTimeProcessing() {
+        throw new IllegalStateException("Utility class");
+    }
+
     public static UntimelyInsurancePeriod untimely(String startDate) {
         LocalDate localDate = LocalDate.parse(startDate, formatter);
         LocalDate nextYears = localDate.plusYears(1);
@@ -34,7 +29,9 @@ public class InsuranceTimeProcessing {
 
     public static TimelyInsurancePeriod timely(String startDate) {
         LocalDateTime parse = LocalDateTime.parse(startDate, formatter);
-        String format = parse.plusYears(1).format(formatter);
+        String format = parse
+                .plusYears(1)
+                .format(formatter);
         return new TimelyInsurancePeriod(parse.toString(), format);
     }