wlq 1 год назад
Родитель
Сommit
d2696727c9

+ 5 - 0
tenant/insurance/quotation-taikang/src/main/java/com/jzg/quotation/taikang/client/HttpURL.java

@@ -121,4 +121,9 @@ public interface HttpURL {
      * 订单管理查询已完成的保险列表
      */
     String orderCompleteAgent = host + "/carSelfService/rest/order/management/agent/completeAgent";
+
+    /**
+     * 上传影像
+     */
+    String carCheckUploadFile = host + "/carSelfService/carCheck/upload/file";
 }

+ 73 - 0
tenant/insurance/quotation-taikang/src/main/java/com/jzg/quotation/taikang/client/TKHttpClient.java

@@ -8,9 +8,18 @@ import lombok.Setter;
 import lombok.extern.slf4j.Slf4j;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
+import org.springframework.core.io.ByteArrayResource;
+import org.springframework.core.io.FileSystemResource;
 import org.springframework.http.HttpHeaders;
+import org.springframework.http.MediaType;
 import org.springframework.http.ResponseEntity;
 import org.springframework.stereotype.Component;
+import org.springframework.util.LinkedMultiValueMap;
+import org.springframework.util.MultiValueMap;
+import org.springframework.web.reactive.function.BodyInserters;
+import org.springframework.web.reactive.function.client.WebClient;
+
+import java.io.File;
 
 @Slf4j
 @Component
@@ -57,4 +66,68 @@ public class TKHttpClient {
 
         return request(url, jsonString, httpHeaders, responseType);
     }
+
+    /**
+     * 上传 File 对象并附带参数
+     * @param file
+     */
+    public void uploadFileWithParams(String url, MultiValueMap<String, Object> formData, File file) {
+        if (file == null) {
+            return;
+        }
+
+        if (formData == null) {
+            formData = new LinkedMultiValueMap<>();
+        }
+
+        formData.add("file", new FileSystemResource(file));
+
+        sendRequest(url, formData);
+    }
+
+    /**
+     * 上传 byte[] 并附带参数
+     *
+     * @param url
+     * @param formData
+     * @param fileBytes
+     * @param originalFilename
+     */
+    public void uploadBytesWithParams(String url, MultiValueMap<String, Object> formData, byte[] fileBytes, String originalFilename) {
+        if (fileBytes == null || originalFilename == null) {
+            return;
+        }
+
+        if (formData == null) {
+            formData = new LinkedMultiValueMap<>();
+        }
+
+        formData.add("file", new ByteArrayResource(fileBytes) {
+            @Override
+            public String getFilename() {
+                return originalFilename;
+            }
+        });
+
+        sendRequest(url, formData);
+    }
+
+    /**
+     * 上传文件请求
+     *
+     * @param url
+     * @param formData
+     */
+    private void sendRequest(String url, MultiValueMap<String, Object> formData) {
+        WebClient.create()
+                .post()
+                .uri(url)
+                .contentType(MediaType.MULTIPART_FORM_DATA)
+                .body(BodyInserters.fromMultipartData(formData))
+                .retrieve()
+                .bodyToMono(String.class)
+                .doOnSuccess(response -> System.out.println("上传成功: " + response))
+                .doOnError(e -> System.err.println("上传失败: " + e.getMessage()))
+                .block();
+    }
 }

+ 53 - 0
tenant/insurance/quotation-taikang/src/main/java/com/jzg/quotation/taikang/model/api/CarCheckUploadFileParam.java

@@ -0,0 +1,53 @@
+package com.jzg.quotation.taikang.model.api;
+
+import com.jzg.quotation.taikang.client.OrderRequest;
+import lombok.Getter;
+import lombok.Setter;
+
+@Setter
+@Getter
+public class CarCheckUploadFileParam extends OrderRequest {
+    /**
+     * 输入日期
+     */
+    private String inputDate;
+
+    /**
+     * 类型名称
+     */
+    private String typeName;
+
+    /**
+     * 图片类型
+     */
+    private Integer imgType;
+
+    /**
+     * 类型路径
+     */
+    private String typePath;
+
+    /**
+     * 文件原始名称
+     */
+    private String fileOrgName;
+
+    /**
+     * 唯一ID
+     */
+    private String onlyId;
+
+    /**
+     * 上传类型
+     */
+    private Integer uploadType;
+
+    /**
+     * 文件类型(与文件原始名称可能重复,根据业务逻辑确认是否区分)
+     */
+    private String fileType;
+
+    private String fullProposalNo;
+    private String lastFullProposalNo;
+
+}

