Selaa lähdekoodia

save: 华农财险 状态查询 下载保单 相关

wks 1 vuosi sitten
vanhempi
commit
4691f4ebbe

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

@@ -10,9 +10,14 @@ import com.jzg.quote.huanong.crawler.properties.HuaNongCrawlerProperties;
 import com.jzg.quote.huanong.crawler.utils.RequestEncryptor;
 import com.jzg.quote.huanong.crawler.utils.RequestEncryptor;
 import lombok.RequiredArgsConstructor;
 import lombok.RequiredArgsConstructor;
 import org.springframework.http.HttpHeaders;
 import org.springframework.http.HttpHeaders;
+import org.springframework.http.MediaType;
 import org.springframework.http.ResponseEntity;
 import org.springframework.http.ResponseEntity;
 import org.springframework.stereotype.Component;
 import org.springframework.stereotype.Component;
+import org.springframework.util.LinkedMultiValueMap;
+import org.springframework.util.MultiValueMap;
 import org.springframework.util.StringUtils;
 import org.springframework.util.StringUtils;
+import org.springframework.web.reactive.function.BodyInserters;
+import org.springframework.web.reactive.function.client.WebClient;
 
 
 
 
 /**
 /**
@@ -28,6 +33,8 @@ public class HuaNongCrawlerRequestComponent {
 
 
     private final RequestComponent requestComponent;
     private final RequestComponent requestComponent;
 
 
+    private final WebClient webClient;
+
     public <Request extends HuaNongHead, Response> Response post(RequestUrl requestUrl, Request body, Class<Response> responseClass, HttpHeaders headers) {
     public <Request extends HuaNongHead, Response> Response post(RequestUrl requestUrl, Request body, Class<Response> responseClass, HttpHeaders headers) {
         HuaNongCrawlerRequestBaseHead head = body.getHead();
         HuaNongCrawlerRequestBaseHead head = body.getHead();
         head.setSource(requestUrl.getUri());
         head.setSource(requestUrl.getUri());
@@ -127,6 +134,36 @@ public class HuaNongCrawlerRequestComponent {
         return post(RequestUrl.SAVE, request, HuaNongCrawlerSaveResponse.class, headers);
         return post(RequestUrl.SAVE, request, HuaNongCrawlerSaveResponse.class, headers);
     }
     }
 
 
+    /**
+     * 跳转页面链接
+     * @param request 跳转页面链接请求
+     * @param headers 请求头
+     * @return 跳转页面需要的data
+     */
+    public String newImageQuery(HuaNongCrawlerNewImageQueryRequest request, HttpHeaders headers) {
+        HuaNongCrawlerNewImageQueryResponse response = post(RequestUrl.SAVE, request, HuaNongCrawlerNewImageQueryResponse.class, headers);
+        return response.getData();
+    }
+
+    public String bizUpload(String data, HttpHeaders headers) {
+        MultiValueMap<String, Object> parts = new LinkedMultiValueMap<>();
+        parts.add("data", data);
+        ResponseEntity<String> response = webClient.post()
+                .uri(properties.getUploadUrl() + RequestUrl.BIZ_UPLOAD)
+                .headers(RequestComponent.setHeaders(headers))
+                .contentType(MediaType.MULTIPART_FORM_DATA)
+                .body(BodyInserters.fromMultipartData(parts))
+                .retrieve()
+                .toEntity(String.class)
+                .block();
+        return (String) response.getHeaders().;
+    }
+
+
+
+
+
+
     /**
     /**
      * 提交核保
      * 提交核保
      *
      *

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

@@ -28,6 +28,11 @@ public enum RequestUrl implements CrawlerRequestUrlStandard {
     // 上传影像
     // 上传影像
     NEW_IMAGE_QUERY("newImageQuery", "影像上传", "newImageQuery"),
     NEW_IMAGE_QUERY("newImageQuery", "影像上传", "newImageQuery"),
 
 
+    BIZ_UPLOAD("/tianying/api/biz/upload", "上传影像地址", ""),
+    CATALOG_QUERY("/tianying/api/doc/catalogQuery", "影像目录查询", ""),
+    FILE_UPLOAD("/tianying/api/doc/fileUpload", "上传影像", ""),
+    FILE_SUBMIT("/tianying/api/doc/fileSubmit", "提交影像", ""),
+
     // 提交核保
     // 提交核保
     SUBMIT("Submit", "提交核保", "Submit"),
     SUBMIT("Submit", "提交核保", "Submit"),
     // 状态查询
     // 状态查询

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

@@ -4,6 +4,9 @@ import com.fasterxml.jackson.annotation.JsonProperty;
 import lombok.Data;
 import lombok.Data;
 import lombok.NoArgsConstructor;
 import lombok.NoArgsConstructor;
 
 
+import java.io.Serial;
+import java.io.Serializable;
+
 /**
 /**
  * @description: 华农财险 爬虫 新影像上传
  * @description: 华农财险 爬虫 新影像上传
  * @author: wenks
  * @author: wenks
@@ -11,7 +14,10 @@ import lombok.NoArgsConstructor;
  **/
  **/
 @NoArgsConstructor
 @NoArgsConstructor
 @Data
 @Data
