Преглед на файлове

大家财险报价部分

wks преди 1 година
родител
ревизия
c5da71413c
променени са 27 файла, в които са добавени 1163 реда и са изтрити 49 реда
  1. 8 1
      tenant/insurance/quotation-commons/src/main/java/com/jzg/quotation/commons/entity/vo/aggregated/QuoteResultsVo.java
  2. 1 1
      tenant/insurance/quotation-commons/src/main/java/com/jzg/quotation/commons/service/QuotationBaseService.java
  3. 85 0
      tenant/insurance/quotation-commons/src/main/java/com/jzg/quotation/commons/utils/TimeProcessing.java
  4. 90 0
      tenant/insurance/quotation-dajia/src/main/java/com/jzg/quotation/dajia/crawler/build/DaJiaCrawlerQuoteResultsVoBuild.java
  5. 53 0
      tenant/insurance/quotation-dajia/src/main/java/com/jzg/quotation/dajia/crawler/component/DaJiaCacheComponent.java
  6. 55 4
      tenant/insurance/quotation-dajia/src/main/java/com/jzg/quotation/dajia/crawler/component/DaJiaCrawlerRequestComponent.java
  7. 11 3
      tenant/insurance/quotation-dajia/src/main/java/com/jzg/quotation/dajia/crawler/constant/enums/RequestUrl.java
  8. 26 0
      tenant/insurance/quotation-dajia/src/main/java/com/jzg/quotation/dajia/crawler/entity/po/DaJiaCrawlerOrder.java
  9. 42 0
      tenant/insurance/quotation-dajia/src/main/java/com/jzg/quotation/dajia/crawler/entity/request/DaJiaCrawlerDownloadRequest.java
  10. 108 0
      tenant/insurance/quotation-dajia/src/main/java/com/jzg/quotation/dajia/crawler/entity/request/DaJiaCrawlerOrderListRevisedRequest.java
  11. 65 0
      tenant/insurance/quotation-dajia/src/main/java/com/jzg/quotation/dajia/crawler/entity/request/DaJiaCrawlerUploadRequest.java
  12. 44 0
      tenant/insurance/quotation-dajia/src/main/java/com/jzg/quotation/dajia/crawler/entity/request/DaJiaCrawlerUploadSignsRequest.java
  13. 23 0
      tenant/insurance/quotation-dajia/src/main/java/com/jzg/quotation/dajia/crawler/entity/response/DaJiaCrawlerDownloadResponse.java
  14. 71 0
      tenant/insurance/quotation-dajia/src/main/java/com/jzg/quotation/dajia/crawler/entity/response/DaJiaCrawlerGenerateResponse.java
  15. 175 0
      tenant/insurance/quotation-dajia/src/main/java/com/jzg/quotation/dajia/crawler/entity/response/DaJiaCrawlerOrderListRevisedResponse.java
  16. 57 0
      tenant/insurance/quotation-dajia/src/main/java/com/jzg/quotation/dajia/crawler/entity/response/DaJiaCrawlerUploadResponse.java
  17. 36 0
      tenant/insurance/quotation-dajia/src/main/java/com/jzg/quotation/dajia/crawler/entity/response/DaJiaCrawlerUploadSignsResponse.java
  18. 5 0
      tenant/insurance/quotation-dajia/src/main/java/com/jzg/quotation/dajia/crawler/repository/DaJiaCrawlerOrderRepository.java
  19. 25 0
      tenant/insurance/quotation-dajia/src/main/java/com/jzg/quotation/dajia/crawler/service/DaJiaCrawlerOrderService.java
  20. 28 0
      tenant/insurance/quotation-dajia/src/main/java/com/jzg/quotation/dajia/crawler/service/impl/DaJiaCrawlerOrderServiceImpl.java
  21. 45 22
      tenant/insurance/quotation-dajia/src/main/java/com/jzg/quotation/dajia/crawler/service/impl/DaJiaCrawlerRequestImpl.java
  22. 33 0
      tenant/insurance/quotation-dajia/src/main/java/com/jzg/quotation/dajia/enums/dictionary/ProductCode.java
  23. 6 0
      tenant/insurance/quotation-zhongmei/src/main/java/com/jzg/quote/zhongmei/api/service/impl/ZhongMeiApiRequestImpl.java
  24. 1 1
      tenant/insurance/quotation-zijin/src/main/java/com/jzg/quotation/zijin/api/build/ZiJinAPIQuoteResultsVoBuild.java
  25. 11 17
      tenant/insurance/quotation-zijin/src/main/java/com/jzg/quotation/zijin/api/service/Impl/ZiJinApiRequestImpl.java
  26. 35 0
      tenant/insurance/quotation-zijin/src/main/java/com/jzg/quotation/zijin/api/service/Impl/ZiJinCrawlerOrderServiceImpl.java
  27. 24 0
      tenant/insurance/quotation-zijin/src/main/java/com/jzg/quotation/zijin/api/service/ZiJinCrawlerOrderService.java

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

@@ -61,5 +61,12 @@ public class QuoteResultsVo implements Serializable {
      * 车船税 	Vehicle and Vessel Tax
      */
     private String vvTax;
-
+    /**
+     * 交强投保单号
+     */
+    private String ciPolicyNumber;
+    /**
+     * 商业投保单号
+     */
+    private String biPolicyNumber;
 }

+ 1 - 1
tenant/insurance/quotation-commons/src/main/java/com/jzg/quotation/commons/service/QuotationBaseService.java

@@ -43,6 +43,6 @@ public interface QuotationBaseService {
     /**
      * 查询订单状态
      */
-
+    void queryOrderState(OrderBase orderBase);
 
 }

+ 85 - 0
tenant/insurance/quotation-commons/src/main/java/com/jzg/quotation/commons/utils/TimeProcessing.java

@@ -0,0 +1,85 @@
+package com.jzg.quotation.commons.utils;
+
+
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
+
+/**
+ * @description: 保司 处理时间 工具类
+ * @author: wenks
+ * @date: 2025/3/5 10:30
+ **/
+public final class TimeProcessing {
+
+    private TimeProcessing() {
+        throw new IllegalStateException("Utility class");
+    }
+
+    public static final DateTimeFormatter DATE_TIME_FORMATTER;
+
+    static {
+        DATE_TIME_FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
+    }
+
+    public static final DateTimeFormatter DATE_FORMATTER;
+
+    static {
+        DATE_FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd");
+    }
+
+    public static final long ONE = 1L;
+
+    private static LocalDateTime parse(String date){
+        return LocalDateTime.parse(date, DATE_TIME_FORMATTER);
+    }
+
+    /**
+     * 一年以后减1秒得时间
+     *
+     * @param date 开始时间
+     * @return 结束时间
+     */
+    public static String minusOneSecondAfterYear(String date) {
+        return plusOneYear(date).minusSeconds(ONE).format(DATE_TIME_FORMATTER);
+    }
+
+    /**
+     * 一年以后得时间
+     *
+     * @param startDate 开始时间
+     * @return 结束时间
+     */
+    public static LocalDateTime plusOneYear(String date) {
+        return parse(date).plusYears(ONE);
+    }
+
+    /**
+     * 一年以后得时间
+     *
+     * @param startDate 开始时间
+     * @return 结束时间
+     */
+    public static String plusOneYearToString(String date) {
+        return plusOneYear(date).format(DATE_TIME_FORMATTER);
+    }
+
+    /**
+     * 几天之前
+     * @param date 时间
+     * @param days 天数
+     * @return
+     */
+    public static String minusDays(String date, long days){
+        return parse(date).minusDays(days).format(DATE_FORMATTER);
+    }
+
+    /**
+     * 今天的日期
+     * @return
+     */
+    public static String nowDate(){
+        return LocalDate.now().format(DATE_FORMATTER);
+    }
+
+}