+ 25 - 0
tenant/insurance/quotation-taikang/src/main/java/com/jzg/quotation/taikang/service/TKHttpAPIService.java

@@ -12,7 +12,10 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.http.HttpHeaders;
 import org.springframework.stereotype.Service;
+import org.springframework.util.LinkedMultiValueMap;
+import org.springframework.util.MultiValueMap;
 
+import java.io.File;
 import java.util.List;
 import java.util.Map;
 
@@ -1044,4 +1047,26 @@ public class TKHttpAPIService {
 
         return list.get(0);
     }
+
+    /**
+     * 上传影像
+     */
+    public void carCheckUploadFile(File file, CarCheckUploadFileParam param) {
+        MultiValueMap<String, Object> formData = new LinkedMultiValueMap<>();
+        formData.add("fullProposalNo", param.getFullProposalNo());
+        formData.add("lastFullProposalNo", param.getLastFullProposalNo());
+        formData.add("channelCode", param.getChannelCode());
+        formData.add("orderID", param.getOrderId());
+        formData.add("inputDate", param.getInputDate());
+        formData.add("typeName", param.getTypeName());
+        formData.add("imgType", param.getImgType());
+        formData.add("typePath", param.getTypePath());
+        formData.add("fileOrgName", param.getFileOrgName());
+        formData.add("onlyId", param.getOnlyId());
+        formData.add("uploadType", param.getUploadType());
+        formData.add("tplatformId", param.getTplatformId());
+        formData.add("fileType", param.getFileType());
+
+        client.uploadFileWithParams(HttpURL.carCheckUploadFile, formData, file);
+    }
 }

+ 136 - 0
tenant/insurance/quotation-taikang/src/main/java/com/jzg/quotation/taikang/service/TKQuotationBaseServiceImpl.java

@@ -20,6 +20,7 @@ import jakarta.annotation.Resource;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.io.File;
 import java.util.ArrayList;
 import java.util.List;
 
