Jelajahi Sumber

fix 大地财险

liub 4 bulan lalu
induk
melakukan
c97f8d4aa2
12 mengubah file dengan 153 tambahan dan 365 penghapusan
  1. 5 2
      tenant/insurance/quotation-dadi/src/main/java/com/jzg/quotation/dadi/crawler/build/DaDiCrawlerQuoteResultVoBuild.java
  2. 26 6
      tenant/insurance/quotation-dadi/src/main/java/com/jzg/quotation/dadi/crawler/component/DaDiCrawlerRequestComponent.java
  3. 1 1
      tenant/insurance/quotation-dadi/src/main/java/com/jzg/quotation/dadi/crawler/constant/enums/RequestUrl.java
  4. 0 4
      tenant/insurance/quotation-dadi/src/main/java/com/jzg/quotation/dadi/crawler/entity/request/DaDiEleProposalQRCoreDataRequest.java
  5. 31 20
      tenant/insurance/quotation-dadi/src/main/java/com/jzg/quotation/dadi/crawler/entity/request/DaDiInsurancePlanRequest.java
  6. 23 0
      tenant/insurance/quotation-dadi/src/main/java/com/jzg/quotation/dadi/crawler/entity/request/DaDiPayNoDataRequest.java
  7. 2 7
      tenant/insurance/quotation-dadi/src/main/java/com/jzg/quotation/dadi/crawler/entity/response/DaDiEleProposalQRCoreDataResponse.java
  8. 8 297
      tenant/insurance/quotation-dadi/src/main/java/com/jzg/quotation/dadi/crawler/entity/response/DaDiJointSalesResponse.java
  9. 27 0
      tenant/insurance/quotation-dadi/src/main/java/com/jzg/quotation/dadi/crawler/entity/response/DaDiPayNoDataResponse.java
  10. 2 0
      tenant/insurance/quotation-dadi/src/main/java/com/jzg/quotation/dadi/crawler/service/impl/DaDiCrawlerRequestImpl.java
  11. 18 15
      tenant/insurance/quotation-zijin/src/main/java/com/jzg/quotation/zijin/crawler/component/ZiJinCrawlerRequestComponent.java
  12. 10 13
      tenant/insurance/quotation-zijin/src/main/java/com/jzg/quotation/zijin/crawler/service/impl/ZiJinCrawlerRequestImpl.java

+ 5 - 2
tenant/insurance/quotation-dadi/src/main/java/com/jzg/quotation/dadi/crawler/build/DaDiCrawlerQuoteResultVoBuild.java