+ 90 - 0
tenant/insurance/quotation-dajia/src/main/java/com/jzg/quotation/dajia/crawler/build/DaJiaCrawlerQuoteResultsVoBuild.java

@@ -0,0 +1,90 @@
+package com.jzg.quotation.dajia.crawler.build;
+
+import com.jzg.quotation.commons.entity.vo.aggregated.QuoteResultsVo;
+import com.jzg.quotation.commons.entity.vo.aggregated.QuoteVo;
+import com.jzg.quotation.commons.entity.vo.quote.ExpenseFactor;
+import com.jzg.quotation.commons.entity.vo.quote.KindInfoVo;
+import com.jzg.quotation.commons.entity.vo.quote.RiskInfoVo;
+import com.jzg.quotation.commons.utils.TimeProcessing;
+import com.jzg.quotation.dajia.crawler.entity.request.quote.BusinessInsuranceDTO;
+import com.jzg.quotation.dajia.crawler.entity.request.quote.CompulsoryInsuranceDTO;
+import com.jzg.quotation.dajia.crawler.entity.response.DaJiaCrawlerSaveResponse;
+
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+public final class DaJiaCrawlerQuoteResultsVoBuild {
+
+    private DaJiaCrawlerQuoteResultsVoBuild() {
+        throw new IllegalStateException("Utility class");
+    }
+
+    public static QuoteResultsVo buildQuoteResultsVo(String orderNo, QuoteVo quoteVo, DaJiaCrawlerSaveResponse daJiaCrawlerSaveResponse) {
+        QuoteResultsVo quoteResultsVo = new QuoteResultsVo();
+        buildKindInfoVo(quoteVo.getKindInfoVo(), daJiaCrawlerSaveResponse.getBusinessInsurance().getItemKinds());
+        quoteResultsVo.setOrdersNo(orderNo);
+        // 交强险
+        RiskInfoVo ciRiskInfoVo = buildCiRiskInfoVo(quoteVo.getCiRiskInfoVo(), daJiaCrawlerSaveResponse.getCompulsoryInsurance());
+        quoteResultsVo.setCiRiskInfoVo(ciRiskInfoVo);
+        // 商业险
+        RiskInfoVo biRiskInfoVo = buildBiRiskInfoVo(quoteVo.getBiRiskInfoVo(), daJiaCrawlerSaveResponse.getBusinessInsurance());
+        quoteResultsVo.setBiRiskInfoVo(biRiskInfoVo);
+        // 商业险险种信息
+        List<KindInfoVo> kindInfoVo = buildKindInfoVo(quoteVo.getKindInfoVo(), daJiaCrawlerSaveResponse.getBusinessInsurance()
+                .getItemKinds());
+        quoteResultsVo.setKindInfoVo(kindInfoVo);
+        // 费用因子
+        List<ExpenseFactor> expenseFactors = buildExpenseFactor();
+        quoteResultsVo.setExpenseFactors(expenseFactors);
+        // 交强保费 车船税 商业保费
+        buildOtherInfo(quoteResultsVo, daJiaCrawlerSaveResponse.getCompulsoryInsurance(), daJiaCrawlerSaveResponse.getBusinessInsurance());
+        return quoteResultsVo;
+    }
+
+    private static RiskInfoVo buildBiRiskInfoVo(RiskInfoVo biRiskInfoVo, BusinessInsuranceDTO businessInsurance) {
+        String startDate = businessInsurance.getProductInfo().getStartDate();
+        String endDate = TimeProcessing.minusOneSecondAfterYear(startDate);
+        biRiskInfoVo.setStartDate(startDate);
+        biRiskInfoVo.setEndDate(endDate);
+        return biRiskInfoVo;
+    }
+
+    private static RiskInfoVo buildCiRiskInfoVo(RiskInfoVo ciRiskInfoVo, CompulsoryInsuranceDTO compulsoryInsurance) {
+        String startDate = compulsoryInsurance.getProductInfo().getStartDate();
+        String endDate = TimeProcessing.minusOneSecondAfterYear(startDate);
+        ciRiskInfoVo.setStartDate(startDate);
+        ciRiskInfoVo.setEndDate(endDate);
+        return ciRiskInfoVo;
+    }
+
+    private static void buildOtherInfo(QuoteResultsVo quoteResultsVo, CompulsoryInsuranceDTO compulsoryInsurance, BusinessInsuranceDTO businessInsurance) {
+        // 交强
+        CompulsoryInsuranceDTO.ProductInfoDTO ciProductInfo = compulsoryInsurance.getProductInfo();
+        quoteResultsVo.setCiPremium(ciProductInfo.getPremium());
+        quoteResultsVo.setCiPolicyNumber(ciProductInfo.getProposalNo());
+        // 商业
+        BusinessInsuranceDTO.ProductInfoDTO biProductInfo = businessInsurance.getProductInfo();
+        quoteResultsVo.setBiPremium(biProductInfo.getPremium());
+        quoteResultsVo.setBiPolicyNumber(biProductInfo.getProposalNo());
+        quoteResultsVo.setVvTax(compulsoryInsurance.getCarShipTax().getTotalTax());
+    }
+
+    private static List<KindInfoVo> buildKindInfoVo(List<KindInfoVo> kindInfoVo, List<BusinessInsuranceDTO.ItemKindsDTO> itemKinds) {
+        Map<String, BusinessInsuranceDTO.ItemKindsDTO> collect = itemKinds
+                .stream()
+                .collect(Collectors.toMap(BusinessInsuranceDTO.ItemKindsDTO::getKindCode, x -> x));
+
+        kindInfoVo.forEach(kind -> {
+            BusinessInsuranceDTO.ItemKindsDTO itemKindsDTO = collect.get(kind.getKindCode());
+            // 设置保费
+            kind.setPremium(itemKindsDTO.getActPremium());
+        });
+        return kindInfoVo;
+    }
+
+    private static List<ExpenseFactor> buildExpenseFactor() {
+        return List.of();
+    }
+
+}

+ 53 - 0
tenant/insurance/quotation-dajia/src/main/java/com/jzg/quotation/dajia/crawler/component/DaJiaCacheComponent.java

@@ -0,0 +1,53 @@
+package com.jzg.quotation.dajia.crawler.component;
+
+import com.alibaba.fastjson2.JSON;
+import com.alibaba.fastjson2.JSONObject;
+import com.jzg.quotation.dajia.crawler.entity.response.DaJiaCrawlerSaveResponse;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.redisson.api.RBucket;
+import org.redisson.api.RedissonClient;
+import org.springframework.stereotype.Component;
+
+import java.time.Duration;
+
+
+/**
+ * @description: 大家财险 缓存组件
+ * @author: wenks
+ * @date: 2025/3/4 17:58
+ **/
+@Slf4j
+@Component
+@RequiredArgsConstructor
+public class DaJiaCacheComponent {
+
+    private final RedissonClient redissonClient;
+
+    public static final String DAJIA_SAVE = "dajia:save:";
+
+    public static final Duration DAJIA_SAVE_TIME = Duration.ofHours(3L);
+
+    /**
+     * 保存订单财险
+     *
+     * @param daJiaCrawlerSaveResponse 大家财险 保存订单数据
+     * @param ordersNo                 订单号
+     */
+    public void cacheDaJiaCrawlerSaveResponse(DaJiaCrawlerSaveResponse daJiaCrawlerSaveResponse, String ordersNo) {
+        String response = JSONObject.toJSONString(daJiaCrawlerSaveResponse);
+        RBucket<String> bucket = redissonClient.getBucket(DAJIA_SAVE + ordersNo);
+        bucket.set(response, DAJIA_SAVE_TIME);
+    }
+
+    /**
+     * 获取大家财险订单保存数据
+     *
+     * @param ordersNo 订单号
+     */
+    public DaJiaCrawlerSaveResponse getDaJiaCrawlerSaveResponse(String ordersNo) {
+        RBucket<String> bucket = redissonClient.getBucket(DAJIA_SAVE + ordersNo);
+        return JSON.parseObject(bucket.get(), DaJiaCrawlerSaveResponse.class);
+    }
+
+}

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