-public class HuaNongCrawlerNewImageQueryRequest {
+public class HuaNongCrawlerNewImageQueryRequest implements Serializable, HuaNongHead {
+
+    @Serial
+    private static final long serialVersionUID = 7337617295810357364L;
 
 
     @JsonProperty("head")
     @JsonProperty("head")
     private HuaNongCrawlerRequestBaseHead head;
     private HuaNongCrawlerRequestBaseHead head;

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

@@ -0,0 +1,161 @@
+package com.jzg.quote.huanong.crawler.entity.response;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.List;
+
+/**
+ * @description: 大家财险 上传影像 目录查询
+ * @author: wenks
+ * @date: 2025/3/25 15:18
+ **/
+@NoArgsConstructor
+@Data
+public class HuaNongCrawlerCatalogQueryResponse {
+
+    @JsonProperty("code")
+    private String code;
+
+    @JsonProperty("message")
+    private String message;
+
+    @JsonProperty("data")
+    private DataDTO data;
+
+    @NoArgsConstructor
+    @Data
+    public static class DataDTO {
+        @JsonProperty("treeData")
+        private List<TreeDataDTO> treeData;
+
+        @NoArgsConstructor
+        @Data
+        public static class TreeDataDTO {
+
+            @JsonProperty("nodes")
+            private List<NodesDTO> nodes;
+
+            @JsonProperty("appCode")
+            private String appCode;
+
+            @JsonProperty("appName")
+            private String appName;
+
+            @JsonProperty("bizNo")
+            private String bizNo;
+
+            @JsonProperty("docNum")
+            private Integer docNum;
+
+            @NoArgsConstructor
+            @Data
+            public static class PagesDTO {
+
+                @JsonProperty("id")
+                private String id;
+
+                @JsonProperty("docId")
+                private String docId;
+
+                @JsonProperty("nodeId")
+                private String nodeId;
+
+                @JsonProperty("createUser")
+                private String createUser;
+
+                @JsonProperty("createUserName")
+                private String createUserName;
+
+                @JsonProperty("modifyUser")
+                private String modifyUser;
+
+                @JsonProperty("modifyTime")
+                private String modifyTime;
+
+                @JsonProperty("uploadOrg")
+                private String uploadOrg;
+
+                @JsonProperty("pageName")
+                private String pageName;
+
+                @JsonProperty("originalName")
+                private String originalName;
+
+                @JsonProperty("pageDesc")
+                private String pageDesc;
+
+                @JsonProperty("imageUrl")
+                private String imageUrl;
+
+                @JsonProperty("thumbUrl")
+                private String thumbUrl;
+
+                @JsonProperty("pageSize")
+                private String pageSize;
+
+                @JsonProperty("pageFormat")
+                private String pageFormat;
+
+                @JsonProperty("pageCrc")
+                private String pageCrc;
+
+                @JsonProperty("pageVer")
+                private Integer pageVer;
+
+                @JsonProperty("sortNo")
+                private Integer sortNo;
+
+                @JsonProperty("createTime")
+                private String createTime;
+
+            }
+
+            @NoArgsConstructor
+            @Data
+            public static class NodesDTO {
+
+                @JsonProperty("id")
+                private String id;
+
+                @JsonProperty("right")
+                private String right;
+
+                @JsonProperty("nodeCode")
+                private String nodeCode;
+
+                @JsonProperty("nodeName")
+                private String nodeName;
+
+                @JsonProperty("pid")
+                private String pid;
+
+                @JsonProperty("newNodeFlag")
+                private Integer newNodeFlag;
+
+                @JsonProperty("docNum")
+                private Integer docNum;
+
+                @JsonProperty("nodeLevel")
+                private Integer nodeLevel;
+
+                @JsonProperty("pages")
+                private List<PagesDTO> pages;
+
+                @JsonProperty("resize")
+                private String resize;
+
+                @JsonProperty("childFlag")
+                private Integer childFlag;
+
+                @JsonProperty("sortNo")
+                private Integer sortNo;
+
+                @JsonProperty("children")
+                private List<NodesDTO> children;
+
+            }
+        }
+    }
+}

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

@@ -0,0 +1,46 @@
+package com.jzg.quote.huanong.crawler.entity.response;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * @description: 上传影像
+ * @author: wenks
+ * @date: 2025/3/25 15:54
+ **/
+@NoArgsConstructor
+@Data
+public class HuaNongCrawlerFileUploadResponse {
+
+    @JsonProperty("code")
+    private String code;
+
+    @JsonProperty("message")
+    private String message;
+
+    @JsonProperty("data")
+    private DataDTO data;
+
+    @NoArgsConstructor
+    @Data
+    public static class DataDTO {
+
+        @JsonProperty("pageName")
+        private String pageName;
+
+        @JsonProperty("pageFormat")
+        private String pageFormat;
+
+        @JsonProperty("imageUrl")
+        private String imageUrl;
+
+        @JsonProperty("thumbUrl")
+        private String thumbUrl;
+
+        @JsonProperty("tempId")
+        private String tempId;
+
+    }
+
+}

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

@@ -0,0 +1,23 @@
+package com.jzg.quote.huanong.crawler.entity.response;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+
+/**
+ * @description: 大家财险 上传影像 跳转页面
+ * @author: wenks
+ * @date: 2025/3/25 15:58
+ **/
+@NoArgsConstructor
+@Data
+public class HuaNongCrawlerNewImageQueryResponse {
+
+    @JsonProperty("data")
+    private String data;
+
+    @JsonProperty("head")
+    private HuaNongCrawlerBaseResponseHead head;
+
+}

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

@@ -5,7 +5,6 @@ import org.springframework.boot.context.properties.ConfigurationProperties;
 import org.springframework.stereotype.Component;
 import org.springframework.stereotype.Component;
 
 
 /**
 /**
- * @version
  * @description: 华农财险 配置信息
  * @description: 华农财险 配置信息
  * @author: wenks
  * @author: wenks
  * @date: 2025/3/20 11:26
  * @date: 2025/3/20 11:26
@@ -25,6 +24,11 @@ public class HuaNongCrawlerProperties {
      */
      */
     private String payUrl;
     private String payUrl;
 
 
+    /**
+     * 上传影像地址
+     */
+    private String uploadUrl;
+
     /**
     /**
      * 非车险保单地址
      * 非车险保单地址
      */
      */

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

@@ -19,6 +19,7 @@ import com.jzg.quote.huanong.crawler.entity.po.HuaNongCrawlerOrder;
 import com.jzg.quote.huanong.crawler.entity.request.*;
 import com.jzg.quote.huanong.crawler.entity.request.*;
 import com.jzg.quote.huanong.crawler.entity.response.HuaNongCrawlerModelsQueryResponse;
 import com.jzg.quote.huanong.crawler.entity.response.HuaNongCrawlerModelsQueryResponse;
 import com.jzg.quote.huanong.crawler.entity.response.HuaNongCrawlerQuotedPriceResponse;
 import com.jzg.quote.huanong.crawler.entity.response.HuaNongCrawlerQuotedPriceResponse;
+import com.jzg.quote.huanong.crawler.entity.response.HuaNongCrawlerSaveResponse;
 import com.jzg.quote.huanong.crawler.entity.response.HuaNongCrawlerSubmitResponse;
 import com.jzg.quote.huanong.crawler.entity.response.HuaNongCrawlerSubmitResponse;
 import com.jzg.quote.huanong.crawler.service.HuaNongCrawlerGetToken;
 import com.jzg.quote.huanong.crawler.service.HuaNongCrawlerGetToken;
 import com.jzg.quote.huanong.crawler.service.HuaNongCrawlerOrderService;
 import com.jzg.quote.huanong.crawler.service.HuaNongCrawlerOrderService;
@@ -73,6 +74,10 @@ public class HuaNongCrawlerRequestImpl implements HuaNongCrawlerRequest {
         HuaNongCrawlerQuotedPriceRequest huaNongCrawlerQuotedPriceRequest = new HuaNongCrawlerQuotedPriceRequest(token, attributionInformationVo.getUsername(), quoteVo, carModelDTO, actualValue);
         HuaNongCrawlerQuotedPriceRequest huaNongCrawlerQuotedPriceRequest = new HuaNongCrawlerQuotedPriceRequest(token, attributionInformationVo.getUsername(), quoteVo, carModelDTO, actualValue);
         HuaNongCrawlerQuotedPriceResponse huaNongCrawlerQuotedPriceResponse = huaNongCrawlerRequestComponent.quotedPrice(huaNongCrawlerQuotedPriceRequest, httpHeaders);
         HuaNongCrawlerQuotedPriceResponse huaNongCrawlerQuotedPriceResponse = huaNongCrawlerRequestComponent.quotedPrice(huaNongCrawlerQuotedPriceRequest, httpHeaders);
 
 
+        // 保存
+        HuaNongCrawlerSaveRequest huaNongCrawlerSaveRequest = new HuaNongCrawlerSaveRequest();
+        HuaNongCrawlerSaveResponse save = huaNongCrawlerRequestComponent.save(huaNongCrawlerSaveRequest, httpHeaders);
+
         return null;
         return null;
     }
     }
 
 

+ 6 - 4
tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/SummaryQuotationApplication.java

@@ -8,6 +8,8 @@ import org.springframework.boot.autoconfigure.SpringBootApplication;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
 import org.springframework.cloud.openfeign.EnableFeignClients;
 import org.springframework.cloud.openfeign.EnableFeignClients;
 import org.springframework.context.annotation.ComponentScan;
 import org.springframework.context.annotation.ComponentScan;
+import org.springframework.data.mongodb.repository.config.EnableMongoRepositories;
+import org.springframework.data.mongodb.repository.support.SimpleMongoRepository;
 
 
 
 
 @ComponentScan(basePackages = {"com.jzg"})
 @ComponentScan(basePackages = {"com.jzg"})
@@ -15,10 +17,10 @@ import org.springframework.context.annotation.ComponentScan;
 @SpringBootApplication
 @SpringBootApplication
 @EnableFeignClients(basePackages = "com.jzg.quotation.commons.client")
 @EnableFeignClients(basePackages = "com.jzg.quotation.commons.client")
 @EnableConfigurationProperties(YcConfigurationProperties.class)
 @EnableConfigurationProperties(YcConfigurationProperties.class)
-//@EnableMongoRepositories(
-//        basePackages = "com.jzg.quotation.zijin.api.repository",
-//        repositoryBaseClass = SimpleMongoRepository.class // 强制同步模式
-//)
+@EnableMongoRepositories(
+        basePackages = "com.jzg.quotation.*.*.repository",
+        repositoryBaseClass = SimpleMongoRepository.class // 强制同步模式
+)
 public class SummaryQuotationApplication {
 public class SummaryQuotationApplication {
 
 
     public static void main(String[] args) {
     public static void main(String[] args) {