@@ -32,6 +32,7 @@ public class DaDiCrawlerQuoteResultVoBuild {
 
         for (DaDiQuoteResponse.UwResultDTO.UnderwriteRuleInfosDTO underwriteRuleInfo : underwriteRuleInfos) {
             if (!"3".equals(underwriteRuleInfo.getUwType())) {
+                quoteResultsVo.setQuoteStatusEnum(InsOrderStatusEnum.PAY_PENDING);
                 eMsg += underwriteRuleInfo.getRuleDescription() + ";";
             }
         }
@@ -52,8 +53,10 @@ public class DaDiCrawlerQuoteResultVoBuild {
 
         //商业险
         RiskInfoVo biRiskInfoVo = buildBiInfo(daDiQuoteResponse);
-        biRiskInfoVo.setRiskCode(quoteVo.getBiRiskInfoVo().getRiskCode());
-        quoteResultsVo.setBiRiskInfoVo(biRiskInfoVo);
+        if (quoteVo.getBiRiskInfoVo() != null) {
+            biRiskInfoVo.setRiskCode(quoteVo.getBiRiskInfoVo().getRiskCode());
+            quoteResultsVo.setBiRiskInfoVo(biRiskInfoVo);
+        }
 
         //设置保费,车船税,投保单号
         buildParams(daDiQuoteResponse, quoteResultsVo);

+ 26 - 6
tenant/insurance/quotation-dadi/src/main/java/com/jzg/quotation/dadi/crawler/component/DaDiCrawlerRequestComponent.java

@@ -349,13 +349,13 @@ public class DaDiCrawlerRequestComponent {
         DaDiJointSalesRequest daDiJointSalesRequest = new DaDiJointSalesRequest(daDiVehicleChannelRequest, orderNo, quoteVo.getCarInfoVo());
         String requestBody = DaDiAESUtils.encryptStr(JSON.toJSONString(daDiJointSalesRequest));
         String responseBody = networkRequest.doPost(url, requestBody, headers);
-//        log.info("\n----------------------> 获取尊享保障方案请求成功, \n----------------------> 响应结果:[{}],", responseBody);
+        log.info("\n----------------------> 获取尊享保障方案请求成功, \n----------------------> 响应结果:[{}],", responseBody);
         DaDiBaseResponse daDiBaseResponse = JSONObject.parseObject(responseBody, DaDiBaseResponse.class);
         if (!daDiBaseResponse.isSuccess()) {
             throw new ValidateException(daDiBaseResponse.getMsg());
         }
         String resJson = DaDiAESUtils.decryptStr(daDiBaseResponse.getData());
-//        log.info("\n----------------------> 获取尊享保障方案结果解析成功, \n----------------------> 解析结果:[{}],", resJson);
+        log.info("\n----------------------> 获取尊享保障方案结果解析成功, \n----------------------> 解析结果:[{}],", resJson);
         DaDiJointSalesResponse daDiJointSalesResponse = JSONObject.parseObject(resJson, DaDiJointSalesResponse.class);
         return daDiJointSalesResponse;
     }
@@ -651,21 +651,41 @@ public class DaDiCrawlerRequestComponent {
     }
 
     /**
-     * 获取二维码
+     * 获取支付号
      */
-    public DaDiEleProposalQRCoreDataResponse getEleProposalQRCoreData(HttpHeaders headers, String orderId, AttributionInformationVo attributionInformationVo) throws Exception {
+    public DaDiPayNoDataResponse getPayNo(HttpHeaders headers, String orderId, AttributionInformationVo attributionInformationVo) throws Exception {
         String url = RequestUrl.GET_PAY_NO.getRequestUrl(daDiCrawlerProperties.getBaseUrl());
         String thirdComeCode = daDiCrawlerCacheComponent.getThirdComeCode(attributionInformationVo.getUsername());
+        DaDiPayNoDataRequest daDiEleProposalQRCoreDataRequest = new DaDiPayNoDataRequest(orderId, thirdComeCode, attributionInformationVo.getUsername());
+        String requestBody = DaDiAESUtils.encryptStr(JSON.toJSONString(daDiEleProposalQRCoreDataRequest));
+        String responseBody = networkRequest.doPost(url, requestBody, headers);
+        log.info("\n----------------------> 获取支付号请求成功, \n----------------------> 响应结果:[{}],", responseBody);
+        DaDiBaseResponse daDiBaseResponse = JSONObject.parseObject(responseBody, DaDiBaseResponse.class);
+        if (!daDiBaseResponse.isSuccess()) {
+            throw new ValidateException(daDiBaseResponse.getMsg());
+        }
+        String resJson = DaDiAESUtils.decryptStr(daDiBaseResponse.getData());
+        log.info("\n----------------------> 获取支付号结果解析成功, \n----------------------> 解析结果:[{}],", resJson);
+        DaDiPayNoDataResponse daDiEleProposalQRCoreDataResponse = JSONObject.parseObject(resJson, DaDiPayNoDataResponse.class);
+        return daDiEleProposalQRCoreDataResponse;
+    }
+
+    /**
+     * 获取支付二维码
+     */
+    public DaDiEleProposalQRCoreDataResponse getEleProposalQRCoreData(HttpHeaders headers, String orderId, AttributionInformationVo attributionInformationVo) throws Exception {
+        String url = RequestUrl.GET_ELE_PROPOSAL_QR_CORE.getRequestUrl(daDiCrawlerProperties.getBaseUrl());
+        String thirdComeCode = daDiCrawlerCacheComponent.getThirdComeCode(attributionInformationVo.getUsername());
         DaDiEleProposalQRCoreDataRequest daDiEleProposalQRCoreDataRequest = new DaDiEleProposalQRCoreDataRequest(orderId, thirdComeCode, attributionInformationVo.getUsername());
         String requestBody = DaDiAESUtils.encryptStr(JSON.toJSONString(daDiEleProposalQRCoreDataRequest));
         String responseBody = networkRequest.doPost(url, requestBody, headers);
-        log.info("\n----------------------> 获取二维码请求成功, \n----------------------> 响应结果:[{}],", responseBody);
+        log.info("\n----------------------> 获取支付二维码请求成功, \n----------------------> 响应结果:[{}],", responseBody);
         DaDiBaseResponse daDiBaseResponse = JSONObject.parseObject(responseBody, DaDiBaseResponse.class);
         if (!daDiBaseResponse.isSuccess()) {
             throw new ValidateException(daDiBaseResponse.getMsg());
         }
         String resJson = DaDiAESUtils.decryptStr(daDiBaseResponse.getData());
-        log.info("\n----------------------> 获取二维码结果解析成功, \n----------------------> 解析结果:[{}],", resJson);
+        log.info("\n----------------------> 获取支付二维码结果解析成功, \n----------------------> 解析结果:[{}],", resJson);
         DaDiEleProposalQRCoreDataResponse daDiEleProposalQRCoreDataResponse = JSONObject.parseObject(resJson, DaDiEleProposalQRCoreDataResponse.class);
         return daDiEleProposalQRCoreDataResponse;
     }

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

@@ -40,7 +40,7 @@ public enum RequestUrl implements CrawlerRequestUrlStandard {
     QUERY_ORDER_STATUS("/csv/proposal/getStatus", "获取核保退回原因"),
 
     GET_PAY_NO("/csv/payment/getPayNo", "获取支付号"),
-    GET_ELE_PROPOSAL_QR_CORE("/csv/payment/getPayNo", "获取支付号"),
+    GET_ELE_PROPOSAL_QR_CORE("/csv/payment/getPaymentUrl", "获取支付二维码"),
 
     UPLOAD_IMAGE("/cst/image/imageUpload", "上传影像"),
     OSS_INIT_PARAM("http://ifimage.ccic-net.com.cn:5211/h5img/app/ImgManager/initParam.cmd", "获取oss图片上传初始化参数"),

+ 0 - 4
tenant/insurance/quotation-dadi/src/main/java/com/jzg/quotation/dadi/crawler/entity/request/DaDiEleProposalQRCoreDataRequest.java

@@ -13,10 +13,6 @@ import lombok.NoArgsConstructor;
 @NoArgsConstructor
 public class DaDiEleProposalQRCoreDataRequest extends DaDiOrderInfoRequest {
 
-    private String cancelPaymentCodeFlag = "0";
-
-    private String payType = "10";
-
     public DaDiEleProposalQRCoreDataRequest(String orderId, String comCode, String userCode) {
         this.orderId = orderId;
         this.comCode = comCode;

+ 31 - 20
tenant/insurance/quotation-dadi/src/main/java/com/jzg/quotation/dadi/crawler/entity/request/DaDiInsurancePlanRequest.java

@@ -259,17 +259,17 @@ public class DaDiInsurancePlanRequest extends DaDiBaseRequest {
     /**
      * 意外险投保信息(可为空)
      */
-    private List<DaDiJointSalesResponse.AccidentInsuranceDTO> accidentInsure;
+    private List<DaDiJointSalesResponse.InsuranceDTO> accidentInsure;
 
     /**
      * 健康险投保信息(可为空)
      */
-    private List<DaDiJointSalesResponse.HealthInsuranceDTO> healthInsure;
+    private List<DaDiJointSalesResponse.InsuranceDTO> healthInsure;
 
     /**
      * 财产险投保信息(可为空)
      */
-    private List<DaDiJointSalesResponse.PropertyInsuranceDTO> propertyInsure;
+    private List<DaDiJointSalesResponse.InsuranceDTO> propertyInsure;
 
     /**
      * 总保费
@@ -279,17 +279,17 @@ public class DaDiInsurancePlanRequest extends DaDiBaseRequest {
     /**
      * 意外险方案
      */
-    private List<DaDiJointSalesResponse.AccidentInsuranceDTO> accidentInsurance;
+    private List<DaDiJointSalesResponse.InsuranceDTO> accidentInsurance;
 
     /**
      * 健康险方案
      */
-    private List<DaDiJointSalesResponse.HealthInsuranceDTO> healthInsurance;
+    private List<DaDiJointSalesResponse.InsuranceDTO> healthInsurance;
 
     /**
      * 财产险方案
      */
-    private List<DaDiJointSalesResponse.PropertyInsuranceDTO> propertyInsurance;
+    private List<DaDiJointSalesResponse.InsuranceDTO> propertyInsurance;
 
     /**
      * 再保险项
@@ -454,21 +454,32 @@ public class DaDiInsurancePlanRequest extends DaDiBaseRequest {
                 this.wealthAccSeatCount = quoteVo.getCarInfoVo().getSeatCount();
             }
 
+            DaDiJointSalesResponse.InsuranceDTO insuranceListDTO;
             // 按产品分类拆分到意外险/健康险/财产险
-            List<DaDiJointSalesResponse.AccidentInsuranceDTO> accidentList = new ArrayList<>();
-            List<DaDiJointSalesResponse.HealthInsuranceDTO> healthList = new ArrayList<>();
-            List<DaDiJointSalesResponse.PropertyInsuranceDTO> propertyList = new ArrayList<>();
-
-            for (Map.Entry<String, List<?>> stringListEntry : jointSales.toMap().entrySet()) {
-                switch (stringListEntry.getKey()) {
-                    case "accidentInsurance":
-                        accidentList.addAll((List<DaDiJointSalesResponse.AccidentInsuranceDTO>) stringListEntry.getValue());
-                        break;
-                    case "healthInsurance":
-                        healthList.addAll((List<DaDiJointSalesResponse.HealthInsuranceDTO>) stringListEntry.getValue());
-                        break;
-                    case "propertyInsurance":
-                        propertyList.addAll((List<DaDiJointSalesResponse.PropertyInsuranceDTO>) stringListEntry.getValue());
+            List<DaDiJointSalesResponse.InsuranceDTO> accidentList = new ArrayList<>();
+            List<DaDiJointSalesResponse.InsuranceDTO> healthList = new ArrayList<>();
+            List<DaDiJointSalesResponse.InsuranceDTO> propertyList = new ArrayList<>();
+
+
+            for (AccidentalDrivingVo accidentalDriving : accidentalDrivings) {
+                for (Map.Entry<String, List<DaDiJointSalesResponse.InsuranceDTO>> stringListEntry : jointSales.toMap().entrySet()) {
+                    for (DaDiJointSalesResponse.InsuranceDTO insuranceDTO : stringListEntry.getValue()) {
+                        if (accidentalDriving.getProductCode().equals(insuranceDTO.getFormulaGroupCode())) {
+                            if (accidentalDriving.getProductCode().equals(insuranceDTO.getFormulaGroupCode())) {
+                                insuranceListDTO = insuranceDTO;
+                                insuranceListDTO.setFormulaGroupCode(insuranceDTO.getFormulaGroupCode());
+                                insuranceListDTO.setFormulaGroupName(insuranceDTO.getFormulaGroupName());
+                                insuranceListDTO.setIsNingdeEraVehicleBatteryCheck(insuranceDTO.getIsNingdeEraVehicleBatteryCheck());
+                                if (stringListEntry.getKey().equals("accidentInsurance")) {
+                                    accidentList.add(insuranceListDTO);
+                                } else if (stringListEntry.getKey().equals("healthInsurance")) {
+                                    healthList.add(insuranceListDTO);
+                                } else if (stringListEntry.getKey().equals("propertyInsurance")) {
+                                    propertyList.add(insuranceListDTO);
+                                }
+                            }
+                        }
+                    }
                 }
             }
 

+ 23 - 0
tenant/insurance/quotation-dadi/src/main/java/com/jzg/quotation/dadi/crawler/entity/request/DaDiPayNoDataRequest.java

@@ -0,0 +1,23 @@
+package com.jzg.quotation.dadi.crawler.entity.request;
+
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * @author Liub
+ * @version 1.0
+ * @description: 【】
+ * @date 2026/5/28 11:01
+ */
+@Data
+@NoArgsConstructor
+public class DaDiPayNoDataRequest extends DaDiOrderInfoRequest {
+
+    private String payType = "10";
+
+    public DaDiPayNoDataRequest(String orderId, String comCode, String userCode) {
+        this.orderId = orderId;
+        this.comCode = comCode;
+        this.userCode = userCode;
+    }
+}

+ 2 - 7
tenant/insurance/quotation-dadi/src/main/java/com/jzg/quotation/dadi/crawler/entity/response/DaDiEleProposalQRCoreDataResponse.java

@@ -1,6 +1,5 @@
 package com.jzg.quotation.dadi.crawler.entity.response;
 
-import com.google.gson.annotations.SerializedName;
 import lombok.Data;
 import lombok.NoArgsConstructor;
 
@@ -14,10 +13,6 @@ import lombok.NoArgsConstructor;
 @Data
 public class DaDiEleProposalQRCoreDataResponse extends DaDiBaseResponse {
 
-    @SerializedName("payApplyNo")
-    private String payApplyNo;
-    @SerializedName("payVerificationCode")
-    private String payVerificationCode;
-    @SerializedName("payAmount")
-    private String payAmount;
+
+
 }

+ 8 - 297
tenant/insurance/quotation-dadi/src/main/java/com/jzg/quotation/dadi/crawler/entity/response/DaDiJointSalesResponse.java

@@ -19,170 +19,16 @@ import java.util.Map;
 public class DaDiJointSalesResponse extends DaDiBaseResponse{
 
     @SerializedName("accidentInsurance")
-    private List<AccidentInsuranceDTO> accidentInsurance;
+    private List<InsuranceDTO> accidentInsurance;
     @SerializedName("healthInsurance")
-    private List<HealthInsuranceDTO> healthInsurance;
+    private List<InsuranceDTO> healthInsurance;
     @SerializedName("propertyInsurance")
-    private List<PropertyInsuranceDTO> propertyInsurance;
+    private List<InsuranceDTO> propertyInsurance;
 
-    @NoArgsConstructor
-    @Data
-    public static class AccidentInsuranceDTO {
-        @SerializedName("formulaGroupCode")
-        private String formulaGroupCode;
-        @SerializedName("formulaGroupName")
-        private String formulaGroupName;
-        @SerializedName("scene")
-        private String scene;
-        @SerializedName("productCode")
-        private String productCode;
-        @SerializedName("secondLine")
-        private String secondLine;
-        @SerializedName("isNingdeEraVehicleBatteryCheck")
-        private String isNingdeEraVehicleBatteryCheck;
-        @SerializedName("jointSalesSolutionVOS")
-        private List<JointSalesSolutionVOSDTO> jointSalesSolutionVOS;
-
-        @NoArgsConstructor
-        @Data
-        public static class JointSalesSolutionVOSDTO {
-            @SerializedName("planId")
-            private int planId;
-            @SerializedName("strategyId")
-            private int strategyId;
-            @SerializedName("formulaCode")
-            private String formulaCode;
-            @SerializedName("scene")
-            private String scene;
-            @SerializedName("customElement")
-            private String customElement;
-            @SerializedName("formulaName")
-            private String formulaName;
-            @SerializedName("formulaGroupName")
-            private String formulaGroupName;
-            @SerializedName("productCode")
-            private String productCode;
-            @SerializedName("policyNature")
-            private String policyNature;
-            @SerializedName("maxCount")
-            private int maxCount;
-            @SerializedName("minCount")
-            private int minCount;
-            @SerializedName("maxSeatCount")
-            private int maxSeatCount;
-            @SerializedName("minSeatCount")
-            private int minSeatCount;
-            @SerializedName("insuredAgeLower")
-            private int insuredAgeLower;
-            @SerializedName("insuredAgeLowerType")
-            private String insuredAgeLowerType;
-            @SerializedName("insuredAgeUpper")
-            private int insuredAgeUpper;
-            @SerializedName("insurantUpperlimit")
-            private int insurantUpperlimit;
-            @SerializedName("insurantLowerlimit")
-            private int insurantLowerlimit;
-            @SerializedName("insuredAgeUpperType")
-            private String insuredAgeUpperType;
-            @SerializedName("premium")
-            private int premium;
-            @SerializedName("amount")
-            private int amount;
-            @SerializedName("carNature")
-            private String carNature;
-            @SerializedName("familyInsuredCountLimit")
-            private String familyInsuredCountLimit;
-            @SerializedName("brandRange")
-            private String brandRange;
-            @SerializedName("isRenew")
-            private String isRenew;
-            @SerializedName("masterInsuredPersonFlag")
-            private String masterInsuredPersonFlag;
-            @SerializedName("modelCateCode")
-            private String modelCateCode;
-            @SerializedName("buizProductCode")
-            private String buizProductCode;
-            @SerializedName("customerLevel")
-            private String customerLevel;
-            @SerializedName("channelCode")
-            private String channelCode;
-            @SerializedName("prdPlanDefId")
-            private String prdPlanDefId;
-            @SerializedName("jointSalesSolutionItems")
-            private List<JointSalesSolutionItemsDTO> jointSalesSolutionItems;
-            @SerializedName("elements")
-            private List<ElementsDTO> elements;
-            @SerializedName("attachedElements")
-            private List<?> attachedElements;
-            @SerializedName("forms")
-            private List<FormsDTO> forms;
-            @SerializedName("isShowInsured")
-            private String isShowInsured;
-
-            @NoArgsConstructor
-            @Data
-            public static class JointSalesSolutionItemsDTO {
-                @SerializedName("kindCode")
-                private String kindCode;
-                @SerializedName("kindName")
-                private String kindName;
-                @SerializedName("linkSeats")
-                private int linkSeats;
-                @SerializedName("insureUnit")
-                private String insureUnit;
-                @SerializedName("subsidyAmount")
-                private String subsidyAmount;
-                @SerializedName("subsidyDay")
-                private String subsidyDay;
-                @SerializedName("defaultValue")
-                private int defaultValue;
-                @SerializedName("defaultAmount")
-                private int defaultAmount;
-            }
-
-            @NoArgsConstructor
-            @Data
-            public static class ElementsDTO {
-                @SerializedName("id")
-                private int id;
-                @SerializedName("code")
-                private String codeX;
-                @SerializedName("name")
-                private String name;
-                @SerializedName("requireInput")
-                private String requireInput;
-                @SerializedName("defaultValue")
-                private String defaultValue;
-                @SerializedName("options")
-                private List<?> options;
-            }
-
-            @NoArgsConstructor
-            @Data
-            public static class FormsDTO {
-                @SerializedName("id")
-                private int id;
-                @SerializedName("planformid")
-                private String planformid;
-                @SerializedName("plandefid")
-                private long plandefid;
-                @SerializedName("customformtitle")
-                private String customformtitle;
-                @SerializedName("customformcontent")
-                private String customformcontent;
-                @SerializedName("formcategory")
-                private String formcategory;
-                @SerializedName("productelementid")
-                private String productelementid;
-                @SerializedName("productelementcode")
-                private String productelementcode;
-            }
-        }
-    }
 
     @NoArgsConstructor
     @Data
-    public static class HealthInsuranceDTO {
+    public static class InsuranceDTO {
         @SerializedName("formulaGroupCode")
         private String formulaGroupCode;
         @SerializedName("formulaGroupName")
@@ -197,6 +43,8 @@ public class DaDiJointSalesResponse extends DaDiBaseResponse{
         private String isNingdeEraVehicleBatteryCheck;
         @SerializedName("jointSalesSolutionVOS")
         private List<JointSalesSolutionVOSDTO> jointSalesSolutionVOS;
+        @SerializedName("key")
+        private String key;
 
         @NoArgsConstructor
         @Data
@@ -335,148 +183,11 @@ public class DaDiJointSalesResponse extends DaDiBaseResponse{
         }
     }
 
-    @NoArgsConstructor
-    @Data
-    public static class PropertyInsuranceDTO {
-        @SerializedName("formulaGroupCode")
-        private String formulaGroupCode;
-        @SerializedName("formulaGroupName")
-        private String formulaGroupName;
-        @SerializedName("scene")
-        private String scene;
-        @SerializedName("productCode")
-        private String productCode;
-        @SerializedName("secondLine")
-        private String secondLine;
-        @SerializedName("isNingdeEraVehicleBatteryCheck")
-        private String isNingdeEraVehicleBatteryCheck;
-        @SerializedName("jointSalesSolutionVOS")
-        private List<JointSalesSolutionVOSDTO> jointSalesSolutionVOS;
-
-        @NoArgsConstructor
-        @Data
-        public static class JointSalesSolutionVOSDTO {
-            @SerializedName("planId")
-            private int planId;
-            @SerializedName("strategyId")
-            private int strategyId;
-            @SerializedName("formulaCode")
-            private String formulaCode;
-            @SerializedName("scene")
-            private String scene;
-            @SerializedName("customElement")
-            private String customElement;
-            @SerializedName("formulaName")
-            private String formulaName;
-            @SerializedName("formulaGroupName")
-            private String formulaGroupName;
-            @SerializedName("productCode")
-            private String productCode;
-            @SerializedName("maxCount")
-            private int maxCount;
-            @SerializedName("minCount")
-            private int minCount;
-            @SerializedName("maxSeatCount")
-            private int maxSeatCount;
-            @SerializedName("minSeatCount")
-            private int minSeatCount;
-            @SerializedName("insuredAgeLowerType")
-            private String insuredAgeLowerType;
-            @SerializedName("insuredAgeUpperType")
-            private String insuredAgeUpperType;
-            @SerializedName("premium")
-            private double premium;
-            @SerializedName("amount")
-            private int amount;
-            @SerializedName("carNature")
-            private String carNature;
-            @SerializedName("brandRange")
-            private String brandRange;
-            @SerializedName("masterInsuredPersonFlag")
-            private String masterInsuredPersonFlag;
-            @SerializedName("modelCateCode")
-            private String modelCateCode;
-            @SerializedName("buizProductCode")
-            private String buizProductCode;
-            @SerializedName("customerLevel")
-            private String customerLevel;
-            @SerializedName("channelCode")
-            private String channelCode;
-            @SerializedName("prdPlanDefId")
-            private String prdPlanDefId;
-            @SerializedName("jointSalesSolutionItems")
-            private List<JointSalesSolutionItemsDTO> jointSalesSolutionItems;
-            @SerializedName("elements")
-            private List<ElementsDTO> elements;
-            @SerializedName("attachedElements")
-            private List<?> attachedElements;
-            @SerializedName("forms")
-            private List<FormsDTO> forms;
-            @SerializedName("isShowInsured")
-            private String isShowInsured;
-
-            @NoArgsConstructor
-            @Data
-            public static class JointSalesSolutionItemsDTO {
-                @SerializedName("kindCode")
-                private String kindCode;
-                @SerializedName("kindName")
-                private String kindName;
-                @SerializedName("linkSeats")
-                private int linkSeats;
-                @SerializedName("insureUnit")
-                private String insureUnit;
-                @SerializedName("defaultValue")
-                private double defaultValue;
-                @SerializedName("defaultAmount")
-                private int defaultAmount;
-            }
-
-            @NoArgsConstructor
-            @Data
-            public static class ElementsDTO {
-                @SerializedName("id")
-                private int id;
-                @SerializedName("code")
-                private String codeX;
-                @SerializedName("name")
-                private String name;
-                @SerializedName("requireInput")
-                private String requireInput;
-                @SerializedName("defaultValue")
-                private String defaultValue;
-                @SerializedName("options")
-                private List<?> options;
-            }
-
-            @NoArgsConstructor
-            @Data
-            public static class FormsDTO {
-                @SerializedName("id")
-                private int id;
-                @SerializedName("plandefid")
-                private long plandefid;
-                @SerializedName("customformtitle")
-                private String customformtitle;
-                @SerializedName("customformcontent")
-                private String customformcontent;
-                @SerializedName("formcode")
-                private String formcode;
-                @SerializedName("formcategory")
-                private String formcategory;
-                @SerializedName("productelementid")
-                private String productelementid;
-                @SerializedName("productelementcode")
-                private String productelementcode;
-            }
-        }
-    }
-
     /**
      * 将险种列表转换为Map,key为险种类型标识,value为对应的险种列表
      */
-    public Map<String, List<?>> toMap() {
-        Map<String, List<?>> map = new LinkedHashMap<>();
+    public Map<String, List<InsuranceDTO>> toMap() {
+        Map<String, List<InsuranceDTO>> map = new LinkedHashMap<>();
         if (accidentInsurance != null) {
             map.put("accidentInsurance", accidentInsurance);
         }

+ 27 - 0
tenant/insurance/quotation-dadi/src/main/java/com/jzg/quotation/dadi/crawler/entity/response/DaDiPayNoDataResponse.java

@@ -0,0 +1,27 @@
+package com.jzg.quotation.dadi.crawler.entity.response;
+
+import com.google.gson.annotations.SerializedName;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * @author Liub
+ * @version 1.0
+ * @description: 【大地财险】 获取支付号
+ * @date 2026/6/3 10:56
+ */
+@NoArgsConstructor
+@Data
+public class DaDiPayNoDataResponse extends DaDiBaseResponse {
+
+    @SerializedName("payApplyNo")
+    private String payApplyNo;
+    @SerializedName("payVerificationCode")
+    private String payVerificationCode;
+    @SerializedName("paymentStartTime")
+    private String paymentStartTime;
+    @SerializedName("paymentEndTime")
+    private String paymentEndTime;
+    @SerializedName("payAmount")
+    private String payAmount;
+}

+ 2 - 0
tenant/insurance/quotation-dadi/src/main/java/com/jzg/quotation/dadi/crawler/service/impl/DaDiCrawlerRequestImpl.java

@@ -150,6 +150,7 @@ public class DaDiCrawlerRequestImpl implements DaDiCrawlerRequest {
             }
 
             if (underwriting.getUwType().equals("3")) {
+                DaDiPayNoDataResponse payNoDataResponse = daDiCrawlerRequestComponent.getPayNo(headers, daDiCrawlerOrder.getPlyappno(), attributionInformationVo);
                 DaDiEleProposalQRCoreDataResponse eleProposalQRCoreData = daDiCrawlerRequestComponent.getEleProposalQRCoreData(headers, daDiCrawlerOrder.getPlyappno(), attributionInformationVo);
                 underwritingResultsVo.setUnderwritingStatus(InsOrderStatusEnum.PAY_PENDING);
             } else {
@@ -220,6 +221,7 @@ public class DaDiCrawlerRequestImpl implements DaDiCrawlerRequest {
             case "23":
             case "40":
             case "41":
+                DaDiPayNoDataResponse payNo = daDiCrawlerRequestComponent.getPayNo(headers, daDiCrawlerOrder.getPlyappno(), attributionInformationVo);
                 DaDiEleProposalQRCoreDataResponse eleProposalQRCoreData = daDiCrawlerRequestComponent.getEleProposalQRCoreData(headers, daDiCrawlerOrder.getPlyappno(), attributionInformationVo);
                 orderStatusResultVo.setErrorMsg(DaDiVehicleUtils.ORDER_STATUS_DICT.get(orderStatus));
                 orderStatusResultVo.setOrderStatus(InsOrderStatusEnum.PAY_PENDING);

+ 18 - 15
tenant/insurance/quotation-zijin/src/main/java/com/jzg/quotation/zijin/crawler/component/ZiJinCrawlerRequestComponent.java

@@ -2,25 +2,28 @@ package com.jzg.quotation.zijin.crawler.component;
 
 import com.alibaba.fastjson2.JSON;
 import com.google.zxing.NotFoundException;
-import com.jzg.commons.exception.SystemException;
-import com.jzg.quotation.zijin.crawler.enums.RequestUrl;
+import com.jzg.quotation.commons.component.RequestComponent;
 import com.jzg.quotation.zijin.crawler.entity.request.*;
 import com.jzg.quotation.zijin.crawler.entity.response.*;
+import com.jzg.quotation.zijin.crawler.enums.RequestUrl;
 import com.jzg.quotation.zijin.crawler.properties.ZiJinCrawlerProperties;
-import com.jzg.quotation.zijin.crawler.util.*;
-import com.jzg.quotation.commons.component.RequestComponent;
+import com.jzg.quotation.zijin.crawler.util.CaptchaUtil;
+import com.jzg.quotation.zijin.crawler.util.DESEncryption;
+import com.jzg.quotation.zijin.crawler.util.RS6Item;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.jetbrains.annotations.NotNull;
 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 java.io.IOException;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
 
 /**
  * @description: 紫金财险爬虫请求组件
@@ -228,15 +231,15 @@ public class ZiJinCrawlerRequestComponent {
      * @param headers 请求头
      * @return ZiJinCrawlerGetTaxRegistryNumberResponse
      */
-    public ZiJinCrawlerGetTaxRegistryNumberResponse getTaxRegistryNumber(String comCode, HttpHeaders headers) throws IOException {
-        HttpHeaders httpHeaders = setHttpHeaders();
-        String url = RequestUrl.GET_TAX_REGISTRY_NUMBER.getRequestUrl(ziJinCrawlerProperties.getBaseUrl()) + "?comCode=" + comCode;
-        log.info("获取税务登记证号请求URL:{}", url);
-        ResponseEntity<ZiJinCrawlerGetTaxRegistryNumberResponse> responseEntity = requestComponent.post(url, null, ZiJinCrawlerGetTaxRegistryNumberResponse.class, httpHeaders);
-        ZiJinCrawlerGetTaxRegistryNumberResponse response = responseEntity.getBody();
-        log.info("获取税务登记证号响应:{}", JSON.toJSONString(response));
-        return response;
-    }
+//    public ZiJinCrawlerGetTaxRegistryNumberResponsexRegistryNumberResponse getTaxRegistryNumber(String comCode, HttpHeaders headers) throws IOException {
+//        HttpHeaders httpHeaders = setHttpHeaders();
+//        String url = RequestUrl.GET_TAX_REGISTRY_NUMBER.getRequestUrl(ziJinCrawlerProperties.getBaseUrl()) + "?comCode=" + comCode;
+//        log.info("获取税务登记证号请求URL:{}", url);
+//        ResponseEntity<ZiJinCrawlerGetTaxRegistryNumberResponse> responseEntity = requestComponent.post(url, null, ZiJinCrawlerGetTaxRegistryNumberResponse.class, httpHeaders);
+//        ZiJinCrawlerGetTaxRegistryNumberResponse response = responseEntity.getBody();
+//        log.info("获取税务登记证号响应:{}", JSON.toJSONString(response));
+//        return response;
+//    }
 
     /**
      * 报价

+ 10 - 13
tenant/insurance/quotation-zijin/src/main/java/com/jzg/quotation/zijin/crawler/service/impl/ZiJinCrawlerRequestImpl.java

@@ -3,28 +3,25 @@ package com.jzg.quotation.zijin.crawler.service.impl;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import com.google.zxing.NotFoundException;
-
-import java.util.Arrays;
-
 import com.jzg.commons.constants.dict.InsOrderStatusEnum;
 import com.jzg.commons.entity.quote.vo.*;
 import com.jzg.commons.entity.quote.vo.aggregated.*;
 import com.jzg.commons.entity.quote.vo.base.LoginBase;
+import com.jzg.quotation.commons.annotation.QuoteCrawlerService;
+import com.jzg.quotation.commons.constant.InsuranceCode;
 import com.jzg.quotation.commons.entity.DetectLoginRequest;
-import com.jzg.quotation.zijin.crawler.enums.ResponseCode;
+import com.jzg.quotation.commons.standard.conversion.ConfigureParametersConversion;
 import com.jzg.quotation.zijin.crawler.build.ZiJinCrawlerQuoteResultsVoBuild;
 import com.jzg.quotation.zijin.crawler.component.ZiJinBuildingAttributionInformation;
 import com.jzg.quotation.zijin.crawler.component.ZiJinCrawlerCacheComponent;
 import com.jzg.quotation.zijin.crawler.component.ZiJinCrawlerRequestComponent;
 import com.jzg.quotation.zijin.crawler.entity.ZiJinCrawlerConfigureParameters;
 import com.jzg.quotation.zijin.crawler.entity.po.ZiJinCrawlerOrder;
-import com.jzg.quotation.zijin.crawler.service.ZiJinCrawlerOrderService;
-import com.jzg.quotation.zijin.crawler.service.ZiJinCrawlerQuoteProcessService;
-import com.jzg.quotation.commons.annotation.QuoteCrawlerService;
-import com.jzg.quotation.commons.constant.InsuranceCode;
-import com.jzg.quotation.commons.standard.conversion.ConfigureParametersConversion;
 import com.jzg.quotation.zijin.crawler.entity.request.*;
 import com.jzg.quotation.zijin.crawler.entity.response.*;
+import com.jzg.quotation.zijin.crawler.enums.ResponseCode;
+import com.jzg.quotation.zijin.crawler.service.ZiJinCrawlerOrderService;
+import com.jzg.quotation.zijin.crawler.service.ZiJinCrawlerQuoteProcessService;
 import com.jzg.quotation.zijin.crawler.service.ZiJinCrawlerRequest;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
@@ -937,10 +934,10 @@ public class ZiJinCrawlerRequestImpl implements ZiJinCrawlerRequest {
         // 获取税务登记证号
         String taxRegistryNumber = "";
         try {
-            ZiJinCrawlerGetTaxRegistryNumberResponse taxResponse = ziJinCrawlerRequestComponent.getTaxRegistryNumber(comCode, headers);
-            if (taxResponse != null && StringUtils.hasLength(taxResponse.getData())) {
-                taxRegistryNumber = taxResponse.getData();
-            }
+//            ZiJinCrawlerGetTaxRegistryNumberResponse taxResponse = ziJinCrawlerRequestComponent.getTaxRegistryNumber(comCode, headers);
+//            if (taxResponse != null && StringUtils.hasLength(taxResponse.getData())) {
+//                taxRegistryNumber = taxResponse.getData();
+//            }
         } catch (Exception e) {
             log.error("获取税务登记证号失败: {}", e.getMessage());
         }