@@ -209,7 +209,7 @@ public class DaJiaCrawlerRequestComponent {
      */
     public HttpHeaders getHeaders(String username, String password) {
         String authorization = (String) redissonClient
-                .getMap(CacheConstant.DAJIA_AUTHORIZATION)
+                .getMap(CacheConstant.DAJIA_AUTHORIZATION + username)
                 .get(AUTHORIZATION);
         if (!StringUtils.hasLength(authorization)) {
             authorization = authenticate(username, password, LOGINS_NUMBER);
@@ -227,10 +227,15 @@ public class DaJiaCrawlerRequestComponent {
      */
     public String getUserCode(String username) {
         return (String) redissonClient
-                .getMap(CacheConstant.DAJIA_AUTHORIZATION)
+                .getMap(CacheConstant.DAJIA_AUTHORIZATION + username)
                 .get(USER_CODE);
     }
 
+    public <DaJiaResponse> DaJiaResponse requestUnencrypted(CrawlerRequestUrlStandard crawlerRequestUrlStandard, Object request, Class<DaJiaResponse> responseClass, HttpHeaders headers) {
+        ResponseEntity<DaJiaResponse> responseEntity = requestComponent.objectPost(crawlerRequestUrlStandard.getRequestUrl(daJiaCrawlerProperties.getVhlUrl()), request, responseClass, headers);
+        return responseEntity.getBody();
+    }
+
     /**
      * 请求
      *
@@ -256,7 +261,6 @@ public class DaJiaCrawlerRequestComponent {
         return request.getList();
     }
 
-
     /**
      * 计算折旧价格
      *
@@ -265,7 +269,7 @@ public class DaJiaCrawlerRequestComponent {
      * @return 折旧价格
      */
     public DaJiaCrawlerActualValueResponse actualValue(DaJiaCrawlerActualValueRequest request, HttpHeaders headers) {
-       return request(RequestUrl.ACTUAL_VALUE, request, DaJiaCrawlerActualValueResponse.class, headers);
+        return request(RequestUrl.ACTUAL_VALUE, request, DaJiaCrawlerActualValueResponse.class, headers);
     }
 
     /**
@@ -291,4 +295,51 @@ public class DaJiaCrawlerRequestComponent {
     }
 
 
+    public DaJiaCrawlerUploadSignsResponse uploadSigns(DaJiaCrawlerUploadSignsRequest request, HttpHeaders headers) {
+        return requestUnencrypted(RequestUrl.UPLOAD_SIGNS, request, DaJiaCrawlerUploadSignsResponse.class, headers);
+    }
+
+    public DaJiaCrawlerUploadResponse upload(DaJiaCrawlerUploadRequest request, HttpHeaders headers) {
+        return requestUnencrypted(RequestUrl.UPLOAD, request, DaJiaCrawlerUploadResponse.class, headers);
+    }
+
+    /**
+     * 提交核保
+     *
+     * @param request 核保请求
+     * @param headers 请求头
+     * @return 核保响应
+     */
+    public DaJiaCrawlerGenerateResponse generate(DaJiaCrawlerSaveResponse request, HttpHeaders headers) {
+        return request(RequestUrl.GENERATE, request, DaJiaCrawlerGenerateResponse.class, headers);
+    }
+
+    /**
+     * 订单查询状态
+     *
+     * @param request 订单请求
+     * @param headers 请求头
+     * @return 唯一订单
+     */
+    public DaJiaCrawlerOrderListRevisedResponse.ListDTO orderListRevised(DaJiaCrawlerOrderListRevisedRequest request, HttpHeaders headers) {
+        DaJiaCrawlerOrderListRevisedResponse response = request(RequestUrl.ORDER_LIST_REVISED, request, DaJiaCrawlerOrderListRevisedResponse.class, headers);
+        return response.getList().get(0);
+    }
+
+    /**
+     * 下载保单
+     *
+     * @param request 下载保单实体
+     * @param headers 请求头
+     * @return 保单数据
+     */
+    public DaJiaCrawlerDownloadResponse electronPolicyIODownload(DaJiaCrawlerDownloadRequest request, HttpHeaders headers) {
+        try {
+            Map<String, Object> describe = PropertyUtils.describe(request);
+            return requestComponent.get(RequestUrl.ELECTRON_POLICY_IO_DOWNLOAD.getRequestUrl(daJiaCrawlerProperties.getBaseUrl()), describe, "", DaJiaCrawlerDownloadResponse.class, headers);
+        } catch (InvocationTargetException | IllegalAccessException | NoSuchMethodException e) {
+            throw new SystemException("");
+        }
+    }
+
 }

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

@@ -18,14 +18,22 @@ public enum RequestUrl implements CrawlerRequestUrlStandard {
     //归属信息
     COMPANIES("/api/companies", "承保机构"),
     CHANNEL_PACKAGES("/default/package/list", "渠道套餐"),
-
     // 报价
     PRICE("price", "报价"),
     SAVE("save", "保存订单"),
     CAR("car", "车型查询"),
     ACTUAL_VALUE("actualvalue", "计算折旧价格"),
-
-
+    //上传影像
+    UPLOAD_SIGNS("imp/web/file/upload_signs", "上传标志"),
+    UPLOAD("imp/web/file/upload", "上传"),
+    // 提交核保
+    GENERATE("generate", "生成订单(核保)"),
+    // 支付二维码
+    NEXT_STEP("next_step", "支付二维码"),
+    // 下载保单
+    ELECTRON_POLICY_IO_DOWNLOAD("electronPolicyIODownload", "下载保单"),
+    // 状态查询
+    ORDER_LIST_REVISED("orderListRevised", "订单状态查询"),
     ;
 
     private final String uri;

+ 26 - 0
tenant/insurance/quotation-dajia/src/main/java/com/jzg/quotation/dajia/crawler/entity/po/DaJiaCrawlerOrder.java

@@ -1,5 +1,8 @@
 package com.jzg.quotation.dajia.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;
 
@@ -9,10 +12,33 @@ import org.springframework.data.mongodb.core.mapping.Document;
  * @author: wenks
  * @date: 2025/2/25 18:01
  **/
+@Data
 @Document("dajia.crawler.order")
+@NoArgsConstructor
+@AllArgsConstructor
 public class DaJiaCrawlerOrder {
 
     @Id
     private String id;
+    /**
+     * 订单号
+     */
+    private String ordersNo;
+    /**
+     * 车牌号
+     */
+    private String licenseNo;
+    /**
+     * 被保人姓名
+     */
+    private String appName;
+    /**
+     * 交强险保单号
+     */
+    private String ciPolicyNumber;
+    /**
+     * 商业险保单号
+     */
+    private String biPolicyNumber;
 
 }

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

@@ -0,0 +1,42 @@
+package com.jzg.quotation.dajia.crawler.entity.request;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+
+/**
+ * @description: 大家财险保单下载
+ * @author: wenks
+ * @date: 2025/2/18 18:42
+ **/
+@AllArgsConstructor
+@Data
+@NoArgsConstructor
+public class DaJiaCrawlerDownloadRequest {
+
+    /**
+     * 保单号
+     */
+    private String plyNo;
+    /**
+     * 订单号
+     */
+    private String appNo;
+
+    private String operatorCode;
+    /**
+     * @see com.jzg.quotation.dajia.enums.dictionary.ProductCode
+     * 产品代码
+     */
+    private String productCode;
+    /**
+     * 被保人
+     */
+    private String appName;
+    /**
+     * 车牌
+     */
+    private String plateNo;
+
+}

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

@@ -0,0 +1,108 @@
+package com.jzg.quotation.dajia.crawler.entity.request;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.jzg.quotation.commons.utils.TimeProcessing;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+
+
+/**
+ * @description: 大家财险 订单查询
+ * @author: wenks
+ * @date: 2025/3/5 14:33
+ **/
+@NoArgsConstructor
+@Data
+public class DaJiaCrawlerOrderListRevisedRequest {
+
+    @JsonProperty("combineProductCode")
+    private String combineProductCode;
+
+    @JsonProperty("applicantName")
+    private String applicantName;
+
+    @JsonProperty("containSubFlag")
+    private String containSubFlag;
+
+    @JsonProperty("underWriteCompany")
+    private String underWriteCompany;
+
+    @JsonProperty("loginCompany")
+    private String loginCompany;
+
+    @JsonProperty("insuredName")
+    private String insuredName;
+
+    @JsonProperty("orderNo")
+    private String orderNo;
+
+    @JsonProperty("proposalNo")
+    private String proposalNo;
+
+    @JsonProperty("policyNo")
+    private String policyNo;
+
+    @JsonProperty("ownerName")
+    private String ownerName;
+
+    @JsonProperty("pageNum")
+    private Integer pageNum;
+
+    @JsonProperty("pageSize")
+    private Integer pageSize;
+
+    @JsonProperty("plateNo")
+    private String plateNo;
+
+    @JsonProperty("status")
+    private String status;
+
+    @JsonProperty("centerScene")
+    private String centerScene;
+
+    @JsonProperty("teamCode")
+    private List<Object> teamCode;
+
+    @JsonProperty("dxOperateNo")
+    private String dxOperateNo;
+
+    @JsonProperty("endOperateDate")
+    private String endOperateDate;
+
+    @JsonProperty("startOperateDate")
+    private String startOperateDate;
+
+    @JsonProperty("isMine")
+    private String isMine;
+
+    @JsonProperty("operatorCode")
+    private String operatorCode;
+
+    public DaJiaCrawlerOrderListRevisedRequest(String loginCompany, String orderNo, String operatorCode) {
+        this.combineProductCode = "";
+        this.applicantName = "";
+        this.containSubFlag = "1";
+        this.underWriteCompany = "";
+        this.loginCompany = loginCompany;
+        this.insuredName = "";
+        this.orderNo = orderNo;
+        this.proposalNo = "";
+        this.policyNo = "";
+        this.ownerName = "";
+        this.pageNum = 1;
+        this.pageSize = 10;
+        this.plateNo = "";
+        this.status = "";
+        this.centerScene = "";
+        this.teamCode = Collections.emptyList();
+        this.dxOperateNo = "";
+        this.startOperateDate = TimeProcessing.nowDate();
+        this.endOperateDate = TimeProcessing.minusDays(this.startOperateDate,25L);
+        this.isMine = "0";
+        this.operatorCode = operatorCode;
+    }
+}

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

@@ -0,0 +1,65 @@
+package com.jzg.quotation.dajia.crawler.entity.request;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.List;
+
+@NoArgsConstructor
+@Data
+public class DaJiaCrawlerUploadRequest {
+
+    @JsonProperty("category")
+    private String category;
+
+    @JsonProperty("createBy")
+    private String createBy;
+
+    @JsonProperty("businessType")
+    private String businessType;
+
+    @JsonProperty("businessNo")
+    private String businessNo;
+
+    @JsonProperty("busiInfoList")
+    private List<BusiInfoListDTO> busiInfoList;
+
+    @JsonProperty("fileList")
+    private List<FileListDTO> fileList;
+
+    @NoArgsConstructor
+    @Data
+    public static class BusiInfoListDTO {
+
+        @JsonProperty("bussNo")
+        private String bussNo;
+
+        @JsonProperty("bussType")
+        private String bussType;
+
+        @JsonProperty("bussName")
+        private String bussName;
+    }
+
+    @NoArgsConstructor
+    @Data
+    public static class FileListDTO {
+
+        @JsonProperty("name")
+        private String name;
+
+        @JsonProperty("path")
+        private String path;
+
+        @JsonProperty("size")
+        private Integer size;
+
+        @JsonProperty("operateResult")
+        private Integer operateResult;
+
+        @JsonProperty("obsRequestId")
+        private String obsRequestId;
+
+    }
+}

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

@@ -0,0 +1,44 @@
+package com.jzg.quotation.dajia.crawler.entity.request;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.List;
+
+
+
+@NoArgsConstructor
+@Data
+public class DaJiaCrawlerUploadSignsRequest {
+
+    @JsonProperty("businessNo")
+    private String businessNo;
+
+    @JsonProperty("businessType")
+    private String businessType;
+
+    @JsonProperty("category")
+    private String category;
+
+    @JsonProperty("uploadFileList")
+    private List<UploadFileListDTO> uploadFileList;
+
+    @NoArgsConstructor
+    @Data
+    public static class UploadFileListDTO {
+
+        @JsonProperty("fileName")
+        private String fileName;
+
+        @JsonProperty("contentType")
+        private String contentType;
+
+        @JsonProperty("contentMD5")
+        private String contentMD5;
+
+        @JsonProperty("method")
+        private String method;
+
+    }
+}

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

@@ -0,0 +1,23 @@
+package com.jzg.quotation.dajia.crawler.entity.response;
+
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+
+/**
+ * @description: 大家财险保单下载
+ * @author: wenks
+ * @date: 2025/3/5 15:15
+ **/
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class DaJiaCrawlerDownloadResponse {
+
+    private String fileName;
+
+    private String file;
+
+}

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

@@ -0,0 +1,71 @@
+package com.jzg.quotation.dajia.crawler.entity.response;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * @version
+ * @description: 大家财险 提交核保 响应
+ * @author: wenks
+ * @date: 2025/3/5 17:14
+ **/
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class DaJiaCrawlerGenerateResponse {
+
+
+    @JsonProperty("orderNo")
+    private String orderNo;
+    @JsonProperty("mark")
+    private String mark;
+    @JsonProperty("status")
+    private String status;
+    @JsonProperty("jqGenerate")
+    private GenerateDTO jqGenerate;
+    @JsonProperty("syGenerate")
+    private GenerateDTO syGenerate;
+    @JsonProperty("jyGenerate")
+    private String jyGenerate;
+    @JsonProperty("jsGenerate")
+    private String jsGenerate;
+    @JsonProperty("jabGenerate")
+    private String jabGenerate;
+    @JsonProperty("rqbGenerate")
+    private String rqbGenerate;
+    @JsonProperty("jkGenerate")
+    private String jkGenerate;
+    @JsonProperty("yyGenerate")
+    private String yyGenerate;
+    @JsonProperty("hyGenerate")
+    private String hyGenerate;
+    @JsonProperty("jkhosGenerate")
+    private String jkhosGenerate;
+    @JsonProperty("jyChargeGenerate")
+    private String jyChargeGenerate;
+
+    @NoArgsConstructor
+    @Data
+    public static class GenerateDTO {
+        @JsonProperty("proposalNo")
+        private String proposalNo;
+        @JsonProperty("productCode")
+        private String productCode;
+        @JsonProperty("resultCode")
+        private String resultCode;
+        @JsonProperty("underwritingCode")
+        private String underwritingCode;
+        @JsonProperty("message")
+        private String message;
+        @JsonProperty("errorMessage")
+        private String errorMessage;
+        @JsonProperty("queryCode")
+        private String queryCode;
+        @JsonProperty("identifyNo")
+        private String identifyNo;
+        @JsonProperty("underwritingLevel")
+        private String underwritingLevel;
+    }
+}

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

@@ -0,0 +1,175 @@
+package com.jzg.quotation.dajia.crawler.entity.response;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.List;
+
+
+@NoArgsConstructor
+@Data
+public class DaJiaCrawlerOrderListRevisedResponse {
+
+    @JsonProperty("pageNum")
+    private Integer pageNum;
+
+    @JsonProperty("pageSize")
+    private Integer pageSize;
+
+    @JsonProperty("list")
+    private List<ListDTO> list;
+
+    @JsonProperty("total")
+    private Integer total;
+
+    @JsonProperty("channelOrderNo")
+    private String channelOrderNo;
+
+    @NoArgsConstructor
+    @Data
+    public static class ListDTO {
+        @JsonProperty("orderNo")
+        private String orderNo;
+        @JsonProperty("productCode")
+        private String productCode;
+        @JsonProperty("jyProductCode")
+        private String jyProductCode;
+        @JsonProperty("jqProposalNo")
+        private String jqProposalNo;
+        @JsonProperty("syProposalNo")
+        private String syProposalNo;
+        @JsonProperty("jyProposalNo")
+        private String jyProposalNo;
+        @JsonProperty("jqPolicyNo")
+        private String jqPolicyNo;
+        @JsonProperty("syPolicyNo")
+        private String syPolicyNo;
+        @JsonProperty("jyPolicyNo")
+        private String jyPolicyNo;
+        @JsonProperty("plateNo")
+        private String plateNo;
+        @JsonProperty("applicantName")
+        private String applicantName;
+        @JsonProperty("insuredName")
+        private String insuredName;
+        @JsonProperty("ownerName")
+        private String ownerName;
+        @JsonProperty("status")
+        private String status;
+        @JsonProperty("saleName")
+        private String saleName;
+        @JsonProperty("channelName")
+        private String channelName;
+        @JsonProperty("machineCode")
+        private String machineCode;
+        @JsonProperty("elecFlag")
+        private String elecFlag;
+        @JsonProperty("underWriteCompany")
+        private String underWriteCompany;
+        @JsonProperty("totalPremium")
+        private String totalPremium;
+        @JsonProperty("operateDate")
+        private String operateDate;
+        @JsonProperty("isZgFlag")
+        private String isZgFlag;
+        @JsonProperty("jyMark")
+        private String jyMark;
+        @JsonProperty("source")
+        private String source;
+        @JsonProperty("combineProductCode")
+        private String combineProductCode;
+        @JsonProperty("electronicPolicy")
+        private String electronicPolicy;
+        @JsonProperty("isImage")
+        private String isImage;
+        @JsonProperty("jabMark")
+        private String jabMark;
+        @JsonProperty("jabProductCode")
+        private String jabProductCode;
+        @JsonProperty("jabProposalNo")
+        private String jabProposalNo;
+        @JsonProperty("jabPolicyNo")
+        private String jabPolicyNo;
+        @JsonProperty("rqbMark")
+        private String rqbMark;
+        @JsonProperty("rqbProductCode")
+        private String rqbProductCode;
+        @JsonProperty("rqbProposalNo")
+        private String rqbProposalNo;
+        @JsonProperty("rqbPolicyNo")
+        private String rqbPolicyNo;
+        @JsonProperty("yyMark")
+        private String yyMark;
+        @JsonProperty("yyProductCode")
+        private String yyProductCode;
+        @JsonProperty("yyProposalNo")
+        private String yyProposalNo;
+        @JsonProperty("yyPolicyNo")
+        private String yyPolicyNo;
+        @JsonProperty("dptRelCde")
+        private String dptRelCde;
+        @JsonProperty("payType")
+        private String payType;
+        @JsonProperty("jkMark")
+        private String jkMark;
+        @JsonProperty("jkProductCode")
+        private String jkProductCode;
+        @JsonProperty("jkProposalNo")
+        private String jkProposalNo;
+        @JsonProperty("jkPolicyNo")
+        private String jkPolicyNo;
+        @JsonProperty("hyMark")
+        private String hyMark;
+        @JsonProperty("hyProductCode")
+        private String hyProductCode;
+        @JsonProperty("hyProposalNo")
+        private String hyProposalNo;
+        @JsonProperty("hyPolicyNo")
+        private String hyPolicyNo;
+        @JsonProperty("jkhosMark")
+        private String jkhosMark;
+        @JsonProperty("jkhosProductCode")
+        private String jkhosProductCode;
+        @JsonProperty("jkhosProposalNo")
+        private String jkhosProposalNo;
+        @JsonProperty("jkhosPolicyNo")
+        private String jkhosPolicyNo;
+        @JsonProperty("orderNoOrg")
+        private String orderNoOrg;
+        @JsonProperty("jqStartDate")
+        private String jqStartDate;
+        @JsonProperty("syStartDate")
+        private String syStartDate;
+        @JsonProperty("jyChargeMark")
+        private String jyChargeMark;
+        @JsonProperty("jyChargeProductCode")
+        private String jyChargeProductCode;
+        @JsonProperty("jyChargeProposalNo")
+        private String jyChargeProposalNo;
+        @JsonProperty("jyChargePolicyNo")
+        private String jyChargePolicyNo;
+        @JsonProperty("jySupFlag")
+        private String jySupFlag;
+        @JsonProperty("jabSupFlag")
+        private String jabSupFlag;
+        @JsonProperty("rqbSupFlag")
+        private String rqbSupFlag;
+        @JsonProperty("jkSupFlag")
+        private String jkSupFlag;
+        @JsonProperty("yySupFlag")
+        private String yySupFlag;
+        @JsonProperty("hySupFlag")
+        private String hySupFlag;
+        @JsonProperty("jkhosSupFlag")
+        private String jkhosSupFlag;
+        @JsonProperty("orderNoCore")
+        private String orderNoCore;
+        @JsonProperty("jqPlyNoOrg")
+        private String jqPlyNoOrg;
+        @JsonProperty("syPlyNoOrg")
+        private String syPlyNoOrg;
+        @JsonProperty("jyChargeSupFlag")
+        private String jyChargeSupFlag;
+    }
+}

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

@@ -0,0 +1,57 @@
+package com.jzg.quotation.dajia.crawler.entity.response;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.List;
+
+@NoArgsConstructor
+@Data
+public class DaJiaCrawlerUploadResponse {
+
+    @JsonProperty("code")
+    private String code;
+
+    @JsonProperty("message")
+    private String message;
+
+    @JsonProperty("data")
+    private DataDTO data;
+
+    @NoArgsConstructor
+    @Data
+    public static class DataDTO {
+        @JsonProperty("indexName")
+        private String indexName;
+
+        @JsonProperty("successIds")
+        private List<String> successIds;
+
+        @JsonProperty("failIds")
+        private List<String> failIds;
+
+        @JsonProperty("docIdInfoList")
+        private List<DocIdInfoListDTO> docIdInfoList;
+
+
+        @NoArgsConstructor
+        @Data
+        public static class DocIdInfoListDTO {
+            @JsonProperty("id")
+            private String id;
+
+            @JsonProperty("cid")
+            private String cid;
+
+            @JsonProperty("name")
+            private String name;
+
+            @JsonProperty("path")
+            private String path;
+
+            @JsonProperty("size")
+            private Integer size;
+        }
+    }
+}

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

@@ -0,0 +1,36 @@
+package com.jzg.quotation.dajia.crawler.entity.response;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.List;
+
+@NoArgsConstructor
+@Data
+public class DaJiaCrawlerUploadSignsResponse {
+
+    @JsonProperty("code")
+    private String code;
+
+    @JsonProperty("message")
+    private String message;
+
+    @JsonProperty("data")
+    private List<DataDTO> data;
+
+    @NoArgsConstructor
+    @Data
+    public static class DataDTO {
+
+        @JsonProperty("fileName")
+        private String fileName;
+
+        @JsonProperty("fileURL")
+        private String fileURL;
+
+        @JsonProperty("filePath")
+        private String filePath;
+
+    }
+}

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

@@ -3,6 +3,11 @@ package com.jzg.quotation.dajia.crawler.repository;
 import com.jzg.quotation.dajia.crawler.entity.po.DaJiaCrawlerOrder;
 import org.springframework.data.mongodb.repository.MongoRepository;
 
+import java.util.List;
+
 public interface DaJiaCrawlerOrderRepository extends MongoRepository<DaJiaCrawlerOrder, String> {
 
+    DaJiaCrawlerOrder getFirstById(String id);
+
+
 }

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

@@ -0,0 +1,25 @@
+package com.jzg.quotation.dajia.crawler.service;
+
+import com.jzg.quotation.commons.entity.vo.aggregated.QuoteVo;
+import com.jzg.quotation.dajia.crawler.entity.po.DaJiaCrawlerOrder;
+import com.jzg.quotation.dajia.crawler.entity.response.DaJiaCrawlerSaveResponse;
+
+public interface DaJiaCrawlerOrderService {
+
+    /**
+     * 保存订单信息
+     *
+     * @param quoteVo                  报价信息
+     * @param daJiaCrawlerSaveResponse 大家财险保存订单返回信息
+     */
+    void saveOrderInfo(QuoteVo quoteVo, DaJiaCrawlerSaveResponse daJiaCrawlerSaveResponse);
+
+    /**
+     * 通过id查询mongodb中的唯一订单号
+     *
+     * @param id 交互唯一订单号
+     * @return 订单信息
+     */
+    DaJiaCrawlerOrder getById(String id);
+
+}

+ 28 - 0
tenant/insurance/quotation-dajia/src/main/java/com/jzg/quotation/dajia/crawler/service/impl/DaJiaCrawlerOrderServiceImpl.java

@@ -0,0 +1,28 @@
+package com.jzg.quotation.dajia.crawler.service.impl;
+
+import com.jzg.quotation.commons.entity.vo.aggregated.QuoteVo;
+import com.jzg.quotation.dajia.crawler.entity.po.DaJiaCrawlerOrder;
+import com.jzg.quotation.dajia.crawler.entity.response.DaJiaCrawlerSaveResponse;
+import com.jzg.quotation.dajia.crawler.repository.DaJiaCrawlerOrderRepository;
+import com.jzg.quotation.dajia.crawler.service.DaJiaCrawlerOrderService;
+import lombok.RequiredArgsConstructor;
+import org.springframework.stereotype.Service;
+
+@RequiredArgsConstructor
+@Service
+public class DaJiaCrawlerOrderServiceImpl implements DaJiaCrawlerOrderService {
+
+    public final DaJiaCrawlerOrderRepository daJiaCrawlerOrderRepository;
+
+    @Override
+    public void saveOrderInfo(QuoteVo quoteVo, DaJiaCrawlerSaveResponse daJiaCrawlerSaveResponse) {
+        DaJiaCrawlerOrder daJiaCrawlerOrder = new DaJiaCrawlerOrder();
+        daJiaCrawlerOrder.setOrdersNo(quoteVo.getOrder().getOrdersNo());
+        daJiaCrawlerOrderRepository.save(daJiaCrawlerOrder);
+    }
+
+    @Override
+    public DaJiaCrawlerOrder getById(String id) {
+        return daJiaCrawlerOrderRepository.getFirstById(id);
+    }
+}

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

@@ -11,18 +11,15 @@ import com.jzg.quotation.commons.entity.vo.base.OrderBase;
 import com.jzg.quotation.commons.entity.vo.quote.AttributionInformationVo;
 import com.jzg.quotation.commons.filter.CarModelsFilterUtils;
 import com.jzg.quotation.commons.standard.conversion.ConfigureParametersConversion;
+import com.jzg.quotation.dajia.crawler.build.DaJiaCrawlerQuoteResultsVoBuild;
 import com.jzg.quotation.dajia.crawler.component.BuildingAttributionInformation;
+import com.jzg.quotation.dajia.crawler.component.DaJiaCacheComponent;
 import com.jzg.quotation.dajia.crawler.component.DaJiaCrawlerRequestComponent;
 import com.jzg.quotation.dajia.crawler.entity.DaJiaCrawlerConfigureParameters;
-import com.jzg.quotation.dajia.crawler.entity.request.DaJiaCrawlerActualValueRequest;
-import com.jzg.quotation.dajia.crawler.entity.request.DaJiaCrawlerCarRequest;
-import com.jzg.quotation.dajia.crawler.entity.request.DaJiaCrawlerPriceRequest;
-import com.jzg.quotation.dajia.crawler.entity.request.DaJiaCrawlerSaveRequest;
+import com.jzg.quotation.dajia.crawler.entity.request.*;
 import com.jzg.quotation.dajia.crawler.entity.request.quote.ProposalInfoDTO;
-import com.jzg.quotation.dajia.crawler.entity.response.DaJiaCrawlerActualValueResponse;
-import com.jzg.quotation.dajia.crawler.entity.response.DaJiaCrawlerCarResponse;
-import com.jzg.quotation.dajia.crawler.entity.response.DaJiaCrawlerPriceResponse;
-import com.jzg.quotation.dajia.crawler.entity.response.DaJiaCrawlerSaveResponse;
+import com.jzg.quotation.dajia.crawler.entity.response.*;
+import com.jzg.quotation.dajia.crawler.service.DaJiaCrawlerOrderService;
 import com.jzg.quotation.dajia.crawler.service.DaJiaCrawlerRequest;
 import lombok.RequiredArgsConstructor;
 import org.springframework.http.HttpHeaders;
@@ -38,6 +35,10 @@ public class DaJiaCrawlerRequestImpl implements DaJiaCrawlerRequest {
 
     private final BuildingAttributionInformation buildingAttributionInformation;
 
+    private final DaJiaCacheComponent daJiaCacheComponent;
+
+    private final DaJiaCrawlerOrderService daJiaCrawlerOrderService;
+
     @Override
     public void login(LoginBase loginBase) {
         daJiaCrawlerRequestComponent.authenticate(loginBase.getUsername(), loginBase.getPassword(), DaJiaCrawlerRequestComponent.LOGINS_NUMBER);
@@ -45,46 +46,56 @@ public class DaJiaCrawlerRequestImpl implements DaJiaCrawlerRequest {
 
     @Override
     public QuoteResultsVo quote(QuoteVo quoteVo) {
-        // 获取token的请求头
+        // 1.0获取token的请求头
         AttributionInformationVo attributionInformationVo = quoteVo
                 .getOrder()
                 .getAttributionInformationVo();
         HttpHeaders headers = daJiaCrawlerRequestComponent.getHeaders(attributionInformationVo.getUsername(), attributionInformationVo.getPassword());
         String userCode = daJiaCrawlerRequestComponent.getUserCode(attributionInformationVo.getUsername());
-        // 配置信息
+        // 1.1 配置信息
         DaJiaCrawlerConfigureParameters parameters = ConfigureParametersConversion.conversionEntity(DaJiaCrawlerConfigureParameters.class, attributionInformationVo.getConfigInfo());
-
-        // 车型查询
+        // 2.0 车型查询
         DaJiaCrawlerCarRequest daJiaCrawlerCarRequest = new DaJiaCrawlerCarRequest(quoteVo.getCarInfoVo(), "", "", userCode);
         List<DaJiaCrawlerCarResponse.ListDTO> car = daJiaCrawlerRequestComponent.car(daJiaCrawlerCarRequest, headers);
-        // 获取相同的车型
+        // 2.1 获取相同的车型
         DaJiaCrawlerCarResponse.ListDTO listDTO = CarModelsFilterUtils.to(car, quoteVo.getCarInfoVo());
-
-        // 计算折旧价格
+        // 2.2 计算折旧价格
         DaJiaCrawlerActualValueRequest daJiaCrawlerActualValueRequest = new DaJiaCrawlerActualValueRequest(listDTO, quoteVo.getCarInfoVo(), userCode);
         DaJiaCrawlerActualValueResponse daJiaCrawlerActualValueResponse = daJiaCrawlerRequestComponent.actualValue(daJiaCrawlerActualValueRequest, headers);
-
-        // 获取归属信息
+        // 3.0 获取归属信息
         ProposalInfoDTO proposalInfoDTO = buildingAttributionInformation.build(parameters, userCode, headers);
-        // 保费计算
+        // 3.1 保费计算
         DaJiaCrawlerPriceRequest daJiaCrawlerPriceRequest = new DaJiaCrawlerPriceRequest(quoteVo, listDTO, daJiaCrawlerActualValueResponse, proposalInfoDTO, userCode);
         DaJiaCrawlerPriceResponse crawlerPriceResponse = daJiaCrawlerRequestComponent.price(daJiaCrawlerPriceRequest, headers);
-
-        // 订单保存
+        // 3.2 订单保存
         DaJiaCrawlerSaveRequest daJiaCrawlerSaveRequest = new DaJiaCrawlerSaveRequest(crawlerPriceResponse, userCode);
         DaJiaCrawlerSaveResponse daJiaCrawlerSaveResponse = daJiaCrawlerRequestComponent.save(daJiaCrawlerSaveRequest, headers);
-
+        // 3.3 缓存数据
+        daJiaCacheComponent.cacheDaJiaCrawlerSaveResponse(daJiaCrawlerSaveResponse, quoteVo.getOrder().getOrdersNo());
+        // 4.0 保存数据
+        daJiaCrawlerOrderService.saveOrderInfo(quoteVo, daJiaCrawlerSaveResponse);
         // 返回报价信息
-        return null;
+        return DaJiaCrawlerQuoteResultsVoBuild.buildQuoteResultsVo(quoteVo.getOrder()
+                .getOrdersNo(), quoteVo, daJiaCrawlerSaveResponse);
     }
 
     @Override
     public void underwriting(UnderwritingVo underwritingVo) {
+        AttributionInformationVo attributionInformationVo = underwritingVo
+                .getOrder()
+                .getAttributionInformationVo();
+        HttpHeaders headers = daJiaCrawlerRequestComponent.getHeaders(attributionInformationVo.getUsername(), attributionInformationVo.getPassword());
+
+        DaJiaCrawlerSaveResponse daJiaCrawlerSaveResponse = daJiaCacheComponent.getDaJiaCrawlerSaveResponse(underwritingVo.getOrder()
+                .getOrdersNo());
+        DaJiaCrawlerGenerateResponse response = daJiaCrawlerRequestComponent.generate(daJiaCrawlerSaveResponse, headers);
 
     }
 
     @Override
     public String getPaymentLink(OrderBase orderBase) {
+
+
         return "";
     }
 
@@ -95,7 +106,19 @@ public class DaJiaCrawlerRequestImpl implements DaJiaCrawlerRequest {
 
     @Override
     public void downloadPolicy(OrderBase orderBase) {
+        AttributionInformationVo attributionInformationVo = orderBase.getAttributionInformationVo();
+        HttpHeaders headers = daJiaCrawlerRequestComponent.getHeaders(attributionInformationVo.getUsername(), attributionInformationVo.getPassword());
+        DaJiaCrawlerDownloadRequest daJiaCrawlerDownloadRequest = new DaJiaCrawlerDownloadRequest();
+        DaJiaCrawlerDownloadResponse response = daJiaCrawlerRequestComponent.electronPolicyIODownload(daJiaCrawlerDownloadRequest, headers);
+    }
 
+    @Override
+    public void queryOrderState(OrderBase orderBase) {
+        AttributionInformationVo attributionInformationVo = orderBase.getAttributionInformationVo();
+        HttpHeaders headers = daJiaCrawlerRequestComponent.getHeaders(attributionInformationVo.getUsername(), attributionInformationVo.getPassword());
+        String userCode = daJiaCrawlerRequestComponent.getUserCode(attributionInformationVo.getUsername());
+        DaJiaCrawlerOrderListRevisedRequest daJiaCrawlerOrderListRevisedRequest = new DaJiaCrawlerOrderListRevisedRequest();
+        DaJiaCrawlerOrderListRevisedResponse.ListDTO listDTO = daJiaCrawlerRequestComponent.orderListRevised(daJiaCrawlerOrderListRevisedRequest, headers);
     }
 
 }

+ 33 - 0
tenant/insurance/quotation-dajia/src/main/java/com/jzg/quotation/dajia/enums/dictionary/ProductCode.java

@@ -0,0 +1,33 @@
+package com.jzg.quotation.dajia.enums.dictionary;
+
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+/**
+ * @description: 产品代码
+ * @author: wenks
+ * @date: 2025/3/5 15:46
+ **/
+@AllArgsConstructor
+@Getter
+public enum ProductCode {
+
+    PRODUCT_CODE_0320("0320", "汽车交通事故责任强制保险"),
+    PRODUCT_CODE_0336("0336", "机动车综合商业保险"),
+    PRODUCT_CODE_0316("0316", "交通事故强制保险摩托车(拖拉机)定额保险"),
+    PRODUCT_CODE_0325("0325", "摩托车、拖拉机综合商业保险"),
+    PRODUCT_CODE_0327("0327", "机动车单程提车保险"),
+    PRODUCT_CODE_0356("0356", "机动/特种车辆商业保险(2020版)"),
+    PRODUCT_CODE_0355("0355", "摩托车、拖拉机商业保险(2020版)"),
+    PRODUCT_CODE_0357("0357", "机动车单程提车保险(2020版)"),
+    PRODUCT_CODE_0679("0679", "驾乘意外险"),
+    PRODUCT_CODE_0358("0358", "新能源汽车商业保险(2021版)"),
+    PRODUCT_CODE_0359("0359", "粤港两地车商业险"),
+    PRODUCT_CODE_0321("0321", "粤港两地车交强险");
+
+    private final String code;
+
+    private final String description;
+
+}

+ 6 - 0
tenant/insurance/quotation-zhongmei/src/main/java/com/jzg/quote/zhongmei/api/service/impl/ZhongMeiApiRequestImpl.java

@@ -156,4 +156,10 @@ public class ZhongMeiApiRequestImpl implements ZhongMeiApiRequest {
         //调用下载保单接口
 
     }
+
+
+    @Override
+    public void queryOrderState(OrderBase orderBase) {
+    }
+
 }

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

@@ -20,7 +20,7 @@ import java.util.stream.Collectors;
  * @author: wenks
  * @date: 2025/2/25 18:10
  **/
-public class ZiJinAPIQuoteResultsVoBuild {
+public final class ZiJinAPIQuoteResultsVoBuild {
 
     public ZiJinAPIQuoteResultsVoBuild() {
         throw new IllegalStateException("Utility class");

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

@@ -17,8 +17,8 @@ import com.jzg.quotation.zijin.api.entity.ZiJinApiConfigureParameters;
 import com.jzg.quotation.zijin.api.entity.po.ZiJinApiOrder;
 import com.jzg.quotation.zijin.api.entity.request.*;
 import com.jzg.quotation.zijin.api.entity.response.*;
-import com.jzg.quotation.zijin.api.repository.ZiJinApiOrderRepository;
 import com.jzg.quotation.zijin.api.service.ZiJinApiRequest;
+import com.jzg.quotation.zijin.api.service.ZiJinCrawlerOrderService;
 import lombok.RequiredArgsConstructor;
 import org.jetbrains.annotations.NotNull;
 import org.springframework.http.HttpHeaders;
@@ -38,7 +38,7 @@ public class ZiJinApiRequestImpl implements ZiJinApiRequest {
 
     private final ZiJinApiRequestComponent ziJinApiRequestComponent;
 
-    private final ZiJinApiOrderRepository ziJinApiOrderRepository;
+    private final ZiJinCrawlerOrderService ziJinCrawlerOrderService;
 
     @Override
     public QuoteResultsVo quote(QuoteVo quoteVo) {
@@ -65,24 +65,14 @@ public class ZiJinApiRequestImpl implements ZiJinApiRequest {
 
         // 处理验车码识别错误
 
-        // 存储信息
-        ZiJinApiOrder ziJinApiOrder = new ZiJinApiOrder();
-        ziJinApiOrder.setId(order.getOrdersNo());
-        ziJinApiOrder.setOrderNo(modelQueryResponse.getOrderNo());
-        ziJinApiOrder.setOrderId(modelQueryResponse.getOrderId());
-        ziJinApiOrder.setProductsCode(order.getProductsCode());
-        ziJinApiOrder.setInsuredIdentify(quoteVo
-                .getInsuredPersonInfo()
-                .getIdentifyNumber());
-
-        ziJinApiOrderRepository.save(ziJinApiOrder);
+        ziJinCrawlerOrderService.saveOrderInfo(quoteVo, modelQueryResponse);
         return ZiJinAPIQuoteResultsVoBuild.buildQuoteResultsVo(order.getOrdersNo(), quoteVo, calculatePremiumResponse);
     }
 
     @Override
     public void underwriting(UnderwritingVo underwritingVo) {
         OrderBase orderBase = underwritingVo.getOrder();
-        ZiJinApiOrder ziJinApiOrder = ziJinApiOrderRepository.getById(orderBase.getOrdersNo());
+        ZiJinApiOrder ziJinApiOrder = ziJinCrawlerOrderService.getById(orderBase.getOrdersNo());
         // 配置信息
         ZiJinApiConfigureParameters parameters = ConfigureParametersConversion.conversionEntity(ZiJinApiConfigureParameters.class, orderBase
                 .getAttributionInformationVo()
@@ -95,7 +85,7 @@ public class ZiJinApiRequestImpl implements ZiJinApiRequest {
 
     @Override
     public String getPaymentLink(OrderBase orderBase) {
-        ZiJinApiOrder ziJinApiOrder = ziJinApiOrderRepository.getById(orderBase.getOrdersNo());
+        ZiJinApiOrder ziJinApiOrder = ziJinCrawlerOrderService.getById(orderBase.getOrdersNo());
         ZiJinApiConfigureParameters parameters = ConfigureParametersConversion.conversionEntity(ZiJinApiConfigureParameters.class, orderBase
                 .getAttributionInformationVo()
                 .getConfigInfo());
@@ -109,7 +99,7 @@ public class ZiJinApiRequestImpl implements ZiJinApiRequest {
     public void uploadImage(InsuranceUploadImageVo insuranceUploadImageVo) {
         // 获取订单信息
         OrderBase orderBase = insuranceUploadImageVo.getOrder();
-        ZiJinApiOrder ziJinApiOrder = ziJinApiOrderRepository.getById(orderBase.getOrdersNo());
+        ZiJinApiOrder ziJinApiOrder = ziJinCrawlerOrderService.getById(orderBase.getOrdersNo());
         // 配置信息
         ZiJinApiConfigureParameters parameters = ConfigureParametersConversion.conversionEntity(ZiJinApiConfigureParameters.class, orderBase
                 .getAttributionInformationVo()
@@ -146,8 +136,12 @@ public class ZiJinApiRequestImpl implements ZiJinApiRequest {
 
     @Override
     public void downloadPolicy(OrderBase orderBase) {
-        ZiJinApiOrder ziJinApiOrder = ziJinApiOrderRepository.getById(orderBase.getOrdersNo());
+        ZiJinApiOrder ziJinApiOrder = ziJinCrawlerOrderService.getById(orderBase.getOrdersNo());
 
     }
 
+    @Override
+    public void queryOrderState(OrderBase orderBase) {
+
+    }
 }

+ 35 - 0
tenant/insurance/quotation-zijin/src/main/java/com/jzg/quotation/zijin/api/service/Impl/ZiJinCrawlerOrderServiceImpl.java

@@ -0,0 +1,35 @@
+package com.jzg.quotation.zijin.api.service.Impl;
+
+import com.jzg.quotation.commons.entity.vo.aggregated.QuoteVo;
+import com.jzg.quotation.zijin.api.entity.po.ZiJinApiOrder;
+import com.jzg.quotation.zijin.api.entity.response.ModelQueryResponse;
+import com.jzg.quotation.zijin.api.repository.ZiJinApiOrderRepository;
+import com.jzg.quotation.zijin.api.service.ZiJinCrawlerOrderService;
+import lombok.RequiredArgsConstructor;
+import org.springframework.stereotype.Service;
+
+@Service
+@RequiredArgsConstructor
+public class ZiJinCrawlerOrderServiceImpl implements ZiJinCrawlerOrderService {
+
+    private final ZiJinApiOrderRepository ziJinApiOrderRepository;
+
+    @Override
+    public void saveOrderInfo(QuoteVo quoteVo, ModelQueryResponse modelQueryResponse) {
+        // 存储信息
+        ZiJinApiOrder ziJinApiOrder = new ZiJinApiOrder();
+        ziJinApiOrder.setId(quoteVo.getOrder().getOrdersNo());
+        ziJinApiOrder.setOrderNo(modelQueryResponse.getOrderNo());
+        ziJinApiOrder.setOrderId(modelQueryResponse.getOrderId());
+        ziJinApiOrder.setProductsCode(quoteVo.getOrder().getProductsCode());
+        ziJinApiOrder.setInsuredIdentify(quoteVo
+                .getInsuredPersonInfo()
+                .getIdentifyNumber());
+        ziJinApiOrderRepository.save(ziJinApiOrder);
+    }
+
+    @Override
+    public ZiJinApiOrder getById(String ordersNo) {
+        return ziJinApiOrderRepository.getById(ordersNo);
+    }
+}

+ 24 - 0
tenant/insurance/quotation-zijin/src/main/java/com/jzg/quotation/zijin/api/service/ZiJinCrawlerOrderService.java

@@ -0,0 +1,24 @@
+package com.jzg.quotation.zijin.api.service;
+
+import com.jzg.quotation.commons.entity.vo.aggregated.QuoteVo;
+import com.jzg.quotation.zijin.api.entity.po.ZiJinApiOrder;
+import com.jzg.quotation.zijin.api.entity.response.ModelQueryResponse;
+
+public interface ZiJinCrawlerOrderService {
+
+    /**
+     * 存储订单信息
+     *
+     * @param quoteVo            报价信息
+     * @param modelQueryResponse 车辆信息
+     */
+    void saveOrderInfo(QuoteVo quoteVo, ModelQueryResponse modelQueryResponse);
+
+    /**
+     * 获取mongo中的订单信息
+     *
+     * @param ordersNo 订单号
+     * @return mongo中的订单信息
+     */
+    ZiJinApiOrder getById(String ordersNo);
+}