wks 9 месяцев назад
Родитель
Сommit
61b9513d4f
58 измененных файлов с 12635 добавлено и 16 удалено
  1. 1 0
      pom.xml
  2. 5 1
      tenant/insurance/quotation-commons/src/main/java/com/jzg/quotation/commons/standard/conversion/ConfigureParametersConversion.java
  3. 243 0
      tenant/insurance/quotation-commons/src/main/java/com/jzg/quotation/commons/utils/PredicateEnhance.java
  4. 925 0
      tenant/insurance/quotation-commons/src/main/java/com/jzg/quotation/commons/utils/StreamUtils.java
  5. 1 4
      tenant/insurance/quotation-commons/src/main/java/com/jzg/quotation/commons/utils/TimeProcessing.java
  6. 1 2
      tenant/insurance/quotation-guoren/src/main/java/com/jzg/quotation/guoren/crawler/constant/BusinessSources.java
  7. 1 2
      tenant/insurance/quotation-guoren/src/main/java/com/jzg/quotation/guoren/crawler/constant/InsuranceMap.java
  8. 1 4
      tenant/insurance/quotation-guoren/src/main/java/com/jzg/quotation/guoren/crawler/entity/request/GuoRenCrawlerCalculationPremiumRequest.java
  9. 1 3
      tenant/insurance/quotation-guoren/src/main/java/com/jzg/quotation/guoren/crawler/service/impl/GuoRenCrawlerQuoteProcessServiceImpl.java
  10. 4 0
      tenant/insurance/quotation-guoren/src/main/java/com/jzg/quotation/guoren/crawler/utils/VehicleTaxCalculator.java
  11. 9 0
      tenant/insurance/quotation-renbao/src/main/java/com/jzg/quotation/renbao/crawler/build/RenBaoCrawlerQuoteResultsVoBuild.java
  12. 299 0
      tenant/insurance/quotation-renbao/src/main/java/com/jzg/quotation/renbao/crawler/component/RenBaoCrawlerRequestComponent.java
  13. 30 0
      tenant/insurance/quotation-renbao/src/main/java/com/jzg/quotation/renbao/crawler/constant/BusinessNatureMap.java
  14. 228 0
      tenant/insurance/quotation-renbao/src/main/java/com/jzg/quotation/renbao/crawler/constant/QuotationParameters.java
  15. 60 0
      tenant/insurance/quotation-renbao/src/main/java/com/jzg/quotation/renbao/crawler/constant/enums/RequestUrl.java
  16. 56 0
      tenant/insurance/quotation-renbao/src/main/java/com/jzg/quotation/renbao/crawler/entity/RenBaoCrawlerConfigureParameter.java
  17. 19 0
      tenant/insurance/quotation-renbao/src/main/java/com/jzg/quotation/renbao/crawler/entity/dto/CalculateModesDTO.java
  18. 19 0
      tenant/insurance/quotation-renbao/src/main/java/com/jzg/quotation/renbao/crawler/entity/dto/LabelValueDTO.java
  19. 438 0
      tenant/insurance/quotation-renbao/src/main/java/com/jzg/quotation/renbao/crawler/entity/dto/PrpCinsuredsDTO.java
  20. 1038 0
      tenant/insurance/quotation-renbao/src/main/java/com/jzg/quotation/renbao/crawler/entity/dto/PrpCitemCarDTO.java
  21. 49 0
      tenant/insurance/quotation-renbao/src/main/java/com/jzg/quotation/renbao/crawler/entity/dto/PrpCmainChannelDTO.java
  22. 1091 0
      tenant/insurance/quotation-renbao/src/main/java/com/jzg/quotation/renbao/crawler/entity/dto/PrpCmainDTO.java
  23. 98 0
      tenant/insurance/quotation-renbao/src/main/java/com/jzg/quotation/renbao/crawler/entity/dto/PrpItemKindDDAsDTO.java
  24. 51 0
      tenant/insurance/quotation-renbao/src/main/java/com/jzg/quotation/renbao/crawler/entity/po/RenBaoCrawlerOrder.java
  25. 739 0
      tenant/insurance/quotation-renbao/src/main/java/com/jzg/quotation/renbao/crawler/entity/request/RenBaoCrawlerCaculatePremiumRequest.java
  26. 110 0
      tenant/insurance/quotation-renbao/src/main/java/com/jzg/quotation/renbao/crawler/entity/request/RenBaoCrawlerCalActualValueRequest.java
  27. 172 0
      tenant/insurance/quotation-renbao/src/main/java/com/jzg/quotation/renbao/crawler/entity/request/RenBaoCrawlerCustomPersonAddRequest.java
  28. 46 0
      tenant/insurance/quotation-renbao/src/main/java/com/jzg/quotation/renbao/crawler/entity/request/RenBaoCrawlerCustomQueryPRequest.java
  29. 54 0
      tenant/insurance/quotation-renbao/src/main/java/com/jzg/quotation/renbao/crawler/entity/request/RenBaoCrawlerEditSubmitUndwrtRequest.java
  30. 90 0
      tenant/insurance/quotation-renbao/src/main/java/com/jzg/quotation/renbao/crawler/entity/request/RenBaoCrawlerGetAgentsRequest.java
  31. 36 0
      tenant/insurance/quotation-renbao/src/main/java/com/jzg/quotation/renbao/crawler/entity/request/RenBaoCrawlerGetMonopolyRequest.java
  32. 54 0
      tenant/insurance/quotation-renbao/src/main/java/com/jzg/quotation/renbao/crawler/entity/request/RenBaoCrawlerOrderPaymentRequest.java
  33. 146 0
      tenant/insurance/quotation-renbao/src/main/java/com/jzg/quotation/renbao/crawler/entity/request/RenBaoCrawlerPrepareQueryClaimRequest.java
  34. 91 0
      tenant/insurance/quotation-renbao/src/main/java/com/jzg/quotation/renbao/crawler/entity/request/RenBaoCrawlerQueryCodeRequest.java
  35. 65 0
      tenant/insurance/quotation-renbao/src/main/java/com/jzg/quotation/renbao/crawler/entity/request/RenBaoCrawlerQueryHandler1CodeRequest.java
  36. 44 0
      tenant/insurance/quotation-renbao/src/main/java/com/jzg/quotation/renbao/crawler/entity/request/RenBaoCrawlerQueryHandlerCodeRequest.java
  37. 57 0
      tenant/insurance/quotation-renbao/src/main/java/com/jzg/quotation/renbao/crawler/entity/request/RenBaoCrawlerQueryServiceManagerRequest.java
  38. 72 0
      tenant/insurance/quotation-renbao/src/main/java/com/jzg/quotation/renbao/crawler/entity/request/RenBaoCrawlerVehicleQueryRequest.java
  39. 34 0
      tenant/insurance/quotation-renbao/src/main/java/com/jzg/quotation/renbao/crawler/entity/response/RenBaoCrawlerBaseResponse.java
  40. 2710 0
      tenant/insurance/quotation-renbao/src/main/java/com/jzg/quotation/renbao/crawler/entity/response/RenBaoCrawlerCaculatePremiumData.java
  41. 315 0
      tenant/insurance/quotation-renbao/src/main/java/com/jzg/quotation/renbao/crawler/entity/response/RenBaoCrawlerCustomPersonData.java
  42. 300 0
      tenant/insurance/quotation-renbao/src/main/java/com/jzg/quotation/renbao/crawler/entity/response/RenBaoCrawlerCustomQueryPData.java
  43. 57 0
      tenant/insurance/quotation-renbao/src/main/java/com/jzg/quotation/renbao/crawler/entity/response/RenBaoCrawlerEditSubmitUndwrtData.java
  44. 106 0
      tenant/insurance/quotation-renbao/src/main/java/com/jzg/quotation/renbao/crawler/entity/response/RenBaoCrawlerGetAgentsData.java
  45. 153 0
      tenant/insurance/quotation-renbao/src/main/java/com/jzg/quotation/renbao/crawler/entity/response/RenBaoCrawlerGetMonopolyData.java
  46. 1208 0
      tenant/insurance/quotation-renbao/src/main/java/com/jzg/quotation/renbao/crawler/entity/response/RenBaoCrawlerInitZNCDData.java
  47. 91 0
      tenant/insurance/quotation-renbao/src/main/java/com/jzg/quotation/renbao/crawler/entity/response/RenBaoCrawlerOrderPaymentData.java
  48. 600 0
      tenant/insurance/quotation-renbao/src/main/java/com/jzg/quotation/renbao/crawler/entity/response/RenBaoCrawlerPrepareQueryClaimData.java
  49. 45 0
      tenant/insurance/quotation-renbao/src/main/java/com/jzg/quotation/renbao/crawler/entity/response/RenBaoCrawlerQueryCodeData.java
  50. 55 0
      tenant/insurance/quotation-renbao/src/main/java/com/jzg/quotation/renbao/crawler/entity/response/RenBaoCrawlerQueryHandler1CodeData.java
  51. 40 0
      tenant/insurance/quotation-renbao/src/main/java/com/jzg/quotation/renbao/crawler/entity/response/RenBaoCrawlerQueryHandlerCodeData.java
  52. 79 0
      tenant/insurance/quotation-renbao/src/main/java/com/jzg/quotation/renbao/crawler/entity/response/RenBaoCrawlerQueryServiceManagerData.java
  53. 105 0
      tenant/insurance/quotation-renbao/src/main/java/com/jzg/quotation/renbao/crawler/entity/response/RenBaoCrawlerSaveAsProposalData.java
  54. 179 0
      tenant/insurance/quotation-renbao/src/main/java/com/jzg/quotation/renbao/crawler/entity/response/RenBaoCrawlerVehicleQueryData.java
  55. 22 0
      tenant/insurance/quotation-renbao/src/main/java/com/jzg/quotation/renbao/crawler/properties/RenBaoCrawlerProperties.java
  56. 5 0
      tenant/insurance/quotation-renbao/src/main/java/com/jzg/quotation/renbao/crawler/repository/RenbaoCrawlerOrderRepository.java
  57. 26 0
      tenant/insurance/quotation-renbao/src/main/java/com/jzg/quotation/renbao/crawler/service/RenBaoCrawlerQuoteProcessService.java
  58. 61 0
      tenant/insurance/quotation-renbao/src/main/java/com/jzg/quotation/renbao/crawler/service/impl/RenBaoCrawlerQuoteProcessServiceImpl.java

+ 1 - 0
pom.xml

@@ -13,6 +13,7 @@
     <module>tenant</module>
     <module>rocketmq</module>
     <module>consoleStatistics</module>
+      <module>tenant/insurance/quotation-renbao</module>
   </modules>
   <packaging>pom</packaging>
 

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

@@ -14,7 +14,11 @@ import java.util.Map;
  * @author: wenks
  * @date: 2025/2/18 17:06
  **/
-public class ConfigureParametersConversion {
+public final class ConfigureParametersConversion {
+
+    private ConfigureParametersConversion() {
+        throw new IllegalStateException("Utility class");
+    }
 
     /**
      * 通过反射设置对象属性

+ 243 - 0
tenant/insurance/quotation-commons/src/main/java/com/jzg/quotation/commons/utils/PredicateEnhance.java

@@ -0,0 +1,243 @@
+package com.jzg.quotation.commons.utils;
+
+
+import com.jzg.commons.exception.SystemException;
+import lombok.AccessLevel;
+import lombok.NoArgsConstructor;
+import org.apache.commons.collections4.CollectionUtils;
+import org.apache.commons.lang3.BooleanUtils;
+import org.apache.commons.lang3.ObjectUtils;
+import org.apache.commons.lang3.StringUtils;
+
+import java.util.Collection;
+import java.util.Objects;
+import java.util.function.Function;
+import java.util.function.Predicate;
+
+/**
+ * 谓语表达式增强器
+ *
+ * @author xijun.li
+ * Date: 2024/6/17
+ * Time: 14:19
+ * @since 1.0
+ **/
+@NoArgsConstructor(access = AccessLevel.PRIVATE)
+public class PredicateEnhance {
+
+    /**
+     * <p>谓语相等判断增强方法(方法名冗长弃用,使用{@link PredicateEnhance#isEquals(Object, Function)})</p>
+     * 用于{@code .filter(user -> user.getName().equals(name))}的情况,
+     * 用法:{@code .filter(StreamUtils.isEqualEnhance(name, User::name))}
+     *
+     * @param targetObj 目标对象
+     * @param function 映射函数
+     * @param <T> 源类型
+     * @param <R> 目标类型
+     * @return 谓语函数
+     */
+    public static <T, R> Predicate<T> isEqualEnhance(final R targetObj, final Function<T, R> function) {
+        checkAllNotNull(function);
+
+        return obj -> Objects.equals(function.apply(obj), targetObj);
+    }
+
+    /**
+     * <p>谓语非{@code null}判断增强方法(方法名冗长弃用,使用{@link PredicateEnhance#nonNull(Function)})</p>
+     * 用于{@code .filter(user -> Objects.nonNull(user.getName()))}的情况,
+     * 用法:{@code .filter(StreamUtils.nonNullEnhance(User::name))}
+     *
+     * @param function 映射函数
+     * @param <T> 源类型
+     * @param <R> 目标类型
+     * @return 谓语函数
+     */
+    public static <T, R> Predicate<T> nonNullEnhance(final Function<T, R> function) {
+        checkAllNotNull(function);
+
+        return customEnhance(function, Objects::nonNull);
+    }
+
+    /**
+     * <p>谓语字符串非{@code null}及非空白符判断增强方法(方法名冗长弃用,使用{@link PredicateEnhance#nonBlankStr(Function)})</p>
+     * 用于{@code .filter(user -> StringUtils.isNotBlank(user.getName()))}的情况,
+     * 用法:{@code .filter(StreamUtils.nonNullEnhance(User::name))}
+     *
+     * @param function 映射函数
+     * @param <T> 源类型
+     * @return 谓语函数
+     */
+    public static <T> Predicate<T> nonBlankStrEnhance(final Function<T, CharSequence> function) {
+        checkAllNotNull(function);
+
+        return customEnhance(function, StringUtils::isNotBlank);
+    }
+
+    /**
+     * <p>谓语字符串非{@code null}及非{@code ""}判断增强方法(方法名冗长弃用,使用{@link PredicateEnhance#nonEmptyStr(Function)})</p>
+     * 用于{@code .filter(user -> StringUtils.isNotEmpty(user.getName()))}的情况,
+     * 用法:{@code .filter(StreamUtils.nonEmptyStrEnhance(User::name))}
+     *
+     * @param function 映射函数
+     * @param <T> 源类型
+     * @return 谓语函数
+     */
+    public static <T> Predicate<T> nonEmptyStrEnhance(final Function<T, CharSequence> function) {
+        checkAllNotNull(function);
+
+        return customEnhance(function, StringUtils::isNotEmpty);
+    }
+
+    /**
+     * <p>自定义谓语判断增强方法(方法名冗长弃用,使用{@link PredicateEnhance#custom(Function, Function)})</p>
+     * 例:{@code .filter(order -> nonCostedChannels.contains(order.getChannelCode()))}
+     * 此方法实现:{@code .customEnhance(ErpOrderEntity::getChannelCode, nonCostedChannels::contains)}
+     *
+     * @param function 映射函数
+     * @param predicateFunc 谓语函数
+     * @param <T> 源类型
+     * @param <R> 目标类型
+     * @return 谓语函数
+     */
+    public static <T, R> Predicate<T> customEnhance(final Function<T, R> function, final Function<R, Boolean> predicateFunc) {
+        checkAllNotNull(function, predicateFunc);
+
+        return obj -> BooleanUtils.isTrue(predicateFunc.apply(function.apply(obj)));
+    }
+
+    /**
+     * <p>谓语相等判断增强方法</p>
+     * 用于{@code .filter(user -> user.getName().equals(name))}的情况,
+     * 用法:{@code .filter(StreamUtils.isEqualEnhance(name, User::name))}
+     *
+     * @param targetObj 目标对象
+     * @param function 映射函数
+     * @param <T> 源类型
+     * @param <R> 目标类型
+     * @return 谓语函数
+     */
+    public static <T, R> Predicate<T> isEquals(final R targetObj, final Function<T, R> function) {
+
+        return isEqualEnhance(targetObj, function);
+    }
+
+    /**
+     * <p>谓语忽略大小写相等判断增强方法</p>
+     * 用于{@code .filter(user -> user.getName().equalsIgnoreCase(name))}的情况,
+     * 用法:{@code .filter(StreamUtils.isEqualsIgnoreCase(name, User::name))}
+     *
+     * @param targetObj 目标对象
+     * @param function 映射函数
+     * @param <T> 源类型
+     * @return 谓语函数
+     */
+    public static <T> Predicate<T> isEqualsIgnoreCase(final String targetObj, final Function<T, String> function) {
+        checkAllNotNull(function);
+
+        return obj -> StringUtils.equalsIgnoreCase(function.apply(obj), targetObj);
+    }
+
+    /**
+     * <p>谓语非{@code null}判断增强方法</p>
+     * 用于{@code .filter(user -> Objects.nonNull(user.getName()))}的情况,
+     * 用法:{@code .filter(StreamUtils.nonNullEnhance(User::name))}
+     *
+     * @param function 映射函数
+     * @param <T> 源类型
+     * @param <R> 目标类型
+     * @return 谓语函数
+     */
+    public static <T, R> Predicate<T> nonNull(final Function<T, R> function) {
+
+        return nonNullEnhance(function);
+    }
+
+    /**
+     * <p>谓语字符串非{@code null}及非空白符判断增强方法</p>
+     * 用于{@code .filter(user -> StringUtils.isNotBlank(user.getName()))}的情况,
+     * 用法:{@code .filter(StreamUtils.nonNullEnhance(User::name))}
+     *
+     * @param function 映射函数
+     * @param <T> 源类型
+     * @return 谓语函数
+     */
+    public static <T> Predicate<T> nonBlankStr(final Function<T, CharSequence> function) {
+
+        return nonBlankStrEnhance(function);
+    }
+
+    /**
+     * <p>谓语字符串非{@code null}及非{@code ""}判断增强方法</p>
+     * 用于{@code .filter(user -> StringUtils.isNotEmpty(user.getName()))}的情况,
+     * 用法:{@code .filter(StreamUtils.nonEmptyStrEnhance(User::name))}
+     *
+     * @param function 映射函数
+     * @param <T> 源类型
+     * @return 谓语函数
+     */
+    public static <T> Predicate<T> nonEmptyStr(final Function<T, CharSequence> function) {
+
+        return nonEmptyStrEnhance(function);
+    }
+
+    /**
+     * <p>自定义谓语判断增强方法</p>
+     * 例:{@code .filter(order -> nonCostedChannels.contains(order.getChannelCode()))}
+     * 此方法实现:{@code .customEnhance(ErpOrderEntity::getChannelCode, nonCostedChannels::contains)}
+     *
+     * @param function 映射函数
+     * @param predicateFunc 谓语函数
+     * @param <T> 源类型
+     * @param <R> 目标类型
+     * @return 谓语函数
+     */
+    public static <T, R> Predicate<T> custom(final Function<T, R> function, final Function<R, Boolean> predicateFunc) {
+
+        return customEnhance(function, predicateFunc);
+    }
+
+    /**
+     * <p>元素是否在集合中谓语判断增强方法,注意考虑参数collection的实现类及数据量带来的影响</p>
+     * 例:{@code .filter(order -> nonCostedChannels.contains(order.getChannelCode()))}
+     * 此方法实现:{@code .contains(ErpOrderEntity::getChannelCode, nonCostedChannels)}
+     *
+     * @param function 映射函数
+     * @param collection 集合
+     * @param <T> 源类型
+     * @param <R> 目标类型
+     * @return 谓语函数
+     */
+    public static <T, R> Predicate<T> contains(final Function<T, R> function, final Collection<R> collection) {
+        checkAllNotNull(function);
+
+        return obj -> BooleanUtils.isTrue(CollectionUtils.emptyIfNull(collection).contains(function.apply(obj)));
+    }
+
+    /**
+     * <p>元素是否不在集合中谓语判断增强方法,注意考虑参数collection的实现类及数据量带来的影响</p>
+     * 例:{@code .filter(order -> !nonCostedChannels.contains(order.getChannelCode()))}
+     * 此方法实现:{@code .isNotContains(ErpOrderEntity::getChannelCode, nonCostedChannels)}
+     *
+     * @param function 映射函数
+     * @param collection 集合
+     * @param <T> 源类型
+     * @param <R> 目标类型
+     * @return 谓语函数
+     */
+    public static <T, R> Predicate<T> isNotContains(final Function<T, R> function, final Collection<R> collection) {
+        checkAllNotNull(function);
+
+        return obj -> BooleanUtils.isFalse(CollectionUtils.emptyIfNull(collection).contains(function.apply(obj)));
+    }
+
+    /**
+     * 校验对象是否全非空,若否则抛出异常
+     * @param object 对象,可多个
+     */
+    protected static void checkAllNotNull(final Object ...object) {
+
+        if (Objects.isNull(object) || !ObjectUtils.allNotNull(object)) {
+            throw new SystemException("Function/Predicate/Comparator/Consumer must be not null!");
+        }
+    }
+}

+ 925 - 0
tenant/insurance/quotation-commons/src/main/java/com/jzg/quotation/commons/utils/StreamUtils.java

@@ -0,0 +1,925 @@
+package com.jzg.quotation.commons.utils;
+
+import com.jzg.commons.exception.SystemException;
+import lombok.AccessLevel;
+import lombok.NoArgsConstructor;
+import org.apache.commons.collections4.CollectionUtils;
+import org.apache.commons.lang3.ObjectUtils;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.lang.Nullable;
+
+import java.math.BigDecimal;
+import java.util.*;
+import java.util.function.*;
+import java.util.stream.Collectors;
+import java.util.stream.IntStream;
+import java.util.stream.Stream;
+
+/**
+ * <p>集合流工具类</p>
+ * <pre>因常看到单个方法中堆积着对集合流的常用简单操作,类似<code>list.stream().xxx().collect(xxx)</code>,</pre>
+ * <pre>而没有将其抽成私有函数会使整体代码较为杂乱,故在此对集合流的常用简单操作(不超过三次操作)进行封装:</pre>
+ * <ol>
+ *     <li>allMatch/noneMatch/anyMatch</li>
+ *     <li>distinct</li>
+ *     <li>sorted</li>
+ *     <li>flatMap</li>
+ *     <li>map</li>
+ *     <li>filter</li>
+ *     <li>toMap</li>
+ *     <li>groupingBy</li>
+ * </ol>
+ *
+ * @author xijun.li
+ * Date: 2024/4/1
+ * Time: 10:01
+ * @since 1.0
+ **/
+@NoArgsConstructor(access = AccessLevel.PRIVATE)
+public class StreamUtils {
+
+    /**
+     * 全部匹配
+     * @param list 源集合
+     * @param predicate 谓语表达式
+     * @param <T> 源类型
+     * @return 是否全部匹配,true为是
+     */
+    public static <T> boolean allMatch(final Collection<T> list, final Predicate<T> predicate) {
+        checkAllNotNull(predicate);
+
+        return getListStream(list)
+                .allMatch(predicate);
+    }
+
+    /**
+     * 全不匹配
+     * @param list 源集合
+     * @param predicate 谓语表达式
+     * @param <T> 源类型
+     * @return 是否全不匹配,true为是
+     */
+    public static <T> boolean noneMatch(final Collection<T> list, final Predicate<T> predicate) {
+        checkAllNotNull(predicate);
+
+        return getListStream(list)
+                .noneMatch(predicate);
+    }
+
+    /**
+     * 任意匹配
+     * @param list 源集合
+     * @param predicate 谓语表达式
+     * @param <T> 源类型
+     * @return 是否有任意匹配,true为是
+     */
+    public static <T> boolean anyMatch(final Collection<T> list, final Predicate<T> predicate) {
+        checkAllNotNull(predicate);
+
+        return getListStream(list)
+                .anyMatch(predicate);
+    }
+
+    /**
+     * 获取第一个值,若没有则返回null
+     * @param list 源集合
+     * @param <T> 源类型
+     * @return 首个元素
+     */
+    public static <T> T findFirst(final Collection<T> list) {
+
+        return findFirstOrElse(list, null);
+    }
+
+    /**
+     * 获取第一个,若没有则返回默认值
+     * @param list 源集合
+     * @param defaultValue 默认值
+     * @param <T> 源类型
+     * @return 首个元素
+     */
+    public static <T> T findFirstOrElse(final Collection<T> list, final T defaultValue) {
+
+        return findFirstOrElseGet(list, () -> defaultValue);
+    }
+
+    /**
+     * 获取第一个,若没有则返回默认值的函数
+     * @param defaultValue 默认值
+     * @param <T> 源类型
+     * @return 获取首个元素的函数
+     */
+    public static <T> Function<Collection<T>, T> findFirstOrElse(final T defaultValue) {
+
+        return list -> findFirstOrElse(list, defaultValue);
+    }
+
+    /**
+     * 获取第一个,若没有则返回默认值
+     * @param list 源集合
+     * @param supplier 默认值生产函数
+     * @param <T> 源类型
+     * @return 首个元素
+     */
+    public static <T> T findFirstOrElseGet(final Collection<T> list, final Supplier<T> supplier) {
+
+        return getListStream(list)
+                .findFirst()
+                .orElseGet(supplier);
+    }
+
+    /**
+     * 获取第一个,若没有则返回默认值的函数
+     * @param supplier 默认值生产函数
+     * @param <T> 源类型
+     * @return 获取首个元素的函数
+     */
+    public static <T> Function<Collection<T>, T> findFirstOrElseGet(final Supplier<T> supplier) {
+
+        return list -> findFirstOrElseGet(list, supplier);
+    }
+
+    /**
+     * 获取第一个,若没有则抛出异常
+     * @param list 源集合
+     * @param supplier 异常生产函数
+     * @param <T> 源类型
+     * @return 首个元素
+     */
+    public static <T, E extends SystemException> T findFirstOrElseThrow(final Collection<T> list, final Supplier<E> supplier) {
+
+        return getListStream(list)
+                .findFirst()
+                .orElseThrow(supplier);
+    }
+
+    /**
+     * 获取第一个,若没有则抛出异常的函数
+     * @param supplier 异常生产函数
+     * @param <T> 源类型
+     * @return 获取首个元素的函数
+     */
+    public static <T, E extends SystemException> Function<Collection<T>, T> findFirstOrElseThrow(final Supplier<E> supplier) {
+
+        return list -> findFirstOrElseThrow(list, supplier);
+    }
+
+    /**
+     * 去重
+     * @param list 源集合
+     * @param <T> 源类型
+     * @return 去重后的集合
+     */
+    public static <T> List<T> distinct(final Collection<T> list) {
+
+        return getListStream(list)
+                .distinct()
+                .collect(Collectors.toList());
+    }
+
+    /**
+     * 排序
+     * @param list 源集合
+     * @param <T> 源类型
+     * @return 排序后的集合
+     */
+    public static <T> List<T> sorted(final Collection<T> list) {
+
+        return getListStream(list)
+                .sorted()
+                .collect(Collectors.toList());
+    }
+
+    /**
+     * 排序(使用提供的比较器进行)
+     * @param list 源集合
+     * @param comparator 比较器
+     * @param <T> 源类型
+     * @return 排序后的集合
+     */
+    public static <T> List<T> sorted(final Collection<T> list, final Comparator<T> comparator) {
+        checkAllNotNull(comparator);
+
+        return getListStream(list)
+                .sorted(comparator)
+                .collect(Collectors.toList());
+    }
+
+    /**
+     * 排序函数(使用提供的比较器进行)
+     * @param comparator 比较器
+     * @param <T> 源类型
+     * @return 获取排序后的集合的函数
+     */
+    public static <T> Function<Collection<T>, List<T>> sorted(final Comparator<T> comparator) {
+        checkAllNotNull(comparator);
+
+        return list -> sorted(list, comparator);
+    }
+
+    /**
+     * 扁平化
+     * @param list 源集合
+     * @param <T> 源类型
+     * @return 扁平化的集合
+     */
+    public static <T> List<T> flatMapTo(final Collection<List<T>> list) {
+
+        return getListStream(list)
+                .flatMap(Collection::stream)
+                .collect(Collectors.toList());
+    }
+
+    /**
+     * 映射后扁平化
+     * @param list 源集合
+     * @param function 映射函数
+     * @param <T> 源类型
+     * @param <R> 目标类型
+     * @return 扁平化的集合
+     */
+    public static <T, R> List<R> mapThenFlatMapTo(final Collection<T> list, final Function<T, Collection<R>> function) {
+        checkAllNotNull(function);
+
+        return getListStream(list)
+                .map(function)
+                .flatMap(Collection::stream)
+                .collect(Collectors.toList());
+    }
+
+    /**
+     * 映射后扁平化函数
+     * @param function 映射函数
+     * @param <T> 源类型
+     * @param <R> 目标类型
+     * @return 获取映射后扁平化的集合的函数
+     */
+    public static <T, R> Function<Collection<T>, List<R>> mapThenFlatMapTo(final Function<T, Collection<R>> function) {
+        checkAllNotNull(function);
+
+        return list -> mapThenFlatMapTo(list, function);
+    }
+
+    /**
+     * 扁平化后映射
+     * @param list 源集合
+     * @param function 映射函数
+     * @param <T> 源类型
+     * @param <R> 目标类型
+     * @return 扁平化的集合
+     */
+    public static <T, R> List<R> flatMapThenMapTo(final Collection<List<T>> list, final Function<T, R> function) {
+        checkAllNotNull(function);
+
+        return getListStream(list)
+                .flatMap(Collection::stream)
+                .map(function)
+                .collect(Collectors.toList());
+    }
+
+    /**
+     * 扁平化后映射函数
+     * @param function 映射函数
+     * @param <T> 源类型
+     * @param <R> 目标类型
+     * @return 获取扁平化再映射后的集合的函数
+     */
+    public static <T, R> Function<Collection<List<T>>, List<R>> flatMapThenMapTo(final Function<T, R> function) {
+        checkAllNotNull(function);
+
+        return list -> flatMapThenMapTo(list, function);
+    }
+
+    /**
+     * 映射
+     * @param list 集合
+     * @param function 映射函数
+     * @param <T> 源类型
+     * @param <R> 目标类型
+     * @return 映射后的集合
+     */
+    public static <T, R> List<R> mapTo(final Collection<T> list, final Function<T, R> function) {
+        checkAllNotNull(function);
+
+        return getListStream(list)
+                .map(function)
+                .collect(Collectors.toList());
+    }
+
+    /**
+     * 映射为Set
+     * @param list 集合
+     * @param function 映射函数
+     * @param <T> 源类型
+     * @param <R> 目标类型
+     * @return 映射后的集合
+     */
+    public static <T, R> Set<R> mapToSet(final Collection<T> list, final Function<T, R> function) {
+        checkAllNotNull(function);
+
+        return getListStream(list)
+                .map(function)
+                .collect(Collectors.toSet());
+    }
+
+    /**
+     * 映射函数
+     * @param function 映射函数
+     * @param <T> 源类型
+     * @param <R> 目标类型
+     * @return 获取映射后的集合的函数
+     */
+    public static <T, R> Function<Collection<T>, List<R>> mapTo(final Function<T, R> function) {
+        checkAllNotNull(function);
+
+        return list -> mapTo(list, function);
+    }
+
+    /**
+     * 映射并去重
+     * @param list 集合
+     * @param function 映射函数
+     * @param <T> 源类型
+     * @param <R> 目标类型
+     * @return 映射后的集合
+     */
+    public static <T, R> List<R> mapDistinctTo(final Collection<T> list, final Function<T, R> function) {
+        checkAllNotNull(function);
+
+        return getListStream(list)
+                .map(function)
+                .distinct()
+                .collect(Collectors.toList());
+    }
+
+    /**
+     * 映射并去重函数
+     * @param function 映射函数
+     * @param <T> 源类型
+     * @param <R> 目标类型
+     * @return 获取映射并去重后的集合的函数
+     */
+    public static <T, R> Function<Collection<T>, List<R>> mapDistinctTo(final Function<T, R> function) {
+        checkAllNotNull(function);
+
+        return list -> mapDistinctTo(list, function);
+    }
+
+    /**
+     * 循环处理
+     * @param list 集合
+     * @param consumer 消费函数
+     * @param <T> 源类型
+     */
+    public static <T> void forEachToDo(final Collection<T> list, final Consumer<T> consumer) {
+        checkAllNotNull(consumer);
+
+        getListStream(list).forEach(consumer);
+    }
+
+    /**
+     * 过滤
+     * @param list 集合
+     * @param predicate 谓语表达式
+     * @param <T> 源类型
+     * @return 过滤后的集合
+     */
+    public static <T> List<T> filter(final Collection<T> list, final Predicate<T> predicate) {
+        checkAllNotNull(predicate);
+
+        return getListStream(list)
+                .filter(predicate)
+                .collect(Collectors.toList());
+    }
+
+    /**
+     * 过滤函数
+     * @param predicate 谓语表达式
+     * @param <T> 源类型
+     * @return 获取过滤后的集合的函数
+     */
+    public static <T> Function<Collection<T>, List<T>> filter(final Predicate<T> predicate) {
+        checkAllNotNull(predicate);
+
+        return list -> filter(list, predicate);
+    }
+
+    /**
+     * 过滤后返回第一条数据,若过滤后无数据则返回null
+     * @param list 集合
+     * @param predicate 谓语表达式
+     * @param <T> 源类型
+     * @return 过滤后的集合
+     */
+    public static <T> T filterFindFirst(final Collection<T> list, final Predicate<T> predicate) {
+
+        return filterFindFirstOrElse(list, predicate, null);
+    }
+
+    /**
+     * 过滤后返回第一条数据,若过滤后无数据则返回null的函数
+     * @param predicate 谓语表达式
+     * @param <T> 源类型
+     * @return 获取过滤后第一条数据的函数
+     */
+    public static <T> Function<Collection<T>, T> filterFindFirst(final Predicate<T> predicate) {
+
+        return list -> filterFindFirst(list, predicate);
+    }
+
+    /**
+     * 过滤后返回第一条数据,若过滤后无数据则返回默认值
+     * @param list 集合
+     * @param predicate 谓语表达式
+     * @param <T> 源类型
+     * @return 过滤后的集合
+     */
+    public static <T> T filterFindFirstOrElse(final Collection<T> list, final Predicate<T> predicate, final T defaultValue) {
+
+        return filterFindFirstOrElseGet(list, predicate, () -> defaultValue);
+    }
+
+    /**
+     * 过滤后返回第一条数据,若过滤后无数据则返回默认值的函数
+     * @param predicate 谓语表达式
+     * @param <T> 源类型
+     * @return 获取过滤后第一条数据的函数
+     */
+    public static <T> Function<Collection<T>, T> filterFindFirstOrElse(final Predicate<T> predicate, final T defaultValue) {
+
+        return list -> filterFindFirstOrElse(list, predicate, defaultValue);
+    }
+
+    /**
+     * 过滤后返回第一条数据,若过滤后无数据则返回默认值
+     * @param list 集合
+     * @param predicate 谓语表达式
+     * @param <T> 源类型
+     * @return 过滤后的集合
+     */
+    public static <T> T filterFindFirstOrElseGet(final Collection<T> list, final Predicate<T> predicate, final Supplier<T> supplier) {
+        checkAllNotNull(predicate, supplier);
+
+        return getListStream(list)
+                .filter(predicate)
+                .findFirst()
+                .orElseGet(supplier);
+    }
+
+    /**
+     * 过滤后返回第一条数据,若过滤后无数据则返回默认值的函数
+     * @param predicate 谓语表达式
+     * @param <T> 源类型
+     * @return 获取过滤后第一条数据的函数
+     */
+    public static <T> Function<Collection<T>, T> filterFindFirstOrElseGet(final Predicate<T> predicate, final Supplier<T> supplier) {
+        checkAllNotNull(predicate, supplier);
+
+        return list -> filterFindFirstOrElseGet(list, predicate, supplier);
+    }
+
+    /**
+     * 过滤并映射
+     * @param list 集合
+     * @param predicate 谓语表达式
+     * @param function 映射函数
+     * @param <T> 源类型
+     * @return 过滤并映射后的集合
+     */
+    public static <T, R> List<R> filterThenMapTo(final Collection<T> list, final Predicate<T> predicate, final Function<T, R> function) {
+        checkAllNotNull(predicate, function);
+
+        return getListStream(list)
+                .filter(predicate)
+                .map(function)
+                .collect(Collectors.toList());
+    }
+
+    /**
+     * 过滤并分组
+     *
+     * @param list 数据集合
+     * @param predicate 过滤条件
+     * @param function 映射函数
+     * @param <T> 原类型
+     * @param <R> 转换类型
+     * @return 过滤并分组后的映射
+     */
+    public static <T, R> Map<R, List<T>> filterThenGroupBy(final Collection<T> list, final Predicate<T> predicate, final Function<T, R> function) {
+
+        checkAllNotNull(predicate, function);
+        return getListStream(list)
+                .filter(predicate)
+                .collect(Collectors.groupingBy(function));
+    }
+
+    /**
+     * 过滤并映射函数
+     * @param predicate 谓语表达式
+     * @param function 映射函数
+     * @param <T> 源类型
+     * @return 获取过滤并映射后的集合的函数
+     */
+    public static <T, R> Function<Collection<T>, List<R>> filterThenMapTo(final Predicate<T> predicate, final Function<T, R> function) {
+        checkAllNotNull(predicate, function);
+
+        return list -> filterThenMapTo(list, predicate, function);
+    }
+
+    /**
+     * 过滤出非空白字符串
+     * @param list 集合
+     * @return 过滤后的集合
+     */
+    public static List<String> filterNotBlank(final Collection<String> list) {
+
+        return filter(list, StringUtils::isNotBlank);
+    }
+
+    /**
+     * 过滤出非空对象
+     * @param list 集合
+     * @param <T> 源类型
+     * @return 过滤后的集合
+     */
+    public static <T> List<T> filterNonNull(final Collection<T> list) {
+
+        return filter(list, Objects::nonNull);
+    }
+
+    /**
+     * 转map
+     * @param list 集合
+     * @param keyFunc 键函数
+     * @param valueFunc 值函数
+     * @param <T> 源类型
+     * @param <R> map键类型
+     * @param <E> map值类型
+     * @return map
+     */
+    public static <T, R, E> Map<R, E> toMap(final Collection<T> list, final Function<T, R> keyFunc, final Function<T, E> valueFunc) {
+        checkAllNotNull(keyFunc, valueFunc);
+
+        return getListStream(list)
+                .collect(HashMap::new, (map, element) -> map.put(keyFunc.apply(element), valueFunc.apply(element)), HashMap::putAll);
+    }
+
+    /**
+     * 转map函数
+     * @param keyFunc 键函数
+     * @param valueFunc 值函数
+     * @param <T> 源类型
+     * @param <R> map键类型
+     * @param <E> map值类型
+     * @return 获取map的函数
+     */
+    public static <T, R, E> Function<Collection<T>, Map<R, E>> toMap(final Function<T, R> keyFunc, final Function<T, E> valueFunc) {
+        checkAllNotNull(keyFunc, valueFunc);
+
+        return list -> toMap(list, keyFunc, valueFunc);
+    }
+
+    /**
+     * 转key为集合下标map
+     * @param list 集合
+     * @param valueFunc 值函数
+     * @param <T> 源类型
+     * @param <E> map值类型
+     * @return map
+     */
+    public static <T, E> Map<Integer, E> toMapWithIndex(final List<T> list, final Function<T, E> valueFunc) {
+        checkAllNotNull(valueFunc);
+
+        if (CollectionUtils.isEmpty(list)) {
+            return Collections.emptyMap();
+        }
+
+        return IntStream.range(0, list.size())
+                .boxed()
+                .collect(HashMap::new, (map, index) -> map.put(index, valueFunc.apply(list.get(index))), HashMap::putAll);
+    }
+
+    /**
+     * 转key为集合下标map的函数
+     * @param valueFunc 值函数
+     * @param <T> 源类型
+     * @param <E> map值类型
+     * @return 获取map的函数
+     */
+    public static <T, E> Function<List<T>, Map<Integer, E>> toMapWithIndex(final Function<T, E> valueFunc) {
+
+        return list -> toMapWithIndex(list, valueFunc);
+    }
+
+    /**
+     * 转map,map的value为自身
+     * @param list 集合
+     * @param keyFunc 键函数
+     * @param <T> 源类型
+     * @param <R> map键类型
+     * @return map
+     */
+    public static <T, R> Map<R, T> toIdentityMap(final Collection<T> list, final Function<T, R> keyFunc) {
+
+        return toMap(list, keyFunc, Function.identity());
+    }
+
+    /**
+     * 转map,map的value为自身的函数
+     * @param keyFunc 键函数
+     * @param <T> 源类型
+     * @param <R> map键类型
+     * @return 获取map的函数
+     */
+    public static <T, R> Function<Collection<T>, Map<R, T>> toIdentityMap(final Function<T, R> keyFunc) {
+
+        return list -> toIdentityMap(list, keyFunc);
+    }
+
+    /**
+     * 转map,map的key和value都为自身
+     * @param list 集合
+     * @param <T> 源类型
+     * @return map
+     */
+    public static <T> Map<T, T> toIdentityMapWithIdentity(final Collection<T> list) {
+
+        return toMap(list, Function.identity(), Function.identity());
+    }
+
+    /**
+     * 转map,key为集合下标,value为自身
+     * @param list 集合
+     * @param <T> 源类型
+     * @return map
+     */
+    public static <T> Map<Integer, T> toIdentityMapWithIndex(final List<T> list) {
+
+        return toMapWithIndex(list, Function.identity());
+    }
+
+    /**
+     * 分组
+     * @param list 集合
+     * @param classifier 分类器
+     * @param <T> 源类型
+     * @param <R> map键类型
+     * @return 分组map
+     */
+    public static <T, R> Map<R, List<T>> toGroupMap(final Collection<T> list, final Function<T, R> classifier) {
+
+        return toGroupMap(list, classifier, Function.identity());
+    }
+
+    /**
+     * 分组函数
+     * @param classifier 分类器
+     * @param <T> 源类型
+     * @param <R> map键类型
+     * @return 获取分组map的函数
+     */
+    public static <T, R> Function<Collection<T>, Map<R, List<T>>> toGroupMap(final Function<T, R> classifier) {
+
+        return list -> toGroupMap(list, classifier);
+    }
+
+    /**
+     * 分组
+     * @param list 集合
+     * @param classifier 分类器
+     * @param valueFunc 值函数
+     * @param <T> 源类型
+     * @param <R> map键类型
+     * @param <E> map值类型
+     * @return 分组map
+     */
+    public static <T, R, E> Map<R, List<E>> toGroupMap(final Collection<T> list, final Function<T, R> classifier, final Function<T, E> valueFunc) {
+        checkAllNotNull(classifier);
+
+        return getListStream(list)
+                .collect(Collectors.groupingBy(classifier, Collectors.mapping(valueFunc, Collectors.toList())));
+    }
+
+    /**
+     * 分组后统计数量
+     * @param list 集合
+     * @param classifier 分类器
+     * @param <T> 源类型
+     * @param <R> map键类型
+     * @return 分组map
+     */
+    public static <T, R> Map<R, Long> toCountGroupMap(final Collection<T> list, final Function<T, R> classifier) {
+        checkAllNotNull(classifier);
+
+        return getListStream(list)
+                .collect(Collectors.groupingBy(classifier, Collectors.counting()));
+    }
+
+    /**
+     * 分组后统计数量函数
+     * @param classifier 分类器
+     * @param <T> 源类型
+     * @param <R> map键类型
+     * @return 获取分组后统计数量的函数
+     */
+    public static <T, R> Function<Collection<T>, Map<R, Long>> toCountGroupMap(final Function<T, R> classifier) {
+
+        return list -> toCountGroupMap(list, classifier);
+    }
+
+    /**
+     * 分组函数
+     * @param classifier 分类器
+     * @param valueFunc 值函数
+     * @param <T> 源类型
+     * @param <R> map键类型
+     * @param <E> map值类型
+     * @return 获取分组map的函数
+     */
+    public static <T, R, E> Function<Collection<T>, Map<R, List<E>>> toGroupMap(final Function<T, R> classifier, final Function<T, E> valueFunc) {
+        checkAllNotNull(classifier);
+
+        return list -> toGroupMap(list, classifier, valueFunc);
+    }
+
+    /**
+     * 计算总和
+     * @param list 集合
+     * @param function 映射函数
+     * @param <T> 源类型
+     * @return 总和
+     */
+    public static <T> int sumTotal(final Collection<T> list, final Function<T, Integer> function) {
+        checkAllNotNull(function);
+
+        return mapThenReduce(list, function, 0, Integer::sum);
+    }
+
+    /**
+     * 计算总和的函数
+     * @param function 映射函数
+     * @param <T> 源类型
+     * @return 获取总和的函数
+     */
+    public static <T> Function<Collection<T>, Integer> sumTotal(final Function<T, Integer> function) {
+        checkAllNotNull(function);
+
+        return list -> sumTotal(list, function);
+    }
+
+    /**
+     * 计算总和
+     * @param list 集合
+     * @param function 映射函数
+     * @param <T> 源类型
+     * @return 总和
+     */
+    public static <T> BigDecimal addTotal(final Collection<T> list, final Function<T, BigDecimal> function) {
+        checkAllNotNull(function);
+
+        return mapThenReduce(list, function, BigDecimal.ZERO, BigDecimal::add);
+    }
+
+    /**
+     * 计算总和的函数
+     * @param function 映射函数
+     * @param <T> 源类型
+     * @return 获取总和的函数
+     */
+    public static <T> Function<Collection<T>, BigDecimal> addTotal(final Function<T, BigDecimal> function) {
+        checkAllNotNull(function);
+
+        return list -> addTotal(list, function);
+    }
+
+    /**
+     * 获取比较后的最大值
+     * @param list 集合
+     * @param comparator 比较器
+     * @param <T> 源类型
+     * @return 最大值
+     */
+    @Nullable
+    public static <T> T maxOrElseNull(final Collection<T> list, final Comparator<T> comparator) {
+        checkAllNotNull(comparator);
+
+        return getListStream(list)
+                .max(comparator)
+                .orElse(null);
+    }
+
+    /**
+     * 获取比较后最大值的函数
+     * @param comparator 比较器
+     * @param <T> 源类型
+     * @return 获取比较后最大值的函数
+     */
+    public static <T> Function<Collection<T>, T> maxOrElseNull(final Comparator<T> comparator) {
+        checkAllNotNull(comparator);
+
+        return list -> maxOrElseNull(list, comparator);
+    }
+
+    /**
+     * 获取比较后的最小值
+     * @param list 集合
+     * @param comparator 比较器
+     * @param <T> 源类型
+     * @return 最小值
+     */
+    @Nullable
+    public static <T> T minOrElseNull(final Collection<T> list, final Comparator<T> comparator) {
+        checkAllNotNull(comparator);
+
+        return getListStream(list)
+                .min(comparator)
+                .orElse(null);
+    }
+
+    /**
+     * 获取比较后最小值的函数
+     * @param comparator 比较器
+     * @param <T> 源类型
+     * @return 获取比较后最小值的函数
+     */
+    public static <T> Function<Collection<T>, T> minOrElseNull(final Comparator<T> comparator) {
+        checkAllNotNull(comparator);
+
+        return list -> minOrElseNull(list, comparator);
+    }
+
+    /**
+     * 根据列表中某字段进行reduce操作
+     * @param list 元数据
+     * @param mapFunction 映射函数
+     * @param identity 初始值
+     * @param accumulator 操作
+     * @param <T> 聚合操作后的类型
+     * @param <E> 源数据类型
+     * @return 聚合操作后的值
+     */
+    public static <T, E> T mapThenReduce(final Collection<E> list, final Function<E, T> mapFunction, final T identity, final BinaryOperator<T> accumulator) {
+        checkAllNotNull(accumulator, mapFunction);
+
+        return getListStream(list)
+                .map(mapFunction)
+                .filter(Objects::nonNull)
+                .reduce(identity, accumulator);
+    }
+
+    /**
+     * 谓语相等判断增强方法
+     * 用于{@code .filter(t -> t.type.equals(type))}的情况,用法:.filter(StreamUtils.isEqualEnhance(type, Enum::type))
+     * @param targetObj 目标对象
+     * @param function 映射函数
+     * @param <T> 源类型
+     * @param <R> 目标类型
+     * @return 谓语函数
+     *
+     * @deprecated 从6.13.0开始弃用,对应方法增强器请移步{@link PredicateEnhance#isEqualEnhance(Object, Function)}
+     */
+    @Deprecated
+    public static <T, R> Predicate<T> isEqualEnhance(final R targetObj, final Function<T, R> function) {
+
+        return PredicateEnhance.isEqualEnhance(targetObj, function);
+    }
+
+    /**
+     * 谓语非{@code null}判断增强方法
+     * 用于{@code .filter(t -> Objects.nonNull(t.type))}的情况,用法:.filter(StreamUtils.nonNullEnhance(Enum::type))
+     * @param function 映射函数
+     * @param <T> 源类型
+     * @param <R> 目标类型
+     * @return 谓语函数
+     *
+     * @deprecated 从6.13.0开始弃用,对应方法增强器请移步{@link PredicateEnhance#nonNullEnhance(Function)}
+     */
+    @Deprecated
+    public static <T, R> Predicate<T> nonNullEnhance(final Function<T, R> function) {
+
+        return PredicateEnhance.nonNullEnhance(function);
+    }
+
+    /**
+     * 获取集合流
+     * @param list 源集合
+     * @param <T> 源类型
+     * @return 集合流
+     */
+    private static <T> Stream<T> getListStream(final Collection<T> list) {
+
+        return CollectionUtils.emptyIfNull(list)
+                .stream();
+    }
+
+    /**
+     * 校验对象是否全非空,若否则抛出异常
+     * @param object 对象,可多个
+     */
+    private static void checkAllNotNull(final Object ...object) {
+
+        if (Objects.isNull(object) || !ObjectUtils.allNotNull(Arrays.asList(object))) {
+            throw new SystemException("Function/Predicate/Comparator/Consumer must be not null!");
+        }
+    }
+}

+ 1 - 4
tenant/insurance/quotation-commons/src/main/java/com/jzg/quotation/commons/utils/TimeProcessing.java

@@ -5,10 +5,7 @@ import lombok.AllArgsConstructor;
 import lombok.Data;
 import lombok.NoArgsConstructor;
 
-import java.time.LocalDate;
-import java.time.LocalDateTime;
-import java.time.LocalTime;
-import java.time.Period;
+import java.time.*;
 import java.time.format.DateTimeFormatter;
 
 /**

+ 1 - 2
tenant/insurance/quotation-guoren/src/main/java/com/jzg/quotation/guoren/crawler/constant/enums/BusinessSources.java → tenant/insurance/quotation-guoren/src/main/java/com/jzg/quotation/guoren/crawler/constant/BusinessSources.java

@@ -1,6 +1,5 @@
-package com.jzg.quotation.guoren.crawler.constant.enums;
+package com.jzg.quotation.guoren.crawler.constant;
 
-import lombok.AllArgsConstructor;
 import lombok.Getter;
 
 import java.util.HashMap;

+ 1 - 2
tenant/insurance/quotation-guoren/src/main/java/com/jzg/quotation/guoren/crawler/constant/enums/InsuranceMap.java → tenant/insurance/quotation-guoren/src/main/java/com/jzg/quotation/guoren/crawler/constant/InsuranceMap.java

@@ -1,6 +1,5 @@
-package com.jzg.quotation.guoren.crawler.constant.enums;
+package com.jzg.quotation.guoren.crawler.constant;
 
-import com.jzg.quotation.commons.constant.InsuranceCode;
 import com.jzg.quotation.guoren.crawler.entity.po.InsuranceItem;
 
 import java.util.HashMap;

+ 1 - 4
tenant/insurance/quotation-guoren/src/main/java/com/jzg/quotation/guoren/crawler/entity/request/GuoRenCrawlerCalculationPremiumRequest.java

@@ -5,15 +5,13 @@ import com.fasterxml.jackson.annotation.JsonProperty;
 import com.jzg.commons.entity.quote.vo.*;
 import com.jzg.commons.exception.SystemException;
 import com.jzg.quotation.commons.utils.TimeProcessing;
-import com.jzg.quotation.guoren.crawler.constant.enums.InsuranceMap;
+import com.jzg.quotation.guoren.crawler.constant.InsuranceMap;
 import com.jzg.quotation.guoren.crawler.entity.dto.CiInsureDemandDTO;
 import com.jzg.quotation.guoren.crawler.entity.dto.PrpTMainDTO;
 import com.jzg.quotation.guoren.crawler.entity.dto.PrptengageListDTO;
 import com.jzg.quotation.guoren.crawler.entity.po.InsuranceItem;
 import com.jzg.quotation.guoren.crawler.entity.po.TaxResult;
-import com.jzg.quotation.guoren.crawler.entity.response.GuoRenCrawlerGetAgentAgreementResponse;
 import com.jzg.quotation.guoren.crawler.entity.response.GuoRenCrawlerGetCarPriceData;
-import com.jzg.quotation.guoren.crawler.entity.response.GuoRenCrawlerInitSelectResponse;
 import com.jzg.quotation.guoren.crawler.entity.response.GuoRenCrawlerWriteBackAddressData;
 import com.jzg.quotation.guoren.crawler.utils.VehicleTaxCalculator;
 import lombok.AllArgsConstructor;
@@ -21,7 +19,6 @@ import lombok.Data;
 import lombok.NoArgsConstructor;
 import org.springframework.util.ObjectUtils;
 
-import java.time.LocalDateTime;
 import java.util.*;
 
 /**

+ 1 - 3
tenant/insurance/quotation-guoren/src/main/java/com/jzg/quotation/guoren/crawler/service/impl/GuoRenCrawlerQuoteProcessServiceImpl.java

@@ -10,7 +10,7 @@ import com.jzg.quotation.commons.standard.conversion.ConfigureParametersConversi
 import com.jzg.quotation.commons.utils.TimeProcessing;
 import com.jzg.quotation.guoren.crawler.component.GuoRenCrawlerCacheComponent;
 import com.jzg.quotation.guoren.crawler.component.GuoRenCrawlerRequestComponent;
-import com.jzg.quotation.guoren.crawler.constant.enums.BusinessSources;
+import com.jzg.quotation.guoren.crawler.constant.BusinessSources;
 import com.jzg.quotation.guoren.crawler.entity.GuoRenCrawlerConfigureParameters;
 import com.jzg.quotation.guoren.crawler.entity.dto.PrpTMainDTO;
 import com.jzg.quotation.guoren.crawler.entity.request.GuoRenCrawlerCalculationPremiumRequest;
@@ -21,8 +21,6 @@ import lombok.RequiredArgsConstructor;
 import org.springframework.http.HttpHeaders;
 import org.springframework.stereotype.Service;
 
-import java.util.Map;
-
 @Service
 @RequiredArgsConstructor
 public class GuoRenCrawlerQuoteProcessServiceImpl implements GuoRenCrawlerQuoteProcessService {

+ 4 - 0
tenant/insurance/quotation-guoren/src/main/java/com/jzg/quotation/guoren/crawler/utils/VehicleTaxCalculator.java

@@ -9,6 +9,10 @@ import java.util.Map;
 @AllArgsConstructor
 public final class VehicleTaxCalculator {
 
+    private VehicleTaxCalculator() {
+        throw new IllegalStateException("Utility class");
+    }
+
     private final String comCode;
 
     private final int seatCount;

+ 9 - 0
tenant/insurance/quotation-renbao/src/main/java/com/jzg/quotation/renbao/crawler/build/RenBaoCrawlerQuoteResultsVoBuild.java

@@ -0,0 +1,9 @@
+package com.jzg.quotation.renbao.crawler.build;
+
+public class RenBaoCrawlerQuoteResultsVoBuild {
+
+
+
+
+
+}

+ 299 - 0
tenant/insurance/quotation-renbao/src/main/java/com/jzg/quotation/renbao/crawler/component/RenBaoCrawlerRequestComponent.java

@@ -0,0 +1,299 @@
+package com.jzg.quotation.renbao.crawler.component;
+
+
+import com.jzg.commons.entity.quote.vo.CarInfoVo;
+import com.jzg.commons.entity.quote.vo.QuoteVo;
+import com.jzg.commons.exception.SystemException;
+import com.jzg.quotation.commons.component.RequestComponent;
+import com.jzg.quotation.commons.filter.CarModelsFilterUtils;
+import com.jzg.quotation.commons.utils.TimeProcessing;
+import com.jzg.quotation.renbao.crawler.constant.enums.RequestUrl;
+import com.jzg.quotation.renbao.crawler.entity.dto.PrpCmainDTO;
+import com.jzg.quotation.renbao.crawler.entity.request.*;
+import com.jzg.quotation.renbao.crawler.entity.response.*;
+import com.jzg.quotation.renbao.crawler.properties.RenBaoCrawlerProperties;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.core.ParameterizedTypeReference;
+import org.springframework.http.HttpHeaders;
+
+import java.util.List;
+
+
+@Slf4j
+@RequiredArgsConstructor
+public class RenBaoCrawlerRequestComponent {
+
+    private final RequestComponent requestComponent;
+
+    private final RenBaoCrawlerProperties renBaoCrawlerProperties;
+
+    /**
+     * 请求入口
+     *
+     * @param requestUrl                 请求拼接枚举
+     * @param body                       请求体
+     * @param parameterizedTypeReference 响应类型
+     * @param httpHeaders                请求头
+     * @param <Response>                 响应
+     * @return 响应内容
+     */
+    public <Response> Response request(RequestUrl requestUrl, Object body, ParameterizedTypeReference<Response> parameterizedTypeReference, HttpHeaders httpHeaders) {
+        String url = renBaoCrawlerProperties.getBaseUrl() + requestUrl.getUri();
+        Response response = requestComponent.post(url, body, requestUrl.getRequestDescription(), parameterizedTypeReference, httpHeaders);
+        if (response instanceof RenBaoCrawlerBaseResponse) {
+            if (((RenBaoCrawlerBaseResponse<?>) response).getStatus() != 200) {
+                throw new SystemException(((RenBaoCrawlerBaseResponse<?>) response).getMessage());
+            }
+        }
+        return response;
+    }
+
+    /**
+     * 初始化参数
+     *
+     * @param httpHeaders 请求头
+     * @return 初始化参数信息
+     */
+    public RenBaoCrawlerInitZNCDData initZNCDData(HttpHeaders httpHeaders) {
+        RenBaoCrawlerBaseResponse<RenBaoCrawlerInitZNCDData> response = request(RequestUrl.INIT_ZNCD, null, new ParameterizedTypeReference<>() {
+        }, httpHeaders);
+        return response.getData();
+    }
+
+    /**
+     * 归属部门查询
+     *
+     * @param userCode                  用户编号
+     * @param comCode                   归属编号
+     * @param attributionDepartmentCode 归属部门编号
+     * @param httpHeaders               请求头
+     * @return 归属部门信息
+     */
+    public List<String> queryCode(String userCode, String comCode, String attributionDepartmentCode, HttpHeaders httpHeaders) {
+        RenBaoCrawlerQueryCodeRequest renBaoQueryCodeRequest = new RenBaoCrawlerQueryCodeRequest(userCode, comCode, attributionDepartmentCode);
+        RenBaoCrawlerBaseResponse<RenBaoCrawlerQueryCodeData> response = request(RequestUrl.QUERY_CODE, renBaoQueryCodeRequest, new ParameterizedTypeReference<>() {
+        }, httpHeaders);
+        return response.getData()
+                .getResult()
+                .stream()
+                .filter(x -> attributionDepartmentCode.equals(x.get(0)))
+                .findFirst()
+                .orElseThrow(() -> new SystemException("归属部门信息查询失败,请检查归属配置"));
+    }
+
+    /**
+     * 归属人信息查询
+     *
+     * @param userCode      用户编号
+     * @param comCode       归属部门编号
+     * @param ownershipCode 归属人编号
+     * @param httpHeaders   请求头
+     * @return 归属人信息
+     */
+    public RenBaoCrawlerQueryHandler1CodeData.ResultDTO queryHandler1Code(String userCode, String comCode, String ownershipCode, HttpHeaders httpHeaders) {
+        RenBaoCrawlerQueryHandler1CodeRequest renBaoQueryCodeRequest = new RenBaoCrawlerQueryHandler1CodeRequest(userCode, comCode, ownershipCode);
+        RenBaoCrawlerBaseResponse<RenBaoCrawlerQueryHandler1CodeData> response = request(RequestUrl.QUERY_HANDLER1_CODE, renBaoQueryCodeRequest, new ParameterizedTypeReference<>() {
+        }, httpHeaders);
+        return response.getData()
+                .getResult()
+                .stream()
+                .filter(x -> ownershipCode.equals(x.getUserCode()))
+                .findFirst()
+                .orElseThrow(() -> new SystemException("归属人信息查询失败,请检查归属配置"));
+    }
+
+    /**
+     * 经办人查询
+     *
+     * @param comCode     归属部门编号
+     * @param managerCode 经办人编号
+     * @param httpHeaders 请求头
+     * @return 经办人信息
+     */
+    public List<String> queryHandlerCode(String comCode, String managerCode, HttpHeaders httpHeaders) {
+        RenBaoCrawlerQueryHandlerCodeRequest renBaoQueryCodeRequest = new RenBaoCrawlerQueryHandlerCodeRequest(comCode, managerCode);
+        RenBaoCrawlerBaseResponse<RenBaoCrawlerQueryHandlerCodeData> response = request(RequestUrl.QUERY_HANDLER_CODE, renBaoQueryCodeRequest, new ParameterizedTypeReference<>() {
+        }, httpHeaders);
+        return response.getData().getResult()
+                .stream()
+                .filter(x -> managerCode.equals(x.get(0)))
+                .findFirst()
+                .orElseThrow(() -> new SystemException("经办人信息查询失败,请检查归属配置"));
+    }
+
+    /**
+     * 渠道名称信息查询
+     *
+     * @param userCode       账号编号
+     * @param comBaseCode    归属编号
+     * @param comCode        归属部门编号
+     * @param channelName    渠道名称
+     * @param businessNature 业务来源
+     * @param httpHeaders    请求头
+     * @return 渠道信息
+     */
+    public RenBaoCrawlerGetAgentsData.DataDTO getAgents(String userCode, String comBaseCode, String comCode, String channelName, String businessNature, HttpHeaders httpHeaders) {
+        RenBaoCrawlerGetAgentsRequest renBaoCrawlerGetAgentsRequest = new RenBaoCrawlerGetAgentsRequest(userCode, comBaseCode, comCode, channelName, businessNature);
+        RenBaoCrawlerBaseResponse<RenBaoCrawlerGetAgentsData> response = request(RequestUrl.GET_AGENTS, renBaoCrawlerGetAgentsRequest, new ParameterizedTypeReference<>() {
+        }, httpHeaders);
+        return response.getData()
+                .getData()
+                .stream()
+                .filter(x -> channelName.equals(x.getAgentName()))
+                .findFirst()
+                .orElseThrow(() -> new SystemException("渠道名称信息查询失败,请检查归属配置"));
+    }
+
+    /**
+     * 验车人查询
+     *
+     * @param comCode          归属部门编号
+     * @param carInspectorCode 验车人编号
+     * @param httpHeaders      请求头
+     * @return 验车人
+     */
+    public RenBaoCrawlerQueryServiceManagerData.DataDTO queryServiceManager(String comCode, String carInspectorCode, HttpHeaders httpHeaders) {
+        RenBaoCrawlerQueryServiceManagerRequest renBaoQueryCodeRequest = new RenBaoCrawlerQueryServiceManagerRequest(comCode, carInspectorCode);
+        RenBaoCrawlerBaseResponse<RenBaoCrawlerQueryServiceManagerData> response = request(RequestUrl.QUERY_SERVICE_MANAGER, renBaoQueryCodeRequest, new ParameterizedTypeReference<>() {
+        }, httpHeaders);
+        return response.getData().getData()
+                .stream()
+                .filter(x -> carInspectorCode.equals(x.getUserCode()))
+                .findFirst()
+                .orElseThrow(() -> new SystemException(" 验车人信息查询失败,请检查归属配置"));
+    }
+
+    /**
+     * 推荐送修码查询
+     *
+     * @param comCode     归属部门编码
+     * @param storeCode   推荐送修码
+     * @param httpHeaders 请求头
+     * @return 推荐送修码
+     */
+    public RenBaoCrawlerGetMonopolyData.DataDTO getMonopoly(String comCode, String storeCode, HttpHeaders httpHeaders) {
+        RenBaoCrawlerGetMonopolyRequest renBaoCrawlerGetMonopolyRequest = new RenBaoCrawlerGetMonopolyRequest(comCode, storeCode);
+        RenBaoCrawlerBaseResponse<RenBaoCrawlerGetMonopolyData> response = request(RequestUrl.GET_MONOPOLY, renBaoCrawlerGetMonopolyRequest, new ParameterizedTypeReference<>() {
+        }, httpHeaders);
+        return response.getData()
+                .getData()
+                .stream()
+                .filter(x -> storeCode.equals(x.getStoreCode()))
+                .findFirst()
+                .orElseThrow(() -> new SystemException("验车人信息查询失败,请检查归属配置"));
+    }
+
+    /**
+     * 查询车辆信息
+     *
+     * @param comCode     归属编码
+     * @param userCode    用户编码
+     * @param carInfoVo   车辆信息
+     * @param httpHeaders 请求头
+     * @return 唯一车辆信息
+     */
+    public RenBaoCrawlerVehicleQueryData.CarInfosDTO.ResultDTO vehicleQuery(String comCode, String userCode, CarInfoVo carInfoVo, HttpHeaders httpHeaders) {
+        RenBaoCrawlerVehicleQueryRequest renBaoCrawlerVehicleQueryRequest = new RenBaoCrawlerVehicleQueryRequest(comCode, userCode, carInfoVo.getBrandName());
+        RenBaoCrawlerBaseResponse<RenBaoCrawlerVehicleQueryData> response = request(RequestUrl.VEHICLE_QUERY, renBaoCrawlerVehicleQueryRequest, new ParameterizedTypeReference<>() {
+        }, httpHeaders);
+        List<RenBaoCrawlerVehicleQueryData.CarInfosDTO.ResultDTO> result = response.getData()
+                .getCarInfos()
+                .getResult();
+        return CarModelsFilterUtils.to(result, carInfoVo);
+    }
+
+    /**
+     * 查询车价
+     *
+     * @param comCode       归属编码
+     * @param purchasePrice 新车购置价
+     * @param startDataCi   商业起保时间
+     * @param carInfoVo     车辆信息
+     * @param httpHeaders   请求头
+     * @return 参考实际价值
+     */
+    public String calActualValue(String comCode, String purchasePrice, String startDataCi, CarInfoVo carInfoVo, HttpHeaders httpHeaders) {
+        String startData = TimeProcessing.dateTimeToDate(startDataCi);
+        RenBaoCrawlerCalActualValueRequest renBaoCrawlerCalActualValueRequest = new RenBaoCrawlerCalActualValueRequest(comCode, purchasePrice, startData, carInfoVo);
+        RenBaoCrawlerBaseResponse<String> response = request(RequestUrl.CAL_ACTUAL_VALUE, renBaoCrawlerCalActualValueRequest, new ParameterizedTypeReference<>() {
+        }, httpHeaders);
+        return response.getData();
+    }
+
+    /**
+     * 保费计算
+     *
+     * @param renBaoCrawlerCaculatePremiumRequest 报价信息
+     * @param httpHeaders                         请求头
+     * @return 报价信息
+     */
+    public RenBaoCrawlerCaculatePremiumData caculatePremium(RenBaoCrawlerCaculatePremiumRequest renBaoCrawlerCaculatePremiumRequest, HttpHeaders httpHeaders) {
+        RenBaoCrawlerBaseResponse<RenBaoCrawlerCaculatePremiumData> response = request(RequestUrl.CACULATE_PREMIUM, renBaoCrawlerCaculatePremiumRequest, new ParameterizedTypeReference<>() {
+        }, httpHeaders);
+        return response.getData();
+    }
+
+    /**
+     * 保存
+     *
+     * @param httpHeaders 请求头
+     * @return 报价信息
+     */
+    public RenBaoCrawlerSaveAsProposalData saveAsProposal(RenBaoCrawlerCaculatePremiumRequest caculatePremiumRequest, RenBaoCrawlerCaculatePremiumData caculatePremiumData, HttpHeaders httpHeaders) {
+        RenBaoCrawlerBaseResponse<RenBaoCrawlerSaveAsProposalData> response = request(RequestUrl.SAVE_AS_PROPOSAL, caculatePremiumRequest, new ParameterizedTypeReference<>() {
+        }, httpHeaders);
+        return response.getData();
+    }
+
+    /**
+     * 提交核保
+     *
+     * @param comCode     归属编号
+     * @param prpBi       商业投保单号
+     * @param prpCi       交强投保单号
+     * @param httpHeaders 请求头
+     * @return 核保信息
+     */
+    public RenBaoCrawlerEditSubmitUndwrtData editSubmitUndwrt(String comCode, String prpBi, String prpCi, HttpHeaders httpHeaders) {
+        RenBaoCrawlerEditSubmitUndwrtRequest renBaoCrawlerEditSubmitUndwrtRequest = new RenBaoCrawlerEditSubmitUndwrtRequest(comCode, prpBi, prpCi);
+        RenBaoCrawlerBaseResponse<RenBaoCrawlerEditSubmitUndwrtData> response = request(RequestUrl.EDIT_SUBMIT_UNDWRT, renBaoCrawlerEditSubmitUndwrtRequest, new ParameterizedTypeReference<>() {
+        }, httpHeaders);
+        return response.getData();
+    }
+
+    /**
+     * 订单查询
+     *
+     * @param comCode          归属编号
+     * @param userCode         用户编号
+     * @param operateDateStart 报价时间日期
+     * @param httpHeaders      请求头
+     * @return 订单列表
+     */
+    public List<RenBaoCrawlerPrepareQueryClaimData.ResultDTO> prepareQueryClaim(String comCode, String userCode, String operateDateStart, HttpHeaders httpHeaders) {
+        RenBaoCrawlerPrepareQueryClaimRequest renBaoCrawlerPrepareQueryClaimRequest = new RenBaoCrawlerPrepareQueryClaimRequest(comCode, userCode, operateDateStart);
+        RenBaoCrawlerBaseResponse<RenBaoCrawlerPrepareQueryClaimData> response = request(RequestUrl.PREPARE_QUERY_CLAIM, renBaoCrawlerPrepareQueryClaimRequest, new ParameterizedTypeReference<>() {
+        }, httpHeaders);
+        return response.getData().getResult();
+    }
+
+    /**
+     * 支付二维码
+     *
+     * @param comCode        归属编号
+     * @param userCode       用户编号
+     * @param documentnolist 投保单号列表
+     * @param httpHeaders    请求头
+     * @return 支付二维码
+     */
+    public String orderPayment(String comCode, String userCode, List<String> documentnolist, HttpHeaders httpHeaders) {
+        RenBaoCrawlerOrderPaymentRequest renBaoCrawlerOrderPaymentRequest = new RenBaoCrawlerOrderPaymentRequest(documentnolist, userCode, comCode);
+        RenBaoCrawlerBaseResponse<RenBaoCrawlerOrderPaymentData> response = request(RequestUrl.ORDER_PAYMENT, renBaoCrawlerOrderPaymentRequest, new ParameterizedTypeReference<>() {
+        }, httpHeaders);
+        return response.getData().getLinkurl();
+    }
+
+
+
+}

+ 30 - 0
tenant/insurance/quotation-renbao/src/main/java/com/jzg/quotation/renbao/crawler/constant/BusinessNatureMap.java

@@ -0,0 +1,30 @@
+package com.jzg.quotation.renbao.crawler.constant;
+
+import java.util.HashMap;
+import java.util.Map;
+
+
+/**
+ * @author wks
+ * @version 1.0
+ * @description: 人保财险  业务来源
+ * @date 2025/12/2 15:23
+ */
+public final class BusinessNatureMap {
+
+    private BusinessNatureMap() {
+        throw new IllegalStateException("Utility class");
+    }
+
+    public static final Map<String, String> BUSINESS_NATURE_MAP = new HashMap<>();
+
+    static {
+        BUSINESS_NATURE_MAP.put("传统直销业务", "0");
+        BUSINESS_NATURE_MAP.put("个人代理业务", "1");
+        BUSINESS_NATURE_MAP.put("专业代理业务", "2");
+        BUSINESS_NATURE_MAP.put("兼业代理业务", "3");
+        BUSINESS_NATURE_MAP.put("经纪业务", "4");
+        BUSINESS_NATURE_MAP.put("网上业务", "53");
+    }
+
+}

+ 228 - 0
tenant/insurance/quotation-renbao/src/main/java/com/jzg/quotation/renbao/crawler/constant/QuotationParameters.java

@@ -0,0 +1,228 @@
+package com.jzg.quotation.renbao.crawler.constant;
+
+import com.jzg.quotation.renbao.crawler.entity.dto.LabelValueDTO;
+import com.jzg.quotation.renbao.crawler.entity.dto.PrpItemKindDDAsDTO;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+public final class QuotationParameters {
+
+    private QuotationParameters() {
+        throw new IllegalStateException("Utility class");
+    }
+
+    public static final List<String> USER_POWER_LIST;
+
+    public static final List<String> OTHER_USER_POWER_LIST;
+
+    public static final List<String> POWER_PATH_LIST;
+
+    public static final List<LabelValueDTO> ENDOR_TYPES_LIST;
+
+    public static final List<PrpItemKindDDAsDTO> PRP_ITEM_KIND_LIST;
+
+    public static final Map<String, String> QUERY_AREA_MAP = new HashMap<>();
+
+    public static final List<LabelValueDTO> CALCULATE_MODES_LIST;
+
+    public static final List<LabelValueDTO> LOCAL_USE_LIST;
+
+    public static final List<LabelValueDTO> DRIV_LICENSE_CODE_LIST;
+
+    public static final List<LabelValueDTO> CAR_VOUCHER_KIND_LIST;
+
+    public static final List<LabelValueDTO> RUN_AREA_CODES_LIST;
+
+
+    static {
+        USER_POWER_LIST = List.of(
+                "CXZNH_carshiptax_declaration",
+                "CXZNH_group_query",
+                "CXZNH_proposal",
+                "CXZNH_historicalpolicyquery",
+                "CXZNH_index",
+                "CXZNH_proposal_DGA",
+                "CXZNH_carshiptax",
+                "CXZNH_carshiptax_whitelistmanage",
+                "CXZNH_proposal_DAA",
+                "CXZNH_query",
+                "CXZNH_group_main",
+                "CXZNH_endor",
+                "CXZNH_group"
+        );
+    }
+
+    static {
+        OTHER_USER_POWER_LIST = List.of(
+                "CXZNH_public_coinplanconfig",
+                "CXZNH_public_proposal",
+                "CXZNH_public_deleteproposal",
+                "CXZNH_endor_query",
+                "CXZNH_endor_mainoperation",
+                "CXZNH_endor_newcar",
+                "CXZNH_public_imagequery",
+                "CXZNH_public_print",
+                "CXZNH_query_batchproposal",
+                "CXZNH_public_endor",
+                "CXZNH_endor_edit",
+                "CXZNH_historicalpolicyquery_proposal",
+                "CXZNH_endor_ration",
+                "CXZNH_proposal_configureEditandView",
+                "CXZNH_endor_queryoperation",
+                "CXZNH_public",
+                "CXZNH_endor_submitundwrt",
+                "CXZNH_endor_shortmessagecheck",
+                "CXZNH_endor_postponed",
+                "CXZNH_endor_main",
+                "CXZNH_public_showPDF",
+                "CXZNH_public_policy",
+                "CXZNH_endor_monoploy",
+                "CXZNH_endor_converttoendorse",
+                "CXZNH_query_prepareEditCommission15",
+                "CXZNH_public_epolicyoperation",
+                "CXZNH_public_proposal_endor",
+                "CXZNH_proposal_configure"
+        );
+    }
+
+    static {
+        POWER_PATH_LIST = List.of(
+                "/cbzx/car/picc/editMonoploy",
+                "/cbzx/car/picc/historicalPolicyQuery",
+                "/cbzx/car/picc/index1",
+                "/cbzx/car/picc/taxDeclaration",
+                "/cbzx/car/showPDF",
+                "/cbzx/car/picc/index",
+                "/cbzx/car/picc/proDGA",
+                "/cbzx/car/picc/endorRation",
+                "/cbzx/car/picc/endorEdit",
+                "/cbzx/car/picc/endorNewCar",
+                "/cbzx/car/picc/groupIndex",
+                "/cbzx/car/picc/operatorConfigureAdd",
+                "/cbzx/car/picc/operatorConfigure",
+                "/cbzx/car/picc/groupMain",
+                "/cbzx/car/picc/taxWhiteListManage",
+                "/cbzx/car/picc/endorHead",
+                "/cbzx/car/picc/endorMainPostponed"
+        );
+    }
+
+
+    static {
+        ENDOR_TYPES_LIST = List.of(
+                new LabelValueDTO("新车上牌", "endorNewCar"),
+                new LabelValueDTO("全单批退", "endorTB"),
+                new LabelValueDTO("全单批改", "endorEdit"),
+                new LabelValueDTO("顺延保险期限", "endorPostpone"),
+                new LabelValueDTO("修改推荐送修码", "endorMonopoly")
+        );
+    }
+
+    static {
+        PRP_ITEM_KIND_LIST = List.of(
+                new PrpItemKindDDAsDTO("051075", "驾乘人员意外伤害保险"),
+                new PrpItemKindDDAsDTO("051076", "附加住院津贴保险"),
+                new PrpItemKindDDAsDTO("051077", "附加超额医疗费用补偿险")
+        );
+    }
+
+    static {
+        QUERY_AREA_MAP.put("110000", "北京市");
+        QUERY_AREA_MAP.put("120000", "津");
+        QUERY_AREA_MAP.put("130000", "河北省");
+        QUERY_AREA_MAP.put("140000", "山西省");
+        QUERY_AREA_MAP.put("150000", "内蒙古自治区");
+        QUERY_AREA_MAP.put("210000", "辽宁省");
+        QUERY_AREA_MAP.put("220000", "吉林省");
+        QUERY_AREA_MAP.put("230000", "黑龙江省");
+        QUERY_AREA_MAP.put("310000", "上海市");
+        QUERY_AREA_MAP.put("320000", "江苏省");
+        QUERY_AREA_MAP.put("330000", "浙江省");
+        QUERY_AREA_MAP.put("340000", "安徽省");
+        QUERY_AREA_MAP.put("350000", "福建省");
+        QUERY_AREA_MAP.put("360000", "江西省");
+        QUERY_AREA_MAP.put("370000", "山东省");
+        QUERY_AREA_MAP.put("410000", "河南省");
+        QUERY_AREA_MAP.put("420000", "湖北省");
+        QUERY_AREA_MAP.put("430000", "湖南省");
+        QUERY_AREA_MAP.put("440000", "广东省");
+        QUERY_AREA_MAP.put("450000", "广西壮族自治区");
+        QUERY_AREA_MAP.put("460000", "海南省");
+        QUERY_AREA_MAP.put("500000", "重庆市");
+        QUERY_AREA_MAP.put("510000", "四川省");
+        QUERY_AREA_MAP.put("520000", "贵州省");
+        QUERY_AREA_MAP.put("530000", "云南省");
+        QUERY_AREA_MAP.put("540000", "西藏自治区");
+        QUERY_AREA_MAP.put("610000", "陕西省");
+        QUERY_AREA_MAP.put("620000", "甘肃省");
+        QUERY_AREA_MAP.put("630000", "青海省");
+        QUERY_AREA_MAP.put("640000", "宁夏回族自治区");
+        QUERY_AREA_MAP.put("650000", "新疆维吾尔自治区");
+    }
+
+    static {
+        CALCULATE_MODES_LIST = List.of(
+                new LabelValueDTO("C1", "使用一年以上车辆"),
+                new LabelValueDTO("C2", "新车"),
+                new LabelValueDTO("C3", "境外机动车临时入境"),
+                new LabelValueDTO("C4", "机动车临时上道路行驶"),
+                new LabelValueDTO("C5", "机动车距规定的报废期限不足一年"),
+                new LabelValueDTO("C6", "使用一年以上从未交过税的车辆")
+        );
+    }
+
+    static {
+        LOCAL_USE_LIST = List.of(
+                new LabelValueDTO("", ""),
+                new LabelValueDTO("1", "是"),
+                new LabelValueDTO("0", "否")
+        );
+    }
+
+    static {
+        DRIV_LICENSE_CODE_LIST = List.of(
+                new LabelValueDTO("G01", "G01-挂车"),
+                new LabelValueDTO("H01", "H01-商用车货车"),
+                new LabelValueDTO("K01", "K01-<=9座,<=1升乘用车"),
+                new LabelValueDTO("K02", "K02-<=9座,1-1.6(含)升乘用车"),
+                new LabelValueDTO("K03", "K03-<=9座,1.6-2(含)升乘用车"),
+                new LabelValueDTO("K04", "K04-<=9座,2-2.5(含)升乘用车"),
+                new LabelValueDTO("K05", "K05-<=9座,2.5-3(含)升乘用车"),
+                new LabelValueDTO("K06", "K06-<=9座,3-4(含)升乘用车"),
+                new LabelValueDTO("K07", "K07-<=9座,>4升乘用车"),
+                new LabelValueDTO("K08", "K08-9人以上20人以下中型客车"),
+                new LabelValueDTO("K09", "K09-20坐以上大型客车、电车"),
+                new LabelValueDTO("M01", "M01-两、三轮摩托车"),
+                new LabelValueDTO("M02", "M02-轻便摩托车"),
+                new LabelValueDTO("X01", "X01-新能源车辆1"),
+                new LabelValueDTO("X02", "X02-新能源车辆2"),
+                new LabelValueDTO("Z01", "Z01-专用作业车")
+        );
+    }
+
+    static {
+        CAR_VOUCHER_KIND_LIST = List.of(
+                new LabelValueDTO("01", "销售发票"),
+                new LabelValueDTO("02", "法院调解书"),
+                new LabelValueDTO("03", "法院裁定书"),
+                new LabelValueDTO("04", "法院判决书"),
+                new LabelValueDTO("05", "仲裁裁决书"),
+                new LabelValueDTO("06", "相关文书(继承、赠予、协议抵债)"),
+                new LabelValueDTO("07", "批准文件"),
+                new LabelValueDTO("08", "调拨证明"),
+                new LabelValueDTO("09", "修理发票")
+        );
+    }
+
+    static {
+        RUN_AREA_CODES_LIST = List.of(
+                new LabelValueDTO("03", "省内行驶"),
+                new LabelValueDTO("11", "中华人民共和国境内(不含港澳台)"),
+                new LabelValueDTO("12", "有固定行驶路线"),
+                new LabelValueDTO("13", "场内")
+        );
+    }
+
+}

+ 60 - 0
tenant/insurance/quotation-renbao/src/main/java/com/jzg/quotation/renbao/crawler/constant/enums/RequestUrl.java

@@ -0,0 +1,60 @@
+package com.jzg.quotation.renbao.crawler.constant.enums;
+
+import com.jzg.quotation.commons.standard.CrawlerRequestUrlStandard;
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+
+/**
+ * @author wks
+ * @version 1.0
+ * @description: 人保财险 请求链接
+ * @date 2025/12/1 17:25
+ */
+@Getter
+@AllArgsConstructor
+public enum RequestUrl implements CrawlerRequestUrlStandard {
+
+    INIT_ZNCD("/front/019K0000003/login/initZNCD", "初始化账号信息"),
+
+    QUERY_CODE("/front/019K0000003/common/queryCode", "归属部门、查询"),
+    QUERY_HANDLER1_CODE("/front/019K0000003/common/queryHandler1Code", "归属人查询"),
+    QUERY_HANDLER_CODE("/front/019K0000003/yhzx/queryHandlerCode", "经办人查询"),
+    GET_AGENTS("/front/019K0000003/common/getAgents", "渠道名称查询"),
+    QUERY_SERVICE_MANAGER("/front/019K0000003/common/queryServiceManager", "验车人查询"),
+    GET_MONOPOLY("/front/019K0000003/zsjzx/getMonopoly", "推荐送修码查询"),
+
+    CUSTOM_QUERY_P("/front/019K0000003/customquery/customQueryP", "客户信息检索"),
+    CUSTOM_PERSON_ADD("/front/019K0000003/customAdd/customPersonAdd", "添加客户信息"),
+
+    VEHICLE_QUERY("/front/019K0000003/vehicleinfo/vehicleQuery", "车型查询"),
+    CAL_ACTUAL_VALUE("/front/019K0000003/vehicleinfo/calActualValue", "汽车真实价值"),
+    CACULATE_PREMIUM("/front/019K0000003/bizSave/caculatePremium", "保费计算"),
+
+    SAVE_AS_PROPOSAL("/front/019K0000003/bizSave/saveAsProposal", "投保单/保单查询"),
+
+    EDIT_SUBMIT_UNDWRT("/front/019K0000003/undwrt/editSubmitUndwrt", "提交核保"),
+    ORDER_PAYMENT("/front/019K0000003/payFee/orderPayment", "获取支付二维码"),
+
+    PREPARE_QUERY_CLAIM("/front/019K0000003/claim/prepareQueryClaim", "订单查询"),
+
+
+    ;
+
+
+    private final String uri;
+
+    private final String description;
+
+
+    @Override
+    public String getRequestDescription() {
+        return this.description;
+    }
+
+    @Override
+    public String uri() {
+        return this.uri;
+    }
+
+}

+ 56 - 0
tenant/insurance/quotation-renbao/src/main/java/com/jzg/quotation/renbao/crawler/entity/RenBaoCrawlerConfigureParameter.java

@@ -0,0 +1,56 @@
+package com.jzg.quotation.renbao.crawler.entity;
+
+
+import com.jzg.quotation.commons.standard.ConfigureParameters;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serial;
+
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class RenBaoCrawlerConfigureParameter  implements ConfigureParameters {
+
+    @Serial
+    private static final long serialVersionUID = -4318239112468399992L;
+
+    /**
+     * 归属部门编号
+     */
+    private String attributionDepartmentCode;
+
+    /**
+     * 归属人编号
+     */
+    private String ownershipCode;
+
+    /**
+     * 经办人编号
+     */
+    private String managerCode;
+
+    /**
+     * 业务来源
+     */
+    private String businessSources;
+
+    /**
+     * 渠道名称
+     */
+    private String channelName;
+
+    /**
+     * 验车人编号
+     */
+    private String carInspectorCode;
+
+    /**
+     * 推荐送修码
+     */
+    private String storeCode;
+
+}
+

+ 19 - 0
tenant/insurance/quotation-renbao/src/main/java/com/jzg/quotation/renbao/crawler/entity/dto/CalculateModesDTO.java

@@ -0,0 +1,19 @@
+package com.jzg.quotation.renbao.crawler.entity.dto;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@AllArgsConstructor
+@NoArgsConstructor
+@Data
+public  class CalculateModesDTO {
+
+    @JsonProperty("value")
+    private String value;
+
+    @JsonProperty("label")
+    private String label;
+
+}

+ 19 - 0
tenant/insurance/quotation-renbao/src/main/java/com/jzg/quotation/renbao/crawler/entity/dto/LabelValueDTO.java

@@ -0,0 +1,19 @@
+package com.jzg.quotation.renbao.crawler.entity.dto;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@NoArgsConstructor
+@AllArgsConstructor
+@Data
+public class LabelValueDTO {
+
+    @JsonProperty("value")
+    private String value;
+
+    @JsonProperty("label")
+    private String label;
+
+}

+ 438 - 0
tenant/insurance/quotation-renbao/src/main/java/com/jzg/quotation/renbao/crawler/entity/dto/PrpCinsuredsDTO.java

@@ -0,0 +1,438 @@
+package com.jzg.quotation.renbao.crawler.entity.dto;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.util.List;
+
+@NoArgsConstructor
+@Data
+public class PrpCinsuredsDTO implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 2467808889109226866L;
+
+    @JsonProperty("serialNo")
+    private Integer serialNo;
+
+    @JsonProperty("readCardVisible")
+    private Boolean readCardVisible;
+
+    @JsonProperty("cardReadFlag")
+    private String cardReadFlag;
+
+    @JsonProperty("line")
+    private Integer line;
+
+    @JsonProperty("role")
+    private List<String> role;
+
+    @JsonProperty("roleString")
+    private String roleString;
+
+    @JsonProperty("insType")
+    private String insType;
+
+    @JsonProperty("insuredType")
+    private String insuredType;
+
+    @JsonProperty("insuredCode")
+    private String insuredCode;
+
+    @JsonProperty("insuredName")
+    private String insuredName;
+
+    @JsonProperty("insuredEName")
+    private String insuredEName;
+
+    @JsonProperty("insuredNameType")
+    private String insuredNameType;
+
+    @JsonProperty("identifyType")
+    private String identifyType;
+
+    @JsonProperty("participantIdentifyType")
+    private String participantIdentifyType;
+
+    @JsonProperty("identifyNumber")
+    private String identifyNumber;
+
+    @JsonProperty("identifyNumberE")
+    private String identifyNumberE;
+
+    @JsonProperty("sex")
+    private String sex;
+
+    @JsonProperty("age")
+    private Integer age;
+
+    @JsonProperty("insuredAddress")
+    private String insuredAddress;
+
+    @JsonProperty("insuredAddressE")
+    private String insuredAddressE;
+
+    @JsonProperty("province")
+    private String province;
+
+    @JsonProperty("city")
+    private String city;
+
+    @JsonProperty("area")
+    private String area;
+
+    @JsonProperty("addressCName")
+    private String addressCName;
+
+    @JsonProperty("addressCNameE")
+    private String addressCNameE;
+
+    @JsonProperty("addressVersionNo")
+    private Object addressVersionNo;
+
+    @JsonProperty("addressType")
+    private String addressType;
+
+    @JsonProperty("postcCode")
+    private String postcCode;
+
+    @JsonProperty("countryCode")
+    private String countryCode;
+
+    @JsonProperty("renameFlagResult")
+    private String renameFlagResult;
+
+    @JsonProperty("radarDataResult")
+    private String radarDataResult;
+
+    @JsonProperty("resident")
+    private String resident;
+
+    @JsonProperty("isDefault")
+    private Boolean isDefault;
+
+    @JsonProperty("phoneType")
+    private String phoneType;
+
+    @JsonProperty("phoneNumber")
+    private String phoneNumber;
+
+    @JsonProperty("phoneNumberShow")
+    private String phoneNumberShow;
+
+    @JsonProperty("phoneExtensionIntl")
+    private String phoneExtensionIntl;
+
+    @JsonProperty("phoneExtension")
+    private String phoneExtension;
+
+    @JsonProperty("extensionNumber")
+    private String extensionNumber;
+
+    @JsonProperty("phoneNumVersionNo")
+    private Object phoneNumVersionNo;
+
+    @JsonProperty("phoneNumProperties")
+    private String phoneNumProperties;
+
+    @JsonProperty("phoneProperties")
+    private String phoneProperties;
+
+    @JsonProperty("mobile")
+    private String mobile;
+
+    @JsonProperty("mobileShow")
+    private String mobileShow;
+
+    @JsonProperty("mobileVersionNo")
+    private Object mobileVersionNo;
+
+    @JsonProperty("mobileProperties")
+    private String mobileProperties;
+
+    @JsonProperty("email")
+    private String email;
+
+    @JsonProperty("emailE")
+    private String emailE;
+
+    @JsonProperty("versionNo")
+    private String versionNo;
+
+    @JsonProperty("validStatus")
+    private String validStatus;
+
+    @JsonProperty("auditStatus")
+    private String auditStatus;
+
+    @JsonProperty("count")
+    private Integer count;
+
+    @JsonProperty("groupCode")
+    private String groupCode;
+
+    @JsonProperty("startDateValid")
+    private String startDateValid;
+
+    @JsonProperty("dateValid")
+    private String dateValid;
+
+    @JsonProperty("unifiedSocialCreditCode")
+    private String unifiedSocialCreditCode;
+
+    @JsonProperty("responseCode")
+    private String responseCode;
+
+    @JsonProperty("errorMessage")
+    private String errorMessage;
+
+    @JsonProperty("cardNumber")
+    private String cardNumber;
+
+    @JsonProperty("url")
+    private String url;
+
+    @JsonProperty("idenDateValid")
+    private String idenDateValid;
+
+    @JsonProperty("businessLicense")
+    private String businessLicense;
+
+    @JsonProperty("industryCode")
+    private String industryCode;
+
+    @JsonProperty("revenueCode")
+    private String revenueCode;
+
+    @JsonProperty("creditDateValidStart")
+    private String creditDateValidStart;
+
+    @JsonProperty("creditDateValid")
+    private String creditDateValid;
+
+    @JsonProperty("organizeCode")
+    private String organizeCode;
+
+    @JsonProperty("orgDateValidStart")
+    private String orgDateValidStart;
+
+    @JsonProperty("orgDateValid")
+    private String orgDateValid;
+
+    @JsonProperty("unitType")
+    private String unitType;
+
+    @JsonProperty("unitType1")
+    private String unitType1;
+
+    @JsonProperty("businessSort")
+    private String businessSort;
+
+    @JsonProperty("industrycodeCreate")
+    private String industrycodeCreate;
+
+    @JsonProperty("revenueCodeCreate")
+    private String revenueCodeCreate;
+
+    @JsonProperty("prpDGCstTaxPayer")
+    private PrpDGCstTaxPayerDTO prpDGCstTaxPayer;
+
+    @JsonProperty("registFund")
+    private String registFund;
+
+    @JsonProperty("disable")
+    private Boolean disable;
+
+    @JsonProperty("personNameShow")
+    private Boolean personNameShow;
+
+    @JsonProperty("teamNameShow")
+    private Boolean teamNameShow;
+
+    @JsonProperty("mobileShowSelect")
+    private Boolean mobileShowSelect;
+
+    @JsonProperty("phoneNumberShowSelect")
+    private Boolean phoneNumberShowSelect;
+
+    @JsonProperty("sexShow")
+    private Boolean sexShow;
+
+    @JsonProperty("codeShow")
+    private Boolean codeShow;
+
+    @JsonProperty("showSelect")
+    private Boolean showSelect;
+
+    @JsonProperty("insuredNameShow")
+    private String insuredNameShow;
+
+    @JsonProperty("financeFlagCustom")
+    private Object financeFlagCustom;
+
+    @JsonProperty("financeFlag")
+    private String financeFlag;
+
+    @JsonProperty("modifyFlag")
+    private String modifyFlag;
+
+    @JsonProperty("groupshareShow")
+    private Boolean groupshareShow;
+
+    @JsonProperty("groupshareDisabled")
+    private Boolean groupshareDisabled;
+
+    @JsonProperty("groupshareCif")
+    private String groupshareCif;
+
+    @JsonProperty("groupCustFlag")
+    private String groupCustFlag;
+
+    @JsonProperty("secondaryIdentifyType")
+    private String secondaryIdentifyType;
+
+    @JsonProperty("secondaryIdentifyNumber")
+    private String secondaryIdentifyNumber;
+
+    @JsonProperty("secondaryIdentifyNumberE")
+    private String secondaryIdentifyNumberE;
+
+    @JsonProperty("processFlag")
+    private String processFlag;
+
+    @JsonProperty("signCode")
+    private String signCode;
+
+    @JsonProperty("processDataPrimaryKey")
+    private String processDataPrimaryKey;
+
+    @JsonProperty("leaderBlackType")
+    private String leaderBlackType;
+
+    @JsonProperty("agentBlackType")
+    private String agentBlackType;
+
+    @JsonProperty("holdingpersonBlackType")
+    private String holdingpersonBlackType;
+
+    @JsonProperty("selfYearIncome")
+    private String selfYearIncome;
+
+    @JsonProperty("professional")
+    private String professional;
+
+    @JsonProperty("custFields")
+    private List<CustFieldsDTO> custFields;
+
+    @JsonProperty("beneficiaryBlackType")
+    private String beneficiaryBlackType;
+
+    @JsonProperty("insuredCodeTemp")
+    private String insuredCodeTemp;
+
+    @JsonProperty("checkStatus")
+    private String checkStatus;
+
+    @JsonProperty("checkTip")
+    private String checkTip;
+
+    @JsonProperty("customerCodeAll")
+    private String customerCodeAll;
+
+    @JsonProperty("queryDuplicatCustomCode")
+    private String queryDuplicatCustomCode;
+
+    @JsonProperty("insTypeDis")
+    private Boolean insTypeDis;
+
+    @JsonProperty("birthDate")
+    private String birthDate;
+
+    @JsonProperty("auditFeedback")
+    private String auditFeedback;
+
+    @JsonProperty("usedName")
+    private String usedName;
+
+    @JsonProperty("originalName")
+    private String originalName;
+
+    @JsonProperty("originalNameShow")
+    private Boolean originalNameShow;
+
+    @JsonProperty("insuredNameBackup")
+    private String insuredNameBackup;
+
+    @JsonProperty("insGradeLsit")
+    private List<?> insGradeLsit;
+
+    @JsonProperty("gradeLevelShow")
+    private Boolean gradeLevelShow;
+
+    @JsonProperty("contactPersonName")
+    private String contactPersonName;
+
+    @JsonProperty("insuredNature")
+    private String insuredNature;
+
+    @JsonProperty("sexString")
+    private String sexString;
+
+    @JsonProperty("insuredAddressSeqNo")
+    private Integer insuredAddressSeqNo;
+
+    @JsonProperty("postCode")
+    private String postCode;
+
+    @JsonProperty("realFlag")
+    private String realFlag;
+
+    @JsonProperty("identifyCheckResult")
+    private String identifyCheckResult;
+
+    @JsonProperty("educationCode")
+    private String educationCode;
+
+    @JsonProperty("insuredFlag")
+    private String insuredFlag;
+
+    @NoArgsConstructor
+    @Data
+    public static class PrpDGCstTaxPayerDTO {
+        @JsonProperty("taxPayerType")
+        private String taxPayerType;
+
+        @JsonProperty("revenueCode")
+        private String revenueCode;
+
+        @JsonProperty("phoneNumber")
+        private String phoneNumber;
+
+        @JsonProperty("address")
+        private String address;
+
+        @JsonProperty("bankView")
+        private String bankView;
+
+        @JsonProperty("account")
+        private String account;
+    }
+
+    @NoArgsConstructor
+    @Data
+    public static class CustFieldsDTO {
+
+        @JsonProperty("key")
+        private String key;
+
+        @JsonProperty("value")
+        private String value;
+
+        @JsonProperty("remark")
+        private String remark;
+
+    }
+}

+ 1038 - 0
tenant/insurance/quotation-renbao/src/main/java/com/jzg/quotation/renbao/crawler/entity/dto/PrpCitemCarDTO.java

@@ -0,0 +1,1038 @@
+package com.jzg.quotation.renbao.crawler.entity.dto;
+
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.jzg.commons.entity.quote.vo.CarInfoVo;
+import com.jzg.quotation.renbao.crawler.constant.QuotationParameters;
+import com.jzg.quotation.renbao.crawler.entity.response.RenBaoCrawlerVehicleQueryData;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import org.springframework.util.StringUtils;
+
+import java.util.List;
+
+@NoArgsConstructor
+@Data
+public  class PrpCitemCarDTO {
+
+    @JsonProperty("frameNoFlag")
+    private Boolean frameNoFlag;
+
+    @JsonProperty("carComplaint")
+    private CarComplaintDTO carComplaint;
+
+    @JsonProperty("frameNoFlagNo")
+    private String frameNoFlagNo;
+
+    @JsonProperty("activeNames")
+    private List<String> activeNames;
+
+    @JsonProperty("vehicleId")
+    private String vehicleId;
+
+    @JsonProperty("vehicleIdQ08")
+    private String vehicleIdQ08;
+
+    @JsonProperty("vehicleModelCode")
+    private String vehicleModelCode;
+
+    @JsonProperty("useNatureCode")
+    private String useNatureCode;
+
+    @JsonProperty("standardUseNature")
+    private String standardUseNature;
+
+    @JsonProperty("standardUseNatureDes")
+    private String standardUseNatureDes;
+
+    @JsonProperty("licenseTypeDes")
+    private String licenseTypeDes;
+
+    @JsonProperty("licenseType")
+    private String licenseType;
+
+    @JsonProperty("carKindCode")
+    private String carKindCode;
+
+    @JsonProperty("fuelType")
+    private String fuelType;
+
+    @JsonProperty("clauseType")
+    private String clauseType;
+
+    @JsonProperty("clauseTypeOld")
+    private String clauseTypeOld;
+
+    @JsonProperty("carInsuredRelation")
+    private String carInsuredRelation;
+
+    @JsonProperty("licenseNo")
+    private String licenseNo;
+
+    @JsonProperty("licenseNoOld")
+    private String licenseNoOld;
+
+    @JsonProperty("frameNo")
+    private String frameNo;
+
+    @JsonProperty("vinNo")
+    private String vinNo;
+
+    @JsonProperty("engineNo")
+    private String engineNo;
+
+    @JsonProperty("engineNoOld")
+    private String engineNoOld;
+
+    @JsonProperty("enrollDate")
+    private String enrollDate;
+
+    @JsonProperty("purchasePrice")
+    private String purchasePrice;
+
+    @JsonProperty("purchasePriceDAYCheck")
+    private String purchasePriceDAYCheck;
+
+    @JsonProperty("purchasePriceDAYLast")
+    private String purchasePriceDAYLast;
+
+    @JsonProperty("actualValue")
+    private String actualValue;
+
+    @JsonProperty("cylinderCount")
+    private String cylinderCount;
+
+    @JsonProperty("newCarFlag")
+    private String newCarFlag;
+
+    @JsonProperty("licenseFlag")
+    private String licenseFlag;
+
+    /**
+     * 不是本地车牌
+     */
+    @JsonProperty("nonLocalFlag")
+    private String nonLocalFlag;
+
+    @JsonProperty("licenseColorCodeDes")
+    private String licenseColorCodeDes;
+
+    @JsonProperty("licenseColorCode")
+    private String licenseColorCode;
+
+    @JsonProperty("useYears")
+    private String useYears;
+
+    @JsonProperty("runMiles")
+    private String runMiles;
+
+    @JsonProperty("seatCount")
+    private Integer seatCount;
+
+    @JsonProperty("seatCountLastYear")
+    private String seatCountLastYear;
+
+    @JsonProperty("exhaustScale")
+    private String exhaustScale;
+
+    @JsonProperty("displacement")
+    private Double displacement;
+
+    @JsonProperty("displacementLastYear")
+    private String displacementLastYear;
+
+    @JsonProperty("power")
+    private String power;
+
+    @JsonProperty("exhaustUnit")
+    private String exhaustUnit;
+
+    @JsonProperty("tonCount")
+    private String tonCount;
+
+    @JsonProperty("tonCountLastYear")
+    private String tonCountLastYear;
+
+    @JsonProperty("runAreaCode")
+    private String runAreaCode;
+
+    @JsonProperty("runAreaName")
+    private String runAreaName;
+
+    @JsonProperty("countryNature")
+    private String countryNature;
+
+    @JsonProperty("chgOwnerFlag")
+    private String chgOwnerFlag;
+
+    @JsonProperty("loanVehicleFlag")
+    private String loanVehicleFlag;
+
+    @JsonProperty("chgOwnerDate")
+    private String chgOwnerDate;
+
+    @JsonProperty("lastYearTransferFlag")
+    private String lastYearTransferFlag;
+
+    @JsonProperty("lastYearTransferDate")
+    private String lastYearTransferDate;
+
+    @JsonProperty("modelCodeAlias")
+    private String modelCodeAlias;
+
+    @JsonProperty("modelCodeAliasFlag")
+    private Boolean modelCodeAliasFlag;
+
+    @JsonProperty("priceT")
+    private String priceT;
+
+    @JsonProperty("carLotEquQuality")
+    private String carLotEquQuality;
+
+    @JsonProperty("carLotEquQualityLastYear")
+    private String carLotEquQualityLastYear;
+
+    @JsonProperty("isEnergyCar")
+    private String isEnergyCar;
+
+    @JsonProperty("isDangerous")
+    private String isDangerous;
+
+    @JsonProperty("issueDate")
+    private String issueDate;
+
+    @JsonProperty("issueDateFlag")
+    private Boolean issueDateFlag;
+
+    @JsonProperty("energyTypePlat")
+    private String energyTypePlat;
+
+    @JsonProperty("energyFlag")
+    private String energyFlag;
+
+    @JsonProperty("energyTypePlatCode")
+    private String energyTypePlatCode;
+
+    @JsonProperty("energyTypePlatQ39")
+    private String energyTypePlatQ39;
+
+    @JsonProperty("pmFuelType")
+    private String pmFuelType;
+
+    @JsonProperty("brandName")
+    private String brandName;
+
+    @JsonProperty("modelCode")
+    private String modelCode;
+
+    @JsonProperty("modelCode2")
+    private String modelCode2;
+
+    @JsonProperty("queryArea")
+    private String queryArea;
+
+    @JsonProperty("transferVehicleFlag")
+    private String transferVehicleFlag;
+
+    @JsonProperty("currency")
+    private String currency;
+
+    @JsonProperty("query_car_table")
+    private List<QueryCarTableDTO> queryCarTable;
+
+    @JsonProperty("query_car_table2")
+    private List<?> queryCarTable2;
+
+    @JsonProperty("query_car_tableQ28")
+    private List<?> queryCarTableq28;
+
+    @JsonProperty("frameNobig")
+    private String frameNobig;
+
+    @JsonProperty("enginePower")
+    private String enginePower;
+
+    @JsonProperty("vehicleYear")
+    private String vehicleYear;
+
+    @JsonProperty("vehicleClass")
+    private String vehicleClass;
+
+    @JsonProperty("searchCode")
+    private String searchCode;
+
+    @JsonProperty("brandId")
+    private String brandId;
+
+    @JsonProperty("vehicleMakerId")
+    private String vehicleMakerId;
+
+    @JsonProperty("groupName")
+    private String groupName;
+
+    @JsonProperty("hiddenCarFlag")
+    private Boolean hiddenCarFlag;
+
+    @JsonProperty("isCriterion")
+    private String isCriterion;
+
+    @JsonProperty("carCounts")
+    private String carCounts;
+
+    @JsonProperty("lossRatio")
+    private String lossRatio;
+
+    @JsonProperty("driverType")
+    private String driverType;
+
+    @JsonProperty("discountType")
+    private String discountType;
+
+    @JsonProperty("carId")
+    private String carId;
+
+    @JsonProperty("versionNo")
+    private String versionNo;
+
+    @JsonProperty("energyType")
+    private String energyType;
+
+    @JsonProperty("isRemote")
+    private String isRemote;
+
+    @JsonProperty("fullendor")
+    private String fullendor;
+
+    @JsonProperty("certificateDate")
+    private String certificateDate;
+
+    @JsonProperty("vehicleType")
+    private String vehicleType;
+
+    @JsonProperty("isSilageHarvester")
+    private String isSilageHarvester;
+
+    @JsonProperty("showQueryCar")
+    private Boolean showQueryCar;
+
+    @JsonProperty("useNatureDes")
+    private String useNatureDes;
+
+    @JsonProperty("showPlatModel")
+    private Boolean showPlatModel;
+
+    @JsonProperty("plat_Model_table")
+    private List<PlatModelTableDTO> platModelTable;
+
+    @JsonProperty("newLicenseFlag")
+    private Boolean newLicenseFlag;
+
+    @JsonProperty("nodamageyears")
+    private String nodamageyears;
+
+    @JsonProperty("queryAfterFlagJS")
+    private Boolean queryAfterFlagJS;
+
+    @JsonProperty("TransferFlag")
+    private Boolean transferFlag;
+
+    @JsonProperty("fuelTypes")
+    private List<?> fuelTypes;
+
+    @JsonProperty("carOwnerName")
+    private String carOwnerName;
+
+    @JsonProperty("policyHolder")
+    private String policyHolder;
+
+    @JsonProperty("insuredName")
+    private String insuredName;
+
+    @JsonProperty("quoteTime")
+    private String quoteTime;
+
+    @JsonProperty("quoteflag")
+    private Boolean quoteflag;
+
+    @JsonProperty("carOwnerIdentifyType")
+    private String carOwnerIdentifyType;
+
+    @JsonProperty("carOwnerIdentifyNumber")
+    private String carOwnerIdentifyNumber;
+
+    @JsonProperty("carOwnerUnifiedSocialCreditCode")
+    private String carOwnerUnifiedSocialCreditCode;
+
+    @JsonProperty("carOwnerInsuredType")
+    private String carOwnerInsuredType;
+
+    @JsonProperty("DZBexhaustUnit")
+    private String dZBexhaustUnit;
+
+    @JsonProperty("carkindcodes")
+    private List<String> carkindcodes;
+
+    @JsonProperty("licenseTypes")
+    private List<String> licenseTypes;
+
+    @JsonProperty("licenses")
+    private List<?> licenses;
+
+    @JsonProperty("carKinds")
+    private List<?> carKinds;
+
+    @JsonProperty("controllerletter")
+    private Boolean controllerletter;
+
+    @JsonProperty("isDropinVisitInsure")
+    private String isDropinVisitInsure;
+
+    @JsonProperty("assetAgentName")
+    private String assetAgentName;
+
+    @JsonProperty("assetAgentCode")
+    private String assetAgentCode;
+
+    @JsonProperty("assetAgentPhone")
+    private String assetAgentPhone;
+
+    @JsonProperty("startSiteName")
+    private String startSiteName;
+
+    @JsonProperty("endSiteName")
+    private String endSiteName;
+
+    @JsonProperty("startAreaName")
+    private String startAreaName;
+
+    @JsonProperty("endAreaName")
+    private String endAreaName;
+
+    @JsonProperty("invoiceNo")
+    private String invoiceNo;
+
+    @JsonProperty("usedCarInvoiceAmount")
+    private String usedCarInvoiceAmount;
+
+    @JsonProperty("hkLicenseNo")
+    private String hkLicenseNo;
+
+    @JsonProperty("hkLicenseNoDis")
+    private Boolean hkLicenseNoDis;
+
+    @JsonProperty("ciRateRloatFlag")
+    private String ciRateRloatFlag;
+
+    @JsonProperty("showCiRateRloatFlag")
+    private Boolean showCiRateRloatFlag;
+
+    @JsonProperty("hkFlag")
+    private String hkFlag;
+
+    @JsonProperty("payMethod")
+    private String payMethod;
+
+    @JsonProperty("vehicleTypeDescription")
+    private String vehicleTypeDescription;
+
+    @JsonProperty("vehicleTypeDescriptionDes")
+    private String vehicleTypeDescriptionDes;
+
+    @JsonProperty("certifiCateDate")
+    private String certifiCateDate;
+
+    @JsonProperty("drivLicenseCode")
+    private String drivLicenseCode;
+
+    @JsonProperty("searchSequenceNo")
+    private String searchSequenceNo;
+
+    @JsonProperty("showQueryCarQ28")
+    private Boolean showQueryCarQ28;
+
+    @JsonProperty("vehicleBrand")
+    private String vehicleBrand;
+
+    @JsonProperty("rowChoice")
+    private String rowChoice;
+
+    @JsonProperty("showVehicleTypeDes")
+    private Boolean showVehicleTypeDes;
+
+    @JsonProperty("element")
+    private String element;
+
+    @JsonProperty("codeLicenseTable")
+    private List<?> codeLicenseTable;
+
+    @JsonProperty("drivLicenseCodes")
+    private List<LabelValueDTO> drivLicenseCodes;
+
+    @JsonProperty("ModelCodePlat")
+    private String modelCodePlat;
+
+    @JsonProperty("checkNo")
+    private String checkNo;
+
+    @JsonProperty("checkCode")
+    private String checkCode;
+
+    @JsonProperty("checkAnswer")
+    private String checkAnswer;
+
+    @JsonProperty("showCheckVehicleFlag")
+    private Boolean showCheckVehicleFlag;
+
+    @JsonProperty("checkVehicleInfoList")
+    private List<?> checkVehicleInfoList;
+
+    @JsonProperty("carVoucherKind")
+    private List<LabelValueDTO> carVoucherKind;
+
+    @JsonProperty("carProofType")
+    private String carProofType;
+
+    @JsonProperty("carProofNo")
+    private String carProofNo;
+
+    @JsonProperty("carProofDate")
+    private String carProofDate;
+
+    @JsonProperty("checkDialogFlag")
+    private Boolean checkDialogFlag;
+
+    @JsonProperty("agreeCarFlag")
+    private Boolean agreeCarFlag;
+
+    @JsonProperty("updateCarFlag")
+    private Boolean updateCarFlag;
+
+    @JsonProperty("ownerSH")
+    private String ownerSH;
+
+    @JsonProperty("responseCarData")
+    private ResponseCarDataDTO responseCarData;
+
+    @JsonProperty("licenseTypeDisabled")
+    private Boolean licenseTypeDisabled;
+
+    @JsonProperty("retouData")
+    private RetouDataDTO retouData;
+
+    @JsonProperty("retouDataCI")
+    private RetouDataCIDTO retouDataCI;
+
+    @JsonProperty("retouInfoFlag")
+    private Boolean retouInfoFlag;
+
+    @JsonProperty("queryQ22Flag")
+    private Boolean queryQ22Flag;
+
+    @JsonProperty("queryQ28Flag")
+    private Boolean queryQ28Flag;
+
+    @JsonProperty("carKindCodeflag")
+    private Boolean carKindCodeflag;
+
+    @JsonProperty("insIndex")
+    private Integer insIndex;
+
+    @JsonProperty("groupFlag")
+    private Boolean groupFlag;
+
+    @JsonProperty("vehicleIdJsy")
+    private String vehicleIdJsy;
+
+    @JsonProperty("vehicleIdNewJsy")
+    private String vehicleIdNewJsy;
+
+    @JsonProperty("indexn")
+    private String indexn;
+
+    @JsonProperty("lastDamagedBI")
+    private String lastDamagedBI;
+
+    @JsonProperty("pricetr")
+    private String pricetr;
+
+    @JsonProperty("highestHourFlag")
+    private Boolean highestHourFlag;
+
+    @JsonProperty("carTaxCalModeFlag")
+    private Boolean carTaxCalModeFlag;
+
+    @JsonProperty("highestHour")
+    private String highestHour;
+
+    @JsonProperty("precision_table")
+    private List<?> precisionTable;
+
+    @JsonProperty("uniqueCarID")
+    private String uniqueCarID;
+
+    @JsonProperty("vehicleFgwCode")
+    private String vehicleFgwCode;
+
+    @JsonProperty("presaleCarFlag")
+    private String presaleCarFlag;
+
+    @JsonProperty("isCallQ39")
+    private Boolean isCallQ39;
+
+    @JsonProperty("modelCar")
+    private String modelCar;
+
+    @JsonProperty("insureYears")
+    private String insureYears;
+
+    @JsonProperty("claimTimes")
+    private String claimTimes;
+
+    @JsonProperty("noDamYearsCI")
+    private String noDamYearsCI;
+
+    @JsonProperty("showNoDamYearsCI")
+    private Boolean showNoDamYearsCI;
+
+    @JsonProperty("showInsureYearsClaimTimes")
+    private Boolean showInsureYearsClaimTimes;
+
+    @JsonProperty("maxLength")
+    private Integer maxLength;
+
+    @JsonProperty("showVehicleSearchTable")
+    private Boolean showVehicleSearchTable;
+
+    @JsonProperty("jyAnalysisTable")
+    private List<?> jyAnalysisTable;
+
+    @JsonProperty("Q22Result")
+    private List<?> q22Result;
+
+    @JsonProperty("queryTrafficManagementFlag")
+    private Boolean queryTrafficManagementFlag;
+
+    @JsonProperty("runAreaCodes")
+    private List<LabelValueDTO> runAreaCodes;
+
+    @JsonProperty("brandNameInfoAck")
+    private Boolean brandNameInfoAck;
+
+    @JsonProperty("piccCarInfoFlag")
+    private Boolean piccCarInfoFlag;
+
+    @JsonProperty("countryNature1")
+    private String countryNature1;
+
+    @JsonProperty("transferDate")
+    private String transferDate;
+
+    @JsonProperty("modelDemandNo")
+    private String modelDemandNo;
+
+    @JsonProperty("vehicleStyleUniqueId")
+    private String vehicleStyleUniqueId;
+
+    @JsonProperty("monopolyCode")
+    private String monopolyCode;
+
+    public PrpCitemCarDTO(CarInfoVo carInfoVo, RenBaoCrawlerVehicleQueryData.CarInfosDTO.ResultDTO carInfos, String actualValue) {
+        this.frameNoFlag = true;
+        this.carComplaint = new CarComplaintDTO();
+        this.frameNoFlagNo = "";
+        this.activeNames = List.of("0");
+        this.vehicleId = carInfos.getVehicleId();
+        this.vehicleIdQ08 = carInfos.getVehicleId();
+        this.vehicleModelCode = carInfos.getVehicleModelCode();
+        this.useNatureCode = carInfoVo.getVehicleUseCode();
+        this.standardUseNature = "";
+        this.standardUseNatureDes = "";
+        this.licenseTypeDes = "";
+        this.licenseType = licenseType;
+        this.carKindCode = carInfos.getVehicleClassPicc();
+        this.fuelType = carInfoVo.getEnergyTypeCode();
+        this.clauseType = clauseType;
+        this.clauseTypeOld = clauseTypeOld;
+        this.carInsuredRelation = "1";
+        this.licenseNo = carInfoVo.getLicenseNo();
+        this.licenseNoOld = carInfoVo.getLicenseNo();
+        this.frameNo = carInfoVo.getVinNo();
+        this.vinNo = carInfoVo.getVinNo();
+        this.engineNo = carInfoVo.getEngineNo();
+        this.engineNoOld = "";
+        this.enrollDate = carInfoVo.getRegisterDate() + "T00:00:00.000Z";
+        this.purchasePrice = carInfos.getPriceT();
+        this.purchasePriceDAYCheck = "";
+        this.purchasePriceDAYLast = "";
+        this.actualValue = actualValue;
+        this.cylinderCount = "";
+        if(StringUtils.hasLength(carInfoVo.getLicenseNo())) {
+            this.newCarFlag = "0";
+            this.licenseFlag = "1";
+        }else{
+            this.newCarFlag = "1";
+            this.licenseFlag = "0";
+        }
+        this.nonLocalFlag = "0";
+        this.licenseColorCodeDes = "";
+        this.licenseColorCode = carInfoVo.getLicenseColorCode();
+        this.useYears = useYears;
+        this.runMiles = "";
+        this.seatCount = Integer.valueOf(carInfos.getSearchCode());
+        this.seatCountLastYear = "";
+        this.exhaustScale = "";
+        this.displacement = displacement;
+        this.displacementLastYear = "";
+        this.power = carInfos.getEnginePower();
+        this.exhaustUnit = "排量/功率(升)";
+        this.tonCount = "";
+        this.tonCountLastYear = "";
+        this.runAreaCode = "11";
+        this.runAreaName = "中华人民共和国境内(不含港澳台)";
+        this.countryNature = "03";
+        this.loanVehicleFlag = "0";
+        this.lastYearTransferFlag = "";
+        this.lastYearTransferDate = "";
+        this.modelCodeAlias = "";
+        this.modelCodeAliasFlag = false;
+        this.priceT = "";
+        this.carLotEquQuality = carLotEquQuality;
+        this.carLotEquQualityLastYear = carLotEquQualityLastYear;
+        this.isEnergyCar = carInfos.getIsEnergyCar();
+        this.isDangerous = "0";
+        this.issueDate = carInfoVo.getIssueDate() + "T00:00:00.000Z";
+        this.issueDateFlag = false;
+        this.energyTypePlat = energyTypePlat;
+        this.energyFlag = carInfos.getIsEnergyCar();
+        this.energyTypePlatCode = "";
+        this.energyTypePlatQ39 = energyTypePlatQ39;
+        this.pmFuelType = carInfos.getFuelTypeName();
+        this.brandName = carInfos.getVehicleName();
+        this.modelCode = carInfos.getVehicleId();
+        this.modelCode2 = "";
+        this.queryArea = queryArea;
+        this.currency = "CNY";
+        this.queryCarTable = List.of();
+        this.queryCarTable2 = List.of();
+        this.queryCarTableq28 = List.of();
+        this.frameNobig = carInfoVo.getVinNo();
+        this.enginePower = carInfos.getEnginePower();
+        this.vehicleYear = carInfos.getVehicleYear();
+        this.vehicleClass = carInfos.getVehicleClass();
+        this.searchCode = carInfos.getSearchCode();
+        this.brandId = carInfos.getBrandId();
+        this.vehicleMakerId = carInfos.getVehicleMakerId();
+        this.groupName = carInfos.getGroupName();
+        this.hiddenCarFlag = true;
+        this.isCriterion = "";
+        this.carCounts = "0";
+        this.lossRatio =  "C1301";
+        this.driverType = "1";
+        this.discountType = "1";
+        this.carId = "";
+        this.versionNo = "";
+        this.energyType = "";
+        this.isRemote = "";
+        this.fullendor = "";
+        this.certificateDate = "";
+        this.vehicleType = "";
+        this.isSilageHarvester = "";
+        this.showQueryCar = false;
+        this.useNatureDes = "";
+        this.showPlatModel = false;
+        this.platModelTable = List.of();
+        this.newLicenseFlag = true;
+        this.nodamageyears = "";
+        this.queryAfterFlagJS = false;
+        this.transferFlag = true;
+        this.fuelTypes = List.of();
+        this.carOwnerName = "";
+        this.policyHolder = "";
+        this.insuredName = "";
+        this.quoteTime = "";
+        this.quoteflag = false;
+        this.carOwnerIdentifyType = "";
+        this.carOwnerIdentifyNumber = "";
+        this.carOwnerUnifiedSocialCreditCode = "";
+        this.carOwnerInsuredType = "";
+        this.dZBexhaustUnit =  "排量/功率(升)";
+        this.carkindcodes = List.of("D01");
+        this.licenseTypes = List.of("07");
+        this.licenses = List.of();
+        this.carKinds = List.of();
+        this.controllerletter = true;
+        this.isDropinVisitInsure = "0";
+        this.assetAgentName = "";
+        this.assetAgentCode = "";
+        this.assetAgentPhone = "";
+        this.startSiteName = "";
+        this.endSiteName = "";
+        this.startAreaName = "";
+        this.endAreaName = "";
+        this.invoiceNo = "";
+        this.usedCarInvoiceAmount = "";
+        this.hkLicenseNo = "";
+        this.hkLicenseNoDis = true;
+        this.ciRateRloatFlag = "01";
+        this.showCiRateRloatFlag = false;
+        this.hkFlag = "";
+        this.payMethod = "01";
+        this.vehicleTypeDescription = "";
+        this.vehicleTypeDescriptionDes = "";
+        this.certifiCateDate = "";
+        this.drivLicenseCode = "";
+        this.searchSequenceNo = "";
+        this.showQueryCarQ28 = false;
+        this.vehicleBrand = "";
+        this.rowChoice = "";
+        this.showVehicleTypeDes = false;
+        this.element = "";
+        this.codeLicenseTable = List.of();
+        this.drivLicenseCodes = QuotationParameters.DRIV_LICENSE_CODE_LIST;
+        this.modelCodePlat = carInfos.getVehicleModelCode();
+        this.checkNo = "";
+        this.checkCode = "";
+        this.checkAnswer = "";
+        this.showCheckVehicleFlag = false;
+        this.checkVehicleInfoList = List.of();
+        this.carVoucherKind = QuotationParameters.CAR_VOUCHER_KIND_LIST;
+        this.carProofType = "01";
+        this.carProofNo = "";
+        this.carProofDate = "";
+        this.checkDialogFlag = false;
+        this.agreeCarFlag = false;
+        this.updateCarFlag = false;
+        this.ownerSH = "";
+        this.responseCarData = new ResponseCarDataDTO();
+        this.licenseTypeDisabled = false;
+        this.retouData = new RetouDataDTO();
+        this.retouDataCI = new RetouDataCIDTO();
+        this.retouInfoFlag = false;
+        this.queryQ22Flag = false;
+        this.queryQ28Flag = false;
+        this.carKindCodeflag = true;
+        this.insIndex = 0;
+        this.groupFlag = false;
+        this.vehicleIdJsy = "";
+        this.vehicleIdNewJsy = "";
+        this.indexn = "";
+        this.lastDamagedBI = "0";
+        this.pricetr = "";
+        this.highestHourFlag = true;
+        this.carTaxCalModeFlag = false;
+        this.highestHour = carInfos.getHighestHour();
+        this.precisionTable = List.of();
+        this.uniqueCarID = "";
+        this.vehicleFgwCode = carInfos.getVehicleFgwCode();
+        this.presaleCarFlag = carInfos.getPresaleCarFlag();
+        this.isCallQ39 = false;
+        this.modelCar = "";
+        this.insureYears = "";
+        this.claimTimes = "";
+        this.noDamYearsCI = "";
+        this.showNoDamYearsCI = false;
+        this.showInsureYearsClaimTimes = false;
+        this.maxLength = carInfoVo.getVinNo().length();
+        this.showVehicleSearchTable = false;
+        this.jyAnalysisTable = List.of();
+        this.q22Result = List.of();
+        this.queryTrafficManagementFlag = false;
+        this.runAreaCodes = QuotationParameters.RUN_AREA_CODES_LIST;
+        this.brandNameInfoAck = false;
+        this.piccCarInfoFlag = false;
+        this.countryNature1 = countryNature1;
+
+        // 过户日期
+        if(carInfoVo.isTransfer()){
+            this.chgOwnerFlag = "1";
+            this.transferVehicleFlag = "1";
+            this.transferDate = carInfoVo.getTransferDate();
+            this.chgOwnerDate = carInfoVo.getTransferDate();
+        }else {
+            this.chgOwnerFlag = "0";
+            this.transferVehicleFlag = "0";
+            this.transferDate = "";
+            this.chgOwnerDate = "";
+        }
+
+        this.modelDemandNo = "";
+        this.vehicleStyleUniqueId = "";
+        this.monopolyCode = monopolyCode;
+    }
+
+    @NoArgsConstructor
+    @Data
+    public static class CarComplaintDTO {
+    }
+
+    @NoArgsConstructor
+    @Data
+    public static class ResponseCarDataDTO {
+    }
+
+    @NoArgsConstructor
+    @Data
+    public static class RetouDataDTO {
+    }
+
+    @NoArgsConstructor
+    @Data
+    public static class RetouDataCIDTO {
+    }
+
+    @NoArgsConstructor
+    @Data
+    public static class QueryCarTableDTO {
+        @JsonProperty("countryNature")
+        private String countryNature;
+
+        @JsonProperty("vehicleId")
+        private String vehicleId;
+
+        @JsonProperty("vehicleIdQ08")
+        private String vehicleIdQ08;
+
+        @JsonProperty("vehicleModelCode")
+        private String vehicleModelCode;
+
+        @JsonProperty("brandName")
+        private String brandName;
+
+        @JsonProperty("B_M_name")
+        private String bMName;
+
+        @JsonProperty("carKindCode")
+        private String carKindCode;
+
+        @JsonProperty("vehicleYear")
+        private String vehicleYear;
+
+        @JsonProperty("vehicleYear_temp")
+        private String vehicleyearTemp;
+
+        @JsonProperty("vehicleClass")
+        private String vehicleClass;
+
+        @JsonProperty("seatCount")
+        private Integer seatCount;
+
+        @JsonProperty("purchasePrice")
+        private Integer purchasePrice;
+
+        @JsonProperty("displacement")
+        private Double displacement;
+
+        @JsonProperty("enginePower")
+        private String enginePower;
+
+        @JsonProperty("carLotEquQuality")
+        private String carLotEquQuality;
+
+        @JsonProperty("tonCount")
+        private String tonCount;
+
+        @JsonProperty("pmFuelType")
+        private String pmFuelType;
+
+        @JsonProperty("fuelType")
+        private String fuelType;
+
+        @JsonProperty("isEnergyCar")
+        private String isEnergyCar;
+
+        @JsonProperty("engineNo")
+        private String engineNo;
+
+        @JsonProperty("searchCode")
+        private String searchCode;
+
+        @JsonProperty("brandId")
+        private String brandId;
+
+        @JsonProperty("vehicleMakerId")
+        private String vehicleMakerId;
+
+        @JsonProperty("groupName")
+        private String groupName;
+
+        @JsonProperty("modelCodeAlias")
+        private String modelCodeAlias;
+
+        @JsonProperty("presaleCarFlag")
+        private String presaleCarFlag;
+
+        @JsonProperty("remark")
+        private String remark;
+
+        @JsonProperty("value")
+        private String value;
+
+        @JsonProperty("vehicleFgwCode")
+        private String vehicleFgwCode;
+
+        @JsonProperty("label")
+        private String label;
+    }
+
+    @NoArgsConstructor
+    @Data
+    public static class PlatModelTableDTO {
+        @JsonProperty("vehicleId")
+        private String vehicleId;
+
+        @JsonProperty("vehicleIdQ08")
+        private String vehicleIdQ08;
+
+        @JsonProperty("vehicleName")
+        private String vehicleName;
+
+        @JsonProperty("brand")
+        private String brand;
+
+        @JsonProperty("brandName1")
+        private String brandName1;
+
+        @JsonProperty("vehicleClass")
+        private String vehicleClass;
+
+        @JsonProperty("vehicleType")
+        private String vehicleType;
+
+        @JsonProperty("seatCount")
+        private Integer seatCount;
+
+        @JsonProperty("purchasePrice")
+        private Integer purchasePrice;
+
+        @JsonProperty("fuelType")
+        private String fuelType;
+
+        @JsonProperty("vehicleExhaust")
+        private String vehicleExhaust;
+
+        @JsonProperty("enginePower")
+        private String enginePower;
+
+        @JsonProperty("carLotEquQuality")
+        private String carLotEquQuality;
+
+        @JsonProperty("isEnergyCar")
+        private String isEnergyCar;
+
+        @JsonProperty("tonCount")
+        private String tonCount;
+
+        @JsonProperty("vehicleYear")
+        private String vehicleYear;
+
+        @JsonProperty("presaleCarFlag")
+        private String presaleCarFlag;
+
+        @JsonProperty("platModelCode")
+        private String platModelCode;
+
+        @JsonProperty("index")
+        private Integer index;
+    }
+
+}

+ 49 - 0
tenant/insurance/quotation-renbao/src/main/java/com/jzg/quotation/renbao/crawler/entity/dto/PrpCmainChannelDTO.java

@@ -0,0 +1,49 @@
+package com.jzg.quotation.renbao.crawler.entity.dto;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@NoArgsConstructor
+@Data
+public  class PrpCmainChannelDTO {
+
+    @JsonProperty("agentCode")
+    private String agentCode;
+
+    @JsonProperty("agentName")
+    private String agentName;
+
+    @JsonProperty("organCode")
+    private String organCode;
+
+    @JsonProperty("organCName")
+    private String organCName;
+
+    @JsonProperty("channelName")
+    private String channelName;
+
+    @JsonProperty("channelCode")
+    private String channelCode;
+
+    @JsonProperty("agentTypeCode")
+    private String agentTypeCode;
+
+    @JsonProperty("agentType")
+    private String agentType;
+
+    @JsonProperty("agentTypeName")
+    private String agentTypeName;
+
+    public PrpCmainChannelDTO(String agentTypeCode) {
+        this.agentCode = "";
+        this.agentName = "";
+        this.organCode = "";
+        this.organCName = "";
+        this.channelName = "";
+        this.channelCode = "";
+        this.agentTypeCode = agentTypeCode;
+        this.agentType = "0";
+        this.agentTypeName = "非专员";
+    }
+}

+ 1091 - 0
tenant/insurance/quotation-renbao/src/main/java/com/jzg/quotation/renbao/crawler/entity/dto/PrpCmainDTO.java

@@ -0,0 +1,1091 @@
+package com.jzg.quotation.renbao.crawler.entity.dto;
+
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.jzg.quotation.commons.utils.TimeProcessing;
+import com.jzg.quotation.renbao.crawler.constant.QuotationParameters;
+import com.jzg.quotation.renbao.crawler.entity.response.RenBaoCrawlerGetAgentsData;
+import com.jzg.quotation.renbao.crawler.entity.response.RenBaoCrawlerGetMonopolyData;
+import com.jzg.quotation.renbao.crawler.entity.response.RenBaoCrawlerQueryHandler1CodeData;
+import com.jzg.quotation.renbao.crawler.entity.response.RenBaoCrawlerQueryServiceManagerData;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.time.Instant;
+import java.util.List;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class PrpCmainDTO implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 2400611779526689700L;
+
+    @JsonProperty("activeNames")
+    private List<String> activeNames;
+
+    @JsonProperty("showCarCheckTimeFlag")
+    private Boolean showCarCheckTimeFlag;
+
+    @JsonIgnore
+    private String userCode;
+
+    @JsonProperty("userName")
+    private String userName;
+
+    @JsonProperty("companyName")
+    private String companyName;
+
+    @JsonProperty("element")
+    private String element;
+
+    @JsonProperty("com_table")
+    private List<?> comTable;
+
+    @JsonProperty("comCode")
+    private String comCode;
+
+    @JsonProperty("comCode1")
+    private String comCode1;
+
+    @JsonIgnore
+    private String userName1;
+
+    @JsonProperty("comCodeDes")
+    private String comCodeDes;
+
+    @JsonProperty("handler1Code")
+    private String handler1Code;
+
+    @JsonProperty("handler1code_uni")
+    private String handler1codeUni;
+
+    @JsonProperty("handler1CodeDes")
+    private String handler1CodeDes;
+
+    @JsonProperty("handlerCode")
+    private String handlerCode;
+
+    @JsonProperty("handlercode_uni")
+    private String handlercodeUni;
+
+    @JsonProperty("handlerCodeDes")
+    private String handlerCodeDes;
+
+    @JsonProperty("businessNature")
+    private String businessNature;
+
+    @JsonProperty("businessNatureTranslation")
+    private String businessNatureTranslation;
+
+    @JsonProperty("agentCode")
+    private String agentCode;
+
+    @JsonProperty("agentName")
+    private String agentName;
+
+    @JsonProperty("makeCom")
+    private String makeCom;
+
+    @JsonProperty("makeComDes")
+    private String makeComDes;
+
+    @JsonProperty("monopolyCode")
+    private String monopolyCode;
+
+    @JsonProperty("monopolyName")
+    private String monopolyName;
+
+    @JsonProperty("carChecker")
+    private String carChecker;
+
+    @JsonProperty("carCheckerTranslate")
+    private String carCheckerTranslate;
+
+    @JsonProperty("carCheckTime")
+    private Long carCheckTime;
+
+    @JsonProperty("salesmanNum")
+    private String salesmanNum;
+
+    @JsonProperty("proposalNoDI")
+    private String proposalNoDI;
+
+    @JsonProperty("lastBI")
+    private String lastBI;
+
+    @JsonProperty("lastCI")
+    private String lastCI;
+
+    @JsonProperty("premDI")
+    private String premDI;
+
+    @JsonProperty("commissionSumPremiumDI")
+    private String commissionSumPremiumDI;
+
+    @JsonProperty("proposalNoBI")
+    private String proposalNoBI;
+
+    @JsonProperty("policyNoBI")
+    private String policyNoBI;
+
+    @JsonProperty("premBI")
+    private String premBI;
+
+    @JsonProperty("commissionSumPremiumBI")
+    private String commissionSumPremiumBI;
+
+    @JsonProperty("commissionSumPremiumCI")
+    private String commissionSumPremiumCI;
+
+    @JsonProperty("policyNoDI")
+    private String policyNoDI;
+
+    @JsonProperty("sumBenchPremium")
+    private String sumBenchPremium;
+
+    @JsonProperty("proposalNoCI")
+    private String proposalNoCI;
+
+    @JsonProperty("policyNoCI")
+    private String policyNoCI;
+
+    @JsonProperty("taxPrem")
+    private String taxPrem;
+
+    @JsonProperty("benchMarkPremium")
+    private String benchMarkPremium;
+
+    @JsonProperty("benchMarkPremiumDI")
+    private String benchMarkPremiumDI;
+
+    @JsonProperty("premCI")
+    private String premCI;
+
+    @JsonProperty("sumDiscountBI")
+    private String sumDiscountBI;
+
+    @JsonProperty("discountBI")
+    private String discountBI;
+
+    @JsonProperty("sumDiscountCI")
+    private String sumDiscountCI;
+
+    @JsonProperty("discountCI")
+    private String discountCI;
+
+    @JsonProperty("sumDiscountDI")
+    private String sumDiscountDI;
+
+    @JsonProperty("discountDI")
+    private String discountDI;
+
+    @JsonProperty("cachetype")
+    private String cachetype;
+
+    @JsonProperty("operateDate")
+    private String operateDate;
+
+    @JsonProperty("operateDateOld")
+    private String operateDateOld;
+
+    @JsonProperty("projectCode")
+    private String projectCode;
+
+    @JsonProperty("groupProjectCode")
+    private String groupProjectCode;
+
+    @JsonProperty("ext3")
+    private String ext3;
+
+    @JsonProperty("ext3Name")
+    private String ext3Name;
+
+    @JsonProperty("netsales")
+    private String netsales;
+
+    @JsonProperty("netsale2")
+    private String netsale2;
+
+    @JsonProperty("netsale1")
+    private String netsale1;
+
+    @JsonProperty("netSalesDDA")
+    private String netSalesDDA;
+
+    @JsonProperty("netsale2_tongshi_show")
+    private Boolean netsale2TongshiShow;
+
+    @JsonProperty("netsale1_tongshi_show")
+    private Boolean netsale1TongshiShow;
+
+    @JsonProperty("netSalesDDA_tongshi_show")
+    private Boolean netsalesddaTongshiShow;
+
+    @JsonProperty("isNetPropDDA")
+    private String isNetPropDDA;
+
+    @JsonProperty("argueSolution")
+    private String argueSolution;
+
+    @JsonProperty("arbitBoardName")
+    private String arbitBoardName;
+
+    @JsonProperty("arbitBoardCode")
+    private String arbitBoardCode;
+
+    @JsonProperty("showArbitBoardName")
+    private Boolean showArbitBoardName;
+
+    @JsonProperty("queryComTotal")
+    private Integer queryComTotal;
+
+    @JsonProperty("queryComCurrentPage")
+    private Integer queryComCurrentPage;
+
+    @JsonProperty("queryComPageSize")
+    private Integer queryComPageSize;
+
+    @JsonProperty("sumPrem")
+    private String sumPrem;
+
+    @JsonProperty("sumPremTotal")
+    private String sumPremTotal;
+
+    @JsonProperty("sumNetPremium")
+    private String sumNetPremium;
+
+    @JsonProperty("premCISumNetPremium")
+    private String premCISumNetPremium;
+
+    @JsonProperty("quotationNoDAA")
+    private String quotationNoDAA;
+
+    @JsonProperty("quotationNoDZA")
+    private String quotationNoDZA;
+
+    @JsonProperty("quotationNoDDA")
+    private String quotationNoDDA;
+
+    @JsonProperty("marketFeeRateDI")
+    private String marketFeeRateDI;
+
+    @JsonProperty("saleFeeRateMaxDI")
+    private String saleFeeRateMaxDI;
+
+    @JsonProperty("discountMsg")
+    private String discountMsg;
+
+    @JsonProperty("marketFeeRateBI")
+    private String marketFeeRateBI;
+
+    @JsonProperty("marketFeeRateCI")
+    private String marketFeeRateCI;
+
+    @JsonProperty("saleFeeRateMaxBI")
+    private String saleFeeRateMaxBI;
+
+    @JsonProperty("saleFeeRateMaxCI")
+    private String saleFeeRateMaxCI;
+
+    @JsonProperty("costRateBI")
+    private String costRateBI;
+
+    @JsonProperty("costRateCI")
+    private String costRateCI;
+
+    @JsonProperty("costRateDI")
+    private String costRateDI;
+
+    @JsonProperty("costAmountBI")
+    private String costAmountBI;
+
+    @JsonProperty("costAmountCI")
+    private String costAmountCI;
+
+    @JsonProperty("costAmountDI")
+    private String costAmountDI;
+
+    @JsonProperty("adjustFlagBI")
+    private String adjustFlagBI;
+
+    @JsonProperty("adjustFlagCI")
+    private String adjustFlagCI;
+
+    @JsonProperty("adjustFlagDI")
+    private String adjustFlagDI;
+
+    @JsonProperty("resureFundFee")
+    private String resureFundFee;
+
+    @JsonProperty("taskNo")
+    private String taskNo;
+
+    @JsonProperty("url")
+    private List<?> url;
+
+    @JsonProperty("shortMessageUrl")
+    private String shortMessageUrl;
+
+    @JsonProperty("projectCodeDes")
+    private String projectCodeDes;
+
+    @JsonProperty("proposalNo")
+    private String proposalNo;
+
+    @JsonProperty("openCollapse")
+    private List<String> openCollapse;
+
+    @JsonProperty("giftPackets")
+    private List<?> giftPackets;
+
+    @JsonProperty("isJoinGiftPackets")
+    private String isJoinGiftPackets;
+
+    @JsonProperty("organCode")
+    private String organCode;
+
+    @JsonProperty("agentType")
+    private String agentType;
+
+    @JsonProperty("sumAmountNoDeduc")
+    private String sumAmountNoDeduc;
+
+    @JsonProperty("jfeeFlag")
+    private String jfeeFlag;
+
+    @JsonProperty("underwriteCode")
+    private String underwriteCode;
+
+    @JsonProperty("underwriteName")
+    private String underwriteName;
+
+    @JsonProperty("policyRelCode")
+    private String policyRelCode;
+
+    @JsonProperty("policyRelName")
+    private String policyRelName;
+
+    @JsonProperty("updateTime")
+    private String updateTime;
+
+    @JsonProperty("inputTime")
+    private String inputTime;
+
+    @JsonProperty("underwriteEndDate")
+    private String underwriteEndDate;
+
+    @JsonProperty("renewalFlag")
+    private String renewalFlag;
+
+    @JsonProperty("inputFlag")
+    private String inputFlag;
+
+    @JsonProperty("sumInsuredType")
+    private String sumInsuredType;
+
+    @JsonProperty("agriFlag")
+    private String agriFlag;
+
+    @JsonProperty("preDiscount")
+    private String preDiscount;
+
+    @JsonProperty("adjustSelfPricingDiscount")
+    private String adjustSelfPricingDiscount;
+
+    @JsonProperty("cashComMarketRateDownRatio")
+    private String cashComMarketRateDownRatio;
+
+    @JsonProperty("preDiscountOld")
+    private String preDiscountOld;
+
+    @JsonProperty("cacheflag")
+    private String cacheflag;
+
+    @JsonProperty("isCache")
+    private String isCache;
+
+    @JsonProperty("applyNo")
+    private String applyNo;
+
+    @JsonProperty("endorNo")
+    private String endorNo;
+
+    @JsonProperty("wufubaoType")
+    private String wufubaoType;
+
+    @JsonProperty("isDisabled")
+    private Boolean isDisabled;
+
+    @JsonProperty("showDetails")
+    private String showDetails;
+
+    @JsonProperty("isShowDetails")
+    private Boolean isShowDetails;
+
+    @JsonProperty("endorNoBI")
+    private String endorNoBI;
+
+    @JsonProperty("endorNoCI")
+    private String endorNoCI;
+
+    @JsonProperty("endorNoDI")
+    private String endorNoDI;
+
+    @JsonProperty("sumUnionPremium")
+    private String sumUnionPremium;
+
+    @JsonProperty("sumPremium")
+    private String sumPremium;
+
+    @JsonProperty("applyNoCI")
+    private String applyNoCI;
+
+    @JsonProperty("applyNoBI")
+    private String applyNoBI;
+
+    @JsonProperty("applyNoDI")
+    private String applyNoDI;
+
+    @JsonProperty("paySumFee")
+    private String paySumFee;
+
+    @JsonProperty("prpPtext")
+    private String prpPtext;
+
+    @JsonProperty("view")
+    private Boolean view;
+
+    @JsonProperty("state")
+    private String state;
+
+    @JsonProperty("stateBI")
+    private String stateBI;
+
+    @JsonProperty("stateCI")
+    private String stateCI;
+
+    @JsonProperty("policyType")
+    private String policyType;
+
+    @JsonProperty("sumTaxPremium")
+    private String sumTaxPremium;
+
+    @JsonProperty("businessInfoEndors")
+    private String businessInfoEndors;
+
+    @JsonProperty("newEndDate")
+    private String newEndDate;
+
+    @JsonProperty("riskCode")
+    private String riskCode;
+
+    @JsonProperty("sumAmount")
+    private String sumAmount;
+
+    @JsonProperty("coinsFlag")
+    private String coinsFlag;
+
+    @JsonProperty("policyNo")
+    private String policyNo;
+
+    @JsonProperty("useYear")
+    private String useYear;
+
+    @JsonProperty("calculateModes")
+    private List<LabelValueDTO> calculateModes;
+
+    @JsonProperty("vinSearch")
+    private Boolean vinSearch;
+
+    @JsonProperty("platSearch")
+    private Boolean platSearch;
+
+    @JsonProperty("statecar")
+    private String statecar;
+
+    @JsonProperty("groupcar")
+    private String groupcar;
+
+    @JsonProperty("sanchudata")
+    private List<?> sanchudata;
+
+    @JsonProperty("handler1CodeDes_new")
+    private String handler1codedesNew;
+
+    @JsonProperty("handler1CodeDes_old")
+    private String handler1codedesOld;
+
+    @JsonProperty("jzfwSearch")
+    private Boolean jzfwSearch;
+
+    @JsonProperty("insurancefee_reform")
+    private String insurancefeeReform;
+
+    @JsonProperty("isCqp")
+    private String isCqp;
+
+    @JsonProperty("itemKindLoadFlag")
+    private String itemKindLoadFlag;
+
+    @JsonProperty("undwrtForPassEndor")
+    private List<?> undwrtForPassEndor;
+
+    @JsonProperty("commissionFlag")
+    private Object commissionFlag;
+
+    @JsonProperty("isOnlyBI")
+    private Boolean isOnlyBI;
+
+    @JsonProperty("isOnlyCI")
+    private Boolean isOnlyCI;
+
+    @JsonProperty("endorSumTaxPremium")
+    private String endorSumTaxPremium;
+
+    @JsonProperty("prpDfeProjectCode")
+    private String prpDfeProjectCode;
+
+    @JsonProperty("prpDfeProjectName")
+    private String prpDfeProjectName;
+
+    @JsonProperty("otherBase_table")
+    private List<?> otherbaseTable;
+
+    @JsonProperty("queryPrpDfeProjectTotal")
+    private Integer queryPrpDfeProjectTotal;
+
+    @JsonProperty("isNetProp")
+    private String isNetProp;
+
+    @JsonProperty("isSendNotice")
+    private String isSendNotice;
+
+    @JsonProperty("SignStatus")
+    private String signStatus;
+
+    @JsonProperty("disabledEleInsurance")
+    private Boolean disabledEleInsurance;
+
+    @JsonProperty("isSendAttachment")
+    private String isSendAttachment;
+
+    @JsonProperty("times")
+    private Integer times;
+
+    @JsonProperty("sumDiscountBIPremium")
+    private Integer sumDiscountBIPremium;
+
+    @JsonProperty("sumDiscountCIPremium")
+    private Integer sumDiscountCIPremium;
+
+    @JsonProperty("currentIssueTime")
+    private String currentIssueTime;
+
+    @JsonProperty("intelligentDevice")
+    private String intelligentDevice;
+
+    @JsonProperty("installDate")
+    private String installDate;
+
+    @JsonProperty("installPersonName")
+    private String installPersonName;
+
+    @JsonProperty("installPerson")
+    private String installPerson;
+
+    @JsonProperty("result")
+    private String result;
+
+    @JsonProperty("rate")
+    private String rate;
+
+    @JsonProperty("defaultBaseInfoFlag")
+    private Boolean defaultBaseInfoFlag;
+
+    @JsonProperty("dmFlag")
+    private String dmFlag;
+
+    @JsonProperty("assetUserCode")
+    private String assetUserCode;
+
+    @JsonProperty("assetUserName")
+    private String assetUserName;
+
+    @JsonProperty("assetChannelCode")
+    private String assetChannelCode;
+
+    @JsonProperty("assetChannelName")
+    private String assetChannelName;
+
+    @JsonProperty("sellerCode")
+    private String sellerCode;
+
+    @JsonProperty("sellerName")
+    private Object sellerName;
+
+    @JsonProperty("sellerNo")
+    private String sellerNo;
+
+    @JsonProperty("isNetEndor")
+    private String isNetEndor;
+
+    @JsonProperty("linkerName")
+    private String linkerName;
+
+    @JsonProperty("premSum")
+    private String premSum;
+
+    @JsonProperty("showLastBI")
+    private Boolean showLastBI;
+
+    @JsonProperty("showLastCI")
+    private Boolean showLastCI;
+
+    @JsonProperty("OldPolicyNoBI")
+    private String oldPolicyNoBI;
+
+    @JsonProperty("OldPolicyNoCI")
+    private String oldPolicyNoCI;
+
+    @JsonProperty("isSendMsg")
+    private String isSendMsg;
+
+    @JsonProperty("isSendEmail")
+    private String isSendEmail;
+
+    @JsonProperty("batchNo")
+    private String batchNo;
+
+    @JsonProperty("fleetNo")
+    private String fleetNo;
+
+    @JsonProperty("statistics")
+    private String statistics;
+
+    @JsonProperty("batchNoShow")
+    private Boolean batchNoShow;
+
+    @JsonProperty("carShipTaxFlag")
+    private String carShipTaxFlag;
+
+    @JsonProperty("planFee")
+    private String planFee;
+
+    @JsonProperty("subsidyRates")
+    private String subsidyRates;
+
+    @JsonProperty("sumUnplanFee")
+    private String sumUnplanFee;
+
+    @JsonProperty("isNetEndorDisabled")
+    private Boolean isNetEndorDisabled;
+
+    @JsonProperty("platformCode")
+    private String platformCode;
+
+    @JsonProperty("platformCodeDes")
+    private String platformCodeDes;
+
+    @JsonProperty("cqpCount")
+    private String cqpCount;
+
+    @JsonProperty("localUse")
+    private String localUse;
+
+    @JsonProperty("localUseDes")
+    private List<LabelValueDTO> localUseDes;
+
+    @JsonProperty("localLicense")
+    private String localLicense;
+
+    @JsonProperty("localLicenseDes")
+    private List<LabelValueDTO> localLicenseDes;
+
+    @JsonProperty("userclassificationCode")
+    private String userclassificationCode;
+
+    @JsonProperty("userclassificationCodeEAD")
+    private String userclassificationCodeEAD;
+
+    @JsonProperty("serviceManagerComCode")
+    private String serviceManagerComCode;
+
+    @JsonProperty("serviceManagerComCodeEAD")
+    private String serviceManagerComCodeEAD;
+
+    @JsonProperty("rsCopyProposalNo")
+    private String rsCopyProposalNo;
+
+    @JsonProperty("copyProposalno")
+    private String copyProposalno;
+
+    @JsonProperty("copy_loading")
+    private String copyLoading;
+
+    @JsonProperty("update_loading")
+    private String updateLoading;
+
+    @JsonProperty("endor_loading")
+    private String endorLoading;
+
+    @JsonProperty("endor_emit")
+    private String endorEmit;
+
+    @JsonProperty("updatePrepareQueryData")
+    private UpdatePrepareQueryDataDTO updatePrepareQueryData;
+
+    @JsonProperty("userclassificationCode_prpall")
+    private String userclassificationcodePrpall;
+
+    @JsonProperty("searchInsuredText")
+    private String searchInsuredText;
+
+    @JsonProperty("decryptFlag")
+    private Boolean decryptFlag;
+
+    @JsonProperty("decryptMap")
+    private DecryptMapDTO decryptMap;
+
+    @JsonProperty("isVisitedRenewalPolicy")
+    private Boolean isVisitedRenewalPolicy;
+
+    @JsonProperty("isSelectCustomerInfo")
+    private Boolean isSelectCustomerInfo;
+
+    @JsonProperty("violationsCount")
+    private String violationsCount;
+
+    @JsonProperty("showTruckNetModel")
+    private String showTruckNetModel;
+
+    @JsonProperty("isShowTruckNetModel")
+    private Boolean isShowTruckNetModel;
+
+    @JsonProperty("payAccountName")
+    private String payAccountName;
+
+    @JsonProperty("relationShipCode")
+    private String relationShipCode;
+
+    @JsonProperty("contriutionList")
+    private List<?> contriutionList;
+
+    @JsonProperty("remark")
+    private String remark;
+
+    @JsonProperty("feProjectCode")
+    private String feProjectCode;
+
+    @JsonProperty("underwritOpinion")
+    private String underwritOpinion;
+
+    @JsonProperty("clauseFlag")
+    private String clauseFlag;
+
+    @JsonProperty("startHour")
+    private Integer startHour;
+
+    @JsonProperty("startMinute")
+    private Integer startMinute;
+
+    @JsonProperty("startDate")
+    private String startDate;
+
+    @JsonProperty("endDate")
+    private String endDate;
+
+    @JsonProperty("endHour")
+    private Integer endHour;
+
+    @JsonProperty("endMinute")
+    private Integer endMinute;
+
+    @JsonProperty("email")
+    private String email;
+
+    @JsonProperty("emailE")
+    private String emailE;
+
+    public PrpCmainDTO(RenBaoCrawlerQueryHandler1CodeData.ResultDTO handler1Code, List<String> handlerCodeList, String businessSourcesCode, String businessSources,
+                       RenBaoCrawlerGetAgentsData.DataDTO agents, RenBaoCrawlerQueryServiceManagerData.DataDTO manager, RenBaoCrawlerGetMonopolyData.DataDTO monopoly) {
+        this.activeNames = List.of("0");
+        this.showCarCheckTimeFlag = false;
+        this.userCode = userCode;
+        this.userName = userName;
+        this.companyName = null;
+        this.element = "";
+        this.comTable = List.of();
+        this.comCode = comCode;
+        this.comCode1 = comCode1;
+        this.userName1 = userName1;
+        this.comCodeDes = comCodeDes;
+        this.handler1Code = handler1Code.getUserCode();
+        this.handler1codeUni = handler1Code.getGroupUserCode();
+        this.handler1CodeDes = handler1Code.getUserName();
+        this.handlerCode = handlerCodeList.get(0);
+        this.handlercodeUni = handlerCodeList.get(handlerCodeList.size() - 1);
+        this.handlerCodeDes = handlerCodeList.get(1);
+        this.businessNature = businessSources;
+        this.businessNatureTranslation = businessSourcesCode;
+        this.agentCode = agents.getAgentCode();
+        this.agentName = agents.getAgentName();
+        this.makeCom = makeCom;
+        this.makeComDes = makeComDes;
+        this.monopolyCode = monopoly.getStoreCode();
+        this.monopolyName = monopoly.getStoreName();
+        this.carChecker = manager.getUserCode();
+        this.carCheckerTranslate = manager.getUserName();
+        this.carCheckTime = Instant.now().toEpochMilli() ;
+        this.salesmanNum = "";
+        this.proposalNoDI = "";
+        this.lastBI = "";
+        this.lastCI = "";
+        this.premDI = "";
+        this.commissionSumPremiumDI = "";
+        this.proposalNoBI = "";
+        this.policyNoBI = "";
+        this.premBI = "";
+        this.commissionSumPremiumBI = "";
+        this.commissionSumPremiumCI = "";
+        this.policyNoDI = "";
+        this.sumBenchPremium = "";
+        this.proposalNoCI = "";
+        this.policyNoCI = "";
+        this.taxPrem = "";
+        this.benchMarkPremium = "";
+        this.benchMarkPremiumDI = "";
+        this.premCI = "";
+        this.sumDiscountBI =  "无折扣";
+        this.discountBI = "";
+        this.sumDiscountCI =  "无折扣";
+        this.discountCI = "";
+        this.sumDiscountDI =  "无折扣";
+        this.discountDI = "";
+        this.cachetype = "cacheon";
+        String today = TimeProcessing.nowDate();
+        this.operateDate = today;
+        this.operateDateOld = today;
+        this.projectCode = "";
+        this.groupProjectCode = "";
+        this.ext3 = "";
+        this.ext3Name = "";
+        this.netsales = "";
+        this.netsale2 = "2";
+        this.netsale1 = "1";
+        this.netSalesDDA = "0";
+        this.netsale2TongshiShow = true;
+        this.netsale1TongshiShow = true;
+        this.netsalesddaTongshiShow = true;
+        this.isNetPropDDA = "0";
+        this.argueSolution = "1";
+        this.arbitBoardName = "";
+        this.arbitBoardCode = "";
+        this.showArbitBoardName = false;
+        this.queryComTotal = 0;
+        this.queryComCurrentPage = 1;
+        this.queryComPageSize = 10;
+        this.sumPrem = "0.00";
+        this.sumPremTotal = "0.00";
+        this.sumNetPremium = "0.00";
+        this.premCISumNetPremium = "0.00";
+        this.quotationNoDAA = "";
+        this.quotationNoDZA = "";
+        this.quotationNoDDA = "";
+        this.marketFeeRateDI = "";
+        this.saleFeeRateMaxDI = "";
+        this.discountMsg = "";
+        this.marketFeeRateBI = "";
+        this.marketFeeRateCI = "";
+        this.saleFeeRateMaxBI = "";
+        this.saleFeeRateMaxCI = "";
+        this.costRateBI = "";
+        this.costRateCI = "";
+        this.costRateDI = "";
+        this.costAmountBI = "";
+        this.costAmountCI = "";
+        this.costAmountDI = "";
+        this.adjustFlagBI = "0";
+        this.adjustFlagCI =  "0";
+        this.adjustFlagDI =  "0";
+        this.resureFundFee = "";
+        this.taskNo = "";
+        this.url = List.of();
+        this.shortMessageUrl = "";
+        this.projectCodeDes = "";
+        this.proposalNo = "";
+        this.openCollapse = List.of("0");
+        this.giftPackets = List.of();
+        this.isJoinGiftPackets = "";
+        this.organCode = "";
+        this.agentType = agents.getAgentType();
+        this.sumAmountNoDeduc = "";
+        this.jfeeFlag = "";
+        this.underwriteCode = "";
+        this.underwriteName = "";
+        this.policyRelCode = "";
+        this.policyRelName = "";
+        this.updateTime = "";
+        this.inputTime = "";
+        this.underwriteEndDate = "";
+        this.renewalFlag = "";
+        this.inputFlag = "";
+        this.sumInsuredType = "";
+        this.agriFlag = "";
+        this.preDiscount = preDiscount;
+        this.adjustSelfPricingDiscount = "";
+        this.cashComMarketRateDownRatio = "";
+        this.preDiscountOld = "";
+        this.cacheflag = "平台缓存";
+        this.isCache = "1";
+        this.applyNo = "";
+        this.endorNo = "";
+        this.wufubaoType = "";
+        this.isDisabled = true;
+        this.showDetails = "";
+        this.isShowDetails = true;
+        this.endorNoBI = "";
+        this.endorNoCI = "";
+        this.endorNoDI = "";
+        this.sumUnionPremium = "";
+        this.sumPremium = "0.00";
+        this.applyNoCI = "";
+        this.applyNoBI = "";
+        this.applyNoDI = "";
+        this.paySumFee = "";
+        this.prpPtext = "";
+        this.view = false;
+        this.state = "";
+        this.stateBI = "";
+        this.stateCI = "";
+        this.policyType = "";
+        this.sumTaxPremium = "";
+        this.businessInfoEndors = "";
+        this.newEndDate = "";
+        this.riskCode = "";
+        this.sumAmount = "";
+        this.coinsFlag = "";
+        this.policyNo = "";
+        this.useYear = useYear;
+        this.calculateModes = QuotationParameters.CALCULATE_MODES_LIST;
+        this.vinSearch = false;
+        this.platSearch = true;
+        this.statecar = "";
+        this.groupcar = "";
+        this.sanchudata = List.of();
+        this.handler1codedesNew = "";
+        this.handler1codedesOld = "";
+        this.jzfwSearch = true;
+        this.insurancefeeReform = "";
+        this.isCqp = "";
+        this.itemKindLoadFlag = "";
+        this.undwrtForPassEndor = List.of();
+        this.commissionFlag = null;
+        this.isOnlyBI = false;
+        this.isOnlyCI = false;
+        this.endorSumTaxPremium = "";
+        this.prpDfeProjectCode = "";
+        this.prpDfeProjectName = "";
+        this.otherbaseTable = List.of();
+        this.queryPrpDfeProjectTotal = 0;
+        this.isNetProp = "1";
+        this.isSendNotice = "0";
+        this.signStatus = "";
+        this.disabledEleInsurance = false;
+        this.isSendAttachment = "0";
+        this.times = 0;
+        this.sumDiscountBIPremium = 0;
+        this.sumDiscountCIPremium = 0;
+        this.currentIssueTime = "";
+        this.intelligentDevice = "00";
+        this.installDate = "";
+        this.installPersonName = "";
+        this.installPerson = "";
+        this.result = "";
+        this.rate = "";
+        this.defaultBaseInfoFlag = true;
+        this.dmFlag =  "ZNCD";
+        this.assetUserCode = "0";
+        this.assetUserName = "非专员";
+        this.assetChannelCode = "";
+        this.assetChannelName = "";
+        this.sellerCode = "";
+        this.sellerName = null;
+        this.sellerNo = "" ;
+        this.isNetEndor = "0";
+        this.linkerName = agents.getLinkerName();
+        this.premSum = "";
+        this.showLastBI = false;
+        this.showLastCI = false;
+        this.oldPolicyNoBI = "";
+        this.oldPolicyNoCI = "";
+        this.isSendMsg = "1";
+        this.isSendEmail = "1";
+        this.batchNo = "";
+        this.fleetNo = "";
+        this.statistics = "";
+        this.batchNoShow = false;
+        this.carShipTaxFlag = "";
+        this.planFee = "";
+        this.subsidyRates = "";
+        this.sumUnplanFee = "";
+        this.isNetEndorDisabled = false;
+        this.platformCode = "";
+        this.platformCodeDes = "";
+        this.cqpCount = cqpCount;
+        this.localUse = "";
+        this.localUseDes = QuotationParameters.LOCAL_USE_LIST;
+        this.localLicense = "";
+        this.localLicenseDes = QuotationParameters.LOCAL_USE_LIST;
+        this.userclassificationCode = "";
+        this.userclassificationCodeEAD = "";
+        this.serviceManagerComCode = "";
+        this.serviceManagerComCodeEAD = "";
+        this.rsCopyProposalNo = "";
+        this.copyProposalno = "";
+        this.copyLoading = "";
+        this.updateLoading = "";
+        this.endorLoading = "";
+        this.endorEmit = "";
+        this.updatePrepareQueryData = new UpdatePrepareQueryDataDTO();
+        this.userclassificationcodePrpall = userclassificationcodePrpall;
+        this.searchInsuredText = "";
+        this.decryptFlag = false;
+        this.decryptMap = new DecryptMapDTO();
+        this.isVisitedRenewalPolicy = false;
+        this.isSelectCustomerInfo = false;
+        this.violationsCount = "";
+        this.showTruckNetModel = "";
+        this.isShowTruckNetModel = true;
+        this.payAccountName = "";
+        this.relationShipCode = "";
+        this.contriutionList = List.of();
+        this.remark = "";
+        this.feProjectCode = "";
+        this.underwritOpinion = "";
+        this.clauseFlag = "1";
+        this.startHour = startHour;
+        this.startMinute = startMinute;
+        this.startDate = startDate;
+        this.endDate = endDate;
+        this.endHour = endHour;
+        this.endMinute = endMinute;
+        this.email = "";
+        this.emailE = "";
+    }
+
+    @NoArgsConstructor
+    @Data
+    public static class UpdatePrepareQueryDataDTO {
+    }
+
+    @NoArgsConstructor
+    @Data
+    public static class DecryptMapDTO {
+    }
+
+}

+ 98 - 0
tenant/insurance/quotation-renbao/src/main/java/com/jzg/quotation/renbao/crawler/entity/dto/PrpItemKindDDAsDTO.java

@@ -0,0 +1,98 @@
+package com.jzg.quotation.renbao.crawler.entity.dto;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@NoArgsConstructor
+@Data
+public class PrpItemKindDDAsDTO {
+
+    @JsonProperty("quantity")
+    private Integer quantity;
+
+    @JsonProperty("chooseFlag")
+    private Boolean chooseFlag;
+
+    @JsonProperty("amount")
+    private Integer amount;
+
+    @JsonProperty("kindPremium")
+    private String kindPremium;
+
+    @JsonProperty("kindCode")
+    private String kindCode;
+
+    @JsonProperty("kindName")
+    private String kindName;
+
+    @JsonProperty("flag")
+    private String flag;
+
+    @JsonProperty("value")
+    private String value;
+
+    @JsonProperty("unitAmount")
+    private String unitAmount;
+
+    @JsonProperty("newInsertFlag")
+    private String newInsertFlag;
+
+    @JsonProperty("shortrateFlag")
+    private String shortrateFlag;
+
+    @JsonProperty("discount")
+    private String discount;
+
+    @JsonProperty("allNetPremium")
+    private String allNetPremium;
+
+    @JsonProperty("allTaxFee")
+    private String allTaxFee;
+
+    @JsonProperty("taxfee_gb")
+    private String taxfeeGb;
+
+    @JsonProperty("taxfee_lb")
+    private String taxfeeLb;
+
+    @JsonProperty("changeFlag")
+    private Boolean changeFlag;
+
+    @JsonProperty("variablePremium")
+    private String variablePremium;
+
+    @JsonProperty("days")
+    private String days;
+
+    @JsonProperty("kindDeductible")
+    private String kindDeductible;
+
+    @JsonProperty("chooseFlagMP")
+    private String chooseFlagMP;
+
+    public PrpItemKindDDAsDTO(String kindCode, String kindName) {
+        this.quantity = 1;
+        this.chooseFlag = false;
+        this.amount = 0;
+        this.kindPremium = "";
+        this.kindCode = kindCode;
+        this.kindName = kindName;
+        this.flag = "";
+        this.value = "";
+        this.unitAmount = "";
+        this.newInsertFlag = "";
+        this.shortrateFlag = "";
+        this.discount = "";
+        this.allNetPremium = "";
+        this.allTaxFee = "";
+        this.taxfeeGb = "";
+        this.taxfeeLb = "";
+        this.changeFlag = false;
+        this.variablePremium = "";
+        this.days = "";
+        this.kindDeductible = "";
+        this.chooseFlagMP = "";
+    }
+}

+ 51 - 0
tenant/insurance/quotation-renbao/src/main/java/com/jzg/quotation/renbao/crawler/entity/po/RenBaoCrawlerOrder.java

@@ -0,0 +1,51 @@
+package com.jzg.quotation.renbao.crawler.entity.po;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import org.springframework.data.annotation.Id;
+import org.springframework.data.mongodb.core.mapping.Document;
+
+
+@Data
+@Document("renbao.crawler.order")
+@NoArgsConstructor
+@AllArgsConstructor
+public class RenBaoCrawlerOrder {
+
+    @Id
+    private String id;
+    /**
+     * 订单号
+     */
+    private String ordersNo;
+    /**
+     * 交强投保单号
+     */
+    private String ciPolicyNumber;
+    /**
+     * 商业投保单号
+     */
+    private String biPolicyNumber;
+    /**
+     * 非车投保单号
+     */
+    private String niPolicyNumber;
+    /**
+     * 交强险保单号
+     */
+    private String ciPolicyNo;
+    /**
+     * 商业险保单号
+     */
+    private String biPolicyNo;
+    /**
+     * 非车保单号
+     */
+    private String niPolicyNo;
+    /**
+     * 保存时间
+     */
+    private String createTime;
+
+}

+ 739 - 0
tenant/insurance/quotation-renbao/src/main/java/com/jzg/quotation/renbao/crawler/entity/request/RenBaoCrawlerCaculatePremiumRequest.java

@@ -0,0 +1,739 @@
+package com.jzg.quotation.renbao.crawler.entity.request;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.jzg.commons.entity.quote.vo.QuoteVo;
+import com.jzg.quotation.renbao.crawler.constant.QuotationParameters;
+import com.jzg.quotation.renbao.crawler.entity.dto.*;
+import com.jzg.quotation.renbao.crawler.entity.response.RenBaoCrawlerVehicleQueryData;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.time.Instant;
+import java.util.ArrayList;
+import java.util.List;
+
+
+/**
+ * @author wks
+ * @version 1.0
+ * @description: 人保财险 报价请求参数
+ * @date 2025/12/4 14:18
+ */
+@NoArgsConstructor
+@Data
+public class RenBaoCrawlerCaculatePremiumRequest {
+
+
+    @JsonProperty("comCName")
+    private String comCName;
+
+    @JsonProperty("userName")
+    private String userName;
+
+    @JsonProperty("comCode")
+    private String comCode;
+
+    @JsonProperty("userCode")
+    private String userCode;
+
+    @JsonProperty("userSonType")
+    private String userSonType;
+
+    @JsonProperty("riskCode")
+    private String riskCode;
+
+    @JsonProperty("editType")
+    private String editType;
+
+    @JsonProperty("copyType")
+    private Boolean copyType;
+
+    @JsonProperty("renewalFlag")
+    private String renewalFlag;
+
+    @JsonProperty("rePolicyNo")
+    private String rePolicyNo;
+
+    @JsonProperty("source")
+    private String source;
+
+    @JsonProperty("activeIndex")
+    private String activeIndex;
+
+    @JsonProperty("endorFlag")
+    private String endorFlag;
+
+    @JsonProperty("endorName")
+    private Object endorName;
+
+    @JsonProperty("bizType")
+    private String bizType;
+
+    @JsonProperty("DmFlag")
+    private String dmFlag;
+
+    @JsonProperty("OperaterCode")
+    private String operaterCode;
+
+    @JsonProperty("IDList")
+    private List<?> iDList;
+
+    @JsonProperty("enderType")
+    private String enderType;
+
+    @JsonProperty("editFlag")
+    private Boolean editFlag;
+
+    @JsonProperty("renewalPolicyFlag")
+    private Boolean renewalPolicyFlag;
+
+    @JsonProperty("userPower")
+    private List<String> userPower;
+
+    @JsonProperty("otherUserPower")
+    private List<String> otherUserPower;
+
+    @JsonProperty("powerPath")
+    private List<String> powerPath;
+
+    @JsonProperty("endorTypes")
+    private List<LabelValueDTO> endorTypes;
+
+    @JsonProperty("dlgTempShow")
+    private Boolean dlgTempShow;
+
+    @JsonProperty("insBusinessType")
+    private String insBusinessType;
+
+    @JsonProperty("noticeActive")
+    private Boolean noticeActive;
+
+    @JsonProperty("auditFlag")
+    private Boolean auditFlag;
+
+    @JsonProperty("qualitySuperviseCount")
+    private String qualitySuperviseCount;
+
+    @JsonProperty("profitinfoFlag")
+    private Boolean profitinfoFlag;
+
+    @JsonProperty("taskNo")
+    private String taskNo;
+
+    @JsonProperty("quotationNoDAA")
+    private String quotationNoDAA;
+
+    @JsonProperty("quotationNoDZA")
+    private String quotationNoDZA;
+
+    @JsonProperty("quotationNoDDA")
+    private String quotationNoDDA;
+
+    @JsonProperty("energyTypePlat")
+    private String energyTypePlat;
+
+    @JsonProperty("energyFlag")
+    private String energyFlag;
+
+    @JsonProperty("prpItemKindDDAs")
+    private List<PrpItemKindDDAsDTO> prpItemKindDDAs;
+
+    @JsonProperty("prpCmain")
+    private PrpCmainDTO prpCmain;
+
+    @JsonProperty("prpCitemCar")
+    private PrpCitemCarDTO prpCitemCar;
+
+    @JsonProperty("prpCinsureds")
+    private List<PrpCinsuredsDTO> prpCinsureds;
+
+    @JsonProperty("prpCitemKindsTemp")
+    private List<PrpCitemKindsTempDTO> prpCitemKindsTemp;
+
+    @JsonProperty("prpCitemKindCI")
+    private PrpCitemKindCIDTO prpCitemKindCI;
+
+    @JsonProperty("prpCcarShipTax")
+    private PrpCcarShipTaxDTO prpCcarShipTax;
+
+    @JsonProperty("prpCcoin")
+    private List<?> prpCcoin;
+
+    @JsonProperty("prpCmainCommon")
+    private PrpCmainCommonDTO prpCmainCommon;
+
+    @JsonProperty("prpCmainCI")
+    private PrpCmainCIDTO prpCmainCI;
+
+    @JsonProperty("prpCmainChannel")
+    private PrpCmainChannelDTO prpCmainChannel;
+
+    @JsonProperty("prpCcarDevices")
+    private List<?> prpCcarDevices;
+
+    @JsonProperty("prpCengageTemps")
+    private List<?> prpCengageTemps;
+
+    @JsonProperty("proRemarkTemps")
+    private List<?> proRemarkTemps;
+
+    @JsonProperty("giftPacket")
+    private List<?> giftPacket;
+
+    @JsonProperty("lastDamagedBI")
+    private String lastDamagedBI;
+
+    @JsonProperty("carQuoteBasePartBIReq")
+    private CarQuoteBasePartReqDTO carQuoteBasePartBIReq;
+
+    @JsonProperty("carQuoteBasePartCIReq")
+    private CarQuoteBasePartReqDTO carQuoteBasePartCIReq;
+
+    @JsonProperty("elecInvoice")
+    private String elecInvoice;
+
+    @JsonProperty("invoiceTitle")
+    private String invoiceTitle;
+
+    @JsonProperty("invoiceMobile")
+    private String invoiceMobile;
+
+    @JsonProperty("invoiceMobileE")
+    private String invoiceMobileE;
+
+    @JsonProperty("invoiceEmail")
+    private String invoiceEmail;
+
+    @JsonProperty("invoiceEmailE")
+    private String invoiceEmailE;
+
+    @JsonProperty("currentEntryTime")
+    private Long currentEntryTime;
+
+    @JsonProperty("userCurrentEntryTime")
+    private Long userCurrentEntryTime;
+
+    @JsonProperty("sysTimestamp")
+    private Long sysTimestamp;
+
+    @JsonProperty("userTimestamp")
+    private Long userTimestamp;
+
+    @JsonProperty("currentIssueTime")
+    private String currentIssueTime;
+
+    @JsonProperty("isForbiddenFlag")
+    private String isForbiddenFlag;
+
+    @JsonProperty("isBusinessType")
+    private String isBusinessType;
+
+    public RenBaoCrawlerCaculatePremiumRequest(QuoteVo quoteVo, RenBaoCrawlerVehicleQueryData.CarInfosDTO.ResultDTO carInfos, PrpCmainDTO prpCmainDTO, String actualValue) {
+        this.comCName = "";
+        this.userName = prpCmainDTO.getUserName1();
+        this.comCode = prpCmainDTO.getComCode1();
+        this.userCode = prpCmainDTO.getUserCode();
+        this.userSonType = "1701";
+        this.riskCode = "DAA";
+        this.editType = "NEW";
+        this.copyType = false;
+        this.renewalFlag = "";
+        this.rePolicyNo = "";
+        this.source = "";
+        this.activeIndex = "/picc/index1";
+        this.endorFlag = "";
+        this.endorName = null;
+        this.bizType = "PROPOSAL";
+        this.dmFlag = "";
+        this.operaterCode = "";
+        this.iDList = List.of();
+        this.enderType = "";
+        this.editFlag = false;
+        this.renewalPolicyFlag = false;
+        this.userPower = QuotationParameters.OTHER_USER_POWER_LIST;
+        this.otherUserPower = QuotationParameters.OTHER_USER_POWER_LIST;
+        this.powerPath = QuotationParameters.POWER_PATH_LIST;
+        this.endorTypes = QuotationParameters.ENDOR_TYPES_LIST;
+        this.dlgTempShow = false;
+        this.insBusinessType = "I";
+        this.noticeActive = false;
+        this.auditFlag = false;
+        this.qualitySuperviseCount = "";
+        this.profitinfoFlag = true;
+        this.taskNo = "";
+        this.quotationNoDAA = "";
+        this.quotationNoDZA = "";
+        this.quotationNoDDA = "";
+        this.energyTypePlat = "";
+        this.energyFlag = "0";
+        this.prpItemKindDDAs = QuotationParameters.PRP_ITEM_KIND_LIST;
+        this.prpCmain = prpCmainDTO;
+        this.prpCitemCar = new PrpCitemCarDTO(quoteVo.getCarInfoVo(), carInfos, actualValue);
+        this.prpCinsureds = new ArrayList<>();
+        this.prpCitemKindsTemp = new ArrayList<>();
+        this.prpCitemKindCI = new PrpCitemKindCIDTO();
+        this.prpCcarShipTax = new PrpCcarShipTaxDTO();
+        this.prpCcoin = List.of();
+        this.prpCmainCommon = new PrpCmainCommonDTO();
+        this.prpCmainCI = new PrpCmainCIDTO();
+        this.prpCmainChannel = new PrpCmainChannelDTO(prpCmainDTO.getAgentType());
+        this.prpCcarDevices = List.of();
+        this.prpCengageTemps = List.of();
+        this.proRemarkTemps = List.of();
+        this.giftPacket = List.of();
+        this.lastDamagedBI = "0";
+        this.carQuoteBasePartBIReq = new CarQuoteBasePartReqDTO();
+        this.carQuoteBasePartCIReq = new CarQuoteBasePartReqDTO();
+        this.elecInvoice = "0";
+        this.invoiceTitle = "1";
+        this.invoiceMobile = "";
+        this.invoiceMobileE = "";
+        this.invoiceEmail = "";
+        this.invoiceEmailE = "";
+        this.currentEntryTime = Instant.now().toEpochMilli();
+        this.userCurrentEntryTime = Instant.now().toEpochMilli();
+        this.sysTimestamp = Instant.now().toEpochMilli();
+        this.userTimestamp = Instant.now().toEpochMilli();
+        this.currentIssueTime = "";
+        this.isForbiddenFlag = "0";
+        this.isBusinessType = "I";
+    }
+
+    @NoArgsConstructor
+    @Data
+    public static class PrpCitemKindCIDTO {
+
+        @JsonProperty("chooseFlag")
+        private String chooseFlag;
+
+        @JsonProperty("amount")
+        private String amount;
+
+        @JsonProperty("kindPremium")
+        private String kindPremium;
+
+        @JsonProperty("kindCode")
+        private String kindCode;
+
+        @JsonProperty("kindName")
+        private String kindName;
+
+        @JsonProperty("flag")
+        private String flag;
+
+        @JsonProperty("newInsertFlag")
+        private String newInsertFlag;
+
+        @JsonProperty("shortrateFlag")
+        private String shortrateFlag;
+
+        @JsonProperty("allNetPremium")
+        private String allNetPremium;
+
+        @JsonProperty("allTaxFee")
+        private String allTaxFee;
+
+        @JsonProperty("taxfee_gb")
+        private String taxfeeGb;
+
+        @JsonProperty("taxfee_lb")
+        private String taxfeeLb;
+
+        @JsonProperty("changeFlag")
+        private Boolean changeFlag;
+
+        @JsonProperty("variablePremium")
+        private String variablePremium;
+
+        @JsonProperty("originalPremium")
+        private String originalPremium;
+
+        @JsonProperty("riskCode")
+        private String riskCode;
+
+        @JsonProperty("showDWXKindFlag")
+        private Boolean showDWXKindFlag;
+
+        @JsonProperty("unitAmount")
+        private String unitAmount;
+
+        @JsonProperty("quantity")
+        private String quantity;
+
+        @JsonProperty("modeCode")
+        private String modeCode;
+
+        @JsonProperty("rationType")
+        private String rationType;
+
+        @JsonProperty("rationComCode")
+        private String rationComCode;
+    }
+
+    @NoArgsConstructor
+    @Data
+    public static class PrpCcarShipTaxDTO {
+
+        @JsonProperty("activeNames")
+        private List<String> activeNames;
+
+        @JsonProperty("taxType")
+        private String taxType;
+
+        @JsonProperty("taxStratDate")
+        private String taxStratDate;
+
+        @JsonProperty("taxPrem")
+        private String taxPrem;
+
+        @JsonProperty("taxAbateType")
+        private String taxAbateType;
+
+        @JsonProperty("taxAbateReason")
+        private String taxAbateReason;
+
+        @JsonProperty("taxAbateRate")
+        private String taxAbateRate;
+
+        @JsonProperty("dutyPaidProofNo")
+        private String dutyPaidProofNo;
+
+        @JsonProperty("mianshuiShow")
+        private Boolean mianshuiShow;
+
+        @JsonProperty("wanshuiShow")
+        private Boolean wanshuiShow;
+
+        @JsonProperty("jianshuiShow")
+        private Boolean jianshuiShow;
+
+        @JsonProperty("bushuiShow")
+        private Boolean bushuiShow;
+
+        @JsonProperty("calculateMode")
+        private String calculateMode;
+
+        @JsonProperty("taxPayerCode")
+        private String taxPayerCode;
+
+        @JsonProperty("taxPayerName")
+        private String taxPayerName;
+
+        @JsonProperty("taxPayerNameE")
+        private String taxPayerNameE;
+
+        @JsonProperty("taxPayerNature")
+        private String taxPayerNature;
+
+        @JsonProperty("taxPayerIdentNo")
+        private String taxPayerIdentNo;
+
+        @JsonProperty("taxPayerIdentNoE")
+        private String taxPayerIdentNoE;
+
+        @JsonProperty("taxPayerNumber")
+        private String taxPayerNumber;
+
+        @JsonProperty("taxPayerNumberE")
+        private String taxPayerNumberE;
+
+        @JsonProperty("taxComCode")
+        private String taxComCode;
+
+        @JsonProperty("taxComName")
+        private String taxComName;
+
+        @JsonProperty("tax_table")
+        private List<?> taxTable;
+
+        @JsonProperty("email")
+        private String email;
+
+        @JsonProperty("emailE")
+        private String emailE;
+
+        @JsonProperty("taxDocumentDate")
+        private String taxDocumentDate;
+
+        @JsonProperty("taxPaidAreaCode")
+        private String taxPaidAreaCode;
+
+        @JsonProperty("thisPayTax")
+        private String thisPayTax;
+
+        @JsonProperty("prePayTax")
+        private String prePayTax;
+
+        @JsonProperty("delayPayTax")
+        private String delayPayTax;
+
+        @JsonProperty("taxRegistryNumber")
+        private String taxRegistryNumber;
+
+        @JsonProperty("payTaxYear")
+        private String payTaxYear;
+
+        @JsonProperty("disableThisPayTax")
+        private String disableThisPayTax;
+
+        @JsonProperty("disablePrePayTax")
+        private String disablePrePayTax;
+
+        @JsonProperty("disableDelayPayTax")
+        private String disableDelayPayTax;
+
+        @JsonProperty("jeShow")
+        private Boolean jeShow;
+
+        @JsonProperty("blShow")
+        private Boolean blShow;
+
+        @JsonProperty("payEndDate")
+        private String payEndDate;
+
+        @JsonProperty("taxUnitAmount")
+        private String taxUnitAmount;
+
+        @JsonProperty("taxUnit")
+        private String taxUnit;
+
+        @JsonProperty("remark1")
+        private String remark1;
+
+        @JsonProperty("taxPayerType")
+        private String taxPayerType;
+
+        @JsonProperty("drivLicenseCode")
+        private String drivLicenseCode;
+
+        @JsonProperty("taxPayerTypeEdit")
+        private Boolean taxPayerTypeEdit;
+
+        @JsonProperty("taxCustSearchFalse")
+        private Boolean taxCustSearchFalse;
+
+        @JsonProperty("sumRefundTax")
+        private String sumRefundTax;
+
+        @JsonProperty("oweingTaxInfoList_table")
+        private List<?> oweingtaxinfolistTable;
+
+        @JsonProperty("prePayTaxYear")
+        private String prePayTaxYear;
+
+        @JsonProperty("prePolicyEndDate")
+        private String prePolicyEndDate;
+
+        @JsonProperty("sumPayTax")
+        private String sumPayTax;
+    }
+
+    @NoArgsConstructor
+    @Data
+    public static class PrpCmainCommonDTO {
+
+        @JsonProperty("handlercode_uni")
+        private String handlercodeUni;
+
+        @JsonProperty("ext3")
+        private String ext3;
+
+        @JsonProperty("queryArea")
+        private String queryArea;
+
+        @JsonProperty("groupFlag")
+        private String groupFlag;
+
+        @JsonProperty("elecInvoice")
+        private String elecInvoice;
+
+        @JsonProperty("invoiceTitle")
+        private String invoiceTitle;
+
+        @JsonProperty("agriFlag")
+        private Integer agriFlag;
+
+        @JsonProperty("projectCode")
+        private String projectCode;
+
+        @JsonProperty("projectName")
+        private String projectName;
+
+        @JsonProperty("payCash")
+        private String payCash;
+
+        @JsonProperty("bjsOrderNumber")
+        private String bjsOrderNumber;
+    }
+
+    @NoArgsConstructor
+    @Data
+    public static class PrpCmainCIDTO {
+
+        @JsonProperty("startDate")
+        private String startDate;
+
+        @JsonProperty("startHour")
+        private Integer startHour;
+
+        @JsonProperty("startMinute")
+        private Integer startMinute;
+
+        @JsonProperty("endDate")
+        private String endDate;
+
+        @JsonProperty("endHour")
+        private Integer endHour;
+
+        @JsonProperty("endMinute")
+        private Integer endMinute;
+
+        @JsonProperty("proposalNo")
+        private String proposalNo;
+    }
+
+
+
+    @Data
+    public static class CarQuoteBasePartReqDTO {
+
+        @JsonProperty("QuerySequenceNo")
+        private String querySequenceNo;
+
+        @JsonProperty("Answer")
+        private String answer;
+
+        @JsonProperty("CheckCode")
+        private String checkCode;
+
+        @JsonProperty("IsRenewalFlag")
+        private String isRenewalFlag;
+
+        public CarQuoteBasePartReqDTO() {
+            this.querySequenceNo = "";
+            this.answer = "";
+            this.checkCode = "";
+            this.isRenewalFlag = "";
+        }
+
+    }
+
+    @NoArgsConstructor
+    @Data
+    public static class PrpCitemKindsTempDTO {
+        @JsonProperty("chooseFlag")
+        private String chooseFlag;
+
+        @JsonProperty("kindDeductible")
+        private String kindDeductible;
+
+        @JsonProperty("amount")
+        private String amount;
+
+        @JsonProperty("previousYearAmount")
+        private String previousYearAmount;
+
+        @JsonProperty("kindPremium")
+        private String kindPremium;
+
+        @JsonProperty("kindCode")
+        private String kindCode;
+
+        @JsonProperty("kindName")
+        private String kindName;
+
+        @JsonProperty("energKindName")
+        private String energKindName;
+
+        @JsonProperty("flag")
+        private String flag;
+
+        @JsonProperty("newInsertFlag")
+        private String newInsertFlag;
+
+        @JsonProperty("shortrateFlag")
+        private String shortrateFlag;
+
+        @JsonProperty("allNetPremium")
+        private String allNetPremium;
+
+        @JsonProperty("allTaxFee")
+        private String allTaxFee;
+
+        @JsonProperty("taxfee_gb")
+        private String taxfeeGb;
+
+        @JsonProperty("taxfee_lb")
+        private String taxfeeLb;
+
+        @JsonProperty("changeFlag")
+        private Boolean changeFlag;
+
+        @JsonProperty("variablePremium")
+        private String variablePremium;
+
+        @JsonProperty("originalPremium")
+        private String originalPremium;
+
+        @JsonProperty("riskCode")
+        private String riskCode;
+
+        @JsonProperty("showDWXKindFlag")
+        private Boolean showDWXKindFlag;
+
+        @JsonProperty("unitAmount")
+        private String unitAmount;
+
+        @JsonProperty("quantity")
+        private String quantity;
+
+        @JsonProperty("modeCode")
+        private String modeCode;
+
+        @JsonProperty("deductible")
+        private String deductible;
+
+        @JsonProperty("kindAmount")
+        private String kindAmount;
+
+        @JsonProperty("safeCheckItemList")
+        private List<SafeCheckItemListDTO> safeCheckItemList;
+
+        @JsonProperty("sharedAmountFlag")
+        private String sharedAmountFlag;
+
+        @JsonProperty("share_amount_disabled")
+        private Boolean shareAmountDisabled;
+
+        @JsonProperty("deductibleRate")
+        private String deductibleRate;
+
+        @JsonProperty("disabledFlag")
+        private Boolean disabledFlag;
+
+        @NoArgsConstructor
+        @Data
+        public static class SafeCheckItemListDTO {
+            @JsonProperty("itemKindNo")
+            private Integer itemKindNo;
+
+            @JsonProperty("itemCode")
+            private String itemCode;
+
+            @JsonProperty("itemName")
+            private String itemName;
+
+            @JsonProperty("kindCode")
+            private String kindCode;
+
+            @JsonProperty("quantity")
+            private String quantity;
+
+            @JsonProperty("flag")
+            private Integer flag;
+
+            @JsonProperty("chooseFlag")
+            private Boolean chooseFlag;
+        }
+    }
+}

+ 110 - 0
tenant/insurance/quotation-renbao/src/main/java/com/jzg/quotation/renbao/crawler/entity/request/RenBaoCrawlerCalActualValueRequest.java

@@ -0,0 +1,110 @@
+package com.jzg.quotation.renbao.crawler.entity.request;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.jzg.commons.entity.quote.vo.CarInfoVo;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+
+/**
+ * @description: 人保财险 折旧价 请求参数
+ * @author wks
+ * @date 2025/12/4 14:18
+ * @version 1.0
+ */
+@NoArgsConstructor
+@Data
+public class RenBaoCrawlerCalActualValueRequest {
+
+    @JsonProperty("riskCode")
+    private String riskCode;
+
+    @JsonProperty("bizType")
+    private String bizType;
+
+    @JsonProperty("prpCitemCar")
+    private PrpCitemCarDTO prpCitemCar;
+
+    @JsonProperty("prpCmain")
+    private PrpCmainDTO prpCmain;
+
+    @JsonProperty("prpCmainCI")
+    private PrpCmainCIDTO prpCmainCI;
+
+
+
+    public RenBaoCrawlerCalActualValueRequest(String comCode, String purchasePrice, String startDataCi, CarInfoVo carInfoVo) {
+        this.riskCode = "DAA";
+        this.bizType = "PROPOSAL";
+        this.prpCitemCar = new PrpCitemCarDTO(carInfoVo, purchasePrice);
+        this.prpCmain = new PrpCmainDTO(startDataCi, comCode);
+        this.prpCmainCI = new PrpCmainCIDTO(startDataCi);
+    }
+
+    @NoArgsConstructor
+    @Data
+    public static class PrpCitemCarDTO {
+        @JsonProperty("carKindCode")
+        private String carKindCode;
+
+        @JsonProperty("enrollDate")
+        private String enrollDate;
+
+        @JsonProperty("useNatureCode")
+        private String useNatureCode;
+
+        @JsonProperty("clauseType")
+        private String clauseType;
+
+        @JsonProperty("purchasePrice")
+        private String purchasePrice;
+
+        @JsonProperty("seatCount")
+        private String seatCount;
+
+        @JsonProperty("tonCount")
+        private String tonCount;
+
+        @JsonProperty("energyTypePlat")
+        private String energyTypePlat;
+
+        @JsonProperty("isEnergyCar")
+        private String isEnergyCar;
+
+        public PrpCitemCarDTO(CarInfoVo carInfoVo, String purchasePrice) {
+            this.carKindCode = carInfoVo.getCarKindCode();
+            this.enrollDate = enrollDate;
+            this.useNatureCode = carInfoVo.getVehicleUseCode();
+            this.clauseType = clauseType;
+            this.purchasePrice = purchasePrice;
+            this.seatCount = carInfoVo.getSeatCount();
+            this.tonCount = carInfoVo.getTonCount();
+            this.energyTypePlat = "0";
+            this.isEnergyCar = carInfoVo.getEnergyTypeCode();
+        }
+
+    }
+
+    @AllArgsConstructor
+    @NoArgsConstructor
+    @Data
+    public static class PrpCmainDTO {
+
+        @JsonProperty("startDate")
+        private String startDate;
+
+        @JsonProperty("comCode")
+        private String comCode;
+    }
+
+    @AllArgsConstructor
+    @NoArgsConstructor
+    @Data
+    public static class PrpCmainCIDTO {
+
+        @JsonProperty("startDate")
+        private String startDate;
+
+    }
+}

+ 172 - 0
tenant/insurance/quotation-renbao/src/main/java/com/jzg/quotation/renbao/crawler/entity/request/RenBaoCrawlerCustomPersonAddRequest.java

@@ -0,0 +1,172 @@
+package com.jzg.quotation.renbao.crawler.entity.request;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.List;
+
+@NoArgsConstructor
+@Data
+public class RenBaoCrawlerCustomPersonAddRequest {
+
+
+    @JsonProperty("comCode")
+    private String comCode;
+
+    @JsonProperty("userCode")
+    private String userCode;
+
+    @JsonProperty("index")
+    private String index;
+
+    @JsonProperty("type")
+    private String type;
+
+    @JsonProperty("isBusinessType")
+    private String isBusinessType;
+
+    @JsonProperty("insuredSunECMFlag")
+    private String insuredSunECMFlag;
+
+    @JsonProperty("cifversion")
+    private String cifversion;
+
+    @JsonProperty("oldPhoneExtension")
+    private String oldPhoneExtension;
+
+    @JsonProperty("email")
+    private String email;
+
+    @JsonProperty("birthDate")
+    private String birthDate;
+
+    @JsonProperty("prpDcustomerPerson")
+    private PrpDcustomerPersonDTO prpDcustomerPerson;
+
+    @JsonProperty("newPhone")
+    private List<NewPhoneDTO> newPhone;
+
+    @JsonProperty("newAddress")
+    private NewAddressDTO newAddress;
+
+    @JsonProperty("groupCustFlag")
+    private String groupCustFlag;
+
+    @JsonProperty("isGroupFlag")
+    private String isGroupFlag;
+
+    @NoArgsConstructor
+    @Data
+    public static class PrpDcustomerPersonDTO {
+        @JsonProperty("cardReadFlag")
+        private String cardReadFlag;
+
+        @JsonProperty("customerCode")
+        private String customerCode;
+
+        @JsonProperty("versionNo")
+        private String versionNo;
+
+        @JsonProperty("customerCName")
+        private String customerCName;
+
+        @JsonProperty("customerEName")
+        private String customerEName;
+
+        @JsonProperty("identifyType")
+        private String identifyType;
+
+        @JsonProperty("identifyNumber")
+        private String identifyNumber;
+
+        @JsonProperty("dateValid")
+        private String dateValid;
+
+        @JsonProperty("startDateValid")
+        private String startDateValid;
+
+        @JsonProperty("nationality")
+        private String nationality;
+
+        @JsonProperty("resident")
+        private String resident;
+
+        @JsonProperty("gender")
+        private String gender;
+
+        @JsonProperty("birthDate")
+        private String birthDate;
+
+        @JsonProperty("prpDcstRisklevel.creditLevel")
+        private String _$PrpDcstRisklevelCreditLevel277;// FIXME check this code
+
+        @JsonProperty("selfYearIncome")
+        private String selfYearIncome;
+
+        @JsonProperty("professional")
+        private String professional;
+    }
+
+    @NoArgsConstructor
+    @Data
+    public static class NewAddressDTO {
+        @JsonProperty("addressType")
+        private String addressType;
+
+        @JsonProperty("province")
+        private String province;
+
+        @JsonProperty("city")
+        private String city;
+
+        @JsonProperty("area")
+        private String area;
+
+        @JsonProperty("addressCName")
+        private String addressCName;
+
+        @JsonProperty("versionNo")
+        private String versionNo;
+
+        @JsonProperty("postCode")
+        private String postCode;
+    }
+
+    @NoArgsConstructor
+    @Data
+    public static class NewPhoneDTO {
+        @JsonProperty("mobilephoneNumber")
+        private String mobilephoneNumber;
+
+        @JsonProperty("phoneNumber")
+        private String phoneNumber;
+
+        @JsonProperty("phoneExtensionIntl")
+        private String phoneExtensionIntl;
+
+        @JsonProperty("phoneExtension")
+        private String phoneExtension;
+
+        @JsonProperty("extensionNumber")
+        private String extensionNumber;
+
+        @JsonProperty("phoneType")
+        private String phoneType;
+
+        @JsonProperty("phoneProperties")
+        private String phoneProperties;
+
+        @JsonProperty("isDefault")
+        private Boolean isDefault;
+
+        @JsonProperty("delFlag")
+        private Boolean delFlag;
+
+        @JsonProperty("addFlag")
+        private Boolean addFlag;
+
+        @JsonProperty("indexNum")
+        private Integer indexNum;
+    }
+}

+ 46 - 0
tenant/insurance/quotation-renbao/src/main/java/com/jzg/quotation/renbao/crawler/entity/request/RenBaoCrawlerCustomQueryPRequest.java

@@ -0,0 +1,46 @@
+package com.jzg.quotation.renbao.crawler.entity.request;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@NoArgsConstructor
+@Data
+public class RenBaoCrawlerCustomQueryPRequest {
+
+    @JsonProperty("comCode")
+    private String comCode;
+
+    @JsonProperty("userCode")
+    private String userCode;
+
+    @JsonProperty("_identifyType")
+    private String identifytype;
+
+    @JsonProperty("_insuredName")
+    private String insuredname;
+
+    @JsonProperty("_insuredNameType")
+    private String insurednametype;
+
+    @JsonProperty("_identifyNumber")
+    private String identifynumber;
+
+    @JsonProperty("_insuredType")
+    private String insuredtype;
+
+    @JsonProperty("_insuredCode")
+    private String insuredcode;
+
+    @JsonProperty("pageNo")
+    private Integer pageNo;
+
+    @JsonProperty("pageSize")
+    private Integer pageSize;
+
+    @JsonProperty("inputSource")
+    private String inputSource;
+
+    @JsonProperty("groupCustFlag")
+    private String groupCustFlag;
+}

+ 54 - 0
tenant/insurance/quotation-renbao/src/main/java/com/jzg/quotation/renbao/crawler/entity/request/RenBaoCrawlerEditSubmitUndwrtRequest.java

@@ -0,0 +1,54 @@
+package com.jzg.quotation.renbao.crawler.entity.request;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.List;
+
+/**
+ * @author wks
+ * @version 1.0
+ * @description: 人保财险 提交核保 请求参数
+ * @date 2025/12/4 14:19
+ */
+@NoArgsConstructor
+@Data
+public class RenBaoCrawlerEditSubmitUndwrtRequest {
+
+    @JsonProperty("prpbi")
+    private String prpbi;
+
+    @JsonProperty("prpci")
+    private String prpci;
+
+    @JsonProperty("proposalNo")
+    private String proposalNo;
+
+    @JsonProperty("comCode")
+    private String comCode;
+
+    @JsonProperty("unitNoCarDataList")
+    private List<?> unitNoCarDataList;
+
+    @JsonProperty("queryFlagQ75")
+    private Boolean queryFlagQ75;
+
+    @JsonProperty("continueCommit")
+    private String continueCommit;
+
+    @JsonProperty("explanation")
+    private Object explanation;
+
+
+    public RenBaoCrawlerEditSubmitUndwrtRequest(String comCode, String prpBi, String prpCi) {
+        this.prpbi = prpBi;
+        this.prpci = prpCi;
+        this.proposalNo = proposalNo;
+        this.comCode = comCode;
+        this.unitNoCarDataList = unitNoCarDataList;
+        this.queryFlagQ75 = queryFlagQ75;
+        this.continueCommit = continueCommit;
+        this.explanation = explanation;
+    }
+}

+ 90 - 0
tenant/insurance/quotation-renbao/src/main/java/com/jzg/quotation/renbao/crawler/entity/request/RenBaoCrawlerGetAgentsRequest.java

@@ -0,0 +1,90 @@
+package com.jzg.quotation.renbao.crawler.entity.request;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.jzg.quotation.commons.utils.TimeProcessing;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * @description: 人保财险
+ * @author wks
+ * @date 2025/12/4 14:21
+ * @version 1.0
+ */
+@NoArgsConstructor
+@Data
+public class RenBaoCrawlerGetAgentsRequest {
+
+
+    @JsonProperty("fieldValue")
+    private String fieldValue;
+
+    @JsonProperty("codeMethod")
+    private String codeMethod;
+
+    @JsonProperty("codeType")
+    private String codeType;
+
+    @JsonProperty("codeRelation")
+    private String codeRelation;
+
+    @JsonProperty("isClear")
+    private String isClear;
+
+    @JsonProperty("otherCondition")
+    private String otherCondition;
+
+    @JsonProperty("typeParam")
+    private String typeParam;
+
+    @JsonProperty("callBackMethod")
+    private String callBackMethod;
+
+    @JsonProperty("getDataMethod")
+    private String getDataMethod;
+
+    @JsonProperty("pageNo")
+    private Integer pageNo;
+
+    @JsonProperty("pageSize")
+    private Integer pageSize;
+
+    @JsonProperty("elementOrder")
+    private Integer elementOrder;
+
+    @JsonProperty("userCode")
+    private String userCode;
+
+    @JsonProperty("comCode")
+    private String comCode;
+
+    @JsonProperty("elementLength")
+    private Integer elementLength;
+
+    @JsonProperty("unionRiskCode")
+    private String unionRiskCode;
+
+
+    public RenBaoCrawlerGetAgentsRequest(String userCode, String comBaseCode, String comCode, String channelName, String businessNature) {
+        this.fieldValue = channelName;
+        this.codeMethod = "change";
+        this.codeType = "select";
+        this.codeRelation = "0,1,2";
+        this.isClear = "Y";
+        String today = TimeProcessing.nowDate();
+        this.otherCondition = "operateDate=%s,riskCode=DAA,comCode=%s,businessNature=%s".formatted(today, comCode, businessNature);
+        this.typeParam = "";
+        this.callBackMethod = "";
+        this.getDataMethod = "getAgents";
+        this.pageNo = 1;
+        this.pageSize = 10;
+        this.elementOrder = 0;
+        this.userCode = userCode;
+        this.comCode = comBaseCode;
+        this.elementLength = 1;
+        this.unionRiskCode = "";
+    }
+}
+
+
+

+ 36 - 0
tenant/insurance/quotation-renbao/src/main/java/com/jzg/quotation/renbao/crawler/entity/request/RenBaoCrawlerGetMonopolyRequest.java

@@ -0,0 +1,36 @@
+package com.jzg.quotation.renbao.crawler.entity.request;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * @description: TODO 
+ * @author wks
+ * @date 2025/12/4 15:34
+ * @version 1.0
+ */
+@NoArgsConstructor
+@Data
+public class RenBaoCrawlerGetMonopolyRequest {
+
+    @JsonProperty("pageNo")
+    private Integer pageNo;
+
+    @JsonProperty("pageSize")
+    private Integer pageSize;
+
+    @JsonProperty("storeCodeOrName")
+    private String storeCodeOrName;
+
+    @JsonProperty("comCode")
+    private String comCode;
+
+    public RenBaoCrawlerGetMonopolyRequest(String comCode, String storeCode) {
+        this.pageNo = 1;
+        this.pageSize = 10;
+        this.storeCodeOrName = storeCode;
+        this.comCode = comCode;
+    }
+
+}

+ 54 - 0
tenant/insurance/quotation-renbao/src/main/java/com/jzg/quotation/renbao/crawler/entity/request/RenBaoCrawlerOrderPaymentRequest.java

@@ -0,0 +1,54 @@
+package com.jzg.quotation.renbao.crawler.entity.request;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.List;
+
+/**
+ * @author wks
+ * @version 1.0
+ * @description: 人保财险 支付二维码 获取参数
+ * @date 2025/12/5 15:05
+ */
+@NoArgsConstructor
+@Data
+public class RenBaoCrawlerOrderPaymentRequest {
+
+    @JsonProperty("documentnolist")
+    private List<String> documentnolist;
+
+    @JsonProperty("userCode")
+    private String userCode;
+
+    @JsonProperty("comCode")
+    private String comCode;
+
+    @JsonProperty("payType")
+    private String payType;
+
+    @JsonProperty("payFee")
+    private String payFee;
+
+    @JsonProperty("currency")
+    private String currency;
+
+    @JsonProperty("linkurlflag")
+    private String linkurlflag;
+
+    @JsonProperty("browseWay")
+    private String browseWay;
+
+    public RenBaoCrawlerOrderPaymentRequest(List<String> documentnolist, String userCode, String comCode) {
+        this.documentnolist = documentnolist;
+        this.userCode = userCode;
+        this.comCode = comCode;
+        this.payType = "7";
+        this.payFee = "";
+        this.currency = "";
+        this.linkurlflag = "1";
+        this.browseWay = "";
+    }
+
+}

+ 146 - 0
tenant/insurance/quotation-renbao/src/main/java/com/jzg/quotation/renbao/crawler/entity/request/RenBaoCrawlerPrepareQueryClaimRequest.java

@@ -0,0 +1,146 @@
+package com.jzg.quotation.renbao.crawler.entity.request;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.jzg.quotation.commons.utils.TimeProcessing;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * @author wks
+ * @version 1.0
+ * @description: 人保财险 订单查询  请求参数
+ * @date 2025/12/4 14:21
+ */
+@NoArgsConstructor
+@Data
+public class RenBaoCrawlerPrepareQueryClaimRequest {
+
+    @JsonProperty("apliName")
+    private String apliName;
+
+    @JsonProperty("comCode")
+    private String comCode;
+
+    @JsonProperty("userCode")
+    private String userCode;
+
+    @JsonProperty("start")
+    private Integer start;
+
+    @JsonProperty("length")
+    private Integer length;
+
+    @JsonProperty("search[value]")
+    private String searchValue;
+
+    @JsonProperty("search[regex]")
+    private String searchRegex;
+
+    @JsonProperty("businessNo")
+    private String businessNo;
+
+    @JsonProperty("engineNo")
+    private String engineNo;
+
+    @JsonProperty("licenseNo")
+    private String licenseNo;
+
+    @JsonProperty("query_date")
+    private String queryDate;
+
+    @JsonProperty("queryinterval")
+    private String queryinterval;
+
+    @JsonProperty("vinNo")
+    private String vinNo;
+
+    @JsonProperty("operateDateStart")
+    private String operateDateStart;
+
+    @JsonProperty("frameNo")
+    private String frameNo;
+
+    @JsonProperty("operateDate")
+    private String operateDate;
+
+    @JsonProperty("status")
+    private String status;
+
+    @JsonProperty("endorStatus")
+    private String endorStatus;
+
+    @JsonProperty("flagForCbc")
+    private String flagForCbc;
+
+    @JsonProperty("flagForUwt")
+    private String flagForUwt;
+
+    @JsonProperty("dmFlag")
+    private String dmFlag;
+
+    @JsonProperty("riskCode")
+    private String riskCode;
+
+    @JsonProperty("operatorCodeForQuery")
+    private String operatorCodeForQuery;
+
+    @JsonProperty("policyNo")
+    private String policyNo;
+
+    @JsonProperty("insuredOrApliQuery")
+    private Integer insuredOrApliQuery;
+
+    @JsonProperty("belongComCode")
+    private String belongComCode;
+
+    @JsonProperty("handler1Code")
+    private String handler1Code;
+
+    @JsonProperty("handlerCode")
+    private String handlerCode;
+
+    @JsonProperty("HKLicensePlateNo")
+    private String hKLicensePlateNo;
+
+    @JsonProperty("MOLicensePlateNo")
+    private String mOLicensePlateNo;
+
+    @JsonProperty("premitCode")
+    private String premitCode;
+
+    public RenBaoCrawlerPrepareQueryClaimRequest(String comCode, String userCode, String operateDateStart) {
+        this.apliName = "";
+        this.comCode = comCode;
+        this.userCode = userCode;
+        this.start = 0;
+        this.length = 10;
+        this.searchValue = "";
+        this.searchRegex = "false";
+        this.businessNo = "";
+        this.engineNo = "";
+        this.licenseNo = "";
+        this.queryDate = "0";
+        this.queryinterval = "30";
+        this.vinNo = "";
+        TimeProcessing.TimeFrame timeFrame = TimeProcessing.getTimeFrame(operateDateStart, false);
+        this.operateDateStart = timeFrame.getStartTime();
+        this.operateDate = timeFrame.getEndTime();
+        this.frameNo = "";
+        this.status = "";
+        this.endorStatus = "";
+        this.flagForCbc = "";
+        this.flagForUwt = "";
+        this.dmFlag = "0";
+        this.riskCode = "";
+        this.operatorCodeForQuery = "";
+        this.policyNo = "";
+        this.insuredOrApliQuery = 0;
+        this.belongComCode = "";
+        this.handler1Code = "";
+        this.handlerCode = "";
+        this.hKLicensePlateNo = "";
+        this.mOLicensePlateNo = "";
+        this.premitCode = "1";
+    }
+
+}

+ 91 - 0
tenant/insurance/quotation-renbao/src/main/java/com/jzg/quotation/renbao/crawler/entity/request/RenBaoCrawlerQueryCodeRequest.java

@@ -0,0 +1,91 @@
+package com.jzg.quotation.renbao.crawler.entity.request;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serial;
+import java.io.Serializable;
+
+
+/**
+ * @author wks
+ * @version 1.0
+ * @description: 人保财险 基本信息查询 归属部门、出单机构
+ * @date 2025/12/1 17:33
+ */
+@NoArgsConstructor
+@Data
+public class RenBaoCrawlerQueryCodeRequest implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = -8955923971547321454L;
+
+    @JsonProperty("fieldValue")
+    private String fieldValue;
+
+    @JsonProperty("codeMethod")
+    private String codeMethod;
+
+    @JsonProperty("codeType")
+    private String codeType;
+
+    @JsonProperty("codeRelation")
+    private String codeRelation;
+
+    @JsonProperty("isClear")
+    private String isClear;
+
+    @JsonProperty("otherCondition")
+    private String otherCondition;
+
+    @JsonProperty("typeParam")
+    private String typeParam;
+
+    @JsonProperty("callBackMethod")
+    private String callBackMethod;
+
+    @JsonProperty("getDataMethod")
+    private String getDataMethod;
+
+    @JsonProperty("pageNo")
+    private Integer pageNo;
+
+    @JsonProperty("pageSize")
+    private Integer pageSize;
+
+    @JsonProperty("elementOrder")
+    private Integer elementOrder;
+
+    @JsonProperty("riskCode")
+    private String riskCode;
+
+    @JsonProperty("comCode")
+    private String comCode;
+
+    @JsonProperty("userCode")
+    private String userCode;
+
+    @JsonProperty("elementLength")
+    private Integer elementLength;
+
+    public RenBaoCrawlerQueryCodeRequest(String userCode, String comCode, String attributionDepartmentCode) {
+        this.fieldValue = attributionDepartmentCode;
+        this.codeMethod = "select";
+        this.codeType = "BelongComCode";
+        this.codeRelation = "-1,0";
+        this.isClear = "Y";
+        this.otherCondition = "riskCode=DAA,centerflag=1";
+        this.typeParam = "";
+        this.callBackMethod = "";
+        this.getDataMethod = "";
+        this.pageNo = 1;
+        this.pageSize = 10;
+        this.elementOrder = 0;
+        this.riskCode = "DAA";
+        this.comCode = comCode;
+        this.userCode = userCode;
+        this.elementLength = 1;
+    }
+
+}

+ 65 - 0
tenant/insurance/quotation-renbao/src/main/java/com/jzg/quotation/renbao/crawler/entity/request/RenBaoCrawlerQueryHandler1CodeRequest.java

@@ -0,0 +1,65 @@
+package com.jzg.quotation.renbao.crawler.entity.request;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * @description: TODO 
+ * @author wks
+ * @date 2025/12/4 15:34
+ * @version 1.0
+ */
+@NoArgsConstructor
+@Data
+public class RenBaoCrawlerQueryHandler1CodeRequest {
+
+
+    @JsonProperty("pageNo")
+    private Integer pageNo;
+
+    @JsonProperty("pageSize")
+    private Integer pageSize;
+
+    @JsonProperty("comCode")
+    private String comCode;
+
+    @JsonProperty("inputValue")
+    private String inputValue;
+
+    @JsonProperty("translateFlag")
+    private Boolean translateFlag;
+
+    @JsonProperty("interruptsFlag")
+    private Boolean interruptsFlag;
+
+    @JsonProperty("userType")
+    private String userType;
+
+    @JsonProperty("riskCode")
+    private String riskCode;
+
+    @JsonProperty("userCode")
+    private String userCode;
+
+    @JsonProperty("typeParam")
+    private String typeParam;
+
+    @JsonProperty("fuzzyFlag")
+    private Boolean fuzzyFlag;
+
+    public RenBaoCrawlerQueryHandler1CodeRequest(String userCode, String comCode, String ownershipCode) {
+        this.pageNo = 1;
+        this.pageSize = 10;
+        this.comCode = comCode;
+        this.inputValue = ownershipCode;
+        this.translateFlag = false;
+        this.interruptsFlag = true;
+        this.userType = "GROUP";
+        this.riskCode = "DAA";
+        this.userCode = userCode;
+        this.typeParam = "";
+        this.fuzzyFlag = true;
+
+    }
+}

+ 44 - 0
tenant/insurance/quotation-renbao/src/main/java/com/jzg/quotation/renbao/crawler/entity/request/RenBaoCrawlerQueryHandlerCodeRequest.java

@@ -0,0 +1,44 @@
+package com.jzg.quotation.renbao.crawler.entity.request;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * @description: TODO 
+ * @author wks
+ * @date 2025/12/4 15:34
+ * @version 1.0
+ */
+@NoArgsConstructor
+@Data
+public class RenBaoCrawlerQueryHandlerCodeRequest {
+
+    @JsonProperty("pageNo")
+    private Integer pageNo;
+
+    @JsonProperty("pageSize")
+    private Integer pageSize;
+
+    @JsonProperty("comCode")
+    private String comCode;
+
+    @JsonProperty("fieldValue")
+    private String fieldValue;
+
+    @JsonProperty("provinceCodeFlag")
+    private Integer provinceCodeFlag;
+
+    @JsonProperty("riskCode")
+    private String riskCode;
+
+
+    public RenBaoCrawlerQueryHandlerCodeRequest(String comCode, String managerCode) {
+        this.pageNo = 1;
+        this.pageSize = 10;
+        this.comCode = comCode;
+        this.fieldValue = managerCode;
+        this.provinceCodeFlag = 0;
+        this.riskCode = "DAA";
+    }
+}

+ 57 - 0
tenant/insurance/quotation-renbao/src/main/java/com/jzg/quotation/renbao/crawler/entity/request/RenBaoCrawlerQueryServiceManagerRequest.java

@@ -0,0 +1,57 @@
+package com.jzg.quotation.renbao.crawler.entity.request;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+
+/**
+ * @description: TODO 
+ * @author wks
+ * @date 2025/12/4 15:34
+ * @version 1.0
+ */
+@NoArgsConstructor
+@Data
+public class RenBaoCrawlerQueryServiceManagerRequest {
+
+
+    @JsonProperty("comCode")
+    private String comCode;
+
+    @JsonProperty("xiaComcode")
+    private String xiaComcode;
+
+    @JsonProperty("userCode")
+    private String userCode;
+
+    @JsonProperty("remarkcomFlag")
+    private String remarkcomFlag;
+
+    @JsonProperty("userClassificationCode")
+    private String userClassificationCode;
+
+    @JsonProperty("identyfyNumber")
+    private String identyfyNumber;
+
+    @JsonProperty("pageNo")
+    private Integer pageNo;
+
+    @JsonProperty("pageSize")
+    private Integer pageSize;
+
+    @JsonProperty("productRange")
+    private String productRange;
+
+    public RenBaoCrawlerQueryServiceManagerRequest(String comCode, String carInspectorCode) {
+        this.comCode = comCode;
+        this.xiaComcode = "1";
+        this.userCode = carInspectorCode;
+        this.remarkcomFlag = "0";
+        this.userClassificationCode = "";
+        this.identyfyNumber = "";
+        this.pageNo = 1;
+        this.pageSize = 10;
+        this.productRange = "0";
+    }
+}

+ 72 - 0
tenant/insurance/quotation-renbao/src/main/java/com/jzg/quotation/renbao/crawler/entity/request/RenBaoCrawlerVehicleQueryRequest.java

@@ -0,0 +1,72 @@
+package com.jzg.quotation.renbao.crawler.entity.request;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * @description: TODO 
+ * @author wks
+ * @date 2025/12/4 15:34
+ * @version 1.0
+ */
+@NoArgsConstructor
+@Data
+public class RenBaoCrawlerVehicleQueryRequest {
+
+    @JsonProperty("brandName")
+    private String brandName;
+
+    @JsonProperty("modelCode")
+    private String modelCode;
+
+    @JsonProperty("modelCode1")
+    private String modelCode1;
+
+    @JsonProperty("comCode")
+    private String comCode;
+
+    @JsonProperty("userCode")
+    private String userCode;
+
+    @JsonProperty("pageNo")
+    private Integer pageNo;
+
+    @JsonProperty("pageSize")
+    private Integer pageSize;
+
+    @JsonProperty("vinNo")
+    private String vinNo;
+
+    @JsonProperty("licenseNo")
+    private String licenseNo;
+
+    @JsonProperty("searchCode")
+    private String searchCode;
+
+    @JsonProperty("vehicleAlias")
+    private String vehicleAlias;
+
+    @JsonProperty("brandId")
+    private String brandId;
+
+    @JsonProperty("vehicleName")
+    private String vehicleName;
+
+    public RenBaoCrawlerVehicleQueryRequest(String comCode, String userCode, String brandName) {
+        this.brandName = brandName;
+        this.modelCode = "";
+        this.modelCode1 = "";
+        this.comCode = comCode;
+        this.userCode = userCode;
+        this.pageNo = 1;
+        this.pageSize = 50;
+        this.vinNo = "";
+        this.licenseNo = "";
+        this.searchCode = "";
+        this.vehicleAlias = "";
+        this.brandId = "";
+        this.vehicleName = "";
+    }
+
+}

+ 34 - 0
tenant/insurance/quotation-renbao/src/main/java/com/jzg/quotation/renbao/crawler/entity/response/RenBaoCrawlerBaseResponse.java

@@ -0,0 +1,34 @@
+package com.jzg.quotation.renbao.crawler.entity.response;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.util.List;
+
+@NoArgsConstructor
+@Data
+public class RenBaoCrawlerBaseResponse<T> implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 2962272596813388333L;
+
+    @JsonProperty("status")
+    private Integer status;
+
+    @JsonProperty("statusText")
+    private String statusText;
+
+    @JsonProperty("message")
+    private String message;
+
+    @JsonProperty("timestamp")
+    private Long timestamp;
+
+    @JsonProperty("data")
+    private T data;
+
+
+}

+ 2710 - 0
tenant/insurance/quotation-renbao/src/main/java/com/jzg/quotation/renbao/crawler/entity/response/RenBaoCrawlerCaculatePremiumData.java

@@ -0,0 +1,2710 @@
+package com.jzg.quotation.renbao.crawler.entity.response;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.List;
+
+/**
+ * @description: TODO 
+ * @author wks
+ * @date 2025/12/4 15:34
+ * @version 1.0
+ */
+@NoArgsConstructor
+@Data
+public class RenBaoCrawlerCaculatePremiumData {
+
+
+    @JsonProperty("prpCitemCarExt")
+    private PrpCitemCarExtDTO prpCitemCarExt;
+
+    @JsonProperty("coinsInfoRspCIList")
+    private Object coinsInfoRspCIList;
+
+    @JsonProperty("response_code")
+    private String responseCode;
+
+    @JsonProperty("CarQuoteRiskItemBIRsp")
+    private CarQuoteRiskItemBIRspDTO carQuoteRiskItemBIRsp;
+
+    @JsonProperty("DAA")
+    private DAADTO daa;
+
+    @JsonProperty("Commission")
+    private List<CommissionDTO> commission;
+
+    @JsonProperty("coinsInfoRspBIList")
+    private Object coinsInfoRspBIList;
+
+    @JsonProperty("DZA")
+    private DZADTO dza;
+
+    @JsonProperty("carQuoteAgentDataResultRsp")
+    private CarQuoteAgentDataResultRspDTO carQuoteAgentDataResultRsp;
+
+    @JsonProperty("error")
+    private String error;
+
+    @JsonProperty("prpQmain")
+    private PrpQmainDTO prpQmain;
+
+    @JsonProperty("prpCarShipTaxVo")
+    private PrpCarShipTaxVoDTO prpCarShipTaxVo;
+
+    @JsonProperty("CarQuoteRiskItemCIRsp")
+    private CarQuoteRiskItemCIRspDTO carQuoteRiskItemCIRsp;
+
+    @JsonProperty("carQuoteAgentDataRsp")
+    private CarQuoteAgentDataRspDTO carQuoteAgentDataRsp;
+
+    @JsonProperty("prpCinsureds")
+    private List<PrpCinsuredsDTO> prpCinsureds;
+
+    @JsonProperty("ReinsureFlag")
+    private String reinsureFlag;
+
+    @JsonProperty("prpQmainCI")
+    private PrpQmainCIDTO prpQmainCI;
+
+    @JsonProperty("CarQuoteAccidentCIRspList")
+    private List<CarQuoteAccidentCIRspListDTO> carQuoteAccidentCIRspList;
+
+    @JsonProperty("prpQmainDDA")
+    private PrpQmainDDADTO prpQmainDDA;
+
+    @NoArgsConstructor
+    @Data
+    public static class PrpCitemCarExtDTO {
+        @JsonProperty("riskCode")
+        private Object riskCode;
+
+        @JsonProperty("lastDamagedA")
+        private Object lastDamagedA;
+
+        @JsonProperty("lastDamagedB")
+        private Object lastDamagedB;
+
+        @JsonProperty("lastDamagedBI")
+        private Integer lastDamagedBI;
+
+        @JsonProperty("lastDamagedCI")
+        private Object lastDamagedCI;
+
+        @JsonProperty("lastOffenceCI")
+        private Object lastOffenceCI;
+
+        @JsonProperty("thisDamagedA")
+        private Object thisDamagedA;
+
+        @JsonProperty("thisDamagedB")
+        private Object thisDamagedB;
+
+        @JsonProperty("thisDamagedBI")
+        private Integer thisDamagedBI;
+
+        @JsonProperty("thisDamagedCI")
+        private Object thisDamagedCI;
+
+        @JsonProperty("thisOffenceCI")
+        private Object thisOffenceCI;
+
+        @JsonProperty("noDamYearsBI")
+        private Integer noDamYearsBI;
+
+        @JsonProperty("noDamYearsCI")
+        private Object noDamYearsCI;
+
+        @JsonProperty("noOffYearsCI")
+        private Object noOffYearsCI;
+
+        @JsonProperty("damFloatRatioCI")
+        private Object damFloatRatioCI;
+
+        @JsonProperty("offFloatRatioCI")
+        private Object offFloatRatioCI;
+
+        @JsonProperty("rateRloatFlag")
+        private Object rateRloatFlag;
+
+        @JsonProperty("flag")
+        private Object flag;
+
+        @JsonProperty("standardUseNature")
+        private String standardUseNature;
+
+        @JsonProperty("standardUseNatureDes")
+        private String standardUseNatureDes;
+    }
+
+    @NoArgsConstructor
+    @Data
+    public static class CarQuoteRiskItemBIRspDTO {
+        @JsonProperty("claimAdjustReason")
+        private Object claimAdjustReason;
+
+        @JsonProperty("claimNoAdjustReason")
+        private Object claimNoAdjustReason;
+
+        @JsonProperty("loyalltyAdjustReason")
+        private Object loyalltyAdjustReason;
+
+        @JsonProperty("noPeccancyAdjustReason")
+        private Object noPeccancyAdjustReason;
+
+        @JsonProperty("noDamageYearsBIPlat")
+        private String noDamageYearsBIPlat;
+
+        @JsonProperty("claimAdjustValue")
+        private String claimAdjustValue;
+
+        @JsonProperty("peccancyAdjustValue")
+        private String peccancyAdjustValue;
+
+        @JsonProperty("insureYears")
+        private Integer insureYears;
+
+        @JsonProperty("claimTimes")
+        private Integer claimTimes;
+
+        @JsonProperty("demandNo")
+        private String demandNo;
+
+        @JsonProperty("validNo")
+        private Object validNo;
+
+        @JsonProperty("claimAdjustLevel")
+        private String claimAdjustLevel;
+
+        @JsonProperty("demandTime")
+        private String demandTime;
+
+        @JsonProperty("validTime")
+        private Object validTime;
+    }
+
+    @NoArgsConstructor
+    @Data
+    public static class DAADTO {
+        @JsonProperty("profits")
+        private Double profits;
+
+        @JsonProperty("cost")
+        private Double cost;
+
+        @JsonProperty("taxOrAppend")
+        private Object taxOrAppend;
+
+        @JsonProperty("payMentR")
+        private Object payMentR;
+
+        @JsonProperty("basePayMentR")
+        private Double basePayMentR;
+
+        @JsonProperty("poundage")
+        private Object poundage;
+
+        @JsonProperty("signPremium")
+        private Object signPremium;
+
+        @JsonProperty("isQuotation")
+        private Object isQuotation;
+
+        @JsonProperty("riskClass")
+        private String riskClass;
+
+        @JsonProperty("operationInfo")
+        private String operationInfo;
+
+        @JsonProperty("piccscoreStarLevel")
+        private Object piccscoreStarLevel;
+
+        @JsonProperty("flag")
+        private Object flag;
+
+        @JsonProperty("discount")
+        private Double discount;
+
+        @JsonProperty("basePremium")
+        private Double basePremium;
+
+        @JsonProperty("remark")
+        private String remark;
+
+        @JsonProperty("qualityClassify")
+        private Object qualityClassify;
+
+        @JsonProperty("riskCode")
+        private String riskCode;
+
+        @JsonProperty("riskPremium")
+        private Object riskPremium;
+    }
+
+    @NoArgsConstructor
+    @Data
+    public static class DZADTO {
+        @JsonProperty("profits")
+        private Double profits;
+
+        @JsonProperty("cost")
+        private Double cost;
+
+        @JsonProperty("taxOrAppend")
+        private Object taxOrAppend;
+
+        @JsonProperty("payMentR")
+        private Object payMentR;
+
+        @JsonProperty("basePayMentR")
+        private Double basePayMentR;
+
+        @JsonProperty("poundage")
+        private Object poundage;
+
+        @JsonProperty("signPremium")
+        private Object signPremium;
+
+        @JsonProperty("isQuotation")
+        private Object isQuotation;
+
+        @JsonProperty("riskClass")
+        private Object riskClass;
+
+        @JsonProperty("operationInfo")
+        private String operationInfo;
+
+        @JsonProperty("piccscoreStarLevel")
+        private Object piccscoreStarLevel;
+
+        @JsonProperty("flag")
+        private Object flag;
+
+        @JsonProperty("discount")
+        private Double discount;
+
+        @JsonProperty("basePremium")
+        private Double basePremium;
+
+        @JsonProperty("remark")
+        private String remark;
+
+        @JsonProperty("riskCode")
+        private String riskCode;
+
+        @JsonProperty("riskPremium")
+        private Object riskPremium;
+    }
+
+    @NoArgsConstructor
+    @Data
+    public static class CarQuoteAgentDataResultRspDTO {
+        @JsonProperty("checkDataSource")
+        private Object checkDataSource;
+
+        @JsonProperty("checkResultDesc")
+        private Object checkResultDesc;
+
+        @JsonProperty("checkResult")
+        private Object checkResult;
+    }
+
+    @NoArgsConstructor
+    @Data
+    public static class PrpQmainDTO {
+        @JsonProperty("quotationNo")
+        private String quotationNo;
+
+        @JsonProperty("proposalNo")
+        private Object proposalNo;
+
+        @JsonProperty("classCode")
+        private Object classCode;
+
+        @JsonProperty("riskCode")
+        private String riskCode;
+
+        @JsonProperty("contractNo")
+        private Object contractNo;
+
+        @JsonProperty("policySort")
+        private Object policySort;
+
+        @JsonProperty("businessNature")
+        private Object businessNature;
+
+        @JsonProperty("language")
+        private Object language;
+
+        @JsonProperty("policyType")
+        private Object policyType;
+
+        @JsonProperty("operateDate")
+        private Object operateDate;
+
+        @JsonProperty("startDate")
+        private Object startDate;
+
+        @JsonProperty("startHour")
+        private Object startHour;
+
+        @JsonProperty("endDate")
+        private Object endDate;
+
+        @JsonProperty("endHour")
+        private Object endHour;
+
+        @JsonProperty("pureRate")
+        private Integer pureRate;
+
+        @JsonProperty("disRate")
+        private Double disRate;
+
+        @JsonProperty("disAmount")
+        private Double disAmount;
+
+        @JsonProperty("discount")
+        private Double discount;
+
+        @JsonProperty("currency1")
+        private Object currency1;
+
+        @JsonProperty("sumValue")
+        private Object sumValue;
+
+        @JsonProperty("sumAmount")
+        private Object sumAmount;
+
+        @JsonProperty("sumDiscount")
+        private Object sumDiscount;
+
+        @JsonProperty("sumPremium")
+        private Double sumPremium;
+
+        @JsonProperty("sumSubPrem")
+        private Object sumSubPrem;
+
+        @JsonProperty("sumQuantity")
+        private Object sumQuantity;
+
+        @JsonProperty("judicalScope")
+        private Object judicalScope;
+
+        @JsonProperty("autoTransRenewFlag")
+        private Object autoTransRenewFlag;
+
+        @JsonProperty("argueSolution")
+        private Object argueSolution;
+
+        @JsonProperty("arbitBoardName")
+        private Object arbitBoardName;
+
+        @JsonProperty("payTimes")
+        private Object payTimes;
+
+        @JsonProperty("comCode")
+        private Object comCode;
+
+        @JsonProperty("makeCom")
+        private Object makeCom;
+
+        @JsonProperty("jfeeFlag")
+        private Object jfeeFlag;
+
+        @JsonProperty("handler1Code")
+        private Object handler1Code;
+
+        @JsonProperty("agentCode")
+        private Object agentCode;
+
+        @JsonProperty("operateSite")
+        private Object operateSite;
+
+        @JsonProperty("handlerCode")
+        private Object handlerCode;
+
+        @JsonProperty("approverCode")
+        private Object approverCode;
+
+        @JsonProperty("underWriteCode")
+        private Object underWriteCode;
+
+        @JsonProperty("underWriteName")
+        private Object underWriteName;
+
+        @JsonProperty("projectCode")
+        private Object projectCode;
+
+        @JsonProperty("policyRelCode")
+        private Object policyRelCode;
+
+        @JsonProperty("policyRelName")
+        private Object policyRelName;
+
+        @JsonProperty("operatorCode")
+        private Object operatorCode;
+
+        @JsonProperty("updateTime")
+        private Object updateTime;
+
+        @JsonProperty("inputTime")
+        private Object inputTime;
+
+        @JsonProperty("underWriteEndDate")
+        private Object underWriteEndDate;
+
+        @JsonProperty("statisticsYM")
+        private Object statisticsYM;
+
+        @JsonProperty("coinsFlag")
+        private Object coinsFlag;
+
+        @JsonProperty("reinsFlag")
+        private Object reinsFlag;
+
+        @JsonProperty("allinsFlag")
+        private Object allinsFlag;
+
+        @JsonProperty("underWriteFlag")
+        private Object underWriteFlag;
+
+        @JsonProperty("undwrtSubmitDate")
+        private Object undwrtSubmitDate;
+
+        @JsonProperty("othFlag")
+        private Object othFlag;
+
+        @JsonProperty("insertTimeForHis")
+        private Object insertTimeForHis;
+
+        @JsonProperty("operateTimeForHis")
+        private Object operateTimeForHis;
+
+        @JsonProperty("flag")
+        private Object flag;
+
+        @JsonProperty("checkUpCode")
+        private Object checkUpCode;
+
+        @JsonProperty("checkFlag")
+        private Object checkFlag;
+
+        @JsonProperty("checkOpinion")
+        private Object checkOpinion;
+
+        @JsonProperty("remark")
+        private Object remark;
+
+        @JsonProperty("checkCode")
+        private Object checkCode;
+
+        @JsonProperty("dmFlag")
+        private Object dmFlag;
+
+        @JsonProperty("undwrtsubmitdate")
+        private Object undwrtsubmitdate;
+
+        @JsonProperty("renewalNo")
+        private Object renewalNo;
+
+        @JsonProperty("sumInsuredType")
+        private Object sumInsuredType;
+
+        @JsonProperty("prpallFlag")
+        private Object prpallFlag;
+
+        @JsonProperty("reinsuranceFlag")
+        private Object reinsuranceFlag;
+
+        @JsonProperty("fixAtionResult")
+        private Object fixAtionResult;
+
+        @JsonProperty("isCalculateFlag")
+        private Object isCalculateFlag;
+
+        @JsonProperty("renewalflag")
+        private Object renewalflag;
+
+        @JsonProperty("payStartDate")
+        private Object payStartDate;
+
+        @JsonProperty("payEndDate")
+        private Object payEndDate;
+
+        @JsonProperty("resureFundFee")
+        private Object resureFundFee;
+
+        @JsonProperty("ext2")
+        private Object ext2;
+
+        @JsonProperty("ext3")
+        private Object ext3;
+
+        @JsonProperty("agriFlag")
+        private Object agriFlag;
+
+        @JsonProperty("sumBenchPremium")
+        private Double sumBenchPremium;
+
+        @JsonProperty("sumNetPremium")
+        private Double sumNetPremium;
+
+        @JsonProperty("sumTaxPremium")
+        private Double sumTaxPremium;
+
+        @JsonProperty("sumPayTax")
+        private Object sumPayTax;
+
+        @JsonProperty("newCarFlag")
+        private String newCarFlag;
+
+        @JsonProperty("prePayTaxYear")
+        private Object prePayTaxYear;
+
+        @JsonProperty("prePolicyEndDate")
+        private Object prePolicyEndDate;
+
+        @JsonProperty("prpQcarShipTaxeVos")
+        private List<?> prpQcarShipTaxeVos;
+
+        @JsonProperty("prpQitemCarVos")
+        private List<?> prpQitemCarVos;
+
+        @JsonProperty("prpQinsuredVos")
+        private List<?> prpQinsuredVos;
+
+        @JsonProperty("prpQitemKindVos")
+        private List<PrpQitemKindVosDTO> prpQitemKindVos;
+
+        @JsonProperty("carQuoteCarDeviceVos")
+        private List<?> carQuoteCarDeviceVos;
+
+        @JsonProperty("prpQcommissionVos")
+        private List<?> prpQcommissionVos;
+
+        @JsonProperty("prpQengageVos")
+        private List<?> prpQengageVos;
+
+        @JsonProperty("prpQprofitFactorVos")
+        private List<PrpQprofitFactorVosDTO> prpQprofitFactorVos;
+
+        @JsonProperty("prpInsuredVos")
+        private List<?> prpInsuredVos;
+
+        @JsonProperty("requesterCode")
+        private Object requesterCode;
+
+        @JsonProperty("taxType")
+        private Object taxType;
+
+        @JsonProperty("taxUnitAmount")
+        private Object taxUnitAmount;
+
+        @JsonProperty("taxUnit")
+        private Object taxUnit;
+
+        @JsonProperty("thisPayTax")
+        private Object thisPayTax;
+
+        @JsonProperty("prePayTax")
+        private Object prePayTax;
+
+        @JsonProperty("delayPayTax")
+        private Object delayPayTax;
+
+        @JsonProperty("biPayTax")
+        private Object biPayTax;
+
+        @JsonProperty("oldPolicyNoBI")
+        private Object oldPolicyNoBI;
+
+        @JsonProperty("oldPolicyNoCI")
+        private Object oldPolicyNoCI;
+
+        @JsonProperty("marketFeeRate")
+        private Double marketFeeRate;
+
+        @JsonProperty("saleFeeRateMax")
+        private Object saleFeeRateMax;
+
+        @JsonProperty("ciPayTax")
+        private Object ciPayTax;
+
+        @JsonProperty("piccscore")
+        private String piccscore;
+
+        @JsonProperty("lastEffectiveDateBI")
+        private Object lastEffectiveDateBI;
+
+        @JsonProperty("lastExpireDateBI")
+        private Object lastExpireDateBI;
+
+        @JsonProperty("lastInsurerCode")
+        private String lastInsurerCode;
+
+        @JsonProperty("lastEffectiveDateCI")
+        private Object lastEffectiveDateCI;
+
+        @JsonProperty("lastExpireDateCI")
+        private Object lastExpireDateCI;
+
+        @JsonProperty("isExistingCustomer")
+        private Object isExistingCustomer;
+
+        @NoArgsConstructor
+        @Data
+        public static class PrpQitemKindVosDTO {
+            @JsonProperty("quotationNo")
+            private Object quotationNo;
+
+            @JsonProperty("itemKindNo")
+            private Integer itemKindNo;
+
+            @JsonProperty("prpQmain")
+            private Object prpQmain;
+
+            @JsonProperty("riskCode")
+            private Object riskCode;
+
+            @JsonProperty("clauseCode")
+            private Object clauseCode;
+
+            @JsonProperty("kindCode")
+            private String kindCode;
+
+            @JsonProperty("itemNo")
+            private Object itemNo;
+
+            @JsonProperty("familyNo")
+            private Object familyNo;
+
+            @JsonProperty("familyName")
+            private Object familyName;
+
+            @JsonProperty("kindName")
+            private Object kindName;
+
+            @JsonProperty("kindCName")
+            private Object kindCName;
+
+            @JsonProperty("itemCode")
+            private Object itemCode;
+
+            @JsonProperty("itemDetailName")
+            private Object itemDetailName;
+
+            @JsonProperty("modeCode")
+            private Object modeCode;
+
+            @JsonProperty("modeName")
+            private Object modeName;
+
+            @JsonProperty("startDate")
+            private Object startDate;
+
+            @JsonProperty("startHour")
+            private Object startHour;
+
+            @JsonProperty("endDate")
+            private Object endDate;
+
+            @JsonProperty("endHour")
+            private Object endHour;
+
+            @JsonProperty("model")
+            private Object model;
+
+            @JsonProperty("buyDate")
+            private Object buyDate;
+
+            @JsonProperty("addressNo")
+            private Object addressNo;
+
+            @JsonProperty("calculateFlag")
+            private Object calculateFlag;
+
+            @JsonProperty("currency")
+            private Object currency;
+
+            @JsonProperty("unitAmount")
+            private Object unitAmount;
+
+            @JsonProperty("quantity")
+            private Object quantity;
+
+            @JsonProperty("unit")
+            private Object unit;
+
+            @JsonProperty("value")
+            private Object value;
+
+            @JsonProperty("amount")
+            private Double amount;
+
+            @JsonProperty("ratePeriod")
+            private Object ratePeriod;
+
+            @JsonProperty("rate")
+            private Object rate;
+
+            @JsonProperty("shortRateFlag")
+            private Object shortRateFlag;
+
+            @JsonProperty("shortRate")
+            private Object shortRate;
+
+            @JsonProperty("basePremium")
+            private Object basePremium;
+
+            @JsonProperty("benchMarkPremium")
+            private Double benchMarkPremium;
+
+            @JsonProperty("discount")
+            private Double discount;
+
+            @JsonProperty("adjustRate")
+            private Object adjustRate;
+
+            @JsonProperty("premium")
+            private Double premium;
+
+            @JsonProperty("deductibleRate")
+            private Integer deductibleRate;
+
+            @JsonProperty("deductible")
+            private Object deductible;
+
+            @JsonProperty("insertTimeForHis")
+            private Object insertTimeForHis;
+
+            @JsonProperty("operateTimeForHis")
+            private Object operateTimeForHis;
+
+            @JsonProperty("flag")
+            private Object flag;
+
+            @JsonProperty("projectCode")
+            private Object projectCode;
+
+            @JsonProperty("currency1")
+            private Object currency1;
+
+            @JsonProperty("exchange1")
+            private Object exchange1;
+
+            @JsonProperty("premium1")
+            private Object premium1;
+
+            @JsonProperty("amount1")
+            private Object amount1;
+
+            @JsonProperty("currency2")
+            private Object currency2;
+
+            @JsonProperty("exchange2")
+            private Object exchange2;
+
+            @JsonProperty("premium2")
+            private Object premium2;
+
+            @JsonProperty("amount2")
+            private Object amount2;
+
+            @JsonProperty("currency3")
+            private Object currency3;
+
+            @JsonProperty("exchange3")
+            private Object exchange3;
+
+            @JsonProperty("amount3")
+            private Object amount3;
+
+            @JsonProperty("premium3")
+            private Object premium3;
+
+            @JsonProperty("display")
+            private Object display;
+
+            @JsonProperty("relateSpecial")
+            private Object relateSpecial;
+
+            @JsonProperty("coachCar")
+            private Object coachCar;
+
+            @JsonProperty("coachCarFlag")
+            private Object coachCarFlag;
+
+            @JsonProperty("chooseFlag")
+            private Object chooseFlag;
+
+            @JsonProperty("specialFlag")
+            private Object specialFlag;
+
+            @JsonProperty("netPremium")
+            private Double netPremium;
+
+            @JsonProperty("taxPremium")
+            private Double taxPremium;
+
+            @JsonProperty("taxRate")
+            private Double taxRate;
+
+            @JsonProperty("dutyFlag")
+            private String dutyFlag;
+
+            @JsonProperty("pureRiskPremium")
+            private Object pureRiskPremium;
+
+            @JsonProperty("prpQcommissionVos")
+            private List<?> prpQcommissionVos;
+
+            @JsonProperty("clauseName")
+            private Object clauseName;
+        }
+
+        @NoArgsConstructor
+        @Data
+        public static class PrpQprofitFactorVosDTO {
+            @JsonProperty("quotationNo")
+            private Object quotationNo;
+
+            @JsonProperty("profitCode")
+            private String profitCode;
+
+            @JsonProperty("serialNo")
+            private Integer serialNo;
+
+            @JsonProperty("conditionCode")
+            private String conditionCode;
+
+            @JsonProperty("prpQmainVo")
+            private Object prpQmainVo;
+
+            @JsonProperty("riskCode")
+            private String riskCode;
+
+            @JsonProperty("profitName")
+            private String profitName;
+
+            @JsonProperty("condition")
+            private String condition;
+
+            @JsonProperty("upperRate")
+            private Double upperRate;
+
+            @JsonProperty("lowerRate")
+            private Double lowerRate;
+
+            @JsonProperty("rate")
+            private Double rate;
+
+            @JsonProperty("chooseFlag")
+            private String chooseFlag;
+
+            @JsonProperty("insertTimeForHis")
+            private Object insertTimeForHis;
+
+            @JsonProperty("operateTimeForHis")
+            private Object operateTimeForHis;
+
+            @JsonProperty("flag")
+            private Object flag;
+        }
+    }
+
+    @NoArgsConstructor
+    @Data
+    public static class PrpCarShipTaxVoDTO {
+        @JsonProperty("id")
+        private Object id;
+
+        @JsonProperty("prpQmain")
+        private Object prpQmain;
+
+        @JsonProperty("riskCode")
+        private Object riskCode;
+
+        @JsonProperty("licenseNo")
+        private Object licenseNo;
+
+        @JsonProperty("licenseType")
+        private Object licenseType;
+
+        @JsonProperty("licenseColorCode")
+        private Object licenseColorCode;
+
+        @JsonProperty("model")
+        private Object model;
+
+        @JsonProperty("carKindCode")
+        private Object carKindCode;
+
+        @JsonProperty("engineNo")
+        private Object engineNo;
+
+        @JsonProperty("vinNo")
+        private Object vinNo;
+
+        @JsonProperty("frameNo")
+        private Object frameNo;
+
+        @JsonProperty("enrollDate")
+        private Object enrollDate;
+
+        @JsonProperty("seatCount")
+        private Object seatCount;
+
+        @JsonProperty("carLotEquQuality")
+        private Object carLotEquQuality;
+
+        @JsonProperty("taxPayerCode")
+        private Object taxPayerCode;
+
+        @JsonProperty("taxPayerName")
+        private Object taxPayerName;
+
+        @JsonProperty("taxPayerNature")
+        private Object taxPayerNature;
+
+        @JsonProperty("taxPayerIdentNo")
+        private Object taxPayerIdentNo;
+
+        @JsonProperty("taxPayerNumber")
+        private Object taxPayerNumber;
+
+        @JsonProperty("taxType")
+        private Object taxType;
+
+        @JsonProperty("taxExplanation")
+        private Object taxExplanation;
+
+        @JsonProperty("taxAbateReason")
+        private Object taxAbateReason;
+
+        @JsonProperty("taxAbateType")
+        private Object taxAbateType;
+
+        @JsonProperty("taxAbateAmount")
+        private Object taxAbateAmount;
+
+        @JsonProperty("taxComCode")
+        private Object taxComCode;
+
+        @JsonProperty("taxComName")
+        private Object taxComName;
+
+        @JsonProperty("dutyPaidProofNo")
+        private Object dutyPaidProofNo;
+
+        @JsonProperty("taxPrintProofNo")
+        private Object taxPrintProofNo;
+
+        @JsonProperty("taxItemCode")
+        private Object taxItemCode;
+
+        @JsonProperty("taxItemName")
+        private Object taxItemName;
+
+        @JsonProperty("baseTaxation")
+        private Object baseTaxation;
+
+        @JsonProperty("taxUnit")
+        private Object taxUnit;
+
+        @JsonProperty("taxUnitAmount")
+        private Object taxUnitAmount;
+
+        @JsonProperty("prePayTaxYear")
+        private Object prePayTaxYear;
+
+        @JsonProperty("prePolicyEndDate")
+        private Object prePolicyEndDate;
+
+        @JsonProperty("currency")
+        private Object currency;
+
+        @JsonProperty("thisPayTax")
+        private Object thisPayTax;
+
+        @JsonProperty("payStartDate")
+        private Object payStartDate;
+
+        @JsonProperty("payEndDate")
+        private Object payEndDate;
+
+        @JsonProperty("prePayTax")
+        private Object prePayTax;
+
+        @JsonProperty("delayPayTax")
+        private Object delayPayTax;
+
+        @JsonProperty("delayStartDate")
+        private Object delayStartDate;
+
+        @JsonProperty("delayEndDate")
+        private Object delayEndDate;
+
+        @JsonProperty("sumPayTax")
+        private Object sumPayTax;
+
+        @JsonProperty("leviedDate")
+        private Object leviedDate;
+
+        @JsonProperty("extendChar1")
+        private Object extendChar1;
+
+        @JsonProperty("extendChar2")
+        private Object extendChar2;
+
+        @JsonProperty("extendNum1")
+        private Object extendNum1;
+
+        @JsonProperty("extendNum2")
+        private Object extendNum2;
+
+        @JsonProperty("remark")
+        private Object remark;
+
+        @JsonProperty("insertTimeForHis")
+        private Object insertTimeForHis;
+
+        @JsonProperty("operateTimeForHis")
+        private Object operateTimeForHis;
+
+        @JsonProperty("flag")
+        private Object flag;
+
+        @JsonProperty("taxRelifFlag")
+        private Object taxRelifFlag;
+
+        @JsonProperty("calculateMode")
+        private Object calculateMode;
+
+        @JsonProperty("taxAbateRate")
+        private Object taxAbateRate;
+
+        @JsonProperty("isType02Lice")
+        private Object isType02Lice;
+
+        @JsonProperty("type02LiceYExaMon")
+        private Object type02LiceYExaMon;
+
+        @JsonProperty("finesTax")
+        private Object finesTax;
+
+        @JsonProperty("isHangOnWhether")
+        private Object isHangOnWhether;
+
+        @JsonProperty("alwaysQuality")
+        private Object alwaysQuality;
+
+        @JsonProperty("identifyTypeTax")
+        private Object identifyTypeTax;
+
+        @JsonProperty("carKindCodeTax")
+        private Object carKindCodeTax;
+
+        @JsonProperty("licenseTypeTax")
+        private Object licenseTypeTax;
+
+        @JsonProperty("drivLicenseCode")
+        private Object drivLicenseCode;
+
+        @JsonProperty("taxPayerType")
+        private Object taxPayerType;
+
+        @JsonProperty("taxPayerNo")
+        private Object taxPayerNo;
+
+        @JsonProperty("sumRefundTax")
+        private Object sumRefundTax;
+    }
+
+    @NoArgsConstructor
+    @Data
+    public static class CarQuoteRiskItemCIRspDTO {
+        @JsonProperty("claimAdjustReason")
+        private String claimAdjustReason;
+
+        @JsonProperty("validTime")
+        private Object validTime;
+
+        @JsonProperty("rateRloatFlag")
+        private Object rateRloatFlag;
+
+        @JsonProperty("peccancyAdjustReason")
+        private Object peccancyAdjustReason;
+
+        @JsonProperty("noDamageYearsCIPlat")
+        private String noDamageYearsCIPlat;
+
+        @JsonProperty("demandNo")
+        private String demandNo;
+
+        @JsonProperty("validNo")
+        private Object validNo;
+
+        @JsonProperty("demandTime")
+        private String demandTime;
+    }
+
+    @NoArgsConstructor
+    @Data
+    public static class CarQuoteAgentDataRspDTO {
+        @JsonProperty("licenceNumber")
+        private Object licenceNumber;
+
+        @JsonProperty("orgName")
+        private Object orgName;
+
+        @JsonProperty("organType")
+        private Object organType;
+
+        @JsonProperty("orgNo")
+        private Object orgNo;
+    }
+
+    @NoArgsConstructor
+    @Data
+    public static class PrpQmainCIDTO {
+        @JsonProperty("quotationNo")
+        private String quotationNo;
+
+        @JsonProperty("proposalNo")
+        private Object proposalNo;
+
+        @JsonProperty("classCode")
+        private Object classCode;
+
+        @JsonProperty("riskCode")
+        private String riskCode;
+
+        @JsonProperty("contractNo")
+        private Object contractNo;
+
+        @JsonProperty("policySort")
+        private Object policySort;
+
+        @JsonProperty("businessNature")
+        private Object businessNature;
+
+        @JsonProperty("language")
+        private Object language;
+
+        @JsonProperty("policyType")
+        private Object policyType;
+
+        @JsonProperty("operateDate")
+        private Object operateDate;
+
+        @JsonProperty("startDate")
+        private Object startDate;
+
+        @JsonProperty("startHour")
+        private Object startHour;
+
+        @JsonProperty("endDate")
+        private Object endDate;
+
+        @JsonProperty("endHour")
+        private Object endHour;
+
+        @JsonProperty("pureRate")
+        private Integer pureRate;
+
+        @JsonProperty("disRate")
+        private Double disRate;
+
+        @JsonProperty("disAmount")
+        private Double disAmount;
+
+        @JsonProperty("discount")
+        private Double discount;
+
+        @JsonProperty("currency1")
+        private Object currency1;
+
+        @JsonProperty("sumValue")
+        private Object sumValue;
+
+        @JsonProperty("sumAmount")
+        private Object sumAmount;
+
+        @JsonProperty("sumDiscount")
+        private Object sumDiscount;
+
+        @JsonProperty("sumPremium")
+        private Double sumPremium;
+
+        @JsonProperty("sumSubPrem")
+        private Object sumSubPrem;
+
+        @JsonProperty("sumQuantity")
+        private Object sumQuantity;
+
+        @JsonProperty("judicalScope")
+        private Object judicalScope;
+
+        @JsonProperty("autoTransRenewFlag")
+        private Object autoTransRenewFlag;
+
+        @JsonProperty("argueSolution")
+        private Object argueSolution;
+
+        @JsonProperty("arbitBoardName")
+        private Object arbitBoardName;
+
+        @JsonProperty("payTimes")
+        private Object payTimes;
+
+        @JsonProperty("comCode")
+        private Object comCode;
+
+        @JsonProperty("makeCom")
+        private Object makeCom;
+
+        @JsonProperty("jfeeFlag")
+        private Object jfeeFlag;
+
+        @JsonProperty("handler1Code")
+        private Object handler1Code;
+
+        @JsonProperty("agentCode")
+        private Object agentCode;
+
+        @JsonProperty("operateSite")
+        private Object operateSite;
+
+        @JsonProperty("handlerCode")
+        private Object handlerCode;
+
+        @JsonProperty("approverCode")
+        private Object approverCode;
+
+        @JsonProperty("underWriteCode")
+        private Object underWriteCode;
+
+        @JsonProperty("underWriteName")
+        private Object underWriteName;
+
+        @JsonProperty("projectCode")
+        private Object projectCode;
+
+        @JsonProperty("policyRelCode")
+        private Object policyRelCode;
+
+        @JsonProperty("policyRelName")
+        private Object policyRelName;
+
+        @JsonProperty("operatorCode")
+        private Object operatorCode;
+
+        @JsonProperty("updateTime")
+        private Object updateTime;
+
+        @JsonProperty("inputTime")
+        private Object inputTime;
+
+        @JsonProperty("underWriteEndDate")
+        private Object underWriteEndDate;
+
+        @JsonProperty("statisticsYM")
+        private Object statisticsYM;
+
+        @JsonProperty("coinsFlag")
+        private Object coinsFlag;
+
+        @JsonProperty("reinsFlag")
+        private Object reinsFlag;
+
+        @JsonProperty("allinsFlag")
+        private Object allinsFlag;
+
+        @JsonProperty("underWriteFlag")
+        private Object underWriteFlag;
+
+        @JsonProperty("undwrtSubmitDate")
+        private Object undwrtSubmitDate;
+
+        @JsonProperty("othFlag")
+        private Object othFlag;
+
+        @JsonProperty("insertTimeForHis")
+        private Object insertTimeForHis;
+
+        @JsonProperty("operateTimeForHis")
+        private Object operateTimeForHis;
+
+        @JsonProperty("flag")
+        private Object flag;
+
+        @JsonProperty("checkUpCode")
+        private Object checkUpCode;
+
+        @JsonProperty("checkFlag")
+        private Object checkFlag;
+
+        @JsonProperty("checkOpinion")
+        private Object checkOpinion;
+
+        @JsonProperty("remark")
+        private Object remark;
+
+        @JsonProperty("checkCode")
+        private Object checkCode;
+
+        @JsonProperty("dmFlag")
+        private Object dmFlag;
+
+        @JsonProperty("undwrtsubmitdate")
+        private Object undwrtsubmitdate;
+
+        @JsonProperty("renewalNo")
+        private Object renewalNo;
+
+        @JsonProperty("sumInsuredType")
+        private Object sumInsuredType;
+
+        @JsonProperty("prpallFlag")
+        private Object prpallFlag;
+
+        @JsonProperty("reinsuranceFlag")
+        private Object reinsuranceFlag;
+
+        @JsonProperty("fixAtionResult")
+        private Object fixAtionResult;
+
+        @JsonProperty("isCalculateFlag")
+        private Object isCalculateFlag;
+
+        @JsonProperty("renewalflag")
+        private Object renewalflag;
+
+        @JsonProperty("payStartDate")
+        private String payStartDate;
+
+        @JsonProperty("payEndDate")
+        private String payEndDate;
+
+        @JsonProperty("resureFundFee")
+        private Integer resureFundFee;
+
+        @JsonProperty("ext2")
+        private Object ext2;
+
+        @JsonProperty("ext3")
+        private Object ext3;
+
+        @JsonProperty("agriFlag")
+        private Object agriFlag;
+
+        @JsonProperty("sumBenchPremium")
+        private Object sumBenchPremium;
+
+        @JsonProperty("sumNetPremium")
+        private Double sumNetPremium;
+
+        @JsonProperty("sumTaxPremium")
+        private Double sumTaxPremium;
+
+        @JsonProperty("sumPayTax")
+        private Double sumPayTax;
+
+        @JsonProperty("newCarFlag")
+        private String newCarFlag;
+
+        @JsonProperty("prePayTaxYear")
+        private String prePayTaxYear;
+
+        @JsonProperty("prePolicyEndDate")
+        private Object prePolicyEndDate;
+
+        @JsonProperty("prpQcarShipTaxeVos")
+        private List<?> prpQcarShipTaxeVos;
+
+        @JsonProperty("prpQitemCarVos")
+        private List<?> prpQitemCarVos;
+
+        @JsonProperty("prpQinsuredVos")
+        private List<?> prpQinsuredVos;
+
+        @JsonProperty("prpQitemKindVos")
+        private List<PrpQitemKindVosDTO> prpQitemKindVos;
+
+        @JsonProperty("carQuoteCarDeviceVos")
+        private List<?> carQuoteCarDeviceVos;
+
+        @JsonProperty("prpQcommissionVos")
+        private List<?> prpQcommissionVos;
+
+        @JsonProperty("prpQengageVos")
+        private List<?> prpQengageVos;
+
+        @JsonProperty("prpQprofitFactorVos")
+        private List<?> prpQprofitFactorVos;
+
+        @JsonProperty("prpInsuredVos")
+        private List<?> prpInsuredVos;
+
+        @JsonProperty("requesterCode")
+        private Object requesterCode;
+
+        @JsonProperty("taxType")
+        private String taxType;
+
+        @JsonProperty("taxUnitAmount")
+        private Double taxUnitAmount;
+
+        @JsonProperty("taxUnit")
+        private String taxUnit;
+
+        @JsonProperty("thisPayTax")
+        private Double thisPayTax;
+
+        @JsonProperty("prePayTax")
+        private Double prePayTax;
+
+        @JsonProperty("delayPayTax")
+        private Double delayPayTax;
+
+        @JsonProperty("biPayTax")
+        private Object biPayTax;
+
+        @JsonProperty("oldPolicyNoBI")
+        private Object oldPolicyNoBI;
+
+        @JsonProperty("oldPolicyNoCI")
+        private Object oldPolicyNoCI;
+
+        @JsonProperty("marketFeeRate")
+        private Double marketFeeRate;
+
+        @JsonProperty("saleFeeRateMax")
+        private Object saleFeeRateMax;
+
+        @JsonProperty("ciPayTax")
+        private Object ciPayTax;
+
+        @JsonProperty("piccscore")
+        private String piccscore;
+
+        @JsonProperty("lastEffectiveDateBI")
+        private Object lastEffectiveDateBI;
+
+        @JsonProperty("lastExpireDateBI")
+        private Object lastExpireDateBI;
+
+        @JsonProperty("lastInsurerCode")
+        private Object lastInsurerCode;
+
+        @JsonProperty("lastEffectiveDateCI")
+        private Object lastEffectiveDateCI;
+
+        @JsonProperty("lastExpireDateCI")
+        private Object lastExpireDateCI;
+
+        @JsonProperty("isExistingCustomer")
+        private Object isExistingCustomer;
+
+        @NoArgsConstructor
+        @Data
+        public static class PrpQitemKindVosDTO {
+            @JsonProperty("quotationNo")
+            private Object quotationNo;
+
+            @JsonProperty("itemKindNo")
+            private Integer itemKindNo;
+
+            @JsonProperty("prpQmain")
+            private Object prpQmain;
+
+            @JsonProperty("riskCode")
+            private Object riskCode;
+
+            @JsonProperty("clauseCode")
+            private Object clauseCode;
+
+            @JsonProperty("kindCode")
+            private String kindCode;
+
+            @JsonProperty("itemNo")
+            private Object itemNo;
+
+            @JsonProperty("familyNo")
+            private Object familyNo;
+
+            @JsonProperty("familyName")
+            private Object familyName;
+
+            @JsonProperty("kindName")
+            private Object kindName;
+
+            @JsonProperty("kindCName")
+            private Object kindCName;
+
+            @JsonProperty("itemCode")
+            private Object itemCode;
+
+            @JsonProperty("itemDetailName")
+            private Object itemDetailName;
+
+            @JsonProperty("modeCode")
+            private Object modeCode;
+
+            @JsonProperty("modeName")
+            private Object modeName;
+
+            @JsonProperty("startDate")
+            private Object startDate;
+
+            @JsonProperty("startHour")
+            private Object startHour;
+
+            @JsonProperty("endDate")
+            private Object endDate;
+
+            @JsonProperty("endHour")
+            private Object endHour;
+
+            @JsonProperty("model")
+            private Object model;
+
+            @JsonProperty("buyDate")
+            private Object buyDate;
+
+            @JsonProperty("addressNo")
+            private Object addressNo;
+
+            @JsonProperty("calculateFlag")
+            private Object calculateFlag;
+
+            @JsonProperty("currency")
+            private Object currency;
+
+            @JsonProperty("unitAmount")
+            private Object unitAmount;
+
+            @JsonProperty("quantity")
+            private Object quantity;
+
+            @JsonProperty("unit")
+            private Object unit;
+
+            @JsonProperty("value")
+            private Object value;
+
+            @JsonProperty("amount")
+            private Integer amount;
+
+            @JsonProperty("ratePeriod")
+            private Object ratePeriod;
+
+            @JsonProperty("rate")
+            private Object rate;
+
+            @JsonProperty("shortRateFlag")
+            private Object shortRateFlag;
+
+            @JsonProperty("shortRate")
+            private Object shortRate;
+
+            @JsonProperty("basePremium")
+            private Object basePremium;
+
+            @JsonProperty("benchMarkPremium")
+            private Double benchMarkPremium;
+
+            @JsonProperty("discount")
+            private Double discount;
+
+            @JsonProperty("adjustRate")
+            private Double adjustRate;
+
+            @JsonProperty("premium")
+            private Double premium;
+
+            @JsonProperty("deductibleRate")
+            private Object deductibleRate;
+
+            @JsonProperty("deductible")
+            private Object deductible;
+
+            @JsonProperty("insertTimeForHis")
+            private Object insertTimeForHis;
+
+            @JsonProperty("operateTimeForHis")
+            private Object operateTimeForHis;
+
+            @JsonProperty("flag")
+            private Object flag;
+
+            @JsonProperty("projectCode")
+            private Object projectCode;
+
+            @JsonProperty("currency1")
+            private Object currency1;
+
+            @JsonProperty("exchange1")
+            private Object exchange1;
+
+            @JsonProperty("premium1")
+            private Object premium1;
+
+            @JsonProperty("amount1")
+            private Object amount1;
+
+            @JsonProperty("currency2")
+            private Object currency2;
+
+            @JsonProperty("exchange2")
+            private Object exchange2;
+
+            @JsonProperty("premium2")
+            private Object premium2;
+
+            @JsonProperty("amount2")
+            private Object amount2;
+
+            @JsonProperty("currency3")
+            private Object currency3;
+
+            @JsonProperty("exchange3")
+            private Object exchange3;
+
+            @JsonProperty("amount3")
+            private Object amount3;
+
+            @JsonProperty("premium3")
+            private Object premium3;
+
+            @JsonProperty("display")
+            private Object display;
+
+            @JsonProperty("relateSpecial")
+            private Object relateSpecial;
+
+            @JsonProperty("coachCar")
+            private Object coachCar;
+
+            @JsonProperty("coachCarFlag")
+            private Object coachCarFlag;
+
+            @JsonProperty("chooseFlag")
+            private Object chooseFlag;
+
+            @JsonProperty("specialFlag")
+            private Object specialFlag;
+
+            @JsonProperty("netPremium")
+            private Double netPremium;
+
+            @JsonProperty("taxPremium")
+            private Double taxPremium;
+
+            @JsonProperty("taxRate")
+            private Double taxRate;
+
+            @JsonProperty("dutyFlag")
+            private String dutyFlag;
+
+            @JsonProperty("pureRiskPremium")
+            private Object pureRiskPremium;
+
+            @JsonProperty("prpQcommissionVos")
+            private List<?> prpQcommissionVos;
+
+            @JsonProperty("clauseName")
+            private Object clauseName;
+        }
+    }
+
+    @NoArgsConstructor
+    @Data
+    public static class PrpQmainDDADTO {
+        @JsonProperty("quotationNo")
+        private Object quotationNo;
+
+        @JsonProperty("proposalNo")
+        private Object proposalNo;
+
+        @JsonProperty("classCode")
+        private Object classCode;
+
+        @JsonProperty("riskCode")
+        private Object riskCode;
+
+        @JsonProperty("contractNo")
+        private Object contractNo;
+
+        @JsonProperty("policySort")
+        private Object policySort;
+
+        @JsonProperty("businessNature")
+        private Object businessNature;
+
+        @JsonProperty("language")
+        private Object language;
+
+        @JsonProperty("policyType")
+        private Object policyType;
+
+        @JsonProperty("operateDate")
+        private Object operateDate;
+
+        @JsonProperty("startDate")
+        private Object startDate;
+
+        @JsonProperty("startHour")
+        private Object startHour;
+
+        @JsonProperty("endDate")
+        private Object endDate;
+
+        @JsonProperty("endHour")
+        private Object endHour;
+
+        @JsonProperty("pureRate")
+        private Integer pureRate;
+
+        @JsonProperty("disRate")
+        private Object disRate;
+
+        @JsonProperty("disAmount")
+        private Object disAmount;
+
+        @JsonProperty("discount")
+        private Object discount;
+
+        @JsonProperty("currency1")
+        private Object currency1;
+
+        @JsonProperty("sumValue")
+        private Object sumValue;
+
+        @JsonProperty("sumAmount")
+        private Object sumAmount;
+
+        @JsonProperty("sumDiscount")
+        private Object sumDiscount;
+
+        @JsonProperty("sumPremium")
+        private Object sumPremium;
+
+        @JsonProperty("sumSubPrem")
+        private Object sumSubPrem;
+
+        @JsonProperty("sumQuantity")
+        private Object sumQuantity;
+
+        @JsonProperty("judicalScope")
+        private Object judicalScope;
+
+        @JsonProperty("autoTransRenewFlag")
+        private Object autoTransRenewFlag;
+
+        @JsonProperty("argueSolution")
+        private Object argueSolution;
+
+        @JsonProperty("arbitBoardName")
+        private Object arbitBoardName;
+
+        @JsonProperty("payTimes")
+        private Object payTimes;
+
+        @JsonProperty("comCode")
+        private Object comCode;
+
+        @JsonProperty("makeCom")
+        private Object makeCom;
+
+        @JsonProperty("jfeeFlag")
+        private Object jfeeFlag;
+
+        @JsonProperty("handler1Code")
+        private Object handler1Code;
+
+        @JsonProperty("agentCode")
+        private Object agentCode;
+
+        @JsonProperty("operateSite")
+        private Object operateSite;
+
+        @JsonProperty("handlerCode")
+        private Object handlerCode;
+
+        @JsonProperty("approverCode")
+        private Object approverCode;
+
+        @JsonProperty("underWriteCode")
+        private Object underWriteCode;
+
+        @JsonProperty("underWriteName")
+        private Object underWriteName;
+
+        @JsonProperty("projectCode")
+        private Object projectCode;
+
+        @JsonProperty("policyRelCode")
+        private Object policyRelCode;
+
+        @JsonProperty("policyRelName")
+        private Object policyRelName;
+
+        @JsonProperty("operatorCode")
+        private Object operatorCode;
+
+        @JsonProperty("updateTime")
+        private Object updateTime;
+
+        @JsonProperty("inputTime")
+        private Object inputTime;
+
+        @JsonProperty("underWriteEndDate")
+        private Object underWriteEndDate;
+
+        @JsonProperty("statisticsYM")
+        private Object statisticsYM;
+
+        @JsonProperty("coinsFlag")
+        private Object coinsFlag;
+
+        @JsonProperty("reinsFlag")
+        private Object reinsFlag;
+
+        @JsonProperty("allinsFlag")
+        private Object allinsFlag;
+
+        @JsonProperty("underWriteFlag")
+        private Object underWriteFlag;
+
+        @JsonProperty("undwrtSubmitDate")
+        private Object undwrtSubmitDate;
+
+        @JsonProperty("othFlag")
+        private Object othFlag;
+
+        @JsonProperty("insertTimeForHis")
+        private Object insertTimeForHis;
+
+        @JsonProperty("operateTimeForHis")
+        private Object operateTimeForHis;
+
+        @JsonProperty("flag")
+        private Object flag;
+
+        @JsonProperty("checkUpCode")
+        private Object checkUpCode;
+
+        @JsonProperty("checkFlag")
+        private Object checkFlag;
+
+        @JsonProperty("checkOpinion")
+        private Object checkOpinion;
+
+        @JsonProperty("remark")
+        private Object remark;
+
+        @JsonProperty("checkCode")
+        private Object checkCode;
+
+        @JsonProperty("dmFlag")
+        private Object dmFlag;
+
+        @JsonProperty("undwrtsubmitdate")
+        private Object undwrtsubmitdate;
+
+        @JsonProperty("renewalNo")
+        private Object renewalNo;
+
+        @JsonProperty("sumInsuredType")
+        private Object sumInsuredType;
+
+        @JsonProperty("prpallFlag")
+        private Object prpallFlag;
+
+        @JsonProperty("reinsuranceFlag")
+        private Object reinsuranceFlag;
+
+        @JsonProperty("fixAtionResult")
+        private Object fixAtionResult;
+
+        @JsonProperty("isCalculateFlag")
+        private Object isCalculateFlag;
+
+        @JsonProperty("renewalflag")
+        private Object renewalflag;
+
+        @JsonProperty("payStartDate")
+        private Object payStartDate;
+
+        @JsonProperty("payEndDate")
+        private Object payEndDate;
+
+        @JsonProperty("resureFundFee")
+        private Object resureFundFee;
+
+        @JsonProperty("ext2")
+        private Object ext2;
+
+        @JsonProperty("ext3")
+        private Object ext3;
+
+        @JsonProperty("agriFlag")
+        private Object agriFlag;
+
+        @JsonProperty("sumBenchPremium")
+        private Object sumBenchPremium;
+
+        @JsonProperty("sumNetPremium")
+        private Object sumNetPremium;
+
+        @JsonProperty("sumTaxPremium")
+        private Object sumTaxPremium;
+
+        @JsonProperty("sumPayTax")
+        private Object sumPayTax;
+
+        @JsonProperty("newCarFlag")
+        private Object newCarFlag;
+
+        @JsonProperty("prePayTaxYear")
+        private Object prePayTaxYear;
+
+        @JsonProperty("prePolicyEndDate")
+        private Object prePolicyEndDate;
+
+        @JsonProperty("prpQcarShipTaxeVos")
+        private List<?> prpQcarShipTaxeVos;
+
+        @JsonProperty("prpQitemCarVos")
+        private List<?> prpQitemCarVos;
+
+        @JsonProperty("prpQinsuredVos")
+        private List<?> prpQinsuredVos;
+
+        @JsonProperty("prpQitemKindVos")
+        private List<?> prpQitemKindVos;
+
+        @JsonProperty("carQuoteCarDeviceVos")
+        private List<?> carQuoteCarDeviceVos;
+
+        @JsonProperty("prpQcommissionVos")
+        private List<?> prpQcommissionVos;
+
+        @JsonProperty("prpQengageVos")
+        private List<?> prpQengageVos;
+
+        @JsonProperty("prpQprofitFactorVos")
+        private List<?> prpQprofitFactorVos;
+
+        @JsonProperty("prpInsuredVos")
+        private List<?> prpInsuredVos;
+
+        @JsonProperty("requesterCode")
+        private Object requesterCode;
+
+        @JsonProperty("taxType")
+        private Object taxType;
+
+        @JsonProperty("taxUnitAmount")
+        private Object taxUnitAmount;
+
+        @JsonProperty("taxUnit")
+        private Object taxUnit;
+
+        @JsonProperty("thisPayTax")
+        private Object thisPayTax;
+
+        @JsonProperty("prePayTax")
+        private Object prePayTax;
+
+        @JsonProperty("delayPayTax")
+        private Object delayPayTax;
+
+        @JsonProperty("biPayTax")
+        private Object biPayTax;
+
+        @JsonProperty("oldPolicyNoBI")
+        private Object oldPolicyNoBI;
+
+        @JsonProperty("oldPolicyNoCI")
+        private Object oldPolicyNoCI;
+
+        @JsonProperty("marketFeeRate")
+        private Object marketFeeRate;
+
+        @JsonProperty("saleFeeRateMax")
+        private Object saleFeeRateMax;
+
+        @JsonProperty("ciPayTax")
+        private Object ciPayTax;
+
+        @JsonProperty("piccscore")
+        private Object piccscore;
+
+        @JsonProperty("lastEffectiveDateBI")
+        private Object lastEffectiveDateBI;
+
+        @JsonProperty("lastExpireDateBI")
+        private Object lastExpireDateBI;
+
+        @JsonProperty("lastInsurerCode")
+        private Object lastInsurerCode;
+
+        @JsonProperty("lastEffectiveDateCI")
+        private Object lastEffectiveDateCI;
+
+        @JsonProperty("lastExpireDateCI")
+        private Object lastExpireDateCI;
+
+        @JsonProperty("isExistingCustomer")
+        private Object isExistingCustomer;
+    }
+
+    @NoArgsConstructor
+    @Data
+    public static class CommissionDTO {
+        @JsonProperty("upperFlag")
+        private String upperFlag;
+
+        @JsonProperty("costType")
+        private String costType;
+
+        @JsonProperty("distribTypeCode")
+        private Object distribTypeCode;
+
+        @JsonProperty("costName")
+        private Object costName;
+
+        @JsonProperty("customerGroupCode")
+        private Object customerGroupCode;
+
+        @JsonProperty("auditRate")
+        private Object auditRate;
+
+        @JsonProperty("auditFlag")
+        private Object auditFlag;
+
+        @JsonProperty("coinsDeduct")
+        private Object coinsDeduct;
+
+        @JsonProperty("currency")
+        private String currency;
+
+        @JsonProperty("serialVersionUID")
+        private Integer serialVersionUID;
+
+        @JsonProperty("coinsRate")
+        private String coinsRate;
+
+        @JsonProperty("adjustFlag")
+        private Object adjustFlag;
+
+        @JsonProperty("configCode")
+        private String configCode;
+
+        @JsonProperty("distribTypeName")
+        private Object distribTypeName;
+
+        @JsonProperty("distribRate")
+        private Object distribRate;
+
+        @JsonProperty("costFee")
+        private Double costFee;
+
+        @JsonProperty("costRate")
+        private String costRate;
+
+        @JsonProperty("costRateUpper")
+        private String costRateUpper;
+
+        @JsonProperty("agreementNo")
+        private String agreementNo;
+
+        @JsonProperty("isNetFlag")
+        private Object isNetFlag;
+
+        @JsonProperty("riskCode")
+        private String riskCode;
+
+        @JsonProperty("sumPremium")
+        private String sumPremium;
+
+        @JsonProperty("quotationNo")
+        private String quotationNo;
+    }
+
+    @NoArgsConstructor
+    @Data
+    public static class PrpCinsuredsDTO {
+        @JsonProperty("proposalNo")
+        private Object proposalNo;
+
+        @JsonProperty("riskCode")
+        private Object riskCode;
+
+        @JsonProperty("language")
+        private Object language;
+
+        @JsonProperty("insuredType")
+        private String insuredType;
+
+        @JsonProperty("insuredCode")
+        private String insuredCode;
+
+        @JsonProperty("lowTelPrompt")
+        private Object lowTelPrompt;
+
+        @JsonProperty("lowTelPromptCode")
+        private Object lowTelPromptCode;
+
+        @JsonProperty("insuredName")
+        private String insuredName;
+
+        @JsonProperty("insuredNameE")
+        private Object insuredNameE;
+
+        @JsonProperty("insuredEName")
+        private String insuredEName;
+
+        @JsonProperty("insuredNameType")
+        private String insuredNameType;
+
+        @JsonProperty("aliasName")
+        private Object aliasName;
+
+        @JsonProperty("insuredAddress")
+        private String insuredAddress;
+
+        @JsonProperty("insuredAddressE")
+        private String insuredAddressE;
+
+        @JsonProperty("insuredNature")
+        private String insuredNature;
+
+        @JsonProperty("serialNo")
+        private Integer serialNo;
+
+        @JsonProperty("insuredFlagNameShow")
+        private Object insuredFlagNameShow;
+
+        @JsonProperty("unitType1")
+        private String unitType1;
+
+        @JsonProperty("unitType_des")
+        private Object unittypeDes;
+
+        @JsonProperty("appendPrintName")
+        private Object appendPrintName;
+
+        @JsonProperty("financeFlag")
+        private String financeFlag;
+
+        @JsonProperty("financeFlagCustom")
+        private Object financeFlagCustom;
+
+        @JsonProperty("insuredIdentity")
+        private Object insuredIdentity;
+
+        @JsonProperty("relateSerialNo")
+        private Object relateSerialNo;
+
+        @JsonProperty("identifyType")
+        private String identifyType;
+
+        @JsonProperty("identifyType_des")
+        private Object identifytypeDes;
+
+        @JsonProperty("identifyNumber")
+        private String identifyNumber;
+
+        @JsonProperty("identifyNumberE")
+        private String identifyNumberE;
+
+        @JsonProperty("creditLevel")
+        private Object creditLevel;
+
+        @JsonProperty("possessNature")
+        private Object possessNature;
+
+        @JsonProperty("businessSource")
+        private Object businessSource;
+
+        @JsonProperty("businessSort")
+        private String businessSort;
+
+        @JsonProperty("occupationCode")
+        private Object occupationCode;
+
+        @JsonProperty("education")
+        private Object education;
+
+        @JsonProperty("educationCode")
+        private String educationCode;
+
+        @JsonProperty("bank")
+        private Object bank;
+
+        @JsonProperty("accountName")
+        private Object accountName;
+
+        @JsonProperty("account")
+        private Object account;
+
+        @JsonProperty("linkerName")
+        private Object linkerName;
+
+        @JsonProperty("postAddress")
+        private Object postAddress;
+
+        @JsonProperty("postCode")
+        private String postCode;
+
+        @JsonProperty("phoneNumber")
+        private String phoneNumber;
+
+        @JsonProperty("phoneNumberShow")
+        private String phoneNumberShow;
+
+        @JsonProperty("phoneExtension")
+        private String phoneExtension;
+
+        @JsonProperty("extensionNumber")
+        private String extensionNumber;
+
+        @JsonProperty("phoneExtensionShow")
+        private Object phoneExtensionShow;
+
+        @JsonProperty("faxNumber")
+        private Object faxNumber;
+
+        @JsonProperty("mobile")
+        private String mobile;
+
+        @JsonProperty("mobileNotEncry")
+        private Object mobileNotEncry;
+
+        @JsonProperty("mobileShow")
+        private String mobileShow;
+
+        @JsonProperty("netAddress")
+        private Object netAddress;
+
+        @JsonProperty("email")
+        private String email;
+
+        @JsonProperty("emailE")
+        private String emailE;
+
+        @JsonProperty("benefitFlag")
+        private Object benefitFlag;
+
+        @JsonProperty("benefitRate")
+        private Object benefitRate;
+
+        @JsonProperty("drivingLicenseNo")
+        private Object drivingLicenseNo;
+
+        @JsonProperty("changelessFlag")
+        private Object changelessFlag;
+
+        @JsonProperty("sex1")
+        private Object sex1;
+
+        @JsonProperty("sex")
+        private String sex;
+
+        @JsonProperty("age")
+        private Integer age;
+
+        @JsonProperty("marriage")
+        private Object marriage;
+
+        @JsonProperty("relationwithpolicyholder")
+        private Object relationwithpolicyholder;
+
+        @JsonProperty("relationwithpolicyholderName")
+        private Object relationwithpolicyholderName;
+
+        @JsonProperty("driverAddress")
+        private Object driverAddress;
+
+        @JsonProperty("peccancy")
+        private Object peccancy;
+
+        @JsonProperty("acceptLicenseDate")
+        private Object acceptLicenseDate;
+
+        @JsonProperty("receiveLicenseYear")
+        private Object receiveLicenseYear;
+
+        @JsonProperty("drivingYears")
+        private Object drivingYears;
+
+        @JsonProperty("causetroubleTimes")
+        private Object causetroubleTimes;
+
+        @JsonProperty("awardLicenseOrgan")
+        private Object awardLicenseOrgan;
+
+        @JsonProperty("drivingCarType")
+        private Object drivingCarType;
+
+        @JsonProperty("insuredFlag")
+        private String insuredFlag;
+
+        @JsonProperty("insertTimeForHis")
+        private Object insertTimeForHis;
+
+        @JsonProperty("operateTimeForHis")
+        private Object operateTimeForHis;
+
+        @JsonProperty("versionNo")
+        private String versionNo;
+
+        @JsonProperty("auditStatus")
+        private String auditStatus;
+
+        @JsonProperty("flag")
+        private Object flag;
+
+        @JsonProperty("realFlag")
+        private String realFlag;
+
+        @JsonProperty("customerCodeAll")
+        private String customerCodeAll;
+
+        @JsonProperty("identifyCheckResult")
+        private String identifyCheckResult;
+
+        @JsonProperty("contactPersonName")
+        private String contactPersonName;
+
+        @JsonProperty("province")
+        private String province;
+
+        @JsonProperty("city")
+        private String city;
+
+        @JsonProperty("area")
+        private String area;
+
+        @JsonProperty("originalName")
+        private String originalName;
+
+        @JsonProperty("insuredNameBackup")
+        private String insuredNameBackup;
+
+        @JsonProperty("countryCode")
+        private String countryCode;
+
+        @JsonProperty("countryCode_des")
+        private Object countrycodeDes;
+
+        @JsonProperty("startDate")
+        private Object startDate;
+
+        @JsonProperty("endDate")
+        private Object endDate;
+
+        @JsonProperty("resident")
+        private String resident;
+
+        @JsonProperty("groupCode")
+        private String groupCode;
+
+        @JsonProperty("cifGroupCode")
+        private Object cifGroupCode;
+
+        @JsonProperty("insuredType1")
+        private Object insuredType1;
+
+        @JsonProperty("dateValid")
+        private String dateValid;
+
+        @JsonProperty("validStatus")
+        private String validStatus;
+
+        @JsonProperty("addressCName")
+        private String addressCName;
+
+        @JsonProperty("addressCNameE")
+        private String addressCNameE;
+
+        @JsonProperty("addressVersionNo")
+        private Object addressVersionNo;
+
+        @JsonProperty("addressType")
+        private String addressType;
+
+        @JsonProperty("phoneNumVersionNo")
+        private Object phoneNumVersionNo;
+
+        @JsonProperty("phoneProperties")
+        private String phoneProperties;
+
+        @JsonProperty("phoneNumProperties")
+        private String phoneNumProperties;
+
+        @JsonProperty("mobileVersionNo")
+        private Object mobileVersionNo;
+
+        @JsonProperty("mobileProperties")
+        private String mobileProperties;
+
+        @JsonProperty("phoneType")
+        private String phoneType;
+
+        @JsonProperty("isDefault")
+        private String isDefault;
+
+        @JsonProperty("grade")
+        private Object grade;
+
+        @JsonProperty("modelEname")
+        private Object modelEname;
+
+        @JsonProperty("currentGrowth")
+        private Object currentGrowth;
+
+        @JsonProperty("latestGrowth")
+        private Object latestGrowth;
+
+        @JsonProperty("scanCard")
+        private Object scanCard;
+
+        @JsonProperty("cardReadFlag")
+        private String cardReadFlag;
+
+        @JsonProperty("insuredFlagName")
+        private Object insuredFlagName;
+
+        @JsonProperty("professional")
+        private String professional;
+
+        @JsonProperty("professional_des")
+        private Object professionalDes;
+
+        @JsonProperty("recordCount")
+        private Integer recordCount;
+
+        @JsonProperty("unifiedSocialCreditCode")
+        private String unifiedSocialCreditCode;
+
+        @JsonProperty("idenDateValid")
+        private String idenDateValid;
+
+        @JsonProperty("businessLicense")
+        private String businessLicense;
+
+        @JsonProperty("industryCode")
+        private String industryCode;
+
+        @JsonProperty("revenueCode")
+        private String revenueCode;
+
+        @JsonProperty("organizeCode")
+        private String organizeCode;
+
+        @JsonProperty("taxPayerType")
+        private Object taxPayerType;
+
+        @JsonProperty("address")
+        private Object address;
+
+        @JsonProperty("addressE")
+        private Object addressE;
+
+        @JsonProperty("revenueCode1")
+        private Object revenueCode1;
+
+        @JsonProperty("phone")
+        private Object phone;
+
+        @JsonProperty("phoneShow")
+        private Object phoneShow;
+
+        @JsonProperty("cardNumber")
+        private String cardNumber;
+
+        @JsonProperty("nation")
+        private Object nation;
+
+        @JsonProperty("institution")
+        private Object institution;
+
+        @JsonProperty("dateValidStart")
+        private Object dateValidStart;
+
+        @JsonProperty("birthDate")
+        private String birthDate;
+
+        @JsonProperty("creditDateValid")
+        private String creditDateValid;
+
+        @JsonProperty("orgDateValid")
+        private String orgDateValid;
+
+        @JsonProperty("startDateValid")
+        private String startDateValid;
+
+        @JsonProperty("isPersonConsistentWithID")
+        private Object isPersonConsistentWithID;
+
+        @JsonProperty("authResult")
+        private Object authResult;
+
+        @JsonProperty("registFund")
+        private Object registFund;
+
+        @JsonProperty("ifChangeInsure")
+        private Object ifChangeInsure;
+
+        @JsonProperty("roleList")
+        private Object roleList;
+
+        @JsonProperty("errorMessage")
+        private String errorMessage;
+
+        @JsonProperty("checkStatus")
+        private String checkStatus;
+
+        @JsonProperty("checkTip")
+        private String checkTip;
+
+        @JsonProperty("bongdingSource")
+        private Object bongdingSource;
+
+        @JsonProperty("beneficiaryBlackType")
+        private String beneficiaryBlackType;
+
+        @JsonProperty("modifyFlag")
+        private String modifyFlag;
+
+        @JsonProperty("insuredAddressSeqNo")
+        private Integer insuredAddressSeqNo;
+
+        @JsonProperty("signCode")
+        private String signCode;
+
+        @JsonProperty("processDataPrimaryKey")
+        private String processDataPrimaryKey;
+
+        @JsonProperty("processFlag")
+        private String processFlag;
+
+        @JsonProperty("groupCustFlag")
+        private String groupCustFlag;
+
+        @JsonProperty("secondaryIdentifyType")
+        private String secondaryIdentifyType;
+
+        @JsonProperty("secondaryIdentifyType_des")
+        private Object secondaryidentifytypeDes;
+
+        @JsonProperty("secondaryIdentifyNumber")
+        private String secondaryIdentifyNumber;
+
+        @JsonProperty("secondaryIdentifyNumberE")
+        private String secondaryIdentifyNumberE;
+
+        @JsonProperty("insType")
+        private String insType;
+
+        @JsonProperty("isProcessDataState")
+        private Object isProcessDataState;
+
+        @JsonProperty("renameFlagResult")
+        private String renameFlagResult;
+
+        @JsonProperty("radarDataResult")
+        private String radarDataResult;
+
+        @JsonProperty("prpDpCstIdentifies")
+        private Object prpDpCstIdentifies;
+
+        @JsonProperty("leaderBlackType")
+        private String leaderBlackType;
+
+        @JsonProperty("agentBlackType")
+        private String agentBlackType;
+
+        @JsonProperty("holdingpersonBlackType")
+        private String holdingpersonBlackType;
+
+        @JsonProperty("selfYearIncome")
+        private String selfYearIncome;
+
+        @JsonProperty("phoneExtensionIntl")
+        private String phoneExtensionIntl;
+
+        @JsonProperty("custFields")
+        private List<CustFieldsDTO> custFields;
+
+        @JsonProperty("businessControlList")
+        private Object businessControlList;
+
+        @JsonProperty("samCode")
+        private Object samCode;
+
+        @JsonProperty("carQuoteInsuredBeneficiaryList")
+        private Object carQuoteInsuredBeneficiaryList;
+
+        @JsonProperty("issure")
+        private Object issure;
+
+        @JsonProperty("certiStartDate")
+        private Object certiStartDate;
+
+        @JsonProperty("certiEndDate")
+        private Object certiEndDate;
+
+        @JsonProperty("samType")
+        private Object samType;
+
+        @NoArgsConstructor
+        @Data
+        public static class CustFieldsDTO {
+            @JsonProperty("key")
+            private String key;
+
+            @JsonProperty("value")
+            private String value;
+
+            @JsonProperty("remark")
+            private String remark;
+        }
+    }
+
+    @NoArgsConstructor
+    @Data
+    public static class CarQuoteAccidentCIRspListDTO {
+        @JsonProperty("claimRegistrationNo")
+        private String claimRegistrationNo;
+
+        @JsonProperty("caseId")
+        private Object caseId;
+
+        @JsonProperty("companyID")
+        private String companyID;
+
+        @JsonProperty("accidentTime")
+        private String accidentTime;
+
+        @JsonProperty("endCaseTime")
+        private String endCaseTime;
+
+        @JsonProperty("policyNo")
+        private String policyNo;
+
+        @JsonProperty("claimAmount")
+        private Double claimAmount;
+
+        @JsonProperty("startDate")
+        private Object startDate;
+
+        @JsonProperty("endDate")
+        private Object endDate;
+    }
+}

+ 315 - 0
tenant/insurance/quotation-renbao/src/main/java/com/jzg/quotation/renbao/crawler/entity/response/RenBaoCrawlerCustomPersonData.java

@@ -0,0 +1,315 @@
+package com.jzg.quotation.renbao.crawler.entity.response;
+
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.List;
+
+@NoArgsConstructor
+@Data
+public class RenBaoCrawlerCustomPersonData {
+
+    @JsonProperty("prpDpCstIdentifies")
+    private List<?> prpDpCstIdentifies;
+
+    @JsonProperty("guardianInfo")
+    private GuardianInfoDTO guardianInfo;
+
+    @JsonProperty("headInfoDto")
+    private HeadInfoDtoDTO headInfoDto;
+
+    @JsonProperty("startDateValid")
+    private String startDateValid;
+
+    @JsonProperty("selfYearIncome")
+    private String selfYearIncome;
+
+    @JsonProperty("lowTelPrompt")
+    private String lowTelPrompt;
+
+    @JsonProperty("lowTelPromptCode")
+    private String lowTelPromptCode;
+
+    @JsonProperty("insuredType")
+    private String insuredType;
+
+    @JsonProperty("insuredCode")
+    private String insuredCode;
+
+    @JsonProperty("insuredName")
+    private String insuredName;
+
+    @JsonProperty("insuredNameE")
+    private String insuredNameE;
+
+    @JsonProperty("insuredEName")
+    private String insuredEName;
+
+    @JsonProperty("identifyType")
+    private String identifyType;
+
+    @JsonProperty("unitType")
+    private String unitType;
+
+    @JsonProperty("identifyNumber")
+    private String identifyNumber;
+
+    @JsonProperty("identifyNumberE")
+    private String identifyNumberE;
+
+    @JsonProperty("sex")
+    private String sex;
+
+    @JsonProperty("insuredAddress")
+    private String insuredAddress;
+
+    @JsonProperty("insuredAddressE")
+    private String insuredAddressE;
+
+    @JsonProperty("province")
+    private String province;
+
+    @JsonProperty("city")
+    private String city;
+
+    @JsonProperty("area")
+    private String area;
+
+    @JsonProperty("addressCName")
+    private String addressCName;
+
+    @JsonProperty("addressCNameE")
+    private String addressCNameE;
+
+    @JsonProperty("addressVersionNo")
+    private Object addressVersionNo;
+
+    @JsonProperty("auditFeedback")
+    private String auditFeedback;
+
+    @JsonProperty("specialPeople")
+    private Object specialPeople;
+
+    @JsonProperty("insuredAddressSeqNo")
+    private Integer insuredAddressSeqNo;
+
+    @JsonProperty("addressType")
+    private String addressType;
+
+    @JsonProperty("postCode")
+    private String postCode;
+
+    @JsonProperty("countryCode")
+    private String countryCode;
+
+    @JsonProperty("resident")
+    private String resident;
+
+    @JsonProperty("phoneType")
+    private String phoneType;
+
+    @JsonProperty("phoneNumber")
+    private String phoneNumber;
+
+    @JsonProperty("phoneExtensionIntl")
+    private String phoneExtensionIntl;
+
+    @JsonProperty("phoneNumberShow")
+    private String phoneNumberShow;
+
+    @JsonProperty("phoneExtension")
+    private String phoneExtension;
+
+    @JsonProperty("extensionNumber")
+    private String extensionNumber;
+
+    @JsonProperty("phoneNumVersionNo")
+    private Integer phoneNumVersionNo;
+
+    @JsonProperty("phoneNumProperties")
+    private String phoneNumProperties;
+
+    @JsonProperty("phoneProperties")
+    private String phoneProperties;
+
+    @JsonProperty("mobile")
+    private String mobile;
+
+    @JsonProperty("mobileShow")
+    private String mobileShow;
+
+    @JsonProperty("mobileNotEncry")
+    private String mobileNotEncry;
+
+    @JsonProperty("mobileVersionNo")
+    private Integer mobileVersionNo;
+
+    @JsonProperty("mobileProperties")
+    private String mobileProperties;
+
+    @JsonProperty("isDefault")
+    private Boolean isDefault;
+
+    @JsonProperty("email")
+    private String email;
+
+    @JsonProperty("emailE")
+    private String emailE;
+
+    @JsonProperty("emailSeqNo")
+    private Integer emailSeqNo;
+
+    @JsonProperty("versionNo")
+    private String versionNo;
+
+    @JsonProperty("realFlag")
+    private String realFlag;
+
+    @JsonProperty("prpDpCstIdentifiesSize")
+    private Integer prpDpCstIdentifiesSize;
+
+    @JsonProperty("validStatus")
+    private String validStatus;
+
+    @JsonProperty("auditStatus")
+    private String auditStatus;
+
+    @JsonProperty("education")
+    private String education;
+
+    @JsonProperty("educationCode")
+    private String educationCode;
+
+    @JsonProperty("customerCodeAll")
+    private String customerCodeAll;
+
+    @JsonProperty("identifyCheckResult")
+    private String identifyCheckResult;
+
+    @JsonProperty("bongdingSource")
+    private String bongdingSource;
+
+    @JsonProperty("count")
+    private Integer count;
+
+    @JsonProperty("groupCode")
+    private String groupCode;
+
+    @JsonProperty("dateValid")
+    private String dateValid;
+
+    @JsonProperty("unifiedSocialCreditCode")
+    private String unifiedSocialCreditCode;
+
+    @JsonProperty("creditDateValid")
+    private String creditDateValid;
+
+    @JsonProperty("idenDateValid")
+    private String idenDateValid;
+
+    @JsonProperty("responseCode")
+    private String responseCode;
+
+    @JsonProperty("age")
+    private String age;
+
+    @JsonProperty("errorMessage")
+    private String errorMessage;
+
+    @JsonProperty("birthDate")
+    private String birthDate;
+
+    @JsonProperty("financeFlagCustom")
+    private Object financeFlagCustom;
+
+    @JsonProperty("cardNumber")
+    private String cardNumber;
+
+    @JsonProperty("checkStatus")
+    private String checkStatus;
+
+    @JsonProperty("checkTip")
+    private String checkTip;
+
+    @JsonProperty("prpDgCstPhoneVos")
+    private List<?> prpDgCstPhoneVos;
+
+    @JsonProperty("signCode")
+    private String signCode;
+
+    @JsonProperty("processDataPrimaryKey")
+    private String processDataPrimaryKey;
+
+    @JsonProperty("groupCustFlag")
+    private String groupCustFlag;
+
+    @JsonProperty("groupCustFlagDate")
+    private String groupCustFlagDate;
+
+    @JsonProperty("scenelist")
+    private Object scenelist;
+
+    @JsonProperty("processDataStatus")
+    private String processDataStatus;
+
+    @JsonProperty("custFields")
+    private List<CustFieldsDTO> custFields;
+
+    @JsonProperty("renameFlagResult")
+    private String renameFlagResult;
+
+    @JsonProperty("url")
+    private String url;
+
+    @JsonProperty("insuredNature")
+    private String insuredNature;
+
+    @JsonProperty("professional")
+    private String professional;
+
+    @NoArgsConstructor
+    @Data
+    public static class GuardianInfoDTO {
+        @JsonProperty("guardianName")
+        private Object guardianName;
+
+        @JsonProperty("guardianRelation")
+        private Object guardianRelation;
+
+        @JsonProperty("guardianIdentifyType")
+        private Object guardianIdentifyType;
+
+        @JsonProperty("guardianIdentifynumber")
+        private Object guardianIdentifynumber;
+    }
+
+    @NoArgsConstructor
+    @Data
+    public static class HeadInfoDtoDTO {
+        @JsonProperty("requestType")
+        private String requestType;
+
+        @JsonProperty("codeType")
+        private String codeType;
+
+        @JsonProperty("errorMessage")
+        private String errorMessage;
+    }
+
+    @NoArgsConstructor
+    @Data
+    public static class CustFieldsDTO {
+
+        @JsonProperty("key")
+        private String key;
+
+        @JsonProperty("value")
+        private String value;
+
+        @JsonProperty("remark")
+        private String remark;
+    }
+
+}

+ 300 - 0
tenant/insurance/quotation-renbao/src/main/java/com/jzg/quotation/renbao/crawler/entity/response/RenBaoCrawlerCustomQueryPData.java

@@ -0,0 +1,300 @@
+package com.jzg.quotation.renbao.crawler.entity.response;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.List;
+
+@NoArgsConstructor
+@Data
+public class RenBaoCrawlerCustomQueryPData {
+
+    @JsonProperty("prpDpCstIdentifies")
+    private List<?> prpDpCstIdentifies;
+
+    @JsonProperty("guardianInfo")
+    private GuardianInfoDTO guardianInfo;
+
+    @JsonProperty("headInfoDto")
+    private HeadInfoDtoDTO headInfoDto;
+
+    @JsonProperty("startDateValid")
+    private String startDateValid;
+
+    @JsonProperty("selfYearIncome")
+    private String selfYearIncome;
+
+    @JsonProperty("lowTelPrompt")
+    private String lowTelPrompt;
+
+    @JsonProperty("lowTelPromptCode")
+    private String lowTelPromptCode;
+
+    @JsonProperty("insuredType")
+    private String insuredType;
+
+    @JsonProperty("insuredCode")
+    private String insuredCode;
+
+    @JsonProperty("insuredName")
+    private String insuredName;
+
+    @JsonProperty("insuredNameE")
+    private String insuredNameE;
+
+    @JsonProperty("insuredEName")
+    private String insuredEName;
+
+    @JsonProperty("identifyType")
+    private String identifyType;
+
+    @JsonProperty("unitType")
+    private String unitType;
+
+    @JsonProperty("identifyNumber")
+    private String identifyNumber;
+
+    @JsonProperty("identifyNumberE")
+    private String identifyNumberE;
+
+    @JsonProperty("sex")
+    private String sex;
+
+    @JsonProperty("insuredAddress")
+    private String insuredAddress;
+
+    @JsonProperty("insuredAddressE")
+    private String insuredAddressE;
+
+    @JsonProperty("province")
+    private String province;
+
+    @JsonProperty("city")
+    private String city;
+
+    @JsonProperty("area")
+    private String area;
+
+    @JsonProperty("addressCName")
+    private String addressCName;
+
+    @JsonProperty("addressCNameE")
+    private String addressCNameE;
+
+    @JsonProperty("addressVersionNo")
+    private Object addressVersionNo;
+
+    @JsonProperty("auditFeedback")
+    private String auditFeedback;
+
+    @JsonProperty("specialPeople")
+    private Object specialPeople;
+
+    @JsonProperty("insuredAddressSeqNo")
+    private Integer insuredAddressSeqNo;
+
+    @JsonProperty("addressType")
+    private String addressType;
+
+    @JsonProperty("postCode")
+    private String postCode;
+
+    @JsonProperty("countryCode")
+    private String countryCode;
+
+    @JsonProperty("resident")
+    private String resident;
+
+    @JsonProperty("phoneType")
+    private String phoneType;
+
+    @JsonProperty("phoneNumber")
+    private String phoneNumber;
+
+    @JsonProperty("phoneExtensionIntl")
+    private String phoneExtensionIntl;
+
+    @JsonProperty("phoneNumberShow")
+    private String phoneNumberShow;
+
+    @JsonProperty("phoneExtension")
+    private String phoneExtension;
+
+    @JsonProperty("extensionNumber")
+    private String extensionNumber;
+
+    @JsonProperty("phoneNumVersionNo")
+    private Object phoneNumVersionNo;
+
+    @JsonProperty("phoneNumProperties")
+    private String phoneNumProperties;
+
+    @JsonProperty("phoneProperties")
+    private String phoneProperties;
+
+    @JsonProperty("mobile")
+    private String mobile;
+
+    @JsonProperty("mobileShow")
+    private String mobileShow;
+
+    @JsonProperty("mobileNotEncry")
+    private String mobileNotEncry;
+
+    @JsonProperty("mobileVersionNo")
+    private Object mobileVersionNo;
+
+    @JsonProperty("mobileProperties")
+    private String mobileProperties;
+
+    @JsonProperty("isDefault")
+    private Boolean isDefault;
+
+    @JsonProperty("email")
+    private String email;
+
+    @JsonProperty("emailE")
+    private String emailE;
+
+    @JsonProperty("emailSeqNo")
+    private Integer emailSeqNo;
+
+    @JsonProperty("versionNo")
+    private String versionNo;
+
+    @JsonProperty("realFlag")
+    private String realFlag;
+
+    @JsonProperty("prpDpCstIdentifiesSize")
+    private Integer prpDpCstIdentifiesSize;
+
+    @JsonProperty("validStatus")
+    private String validStatus;
+
+    @JsonProperty("auditStatus")
+    private String auditStatus;
+
+    @JsonProperty("education")
+    private String education;
+
+    @JsonProperty("educationCode")
+    private String educationCode;
+
+    @JsonProperty("customerCodeAll")
+    private String customerCodeAll;
+
+    @JsonProperty("identifyCheckResult")
+    private String identifyCheckResult;
+
+    @JsonProperty("bongdingSource")
+    private String bongdingSource;
+
+    @JsonProperty("count")
+    private Integer count;
+
+    @JsonProperty("groupCode")
+    private String groupCode;
+
+    @JsonProperty("dateValid")
+    private String dateValid;
+
+    @JsonProperty("unifiedSocialCreditCode")
+    private String unifiedSocialCreditCode;
+
+    @JsonProperty("creditDateValid")
+    private String creditDateValid;
+
+    @JsonProperty("idenDateValid")
+    private String idenDateValid;
+
+    @JsonProperty("responseCode")
+    private String responseCode;
+
+    @JsonProperty("age")
+    private String age;
+
+    @JsonProperty("errorMessage")
+    private String errorMessage;
+
+    @JsonProperty("birthDate")
+    private String birthDate;
+
+    @JsonProperty("financeFlagCustom")
+    private Object financeFlagCustom;
+
+    @JsonProperty("cardNumber")
+    private String cardNumber;
+
+    @JsonProperty("checkStatus")
+    private String checkStatus;
+
+    @JsonProperty("checkTip")
+    private String checkTip;
+
+    @JsonProperty("prpDgCstPhoneVos")
+    private List<?> prpDgCstPhoneVos;
+
+    @JsonProperty("signCode")
+    private String signCode;
+
+    @JsonProperty("processDataPrimaryKey")
+    private String processDataPrimaryKey;
+
+    @JsonProperty("groupCustFlag")
+    private String groupCustFlag;
+
+    @JsonProperty("groupCustFlagDate")
+    private String groupCustFlagDate;
+
+    @JsonProperty("scenelist")
+    private Object scenelist;
+
+    @JsonProperty("processDataStatus")
+    private String processDataStatus;
+
+    @JsonProperty("custFields")
+    private Object custFields;
+
+    @JsonProperty("renameFlagResult")
+    private String renameFlagResult;
+
+    @JsonProperty("url")
+    private String url;
+
+    @JsonProperty("insuredNature")
+    private String insuredNature;
+
+    @JsonProperty("professional")
+    private String professional;
+
+    @NoArgsConstructor
+    @Data
+    public static class GuardianInfoDTO {
+        @JsonProperty("guardianName")
+        private Object guardianName;
+
+        @JsonProperty("guardianRelation")
+        private Object guardianRelation;
+
+        @JsonProperty("guardianIdentifyType")
+        private Object guardianIdentifyType;
+
+        @JsonProperty("guardianIdentifynumber")
+        private Object guardianIdentifynumber;
+    }
+
+    @NoArgsConstructor
+    @Data
+    public static class HeadInfoDtoDTO {
+        @JsonProperty("requestType")
+        private String requestType;
+
+        @JsonProperty("codeType")
+        private String codeType;
+
+        @JsonProperty("errorMessage")
+        private String errorMessage;
+    }
+
+}

+ 57 - 0
tenant/insurance/quotation-renbao/src/main/java/com/jzg/quotation/renbao/crawler/entity/response/RenBaoCrawlerEditSubmitUndwrtData.java

@@ -0,0 +1,57 @@
+package com.jzg.quotation.renbao.crawler.entity.response;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.List;
+
+/**
+ * @description: TODO 
+ * @author wks
+ * @date 2025/12/4 15:34
+ * @version 1.0
+ */
+@NoArgsConstructor
+@Data
+public class RenBaoCrawlerEditSubmitUndwrtData {
+
+    @JsonProperty("err_msg")
+    private Object errMsg;
+
+    @JsonProperty("undwrtForPassList")
+    private List<UndwrtForPassListDTO> undwrtForPassList;
+
+    @JsonProperty("unitExtendUnderWriteStateList")
+    private Object unitExtendUnderWriteStateList;
+
+    @JsonProperty("unitNoCarUnderWriteStateList")
+    private Object unitNoCarUnderWriteStateList;
+
+    @NoArgsConstructor
+    @Data
+    public static class UndwrtForPassListDTO {
+
+        @JsonProperty("state")
+        private String state;
+
+        @JsonProperty("proposalNo")
+        private String proposalNo;
+
+        @JsonProperty("handleText")
+        private String handleText;
+
+        @JsonProperty("undwrtFlag")
+        private String undwrtFlag;
+
+        @JsonProperty("applyNo")
+        private Object applyNo;
+
+        @JsonProperty("ruleResult")
+        private Object ruleResult;
+
+        @JsonProperty("ruleTips")
+        private Object ruleTips;
+
+    }
+}

+ 106 - 0
tenant/insurance/quotation-renbao/src/main/java/com/jzg/quotation/renbao/crawler/entity/response/RenBaoCrawlerGetAgentsData.java

@@ -0,0 +1,106 @@
+package com.jzg.quotation.renbao.crawler.entity.response;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.List;
+
+/**
+ * @description: TODO 
+ * @author wks
+ * @date 2025/12/4 15:34
+ * @version 1.0
+ */
+@NoArgsConstructor
+@Data
+public class RenBaoCrawlerGetAgentsData {
+
+    @JsonProperty("pageSize")
+    private Integer pageSize;
+
+    @JsonProperty("pageNo")
+    private Integer pageNo;
+
+    @JsonProperty("pageCount")
+    private Integer pageCount;
+
+    @JsonProperty("totalRecordCount")
+    private Integer totalRecordCount;
+
+    @JsonProperty("data")
+    private List<DataDTO> data;
+
+    @NoArgsConstructor
+    @Data
+    public static class DataDTO {
+        @JsonProperty("agentCode")
+        private String agentCode;
+
+        @JsonProperty("agentName")
+        private String agentName;
+
+        @JsonProperty("addressName")
+        private String addressName;
+
+        @JsonProperty("postCode")
+        private String postCode;
+
+        @JsonProperty("agentType")
+        private String agentType;
+
+        @JsonProperty("permitNo")
+        private String permitNo;
+
+        @JsonProperty("linkerName")
+        private String linkerName;
+
+        @JsonProperty("bargainDate")
+        private String bargainDate;
+
+        @JsonProperty("phoneNumber")
+        private String phoneNumber;
+
+        @JsonProperty("faxNumber")
+        private String faxNumber;
+
+        @JsonProperty("comCode")
+        private String comCode;
+
+        @JsonProperty("upperAgentCode")
+        private String upperAgentCode;
+
+        @JsonProperty("newAgentCode")
+        private String newAgentCode;
+
+        @JsonProperty("agentNature")
+        private String agentNature;
+
+        @JsonProperty("validStatus")
+        private String validStatus;
+
+        @JsonProperty("articleCode")
+        private String articleCode;
+
+        @JsonProperty("flag")
+        private String flag;
+
+        @JsonProperty("taxpayerType")
+        private String taxpayerType;
+
+        @JsonProperty("invoiceType")
+        private String invoiceType;
+
+        @JsonProperty("sociCredCode")
+        private String sociCredCode;
+
+        @JsonProperty("orgCode")
+        private String orgCode;
+
+        @JsonProperty("operateTimeForHis")
+        private Object operateTimeForHis;
+
+        @JsonProperty("violationsCount")
+        private String violationsCount;
+    }
+}

+ 153 - 0
tenant/insurance/quotation-renbao/src/main/java/com/jzg/quotation/renbao/crawler/entity/response/RenBaoCrawlerGetMonopolyData.java

@@ -0,0 +1,153 @@
+package com.jzg.quotation.renbao.crawler.entity.response;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.List;
+
+/**
+ * @description: TODO 
+ * @author wks
+ * @date 2025/12/4 14:22
+ * @version 1.0
+ */
+@NoArgsConstructor
+@Data
+public class RenBaoCrawlerGetMonopolyData {
+
+    @JsonProperty("pageSize")
+    private Integer pageSize;
+
+    @JsonProperty("pageNo")
+    private Integer pageNo;
+
+    @JsonProperty("pageCount")
+    private Integer pageCount;
+
+    @JsonProperty("totalRecordCount")
+    private Integer totalRecordCount;
+
+    @JsonProperty("data")
+    private List<DataDTO> data;
+
+    @NoArgsConstructor
+    @Data
+    public static class DataDTO {
+        @JsonProperty("storeBaseInFoId")
+        private String storeBaseInFoId;
+
+        @JsonProperty("provinceCode")
+        private String provinceCode;
+
+        @JsonProperty("provinceName")
+        private String provinceName;
+
+        @JsonProperty("cityName")
+        private String cityName;
+
+        @JsonProperty("cityCode")
+        private String cityCode;
+
+        @JsonProperty("comCode")
+        private String comCode;
+
+        @JsonProperty("comName")
+        private String comName;
+
+        @JsonProperty("storeCode")
+        private String storeCode;
+
+        @JsonProperty("effectiveDate")
+        private String effectiveDate;
+
+        @JsonProperty("businessLicenseurl")
+        private String businessLicenseurl;
+
+        @JsonProperty("storeName")
+        private String storeName;
+
+        @JsonProperty("bizlicenseaddress")
+        private String bizlicenseaddress;
+
+        @JsonProperty("socialuniFiedCreditCode")
+        private String socialuniFiedCreditCode;
+
+        @JsonProperty("storeAddr")
+        private String storeAddr;
+
+        @JsonProperty("storeAddw")
+        private String storeAddw;
+
+        @JsonProperty("storeAddrj")
+        private String storeAddrj;
+
+        @JsonProperty("status")
+        private String status;
+
+        @JsonProperty("relationstoreflag")
+        private String relationstoreflag;
+
+        @JsonProperty("relationstoretype")
+        private String relationstoretype;
+
+        @JsonProperty("groupName")
+        private String groupName;
+
+        @JsonProperty("content")
+        private String content;
+
+        @JsonProperty("salestorerepaircode")
+        private String salestorerepaircode;
+
+        @JsonProperty("basestorerepaircode")
+        private String basestorerepaircode;
+
+        @JsonProperty("insertTimeForHis")
+        private Object insertTimeForHis;
+
+        @JsonProperty("operratetimeForHis")
+        private Object operratetimeForHis;
+
+        @JsonProperty("approvalstatus")
+        private String approvalstatus;
+
+        @JsonProperty("addmodifyflag")
+        private String addmodifyflag;
+
+        @JsonProperty("subchannel")
+        private String subchannel;
+
+        @JsonProperty("resocialunifiedcreditcode")
+        private String resocialunifiedcreditcode;
+
+        @JsonProperty("businessprovincename")
+        private String businessprovincename;
+
+        @JsonProperty("businesscityname")
+        private String businesscityname;
+
+        @JsonProperty("businesscomname")
+        private String businesscomname;
+
+        @JsonProperty("businessaddress")
+        private String businessaddress;
+
+        @JsonProperty("businessregioncode")
+        private String businessregioncode;
+
+        @JsonProperty("businesscontactman")
+        private String businesscontactman;
+
+        @JsonProperty("businesscontactphone")
+        private String businesscontactphone;
+
+        @JsonProperty("maintenancequalification")
+        private String maintenancequalification;
+
+        @JsonProperty("specializedflag")
+        private String specializedflag;
+
+    }
+
+}

+ 1208 - 0
tenant/insurance/quotation-renbao/src/main/java/com/jzg/quotation/renbao/crawler/entity/response/RenBaoCrawlerInitZNCDData.java

@@ -0,0 +1,1208 @@
+package com.jzg.quotation.renbao.crawler.entity.response;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.List;
+
+
+/**
+ * @author wks
+ * @version 1.0
+ * @description: 人保财险 构建初始化信息
+ * @date 2025/12/2 16:45
+ */
+@NoArgsConstructor
+@Data
+public class RenBaoCrawlerInitZNCDData {
+
+    @JsonProperty("ProvinceAreaCodes")
+    private List<ProvinceAreaCodesDTO> provinceAreaCodes;
+
+    @JsonProperty("UserName")
+    private String userName;
+
+    @JsonProperty("ComCode")
+    private String comCode;
+
+    @JsonProperty("PayRefReason")
+    private List<PayRefReasonDTO> payRefReason;
+
+    @JsonProperty("UserPowerInNavbar")
+    private UserPowerInNavbarDTO userPowerInNavbar;
+
+    @JsonProperty("specialpopulation")
+    private SpecialpopulationDTO specialpopulation;
+
+    @JsonProperty("UserCode")
+    private String userCode;
+
+    @JsonProperty("roleCheckStatus")
+    private Integer roleCheckStatus;
+
+    @JsonProperty("CertificateTypes")
+    private List<CertificateTypesDTO> certificateTypes;
+
+    @JsonProperty("Timestamp")
+    private Long timestamp;
+
+    @JsonProperty("FuelType")
+    private FuelTypeDTO fuelType;
+
+    @JsonProperty("RiskConfig")
+    private RiskConfigDTO riskConfig;
+
+    @JsonProperty("IndivAddType")
+    private IndivAddTypeDTO indivAddType;
+
+    @JsonProperty("UnitNature")
+    private UnitNatureDTO unitNature;
+
+    @JsonProperty("CertificateTypesG")
+    private List<CertificateTypesGDTO> certificateTypesG;
+
+    @JsonProperty("UserSonType")
+    private String userSonType;
+
+    @JsonProperty("CountryCode")
+    private CountryCodeDTO countryCode;
+
+    @JsonProperty("GroupAddType")
+    private GroupAddTypeDTO groupAddType;
+
+    @JsonProperty("CertificateTypesP")
+    private List<CertificateTypesPDTO> certificateTypesP;
+
+    @NoArgsConstructor
+    @Data
+    public static class UserPowerInNavbarDTO {
+        @JsonProperty("endorTypes")
+        private List<EndorTypesDTO> endorTypes;
+
+        @JsonProperty("powerPath")
+        private List<String> powerPath;
+
+        @JsonProperty("otherUserPower")
+        private List<String> otherUserPower;
+
+        @JsonProperty("userPower")
+        private List<String> userPower;
+
+        @NoArgsConstructor
+        @Data
+        public static class EndorTypesDTO {
+            @JsonProperty("label")
+            private String label;
+
+            @JsonProperty("value")
+            private String value;
+        }
+    }
+
+    @NoArgsConstructor
+    @Data
+    public static class SpecialpopulationDTO {
+        @JsonProperty("DDA")
+        private List<DDADTO> dda;
+
+        @JsonProperty("DAA")
+        private List<DAADTO> daa;
+
+        @JsonProperty("DZA")
+        private List<DZADTO> dza;
+
+        @JsonProperty("DAH")
+        private List<DAHDTO> dah;
+
+        @JsonProperty("DZB")
+        private List<DZBDTO> dzb;
+
+        @JsonProperty("DGA")
+        private List<DGADTO> dga;
+
+        @NoArgsConstructor
+        @Data
+        public static class DDADTO {
+            @JsonProperty("label")
+            private String label;
+
+            @JsonProperty("value")
+            private String value;
+        }
+
+        @NoArgsConstructor
+        @Data
+        public static class DAADTO {
+            @JsonProperty("label")
+            private String label;
+
+            @JsonProperty("value")
+            private String value;
+        }
+
+        @NoArgsConstructor
+        @Data
+        public static class DZADTO {
+            @JsonProperty("label")
+            private String label;
+
+            @JsonProperty("value")
+            private String value;
+        }
+
+        @NoArgsConstructor
+        @Data
+        public static class DAHDTO {
+            @JsonProperty("label")
+            private String label;
+
+            @JsonProperty("value")
+            private String value;
+        }
+
+        @NoArgsConstructor
+        @Data
+        public static class DZBDTO {
+            @JsonProperty("label")
+            private String label;
+
+            @JsonProperty("value")
+            private String value;
+        }
+
+        @NoArgsConstructor
+        @Data
+        public static class DGADTO {
+            @JsonProperty("label")
+            private String label;
+
+            @JsonProperty("value")
+            private String value;
+        }
+    }
+
+    @NoArgsConstructor
+    @Data
+    public static class FuelTypeDTO {
+        @JsonProperty("DDA")
+        private List<DDADTO> dda;
+
+        @JsonProperty("DAA")
+        private List<DAADTO> daa;
+
+        @JsonProperty("DAH")
+        private List<DAHDTO> dah;
+
+        @JsonProperty("DZB")
+        private List<DZBDTO> dzb;
+
+        @JsonProperty("DGA")
+        private List<DGADTO> dga;
+
+        @NoArgsConstructor
+        @Data
+        public static class DDADTO {
+            @JsonProperty("label")
+            private String label;
+
+            @JsonProperty("value")
+            private String value;
+        }
+
+        @NoArgsConstructor
+        @Data
+        public static class DAADTO {
+            @JsonProperty("label")
+            private String label;
+
+            @JsonProperty("value")
+            private String value;
+        }
+
+        @NoArgsConstructor
+        @Data
+        public static class DAHDTO {
+            @JsonProperty("label")
+            private String label;
+
+            @JsonProperty("value")
+            private String value;
+        }
+
+        @NoArgsConstructor
+        @Data
+        public static class DZBDTO {
+            @JsonProperty("label")
+            private String label;
+
+            @JsonProperty("value")
+            private String value;
+        }
+
+        @NoArgsConstructor
+        @Data
+        public static class DGADTO {
+            @JsonProperty("label")
+            private String label;
+
+            @JsonProperty("value")
+            private String value;
+        }
+    }
+
+    @NoArgsConstructor
+    @Data
+    public static class RiskConfigDTO {
+        @JsonProperty("CIF_PHONEEXTENSIONINTL_SWITCH")
+        private String cifPhoneextensionintlSwitch;
+
+        @JsonProperty("RISKWARNINGFLAG")
+        private Object riskwarningflag;
+
+        @JsonProperty("TBSJ_PRPALL_16239013")
+        private Object tbsjPrpall16239013;
+
+        @JsonProperty("NETENDOR_SWITCHDAA")
+        private String netendorSwitchdaa;
+
+        @JsonProperty("ELECTRONIC_POLICY_DDA")
+        private String electronicPolicyDda;
+
+        @JsonProperty("CONTRACTEXTEND_LOW")
+        private String contractextendLow;
+
+        @JsonProperty("NETENDOR_SWITCHDZB")
+        private Object netendorSwitchdzb;
+
+        @JsonProperty("NETENDOR_SWITCHDZA")
+        private String netendorSwitchdza;
+
+        @JsonProperty("NEW_PLAT_SH")
+        private Object newPlatSh;
+
+        @JsonProperty("ISGIFTPACKAGE")
+        private String isgiftpackage;
+
+        @JsonProperty("UNDERWRITEOPINION_REMARK_SWITCH")
+        private String underwriteopinionRemarkSwitch;
+
+        @JsonProperty("QUALITYSUPERVISE_DATE_SCOPE_CONFIG")
+        private String qualitysuperviseDateScopeConfig;
+
+        @JsonProperty("isNetProp_DZA")
+        private String isnetpropDza;
+
+        @JsonProperty("isNetProp_DZB")
+        private String isnetpropDzb;
+
+        @JsonProperty("IMAGE_UPLOAD_SINGLESIZE_CONFIG")
+        private String imageUploadSinglesizeConfig;
+
+        @JsonProperty("TBSJ_JSYTD_15755279")
+        private String tbsjJsytd15755279;
+
+        @JsonProperty("sffpay_path")
+        private String sffpayPath;
+
+        @JsonProperty("prpallCifVersion_PUB")
+        private String prpallcifversionPub;
+
+        @JsonProperty("TBSJ_PRPALL_17147355")
+        private String tbsjPrpall17147355;
+
+        @JsonProperty("SLPT_SECRET")
+        private String slptSecret;
+
+        @JsonProperty("CIF_READ_CARD_SWITCH")
+        private String cifReadCardSwitch;
+
+        @JsonProperty("UNEXPECTED_CAR_STATUS")
+        private Object unexpectedCarStatus;
+
+        @JsonProperty("OPERATORCONFIG_INSURED_SWITCH")
+        private String operatorconfigInsuredSwitch;
+
+        @JsonProperty("ENDOR_TYPE")
+        private String endorType;
+
+        @JsonProperty("LOCALLICENSENO")
+        private String locallicenseno;
+
+        @JsonProperty("IS_SEND_MSG_DEFAULT")
+        private String isSendMsgDefault;
+
+        @JsonProperty("TBSJ_SFF362_14954890")
+        private String tbsjSff36214954890;
+
+        @JsonProperty("USEYEAR")
+        private String useyear;
+
+        @JsonProperty("NEW_PLAT_BJ")
+        private String newPlatBj;
+
+        @JsonProperty("DZB_SHOW")
+        private String dzbShow;
+
+        @JsonProperty("NEWCAR_RECORD")
+        private String newcarRecord;
+
+        @JsonProperty("GROUP_ROLE_TICK_SWITCH")
+        private String groupRoleTickSwitch;
+
+        @JsonProperty("JOINT_INSURANCE")
+        private String jointInsurance;
+
+        @JsonProperty("IS_SEND_EMAIL_MSG_DGA")
+        private String isSendEmailMsgDga;
+
+        @JsonProperty("ELECTRONIC_POLICY_ZNCD_DGA")
+        private ELECTRONICPOLICYZNCDDGADTO electronicPolicyZncdDga;
+
+        @JsonProperty("RENEWAL_ZZFW_SHIELD_SWITCH")
+        private String renewalZzfwShieldSwitch;
+
+        @JsonProperty("CIF_SECONDARY_SWITCH")
+        private String cifSecondarySwitch;
+
+        @JsonProperty("ELECTRONIC_POLICY_DAY")
+        private Object electronicPolicyDay;
+
+        @JsonProperty("PURCHASEPRICEDOWN")
+        private String purchasepricedown;
+
+        @JsonProperty("PROP_JSQB_PAY_SWITCH")
+        private String propJsqbPaySwitch;
+
+        @JsonProperty("CAR_JYJX_SHOW")
+        private String carJyjxShow;
+
+        @JsonProperty("PROP_RECOMMEND_QUOTATION_SWITCH")
+        private String propRecommendQuotationSwitch;
+
+        @JsonProperty("ELECTRONIC_POLICY_ZNCD_DAA")
+        private ELECTRONICPOLICYZNCDDAADTO electronicPolicyZncdDaa;
+
+        @JsonProperty("ELECTRONIC_POLICY_ZNCD_DZA")
+        private ELECTRONICPOLICYZNCDDZADTO electronicPolicyZncdDza;
+
+        @JsonProperty("ELECTRONIC_POLICY_ZNCD_DAH")
+        private ELECTRONICPOLICYZNCDDAHDTO electronicPolicyZncdDah;
+
+        @JsonProperty("DMS_TO_CPZX_SWITCH")
+        private String dmsToCpzxSwitch;
+
+        @JsonProperty("CORPORATECUSTOM_NETSALES_SWITCH")
+        private String corporatecustomNetsalesSwitch;
+
+        @JsonProperty("UNION_PROJECTCODE_EDIT_SWITCH")
+        private String unionProjectcodeEditSwitch;
+
+        @JsonProperty("ELECTRONIC_POLICY_ZNCD_DZB")
+        private ELECTRONICPOLICYZNCDDZBDTO electronicPolicyZncdDzb;
+
+        @JsonProperty("TBSJ_PRPALL_24781787")
+        private String tbsjPrpall24781787;
+
+        @JsonProperty("ELECTRONIC_POLICY_DZA")
+        private String electronicPolicyDza;
+
+        @JsonProperty("ELECTRONIC_POLICY_DAH")
+        private Object electronicPolicyDah;
+
+        @JsonProperty("TBSJ_PRPALL_14641720")
+        private String tbsjPrpall14641720;
+
+        @JsonProperty("IsNewPay")
+        private String isNewPay;
+
+        @JsonProperty("NetProp_BJ")
+        private Object netpropBj;
+
+        @JsonProperty("ELECTRONIC_POLICY_DZB")
+        private String electronicPolicyDzb;
+
+        @JsonProperty("IS_ENDOR_SHOW")
+        private String isEndorShow;
+
+        @JsonProperty("PTEXTEDIT_SWITCH")
+        private String ptexteditSwitch;
+
+        @JsonProperty("JSY_API_QUERYLASTPOLICY_SWITCH")
+        private String jsyApiQuerylastpolicySwitch;
+
+        @JsonProperty("TBSJ_PRPALL_20531425")
+        private String tbsjPrpall20531425;
+
+        @JsonProperty("TBSJ_SFF276_13474645")
+        private String tbsjSff27613474645;
+
+        @JsonProperty("CLAIM_WARNING")
+        private String claimWarning;
+
+        @JsonProperty("ELECTRONIC_POLICY_ZNCD_DAU")
+        private ELECTRONICPOLICYZNCDDAUDTO electronicPolicyZncdDau;
+
+        @JsonProperty("NETENDOR_SWITCHDGA")
+        private Object netendorSwitchdga;
+
+        @JsonProperty("PROP_BJSORDERNUMBER_SHOW")
+        private String propBjsordernumberShow;
+
+        @JsonProperty("ELECTRONIC_POLICY_DAU")
+        private Object electronicPolicyDau;
+
+        @JsonProperty("ELECTRONIC_POLICY_ZNCD_DAY")
+        private ELECTRONICPOLICYZNCDDAYDTO electronicPolicyZncdDay;
+
+        @JsonProperty("TBSJ_PRPALL_16032395")
+        private String tbsjPrpall16032395;
+
+        @JsonProperty("TBSJ_PRPALL_16396589")
+        private String tbsjPrpall16396589;
+
+        @JsonProperty("AMOUNTFLOAT")
+        private String amountfloat;
+
+        @JsonProperty("isNetProp_DAA")
+        private String isnetpropDaa;
+
+        @JsonProperty("CarChecker_usertype")
+        private String carcheckerUsertype;
+
+        @JsonProperty("CARMODELGRADE_SWITCH")
+        private String carmodelgradeSwitch;
+
+        @JsonProperty("PROP_NCD_SHOW")
+        private String propNcdShow;
+
+        @JsonProperty("SFF_UNION")
+        private String sffUnion;
+
+        @JsonProperty("New_Power_Check")
+        private String newPowerCheck;
+
+        @JsonProperty("QUERYINTERVAL")
+        private String queryinterval;
+
+        @JsonProperty("TBSJ_PRPALL_23871106")
+        private String tbsjPrpall23871106;
+
+        @JsonProperty("API_DMS_SWITCH")
+        private String apiDmsSwitch;
+
+        @JsonProperty("DRIVING_SERVICE_NUM")
+        private Object drivingServiceNum;
+
+        @JsonProperty("JSY_API_ENDOR_QUERYLASTPOLICY_SWITCH")
+        private String jsyApiEndorQuerylastpolicySwitch;
+
+        @JsonProperty("TBSJ_PRPALL_16595713")
+        private String tbsjPrpall16595713;
+
+        @JsonProperty("SHOW_FEPROJECTCODE")
+        private String showFeprojectcode;
+
+        @JsonProperty("TBSJ_PRPALL_17590818")
+        private Object tbsjPrpall17590818;
+
+        @JsonProperty("ENDOR_BATCH_DELETE_APPLYNO_SWITCH")
+        private String endorBatchDeleteApplynoSwitch;
+
+        @JsonProperty("preDiscount_readOnly")
+        private String prediscountReadonly;
+
+        @JsonProperty("XB_COMPLAINT_DETAILS_SWITCH")
+        private String xbComplaintDetailsSwitch;
+
+        @JsonProperty("IS_SEND_EMAIL_MSG_DAA")
+        private String isSendEmailMsgDaa;
+
+        @JsonProperty("kindcode050602_config_DAA")
+        private String kindcode050602ConfigDaa;
+
+        @JsonProperty("PILE_SWITCH")
+        private String pileSwitch;
+
+        @JsonProperty("TBSJ_PRPALL_202262501")
+        private String tbsjPrpall202262501;
+
+        @JsonProperty("NOTFEE_WHITE_LIST")
+        private String notfeeWhiteList;
+
+        @JsonProperty("IS_SEND_EMAIL_MSG_DZB")
+        private String isSendEmailMsgDzb;
+
+        @JsonProperty("SHARE_AMOUNT_SWITCH")
+        private String shareAmountSwitch;
+
+        @JsonProperty("monopolyConfigFlag")
+        private String monopolyConfigFlag;
+
+        @JsonProperty("IS_SEND_EMAIL_MSG_DZA")
+        private String isSendEmailMsgDza;
+
+        @JsonProperty("IS_CARINFO_PLAT")
+        private String isCarinfoPlat;
+
+        @JsonProperty("TBSJ_PRPALL_19287379")
+        private String tbsjPrpall19287379;
+
+        @JsonProperty("CHECK_SERVICE_NUM")
+        private String checkServiceNum;
+
+        @JsonProperty("AMOUNTFLOATQ58")
+        private String amountfloatq58;
+
+        @JsonProperty("TBSJ_CIF_12965244")
+        private String tbsjCif12965244;
+
+        @JsonProperty("CUSTOMCLUB_API_GIFTPACKAGE_SWITCH")
+        private String customclubApiGiftpackageSwitch;
+
+        @JsonProperty("endor_newcar_khzz_switch")
+        private String endorNewcarKhzzSwitch;
+
+        @JsonProperty("MODIFY_PHONENUMBER")
+        private Object modifyPhonenumber;
+
+        @JsonProperty("USEYEAR_CB")
+        private String useyearCb;
+
+        @JsonProperty("_CARSHIPTAXFLAG_CB")
+        private String carshiptaxflagCb;
+
+        @JsonProperty("TBSJ_PRPALL_21791483")
+        private Object tbsjPrpall21791483;
+
+        @JsonProperty("NEWCAR_SWITCH")
+        private String newcarSwitch;
+
+        @JsonProperty("TBSJ_PRPALL_13451808")
+        private String tbsjPrpall13451808;
+
+        @JsonProperty("UNION_EBS_RECOMMEND_PLAN_SWITCH")
+        private String unionEbsRecommendPlanSwitch;
+
+        @JsonProperty("CONTRACTEXTEND_HIGH")
+        private String contractextendHigh;
+
+        @JsonProperty("_SMSFLAG")
+        private String smsflag;
+
+        @JsonProperty("ELECTRONIC_POLICY_DAA")
+        private String electronicPolicyDaa;
+
+        @JsonProperty("IS_JSY_CARMODEL_QUERY")
+        private String isJsyCarmodelQuery;
+
+        @JsonProperty("POWERGRID_LOSSINSURANCE_SWITCH")
+        private String powergridLossinsuranceSwitch;
+
+        @JsonProperty("TBSJ_PRPALL_19298091")
+        private String tbsjPrpall19298091;
+
+        @JsonProperty("realCheck")
+        private String realCheck;
+
+        @JsonProperty("NETENDOR_SWITCHDDA")
+        private Object netendorSwitchdda;
+
+        @JsonProperty("paytype_zfbzl_swtich")
+        private String paytypeZfbzlSwtich;
+
+        @JsonProperty("QR_TIPS")
+        private Object qrTips;
+
+        @JsonProperty("kindcode051052_config")
+        private Object kindcode051052Config;
+
+        @JsonProperty("ISNEWRESOURCESWITCH")
+        private String isnewresourceswitch;
+
+        @JsonProperty("API_SECURITY_CHECK")
+        private String apiSecurityCheck;
+
+        @JsonProperty("UNION_SERVICEMANAGER_GROUPTYPE_COMCODE_SWITCH")
+        private String unionServicemanagerGrouptypeComcodeSwitch;
+
+        @JsonProperty("TBSJ_CIF_25149856")
+        private String tbsjCif25149856;
+
+        @JsonProperty("GROUP_SHOW")
+        private String groupShow;
+
+        @JsonProperty("isNetProp_DDA")
+        private String isnetpropDda;
+
+        @JsonProperty("prpallVersion_PUB")
+        private String prpallversionPub;
+
+        @JsonProperty("CIF_RECONFIG")
+        private String cifReconfig;
+
+        @JsonProperty("QUESTIONNAIRE_SWITCH")
+        private String questionnaireSwitch;
+
+        @JsonProperty("IMAGE_VISA_DZDZ_SWITCH")
+        private String imageVisaDzdzSwitch;
+
+        @JsonProperty("CENSORSHIP_SERVICE_NUM")
+        private Object censorshipServiceNum;
+
+        @JsonProperty("kindcode050602_config_DGA")
+        private Object kindcode050602ConfigDga;
+
+        @JsonProperty("PRPALLSET_SHOW")
+        private String prpallsetShow;
+
+        @JsonProperty("PRPINS_SWITCH")
+        private String prpinsSwitch;
+
+        @JsonProperty("PRESALECAR_SWITCH")
+        private String presalecarSwitch;
+
+        @JsonProperty("DAH_SHOW")
+        private String dahShow;
+
+        @JsonProperty("NEWKINDFLAG")
+        private String newkindflag;
+
+        @JsonProperty("PM_VEHICLE_SWITCH")
+        private Object pmVehicleSwitch;
+
+        @JsonProperty("QUERY_POLICY_SHOW")
+        private String queryPolicyShow;
+
+        @JsonProperty("IS_SPECIAL_CPZX")
+        private String isSpecialCpzx;
+
+        @JsonProperty("BUGREPORT_AUTH_USERID_SWITCH")
+        private String bugreportAuthUseridSwitch;
+
+        @JsonProperty("elecInvoiceDefault")
+        private String elecInvoiceDefault;
+
+        @JsonProperty("IS_SEND_EMAIL_MSG_DDA")
+        private String isSendEmailMsgDda;
+
+        @JsonProperty("IS_JUMP_SFF")
+        private String isJumpSff;
+
+        @JsonProperty("ELECTRONIC_POLICY_ZNCD_DDA")
+        private ELECTRONICPOLICYZNCDDDADTO electronicPolicyZncdDda;
+
+        @JsonProperty("TBSJ_PRPALL_12340236")
+        private String tbsjPrpall12340236;
+
+        @JsonProperty("ELECTRONIC_POLICY_DGA")
+        private String electronicPolicyDga;
+
+        @JsonProperty("IMAGE_FPCHECK_SWITCH")
+        private String imageFpcheckSwitch;
+
+        @JsonProperty("CIF_2PHASE_CONFIG")
+        private String cif2phaseConfig;
+
+        @JsonProperty("PURCHASEPRICEUP")
+        private String purchasepriceup;
+
+        @JsonProperty("TBSJ_PRPALL_12008082")
+        private Object tbsjPrpall12008082;
+
+        @JsonProperty("NETENDOR_SWITCHDAU")
+        private Object netendorSwitchdau;
+
+        @JsonProperty("VEHICLESTANDARD_SWITCH")
+        private String vehiclestandardSwitch;
+
+        @JsonProperty("IMS_TO_NWGL_SWITCH")
+        private String imsToNwglSwitch;
+
+        @JsonProperty("ROAD_SERVICE_NUM")
+        private String roadServiceNum;
+
+        @JsonProperty("IS_SEND_EMAIL_DEFAULT")
+        private String isSendEmailDefault;
+
+        @JsonProperty("UNIONCHECK")
+        private String unioncheck;
+
+        @JsonProperty("IMAGE_UPLOAD_VEDIO_SWITCH")
+        private String imageUploadVedioSwitch;
+
+        @JsonProperty("TBSJ_YXWECOM_17639879")
+        private String tbsjYxwecom17639879;
+
+        @JsonProperty("TBSJ_PRPALL_20956577")
+        private String tbsjPrpall20956577;
+
+        @JsonProperty("pay_yxwecom_default_switch")
+        private String payYxwecomDefaultSwitch;
+
+        @JsonProperty("AUTHORITY_FLAG")
+        private String authorityFlag;
+
+        @JsonProperty("GROUP_JSY_CIFPROCESSDATA_SWITCH")
+        private String groupJsyCifprocessdataSwitch;
+
+        @JsonProperty("union_plan_query_switch")
+        private String unionPlanQuerySwitch;
+
+        @JsonProperty("epolicyname_switch")
+        private String epolicynameSwitch;
+
+        @JsonProperty("TBSJ_SZSLTS_23157396")
+        private Object tbsjSzslts23157396;
+
+        @JsonProperty("kindcode051053_config")
+        private Object kindcode051053Config;
+
+        @JsonProperty("NETENDOR_SWITCHDAY")
+        private Object netendorSwitchday;
+
+        @JsonProperty("IMAGE_PSCHECK_SWITCH")
+        private String imagePscheckSwitch;
+
+        @JsonProperty("TBSJ_PRPALL_25814534")
+        private String tbsjPrpall25814534;
+
+        @NoArgsConstructor
+        @Data
+        public static class ELECTRONICPOLICYZNCDDGADTO {
+            @JsonProperty("default")
+            private String defaultX;
+
+            @JsonProperty("name")
+            private String name;
+
+            @JsonProperty("type")
+            private String type;
+        }
+
+        @NoArgsConstructor
+        @Data
+        public static class ELECTRONICPOLICYZNCDDAADTO {
+            @JsonProperty("default")
+            private String defaultX;
+
+            @JsonProperty("name")
+            private String name;
+
+            @JsonProperty("type")
+            private String type;
+        }
+
+        @NoArgsConstructor
+        @Data
+        public static class ELECTRONICPOLICYZNCDDZADTO {
+            @JsonProperty("default")
+            private String defaultX;
+
+            @JsonProperty("name")
+            private String name;
+
+            @JsonProperty("type")
+            private String type;
+        }
+
+        @NoArgsConstructor
+        @Data
+        public static class ELECTRONICPOLICYZNCDDAHDTO {
+            @JsonProperty("default")
+            private String defaultX;
+
+            @JsonProperty("name")
+            private String name;
+
+            @JsonProperty("type")
+            private String type;
+        }
+
+        @NoArgsConstructor
+        @Data
+        public static class ELECTRONICPOLICYZNCDDZBDTO {
+            @JsonProperty("default")
+            private String defaultX;
+
+            @JsonProperty("name")
+            private String name;
+
+            @JsonProperty("type")
+            private String type;
+        }
+
+        @NoArgsConstructor
+        @Data
+        public static class ELECTRONICPOLICYZNCDDAUDTO {
+        }
+
+        @NoArgsConstructor
+        @Data
+        public static class ELECTRONICPOLICYZNCDDAYDTO {
+        }
+
+        @NoArgsConstructor
+        @Data
+        public static class ELECTRONICPOLICYZNCDDDADTO {
+            @JsonProperty("default")
+            private String defaultX;
+
+            @JsonProperty("name")
+            private String name;
+
+            @JsonProperty("type")
+            private String type;
+        }
+    }
+
+    @NoArgsConstructor
+    @Data
+    public static class IndivAddTypeDTO {
+        @JsonProperty("DDA")
+        private List<DDADTO> dda;
+
+        @JsonProperty("DAA")
+        private List<DAADTO> daa;
+
+        @JsonProperty("DAH")
+        private List<DAHDTO> dah;
+
+        @JsonProperty("DZB")
+        private List<DZBDTO> dzb;
+
+        @JsonProperty("DGA")
+        private List<DGADTO> dga;
+
+        @NoArgsConstructor
+        @Data
+        public static class DDADTO {
+            @JsonProperty("label")
+            private String label;
+
+            @JsonProperty("value")
+            private String value;
+        }
+
+        @NoArgsConstructor
+        @Data
+        public static class DAADTO {
+            @JsonProperty("label")
+            private String label;
+
+            @JsonProperty("value")
+            private String value;
+        }
+
+        @NoArgsConstructor
+        @Data
+        public static class DAHDTO {
+            @JsonProperty("label")
+            private String label;
+
+            @JsonProperty("value")
+            private String value;
+        }
+
+        @NoArgsConstructor
+        @Data
+        public static class DZBDTO {
+            @JsonProperty("label")
+            private String label;
+
+            @JsonProperty("value")
+            private String value;
+        }
+
+        @NoArgsConstructor
+        @Data
+        public static class DGADTO {
+            @JsonProperty("label")
+            private String label;
+
+            @JsonProperty("value")
+            private String value;
+        }
+    }
+
+    @NoArgsConstructor
+    @Data
+    public static class UnitNatureDTO {
+
+        @JsonProperty("DDA")
+        private List<DDADTO> dda;
+
+        @JsonProperty("DAA")
+        private List<DAADTO> daa;
+
+        @JsonProperty("DAH")
+        private List<DAHDTO> dah;
+
+        @JsonProperty("DZB")
+        private List<DZBDTO> dzb;
+
+        @JsonProperty("DGA")
+        private List<DGADTO> dga;
+
+        @NoArgsConstructor
+        @Data
+        public static class DDADTO {
+
+            @JsonProperty("label")
+            private String label;
+
+            @JsonProperty("value")
+            private String value;
+        }
+
+        @NoArgsConstructor
+        @Data
+        public static class DAADTO {
+
+            @JsonProperty("label")
+            private String label;
+
+            @JsonProperty("value")
+            private String value;
+        }
+
+        @NoArgsConstructor
+        @Data
+        public static class DAHDTO {
+
+            @JsonProperty("label")
+            private String label;
+
+            @JsonProperty("value")
+            private String value;
+        }
+
+        @NoArgsConstructor
+        @Data
+        public static class DZBDTO {
+
+            @JsonProperty("label")
+            private String label;
+
+            @JsonProperty("value")
+            private String value;
+        }
+
+        @NoArgsConstructor
+        @Data
+        public static class DGADTO {
+
+            @JsonProperty("label")
+            private String label;
+
+            @JsonProperty("value")
+            private String value;
+        }
+    }
+
+    @NoArgsConstructor
+    @Data
+    public static class CountryCodeDTO {
+
+        @JsonProperty("DDA")
+        private List<DDADTO> dda;
+
+        @JsonProperty("DAA")
+        private List<DAADTO> daa;
+
+        @JsonProperty("DAH")
+        private List<DAHDTO> dah;
+
+        @JsonProperty("DZB")
+        private List<DZBDTO> dzb;
+
+        @JsonProperty("DGA")
+        private List<DGADTO> dga;
+
+        @NoArgsConstructor
+        @Data
+        public static class DDADTO {
+
+            @JsonProperty("label")
+            private String label;
+
+            @JsonProperty("value")
+            private String value;
+        }
+
+        @NoArgsConstructor
+        @Data
+        public static class DAADTO {
+
+            @JsonProperty("label")
+            private String label;
+
+            @JsonProperty("value")
+            private String value;
+        }
+
+        @NoArgsConstructor
+        @Data
+        public static class DAHDTO {
+
+            @JsonProperty("label")
+            private String label;
+
+            @JsonProperty("value")
+            private String value;
+        }
+
+        @NoArgsConstructor
+        @Data
+        public static class DZBDTO {
+
+            @JsonProperty("label")
+            private String label;
+
+            @JsonProperty("value")
+            private String value;
+        }
+
+        @NoArgsConstructor
+        @Data
+        public static class DGADTO {
+
+            @JsonProperty("label")
+            private String label;
+
+            @JsonProperty("value")
+            private String value;
+        }
+    }
+
+    @NoArgsConstructor
+    @Data
+    public static class GroupAddTypeDTO {
+
+        @JsonProperty("DDA")
+        private List<DDADTO> dda;
+
+        @JsonProperty("DAA")
+        private List<DAADTO> daa;
+
+        @JsonProperty("DAH")
+        private List<DAHDTO> dah;
+
+        @JsonProperty("DZB")
+        private List<DZBDTO> dzb;
+
+        @JsonProperty("DGA")
+        private List<DGADTO> dga;
+
+        @NoArgsConstructor
+        @Data
+        public static class DDADTO {
+
+            @JsonProperty("label")
+            private String label;
+
+            @JsonProperty("value")
+            private String value;
+        }
+
+        @NoArgsConstructor
+        @Data
+        public static class DAADTO {
+
+            @JsonProperty("label")
+            private String label;
+
+            @JsonProperty("value")
+            private String value;
+        }
+
+        @NoArgsConstructor
+        @Data
+        public static class DAHDTO {
+
+            @JsonProperty("label")
+            private String label;
+
+            @JsonProperty("value")
+            private String value;
+        }
+
+        @NoArgsConstructor
+        @Data
+        public static class DZBDTO {
+
+            @JsonProperty("label")
+            private String label;
+
+            @JsonProperty("value")
+            private String value;
+        }
+
+        @NoArgsConstructor
+        @Data
+        public static class DGADTO {
+
+            @JsonProperty("label")
+            private String label;
+
+            @JsonProperty("value")
+            private String value;
+        }
+    }
+
+    @NoArgsConstructor
+    @Data
+    public static class ProvinceAreaCodesDTO {
+
+        @JsonProperty("label")
+        private String label;
+
+        @JsonProperty("value")
+        private String value;
+    }
+
+    @NoArgsConstructor
+    @Data
+    public static class PayRefReasonDTO {
+
+        @JsonProperty("label")
+        private String label;
+
+        @JsonProperty("value")
+        private String value;
+    }
+
+    @NoArgsConstructor
+    @Data
+    public static class CertificateTypesDTO {
+
+        @JsonProperty("label")
+        private String label;
+
+        @JsonProperty("value")
+        private String value;
+    }
+
+    @NoArgsConstructor
+    @Data
+    public static class CertificateTypesGDTO {
+
+        @JsonProperty("label")
+        private String label;
+
+        @JsonProperty("value")
+        private String value;
+    }
+
+    @NoArgsConstructor
+    @Data
+    public static class CertificateTypesPDTO {
+
+        @JsonProperty("label")
+        private String label;
+
+        @JsonProperty("value")
+        private String value;
+    }
+
+}

+ 91 - 0
tenant/insurance/quotation-renbao/src/main/java/com/jzg/quotation/renbao/crawler/entity/response/RenBaoCrawlerOrderPaymentData.java

@@ -0,0 +1,91 @@
+package com.jzg.quotation.renbao.crawler.entity.response;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.List;
+
+/**
+ * @author wks
+ * @version 1.0
+ * @description: 人保财险 支付二维码 响应参数
+ * @date 2025/12/5 15:05
+ */
+@NoArgsConstructor
+@Data
+public class RenBaoCrawlerOrderPaymentData {
+
+    @JsonProperty("exchangeNo")
+    private String exchangeNo;
+
+    @JsonProperty("errorMessage")
+    private Object errorMessage;
+
+    @JsonProperty("codeUrl")
+    private Object codeUrl;
+
+    @JsonProperty("expiretime")
+    private Object expiretime;
+
+    @JsonProperty("transource")
+    private Object transource;
+
+    @JsonProperty("paymentcode")
+    private Object paymentcode;
+
+    @JsonProperty("paytype")
+    private Object paytype;
+
+    @JsonProperty("sumFee")
+    private Double sumFee;
+
+    @JsonProperty("currency")
+    private String currency;
+
+    @JsonProperty("latestPayDate")
+    private String latestPayDate;
+
+    @JsonProperty("suppaytype")
+    private List<?> suppaytype;
+
+    @JsonProperty("elesignmsgflag")
+    private String elesignmsgflag;
+
+    @JsonProperty("linkurl")
+    private String linkurl;
+
+    @JsonProperty("qrcodeimg")
+    private String qrcodeimg;
+
+    @JsonProperty("changetime")
+    private String changetime;
+
+    @JsonProperty("signQRCodeDateValid")
+    private String signQRCodeDateValid;
+
+    @JsonProperty("posNo")
+    private Object posNo;
+
+    @JsonProperty("payFailureTime")
+    private Object payFailureTime;
+
+    @JsonProperty("transSeq")
+    private Object transSeq;
+
+    @JsonProperty("notice")
+    private Object notice;
+
+    @JsonProperty("circPaymentNo")
+    private Object circPaymentNo;
+
+    @JsonProperty("business")
+    private Object business;
+
+    @JsonProperty("prpjfwechatlist")
+    private List<?> prpjfwechatlist;
+
+    @JsonProperty("businesslist")
+    private List<?> businesslist;
+
+}

+ 600 - 0
tenant/insurance/quotation-renbao/src/main/java/com/jzg/quotation/renbao/crawler/entity/response/RenBaoCrawlerPrepareQueryClaimData.java

@@ -0,0 +1,600 @@
+package com.jzg.quotation.renbao.crawler.entity.response;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.List;
+
+/**
+ * @author wks
+ * @version 1.0
+ * @description: 人保财险 订单查询 响应参数
+ * @date 2025/12/4 14:22
+ */
+@NoArgsConstructor
+@Data
+public class RenBaoCrawlerPrepareQueryClaimData {
+
+    @JsonProperty("pageSize")
+    private Integer pageSize;
+
+    @JsonProperty("start")
+    private Integer start;
+
+    @JsonProperty("totalCount")
+    private Integer totalCount;
+
+    @JsonProperty("message")
+    private Object message;
+
+    @JsonProperty("result")
+    private List<ResultDTO> result;
+
+    @JsonProperty("totalPageCount")
+    private Integer totalPageCount;
+
+    @JsonProperty("currentPageNo")
+    private Integer currentPageNo;
+
+    @NoArgsConstructor
+    @Data
+    public static class ResultDTO {
+
+        @JsonProperty("identifyNumberToBothRecord")
+        private String identifyNumberToBothRecord;
+
+        @JsonProperty("insuranceInfo")
+        private Object insuranceInfo;
+
+        @JsonProperty("unionRiskCode")
+        private Object unionRiskCode;
+
+        @JsonProperty("errorMsg")
+        private Object errorMsg;
+
+        @JsonProperty("token")
+        private Object token;
+
+        @JsonProperty("insuredTypes")
+        private List<String> insuredTypes;
+
+        @JsonProperty("energyFlag")
+        private String energyFlag;
+
+        @JsonProperty("businessNo")
+        private String businessNo;
+
+        @JsonProperty("vinNo")
+        private String vinNo;
+
+        @JsonProperty("licenseNo")
+        private String licenseNo;
+
+        @JsonProperty("carKindCode")
+        private String carKindCode;
+
+        @JsonProperty("engineNo")
+        private String engineNo;
+
+        @JsonProperty("startHour")
+        private Integer startHour;
+
+        @JsonProperty("sumPremium")
+        private Double sumPremium;
+
+        @JsonProperty("othFlag")
+        private String othFlag;
+
+        @JsonProperty("clauseType")
+        private String clauseType;
+
+        @JsonProperty("licenseColorCode")
+        private String licenseColorCode;
+
+        @JsonProperty("carQuoteInsuredIndivVolist")
+        private List<CarQuoteInsuredIndivVolistDTO> carQuoteInsuredIndivVolist;
+
+        @JsonProperty("vehicleIdJsy")
+        private String vehicleIdJsy;
+
+        @JsonProperty("isNetProp")
+        private String isNetProp;
+
+        @JsonProperty("netSales")
+        private String netSales;
+
+        @JsonProperty("modelCodeAlias")
+        private Object modelCodeAlias;
+
+        @JsonProperty("monopolyCode")
+        private String monopolyCode;
+
+        @JsonProperty("insuredCode")
+        private String insuredCode;
+
+        @JsonProperty("deductible")
+        private Object deductible;
+
+        @JsonProperty("thisPayTax")
+        private Object thisPayTax;
+
+        @JsonProperty("prePayTax")
+        private Object prePayTax;
+
+        @JsonProperty("delayPayTax")
+        private Object delayPayTax;
+
+        @JsonProperty("clauseFlag")
+        private String clauseFlag;
+
+        @JsonProperty("dmFlag")
+        private String dmFlag;
+
+        @JsonProperty("sumNetPremium")
+        private Double sumNetPremium;
+
+        @JsonProperty("sumTaxPremium")
+        private Double sumTaxPremium;
+
+        @JsonProperty("businessNature")
+        private String businessNature;
+
+        @JsonProperty("isforbiddenFlag")
+        private String isforbiddenFlag;
+
+        @JsonProperty("ciPayTax")
+        private Object ciPayTax;
+
+        @JsonProperty("connectProposalNo")
+        private String connectProposalNo;
+
+        @JsonProperty("insuredNameE")
+        private Object insuredNameE;
+
+        @JsonProperty("mobileShow")
+        private String mobileShow;
+
+        @JsonProperty("frameNo")
+        private String frameNo;
+
+        @JsonProperty("agentCode")
+        private String agentCode;
+
+        @JsonProperty("riskCode")
+        private String riskCode;
+
+        @JsonProperty("operateDate")
+        private String operateDate;
+
+        @JsonProperty("startDate")
+        private String startDate;
+
+        @JsonProperty("endDate")
+        private String endDate;
+
+        @JsonProperty("policyNo")
+        private Object policyNo;
+
+        @JsonProperty("insuredName1")
+        private String insuredName1;
+
+        @JsonProperty("proposalNo")
+        private Object proposalNo;
+
+        @JsonProperty("underWriteFlag")
+        private String underWriteFlag;
+
+        @JsonProperty("contractNo")
+        private Object contractNo;
+
+        @JsonProperty("discount")
+        private Double discount;
+
+        @JsonProperty("startMinute")
+        private Integer startMinute;
+
+        @JsonProperty("endHour")
+        private Integer endHour;
+
+        @JsonProperty("endMinute")
+        private Integer endMinute;
+
+        @JsonProperty("customerType")
+        private Object customerType;
+
+        @JsonProperty("relationUPolicyInfolist")
+        private Object relationUPolicyInfolist;
+
+        @JsonProperty("agentName")
+        private String agentName;
+
+        @JsonProperty("biPayTax")
+        private Object biPayTax;
+
+        @JsonProperty("isDangerous")
+        private String isDangerous;
+
+        @JsonProperty("operatorCode")
+        private String operatorCode;
+
+        @JsonProperty("insuredType")
+        private String insuredType;
+
+        @JsonProperty("identifyNumber")
+        private String identifyNumber;
+
+        @JsonProperty("identifyType")
+        private String identifyType;
+
+        @JsonProperty("identifyNumberE")
+        private String identifyNumberE;
+
+        @JsonProperty("insuredName")
+        private String insuredName;
+
+        @JsonProperty("comCode")
+        private String comCode;
+
+        @JsonProperty("insuredProposalNo")
+        private Object insuredProposalNo;
+
+        @JsonProperty("insuredPolicyNo")
+        private Object insuredPolicyNo;
+
+        @JsonProperty("insuredNameSMS")
+        private String insuredNameSMS;
+
+        @JsonProperty("mobileSMS")
+        private String mobileSMS;
+
+        @JsonProperty("insuredFlagSMS")
+        private String insuredFlagSMS;
+
+        @JsonProperty("modelCode")
+        private String modelCode;
+
+        @JsonProperty("exchangeNo")
+        private Object exchangeNo;
+
+        @JsonProperty("connectPolicyNo")
+        private Object connectPolicyNo;
+
+        @JsonProperty("hklicensePlateNo")
+        private Object hklicensePlateNo;
+
+        @JsonProperty("molicensePlateNo")
+        private Object molicensePlateNo;
+
+        @JsonProperty("brandName")
+        private String brandName;
+
+        @JsonProperty("totalCounts")
+        private Object totalCounts;
+
+        @JsonProperty("relationPolicyInfo")
+        private RelationPolicyInfoDTO relationPolicyInfo;
+
+        @JsonProperty("underViewList")
+        private Object underViewList;
+
+        @JsonProperty("bzflag")
+        private String bzflag;
+
+        @JsonProperty("riskCName")
+        private Object riskCName;
+
+        @JsonProperty("policyFlag")
+        private String policyFlag;
+
+        @JsonProperty("undwrtView")
+        private Object undwrtView;
+
+        @JsonProperty("signStatus")
+        private Object signStatus;
+
+        @JsonProperty("msgStatus")
+        private String msgStatus;
+
+        @JsonProperty("isMsgCheck")
+        private String isMsgCheck;
+
+        @JsonProperty("connectUPolicyNo")
+        private Object connectUPolicyNo;
+
+        @JsonProperty("isSignCheck")
+        private Object isSignCheck;
+
+        @JsonProperty("insuredName1E")
+        private Object insuredName1E;
+
+        @JsonProperty("dbRecordFlag")
+        private Object dbRecordFlag;
+
+        @JsonProperty("oldProposalNo")
+        private Object oldProposalNo;
+
+        @JsonProperty("sffFlag")
+        private String sffFlag;
+
+        @JsonProperty("connectUProposalNo")
+        private Object connectUProposalNo;
+
+        @NoArgsConstructor
+        @Data
+        public static class RelationPolicyInfoDTO {
+
+            @JsonProperty("connectProposalNo")
+            private String connectProposalNo;
+
+            @JsonProperty("connectPolicyNo")
+            private Object connectPolicyNo;
+        }
+
+        @NoArgsConstructor
+        @Data
+        public static class CarQuoteInsuredIndivVolistDTO {
+
+            @JsonProperty("identifyNumberToBothRecord")
+            private String identifyNumberToBothRecord;
+
+            @JsonProperty("modelEname")
+            private Object modelEname;
+
+            @JsonProperty("currentGrowth")
+            private Object currentGrowth;
+
+            @JsonProperty("insuredFlag")
+            private String insuredFlag;
+
+            @JsonProperty("countryCode")
+            private Object countryCode;
+
+            @JsonProperty("secondaryIdentifyNumber")
+            private Object secondaryIdentifyNumber;
+
+            @JsonProperty("aliasName")
+            private Object aliasName;
+
+            @JsonProperty("processDataPrimaryKey")
+            private Object processDataPrimaryKey;
+
+            @JsonProperty("insuredCode")
+            private String insuredCode;
+
+            @JsonProperty("realFlag")
+            private Object realFlag;
+
+            @JsonProperty("sex")
+            private Object sex;
+
+            @JsonProperty("postCode")
+            private Object postCode;
+
+            @JsonProperty("signCode")
+            private Object signCode;
+
+            @JsonProperty("unitType")
+            private Object unitType;
+
+            @JsonProperty("drivingLicenseNo")
+            private Object drivingLicenseNo;
+
+            @JsonProperty("occupationCode")
+            private Object occupationCode;
+
+            @JsonProperty("drivingYears")
+            private Object drivingYears;
+
+            @JsonProperty("selfYearIncome")
+            private Object selfYearIncome;
+
+            @JsonProperty("appendPrintName")
+            private Object appendPrintName;
+
+            @JsonProperty("financeFlag")
+            private Object financeFlag;
+
+            @JsonProperty("drivingCarType")
+            private Object drivingCarType;
+
+            @JsonProperty("acceptLicenseDate")
+            private Object acceptLicenseDate;
+
+            @JsonProperty("causeTroubleTimes")
+            private Object causeTroubleTimes;
+
+            @JsonProperty("insuredNature")
+            private Object insuredNature;
+
+            @JsonProperty("serialNo")
+            private Object serialNo;
+
+            @JsonProperty("remark")
+            private Object remark;
+
+            @JsonProperty("payAccountName")
+            private Object payAccountName;
+
+            @JsonProperty("versionNo")
+            private Object versionNo;
+
+            @JsonProperty("secondaryIdentifyType")
+            private Object secondaryIdentifyType;
+
+            @JsonProperty("customerCodeAll")
+            private String customerCodeAll;
+
+            @JsonProperty("renameFlagResult")
+            private Object renameFlagResult;
+
+            @JsonProperty("creditDateValid")
+            private Object creditDateValid;
+
+            @JsonProperty("groupCode")
+            private Object groupCode;
+
+            @JsonProperty("orgDateValid")
+            private Object orgDateValid;
+
+            @JsonProperty("radarDataResult")
+            private Object radarDataResult;
+
+            @JsonProperty("isPersonConsistentWithID")
+            private Object isPersonConsistentWithID;
+
+            @JsonProperty("modifyFlag")
+            private Object modifyFlag;
+
+            @JsonProperty("scanCard")
+            private Object scanCard;
+
+            @JsonProperty("auditStatus")
+            private Object auditStatus;
+
+            @JsonProperty("checkStatus")
+            private Object checkStatus;
+
+            @JsonProperty("samCode")
+            private Object samCode;
+
+            @JsonProperty("birthday")
+            private Object birthday;
+
+            @JsonProperty("beneficiaryBlackType")
+            private Object beneficiaryBlackType;
+
+            @JsonProperty("identifyCheckResult")
+            private Object identifyCheckResult;
+
+            @JsonProperty("birthDate")
+            private Object birthDate;
+
+            @JsonProperty("insuredType")
+            private String insuredType;
+
+            @JsonProperty("mobile")
+            private String mobile;
+
+            @JsonProperty("age")
+            private Object age;
+
+            @JsonProperty("identifyNumber")
+            private String identifyNumber;
+
+            @JsonProperty("identifyType")
+            private String identifyType;
+
+            @JsonProperty("addressCNameE")
+            private Object addressCNameE;
+
+            @JsonProperty("insuredAddress")
+            private Object insuredAddress;
+
+            @JsonProperty("email")
+            private Object email;
+
+            @JsonProperty("emailE")
+            private Object emailE;
+
+            @JsonProperty("identifyNumberE")
+            private String identifyNumberE;
+
+            @JsonProperty("insuredName")
+            private String insuredName;
+
+            @JsonProperty("unifiedSocialCreditCode")
+            private Object unifiedSocialCreditCode;
+
+            @JsonProperty("businessLicense")
+            private Object businessLicense;
+
+            @JsonProperty("groupCustFlag")
+            private Object groupCustFlag;
+
+            @JsonProperty("phoneNumber")
+            private Object phoneNumber;
+
+            @JsonProperty("revenueCode")
+            private Object revenueCode;
+
+            @JsonProperty("province")
+            private Object province;
+
+            @JsonProperty("city")
+            private Object city;
+
+            @JsonProperty("area")
+            private Object area;
+
+            @JsonProperty("dateValid")
+            private Object dateValid;
+
+            @JsonProperty("startDateValid")
+            private Object startDateValid;
+
+            @JsonProperty("resident")
+            private Object resident;
+
+            @JsonProperty("registFund")
+            private Object registFund;
+
+            @JsonProperty("contactPersonName")
+            private Object contactPersonName;
+
+            @JsonProperty("mobileE")
+            private String mobileE;
+
+            @JsonProperty("issure")
+            private Object issure;
+
+            @JsonProperty("certiStartDate")
+            private Object certiStartDate;
+
+            @JsonProperty("certiEndDate")
+            private Object certiEndDate;
+
+            @JsonProperty("nation")
+            private Object nation;
+
+            @JsonProperty("bongdingSource")
+            private Object bongdingSource;
+
+            @JsonProperty("leaderBlackType")
+            private Object leaderBlackType;
+
+            @JsonProperty("holdingpersonBlackType")
+            private Object holdingpersonBlackType;
+
+            @JsonProperty("agentBlackType")
+            private Object agentBlackType;
+
+            @JsonProperty("latestGrowth")
+            private Object latestGrowth;
+
+            @JsonProperty("grade")
+            private Object grade;
+
+            @JsonProperty("businessControlList")
+            private Object businessControlList;
+
+            @JsonProperty("relationShipCode")
+            private Object relationShipCode;
+
+            @JsonProperty("isStaff")
+            private Object isStaff;
+
+            @JsonProperty("isOldCustomer")
+            private Object isOldCustomer;
+
+            @JsonProperty("isServiceManager")
+            private Object isServiceManager;
+
+            @JsonProperty("birthDay")
+            private Object birthDay;
+
+            @JsonProperty("samType")
+            private Object samType;
+        }
+    }
+}

+ 45 - 0
tenant/insurance/quotation-renbao/src/main/java/com/jzg/quotation/renbao/crawler/entity/response/RenBaoCrawlerQueryCodeData.java

@@ -0,0 +1,45 @@
+package com.jzg.quotation.renbao.crawler.entity.response;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.util.List;
+
+
+/**
+ * @description: TODO 
+ * @author wks
+ * @date 2025/12/4 15:34
+ * @version 1.0
+ */
+@NoArgsConstructor
+@Data
+public class RenBaoCrawlerQueryCodeData implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 1166523241780935080L;
+
+    @JsonProperty("pageSize")
+    private Integer pageSize;
+
+    @JsonProperty("start")
+    private Integer start;
+
+    @JsonProperty("totalCount")
+    private Integer totalCount;
+
+    @JsonProperty("message")
+    private Object message;
+
+    @JsonProperty("result")
+    private List<List<String>> result;
+
+    @JsonProperty("totalPageCount")
+    private Integer totalPageCount;
+
+    @JsonProperty("currentPageNo")
+    private Integer currentPageNo;
+}

+ 55 - 0
tenant/insurance/quotation-renbao/src/main/java/com/jzg/quotation/renbao/crawler/entity/response/RenBaoCrawlerQueryHandler1CodeData.java

@@ -0,0 +1,55 @@
+package com.jzg.quotation.renbao.crawler.entity.response;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.List;
+
+/**
+ * @description: TODO 
+ * @author wks
+ * @date 2025/12/4 15:34
+ * @version 1.0
+ */
+@NoArgsConstructor
+@Data
+public class RenBaoCrawlerQueryHandler1CodeData {
+
+
+    @JsonProperty("pageSize")
+    private Integer pageSize;
+
+    @JsonProperty("start")
+    private Integer start;
+
+    @JsonProperty("totalCount")
+    private Integer totalCount;
+
+    @JsonProperty("message")
+    private Object message;
+
+    @JsonProperty("result")
+    private List<ResultDTO> result;
+
+    @JsonProperty("totalPageCount")
+    private Integer totalPageCount;
+
+    @JsonProperty("currentPageNo")
+    private Integer currentPageNo;
+
+    @NoArgsConstructor
+    @Data
+    public static class ResultDTO {
+        @JsonProperty("userCode")
+        private String userCode;
+
+        @JsonProperty("userName")
+        private String userName;
+
+        @JsonProperty("groupUserCode")
+        private String groupUserCode;
+    }
+}
+
+

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

@@ -0,0 +1,40 @@
+package com.jzg.quotation.renbao.crawler.entity.response;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.List;
+
+/**
+ * @description: TODO 
+ * @author wks
+ * @date 2025/12/4 15:34
+ * @version 1.0
+ */
+@NoArgsConstructor
+@Data
+public class RenBaoCrawlerQueryHandlerCodeData {
+
+
+    @JsonProperty("pageSize")
+    private Integer pageSize;
+
+    @JsonProperty("start")
+    private Integer start;
+
+    @JsonProperty("totalCount")
+    private Integer totalCount;
+
+    @JsonProperty("message")
+    private Object message;
+
+    @JsonProperty("totalPageCount")
+    private Integer totalPageCount;
+
+    @JsonProperty("currentPageNo")
+    private Integer currentPageNo;
+
+    @JsonProperty("result")
+    private List<List<String>> result;
+}

+ 79 - 0
tenant/insurance/quotation-renbao/src/main/java/com/jzg/quotation/renbao/crawler/entity/response/RenBaoCrawlerQueryServiceManagerData.java

@@ -0,0 +1,79 @@
+package com.jzg.quotation.renbao.crawler.entity.response;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.List;
+
+/**
+ * @description: TODO 
+ * @author wks
+ * @date 2025/12/4 15:34
+ * @version 1.0
+ */
+@NoArgsConstructor
+@Data
+public class RenBaoCrawlerQueryServiceManagerData {
+
+    @JsonProperty("pageSize")
+    private Integer pageSize;
+
+    @JsonProperty("start")
+    private Integer start;
+
+    @JsonProperty("data")
+    private List<DataDTO> data;
+
+    @JsonProperty("totalCount")
+    private Integer totalCount;
+
+    @NoArgsConstructor
+    @Data
+    public static class DataDTO {
+        @JsonProperty("userName")
+        private String userName;
+
+        @JsonProperty("userCode")
+        private String userCode;
+
+        @JsonProperty("comCode")
+        private String comCode;
+
+        @JsonProperty("groupUserCode")
+        private String groupUserCode;
+
+        @JsonProperty("userclassificationCode")
+        private String userclassificationCode;
+
+        @JsonProperty("userclassificationName")
+        private String userclassificationName;
+
+        @JsonProperty("groupcode")
+        private String groupcode;
+
+        @JsonProperty("groupname")
+        private String groupname;
+
+        @JsonProperty("phone")
+        private String phone;
+
+        @JsonProperty("identifyNumber")
+        private String identifyNumber;
+
+        @JsonProperty("remarkComCode")
+        private String remarkComCode;
+
+        @JsonProperty("total")
+        private Object total;
+
+        @JsonProperty("gradeCode1")
+        private String gradeCode1;
+
+        @JsonProperty("gradeCode2")
+        private String gradeCode2;
+
+        @JsonProperty("isHdzyFlag")
+        private String isHdzyFlag;
+    }
+}

+ 105 - 0
tenant/insurance/quotation-renbao/src/main/java/com/jzg/quotation/renbao/crawler/entity/response/RenBaoCrawlerSaveAsProposalData.java

@@ -0,0 +1,105 @@
+package com.jzg.quotation.renbao.crawler.entity.response;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.List;
+
+/**
+ * @description: 人保财险 保存投保单 请求参数
+ * @author wks
+ * @date 2025/12/4 14:22
+ * @version 1.0
+ */
+@NoArgsConstructor
+@Data
+public class RenBaoCrawlerSaveAsProposalData {
+
+    @JsonProperty("shortMessageUrl")
+    private String shortMessageUrl;
+
+    @JsonProperty("responseCode")
+    private String responseCode;
+
+    @JsonProperty("errorMessage")
+    private String errorMessage;
+
+    @JsonProperty("checkTimeFlag")
+    private String checkTimeFlag;
+
+    @JsonProperty("carQuoteTransProposalRspList")
+    private List<CarQuoteTransProposalRspListDTO> carQuoteTransProposalRspList;
+
+    @NoArgsConstructor
+    @Data
+    public static class CarQuoteTransProposalRspListDTO {
+        @JsonProperty("prpCengageVoRspList")
+        private List<PrpCengageVoRspListDTO> prpCengageVoRspList;
+
+        @JsonProperty("prpCplanVoRspList")
+        private List<PrpCplanVoRspListDTO> prpCplanVoRspList;
+
+        @JsonProperty("sxfAmount")
+        private Double sxfAmount;
+
+        @JsonProperty("sumPremium")
+        private String sumPremium;
+
+        @JsonProperty("sumPayTax")
+        private Object sumPayTax;
+
+        @JsonProperty("policyRelCode")
+        private Object policyRelCode;
+
+        @JsonProperty("costRate")
+        private Double costRate;
+
+        @JsonProperty("proposalNo")
+        private String proposalNo;
+
+        @JsonProperty("vehicleIdJsy")
+        private String vehicleIdJsy;
+
+        @JsonProperty("quotationNo")
+        private String quotationNo;
+
+        @JsonProperty("statistics")
+        private Object statistics;
+
+        @NoArgsConstructor
+        @Data
+        public static class PrpCengageVoRspListDTO {
+            @JsonProperty("maxCountes")
+            private Object maxCountes;
+
+            @JsonProperty("clauseCode")
+            private String clauseCode;
+
+            @JsonProperty("engageFlag")
+            private String engageFlag;
+
+            @JsonProperty("clauses")
+            private String clauses;
+
+            @JsonProperty("serialNo")
+            private String serialNo;
+
+            @JsonProperty("clauseName")
+            private String clauseName;
+        }
+
+        @NoArgsConstructor
+        @Data
+        public static class PrpCplanVoRspListDTO {
+            @JsonProperty("planFee")
+            private String planFee;
+
+            @JsonProperty("payReason")
+            private String payReason;
+
+            @JsonProperty("subsidyRate")
+            private String subsidyRate;
+        }
+    }
+}

+ 179 - 0
tenant/insurance/quotation-renbao/src/main/java/com/jzg/quotation/renbao/crawler/entity/response/RenBaoCrawlerVehicleQueryData.java

@@ -0,0 +1,179 @@
+package com.jzg.quotation.renbao.crawler.entity.response;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.jzg.quotation.commons.filter.CarModelsFilter;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * @description: TODO 
+ * @author wks
+ * @date 2025/12/4 14:54
+ * @version 1.0
+ */
+@NoArgsConstructor
+@Data
+public class RenBaoCrawlerVehicleQueryData {
+
+    @JsonProperty("carInfos")
+    private CarInfosDTO carInfos;
+
+    @JsonProperty("error_messagge")
+    private String errorMessagge;
+
+    @NoArgsConstructor
+    @Data
+    public static class CarInfosDTO {
+
+        @JsonProperty("pageSize")
+        private Integer pageSize;
+
+        @JsonProperty("start")
+        private Integer start;
+
+        @JsonProperty("totalCount")
+        private Integer totalCount;
+
+        @JsonProperty("message")
+        private Object message;
+
+        @JsonProperty("totalPageCount")
+        private Integer totalPageCount;
+
+        @JsonProperty("currentPageNo")
+        private Integer currentPageNo;
+
+        @JsonProperty("result")
+        private List<ResultDTO> result;
+
+        @NoArgsConstructor
+        @Data
+        public static class ResultDTO  implements Serializable, CarModelsFilter {
+
+            @Serial
+            private static final long serialVersionUID = -292091658629830911L;
+
+            @JsonProperty("pmFuelType")
+            private Object pmFuelType;
+
+            @JsonProperty("vehicleModelCode")
+            private String vehicleModelCode;
+
+            @JsonProperty("vehicleMakerId")
+            private String vehicleMakerId;
+
+            @JsonProperty("isPlatFlag")
+            private String isPlatFlag;
+
+            @JsonProperty("purchasePriceUp")
+            private String purchasePriceUp;
+
+            @JsonProperty("purchasePriceDown")
+            private String purchasePriceDown;
+
+            @JsonProperty("totalVehicleWeight")
+            private String totalVehicleWeight;
+
+            @JsonProperty("groupName")
+            private String groupName;
+
+            @JsonProperty("remark")
+            private String remark;
+
+            @JsonProperty("engineNo")
+            private Object engineNo;
+
+            @JsonProperty("fuelType")
+            private String fuelType;
+
+            @JsonProperty("isEnergyCar")
+            private String isEnergyCar;
+
+            @JsonProperty("modelCode")
+            private String modelCode;
+
+            @JsonProperty("highestHour")
+            private String highestHour;
+
+            @JsonProperty("fuelTypeName")
+            private String fuelTypeName;
+
+            @JsonProperty("brandId")
+            private String brandId;
+
+            @JsonProperty("brandIdNew")
+            private String brandIdNew;
+
+            @JsonProperty("vehicleFgwCode")
+            private String vehicleFgwCode;
+
+            @JsonProperty("vehicleId")
+            private String vehicleId;
+
+            @JsonProperty("vehicleType")
+            private String vehicleType;
+
+            @JsonProperty("brandName")
+            private String brandName;
+
+            @JsonProperty("presaleCarFlag")
+            private String presaleCarFlag;
+
+            @JsonProperty("vehicleName")
+            private String vehicleName;
+
+            @JsonProperty("searchCode")
+            private String searchCode;
+
+            @JsonProperty("vehicleAlias")
+            private String vehicleAlias;
+
+            @JsonProperty("vehicleSeat")
+            private Integer vehicleSeat;
+
+            @JsonProperty("vehicleClass")
+            private String vehicleClass;
+
+            @JsonProperty("vehicleClassPicc")
+            private String vehicleClassPicc;
+
+            @JsonProperty("vehicleTonnage")
+            private Object vehicleTonnage;
+
+            @JsonProperty("vehicleExhaust")
+            private Double vehicleExhaust;
+
+            @JsonProperty("enginePower")
+            private String enginePower;
+
+            @JsonProperty("priceT")
+            private String priceT;
+
+            @JsonProperty("priceP")
+            private Object priceP;
+
+            @JsonProperty("priceTr")
+            private String priceTr;
+
+            @JsonProperty("pricePr")
+            private Object pricePr;
+
+            @JsonProperty("vehicleYear")
+            private String vehicleYear;
+
+            @Override
+            public String getCarYear() {
+                return this.vehicleYear;
+            }
+
+            @Override
+            public String getPurchasePrice() {
+                return this.priceT;
+            }
+        }
+    }
+}

+ 22 - 0
tenant/insurance/quotation-renbao/src/main/java/com/jzg/quotation/renbao/crawler/properties/RenBaoCrawlerProperties.java

@@ -0,0 +1,22 @@
+package com.jzg.quotation.renbao.crawler.properties;
+
+
+import lombok.Data;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.stereotype.Component;
+
+
+/**
+ * @author wks
+ * @version 1.0
+ * @description: 人保财险 配置
+ * @date 2025/12/1 17:53
+ */
+@Data
+@Component
+@ConfigurationProperties("renbao.crawler")
+public class RenBaoCrawlerProperties {
+
+    private String baseUrl;
+
+}

+ 5 - 0
tenant/insurance/quotation-renbao/src/main/java/com/jzg/quotation/renbao/crawler/repository/RenbaoCrawlerOrderRepository.java

@@ -0,0 +1,5 @@
+package com.jzg.quotation.renbao.crawler.repository;
+
+public class RenbaoCrawlerOrderRepository
+{
+}

+ 26 - 0
tenant/insurance/quotation-renbao/src/main/java/com/jzg/quotation/renbao/crawler/service/RenBaoCrawlerQuoteProcessService.java

@@ -0,0 +1,26 @@
+package com.jzg.quotation.renbao.crawler.service;
+
+import com.jzg.commons.entity.quote.vo.AttributionInformationVo;
+import com.jzg.quotation.renbao.crawler.entity.dto.PrpCmainDTO;
+import org.springframework.http.HttpHeaders;
+
+public interface RenBaoCrawlerQuoteProcessService {
+
+    /**
+     * 获取请求头信息
+     *
+     * @param username 用户名
+     * @return 请求头
+     */
+    HttpHeaders getHeaders(String username);
+
+
+    /**
+     * 构建归属信息
+     *
+     * @param attributionInformationVo 归属信息
+     * @param httpHeaders              请求头
+     */
+    PrpCmainDTO buildPrpCMain(AttributionInformationVo attributionInformationVo, HttpHeaders httpHeaders);
+
+}

+ 61 - 0
tenant/insurance/quotation-renbao/src/main/java/com/jzg/quotation/renbao/crawler/service/impl/RenBaoCrawlerQuoteProcessServiceImpl.java

@@ -0,0 +1,61 @@
+package com.jzg.quotation.renbao.crawler.service.impl;
+
+import com.jzg.commons.entity.quote.vo.AttributionInformationVo;
+import com.jzg.commons.exception.SystemException;
+import com.jzg.commons.util.StringUtils;
+import com.jzg.quotation.commons.standard.conversion.ConfigureParametersConversion;
+import com.jzg.quotation.renbao.crawler.component.RenBaoCrawlerRequestComponent;
+import com.jzg.quotation.renbao.crawler.constant.BusinessNatureMap;
+import com.jzg.quotation.renbao.crawler.entity.RenBaoCrawlerConfigureParameter;
+import com.jzg.quotation.renbao.crawler.entity.dto.PrpCmainDTO;
+import com.jzg.quotation.renbao.crawler.entity.response.*;
+import com.jzg.quotation.renbao.crawler.service.RenBaoCrawlerQuoteProcessService;
+import lombok.RequiredArgsConstructor;
+import org.springframework.http.HttpHeaders;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+
+@Service
+@RequiredArgsConstructor
+public class RenBaoCrawlerQuoteProcessServiceImpl implements RenBaoCrawlerQuoteProcessService {
+
+    private final RenBaoCrawlerRequestComponent renBaoCrawlerRequestComponent;
+
+    @Override
+    public HttpHeaders getHeaders(String username) {
+        HttpHeaders headers = new HttpHeaders();
+        String cookie = "loginType=pwd; path=/; domain=portal.piccltd.com.cn;\";document.cookie =\"systemValue=production; path=/; domain=portal.piccltd.com.cn;\";document.cookie =\"svrScope=1; path=/; domain=portal.piccltd.com.cn;\";document.cookie =\"jwt=WebType%20eyJhbGciOiJIUzI1NiJ9.eyJuZXdVc2VyQ29kZSI6IjE4MjcwNzEzIiwic3ZyU2NvcGUiOiIxIiwidXNlck5hbWUiOiLotL7oiJLmlociLCJ1dWlkIjoiYjcxYjBhYjMtN2FiNS00N2UzLWI4NDgtZGIxYmIyMGNiMDA0IiwidXNlcklkIjoiMTQwMDAzNjI4NCIsIm9sZFVzZXJDb2RlIjoiMTgyNzA3MTMiLCJwcnBkQXZpdGluc0NvZGUiOm51bGwsImRpY3RDb2RlIjoiMDEwMSIsImdyb3VwVXNlckNvZGUiOiIxMjE0MTQyMDAyIiwidXNlcklwIjoieE9uZ0NONlJEc1V6YXlOQkx5WUJ0QT09IiwiZW52aXJvbm1lbnRGbGFnIjoicHJwYWxsIiwiY29tQ29kZSI6IjE0MDEwNjAwIiwiZXhwIjoxNzY0MzkzMzA3LCJpYXQiOjE3NjQzNzg5MDd9.2n2ZvX5oAgI1rjfso8qWXheBFfmGFEWDXJlQUNz3NXk; path=/; domain=portal.piccltd.com.cn;\";document.cookie =\"Admin-Token=WebType%20eyJhbGciOiJIUzI1NiJ9.eyJuZXdVc2VyQ29kZSI6IjE4MjcwNzEzIiwic3ZyU2NvcGUiOiIxIiwidXNlck5hbWUiOiLotL7oiJLmlociLCJ1dWlkIjoiYjcxYjBhYjMtN2FiNS00N2UzLWI4NDgtZGIxYmIyMGNiMDA0IiwidXNlcklkIjoiMTQwMDAzNjI4NCIsIm9sZFVzZXJDb2RlIjoiMTgyNzA3MTMiLCJwcnBkQXZpdGluc0NvZGUiOm51bGwsImRpY3RDb2RlIjoiMDEwMSIsImdyb3VwVXNlckNvZGUiOiIxMjE0MTQyMDAyIiwidXNlcklwIjoieE9uZ0NONlJEc1V6YXlOQkx5WUJ0QT09IiwiZW52aXJvbm1lbnRGbGFnIjoicHJwYWxsIiwiY29tQ29kZSI6IjE0MDEwNjAwIiwiZXhwIjoxNzY0MzkzMzA3LCJpYXQiOjE3NjQzNzg5MDd9.2n2ZvX5oAgI1rjfso8qWXheBFfmGFEWDXJlQUNz3NXk; path=/; domain=portal.piccltd.com.cn;\";document.cookie =\"usercode=18270713; path=/; domain=portal.piccltd.com.cn;";
+        if (!StringUtils.hasText(cookie)) {
+            throw new SystemException("登录失败,请重新登录");
+        }
+        headers.add(HttpHeaders.COOKIE, cookie);
+        return headers;
+    }
+
+    @Override
+    public PrpCmainDTO buildPrpCMain(AttributionInformationVo attributionInformationVo, HttpHeaders httpHeaders) {
+        // 配置参数
+        RenBaoCrawlerInitZNCDData initZNCDData = renBaoCrawlerRequestComponent.initZNCDData(httpHeaders);
+        // 配置信息转换
+        RenBaoCrawlerConfigureParameter parameter = ConfigureParametersConversion.conversionEntity(RenBaoCrawlerConfigureParameter.class, attributionInformationVo.getConfigInfo());
+        // 归属信息查询
+        List<String> attributionDepartmentList = renBaoCrawlerRequestComponent.queryCode(initZNCDData.getUserCode(), initZNCDData.getComCode(), parameter.getAttributionDepartmentCode(), httpHeaders);
+        String comCode = attributionDepartmentList.get(0);
+        // 归属人查询
+        RenBaoCrawlerQueryHandler1CodeData.ResultDTO resultDTO = renBaoCrawlerRequestComponent.queryHandler1Code(initZNCDData.getUserCode(), comCode, parameter.getOwnershipCode(), httpHeaders);
+        // 经办人查询
+        List<String> handlerCodeList = renBaoCrawlerRequestComponent.queryHandlerCode(comCode, parameter.getManagerCode(), httpHeaders);
+        // 业务来源
+        String businessSources = BusinessNatureMap.BUSINESS_NATURE_MAP.get(parameter.getBusinessSources());
+        // 渠道名称
+        RenBaoCrawlerGetAgentsData.DataDTO agents = renBaoCrawlerRequestComponent.getAgents(initZNCDData.getUserCode(), initZNCDData.getComCode(), comCode, parameter.getChannelName(), businessSources, httpHeaders);
+        // 验车人
+        RenBaoCrawlerQueryServiceManagerData.DataDTO manager = renBaoCrawlerRequestComponent.queryServiceManager(comCode, parameter.getCarInspectorCode(), httpHeaders);
+        // 推荐推荐送修码
+        RenBaoCrawlerGetMonopolyData.DataDTO monopoly = renBaoCrawlerRequestComponent.getMonopoly(comCode, parameter.getStoreCode(), httpHeaders);
+        return new PrpCmainDTO(resultDTO, handlerCodeList, businessSources, parameter.getBusinessSources(), agents, manager, monopoly);
+    }
+
+}