Quellcode durchsuchen

中煤报价相关

shenweidong vor 1 Jahr
Ursprung
Commit
399dec13e4

+ 4 - 4
tenant/insurance/quotation-zhongmei/src/main/java/com/jzg/quote/zhongmei/api/componet/ZmApiRequestComponent.java

@@ -94,8 +94,8 @@ public class ZmApiRequestComponent {
      * @param <S> Response 响应体
      * @param <S> Response 响应体
      *            影像
      *            影像
      */
      */
-    private <Q extends BaseRequest, S extends BaseResponse> void imageRequest(Q request, Class<S> tClass, boolean verify) {
-        request(request, tClass, verify, zmApiProperties.getUrl(), "");
+    private <Q extends BaseRequest, S extends BaseResponse> S imageRequest(Q request, Class<S> tClass, boolean verify) {
+        return request(request, tClass, verify, zmApiProperties.getUrl(), "");
     }
     }
 
 
     /**
     /**
@@ -142,8 +142,8 @@ public class ZmApiRequestComponent {
     /**
     /**
      * 上传影像 传入订单信息,查询是否生成保单成功
      * 上传影像 传入订单信息,查询是否生成保单成功
      */
      */
-    public void uploadImage(UploadImageRequest request, Class<UploadImageResponse> tClass) {
-        imageRequest(request, tClass, true);
+    public UploadImageResponse uploadImage(UploadImageRequest request, Class<UploadImageResponse> tClass) {
+        return imageRequest(request, tClass, true);
     }
     }
 
 
     /**
     /**

+ 43 - 0
tenant/insurance/quotation-zhongmei/src/main/java/com/jzg/quote/zhongmei/api/constant/enums/ImageTypeEnum.java

@@ -0,0 +1,43 @@
+package com.jzg.quote.zhongmei.api.constant.enums;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+/**
+ * @description:
+ * @author: shenwd
+ * @date: 2025/2/28 16:46
+ **/
+@AllArgsConstructor
+@Getter
+public enum ImageTypeEnum {
+    /**
+     * UW_0301	验车资料
+     * UW_0302	个人客户资料
+     * UW_0303	企业客户资料
+     * UW_0304	批改资料
+     * UW_0305	车辆资料
+     * UW_0306	保单批单资料
+     * UW_0309	销售环节资料
+     */
+    UW_0301("UW_0301", "验车资料", new String[]{"C05"}),
+    UW_0302("UW_0302", "个人客户资料", new String[]{
+            InsuranceImageEnum.C02.getCode(), InsuranceImageEnum.D02.getCode(),
+            InsuranceImageEnum.C03.getCode(), InsuranceImageEnum.D03.getCode(),
+            InsuranceImageEnum.C04.getCode(), InsuranceImageEnum.D04.getCode(),
+    }),
+    UW_0303("UW_0303", "企业客户资料", new String[]{}),
+    UW_0304("UW_0304", "批改资料", new String[]{}),
+    UW_0305("UW_0305", "车辆资料", new String[]{InsuranceImageEnum.C01.getCode(), InsuranceImageEnum.D01.getCode()}),
+    UW_0306("UW_0306", "保单批单资料", new String[]{}),
+    UW_0309("UW_0309", "销售环节资料", new String[]{});
+
+
+    //C01车辆影像,C02车主身份证,C03投保人身份证,C04被保人身份证,C05验车照
+    private final String type;
+
+    private final String info;
+
+    private final String[] imagesType;
+
+}

+ 72 - 0
tenant/insurance/quotation-zhongmei/src/main/java/com/jzg/quote/zhongmei/api/constant/enums/InsuranceImageEnum.java

@@ -0,0 +1,72 @@
+package com.jzg.quote.zhongmei.api.constant.enums;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+/**
+ * @description:
+ * @author: shenwd
+ * @date: 2025/2/28 16:47
+ **/
+@Getter
+@AllArgsConstructor
+public enum InsuranceImageEnum {
+
+    SFZ_01("SFZ_01", "身份证正面"),
+    SFZ_02("SFZ_02", "身份证反面"),
+    YHK_01("YHK_01", "银行卡正面"),
+
+    ZGZ_00("ZGZ_00", "资格证照片"),
+
+    LD_00("LD_00", "劳动合同照片"),
+
+    YP_00("YP_00", "应聘表照片"),
+
+    DX_00("DX_00", "定薪表照片"),
+
+    XC00("XC00", "新车合格证"),
+    GC00("GC00", "购车发票"),
+    GX00("GX00", "关系证明"),
+
+    C01("C01", "行驶证正面"),
+    D01("D01", "行驶证反面"),
+
+    C02("C02", "车主身份证正面"),
+    D02("D02", "车主身份证反面"),
+    Y02("Y02", "车主营业执照"),
+
+    C03("C03", "投保人身份证正面"),
+    D03("D03", "投保人身份证反面"),
+    Y03("Y03", "投保人营业执照"),
+
+    C04("C04", "被保人身份证正面"),
+    D04("D04", "被保人身份证反面"),
+    Y04("Y04", "被保人营业执照"),
+    SQ00("SQ00", "授权书"),
+    LZ_01("LZ_01","离职表"),
+
+    //  add by 2024-08-16  添加平安上传资料
+    //平安添加验车照上传类型
+    C0500("C0500", "验车照(车架)"),
+    C0501("C0501", "验车照(后左)"),
+    C0502("C0502", "验车照(后右)"),
+    C0503("C0503", "验车照(前右)"),
+    C0504("C0504", "验车照(前左)"),
+    C0505("C0505", "验车照(人车合影)"),
+    C0506("C0506", "验车照(正前)"),
+    C0507("C0507", "验车照(正后)"),
+    C0508("C0508", "验车照(地标合影)"),
+    C0509("C0509", "验车照(工作台)"),
+    C0510("C0510", "验车照(天窗)"),
+
+    //平安上传旧车登记证书
+    TAR05("TAR05", "机动车辆登记证书"),
+    // 平安上年保单
+    INSURANCE_POLICY("LAST_INSURANCE_POLICY", "上年商业险保单");
+
+
+    private final String code;
+
+    private final String desc;
+
+}

+ 47 - 0
tenant/insurance/quotation-zhongmei/src/main/java/com/jzg/quote/zhongmei/api/entity/po/ZmApiOrder.java

@@ -0,0 +1,47 @@
+package com.jzg.quote.zhongmei.api.entity.po;
+
+import com.jzg.quotation.commons.entity.vo.quote.CustomerInfoVo;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import org.springframework.data.annotation.Id;
+import org.springframework.data.mongodb.core.mapping.Document;
+
+/**
+ * @description: 中煤财险 【API】 报价过程信息存储
+ * @author: shenwd
+ * @date: 2025/2/28 11:28
+ **/
+@AllArgsConstructor
+@NoArgsConstructor
+@Data
+@Document("zhongmei.api.order")
+public class ZmApiOrder {
+
+    @Id
+    private String id;
+    /**
+     * 交互唯一订单 OrderBase类的ordersNo
+     */
+    private String ordersNo;
+
+    /**
+     * 中煤投保单号
+     */
+    private String bussinessNo;
+
+    /**
+     * 车架号
+     */
+    private String vin;
+
+    /**
+     * 投保人信息
+     */
+    private CustomerInfoVo policyHolderInfo;
+
+    /**
+     * 支付链接
+     */
+    private String payUrl;
+}

+ 13 - 0
tenant/insurance/quotation-zhongmei/src/main/java/com/jzg/quote/zhongmei/api/entity/request/SubmitRequest.java

@@ -23,6 +23,9 @@ public class SubmitRequest extends BaseRequest {
     @Serial
     @Serial
     private static final long serialVersionUID = 8581860294000751053L;
     private static final long serialVersionUID = 8581860294000751053L;
 
 
+    /**
+     * 投保单号
+     */
     @JsonProperty("businessNo")
     @JsonProperty("businessNo")
     private String businessNo;
     private String businessNo;
     @JsonProperty("VIN")
     @JsonProperty("VIN")
@@ -33,12 +36,22 @@ public class SubmitRequest extends BaseRequest {
     private DeliveryInfoDTO deliveryInfo;
     private DeliveryInfoDTO deliveryInfo;
     @JsonProperty("pageUrl")
     @JsonProperty("pageUrl")
     private String pageUrl;
     private String pageUrl;
+    /**
+     * 承保回调地址
+     */
     @JsonProperty("callbackUrl")
     @JsonProperty("callbackUrl")
     private String callbackUrl;
     private String callbackUrl;
+    /**
+     * 审核回调地址
+     */
     @JsonProperty("passMsgUrl")
     @JsonProperty("passMsgUrl")
     private String passMsgUrl;
     private String passMsgUrl;
+    //请求终端设备的物理网卡地址
     @JsonProperty
     @JsonProperty
     private String busSrePcMAC = "12-E1-AD-45-A2-65";
     private String busSrePcMAC = "12-E1-AD-45-A2-65";
+    /**
+     * 请求终端设备的ip地址
+     */
     @JsonProperty
     @JsonProperty
     private String busSrePcIP = "47.92.254.66";
     private String busSrePcIP = "47.92.254.66";
 
 

+ 20 - 38
tenant/insurance/quotation-zhongmei/src/main/java/com/jzg/quote/zhongmei/api/entity/request/UploadImageRequest.java

@@ -1,8 +1,9 @@
 package com.jzg.quote.zhongmei.api.entity.request;
 package com.jzg.quote.zhongmei.api.entity.request;
 
 
-import cn.hutool.core.util.ArrayUtil;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import com.fasterxml.jackson.annotation.JsonProperty;
+import com.jzg.quotation.commons.entity.vo.image.InsuranceImageVo;
 import com.jzg.quote.zhongmei.api.constant.TransCode;
 import com.jzg.quote.zhongmei.api.constant.TransCode;
+import com.jzg.quote.zhongmei.api.constant.enums.ImageTypeEnum;
 import com.jzg.quote.zhongmei.api.entity.BaseRequestHead;
 import com.jzg.quote.zhongmei.api.entity.BaseRequestHead;
 import lombok.AllArgsConstructor;
 import lombok.AllArgsConstructor;
 import lombok.Data;
 import lombok.Data;
@@ -11,7 +12,6 @@ import lombok.NoArgsConstructor;
 
 
 import java.util.ArrayList;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.List;
-import java.util.stream.Collectors;
 
 
 /**
 /**
  * @description: todo
  * @description: todo
@@ -38,21 +38,23 @@ public class UploadImageRequest extends BaseRequest {
         super.getHead().setTransCode(TransCode.UPLOAD_IMAGE);
         super.getHead().setTransCode(TransCode.UPLOAD_IMAGE);
     }
     }
 
 
-    /*public UploadImageRequest(List<InsTaskImagesBase64> insTaskImages, String contractNo) {
+    public UploadImageRequest(List<InsuranceImageVo> insuranceImageVos, String contractNo) {
         this.contractNo = contractNo;
         this.contractNo = contractNo;
         List<NodeBeanlistDTO> nodeBeanlist = new ArrayList<>();
         List<NodeBeanlistDTO> nodeBeanlist = new ArrayList<>();
-        String[] strings = {"UW_0301", "UW_0302", "UW_0305"};
-        for (String string : strings) {
-            ImageTypeEnum imageTypeEnum = Enum.valueOf(ImageTypeEnum.class, string);
-            List<InsTaskImagesBase64> collect = insTaskImages.stream().filter(insTaskImage -> ArrayUtil.indexOf(imageTypeEnum.getImagesType(), insTaskImage.getImageType()) >= 0).collect(Collectors.toList());
-            if (!collect.isEmpty()) {
-                NodeBeanlistDTO nodeBeanlistDTO = new NodeBeanlistDTO(collect, string);
-                nodeBeanlist.add(nodeBeanlistDTO);
+        String[] zmImageTypes = {"UW_0301", "UW_0302", "UW_0305"};
+        for (String zmImageType : zmImageTypes) {
+            if (insuranceImageVos != null && !insuranceImageVos.isEmpty()) {
+                insuranceImageVos.forEach(insuranceImageVo -> {
+                    if (zmImageType.equals(insuranceImageVo.getImageCode())) {
+                        NodeBeanlistDTO nodeBeanlistDTO = new NodeBeanlistDTO(insuranceImageVo.getImageBase64List(), zmImageType);
+                        nodeBeanlist.add(nodeBeanlistDTO);
+                    }
+                });
             }
             }
         }
         }
         this.nodeBeanlist = nodeBeanlist;
         this.nodeBeanlist = nodeBeanlist;
 
 
-    }*/
+    }
 
 
     @AllArgsConstructor
     @AllArgsConstructor
     @NoArgsConstructor
     @NoArgsConstructor
@@ -65,40 +67,20 @@ public class UploadImageRequest extends BaseRequest {
         @JsonProperty("imageBeanList")
         @JsonProperty("imageBeanList")
         private List<ImageBeanListDTO> imageBeanList;
         private List<ImageBeanListDTO> imageBeanList;
 
 
-        /*public NodeBeanlistDTO(List<InsTaskImagesBase64> insTaskImages, String id) {
+        public NodeBeanlistDTO(List<InsuranceImageVo.ImageDTO> imageDTOS, String id) {
             this.id = id;
             this.id = id;
             List<ImageBeanListDTO> imageBeanListDTOS = new ArrayList<>();
             List<ImageBeanListDTO> imageBeanListDTOS = new ArrayList<>();
-            for (int i = 0; i < insTaskImages.size(); i++) {
+            for (int i = 0; i < imageDTOS.size(); i++) {
                 ImageBeanListDTO imageBeanListDTO = new ImageBeanListDTO();
                 ImageBeanListDTO imageBeanListDTO = new ImageBeanListDTO();
-                InsTaskImagesBase64 insTaskImagesBase64 = insTaskImages.get(i);
-
-                String fileName = insTaskImagesBase64.getFileName();
-                String suffix = fileName.substring(fileName.lastIndexOf("."));
-                switch (insTaskImagesBase64.getImageType()) {
-                    case "C01":
-                        fileName = "车辆影像" + i + suffix;
-                        break;
-                    case "C02":
-                        fileName = "车主身份证" + i + suffix;
-                        break;
-                    case "C03":
-                        fileName = "投保人身份证" + i + suffix;
-                        break;
-                    case "C04":
-                        fileName = "被保人身份证" + i + suffix;
-                        break;
-                    case "C05":
-                        fileName = "验车照" + i + suffix;
-                        break;
-                }
-
-                imageBeanListDTO.setFileName(fileName);
-                imageBeanListDTO.setImage(insTaskImagesBase64.getBase64String());
+                InsuranceImageVo.ImageDTO imageDTO = imageDTOS.get(i);
+
+                imageBeanListDTO.setFileName(imageDTO.getImageName());
+                imageBeanListDTO.setImage(imageDTO.getImageBase64Str());
                 imageBeanListDTOS.add(imageBeanListDTO);
                 imageBeanListDTOS.add(imageBeanListDTO);
             }
             }
 
 
             this.imageBeanList = imageBeanListDTOS;
             this.imageBeanList = imageBeanListDTOS;
-        }*/
+        }
 
 
         @NoArgsConstructor
         @NoArgsConstructor
         @Data
         @Data

+ 18 - 0
tenant/insurance/quotation-zhongmei/src/main/java/com/jzg/quote/zhongmei/api/repository/ZmApiOrderRepository.java

@@ -0,0 +1,18 @@
+package com.jzg.quote.zhongmei.api.repository;
+
+import com.jzg.quote.zhongmei.api.entity.po.ZmApiOrder;
+import org.springframework.data.mongodb.repository.MongoRepository;
+import org.springframework.data.mongodb.repository.Query;
+
+/**
+ * @description: 中煤财险映射类
+ * @author: shenwd
+ * @date: 2025/2/28 11:33
+ **/
+public interface ZmApiOrderRepository extends MongoRepository<ZmApiOrder, String> {
+
+    ZmApiOrder getByOrdersNo(String ordersNo);
+
+    @Query(value = "{'fieldname': ?0 }", delete = true)
+    void deleteByOrdersNo(String ordersNo);
+}

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

@@ -1,6 +1,7 @@
 package com.jzg.quote.zhongmei.api.service.impl;
 package com.jzg.quote.zhongmei.api.service.impl;
 
 
 
 
+import com.jzg.commons.util.StringUtils;
 import com.jzg.quotation.commons.constant.InsuranceCode;
 import com.jzg.quotation.commons.constant.InsuranceCode;
 import com.jzg.quotation.commons.entity.vo.aggregated.InsuranceUploadImageVo;
 import com.jzg.quotation.commons.entity.vo.aggregated.InsuranceUploadImageVo;
 import com.jzg.quotation.commons.entity.vo.aggregated.QuoteResultsVo;
 import com.jzg.quotation.commons.entity.vo.aggregated.QuoteResultsVo;
@@ -11,22 +12,25 @@ import com.jzg.quotation.commons.entity.vo.base.OrderBase;
 import com.jzg.quotation.commons.entity.vo.quote.AccidentalDrivingVo;
 import com.jzg.quotation.commons.entity.vo.quote.AccidentalDrivingVo;
 import com.jzg.quotation.commons.entity.vo.quote.AttributionInformationVo;
 import com.jzg.quotation.commons.entity.vo.quote.AttributionInformationVo;
 import com.jzg.quotation.commons.entity.vo.quote.CarInfoVo;
 import com.jzg.quotation.commons.entity.vo.quote.CarInfoVo;
+import com.jzg.quotation.commons.entity.vo.quote.CustomerInfoVo;
 import com.jzg.quotation.commons.filter.CarModelsFilterUtils;
 import com.jzg.quotation.commons.filter.CarModelsFilterUtils;
 import com.jzg.quotation.commons.standard.conversion.ConfigureParametersConversion;
 import com.jzg.quotation.commons.standard.conversion.ConfigureParametersConversion;
 import com.jzg.quote.zhongmei.api.build.ZmApiQuoteResultsVoBuild;
 import com.jzg.quote.zhongmei.api.build.ZmApiQuoteResultsVoBuild;
 import com.jzg.quote.zhongmei.api.componet.ZmApiRequestComponent;
 import com.jzg.quote.zhongmei.api.componet.ZmApiRequestComponent;
 import com.jzg.quote.zhongmei.api.entity.BaseRequestHead;
 import com.jzg.quote.zhongmei.api.entity.BaseRequestHead;
 import com.jzg.quote.zhongmei.api.entity.ZmApiConfigureParameters;
 import com.jzg.quote.zhongmei.api.entity.ZmApiConfigureParameters;
-import com.jzg.quote.zhongmei.api.entity.request.ModelsQueryRequest;
-import com.jzg.quote.zhongmei.api.entity.request.QuotedPriceRequest;
-import com.jzg.quote.zhongmei.api.entity.response.ModelsQueryResponse;
-import com.jzg.quote.zhongmei.api.entity.response.QuotedPriceResponse;
+import com.jzg.quote.zhongmei.api.entity.po.ZmApiOrder;
+import com.jzg.quote.zhongmei.api.entity.request.*;
+import com.jzg.quote.zhongmei.api.entity.response.*;
+import com.jzg.quote.zhongmei.api.repository.ZmApiOrderRepository;
 import com.jzg.quote.zhongmei.api.service.ZhongMeiApiRequest;
 import com.jzg.quote.zhongmei.api.service.ZhongMeiApiRequest;
 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.MediaType;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 
+import java.util.ArrayList;
 import java.util.List;
 import java.util.List;
 
 
 @Service(value = InsuranceCode.INSURANCE_ZMBX)
 @Service(value = InsuranceCode.INSURANCE_ZMBX)
@@ -34,6 +38,8 @@ import java.util.List;
 public class ZhongMeiApiRequestImpl implements ZhongMeiApiRequest {
 public class ZhongMeiApiRequestImpl implements ZhongMeiApiRequest {
 
 
     private final ZmApiRequestComponent zmApiRequestComponent;
     private final ZmApiRequestComponent zmApiRequestComponent;
+
+    private final ZmApiOrderRepository zmApiOrderRepository;
     @Override
     @Override
     public QuoteResultsVo quote(QuoteVo quoteVo) {
     public QuoteResultsVo quote(QuoteVo quoteVo) {
         OrderBase order = quoteVo.getOrder();
         OrderBase order = quoteVo.getOrder();
@@ -56,26 +62,98 @@ public class ZhongMeiApiRequestImpl implements ZhongMeiApiRequest {
         QuotedPriceRequest quotedPriceRequest = new QuotedPriceRequest(quoteVo, simpleStadarCarDTO, accidentalDrivingVo, parameters);
         QuotedPriceRequest quotedPriceRequest = new QuotedPriceRequest(quoteVo, simpleStadarCarDTO, accidentalDrivingVo, parameters);
         quotedPriceRequest.setHead(baseRequestHead);
         quotedPriceRequest.setHead(baseRequestHead);
         QuotedPriceResponse quotedPriceResponse = zmApiRequestComponent.quotedPrice(quotedPriceRequest, QuotedPriceResponse.class);
         QuotedPriceResponse quotedPriceResponse = zmApiRequestComponent.quotedPrice(quotedPriceRequest, QuotedPriceResponse.class);
+        // 存储信息
+        ZmApiOrder zmApiOrder = new ZmApiOrder();
+        zmApiOrder.setOrdersNo(order.getOrdersNo());
+        zmApiOrder.setBussinessNo(quotedPriceResponse.getBusinessNo());
+        zmApiOrder.setPolicyHolderInfo(quoteVo.getPolicyHolderInfo());
+        zmApiOrderRepository.save(zmApiOrder);
         return ZmApiQuoteResultsVoBuild.buildQuoteResultsVo(order.getOrdersNo(), quoteVo, quotedPriceResponse);
         return ZmApiQuoteResultsVoBuild.buildQuoteResultsVo(order.getOrdersNo(), quoteVo, quotedPriceResponse);
     }
     }
 
 
     @Override
     @Override
+    @Transactional
     public void underwriting(UnderwritingVo underwritingVo) {
     public void underwriting(UnderwritingVo underwritingVo) {
+        OrderBase orderBase = underwritingVo.getOrder();
+        //获取配置信息
+        ZmApiConfigureParameters parameters = ConfigureParametersConversion.conversionEntity(ZmApiConfigureParameters.class, orderBase.getAttributionInformationVo().getConfigInfo());
 
 
+        ZmApiOrder zmApiOrder = zmApiOrderRepository.getByOrdersNo(orderBase.getOrdersNo());
+        BaseRequestHead baseRequestHead = new BaseRequestHead(parameters);
+        SubmitRequest submitRequest = new SubmitRequest();
+        submitRequest.setHead(baseRequestHead);
+        submitRequest.setBusinessNo(zmApiOrder.getBussinessNo());
+        submitRequest.setVin(zmApiOrder.getVin());
+        CustomerInfoVo policyHolderInfo = zmApiOrder.getPolicyHolderInfo();
+        SubmitRequest.DeliveryInfoDTO deliveryInfoDTO = new SubmitRequest.DeliveryInfoDTO(policyHolderInfo.getName(),
+                policyHolderInfo.getMobile(),
+                // 省
+                parameters.getProvince(),
+                // 市
+                parameters.getCity(),
+                // 县
+                parameters.getDistrict(), policyHolderInfo.getAddr());
+        SubmitResponse submitResponse = zmApiRequestComponent.submit(submitRequest, SubmitResponse.class);
+        if (submitResponse != null && !StringUtils.isEmpty(submitResponse.getPayUrl())) {
+            zmApiOrderRepository.deleteByOrdersNo(zmApiOrder.getOrdersNo());
+            zmApiOrder.setPayUrl(submitResponse.getPayUrl());
+            zmApiOrderRepository.save(zmApiOrder);
+        }
     }
     }
 
 
     @Override
     @Override
     public String getPaymentLink(OrderBase orderBase) {
     public String getPaymentLink(OrderBase orderBase) {
-        return "";
+        ZmApiOrder zmApiOrder = zmApiOrderRepository.getByOrdersNo(orderBase.getOrdersNo());
+        String payUrl = zmApiOrder.getPayUrl();
+        //如果mongodb中没有支付链接,说明是人工审核,需要调用核保状态查询接口
+        if (StringUtils.isEmpty(payUrl)) {
+            //获取配置信息
+            ZmApiConfigureParameters parameters = ConfigureParametersConversion.conversionEntity(ZmApiConfigureParameters.class, orderBase.getAttributionInformationVo().getConfigInfo());
+            //设置请求参数
+            SubmitStatusQueryRequest submitStatusQueryRequest = new SubmitStatusQueryRequest();
+            submitStatusQueryRequest.setProposalNo(zmApiOrder.getBussinessNo());
+            submitStatusQueryRequest.setHead(new BaseRequestHead(parameters));
+
+            SubmitStatusQueryResponse submitStatusQueryResponse = zmApiRequestComponent.submitStatus(submitStatusQueryRequest, SubmitStatusQueryResponse.class);
+            payUrl = StringUtils.isEmpty(submitStatusQueryResponse.getPayUrl()) ? submitStatusQueryResponse.getUnderWriteInd() : submitStatusQueryResponse.getPayUrl();
+        }
+        return payUrl;
     }
     }
 
 
     @Override
     @Override
     public void uploadImage(InsuranceUploadImageVo insuranceUploadImageVo) {
     public void uploadImage(InsuranceUploadImageVo insuranceUploadImageVo) {
+        OrderBase orderBase = insuranceUploadImageVo.getOrder();
+        //获取配置信息
+        AttributionInformationVo attributionInformationVo = orderBase.getAttributionInformationVo();
+        ZmApiConfigureParameters parameters = ConfigureParametersConversion.conversionEntity(ZmApiConfigureParameters.class, attributionInformationVo.getConfigInfo());
+
+        // 获取主投保单号
+        ZmApiOrder zmApiOrder = zmApiOrderRepository.getByOrdersNo(orderBase.getOrdersNo());
+        String bussinessNo = zmApiOrder.getBussinessNo();
 
 
+        // 上传影像
+        UploadImageRequest uploadImageRequest = new UploadImageRequest(insuranceUploadImageVo.getImageVoList(), bussinessNo);
+        BaseRequestHead baseRequestHead = new BaseRequestHead(parameters);
+        uploadImageRequest.setHead(baseRequestHead);
+        UploadImageResponse uploadImageResponse = zmApiRequestComponent.uploadImage(uploadImageRequest, UploadImageResponse.class);
+        //获取返回数据
+        BaseResponseHead head = uploadImageResponse.getHead();
     }
     }
 
 
     @Override
     @Override
     public void downloadPolicy(OrderBase orderBase) {
     public void downloadPolicy(OrderBase orderBase) {
+        //获取配置信息
+        AttributionInformationVo attributionInformationVo = orderBase.getAttributionInformationVo();
+        ZmApiConfigureParameters parameters = ConfigureParametersConversion.conversionEntity(ZmApiConfigureParameters.class, attributionInformationVo.getConfigInfo());
+
+        //先调用缴费查询接口获取保单号
+        OrderStatusRequest orderStatusRequest = new OrderStatusRequest();
+        orderStatusRequest.setHead(new BaseRequestHead(parameters));
+        ZmApiOrder zmApiOrder = zmApiOrderRepository.getByOrdersNo(orderBase.getOrdersNo());
+        orderStatusRequest.setBusinessNo(zmApiOrder.getBussinessNo());
+        OrderStatusResponse orderStatusResponse = zmApiRequestComponent.orderStatus(orderStatusRequest, OrderStatusResponse.class);
+
+        //调用下载保单接口
 
 
     }
     }
 }
 }