Просмотр исходного кода

中煤状态更新 下载电子保单 获取支付链接

Qchen 5 месяцев назад
Родитель
Сommit
b85af21cbd
16 измененных файлов с 255 добавлено и 30 удалено
  1. 4 1
      tenant/insurance/quotation-zhongmei/src/main/java/com/jzg/quotation/zhongmei/api/constant/TransCode.java
  2. 3 0
      tenant/insurance/quotation-zhongmei/src/main/java/com/jzg/quotation/zhongmei/crawler/build/ZmCrawlerQuoteResultVoBuild.java
  3. 14 0
      tenant/insurance/quotation-zhongmei/src/main/java/com/jzg/quotation/zhongmei/crawler/component/ZmCrawlerRequestComponent.java
  4. 1 1
      tenant/insurance/quotation-zhongmei/src/main/java/com/jzg/quotation/zhongmei/crawler/constant/ZmCrawlerImageConstant.java
  5. 3 1
      tenant/insurance/quotation-zhongmei/src/main/java/com/jzg/quotation/zhongmei/crawler/constant/enums/RequestUrl.java
  6. 50 0
      tenant/insurance/quotation-zhongmei/src/main/java/com/jzg/quotation/zhongmei/crawler/entity/Request/ZmCrawlerAccidentPrintRequest.java
  7. 18 2
      tenant/insurance/quotation-zhongmei/src/main/java/com/jzg/quotation/zhongmei/crawler/entity/Request/ZmCrawlerOrderApplyRequest.java
  8. 30 4
      tenant/insurance/quotation-zhongmei/src/main/java/com/jzg/quotation/zhongmei/crawler/entity/Request/ZmCrawlerOrderStatusRequest.java
  9. 4 3
      tenant/insurance/quotation-zhongmei/src/main/java/com/jzg/quotation/zhongmei/crawler/entity/Request/ZmCrawlerPolicyPrintRequest.java
  10. 18 0
      tenant/insurance/quotation-zhongmei/src/main/java/com/jzg/quotation/zhongmei/crawler/entity/Response/ZmCrawlerAccidentPrintResponse.java
  11. 5 1
      tenant/insurance/quotation-zhongmei/src/main/java/com/jzg/quotation/zhongmei/crawler/entity/Response/ZmCrawlerOrderStatusResponse.java
  12. 6 0
      tenant/insurance/quotation-zhongmei/src/main/java/com/jzg/quotation/zhongmei/crawler/entity/Response/ZmCrawlerQuotedPriceResponse.java
  13. 4 0
      tenant/insurance/quotation-zhongmei/src/main/java/com/jzg/quotation/zhongmei/crawler/entity/po/ZmCrawlerOrder.java
  14. 82 16
      tenant/insurance/quotation-zhongmei/src/main/java/com/jzg/quotation/zhongmei/crawler/service/Impl/ZhongMeiCrawlerRequestImpl.java
  15. 12 0
      tenant/insurance/quotation-zhongmei/src/main/java/com/jzg/quotation/zhongmei/crawler/service/Impl/ZmCrawlerOrderServiceImpl.java
  16. 1 1
      tenant/insurance/quotation-zhongmei/src/main/java/com/jzg/quotation/zhongmei/crawler/util/Base64Tool.java

+ 4 - 1
tenant/insurance/quotation-zhongmei/src/main/java/com/jzg/quotation/zhongmei/api/constant/TransCode.java

