Sfoglia il codice sorgente

中煤python 报价的修改

dongxin 1 anno fa
parent
commit
d4cd56dfa1
11 ha cambiato i file con 230 aggiunte e 85 eliminazioni
  1. 36 1
      tenant/insurance/quotation-commons/src/main/java/com/jzg/quotation/commons/component/RequestComponent.java
  2. 4 3
      tenant/insurance/quotation-commons/src/main/java/com/jzg/quotation/commons/service/impl/ExteriorUtilsRequestImpl.java
  3. 60 19
      tenant/insurance/quotation-zhongmei/src/main/java/com/jzg/quotation/zhongmei/crawler/component/ZmCrawlerRequestComponent.java
  4. 17 7
      tenant/insurance/quotation-zhongmei/src/main/java/com/jzg/quotation/zhongmei/crawler/entity/Request/ZmCrawlerActualValueRequest.java
  5. 4 2
      tenant/insurance/quotation-zhongmei/src/main/java/com/jzg/quotation/zhongmei/crawler/entity/Request/ZmCrawlerAuthenticateRequest.java
  6. 26 0
      tenant/insurance/quotation-zhongmei/src/main/java/com/jzg/quotation/zhongmei/crawler/entity/Request/ZmCrawlerModelQueryRequest.java
  7. 8 0
      tenant/insurance/quotation-zhongmei/src/main/java/com/jzg/quotation/zhongmei/crawler/entity/Request/ZmCrawlerNetpointQueryRequest.java
  8. 44 22
      tenant/insurance/quotation-zhongmei/src/main/java/com/jzg/quotation/zhongmei/crawler/entity/Request/ZmCrawlerQuotedPriceRequest.java
  9. 3 0
      tenant/insurance/quotation-zhongmei/src/main/java/com/jzg/quotation/zhongmei/crawler/entity/Response/ZmCrawlerAuthenticateResponse.java
  10. 16 21
      tenant/insurance/quotation-zhongmei/src/main/java/com/jzg/quotation/zhongmei/crawler/entity/ZmCrawlerConfigureParameters.java
  11. 12 10
      tenant/insurance/quotation-zhongmei/src/main/java/com/jzg/quotation/zhongmei/crawler/service/Impl/ZhongMeiCrawlerRequestImpl.java

+ 36 - 1
tenant/insurance/quotation-commons/src/main/java/com/jzg/quotation/commons/component/RequestComponent.java

@@ -2,6 +2,7 @@ package com.jzg.quotation.commons.component;
 
 
 import com.alibaba.fastjson2.JSON;
+import com.fasterxml.jackson.databind.ObjectMapper;
 import com.jzg.commons.exception.SystemException;
 import com.jzg.quotation.commons.utils.RequestObjectConversion;
 import lombok.RequiredArgsConstructor;
@@ -18,6 +19,7 @@ import org.springframework.util.MultiValueMap;
 import org.springframework.web.reactive.function.BodyInserters;
 import org.springframework.web.reactive.function.client.WebClient;
 import reactor.core.publisher.Flux;
+import reactor.core.publisher.Mono;
 
 import java.io.IOException;
 import java.net.URLEncoder;