@@ -257,7 +258,142 @@ public class TKQuotationBaseServiceImpl implements QuotationBaseService {
 
     @Override
     public void uploadImage(InsuranceUploadImageVo insuranceUploadImageVo) {
+        File file = null;
+        CarCheckUploadFileParam param  = new CarCheckUploadFileParam();
+
+        param.setChannelCode("OffWeb");
+        param.setTplatformId("feda77e829d4dedbbd8b4e236bacfac5");
+        param.setOnlyId("WBPC202503260842567380000");
+        param.setFullProposalNo("00671070807142500000009558");
+        param.setLastFullProposalNo("");
+        param.setInputDate("2025-03-26 08:49:30");
+        param.setImgType(6);
+        param.setUploadType(1);
+
+        {
+            // 核保资料 / 新增设备发票与清单
+            param.setFileOrgName("1fileOrgName01-12-0117429775996580");
+            param.setTypePath("01-12-01");
+            param.setTypeName("投保业务-核保资料-新增设备发票与清单");
+            param.setOnlyId("投保业务-核保资料-新增设备发票与清单-0");
+            param.setFileType("1fileOrgName01-12-0117429775996580");
+        }
+        {
+            // 核保资料 / 投保资料 / 图片
+            param.setFileOrgName("1fileOrgName01-12-0117429775996580");
+            param.setTypePath("01-12-01");
+            param.setTypeName("投保业务-核保资料-新增设备发票与清单");
+            param.setOnlyId("投保业务-核保资料-新增设备发票与清单-0");
+            param.setFileType("1fileOrgName01-12-0117429775996580");
+        }
+        {
+            // 核保资料 / 投保资料 / 视频
+            param.setFileOrgName("1fileOrgName01-12-0117429775996580");
+            param.setTypePath("01-12-01");
+            param.setTypeName("投保业务-核保资料-新增设备发票与清单");
+            param.setOnlyId("投保业务-核保资料-新增设备发票与清单-0");
+            param.setFileType("1fileOrgName01-12-0117429775996580");
+        }
+        {
+            // 核保资料 / 减免税凭证
+            param.setFileOrgName("1fileOrgName01-12-0117429775996580");
+            param.setTypePath("01-12-01");
+            param.setTypeName("投保业务-核保资料-新增设备发票与清单");
+            param.setOnlyId("投保业务-核保资料-新增设备发票与清单-0");
+            param.setFileType("1fileOrgName01-12-0117429775996580");
+        }
+        {
+            // 核保资料 / 委托书
+            param.setFileOrgName("1fileOrgName01-12-0117429775996580");
+            param.setTypePath("01-12-01");
+            param.setTypeName("投保业务-核保资料-新增设备发票与清单");
+            param.setOnlyId("投保业务-核保资料-新增设备发票与清单-0");
+            param.setFileType("1fileOrgName01-12-0117429775996580");
+        }
+        {
+            // 证件照 / 证件照
+            param.setFileOrgName("1fileOrgName01-12-0117429775996580");
+            param.setTypePath("01-14-01");
+            param.setTypeName("投保业务-证件照-证件照");
+            param.setOnlyId("投保业务-证件照-证件照-0");
+            param.setFileType("1fileOrgName01-12-0117429775996580");
+        }
+        {
+            // 证件照 / 驾驶证
+            param.setFileOrgName("1fileOrgName01-12-0117429775996580");
+            param.setTypePath("01-14-02");
+            param.setTypeName("投保业务-证件照-驾驶证");
+            param.setOnlyId("投保业务-证件照-驾驶证-0");
+            param.setFileType("1fileOrgName01-12-0117429775996580");
+        }
+        {
+            // 证件照 / 人脸与身份证照
+            param.setFileOrgName("1fileOrgName01-12-0117429775996580");
+            param.setTypePath("01-14-03");
+            param.setTypeName("投保业务-证件照-人脸与身份证照");
+            param.setOnlyId("投保业务-证件照-人脸与身份证照-0");
+            param.setFileType("1fileOrgName01-12-0117429775996580");
+        }
+        {
+            // 车辆证件 / 行驶证
+            param.setFileOrgName("1fileOrgName01-12-0117429775996580");
+            param.setTypePath("01-15-01");
+            param.setTypeName("投保业务-车辆证件-行驶证");
+            param.setOnlyId("投保业务-车辆证件-行驶证-0");
+            param.setFileType("1fileOrgName01-12-0117429775996580");
+        }
+        {
+            // 车辆证件 / 购车发票
+            param.setFileOrgName("1fileOrgName01-12-0117429775996580");
+            param.setTypePath("01-15-02");
+            param.setTypeName("投保业务-车辆证件-购车发票");
+            param.setOnlyId("投保业务-车辆证件-购车发票-0");
+            param.setFileType("1fileOrgName01-12-0117429775996580");
+        }
+        {
+            // 车辆证件 / 合格证
+            param.setFileOrgName("1fileOrgName01-12-0117429775996580");
+            param.setTypePath("01-15-03");
+            param.setTypeName("投保业务-车辆证件-合格证");
+            param.setOnlyId("投保业务-车辆证件-合格证-0");
+            param.setFileType("1fileOrgName01-12-0117429775996580");
+        }
+        {
+            // 业务单证 / 投保单
+            param.setFileOrgName("1fileOrgName01-12-0117429775996580");
+            param.setTypePath("01-17-01");
+            param.setTypeName("投保业务-业务单证-投保单");
+            param.setOnlyId("投保业务-业务单证-投保单-0");
+            param.setFileType("1fileOrgName01-12-0117429775996580");
+        }
+        {
+            // 业务单证 / 免责事项说明书
+            param.setFileOrgName("1fileOrgName01-12-0117429775996580");
+            param.setTypePath("01-17-02");
+            param.setTypeName("投保业务-业务单证-免责事项说明书");
+            param.setOnlyId("投保业务-业务单证-免责事项说明书-0");
+            param.setFileType("1fileOrgName01-12-0117429775996580");
+        }
+        {
+            // 业务单证 / 浮动告知单
+            param.setFileOrgName("1fileOrgName01-12-0117429775996580");
+            param.setTypePath("01-17-03");
+            param.setTypeName("投保业务-业务单证-浮动告知单");
+            param.setOnlyId("投保业务-业务单证-浮动告知单-0");
+            param.setFileType("1fileOrgName01-12-0117429775996580");
+        }
+        {
+            // 其他资料 / 其他资料
+            param.setFileOrgName("1fileOrgName01-12-0117429775996580");
+            param.setTypePath("01-18-01");
+            param.setTypeName("投保业务-其他资料-其他资料");
+            param.setOnlyId("投保业务-其他资料-其他资料-0");
+            param.setFileType("1fileOrgName01-12-0117429775996580");
+        }
+
+
 
+        httpService.carCheckUploadFile(file, param);
     }
 
     @Override