@@ -17,7 +17,7 @@ public class TransCode {
     public static final String SUBMIT = "Submit";
 
     //缴费查询
-    public static final String ORDER_STATUS = "OrderStatus";
+    public static final String ORDER_STATUS = "FindBusinesses";
 
     //投保单核保状态查询
     public static final String SUBMIT_STATUS_QUERY = "SubmitStatusQuery";
@@ -28,6 +28,9 @@ public class TransCode {
     //电子保单下载
     public static final String INSURANCE_POLICY_PRINT = "InsurancePolicyPrint";
 
+    // 驾意险保单下载
+    public static final String ACCIDENT_PRINT = "AccidentPrint";
+
     //影像上传
     public static final String UPLOAD_IMAGE = "UploadImage";
 

+ 3 - 0
tenant/insurance/quotation-zhongmei/src/main/java/com/jzg/quotation/zhongmei/crawler/build/ZmCrawlerQuoteResultVoBuild.java

@@ -24,6 +24,7 @@ public final class ZmCrawlerQuoteResultVoBuild {
         QuoteResultsVo quoteResultsVo = new QuoteResultsVo();
         quoteResultsVo.setOrdersNo(quoteVo.getOrder().getOrdersNo());
         quoteResultsVo.setQuoteStatusEnum(InsOrderStatusEnum.WAIT_AUDIT);
+        quoteResultsVo.setCompanyOrderNo(quotedPriceResponse.getBussinessMain().getContractMainNo());
         if(!"0".equals(quotedPriceResponse.getHead().getReturnCode())){
             quoteResultsVo.setQuoteStatusEnum(InsOrderStatusEnum.QUOTE_FAIL);
             quoteResultsVo.setErrorMessage(quotedPriceResponse.getHead().getReturnMessage());
@@ -112,6 +113,8 @@ public final class ZmCrawlerQuoteResultVoBuild {
             AtomicReference<Double> niPremium = new AtomicReference<>(0d);
             accidentDTOList.forEach(accident -> {
                 niPremium.updateAndGet(v -> v + accident.getSumPremium());
+                // 驾意险投保单号
+                quoteResultsVo.setJyPolicyNumber(accident.getRideProposalNo());
             });
             quoteResultsVo.getCosts().setNiPremium(String.valueOf(niPremium));
         }

+ 14 - 0
tenant/insurance/quotation-zhongmei/src/main/java/com/jzg/quotation/zhongmei/crawler/component/ZmCrawlerRequestComponent.java

@@ -961,6 +961,20 @@ public class ZmCrawlerRequestComponent {
         return response;
     }
 
+    /**
+     * 驾意险保单下载
+     * @param accidentPrintRequest
+     * @return
+     */
+    public ZmCrawlerAccidentPrintResponse accidentPrint(ZmCrawlerAccidentPrintRequest accidentPrintRequest) {
+        InsuranceLog.infoLog(InsuranceEnum.ZMBX.getPinyin(), "\n\t---------> {} \n\t---------> URl: {} \n\t---------> 请求参数:{}",
+                "爬虫驾意险保单下载",RequestUrl.ACCIDNET_PRINT.getRequestUrl(zmCrawlerProperties.getBaseUrl()),JSON.toJSONString(accidentPrintRequest));
+        Mono<ZmCrawlerAccidentPrintResponse> responseMono = requestComponent.postGbk(RequestUrl.ACCIDNET_PRINT.getRequestUrl(zmCrawlerProperties.getBaseUrl()),
+                Base64Tool.encode(JSONObject.toJSONString(accidentPrintRequest)), ZmCrawlerAccidentPrintResponse.class,new HttpHeaders(),"驾意险保单下载");
+        ZmCrawlerAccidentPrintResponse response = responseMono.block();
+        return response;
+    }
+
     /**
      * 保存订单财险
      * @param quotedPriceResponse

+ 1 - 1
tenant/insurance/quotation-zhongmei/src/main/java/com/jzg/quotation/zhongmei/crawler/constant/ZmCrawlerImageConstant.java

@@ -41,7 +41,7 @@ public class ZmCrawlerImageConstant {
      */
     public static final String [] ZM_IMAGE_TYPE = {"01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11"};
 
-    public static final String ENDOR_SEQ_NO = "000";
+    public static final String ENDOR_SEQ_NO = "001";
 
     public static final String BUSINESS_TYPE_P = "P";
 }

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

@@ -37,7 +37,9 @@ public enum RequestUrl implements CrawlerRequestUrlStandard {
     ORDER_UPDATE("/prpall/OrderUpdate.do", "获取支付参数,更新相关数据"),
     ACHIEVE_QR_CODE("/prpall/AchieveQrCode.do", "获取支付二维码"),
 
-    POLICY_PRINT("/prpall/InsurancePolicyPrint.do", "保单下载")
+    POLICY_PRINT("/prpall/InsurancePolicyPrint.do", "保单下载"),
+
+    ACCIDNET_PRINT("/prpall/AccidentPrint.do","驾意险保单下载")
     ;
 
     private final String url;

+ 50 - 0
tenant/insurance/quotation-zhongmei/src/main/java/com/jzg/quotation/zhongmei/crawler/entity/Request/ZmCrawlerAccidentPrintRequest.java

@@ -0,0 +1,50 @@
+package com.jzg.quotation.zhongmei.crawler.entity.Request;
+
+import com.jzg.quotation.zhongmei.api.constant.TransCode;
+import com.jzg.quotation.zhongmei.api.entity.BaseRequestHead;
+import com.jzg.quotation.zhongmei.api.entity.request.BaseRequest;
+import com.jzg.quotation.zhongmei.crawler.entity.ZmCrawlerConfigureParameters;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serial;
+
+/**
+ * @description: 中煤财险 驾意险保单下载链接 入参
+ * @author quchen
+ * @date 2026/4/30 16:34
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class ZmCrawlerAccidentPrintRequest extends BaseRequest {
+    @Override
+    public void setHead(BaseRequestHead head) {
+        super.setHead(head);
+        super.getHead().setTransCode(TransCode.INSURANCE_POLICY_PRINT);
+    }
+
+    private String loginCom;
+
+    private String comCode;
+
+    private String userCode;
+
+    private String contractNo;
+
+    private String printNo;
+
+    private String riskCodeAI;
+
+    private String printType;
+
+    public ZmCrawlerAccidentPrintRequest(ZmCrawlerConfigureParameters parameters,String userCode,String contractNo) {
+        this.loginCom = parameters.getComCode();
+        this.comCode = parameters.getComCode();
+        this.userCode = userCode;
+        this.contractNo = contractNo;
+        this.printNo = "";
+        this.riskCodeAI = "0670";
+        this.printType = "EP";
+    }
+
+}

+ 18 - 2
tenant/insurance/quotation-zhongmei/src/main/java/com/jzg/quotation/zhongmei/crawler/entity/Request/ZmCrawlerOrderApplyRequest.java

@@ -3,10 +3,12 @@ package com.jzg.quotation.zhongmei.crawler.entity.Request;
 import com.jzg.quotation.zhongmei.api.entity.BaseRequestHead;
 import com.jzg.quotation.zhongmei.api.entity.request.BaseRequest;
 import com.jzg.quotation.zhongmei.crawler.constant.enums.ZmCrawlerTransCode;
+import com.jzg.quotation.zhongmei.crawler.entity.po.ZmCrawlerOrder;
 import lombok.Data;
 
 import java.io.Serial;
 import java.io.Serializable;
+import java.util.ArrayList;
 import java.util.List;
 
 /**
@@ -49,10 +51,24 @@ public class ZmCrawlerOrderApplyRequest extends BaseRequest {
         super.getHead().setTransCode(ZmCrawlerTransCode.ORDER_APPLY);
     }
 
-    public ZmCrawlerOrderApplyRequest(String loginCom, String userCode, String paymentMethod, List<ItemDTO> itemsList) {
+    public ZmCrawlerOrderApplyRequest(String loginCom, String userCode, ZmCrawlerOrder zmCrawlerOrder) {
+        List<ZmCrawlerOrderApplyRequest.ItemDTO> itemsList = new ArrayList<>();
+        ItemDTO itemDTO = new ItemDTO();
+        itemDTO.setBusinessType("T");
+        itemDTO.setContractNo(zmCrawlerOrder.getBussinessNo());
+        itemDTO.setJContractNo(zmCrawlerOrder.getJyContractNo());
+        itemDTO.setSContractNo(zmCrawlerOrder.getSyContractNo());
+        itemsList.add(itemDTO);
+        if (zmCrawlerOrder.getJyContractNo() != null) {
+            ItemDTO itemDTO1 = new ItemDTO();
+            itemDTO1.setBusinessType("T");
+            itemDTO1.setContractNo(zmCrawlerOrder.getJyContractNo());
+            itemsList.add(itemDTO1);
+        }
         this.loginCom = loginCom;
         this.operatorCode = userCode;
-        this.paymentMethod = paymentMethod;
+        // 支付方式 微信/支付宝
+        this.paymentMethod = "216";
         this.itemsList = itemsList;
         this.comCode = loginCom;
     }

+ 30 - 4
tenant/insurance/quotation-zhongmei/src/main/java/com/jzg/quotation/zhongmei/crawler/entity/Request/ZmCrawlerOrderStatusRequest.java

@@ -1,13 +1,17 @@
 package com.jzg.quotation.zhongmei.crawler.entity.Request;
 
+import com.jzg.quotation.commons.utils.DateTimeUtil;
+import com.jzg.quotation.commons.utils.DateUtil;
 import com.jzg.quotation.zhongmei.api.constant.TransCode;
 import com.jzg.quotation.zhongmei.api.entity.BaseRequestHead;
 import com.jzg.quotation.zhongmei.api.entity.request.BaseRequest;
 import com.jzg.quotation.zhongmei.crawler.entity.ZmCrawlerConfigureParameters;
+import com.jzg.quotation.zhongmei.crawler.entity.po.ZmCrawlerOrder;
 import lombok.Data;
 import lombok.NoArgsConstructor;
 
 import java.io.Serial;
+import java.time.LocalDateTime;
 import java.util.List;
 
 /**
@@ -126,11 +130,33 @@ public class ZmCrawlerOrderStatusRequest extends BaseRequest {
      */
     private String subMenu;
 
-    public ZmCrawlerOrderStatusRequest(ZmCrawlerConfigureParameters parameters, String proposalNo) {
-        this.proposalNo = proposalNo;
-        this.loginCom = parameters.getComCode();
+    public ZmCrawlerOrderStatusRequest(ZmCrawlerConfigureParameters parameters, ZmCrawlerOrder zmCrawlerOrder) {
+        if (zmCrawlerOrder.getSyContractNo() != null) {
+            this.proposalNo = zmCrawlerOrder.getSyContractNo();
+        } else {
+            this.proposalNo = zmCrawlerOrder.getJqContractNo();
+        }
+        this.subMenu = "MENU_TBXG";
+        this.VIN = "";
+        this.adjustPermitDate = "";
+        this.applicantIdentifyNumber = "";
         this.businessType = "T";
+        this.coinsType = "";
         this.companyCode = parameters.getComCode();
-        this.subMenu = "MENU_TBXG";
+        this.dealerCode = "";
+        this.effectiveDateBegin = "";
+        this.effectiveDateEnd = "";
+        this.endorseNo = "";
+        this.engine = "";
+        this.expireDateBegin = "";
+        this.expireDateEnd = "";
+        this.insuredIdentifyNumber = "";
+        this.insuredName = zmCrawlerOrder.getInsuredName();
+        this.isInterimStorage = "";
+        this.isNewPolicy = "";
+        this.loginCom = parameters.getComCode();
+        this.operateDateTimeBegin = DateTimeUtil.getEndTimeOfDayStr();
+        this.operateDateTimeEnd = DateTimeUtil.getStartTimeOfDayStr(LocalDateTime.now().minusDays(7));
+        this.pageNo = 1;
     }
 }

+ 4 - 3
tenant/insurance/quotation-zhongmei/src/main/java/com/jzg/quotation/zhongmei/crawler/entity/Request/ZmCrawlerPolicyPrintRequest.java

@@ -7,6 +7,7 @@ import com.jzg.quotation.zhongmei.api.entity.BaseRequestHead;
 import com.jzg.quotation.zhongmei.api.entity.request.BaseRequest;
 import com.jzg.quotation.zhongmei.crawler.constant.ZmCrawlerImageConstant;
 import com.jzg.quotation.zhongmei.crawler.constant.enums.PrintTypeEnum;
+import com.jzg.quotation.zhongmei.crawler.entity.po.ZmCrawlerOrder;
 import lombok.Data;
 
 import java.io.Serial;
@@ -30,15 +31,15 @@ public class ZmCrawlerPolicyPrintRequest extends BaseRequest {
         super.getHead().setTransCode(TransCode.INSURANCE_POLICY_PRINT);
     }
 
-    public ZmCrawlerPolicyPrintRequest(String policyNo, String riskCode, String plateNo, String printType) {
-        this.policyNo = policyNo;
+    public ZmCrawlerPolicyPrintRequest(ZmCrawlerOrder zmCrawlerOrder, String documentType, String plateNo) {
+        this.policyNo = zmCrawlerOrder.getBussinessNo();
         this.riskCode = riskCode;
         this.businessType = ZmCrawlerImageConstant.BUSINESS_TYPE_P;
         this.endorSeqNo = ZmCrawlerImageConstant.ENDOR_SEQ_NO;
         this.plateNo = plateNo;
         if (ProductsType.PT_0330.getCode().equals(riskCode)) {
             //根据传入的printType来区别电子保单和交强电子标志,暂时默认保单
-            if (StringUtils.isEmpty(printType)) {
+            if (StringUtils.isEmpty(documentType)) {
                 this.documentType = PrintTypeEnum.JQ_BD.getDocumentType();
                 this.printTypeName = PrintTypeEnum.JQ_BD.getPrintTypeName();
             } else {

+ 18 - 0
tenant/insurance/quotation-zhongmei/src/main/java/com/jzg/quotation/zhongmei/crawler/entity/Response/ZmCrawlerAccidentPrintResponse.java

@@ -0,0 +1,18 @@
+package com.jzg.quotation.zhongmei.crawler.entity.Response;
+
+import com.jzg.quotation.zhongmei.api.entity.response.BaseResponse;
+import lombok.Data;
+
+/**
+ * @author quchen
+ * @date 2026/4/30 16:54
+ */
+
+@Data
+public class ZmCrawlerAccidentPrintResponse extends BaseResponse {
+
+    private String accidentPrintUrl;
+
+    private String validCode;
+
+}

+ 5 - 1
tenant/insurance/quotation-zhongmei/src/main/java/com/jzg/quotation/zhongmei/crawler/entity/Response/ZmCrawlerOrderStatusResponse.java

@@ -6,6 +6,7 @@ import lombok.Data;
 
 import java.io.Serial;
 import java.io.Serializable;
+import java.util.List;
 
 /**
  * @description: 中煤财险 爬虫查询投保单状态 返回参数
@@ -33,7 +34,7 @@ public class ZmCrawlerOrderStatusResponse extends BaseResponse {
      * 页码
      */
     @JsonProperty("business")
-    private BusinessDTO business;
+    private List<BusinessDTO> business;
 
     @Data
     public static class BusinessDTO implements Serializable {
@@ -67,6 +68,9 @@ public class ZmCrawlerOrderStatusResponse extends BaseResponse {
         @JsonProperty("contractNo2")
         private String contractNo2;
 
+        @JsonProperty("contractNo_CP")
+        private String contractNoCP;
+
         @JsonProperty("dealerCode")
         private String dealerCode;
 

+ 6 - 0
tenant/insurance/quotation-zhongmei/src/main/java/com/jzg/quotation/zhongmei/crawler/entity/Response/ZmCrawlerQuotedPriceResponse.java

@@ -138,6 +138,12 @@ public class ZmCrawlerQuotedPriceResponse extends BaseResponse {
             @JsonProperty("attribute4")
             private String attribute4;
 
+            /**
+             * 驾意险投保单号
+             */
+            @JsonProperty("rideProposalNo")
+            private String rideProposalNo;
+
         }
 
         @Data

+ 4 - 0
tenant/insurance/quotation-zhongmei/src/main/java/com/jzg/quotation/zhongmei/crawler/entity/po/ZmCrawlerOrder.java

@@ -53,6 +53,10 @@ public class ZmCrawlerOrder {
      * 投保人姓名
      */
     private String proposalName;
+    /**
+     * 被保人姓名
+     */
+    private String insuredName;
 
     /**
      * 险种

+ 82 - 16
tenant/insurance/quotation-zhongmei/src/main/java/com/jzg/quotation/zhongmei/crawler/service/Impl/ZhongMeiCrawlerRequestImpl.java

@@ -273,23 +273,21 @@ public class ZhongMeiCrawlerRequestImpl implements ZhongMeiCrawlerRequest {
         //获取配置信息
         ZmCrawlerConfigureParameters zmCrawlerConfigureParameters = ConfigureParametersConversion.conversionEntity(ZmCrawlerConfigureParameters.class, attributionInformationVo.getConfigInfo());
         BaseRequestHead head = new BaseRequestHead(authorization, "2");
-
         //调用检查支付状态接口
-        ZmCrawlerCheckPaymentRequest checkPaymentRequest = new ZmCrawlerCheckPaymentRequest(crawlerOrder.getBussinessNo());
-        checkPaymentRequest.setHead(head);
-        ZmCrawlerCheckPaymentResponse checkPaymentResponse = zmCrawlerRequestComponent.checkPayment(checkPaymentRequest);
+//        ZmCrawlerCheckPaymentRequest checkPaymentRequest = new ZmCrawlerCheckPaymentRequest(crawlerOrder.getBussinessNo());
+//        checkPaymentRequest.setHead(head);
+//        ZmCrawlerCheckPaymentResponse checkPaymentResponse = zmCrawlerRequestComponent.checkPayment(checkPaymentRequest);
         //调用是否存在支付订单接口
         ZmCrawlerFindZfTaskRequest findZfTaskRequest = new ZmCrawlerFindZfTaskRequest(crawlerOrder.getProposalName(), zmCrawlerConfigureParameters.getComCode(), userCode);
         findZfTaskRequest.setHead(head);
         ZmCrawlerFindZfTaskResponse zfTaskResponse = zmCrawlerRequestComponent.findZfTask(findZfTaskRequest);
         PaymentLinkResultsVo paymentLinkResultsVo = new PaymentLinkResultsVo();
         //检查是否可以获取支付二维码
-        if ("1".equals(checkPaymentResponse.getCheckStatus()) && zfTaskResponse.getBizTask() != null && !zfTaskResponse.getBizTask().isEmpty()) {
+        if (zfTaskResponse.getBizTask() != null && !zfTaskResponse.getBizTask().isEmpty()) {
             String transSerialNo = zfTaskResponse.getBizTask().get(0).getTransactionNo();
             if (StringUtils.isEmpty(transSerialNo)) {
                 //调试时,注意如何获取参数
-                List<ZmCrawlerOrderApplyRequest.ItemDTO> itemsList = new ArrayList<>();
-                ZmCrawlerOrderApplyRequest orderApplyRequest = new ZmCrawlerOrderApplyRequest(zmCrawlerConfigureParameters.getComCode(), userCode, "213", itemsList);
+                ZmCrawlerOrderApplyRequest orderApplyRequest = new ZmCrawlerOrderApplyRequest(zmCrawlerConfigureParameters.getComCode(), userCode, crawlerOrder);
                 orderApplyRequest.setHead(head);
                 ZmCrawlerOrderApplyResponse orderApplyResponse = zmCrawlerRequestComponent.orderApply(orderApplyRequest);
                 transSerialNo = orderApplyResponse.getTransSerialNo();
@@ -312,7 +310,7 @@ public class ZhongMeiCrawlerRequestImpl implements ZhongMeiCrawlerRequest {
                 return paymentLinkResultsVo;
             }
         } else {
-            paymentLinkResultsVo.setErrorMsg(checkPaymentResponse.getHead().getReturnMessage());
+            paymentLinkResultsVo.setErrorMsg(zfTaskResponse.getHead().getReturnMessage());
             return paymentLinkResultsVo;
         }
     }
@@ -346,18 +344,44 @@ public class ZhongMeiCrawlerRequestImpl implements ZhongMeiCrawlerRequest {
      */
     @Override
     public DownloadPolicyResultVo downloadPolicy(DownloadPolicyVo downloadPolicyVo) {
+        DownloadPolicyResultVo downloadPolicyResultVo = new DownloadPolicyResultVo();
         // 1.0获取token的请求头
         AttributionInformationVo attributionInformationVo = downloadPolicyVo.getOrder().getAttributionInformationVo();
         String authorization = zmCrawlerRequestComponent.getAuthorization(attributionInformationVo);
         //获取配置信息
         ZmCrawlerConfigureParameters zmCrawlerConfigureParameters = ConfigureParametersConversion.conversionEntity(ZmCrawlerConfigureParameters.class, attributionInformationVo.getConfigInfo());
         BaseRequestHead head = new BaseRequestHead(authorization, "2");
-
-        ZmCrawlerPolicyPrintRequest policyPrintRequest = new ZmCrawlerPolicyPrintRequest("保单号", "险种编码", "车牌号", "");
-        policyPrintRequest.setHead(head);
-        ZmCrawlerPolicyPrintResponse policyPrintResponse = zmCrawlerRequestComponent.policyPrint(policyPrintRequest);
-
-        return null;
+        ZmCrawlerOrder crawlerOrder = zmCrawlerOrderService.findByOrdersNo(downloadPolicyVo.getOrder().getOrdersNo());
+        String licenseNo = downloadPolicyVo.getCarInfo().getLicenseNo();
+        ZmCrawlerPolicyPrintRequest policyPrintRequest = new ZmCrawlerPolicyPrintRequest(crawlerOrder,  "", licenseNo);
+        ZmCrawlerPolicyPrintResponse policyPrintResponse;
+        if (crawlerOrder.getJqContractNo() != null) {
+            // 交强保单
+            policyPrintRequest.setDocumentType("DZ_AE");
+            policyPrintRequest.setRiskCode("0330");
+            policyPrintResponse = zmCrawlerRequestComponent.policyPrint(policyPrintRequest);
+            downloadPolicyResultVo.setJqUrl(policyPrintResponse.getDownloadUrl().get(0));
+            // 交强标志
+            policyPrintRequest.setDocumentType("DZ_AJ");
+            policyPrintResponse = zmCrawlerRequestComponent.policyPrint(policyPrintRequest);
+            downloadPolicyResultVo.setJqFlagUrl(policyPrintResponse.getDownloadUrl().get(0));
+        }
+        if (crawlerOrder.getSyContractNo() != null) {
+            // 商业保单
+            policyPrintRequest.setDocumentType("DZ_AE");
+            policyPrintRequest.setRiskCode("0361");
+            policyPrintResponse = zmCrawlerRequestComponent.policyPrint(policyPrintRequest);
+            downloadPolicyResultVo.setSyUrl(policyPrintResponse.getDownloadUrl().get(0));
+        }
+        if (crawlerOrder.getJyContractNo() != null) {
+            // 驾意保单
+            String userCode = zmCrawlerRequestComponent.getUserCode(attributionInformationVo.getUsername());
+            String policyNo = downloadPolicyVo.getPolicie().getJyPolicyNo();
+            ZmCrawlerAccidentPrintRequest accidentPrintRequest = new ZmCrawlerAccidentPrintRequest(zmCrawlerConfigureParameters,userCode, policyNo);
+            ZmCrawlerAccidentPrintResponse accidentPrintResponse = zmCrawlerRequestComponent.accidentPrint(accidentPrintRequest);
+            downloadPolicyResultVo.setJyUrl(accidentPrintResponse.getAccidentPrintUrl());
+        }
+        return downloadPolicyResultVo;
     }
 
     /**
@@ -374,9 +398,51 @@ public class ZhongMeiCrawlerRequestImpl implements ZhongMeiCrawlerRequest {
         ZmCrawlerConfigureParameters parameters = ConfigureParametersConversion.conversionEntity(ZmCrawlerConfigureParameters.class, attributionInformationVo.getConfigInfo());
         BaseRequestHead requestHead = new BaseRequestHead(authorization, "2");
         ZmCrawlerOrder zmCrawlerOrder = zmCrawlerOrderService.findByOrdersNo(orderBase.getOrdersNo());
-        ZmCrawlerOrderStatusRequest orderStatusRequest = new ZmCrawlerOrderStatusRequest(parameters,zmCrawlerOrder.getBussinessNo());
+        ZmCrawlerOrderStatusRequest orderStatusRequest = new ZmCrawlerOrderStatusRequest(parameters,zmCrawlerOrder);
         orderStatusRequest.setHead(requestHead);
         ZmCrawlerOrderStatusResponse zmCrawlerOrderStatusResponse = zmCrawlerRequestComponent.orderStatusQuery(orderStatusRequest);
-        return null;
+        OrderStatusResultVo orderStatusResultVo = new OrderStatusResultVo();
+        if (zmCrawlerOrderStatusResponse.getHead().getReturnCode().equals("0") || zmCrawlerOrderStatusResponse.getBusiness() != null) {
+            String status = zmCrawlerOrderStatusResponse.getBusiness().get(0).getStatus();
+            // 人工审核
+            if ("9".equals(status)) {
+                orderStatusResultVo.setOrderStatus(InsOrderStatusEnum.STAFF_PROCESS);
+            }
+            // 核保失败
+            if ("2".equals(status)) {
+                orderStatusResultVo.setOrderStatus(InsOrderStatusEnum.AUDIT_FAIL);
+            }
+            // 双核审核成功
+            if ("1".equals(status) || "3".equals(status)) {
+                orderStatusResultVo.setOrderStatus(InsOrderStatusEnum.PAY_PENDING);
+                // 获取缴费地址
+                PaymentLinkVo paymentLinkVo = new PaymentLinkVo();
+                paymentLinkVo.setOrder(orderStatusVo.getOrder());
+                PaymentLinkResultsVo paymentLinkResultsVo = getPaymentLink(paymentLinkVo);
+                orderStatusResultVo.setPaymentLink(paymentLinkResultsVo.getPaymentLink());
+            }
+            // 承保确认
+            if ("6".equals(status)) {
+                orderStatusResultVo.setOrderStatus(InsOrderStatusEnum.UNDERWRITED);
+                // 获取交强保单号
+                if (zmCrawlerOrder.getJyContractNo() != null) {
+                    orderStatusRequest.setBusinessType("PR");
+                    orderStatusRequest.setIsNewPolicy("0");
+                    orderStatusRequest.setSubMenu("MENU_ZZBD");
+                    orderStatusRequest.setProposalNo(zmCrawlerOrder.getJqContractNo());
+                    zmCrawlerOrderStatusResponse = zmCrawlerRequestComponent.orderStatusQuery(orderStatusRequest);
+                    orderStatusResultVo.setJqPolicyno(zmCrawlerOrderStatusResponse.getBusiness().get(0).getContractNo1());
+                }
+                if (zmCrawlerOrder.getSyContractNo() != null) {
+                    orderStatusRequest.setProposalNo(zmCrawlerOrder.getSyContractNo());
+                    zmCrawlerOrderStatusResponse = zmCrawlerRequestComponent.orderStatusQuery(orderStatusRequest);
+                    orderStatusResultVo.setSyPolicyno(zmCrawlerOrderStatusResponse.getBusiness().get(0).getContractNo2());
+                }
+                if (zmCrawlerOrder.getJyContractNo() != null) {
+                    orderStatusResultVo.setJyPolicyno(zmCrawlerOrderStatusResponse.getBusiness().get(0).getContractNoCP());
+                }
+            }
+        }
+        return orderStatusResultVo;
     }
 }

+ 12 - 0
tenant/insurance/quotation-zhongmei/src/main/java/com/jzg/quotation/zhongmei/crawler/service/Impl/ZmCrawlerOrderServiceImpl.java

@@ -1,5 +1,6 @@
 package com.jzg.quotation.zhongmei.crawler.service.Impl;
 
+import com.jzg.commons.constants.ProductsType;
 import com.jzg.commons.entity.quote.vo.QuoteVo;
 import com.jzg.quotation.commons.utils.TimeProcessing;
 import com.jzg.quotation.zhongmei.crawler.entity.Response.ZmCrawlerQuotedPriceResponse;
@@ -47,6 +48,17 @@ public class ZmCrawlerOrderServiceImpl implements ZmCrawlerOrderService {
         zmCrawlerOrder.setProductsCode(quoteVo.getOrder().getProductId());
         zmCrawlerOrder.setBussinessNo(quotedPriceResponse.getBussinessMain().getContractMainNo());
         zmCrawlerOrder.setProposalName(quoteVo.getPolicyHolderInfo().getName());
+        zmCrawlerOrder.setInsuredName(quoteVo.getInsuredPersonInfo().getName());
+        quotedPriceResponse.getBussinessMain().getContract().stream().forEach(contract -> {
+            if (contract.getContractMain().getRiskCode().equals(ProductsType.PT_0330.getCode())) {
+                zmCrawlerOrder.setJqContractNo(contract.getContractMain().getContractNo());
+            } else {
+                zmCrawlerOrder.setSyContractNo(contract.getContractMain().getContractNo());
+            }
+        });
+        if (quotedPriceResponse.getBussinessMain().getAccident() != null) {
+            zmCrawlerOrder.setJyContractNo(quotedPriceResponse.getBussinessMain().getAccident().get(0).getRideProposalNo());
+        }
         zmCrawlerOrderReposiroty.save(zmCrawlerOrder);
         return null;
     }

+ 1 - 1
tenant/insurance/quotation-zhongmei/src/main/java/com/jzg/quotation/zhongmei/crawler/util/Base64Tool.java

@@ -82,7 +82,7 @@ public class Base64Tool {
 //        String encoded = encode(original);
 //        encoded = "eyaJoZaWFkaIjap7InRayYW5zQ29kZSI6IlZlcmlmeUNvZGUiLCJ0cmFuc1R5cGUiOiJSZXEiLCJ0b2tlbiI6IiIsInNvdXJjZSI6IjIifSwidXNlckNvZGUiOiIxNDAwMTM5MyJ9";
 //        System.out.println("Encoded: " + encoded);
-        String decoded = decode("eysJoZsWFksIjsp7InRsyYW5zQ29kZSI6IlN1Ym1pdCIsInRyYW5zVHlwZSI6IlJlcSIsInRva2VuIjoic2luMmVDN1NvczIwMjUxMjExMTcyMjI4MzQzb2Z0ajF2Zm0iLCJzb3VyY2UiOiIyIn0sIm9wZXJhdGVUeXBlIjoiMSIsImNvbnRyYWN0TWFpbiI6W3siYnVzaW5lc3NUeXBlIjoiVC0xIiwiY29udHJhY3RObyI6IjQxNDAxNzUxMzc5MjAyNTA2NzI2NTEiLCJyZW1hcmsiOiIiLCJzbXNDb2RlIjoiIn1dLCJhcHBsaVR5cGUiOiItMSIsImxvZ2luQ29tIjoiMTQwMTc1MDAifQ==");
+          String decoded = decode("eyfJoZfWFkfIjfp7InRfyYW5zQ29kZSI6IkFjY2lkZW50UHJpbnQiLCJ0cmFuc1R5cGUiOiJSZXEiLCJzb3VyY2UiOiIyIiwidG9rZW4iOiJzaW5kRGtHU29zMjAyNjA0MzAxNDE0NTg5ODVvZnRrNzNQbCJ9LCJsb2dpbkNvbSI6IjE0MDE3NTAwIiwiY29tQ29kZSI6IjE0MDE3NTAwIiwidXNlckNvZGUiOiIxNDAwMjAzMCIsImNvbnRyYWN0Tm8iOiIyMTQwMTc1MDZCMzIwMjYwMDEzNjMiLCJwcmludE5vIjoiIiwicmlza0NvZGVBSSI6IiIsInByaW50VHlwZSI6IkVQIiwicGxhdGVObyI6IuaZi0FXNUszMCIsInByaW50VHlwZU5hbWUiOiLmhI/lpJbpmannlLXlrZDkv53ljZUifQ==");
 //        System.out.println("Decoded: " + decoded);
         System.out.println(sort(JSONObject.parseObject(decoded)).toJSONString());
     }