@@ -189,7 +191,7 @@ public class RequestComponent {
         if (log.isDebugEnabled()) {
             log.debug("request body is {}", body);
         }
-
+        System.out.println(body);
         body = Optional.ofNullable(body).orElse("");
         return webClient.post()
                 .uri(url)
@@ -200,6 +202,39 @@ public class RequestComponent {
                 .block();
     }
 
+    /**
+     * gbk
+     * @param url           请求地址
+     * @param body          请求体
+     * @param responseClass 响应类
+     * @param headers       请求头
+     * @param <T>    响应实体
+     * @return 响应
+     */
+    public <T> Mono<T> postGbk(String url, String body, Class<T> responseClass, HttpHeaders headers) {
+        if (log.isDebugEnabled()) {
+            log.debug("request body is {}", body);
+        }
+        System.out.println(body);
+        body = Optional.ofNullable(body).orElse("");
+        System.out.println(body);
+        return webClient.post()
+                .uri(url)
+                .headers(setHeaders(headers))
+                .body(BodyInserters.fromValue(body))
+                .retrieve()
+                .bodyToMono(String.class)  // 获取响应体为字符串
+                .map(responseBody -> {
+                    // 将解码后的响应体转换为 Java 对象
+                    try {
+                        System.out.println(responseBody);
+                        return JSON.parseObject(responseBody).toJavaObject(responseClass);
+                    } catch (Exception e) {
+                        throw new RuntimeException("JSON 解析失败", e);
+                    }
+                });
+    }
+
     /**
      * @param url               请求地址
      * @param body              请求体

+ 4 - 3
tenant/insurance/quotation-commons/src/main/java/com/jzg/quotation/commons/service/impl/ExteriorUtilsRequestImpl.java

@@ -1,5 +1,6 @@
 package com.jzg.quotation.commons.service.impl;
 
+import com.alibaba.fastjson.JSON;
 import com.jzg.quotation.commons.component.RequestComponent;
 import com.jzg.commons.constants.quote.enums.base.ExpenseRequestUrl;
 import com.jzg.commons.entity.quote.vo.base.R;
@@ -11,6 +12,7 @@ import lombok.RequiredArgsConstructor;
 import org.springframework.core.ParameterizedTypeReference;
 import org.springframework.http.HttpHeaders;
 import org.springframework.stereotype.Service;
+import reactor.core.publisher.Mono;
 
 import java.util.List;
 import java.util.Map;
@@ -38,9 +40,8 @@ public class ExteriorUtilsRequestImpl implements ExteriorUtilsRequest {
         base64String = prefixToRemove(base64String);
         ExpenseRequestUrl captcha = ExpenseRequestUrl.CAPTCHA_IDENTIFY;
         String url = ExpenseRequestUrl.getUrl(captchaRecognitionProperties.getUrl(), captcha.getUri());
-        R<String> response = requestComponent.post(url, Map.of("captcha", base64String), captcha.getDescription(), new ParameterizedTypeReference<>() {
-        }, new HttpHeaders());
-        return response.getData();
+        Mono<R> response = requestComponent.postGbk(url, JSON.toJSONString(Map.of("captcha", base64String)), R.class, new HttpHeaders());
+        return response.block().getData().toString();
     }
 
     @Override

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

@@ -2,6 +2,7 @@ package com.jzg.quotation.zhongmei.crawler.component;
 
 import cn.hutool.core.util.XmlUtil;
 import com.alibaba.fastjson.JSONObject;
+import com.alibaba.fastjson2.JSON;
 import com.jzg.commons.exception.SystemException;
 import com.jzg.quotation.commons.component.RequestComponent;
 import com.jzg.quotation.commons.constant.CacheConstant;
@@ -25,6 +26,7 @@ import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.redisson.api.RMap;
 import org.redisson.api.RedissonClient;
+import org.springframework.http.HttpHeaders;
 import org.springframework.http.ResponseEntity;
 import org.springframework.stereotype.Component;
 import org.springframework.util.LinkedMultiValueMap;
@@ -34,6 +36,7 @@ import org.w3c.dom.Document;
 import org.w3c.dom.Element;
 import org.w3c.dom.Node;
 import org.w3c.dom.NodeList;
+import reactor.core.publisher.Mono;
 
 import java.time.Duration;
 import java.util.*;
@@ -76,20 +79,22 @@ public class ZmCrawlerRequestComponent {
         if (frequency <= 0) {
             throw new SystemException("验证码异常");
         }
-        ZmCrawlerCaptchaRequest captchaRequest = new ZmCrawlerCaptchaRequest(username);
-        // 请求
-        ZmCrawlerCaptchaResponse zmCrawlerCaptchaResponse = requestComponent.objectPost(RequestUrl.CAPTCHA.getRequestUrl(zmCrawlerProperties.getBaseUrl()), Base64Tool.encode(JSONObject.toJSONString(captchaRequest)), "", ZmCrawlerCaptchaResponse.class);
-        // 识别验证码
-        String s = exteriorUtilsRequest.captchaIdentify(zmCrawlerCaptchaResponse.getVerifyCode());
         try {
-            int i = processCaptcha(s);
-            s = String.valueOf(i);
+            ZmCrawlerCaptchaRequest captchaRequest = new ZmCrawlerCaptchaRequest(username);
+            BaseRequestHead head = new BaseRequestHead(null,"2");
+            captchaRequest.setHead(head);
+            // 请求
+            Mono<ZmCrawlerCaptchaResponse> monoResponse = requestComponent.postGbk(RequestUrl.CAPTCHA.getRequestUrl(zmCrawlerProperties.getBaseUrl()), Base64Tool.encode(JSONObject.toJSONString(captchaRequest)), ZmCrawlerCaptchaResponse.class, new HttpHeaders());
+            ZmCrawlerCaptchaResponse response = monoResponse.block();
+            // 识别验证码
+            String s = exteriorUtilsRequest.captchaIdentify(response.getVerifyCode());
+            response.setVerifyStr(s);
+            return response;
         } catch (Exception e) {
             frequency = frequency - 1;
             return captcha(frequency, username);
         }
-        zmCrawlerCaptchaResponse.setVerifyStr(s);
-        return zmCrawlerCaptchaResponse;
+
     }
 
     private Map<String, String> buildCache(ZmCrawlerAuthenticateResponse authenticateResponse) {
@@ -109,12 +114,15 @@ public class ZmCrawlerRequestComponent {
     public String authenticate(String username, String password, int loginsNumber) {
         // 登录验证码获取
         ZmCrawlerCaptchaResponse captchaResponse = captcha(REQUEST_NUMBER, username);
+
         // 登录存入缓存当中
         ZmCrawlerAuthenticateRequest authenticateRequest = new ZmCrawlerAuthenticateRequest(captchaResponse, username, password);
-        ResponseEntity<ZmCrawlerAuthenticateResponse> responseEntity = requestComponent.objectPost(RequestUrl.AUTHENTICATE.getRequestUrl(zmCrawlerProperties.getBaseUrl()), Base64Tool.encode(JSONObject.toJSONString(authenticateRequest)), ZmCrawlerAuthenticateResponse.class);
-        ZmCrawlerAuthenticateResponse authenticateResponse = Optional.of(responseEntity).map(ResponseEntity::getBody).orElseThrow();
+        BaseRequestHead head = new BaseRequestHead(null,"2");
+        authenticateRequest.setHead(head);
 
-        if ("0".equals(authenticateResponse.getHead().getReturnCode())) {
+        Mono<ZmCrawlerAuthenticateResponse> responseMono = requestComponent.postGbk(RequestUrl.AUTHENTICATE.getRequestUrl(zmCrawlerProperties.getBaseUrl()), Base64Tool.encode(JSONObject.toJSONString(authenticateRequest)), ZmCrawlerAuthenticateResponse.class, new HttpHeaders());
+        ZmCrawlerAuthenticateResponse authenticateResponse = Optional.of(responseMono.block()).orElseThrow();
+        if ("0".equals(authenticateResponse.getHead().getReturnCode()) && authenticateResponse.getReCode().equals("0")) {
             Map<String, String> authorizationMap = buildCache(authenticateResponse);
             RMap<Object, Object> map = redissonClient.getMap(CacheConstant.ZHONGMEI_AUTHORIZATION + username);
             map.putAll(authorizationMap);
@@ -199,7 +207,9 @@ public class ZmCrawlerRequestComponent {
      * @return
      */
     public List<ZmCrawlerModelQueryResponse.FullCarDataDTO> modelQuery(ZmCrawlerModelQueryRequest modelQueryRequest) {
-        ZmCrawlerModelQueryResponse zmCrawlerModelQueryResponseResponse = request(RequestUrl.MODELS_QUERY, modelQueryRequest, ZmCrawlerModelQueryResponse.class);
+        Mono<ZmCrawlerModelQueryResponse> responseMono = requestComponent.postGbk(RequestUrl.MODELS_QUERY.getRequestUrl(zmCrawlerProperties.getBaseUrl()),
+                Base64Tool.encode(JSONObject.toJSONString(modelQueryRequest)), ZmCrawlerModelQueryResponse.class,new HttpHeaders());
+        ZmCrawlerModelQueryResponse zmCrawlerModelQueryResponseResponse = responseMono.block();
         return zmCrawlerModelQueryResponseResponse.getCarModel();
     }
 
@@ -208,8 +218,9 @@ public class ZmCrawlerRequestComponent {
      * @param modelQueryRequest
      * @return
      */
-    public ZmCrawlerNetpointQueryResponse netpointQuery(ZmCrawlerNetpointQueryRequest modelQueryRequest) {
-        return request(RequestUrl.NETPOINT_QUERY, modelQueryRequest, ZmCrawlerNetpointQueryResponse.class);
+    public Mono<ZmCrawlerNetpointQueryResponse> netpointQuery(ZmCrawlerNetpointQueryRequest modelQueryRequest) {
+        return requestComponent.postGbk(RequestUrl.NETPOINT_QUERY.getRequestUrl(zmCrawlerProperties.getBaseUrl()),
+                Base64Tool.encode(JSONObject.toJSONString(modelQueryRequest)), ZmCrawlerNetpointQueryResponse.class,new HttpHeaders());
     }
 
     /**
@@ -220,9 +231,9 @@ public class ZmCrawlerRequestComponent {
      * @return
      */
     public SaleInfoDTO getSaleInfoDTO(ZmCrawlerConfigureParameters parameters, BaseRequestHead baseRequestHead) {
-        ZmCrawlerNetpointQueryRequest netpointQueryRequest = new ZmCrawlerNetpointQueryRequest();
-        netpointQueryRequest.setHead(baseRequestHead);
-        ZmCrawlerNetpointQueryResponse netpointQueryResponse = netpointQuery(netpointQueryRequest);
+        ZmCrawlerNetpointQueryRequest netpointQueryRequest = new ZmCrawlerNetpointQueryRequest(parameters,baseRequestHead);
+        Mono<ZmCrawlerNetpointQueryResponse> netpointQueryResponseMono = netpointQuery(netpointQueryRequest);
+        ZmCrawlerNetpointQueryResponse netpointQueryResponse = netpointQueryResponseMono.block();
         return new SaleInfoDTO(netpointQueryResponse, parameters);
     }
 
@@ -232,7 +243,11 @@ public class ZmCrawlerRequestComponent {
      * @return
      */
     public ZmCrawlerActualValueResponse getActualValue(ZmCrawlerActualValueRequest actualValueRequest) {
-        return request(RequestUrl.ACTUAL_VALUE, actualValueRequest, ZmCrawlerActualValueResponse.class);
+        System.out.println(JSONObject.toJSONString(actualValueRequest));
+        Mono<ZmCrawlerActualValueResponse> responseMono = requestComponent.postGbk(RequestUrl.ACTUAL_VALUE.getRequestUrl(zmCrawlerProperties.getBaseUrl()),
+                Base64Tool.encode(JSONObject.toJSONString(actualValueRequest)), ZmCrawlerActualValueResponse.class,new HttpHeaders());
+        ZmCrawlerActualValueResponse response = responseMono.block();
+        return response;
     }
 
     /**
@@ -823,4 +838,30 @@ public class ZmCrawlerRequestComponent {
     public ZmCrawlerPolicyPrintResponse policyPrint(ZmCrawlerPolicyPrintRequest printRequest) {
         return request(RequestUrl.POLICY_PRINT, printRequest, ZmCrawlerPolicyPrintResponse.class );
     }
+
+    public static void main(String[] args) {
+        System.out.println(Base64Tool.encode(JSONObject.toJSONString("{\n" +
+                "            \"head\": {\n" +
+                "                \"token\": \"sinhRNuIos20250624155233333oftJ29pr\",\n" +
+                "                \"transType\": \"Req\",\n" +
+                "                \"transCode\": \"ModelsQuery\",\n" +
+                "                \"source\": \"2\"\n" +
+                "            },\n" +
+                "            \"loginCom\": \"14091100\",\n" +
+                "            \"modelName\": \"宝马BMW7201AN轿车\",\n" +
+                "            \"brand\": \"\",\n" +
+                "            \"carYear\": \"\",\n" +
+                "            \"carType\": \"\",\n" +
+                "            \"deptcode\": \"\",\n" +
+                "            \"displacement\": \"\",\n" +
+                "            \"factory\": \"\",\n" +
+                "            \"purchasepricenottaxMin\": \"\",\n" +
+                "            \"purchasepricenottaxMax\": \"\",\n" +
+                "            \"motorMainType\": \"100\",\n" +
+                "            \"modelCode\": \"\",\n" +
+                "            \"planCode\": \"1379\",\n" +
+                "            \"vin\": \"LBVKY1105LSS79828\",\n" +
+                "            \"platModelCode\": \"\"\n" +
+                "        }")));
+    }
 }

+ 17 - 7
tenant/insurance/quotation-zhongmei/src/main/java/com/jzg/quotation/zhongmei/crawler/entity/Request/ZmCrawlerActualValueRequest.java

@@ -5,7 +5,6 @@ import com.jzg.quotation.commons.utils.DateUtil;
 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.ZmCrawlerConfigureParameters;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 
@@ -83,18 +82,29 @@ public class ZmCrawlerActualValueRequest extends BaseRequest {
      */
     private String energyTypeCode;
 
-    public ZmCrawlerActualValueRequest(CarInfoVo carInfoVo, ZmCrawlerConfigureParameters parameters) {
+    public ZmCrawlerActualValueRequest(CarInfoVo carInfoVo, BaseRequestHead head) {
+        this.setHead(head);
         this.approvedPassengersCapacity = Integer.parseInt(carInfoVo.getSeatCount());
         this.validDate = DateUtil.getDateFormat(new Date(), DateUtil.FULL_TIME_SPLIT_PATTERN);
         this.purchasePrice = Integer.parseInt(carInfoVo.getPurchasePrice());
         this.motorUsageTypeCode = carInfoVo.getCarNatureCode();
-        this.motorTypeCode = carInfoVo.getCarTypeCode();
-        this.registerDate = carInfoVo.getRegisterDate();
+        if(carInfoVo.getEnergyTypeCode().equals("0")){
+            this.planCode = "1379";
+            this.riskCode = "'0361'";
+        }else{
+            this.planCode= "1382";
+            this.riskCode = "0365";
+        }
+        if(carInfoVo.getCarKindCode().equals("100")){
+            this.motorTypeCode = "11";
+        }else{
+            this.motorTypeCode = "21";
+        }
+
+        this.registerDate = carInfoVo.getRegisterDate() + " 00:00:00";
         this.carUseType = carInfoVo.getVehicleUseCode();
-        this.riskCode = parameters.getRiskCode();
         this.motorMainType = carInfoVo.getCarKindCode();
-        this.motorSubType = carInfoVo.getCarKindDetailIdCode();
-//        this.planCode = parameters.getPlanCode();
+        this.motorSubType = "101";
         this.energyTypeCode = carInfoVo.getEnergyTypeCode();
     }
 

File diff suppressed because it is too large
+ 4 - 2
tenant/insurance/quotation-zhongmei/src/main/java/com/jzg/quotation/zhongmei/crawler/entity/Request/ZmCrawlerAuthenticateRequest.java


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

@@ -1,8 +1,10 @@
 package com.jzg.quotation.zhongmei.crawler.entity.Request;
 
+import com.jzg.commons.entity.quote.vo.CarInfoVo;
 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.dto.SaleInfoDTO;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 
@@ -68,6 +70,30 @@ public class ZmCrawlerModelQueryRequest extends BaseRequest {
         super.getHead().setTransCode(TransCode.MODELS_QUERY);
     }
 
+    public ZmCrawlerModelQueryRequest(SaleInfoDTO saleInfoDTO, BaseRequestHead head, CarInfoVo carInfoVo){
+        this.setHead(head);
+        this.loginCom = saleInfoDTO.getComCode();
+        this.modelName = carInfoVo.getBrandName().replace("牌","");
+        this.motorMainType = carInfoVo.getCarKindCode();
+        if(carInfoVo.getEnergyTypeCode().equals("0") || carInfoVo.getEnergyTypeCode().equals("5")){
+            this.planCode = "1379";
+        }else{
+            this.planCode= "1382";
+        }
+
+        this.vin = carInfoVo.getVinNo();
+        this.carYear = "";
+        this.carType = "";
+        this.deptcode = "";
+        this.displacement = "";
+        this.factory = "";
+        this.purchasepricenottaxMin = "";
+        this.purchasepricenottaxMax = "";
+        this.modelCode = "";
+        this.platModelCode = "";
+
+    }
+
     /**数据示例
      * {
      *   "head": {

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

@@ -4,6 +4,7 @@ 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;
 
@@ -32,6 +33,13 @@ public class ZmCrawlerNetpointQueryRequest extends BaseRequest {
         super.getHead().setTransCode(TransCode.NETPOINT_QUERY);
     }
 
+    public ZmCrawlerNetpointQueryRequest(ZmCrawlerConfigureParameters parameters, BaseRequestHead baseRequestHead){
+
+        this.setHead(baseRequestHead);
+        this.comCode = parameters.getComCode();
+        this.netpointcode = parameters.getNetPointCode();
+        this.isSalesman = "0";
+    }
     /**
      * {
      *   "head": {

+ 44 - 22
tenant/insurance/quotation-zhongmei/src/main/java/com/jzg/quotation/zhongmei/crawler/entity/Request/ZmCrawlerQuotedPriceRequest.java

@@ -5,6 +5,7 @@ import com.jzg.commons.entity.quote.vo.*;
 import com.jzg.commons.constants.quote.enums.quote.PropertyCode;
 import com.jzg.commons.entity.quote.vo.QuoteVo;
 import com.jzg.quotation.commons.utils.DateUtil;
+import com.jzg.quotation.commons.utils.TimeProcessing;
 import com.jzg.quotation.zhongmei.api.constant.TransCode;
 import com.jzg.quotation.zhongmei.api.constant.enums.ContractEnum;
 import com.jzg.quotation.zhongmei.api.entity.BaseRequestHead;
@@ -21,6 +22,7 @@ import org.springframework.beans.BeanUtils;
 
 import java.io.Serial;
 import java.io.Serializable;
+import java.time.LocalDateTime;
 import java.util.ArrayList;
 import java.util.Calendar;
 import java.util.Date;
@@ -233,9 +235,9 @@ public class ZmCrawlerQuotedPriceRequest extends BaseRequest {
         public BusinessDataDTO(ZmCrawlerConfigureParameters parameters, QuoteVo quoteVo,
                                SaleInfoDTO saleInfoDTO, ZmCrawlerModelQueryResponse.FullCarDataDTO fullCarDataDTO,
                                ZmCrawlerActualValueResponse actualValueResponse, String userCode) {
-            this.imageSrcxszzm = "";
-            this.imageSrcxszName = "";
-            this.businessMain = new BusinessMainDTO(parameters, userCode);
+//            this.imageSrcxszzm = "";
+//            this.imageSrcxszName = "";
+            this.businessMain = new BusinessMainDTO(parameters, userCode,quoteVo.getCarInfoVo());
             this.insuredObject = new InsuredObjectDTO(fullCarDataDTO, quoteVo, actualValueResponse);
             this.antiMoney = new AntiMoneyDTO();
             this.saleInfo = saleInfoDTO;
@@ -281,15 +283,23 @@ public class ZmCrawlerQuotedPriceRequest extends BaseRequest {
             @JsonProperty("operatorCode")
             private String operatorCode;
 
-            public BusinessMainDTO(ZmCrawlerConfigureParameters parameters, String userCode) {
+            public BusinessMainDTO(ZmCrawlerConfigureParameters parameters, String userCode, CarInfoVo carInfoVo) {
                 this.appointAreaCode = "";
                 this.businessType = "T";
                 this.makeCom = parameters.getComCode();
-                this.operateDateTime = "";
-//                this.planCode = parameters.getPlanCode();
-                this.recordTime = "";
+                this.operateDateTime = TimeProcessing.nowDate() + " 00:00:00";
+                if(carInfoVo.getEnergyTypeCode().equals("0")){
+                    this.planCode = "1379";
+                }else{
+                    this.planCode= "1382";
+                }
+
+                // 获取前五分钟的时分秒
+                LocalDateTime now = LocalDateTime.now();                 // 当前时间
+                LocalDateTime fiveMinutesAgo = now.minusMinutes(5);     // 往前减 5 分钟
+                this.recordTime = fiveMinutesAgo.format(TimeProcessing.DATE_TIME_FORMATTER);
                 this.oneForOneFlag = "1";
-                this.calculateTime = "";
+                this.calculateTime = now.format(TimeProcessing.DATE_TIME_FORMATTER);
                 this.operatorCode = userCode;
             }
 
@@ -331,6 +341,14 @@ public class ZmCrawlerQuotedPriceRequest extends BaseRequest {
 
                 PlatformCarDTO platformCarDTO = new PlatformCarDTO();
                 platformCarDTO.setDeptCode(fullCarDataDTO.getPlatFormCar().getDeptCode());
+                if(platformCarDTO.deptCode.equals("0")){
+                    platformCarDTO.setDeptName("国产");
+                }else if(platformCarDTO.deptCode.equals("1")){
+                    platformCarDTO.setDeptName("合资");
+                }else{
+                    platformCarDTO.setDeptName("进口");
+                }
+                platformCarDTO.setCarName(fullCarDataDTO.getFullCarData().getLocalModelCode());
                 this.platformCar = platformCarDTO;
 
                 CarInfoVo carInfoVo = quoteVo.getCarInfoVo();
@@ -457,7 +475,7 @@ public class ZmCrawlerQuotedPriceRequest extends BaseRequest {
                 private String runArea;
 
                 @JsonProperty("runMiles")
-                private String runMiles;
+                private Integer runMiles;
 
                 @JsonProperty("taxInclued")
                 private Boolean taxInclued;
@@ -525,23 +543,27 @@ public class ZmCrawlerQuotedPriceRequest extends BaseRequest {
                     this.contrastFlag = false;
                     this.engine = carInfoVo.getEngineNo();
                     this.fleetNo = "";
-                    this.issueDate = carInfoVo.getIssueDate();
+                    this.issueDate = carInfoVo.getIssueDate() + " 00:00:00";
                     this.loanVehicleFlag = carInfoVo.isLoanStatus();
                     this.model = "";
                     this.carUseType = carInfoVo.getVehicleUseCode();
                     this.motorType = "";
-                    this.motorTypeCode = carInfoVo.getCarKindDetailIdCode();
+                    if(carInfoVo.getCarKindCode().equals("100")){
+                        this.motorTypeCode = "11";
+                    }else{
+                        this.motorTypeCode = "21";
+                    }
                     this.motorUsageTypeCode = carInfoVo.getCarNatureCode();
                     this.newCarSign = false;
                     this.noDamageYears = "";
                     this.noLicenseFlag = false;
                     this.plateNo = carInfoVo.getLicenseNo();
-                    this.plateType = carInfoVo.getLicenseKindCode();
-                    this.pmQueryNo = carInfoVo.getCarTypeCode();
-                    this.registerDate = carInfoVo.getRegisterDate();
-                    this.damagedFactorGrade = "";
-                    this.runArea = "";
-                    this.runMiles = "10000";
+                    this.plateType = "02";
+//                    this.pmQueryNo = carInfoVo.getCarTypeCode();
+                    this.registerDate = carInfoVo.getRegisterDate() + " 00:00:00";
+//                    this.damagedFactorGrade = "";
+//                    this.runArea = "";
+                    this.runMiles = 0;
                     this.taxInclued = false;
                     this.transferDate = carInfoVo.getTransferDate();
                     this.useYears = actualValueResponse.getUseYears();
@@ -550,13 +572,13 @@ public class ZmCrawlerQuotedPriceRequest extends BaseRequest {
                     this.lossInsuranceModel = "01";
                     this.nolocalCarFlag = "0";
                     this.plateColorCode = carInfoVo.getLicenseColorCode();
-                    this.secondhandCarFlag = "0";
-                    this.shortPeriodReason = "0";
+//                    this.secondhandCarFlag = "0";
+//                    this.shortPeriodReason = "0";
                     this.carQueryCheckCode = "";
-                    this.splitChgOwner = "0";
+//                    this.splitChgOwner = "0";
                     this.aheadRule = "1";
                     this.motorMainType = carInfoVo.getCarKindCode();
-                    this.motorSubType = carInfoVo.getCarKindDetailIdCode();
+                    this.motorSubType = "101";
                     this.isrelief = "0";
                     this.contrastprice = 0;
                 }
@@ -1449,7 +1471,7 @@ public class ZmCrawlerQuotedPriceRequest extends BaseRequest {
         this.loginCom = parameters.getComCode();
         this.userCode = userCode;
         this.comeCode = parameters.getComCode();
-        this.agentCode = parameters.getHandlerCode();
+        this.agentCode = saleInfoDTO.getAgentCode();
         this.businessData = new BusinessDataDTO(parameters, quoteVo, saleInfoDTO, fullCarDataDTO, actualValueResponse, userCode);
     }
 

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

@@ -32,6 +32,9 @@ public class ZmCrawlerAuthenticateResponse extends BaseResponse {
     @JsonProperty(value = "reCode")
     private String reCode;
 
+    @JsonProperty(value = "reMessage")
+    private String reMessage;
+
     @JsonProperty(value = "time")
     private String time;
 

+ 16 - 21
tenant/insurance/quotation-zhongmei/src/main/java/com/jzg/quotation/zhongmei/crawler/entity/ZmCrawlerConfigureParameters.java

@@ -15,16 +15,6 @@ public class ZmCrawlerConfigureParameters implements ConfigureParameters {
     @Serial
     private static final long serialVersionUID = 3087193981775694459L;
 
-    /**
-     * 用户的唯一标识符
-     */
-    private String token;
-
-    /**
-     * 信息来源,用来指定该报文的来源
-     */
-    private String source;
-
     /**
      * 省
      */
@@ -41,10 +31,15 @@ public class ZmCrawlerConfigureParameters implements ConfigureParameters {
     private String district;
 
     /**
-     * 统计   2023-08-29 lig 添加
+     * 统计代码
      */
     private String accountUser;
 
+    /**
+     * 统计姓名
+     */
+    private String accountUserName;
+
     /**
      * 业务归属机构编码
      */
@@ -70,18 +65,18 @@ public class ZmCrawlerConfigureParameters implements ConfigureParameters {
      */
     private String handlerName;
 
-    /**
-     * 商业险险种编码
-     */
-    private String riskCode;
+//    /**
+//     * 商业险险种编码
+//     */
+//    private String riskCode;
 
     /**
-     * 代理人代码
+     * 中介人名称
      */
-    private String agentCode;
+    private String agentName;
 
-    /**
-     *  协议号
-     */
-    private String agreementNo;
+//    /**
+//     *  业务员名称
+//     */
+//    private String handlerName;
 }

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

@@ -1,8 +1,10 @@
 package com.jzg.quotation.zhongmei.crawler.service.Impl;
 
 import cn.hutool.crypto.digest.MD5;
+import com.alibaba.fastjson.JSON;
 import com.fasterxml.jackson.core.JsonProcessingException;
 import com.jzg.commons.entity.quote.vo.AttributionInformationVo;
+import com.jzg.commons.entity.quote.vo.CarInfoVo;
 import com.jzg.commons.entity.quote.vo.QuoteVo;
 import com.jzg.commons.entity.quote.vo.aggregated.*;
 import com.jzg.commons.util.StringUtils;
@@ -25,6 +27,7 @@ import com.jzg.quotation.zhongmei.crawler.entity.po.ZmCrawlerOrder;
 import com.jzg.quotation.zhongmei.crawler.service.ZhongMeiCrawlerRequest;
 import com.jzg.quotation.zhongmei.crawler.service.ZmCrawlerOrderService;
 import lombok.RequiredArgsConstructor;
+import reactor.core.publisher.Mono;
 
 import java.util.*;
 import java.util.stream.Collectors;
@@ -34,7 +37,7 @@ import java.util.stream.Collectors;
  * @author: shenwd
  * @date: 2025/3/20 14:36
  **/
-@QuoteCrawlerService(value = InsuranceCode.INSURANCE_ZSIC)
+@QuoteCrawlerService(value = InsuranceCode.INSURANCE_ZMBX)
 @RequiredArgsConstructor
 public class ZhongMeiCrawlerRequestImpl implements ZhongMeiCrawlerRequest {
 
@@ -66,18 +69,17 @@ public class ZhongMeiCrawlerRequestImpl implements ZhongMeiCrawlerRequest {
         String authorization = zmCrawlerRequestComponent.getAuthorization(attributionInformationVo.getUsername());
         //获取配置信息
         ZmCrawlerConfigureParameters zmCrawlerConfigureParameters = ConfigureParametersConversion.conversionEntity(ZmCrawlerConfigureParameters.class, attributionInformationVo.getConfigInfo());
-        BaseRequestHead head = new BaseRequestHead(authorization, zmCrawlerConfigureParameters.getSource());
+        BaseRequestHead head = new BaseRequestHead(authorization, "2");
         //获取归属信息
         SaleInfoDTO saleInfoDTO = zmCrawlerRequestComponent.getSaleInfoDTO(zmCrawlerConfigureParameters, head);
         //车型查询
-        ZmCrawlerModelQueryRequest modelQueryRequest = new ZmCrawlerModelQueryRequest();
-        modelQueryRequest.setHead(head);
+        CarInfoVo carInfoVo = quoteVo.getCarInfoVo();
+        ZmCrawlerModelQueryRequest modelQueryRequest = new ZmCrawlerModelQueryRequest(saleInfoDTO,head,carInfoVo);
         List<ZmCrawlerModelQueryResponse.FullCarDataDTO> fullCarDataDTOS = zmCrawlerRequestComponent.modelQuery(modelQueryRequest);
         //过滤车型
         ZmCrawlerModelQueryResponse.FullCarDataDTO fullCarDataDTO = CarModelsFilterUtils.to(fullCarDataDTOS, quoteVo.getCarInfoVo());
         //获取实际价值
-        ZmCrawlerActualValueRequest actualValueRequest = new ZmCrawlerActualValueRequest(quoteVo.getCarInfoVo(), zmCrawlerConfigureParameters);
-        actualValueRequest.setHead(head);
+        ZmCrawlerActualValueRequest actualValueRequest = new ZmCrawlerActualValueRequest(quoteVo.getCarInfoVo(),head);
         ZmCrawlerActualValueResponse actualValueResponse = zmCrawlerRequestComponent.getActualValue(actualValueRequest);
 
         //报价
@@ -108,7 +110,7 @@ public class ZhongMeiCrawlerRequestImpl implements ZhongMeiCrawlerRequest {
         String authorization = zmCrawlerRequestComponent.getAuthorization(attributionInformationVo.getUsername());
         //获取配置信息
         ZmCrawlerConfigureParameters zmCrawlerConfigureParameters = ConfigureParametersConversion.conversionEntity(ZmCrawlerConfigureParameters.class, attributionInformationVo.getConfigInfo());
-        BaseRequestHead head = new BaseRequestHead(authorization, zmCrawlerConfigureParameters.getSource());
+        BaseRequestHead head = new BaseRequestHead(authorization, "2");
 
         ZmCrawlerSubmitRequest submitRequest = new ZmCrawlerSubmitRequest();
         submitRequest.setHead(head);
@@ -130,7 +132,7 @@ public class ZhongMeiCrawlerRequestImpl implements ZhongMeiCrawlerRequest {
         ZmCrawlerOrder crawlerOrder = zmCrawlerOrderService.findByOrdersNo(paymentLinkVo.getOrder().getOrdersNo());
         //获取配置信息
         ZmCrawlerConfigureParameters zmCrawlerConfigureParameters = ConfigureParametersConversion.conversionEntity(ZmCrawlerConfigureParameters.class, attributionInformationVo.getConfigInfo());
-        BaseRequestHead head = new BaseRequestHead(authorization, zmCrawlerConfigureParameters.getSource());
+        BaseRequestHead head = new BaseRequestHead(authorization, "2");
 
         //调用检查支付状态接口
         ZmCrawlerCheckPaymentRequest checkPaymentRequest = new ZmCrawlerCheckPaymentRequest("businessNo", head);
@@ -230,7 +232,7 @@ public class ZhongMeiCrawlerRequestImpl implements ZhongMeiCrawlerRequest {
         String authorization = zmCrawlerRequestComponent.getAuthorization(attributionInformationVo.getUsername());
         //获取配置信息
         ZmCrawlerConfigureParameters zmCrawlerConfigureParameters = ConfigureParametersConversion.conversionEntity(ZmCrawlerConfigureParameters.class, attributionInformationVo.getConfigInfo());
-        BaseRequestHead head = new BaseRequestHead(authorization, zmCrawlerConfigureParameters.getSource());
+        BaseRequestHead head = new BaseRequestHead(authorization, "2");
 
         ZmCrawlerPolicyPrintRequest policyPrintRequest = new ZmCrawlerPolicyPrintRequest("保单号", "险种编码", "车牌号", "");
         policyPrintRequest.setHead(head);
@@ -251,7 +253,7 @@ public class ZhongMeiCrawlerRequestImpl implements ZhongMeiCrawlerRequest {
         String authorization = zmCrawlerRequestComponent.getAuthorization(attributionInformationVo.getUsername());
         //获取配置信息
         ZmCrawlerConfigureParameters parameters = ConfigureParametersConversion.conversionEntity(ZmCrawlerConfigureParameters.class, attributionInformationVo.getConfigInfo());
-        BaseRequestHead requestHead = new BaseRequestHead(authorization, parameters.getSource());
+        BaseRequestHead requestHead = new BaseRequestHead(authorization, "2");
 
         ZmCrawlerOrderStatusRequest orderStatusRequest = new ZmCrawlerOrderStatusRequest();
         orderStatusRequest.setHead(requestHead);

Some files were not shown because too many files changed in this diff