Преглед изворни кода

Merge remote-tracking branch 'origin/master'

lixiaolong пре 4 месеци
родитељ
комит
508a495e02
27 измењених фајлова са 2953 додато и 2205 уклоњено
  1. 1 1
      partner/src/main/java/com/jzg/controller/PartnerUserController.java
  2. 1 5
      partner/src/main/java/com/jzg/service/Impl/PartnerUserServiceImpl.java
  3. 2 2
      partner/src/main/java/com/jzg/utils/ExpiredCommissionUtils.java
  4. 1 1
      partner/src/main/resources/mapper/PartnerUserMapper.xml
  5. 2 0
      tenant/insurance/quotation-commons/src/main/java/com/jzg/quotation/commons/component/RequestComponent.java
  6. 1 0
      tenant/insurance/quotation-guoren/src/main/java/com/jzg/quotation/guoren/api/service/Impl/GuoRenApiRequestImpl.java
  7. 5 5
      tenant/insurance/quotation-guoren/src/main/java/com/jzg/quotation/guoren/crawler/build/GuoRenCrawlerQuoteResultsVoBuild.java
  8. 170 45
      tenant/insurance/quotation-guoren/src/main/java/com/jzg/quotation/guoren/crawler/component/GuoRenCrawlerRequestComponent.java
  9. 2 2
      tenant/insurance/quotation-guoren/src/main/java/com/jzg/quotation/guoren/crawler/entity/GuoRenCrawlerConfigureParameters.java
  10. 436 0
      tenant/insurance/quotation-guoren/src/main/java/com/jzg/quotation/guoren/crawler/entity/request/GuoRenBcDTO.java
  11. 654 0
      tenant/insurance/quotation-guoren/src/main/java/com/jzg/quotation/guoren/crawler/entity/request/GuoRenCiDTO.java
  12. 51 1977
      tenant/insurance/quotation-guoren/src/main/java/com/jzg/quotation/guoren/crawler/entity/request/GuoRenCrawlerCalculationPremiumRequest.java
  13. 88 15
      tenant/insurance/quotation-guoren/src/main/java/com/jzg/quotation/guoren/crawler/entity/request/GuoRenCrawlerGetCarPriceRequest.java
  14. 1 1
      tenant/insurance/quotation-guoren/src/main/java/com/jzg/quotation/guoren/crawler/entity/request/GuoRenCrawlerProposalNoSaveRequest.java
  15. 3 1
      tenant/insurance/quotation-guoren/src/main/java/com/jzg/quotation/guoren/crawler/entity/request/GuoRenCrawlerSubmitUnderwriteRequest.java
  16. 122 0
      tenant/insurance/quotation-guoren/src/main/java/com/jzg/quotation/guoren/crawler/entity/request/GuoRenOcrOrderDTO.java
  17. 479 0
      tenant/insurance/quotation-guoren/src/main/java/com/jzg/quotation/guoren/crawler/entity/request/GuoRenPrpTinsuredDTO.java
  18. 632 0
      tenant/insurance/quotation-guoren/src/main/java/com/jzg/quotation/guoren/crawler/entity/request/GuoRenPrpTitemCarDTO.java
  19. 1 1
      tenant/insurance/quotation-guoren/src/main/java/com/jzg/quotation/guoren/crawler/entity/response/GuoRenCrawlerBaseResponse.java
  20. 5 2
      tenant/insurance/quotation-guoren/src/main/java/com/jzg/quotation/guoren/crawler/entity/response/GuoRenCrawlerProposalNoSaveData.java
  21. 136 50
      tenant/insurance/quotation-guoren/src/main/java/com/jzg/quotation/guoren/crawler/entity/response/GuoRenCrawlerQueryByVinNoData.java
  22. 1 1
      tenant/insurance/quotation-guoren/src/main/java/com/jzg/quotation/guoren/crawler/entity/response/GuoRenCrawlerQueryCarModelData.java
  23. 4 2
      tenant/insurance/quotation-guoren/src/main/java/com/jzg/quotation/guoren/crawler/service/impl/GuoRenCrawlerOrderServiceImpl.java
  24. 25 18
      tenant/insurance/quotation-guoren/src/main/java/com/jzg/quotation/guoren/crawler/service/impl/GuoRenCrawlerQuoteProcessServiceImpl.java
  25. 51 34
      tenant/insurance/quotation-guoren/src/main/java/com/jzg/quotation/guoren/crawler/service/impl/GuoRenCrawlerRequestImpl.java
  26. 41 0
      tenant/insurance/quotation-guoren/src/main/resources/certs/guoren.crt
  27. 38 42
      tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/controller/UnifyOrderManager.java

+ 1 - 1
partner/src/main/java/com/jzg/controller/PartnerUserController.java

@@ -241,7 +241,7 @@ public class PartnerUserController extends BaseController {
      */
     @GetMapping("checkCommissionExpireTime")
     public void checkCommissionExpireTime() {
-        SpringUtil.getBean(TimedTaskUtils.class).updateOrderDateNoon();
+        SpringUtil.getBean(TimedTaskUtils.class).checkCommissionExpireTime();
     }
 
 

+ 1 - 5
partner/src/main/java/com/jzg/service/Impl/PartnerUserServiceImpl.java

@@ -1299,11 +1299,7 @@ public class PartnerUserServiceImpl extends ServiceImpl<PartnerUserMapper, Partn
 //            appUserInfoVo.setInsUploadFiles(new InsUploadFiles());
         }
         appUserInfoVo.setGrade(null == min ? 4 : min);
-        SpringUtil.getBean(ExpiredCommissionUtils.class).initializeExpirationTime(userId);
-        SysUserJzgInfo sysUserJzgInfo = getSysUserJzgInfo(userId);
-        if (!Objects.isNull(sysUserJzgInfo)) {
-            appUserInfoVo.setUserInfoId(sysUserJzgInfo.getId());
-        }
+        SpringUtil.getBean(ExpiredCommissionUtils.class).initializeExpirationTime(userId,appUserInfoVo.getUserInfoId());
         return appUserInfoVo;
     }
 

+ 2 - 2
partner/src/main/java/com/jzg/utils/ExpiredCommissionUtils.java

@@ -93,11 +93,11 @@ public class ExpiredCommissionUtils {
      * 登录初始化过期时间
      */
     @Transactional(rollbackFor = Exception.class)
-    public void initializeExpirationTime(String userId) {
+    public void initializeExpirationTime(String userId,String infoId) {
         List<PartnerUser> partnerUsers = partnerUserMapper.selectListByUserId(userId);
         for (PartnerUser partnerUser : partnerUsers) {
             if (null == partnerUser.getUpgradeCycleStartTime()){
-                partnerUserMapper.updateUpgradeStartTime(userId, partnerUser.getGrade());
+                partnerUserMapper.updateUpgradeStartTime(infoId, partnerUser.getGrade());
             }
         }
     }

+ 1 - 1
partner/src/main/resources/mapper/PartnerUserMapper.xml

@@ -1164,7 +1164,7 @@ SELECT
 
     <select id="queryAppUserInfoVoByUserId" resultType="com.jzg.entity.vo.AppUserInfoVo">
         SELECT
-            u.id user_id,u.mobile
+            u.id user_id,u.mobile,info.id as userInfoId
         FROM
             sys_user u
                 LEFT JOIN sys_user_jzg_info info ON info.user_id = u.id

+ 2 - 0
tenant/insurance/quotation-commons/src/main/java/com/jzg/quotation/commons/component/RequestComponent.java

@@ -649,6 +649,7 @@ public class RequestComponent {
      */
     public <Response> ResponseEntity<Response> basePost(String url, Object body, ParameterizedTypeReference<Response> bodyTypeReference, HttpHeaders headers) {
         String requestBody = JSON.toJSONString(body);
+        log.info("URL的值:{},body的值:{}", url, requestBody);
         return webClient.post()
                 .uri(url)
                 .body(BodyInserters.fromValue(requestBody))
@@ -716,6 +717,7 @@ public class RequestComponent {
      */
     public <Response> ResponseEntity<Response> formData(String url, MultiValueMap<String, Object> parts, Class<Response> responseClass, HttpHeaders headers) {
         WebClient webClient = selectWebClientAs(url);
+        log.info("URL的值:{},body的值:{}", url, BodyInserters.fromMultipartData(parts));
         return webClient.post()
                 .uri(url)
                 .headers(RequestComponent.setHeaders(headers))

+ 1 - 0
tenant/insurance/quotation-guoren/src/main/java/com/jzg/quotation/guoren/api/service/Impl/GuoRenApiRequestImpl.java

@@ -728,6 +728,7 @@ public class GuoRenApiRequestImpl implements GuoRenApiRequest {
                     FilePart filePart = new FilePart("file", tempFile);
                     Part[] parts = {
                             filePart,
+                            new StringPart("businessType", "T"),
                             new StringPart("businessNo", businessNo),
                             new StringPart("operatorCode", operatorCode),
                             new StringPart("comCode", comCode),

+ 5 - 5
tenant/insurance/quotation-guoren/src/main/java/com/jzg/quotation/guoren/crawler/build/GuoRenCrawlerQuoteResultsVoBuild.java

@@ -44,8 +44,11 @@ public final class GuoRenCrawlerQuoteResultsVoBuild {
         quoteResultsVo.getCosts().setCiPremium(ciPremium);
         quoteResultsVo.getCosts().setBiPremium(biPremium); // 注意这里CI和BI保费相同
         quoteResultsVo.getCosts().setVvTax(vvTax);
-        List<KindInfoVo> kindInfoVo = buildKindInfoVo(quoteVo.getKindInfoVo(), calculationPremium.getBi().getPrptitemkindList());
-        quoteResultsVo.setKindInfoVo(kindInfoVo);
+        quoteResultsVo.setQuoteStatusEnum(InsOrderStatusEnum.WAIT_AUDIT);
+        if (calculationPremium.getBi().getPrptitemkindList() != null) {
+            List<KindInfoVo> kindInfoVo = buildKindInfoVo(quoteVo.getKindInfoVo(), calculationPremium.getBi().getPrptitemkindList());
+            quoteResultsVo.setKindInfoVo(kindInfoVo);
+        }
 
         return quoteResultsVo;
     }
@@ -78,7 +81,4 @@ public final class GuoRenCrawlerQuoteResultsVoBuild {
     }
 
 
-
-
-
 }

+ 170 - 45
tenant/insurance/quotation-guoren/src/main/java/com/jzg/quotation/guoren/crawler/component/GuoRenCrawlerRequestComponent.java

@@ -1,24 +1,36 @@
 package com.jzg.quotation.guoren.crawler.component;
 
-import com.alibaba.fastjson.TypeReference;
+import cn.hutool.http.HttpRequest;
+import cn.hutool.http.HttpResponse;
+import com.alibaba.fastjson.JSONObject;
 import com.alibaba.fastjson2.JSON;
 import com.jzg.commons.constants.quote.enums.base.InsuranceEnum;
+import com.jzg.commons.entity.po.SysUploadFiles;
 import com.jzg.commons.entity.quote.vo.CarInfoVo;
-import com.jzg.commons.entity.quote.vo.CustomerInfoVo;
 import com.jzg.commons.entity.quote.vo.QuoteVo;
-import com.jzg.commons.entity.quote.vo.aggregated.InsuranceUploadImageVo;
+import com.jzg.commons.entity.quote.vo.aggregated.QuoteResultsVo;
 import com.jzg.commons.entity.quote.vo.image.InsuranceImageVo;
 import com.jzg.commons.exception.SystemException;
+import com.jzg.commons.util.MinioUtils;
+import com.jzg.commons.util.StringUtils;
+import com.jzg.quotation.commons.client.PlatformClient;
 import com.jzg.quotation.commons.component.RequestComponent;
 import com.jzg.quotation.commons.filter.CarModelsFilterUtils;
+import com.jzg.quotation.commons.utils.HttpUtil;
 import com.jzg.quotation.commons.utils.InsuranceLog;
-import com.jzg.quotation.commons.utils.TimeProcessing;
+import com.jzg.quotation.guoren.api.entity.Response.PremiumResponse;
+import com.jzg.quotation.guoren.crawler.build.GuoRenCrawlerQuoteResultsVoBuild;
 import com.jzg.quotation.guoren.crawler.constant.enums.RequestUrl;
 import com.jzg.quotation.guoren.crawler.entity.dto.PrpTMainDTO;
 import com.jzg.quotation.guoren.crawler.entity.request.*;
 import com.jzg.quotation.guoren.crawler.entity.response.*;
 import com.jzg.quotation.guoren.crawler.properties.GuoRenCrawlerProperties;
 import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.compress.utils.IOUtils;
+import org.apache.commons.httpclient.methods.multipart.FilePart;
+import org.apache.commons.httpclient.methods.multipart.Part;
+import org.apache.commons.httpclient.methods.multipart.StringPart;
 import org.springframework.core.ParameterizedTypeReference;
 import org.springframework.core.io.ByteArrayResource;
 import org.springframework.http.HttpHeaders;
@@ -28,10 +40,14 @@ import org.springframework.util.CollectionUtils;
 import org.springframework.util.LinkedMultiValueMap;
 import org.springframework.util.MultiValueMap;
 
-import java.util.LinkedHashMap;
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.InputStream;
 import java.util.List;
 import java.util.Optional;
 
+import static org.reflections.Reflections.log;
+
 
 /**
  * @author wks
@@ -39,6 +55,7 @@ import java.util.Optional;
  * @description: 【国任财险】 爬虫请求组件
  * @date 2025/11/11 15:10
  */
+@Slf4j
 @Component
 @RequiredArgsConstructor
 public class GuoRenCrawlerRequestComponent {
@@ -47,6 +64,10 @@ public class GuoRenCrawlerRequestComponent {
 
     private final GuoRenCrawlerProperties guoRenCrawlerProperties;
 
+    private final PlatformClient platformClient;
+
+    private final MinioUtils minioUtils;
+
     /**
      * 请求入口
      *
@@ -61,10 +82,9 @@ public class GuoRenCrawlerRequestComponent {
         String url = guoRenCrawlerProperties.getBaseUrl() + requestUrl.getUri();
         Response response = requestComponent.post(url, body, requestUrl.getRequestDescription(), parameterizedTypeReference, httpHeaders);
 
-        String bodyJson = JSON.toJSONString(response);
+        String bodyJson = JSON.toJSONString(body);
         String responseJson = JSON.toJSONString(response);
-        InsuranceLog.infoLog(InsuranceEnum.XDCX.getPinyin(), "\n\t---------> URl: {} \n\t---------> 请求参数:{}",
-                url,bodyJson);
+        InsuranceLog.infoLog(InsuranceEnum.XDCX.getPinyin(), "\n\t---------> URl: {} \n\t---------> 请求参数:{}", url, bodyJson);
         InsuranceLog.infoLog(InsuranceEnum.XDCX.getPinyin(), "\n\t---------> 响应参数:{}", responseJson);
         return response;
     }
@@ -73,6 +93,7 @@ public class GuoRenCrawlerRequestComponent {
 //                throw new SystemException(((GuoRenCrawlerBaseResponse<?>) response).getResultMsg());
 //            }
 //        }
+
     /**
      * 请求入口
      *
@@ -85,7 +106,6 @@ public class GuoRenCrawlerRequestComponent {
     public <Response> Response request(RequestUrl requestUrl, Object body, HttpHeaders httpHeaders) {
         GuoRenCrawlerBaseResponse<Response> response = request(requestUrl, body, new ParameterizedTypeReference<>() {
         }, httpHeaders);
-
         return response.getData();
     }
 
@@ -148,10 +168,7 @@ public class GuoRenCrawlerRequestComponent {
         if (CollectionUtils.isEmpty(getLoginComInfoResponseList)) {
             throw new SystemException("归属机构查询失败, 列表为空");
         }
-        return getLoginComInfoResponseList.stream()
-                .filter(x -> comCode.equals(x.getComCode()))
-                .findFirst()
-                .orElseThrow(() -> new SystemException("未找到对应机构代码的归属机构,机构代码: " + comCode));
+        return getLoginComInfoResponseList.stream().filter(x -> comCode.equals(x.getComCode())).findFirst().orElseThrow(() -> new SystemException("未找到对应机构代码的归属机构,机构代码: " + comCode));
     }
 
 
@@ -182,11 +199,7 @@ public class GuoRenCrawlerRequestComponent {
         if (CollectionUtils.isEmpty(getAgentAgreementResponse.getPrpDagreeDetailDtoList())) {
             throw new SystemException("归属机构查询失败, 列表为空");
         }
-        return getAgentAgreementResponse.getPrpDagreeDetailDtoList()
-                .stream()
-                .filter(x -> agreementNo.equals(x.getAgreementNo()))
-                .findFirst()
-                .orElseThrow(() -> new SystemException("未找到对应的合同/协议号(原合作网点),合同核协议号代码: " + comCode));
+        return getAgentAgreementResponse.getPrpDagreeDetailDtoList().stream().filter(x -> agreementNo.equals(x.getAgreementNo())).findFirst().orElseThrow(() -> new SystemException("未找到对应的合同/协议号(原合作网点),合同核协议号代码: " + comCode));
     }
 
     /**
@@ -200,6 +213,9 @@ public class GuoRenCrawlerRequestComponent {
         GuoRenCrawlerWriteBackAddressRequest writeBackAddress = new GuoRenCrawlerWriteBackAddressRequest(address);
         GuoRenCrawlerBaseResponse<GuoRenCrawlerWriteBackAddressData> request = request(RequestUrl.WRITE_BACK_ADDRESS, writeBackAddress, new ParameterizedTypeReference<GuoRenCrawlerBaseResponse<GuoRenCrawlerWriteBackAddressData>>() {
         }, httpHeaders);
+        if (request.getResultCode() == 1) {
+            throw new SystemException(request.getResultMsg());
+        }
         return request.getData();
     }
 
@@ -214,7 +230,9 @@ public class GuoRenCrawlerRequestComponent {
      */
     public GuoRenCrawlerQueryByVinNoData queryByVinNo(CarInfoVo carInfoVo, String comCode, String operatorCode, HttpHeaders httpHeaders) {
         GuoRenCrawlerQueryByVinNoRequest queryByVinNoRequest = new GuoRenCrawlerQueryByVinNoRequest(carInfoVo, comCode, operatorCode);
-        List<GuoRenCrawlerQueryByVinNoData> queryByVinNoDataList = request(RequestUrl.QUERY_BY_VIN_NO, queryByVinNoRequest, httpHeaders);
+        GuoRenCrawlerBaseResponse<List<GuoRenCrawlerQueryByVinNoData>> response = request(RequestUrl.QUERY_BY_VIN_NO, queryByVinNoRequest, new ParameterizedTypeReference<>() {
+        }, httpHeaders);
+        List<GuoRenCrawlerQueryByVinNoData> queryByVinNoDataList = response.getData();
         return CarModelsFilterUtils.to(queryByVinNoDataList, carInfoVo);
     }
 
@@ -226,14 +244,11 @@ public class GuoRenCrawlerRequestComponent {
      * @param httpHeaders  请求头
      * @return 车型
      */
-    public GuoRenCrawlerQueryCarModelData.ContentDTO queryCarModel(CarInfoVo carInfoVo, String comCode, String operatorCode, HttpHeaders httpHeaders) {
+    public GuoRenCrawlerQueryByVinNoData queryCarModel(CarInfoVo carInfoVo, String comCode, String operatorCode, HttpHeaders httpHeaders) {
         GuoRenCrawlerQueryCarModelRequest queryCarModelRequest = new GuoRenCrawlerQueryCarModelRequest(carInfoVo.getBrandName(), comCode, operatorCode);
-        GuoRenCrawlerBaseResponse<GuoRenCrawlerQueryCarModelData> request = request(RequestUrl.QUERY_CAR_MODEL, queryCarModelRequest, new ParameterizedTypeReference<>() {
+        GuoRenCrawlerBaseResponse<GuoRenCrawlerQueryCarModelData> response = request(RequestUrl.QUERY_CAR_MODEL, queryCarModelRequest, new ParameterizedTypeReference<>() {
         }, httpHeaders);
-        List<GuoRenCrawlerQueryCarModelData.ContentDTO> contentDTOS = Optional.ofNullable(request)
-                .map(GuoRenCrawlerBaseResponse::getData)
-                .map(GuoRenCrawlerQueryCarModelData::getContent)
-                .orElseThrow(() -> new SystemException("车型查询失败"));
+        List<GuoRenCrawlerQueryByVinNoData> contentDTOS = Optional.ofNullable(response).map(GuoRenCrawlerBaseResponse::getData).map(GuoRenCrawlerQueryCarModelData::getContent).orElseThrow(() -> new SystemException("车型查询失败"));
         return CarModelsFilterUtils.to(contentDTOS, carInfoVo);
     }
 
@@ -244,13 +259,11 @@ public class GuoRenCrawlerRequestComponent {
      * @param httpHeaders       请求头
      * @return 车价查询响应
      */
-    public GuoRenCrawlerCalculationPremiumRequest.BcDTO.PrpTitemCarDTO getCarPriceData(GuoRenCrawlerQueryCarModelData.ContentDTO queryCarModelData, PrpTMainDTO prpTmainDTO,
-                                                                                       QuoteVo quoteVo,
-                                                                                       GuoRenCrawlerWriteBackAddressData ownersAddr, String relationShip, HttpHeaders httpHeaders) {
+    public GuoRenPrpTitemCarDTO getCarPriceData(GuoRenCrawlerQueryByVinNoData queryCarModelData, PrpTMainDTO prpTmainDTO, QuoteVo quoteVo, GuoRenCrawlerWriteBackAddressData ownersAddr, String relationShip, HttpHeaders httpHeaders) {
         GuoRenCrawlerGetCarPriceRequest getCarPriceRequest = new GuoRenCrawlerGetCarPriceRequest(queryCarModelData, prpTmainDTO, quoteVo, ownersAddr, relationShip);
         GuoRenCrawlerBaseResponse<List<GuoRenCrawlerGetCarPriceData>> request = request(RequestUrl.GET_CAR_PRICE, getCarPriceRequest, new ParameterizedTypeReference<>() {
         }, httpHeaders);
-        return new GuoRenCrawlerCalculationPremiumRequest.BcDTO.PrpTitemCarDTO(getCarPriceRequest, request.getData().get(0));
+        return new GuoRenPrpTitemCarDTO(getCarPriceRequest, request.getData().get(0));
     }
 
     /**
@@ -278,6 +291,7 @@ public class GuoRenCrawlerRequestComponent {
         GuoRenCrawlerProposalNoSaveRequest guoRenCrawlerProposalNoSaveRequest = new GuoRenCrawlerProposalNoSaveRequest(calculationPremium, calculationPremiumRequest);
         GuoRenCrawlerBaseResponse<GuoRenCrawlerProposalNoSaveData> request = request(RequestUrl.PROPOSAL_NO_SAVE, guoRenCrawlerProposalNoSaveRequest, new ParameterizedTypeReference<>() {
         }, httpHeaders);
+
         return request.getData();
     }
 
@@ -288,23 +302,86 @@ public class GuoRenCrawlerRequestComponent {
      * @param httpHeaders 请求头
      */
     public void uploadImage(List<InsuranceImageVo> imageVoList, String businessNo, String operatorCode, String comCode, HttpHeaders httpHeaders) {
-        MultiValueMap<String, Object> multiValueMap = new LinkedMultiValueMap<>();
-        multiValueMap.add("businessType", "T");
-        multiValueMap.add("businessNo", businessNo);
-        multiValueMap.add("operatorCode", operatorCode);
-        multiValueMap.add("comCode", comCode);
+
         String url = guoRenCrawlerProperties.getBaseUrl() + RequestUrl.UPLOAD.getUri();
         for (InsuranceImageVo insuranceImageVo : imageVoList) {
             for (InsuranceImageVo.ImageDTO imageDTO : insuranceImageVo.getImageBase64List()) {
-                multiValueMap.add("fileGroup", insuranceImageVo.getInsuranceImageCode());
-                ByteArrayResource fileResource = new ByteArrayResource(imageDTO.getImageByte()) {
-                    @Override
-                    public String getFilename() {
-                        return imageDTO.getImageName(); // 必须重写此方法
+                try {
+                    // 根据imageId查询文件信息
+                    SysUploadFiles uploadFile = platformClient.getUploadFile(imageDTO.getImageId());
+                    if (uploadFile == null) {
+                        log.error("国任上传影像失败,未找到文件信息,imageId:{}", imageDTO.getImageId());
+                        continue;
+                    }
+
+                    // 获取文件名
+                    String fileName = uploadFile.getFileName();
+
+                    // 获取文件流
+                    String imgUrl = minioUtils.getPresignedObjectUrl(uploadFile.getBucketName(), fileName);
+                    log.info("国任影像上传,获取文件预签名URL,imgUrl:{}", imgUrl);
+                    InputStream inputStream = minioUtils.getObject(uploadFile.getBucketName(), fileName);
+                    log.info("国任影像上传,获取获取文件流,inputStream:{}", inputStream);
+                    if (inputStream == null) {
+                        log.error("国任上传影像失败,获取文件预签名URL失败,imageId:{}", imageDTO.getImageId());
+                        continue;
                     }
-                };
-                multiValueMap.add("file", fileResource);
-                requestComponent.formData(url, multiValueMap, GuoRenCrawlerBaseResponse.class, httpHeaders);
+
+                    // 下载文件内容为byte[]
+                    byte[] imageBytes = IOUtils.toByteArray(inputStream);
+                    if (imageBytes == null || imageBytes.length == 0) {
+                        log.error("国任上传影像失败,文件内容为空,imageId:{}", imageDTO.getImageId());
+                        continue;
+                    }
+
+                    log.info("国任下载影像成功,imageId:{},fileName:{}", imageDTO.getImageId(), fileName);
+
+                    // 生成临时文件
+                    String fileSuffix = getFileSuffix(fileName);
+                    File tempFile = File.createTempFile("upload_temp_", fileSuffix);
+                    tempFile.deleteOnExit();
+
+                    // 将字节数组写入临时文件
+                    try (FileOutputStream fos = new FileOutputStream(tempFile)) {
+                        fos.write(imageBytes);
+                        fos.flush();
+                    }
+
+                    // 构造请求参数
+                    FilePart filePart = new FilePart("file", tempFile);
+
+                    log.info("国任下载影像成功,filePart:{},imageId:{}", filePart, imageDTO.getImageId());
+
+                    // 根据影像类型确定fileGroup
+                    String fileGroup = getFileGroup(insuranceImageVo);
+
+                    Part[] parts = {
+                            filePart,
+                            new StringPart("businessType", "T"),
+                            new StringPart("businessNo", businessNo),
+                            new StringPart("operatorCode", operatorCode),
+                            new StringPart("comCode", comCode),
+                            new StringPart("fileGroup", fileGroup)
+                    };
+
+                    // 发送请求
+                    String result = HttpUtil.sendPostFromFile(parts, url);
+
+                    JSONObject jsonObject = com.alibaba.fastjson.JSON.parseObject(result);
+                    Integer resultCode = StringUtils.toInt(jsonObject.get("resultCode"));
+
+                    if (resultCode == null || resultCode != 0) {
+                        String resultMsg = jsonObject.getString("resultMsg");
+                        log.error("国任上传影像失败,resultCode:{},resultMsg:{},imageId:{}", resultCode, resultMsg, imageDTO.getImageId());
+                        throw new SystemException("国任,影像上传失败:" + resultMsg);
+                    }
+
+                    log.info("国任上传影像成功,imageId:{},businessNo:{}", imageDTO.getImageId(), businessNo);
+
+                } catch (Exception e) {
+                    log.error("国任上传影像异常:{},imageId:{}", e.getMessage(), imageDTO.getImageId(), e);
+                    throw new SystemException("国任,影像上传失败,类型:" + insuranceImageVo.getImageType());
+                }
             }
         }
     }
@@ -320,8 +397,10 @@ public class GuoRenCrawlerRequestComponent {
      */
     public GuoRenCrawlerSubmitUnderwriteData submitUnderwrite(String proposalNoCI, String proposalNoBI, String userCode, HttpHeaders httpHeaders) {
         GuoRenCrawlerSubmitUnderwriteRequest guoRenCrawlerSubmitUnderwriteRequest = new GuoRenCrawlerSubmitUnderwriteRequest(proposalNoCI, proposalNoBI, userCode);
-        List<GuoRenCrawlerSubmitUnderwriteData> submitUnderwriteDataList = request(RequestUrl.SUBMIT_UNDERWRITE, guoRenCrawlerSubmitUnderwriteRequest, httpHeaders);
-        return submitUnderwriteDataList.get(0);
+        GuoRenCrawlerBaseResponse<List<GuoRenCrawlerSubmitUnderwriteData>> response = request(RequestUrl.SUBMIT_UNDERWRITE, guoRenCrawlerSubmitUnderwriteRequest,
+                new ParameterizedTypeReference<>() {
+                }, httpHeaders);
+        return response.getData().get(0);
     }
 
     /**
@@ -333,7 +412,20 @@ public class GuoRenCrawlerRequestComponent {
      */
     public GuoRenCrawlerCheckNoticeData checkNoticeData(String proposalNo, HttpHeaders httpHeaders) {
         GuoRenCrawlerCheckNoticeRequest checkNotice = new GuoRenCrawlerCheckNoticeRequest(proposalNo);
-        return request(RequestUrl.CHECK_NOTICE, checkNotice, httpHeaders);
+        GuoRenCrawlerBaseResponse<GuoRenCrawlerCheckNoticeData> request = request(RequestUrl.CHECK_NOTICE, checkNotice, new ParameterizedTypeReference<>() {
+        }, httpHeaders);
+//        String url = guoRenCrawlerProperties.getBaseUrl() + RequestUrl.CHECK_NOTICE.getUri();
+//        String bodyStr = JSON.toJSONString(checkNotice);
+//        InsuranceLog.infoLog(InsuranceEnum.XDCX.getName(), "\n\t---------> URl: {} \n\t---------> 请求参数:{}", url, bodyStr);
+//
+//        HttpRequest request = HttpRequest.post(url)
+//                .header("Content-Type", "application/json")
+//                .body(bodyStr);
+//        HttpResponse response = request.execute();
+//        String respStr = response.body();
+//        InsuranceLog.infoLog(InsuranceEnum.XDCX.getName(), "\n\t---------> 响应参数:{}", respStr);
+//        GuoRenCrawlerBaseResponse<GuoRenCrawlerCheckNoticeData> premiumResponse = JSON.parseObject(respStr, GuoRenCrawlerBaseResponse.class);
+        return request.getData();
     }
 
     /**
@@ -380,4 +472,37 @@ public class GuoRenCrawlerRequestComponent {
         return request(RequestUrl.TRANS_CODE_ELE_POLICY_NO, guoRenCrawlerTransCodeElePolicyNoRequest, httpHeaders);
     }
 
+    /**
+     * 根据影像类型获取fileGroup
+     * DZ—单证影像, YC-验车影像
+     */
+    private String getFileGroup(InsuranceImageVo imageVo) {
+        String imageType = imageVo.getImageType();
+        if (StringUtils.isEmpty(imageType)) {
+            return "DZ";
+        }
+        // 验车相关的影像类型使用YC
+        if (imageType.contains("验车") || imageType.contains("YC")) {
+            return "YC";
+        }
+        // 默认使用单证影像
+        return "DZ";
+    }
+
+
+    /**
+     * 工具方法:从文件名中提取后缀(如 "test.txt" → "txt")
+     */
+    private String getFileSuffix(String fileName) {
+        if (StringUtils.isEmpty(fileName)) {
+            return ".bin"; // 默认后缀
+        }
+        int lastIndexOf = fileName.lastIndexOf(".");
+        if (lastIndexOf == -1) {
+            return ".bin";
+        }
+        return fileName.substring(lastIndexOf);
+    }
+
+
 }

+ 2 - 2
tenant/insurance/quotation-guoren/src/main/java/com/jzg/quotation/guoren/crawler/entity/GuoRenCrawlerConfigureParameters.java

@@ -26,12 +26,12 @@ public class GuoRenCrawlerConfigureParameters implements ConfigureParameters {
     /**
      * 归属机构代码
      */
-    private String comCode;
+    private String comName;
 
     /**
      * 业务来源
      */
-    private String businessSourcesCode;
+    private String businessNature;
 
     /**
      * 代理/经纪/渠道代码

+ 436 - 0
tenant/insurance/quotation-guoren/src/main/java/com/jzg/quotation/guoren/crawler/entity/request/GuoRenBcDTO.java

@@ -0,0 +1,436 @@
+package com.jzg.quotation.guoren.crawler.entity.request;
+
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.jzg.commons.entity.quote.vo.CustomerInfoVo;
+import com.jzg.commons.entity.quote.vo.QuoteVo;
+import com.jzg.quotation.guoren.crawler.entity.dto.PrpTMainDTO;
+import com.jzg.quotation.guoren.crawler.entity.response.GuoRenCrawlerGetCarPriceData;
+import com.jzg.quotation.guoren.crawler.entity.response.GuoRenCrawlerWriteBackAddressData;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.ArrayList;
+import java.util.List;
+
+@NoArgsConstructor
+@Data
+public class GuoRenBcDTO {
+    @JsonProperty("baseInfoInit")
+    private Integer baseInfoInit;
+
+    @JsonProperty("riskCode")
+    private String riskCode;
+
+    @JsonProperty("prpTmain")
+    private PrpTMainDTO prpTmain;
+
+    @JsonProperty("prpTitemCar")
+    private GuoRenPrpTitemCarDTO prpTitemCar;
+
+    @JsonProperty("prpTinsured")
+    private GuoRenPrpTinsuredDTO prpTinsured;
+
+    @JsonProperty("prpDcarModel")
+    private GuoRenBcDTO.PrpDcarModelDTO prpDcarModel;
+
+    @JsonProperty("prpTengiNeerList")
+    private List<GuoRenBcDTO.PrpTengiNeerListDTO> prpTengiNeerList;
+
+    @JsonProperty("ocrOrder")
+    private GuoRenOcrOrderDTO ocrOrder;
+
+    @JsonProperty("agriFlagBC")
+    private String agriFlagBC;
+
+    @JsonProperty("insuredTypeTmp")
+    private Integer insuredTypeTmp;
+
+    @JsonProperty("proposalNO")
+    private String proposalNO;
+
+    @JsonProperty("prptBeneficialOwnerVos")
+    private List<?> prptBeneficialOwnerVos;
+
+    @JsonProperty("prptShareholderVos")
+    private List<?> prptShareholderVos;
+
+    @JsonProperty("derailleurType")
+    private String derailleurType;
+
+    @JsonProperty("loginComCode")
+    private String loginComCode;
+
+    @JsonProperty("feeandDiscountFlag")
+    private String feeandDiscountFlag;
+
+    @JsonProperty("prpTChannel")
+    private GuoRenCrawlerCalculationPremiumRequest.PrpTChannelDTO prpTChannel;
+
+
+    public GuoRenBcDTO(QuoteVo quoteVo, PrpTMainDTO prpTmainDTO, GuoRenPrpTitemCarDTO prpTitemCar, Integer insuredTypeTmp, GuoRenCrawlerWriteBackAddressData policyHolderAddr, GuoRenCrawlerWriteBackAddressData insuredPersonAddr) {
+        CustomerInfoVo policyHolderInfo = quoteVo.getPolicyHolderInfo();
+        CustomerInfoVo insuredPersonInfo = quoteVo.getInsuredPersonInfo();
+        this.baseInfoInit = 2;
+        this.riskCode = "0500";
+        // 添加非车险信息
+        if (quoteVo.getAccidentalDrivings().size() > 0) {
+            String noCarCodes = quoteVo.getAccidentalDrivings().get(0).getProductCode();
+            Integer noCarFlag = 1;
+            String premiumStr = quoteVo.getAccidentalDrivings().get(0).getPremium();
+            Integer noCarPremium = premiumStr != null ? (int) Double.parseDouble(premiumStr) : 0;
+            prpTmainDTO.setNoCarCodes(noCarCodes);
+            prpTmainDTO.setNoCarFlag(noCarFlag);
+            prpTmainDTO.setNoCarPremium(noCarPremium);
+        }
+        this.prpTmain = prpTmainDTO;
+        this.prpTitemCar = prpTitemCar;
+        this.prpTinsured = new GuoRenPrpTinsuredDTO(policyHolderInfo, insuredPersonInfo, policyHolderAddr, insuredPersonAddr, quoteVo.getOwnersInfo().getBirthday(), prpTitemCar);
+        this.prpDcarModel = new PrpDcarModelDTO();
+        this.prpTengiNeerList = List.of(new PrpTengiNeerListDTO());
+        this.ocrOrder = new GuoRenOcrOrderDTO(policyHolderInfo, insuredPersonInfo, prpTitemCar);
+        this.agriFlagBC = "0";
+        this.insuredTypeTmp = insuredTypeTmp;
+        this.proposalNO = "30";
+        this.prptBeneficialOwnerVos = new ArrayList<>();
+        this.prptShareholderVos = new ArrayList<>();
+        this.derailleurType = prpTitemCar.getDerailleurType();
+        this.loginComCode = prpTmainDTO.getLoginComCode();
+        this.feeandDiscountFlag = "0";
+        this.prpTChannel = new GuoRenCrawlerCalculationPremiumRequest.PrpTChannelDTO();
+    }
+
+    @Data
+    public static class PrpDcarModelDTO {
+        @JsonProperty("stopFlag")
+        private String stopFlag;
+
+        @JsonProperty("gearBoxtyPecode")
+        private String gearBoxtyPecode;
+
+        @JsonProperty("stopFlagCode")
+        private String stopFlagCode;
+
+        @JsonProperty("riskTypeCode")
+        private String riskTypeCode;
+
+        @JsonProperty("riskTypeName")
+        private String riskTypeName;
+
+        @JsonProperty("vehicleClassNewCode")
+        private String vehicleClassNewCode;
+
+        @JsonProperty("vehicleClassNewName")
+        private String vehicleClassNewName;
+
+        @JsonProperty("fullweight")
+        private String fullweight;
+
+        @JsonProperty("vehicleSize")
+        private String vehicleSize;
+
+        @JsonProperty("transmissionttype")
+        private String transmissionttype;
+
+        @JsonProperty("validStatus")
+        private String validStatus;
+
+        @JsonProperty("countryCode")
+        private String countryCode;
+
+        @JsonProperty("completeKerbMass")
+        private String completeKerbMass;
+
+        @JsonProperty("vehicleAlias")
+        private String vehicleAlias;
+
+        @JsonProperty("jqxClassname")
+        private String jqxClassname;
+
+        @JsonProperty("syxClassname")
+        private String syxClassname;
+
+        @JsonProperty("purchasePriceSZ")
+        private String purchasePriceSZ;
+
+        @JsonProperty("kindred_PRICE_TAX")
+        private String kindredPriceTax;
+
+        @JsonProperty("carYear")
+        private String carYear;
+
+        @JsonProperty("exHaustScale")
+        private String exHaustScale;
+
+        @JsonProperty("completeKerbMassMin")
+        private String completeKerbMassMin;
+
+        @JsonProperty("transmissionType")
+        private String transmissionType;
+
+        @JsonProperty("coefficient2")
+        private String coefficient2;
+
+        @JsonProperty("coefficient1")
+        private String coefficient1;
+
+        @JsonProperty("tonCount")
+        private String tonCount;
+
+        @JsonProperty("seatCount")
+        private String seatCount;
+
+        @JsonProperty("sumTon")
+        private String sumTon;
+
+        @JsonProperty("modelCode")
+        private String modelCode;
+
+        @JsonProperty("modelName")
+        private String modelName;
+
+        @JsonProperty("remark")
+        private String remark;
+
+        @JsonProperty("carKind")
+        private String carKind;
+
+        @JsonProperty("shortHandCode")
+        private String shortHandCode;
+
+        @JsonProperty("carStyle")
+        private String carStyle;
+
+        @JsonProperty("carBrand")
+        private String carBrand;
+
+        @JsonProperty("purchasePriceLB")
+        private String purchasePriceLB;
+
+        @JsonProperty("tonCountLB")
+        private String tonCountLB;
+
+        @JsonProperty("seatCountLB")
+        private String seatCountLB;
+
+        @JsonProperty("exhaustScaleLB")
+        private String exhaustScaleLB;
+
+        @JsonProperty("aliasname")
+        private String aliasname;
+
+        @JsonProperty("seatCountLower")
+        private String seatCountLower;
+
+        @JsonProperty("riskFlag")
+        private String riskFlag;
+
+        @JsonProperty("purchasePriceNotax")
+        private String purchasePriceNotax;
+
+        @JsonProperty("kindredPriceNotax")
+        private String kindredPriceNotax;
+
+        @JsonProperty("shmodelCode")
+        private String shmodelCode;
+
+        @JsonProperty("shmodelIDCode")
+        private String shmodelIDCode;
+
+        @JsonProperty("shtradeName")
+        private String shtradeName;
+
+        @JsonProperty("shtradeCode")
+        private String shtradeCode;
+
+        @JsonProperty("shbrand")
+        private String shbrand;
+
+        @JsonProperty("shbrandCode")
+        private String shbrandCode;
+
+        @JsonProperty("shseries")
+        private String shseries;
+
+        @JsonProperty("shseriesCode")
+        private String shseriesCode;
+
+        @JsonProperty("shcarName")
+        private String shcarName;
+
+        @JsonProperty("shnoticeType")
+        private String shnoticeType;
+
+        @JsonProperty("shconfigType")
+        private String shconfigType;
+
+        @JsonProperty("shcategoryName")
+        private String shcategoryName;
+
+        @JsonProperty("shcategoryCode")
+        private String shcategoryCode;
+
+        @JsonProperty("shdeptName")
+        private String shdeptName;
+
+        @JsonProperty("shdeptCode")
+        private String shdeptCode;
+
+        @JsonProperty("shpureRiskPremium")
+        private String shpureRiskPremium;
+
+        @JsonProperty("shpureRiskPremiumFlag")
+        private String shpureRiskPremiumFlag;
+
+        @JsonProperty("bjmodelCode")
+        private String bjmodelCode;
+
+        @JsonProperty("bjmodelIDCode")
+        private String bjmodelIDCode;
+
+        @JsonProperty("bjtradeName")
+        private String bjtradeName;
+
+        @JsonProperty("bjtradeCode")
+        private String bjtradeCode;
+
+        @JsonProperty("bjbrand")
+        private String bjbrand;
+
+        @JsonProperty("bjbrandCode")
+        private String bjbrandCode;
+
+        @JsonProperty("bjseries")
+        private String bjseries;
+
+        @JsonProperty("bjseriesCode")
+        private String bjseriesCode;
+
+        @JsonProperty("bjcarName")
+        private String bjcarName;
+
+        @JsonProperty("bjnoticeType")
+        private String bjnoticeType;
+
+        @JsonProperty("bjconfigType")
+        private String bjconfigType;
+
+        @JsonProperty("bjcategoryName")
+        private String bjcategoryName;
+
+        @JsonProperty("bjcategoryCode")
+        private String bjcategoryCode;
+
+        @JsonProperty("bjdeptName")
+        private String bjdeptName;
+
+        @JsonProperty("bjdeptCode")
+        private String bjdeptCode;
+
+        @JsonProperty("bjpureRiskPremium")
+        private String bjpureRiskPremium;
+
+        @JsonProperty("bjpureRiskPremiumFlag")
+        private String bjpureRiskPremiumFlag;
+
+        @JsonProperty("purchasePriceOther")
+        private String purchasePriceOther;
+
+        @JsonProperty("modelDesc")
+        private String modelDesc;
+
+        @JsonProperty("totalVehicleWeight")
+        private String totalVehicleWeight;
+
+        @JsonProperty("absflag")
+        private String absflag;
+
+        @JsonProperty("airbagNum")
+        private String airbagNum;
+
+        @JsonProperty("refCode1")
+        private String refCode1;
+
+        @JsonProperty("refCode2")
+        private String refCode2;
+
+        @JsonProperty("rfuelType")
+        private String rfuelType;
+
+        @JsonProperty("vehicleFgwCode")
+        private String vehicleFgwCode;
+
+        @JsonProperty("purchasePrice")
+        private String purchasePrice;
+
+        @JsonProperty("validDate")
+        private String validDate;
+
+        @JsonProperty("alarmFlag")
+        private String alarmFlag;
+
+        @JsonProperty("carSeriesName")
+        private String carSeriesName;
+
+        @JsonProperty("importFlag")
+        private String importFlag;
+
+        @JsonProperty("kindredPrice")
+        private String kindredPrice;
+
+        @JsonProperty("riskScope")
+        private String riskScope;
+
+        @JsonProperty("seatMax")
+        private String seatMax;
+
+        @JsonProperty("seatMin")
+        private String seatMin;
+
+        @JsonProperty("flag")
+        private String flag;
+
+        @JsonProperty("newFuelModel")
+        private String newFuelModel;
+
+        @JsonProperty("rvehicleModel")
+        private String rvehicleModel;
+
+        @JsonProperty("brand_Code")
+        private String brandCode;
+
+        @JsonProperty("family_Code")
+        private String familyCode;
+
+        @JsonProperty("modelFlag")
+        private String modelFlag;
+
+        @JsonProperty("derailleurType")
+        private String derailleurType;
+
+        @JsonProperty("factory")
+        private String factory;
+
+        @JsonProperty("isQueryByVinNo")
+        private Boolean isQueryByVinNo;
+
+        public PrpDcarModelDTO() {
+            this.isQueryByVinNo = true;
+        }
+    }
+
+    @Data
+    public static class PrpTengiNeerListDTO {
+        @JsonProperty("projectname")
+        private String projectname;
+
+        @JsonProperty("projectcode")
+        private String projectcode;
+
+        public PrpTengiNeerListDTO() {
+            this.projectname = "";
+            this.projectcode = "";
+        }
+    }
+
+}

+ 654 - 0
tenant/insurance/quotation-guoren/src/main/java/com/jzg/quotation/guoren/crawler/entity/request/GuoRenCiDTO.java

@@ -0,0 +1,654 @@
+package com.jzg.quotation.guoren.crawler.entity.request;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.jzg.commons.entity.quote.vo.CustomerInfoVo;
+import com.jzg.commons.entity.quote.vo.RiskInfoVo;
+import com.jzg.quotation.guoren.crawler.entity.dto.CiInsureDemandDTO;
+import com.jzg.quotation.guoren.crawler.entity.dto.PrptengageListDTO;
+import com.jzg.quotation.guoren.crawler.entity.po.TaxResult;
+import com.jzg.quotation.guoren.crawler.utils.VehicleTaxCalculator;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+@NoArgsConstructor
+@Data
+public class GuoRenCiDTO  {
+    @JsonProperty("prpDclauseRule")
+    private List<?> prpDclauseRule;
+
+    @JsonProperty("showCarShip")
+    private Boolean showCarShip;
+
+    @JsonProperty("carShipTaxInfoInit")
+    private Integer carShipTaxInfoInit;
+
+    @JsonProperty("prpTmain")
+    private GuoRenCrawlerCalculationPremiumRequest.PrpTmainDTO prpTmain;
+
+    @JsonProperty("prpTitemCar")
+    private PrpTitemCarDTO prpTitemCar;
+
+    @JsonProperty("prpTmainRate")
+    private GuoRenCrawlerCalculationPremiumRequest.PrpTmainRateDTO prpTmainRate;
+
+    @JsonProperty("prptitemkindList")
+    private List<GuoRenCrawlerCalculationPremiumRequest.PrptitemkindListDTO> prptitemkindList;
+
+    @JsonProperty("prptengageList")
+    private List<PrptengageListDTO> prptengageList;
+
+    @JsonProperty("prpDclause")
+    private List<?> prpDclause;
+
+    @JsonProperty("prpTitemCarExt")
+    private PrpTitemCarExtDTO prpTitemCarExt;
+
+    @JsonProperty("ciInsureDemand")
+    private CiInsureDemandDTO ciInsureDemand;
+
+    @JsonProperty("ciInsureDemandPay")
+    private List<?> ciInsureDemandPay;
+
+    @JsonProperty("ciInsureDemandLoss")
+    private List<?> ciInsureDemandLoss;
+
+    @JsonProperty("ciInsureDemandWarningClaim")
+    private List<?> ciInsureDemandWarningClaim;
+
+    @JsonProperty("ciCarShipTaxQGDemandSchema")
+    private CiCarShipTaxQGDemandSchemaDTO ciCarShipTaxQGDemandSchema;
+
+    @JsonProperty("cICarshipTaxDemandSchema")
+    private CICarshipTaxDemandSchemaDTO cICarshipTaxDemandSchema;
+
+    @JsonProperty("prpTcarshipTax")
+    private PrpTcarshipTaxDTO prpTcarshipTax;
+
+    @JsonProperty("prpTrenewal")
+    private List<?> prpTrenewal;
+
+    @JsonProperty("queryExpensePowerOutputVo")
+    private QueryExpensePowerOutputVoDTO queryExpensePowerOutputVo;
+
+    @JsonProperty("ciInsureValid")
+    private CiInsureValidDTO ciInsureValid;
+
+    @JsonProperty("trafficInsurance")
+    private TrafficInsuranceDTO trafficInsurance;
+
+    @JsonProperty("blPrpTRealNameVerification")
+    private List<?> blPrpTRealNameVerification;
+
+    @JsonProperty("prpTLastCarShipTax")
+    private PrpTLastCarShipTaxDTO prpTLastCarShipTax;
+
+    @JsonProperty("duplicateInsuranceItemsSchema")
+    private DuplicateInsuranceItemsSchemaDTO duplicateInsuranceItemsSchema;
+
+    @JsonProperty("image")
+    private ImageDTO image;
+
+    @JsonProperty("inputRisk")
+    private Integer inputRisk;
+
+    @JsonProperty("inputRisk0507")
+    private Integer inputRisk0507;
+
+    @JsonProperty("inputRisk0507t1")
+    private Integer inputRisk0507t1;
+
+    @JsonProperty("shortRate")
+    private String shortRate;
+
+    @JsonProperty("sumPremium")
+    private Integer sumPremium;
+
+    @JsonProperty("calculateFlagCI")
+    private String calculateFlagCI;
+
+    @JsonProperty("prpTChannel")
+    private GuoRenCrawlerCalculationPremiumRequest.PrpTChannelDTO prpTChannel;
+
+    public GuoRenCiDTO(RiskInfoVo ciRiskInfoVo, String today, String clauseTypeSystem, PrpTcarshipTaxDTO prpTcarshipTax) {
+        this.prpDclauseRule = new ArrayList<>();
+        this.showCarShip = true;
+        this.carShipTaxInfoInit = 1;
+        this.prpTmain = new GuoRenCrawlerCalculationPremiumRequest.PrpTmainDTO(ciRiskInfoVo, today);
+        this.prpTitemCar = new PrpTitemCarDTO(clauseTypeSystem);
+        this.prpTmainRate = new GuoRenCrawlerCalculationPremiumRequest.PrpTmainRateDTO("");
+        this.prptitemkindList = GuoRenCrawlerCalculationPremiumRequest.PrptitemkindListDTO.getCiPrptitemkindList(prpTmain);
+        this.prptengageList = new ArrayList<>();
+        this.prpDclause = new ArrayList<>();
+        this.prpTitemCarExt = new PrpTitemCarExtDTO();
+        this.ciInsureDemand = new CiInsureDemandDTO("", "");
+        this.ciInsureDemandPay = new ArrayList<>();
+        this.ciInsureDemandLoss = new ArrayList<>();
+        this.ciInsureDemandWarningClaim = new ArrayList<>();
+        this.ciCarShipTaxQGDemandSchema = new CiCarShipTaxQGDemandSchemaDTO();
+        this.cICarshipTaxDemandSchema = new CICarshipTaxDemandSchemaDTO();
+        this.prpTcarshipTax = prpTcarshipTax;
+        this.prpTrenewal = new ArrayList<>();
+        this.queryExpensePowerOutputVo = new QueryExpensePowerOutputVoDTO();
+        this.ciInsureValid = new CiInsureValidDTO();
+        this.trafficInsurance = new TrafficInsuranceDTO();
+        this.blPrpTRealNameVerification = new ArrayList<>();
+        this.prpTLastCarShipTax = new PrpTLastCarShipTaxDTO();
+        this.duplicateInsuranceItemsSchema = new DuplicateInsuranceItemsSchemaDTO();
+        this.image = new ImageDTO("data:image/png;base64,");
+        this.inputRisk = 1;
+        this.inputRisk0507 = 1;
+        this.inputRisk0507t1 = 0;
+        this.shortRate = "100";
+        this.calculateFlagCI = "1";
+        this.prpTChannel = new GuoRenCrawlerCalculationPremiumRequest.PrpTChannelDTO();
+    }
+
+    @NoArgsConstructor
+    @Data
+    public static class PrpTitemCarDTO {
+        @JsonProperty("lossCondition")
+        private String lossCondition;
+
+        @JsonProperty("lossConditionCode")
+        private String lossConditionCode;
+
+        @JsonProperty("comlossCondition")
+        private String comlossCondition;
+
+        @JsonProperty("basePureRiskPremium")
+        private String basePureRiskPremium;
+
+        @JsonProperty("clauseTypeSystem")
+        private String clauseTypeSystem;
+
+        public PrpTitemCarDTO(String clauseTypeSystem) {
+            this.clauseTypeSystem = clauseTypeSystem;
+        }
+    }
+
+
+    @NoArgsConstructor
+    @Data
+    public static class PrpTitemCarExtDTO {
+    }
+
+
+    @NoArgsConstructor
+    @Data
+    public static class CiCarShipTaxQGDemandSchemaDTO {
+        @JsonProperty("proposalNo")
+        private String proposalNo;
+
+        @JsonProperty("demandNo")
+        private String demandNo;
+
+        @JsonProperty("policyNo")
+        private String policyNo;
+
+        @JsonProperty("taxType")
+        private String taxType;
+
+        @JsonProperty("serialNo")
+        private String serialNo;
+
+        @JsonProperty("taxTermTypeCode")
+        private String taxTermTypeCode;
+
+        @JsonProperty("taxConditionCode")
+        private String taxConditionCode;
+
+        @JsonProperty("taxRegistryNumber")
+        private String taxRegistryNumber;
+
+        @JsonProperty("taxPayerName")
+        private String taxPayerName;
+
+        @JsonProperty("taxPayerIdentificationCode")
+        private String taxPayerIdentificationCode;
+
+        @JsonProperty("taxLocationCode")
+        private String taxLocationCode;
+
+        @JsonProperty("taxStartDate")
+        private String taxStartDate;
+
+        @JsonProperty("taxEndDate")
+        private String taxEndDate;
+
+        @JsonProperty("declareDate")
+        private String declareDate;
+
+        @JsonProperty("taxDepartmentCode")
+        private String taxDepartmentCode;
+
+        @JsonProperty("taxDepartment")
+        private String taxDepartment;
+
+        @JsonProperty("taxDocumentNumber")
+        private String taxDocumentNumber;
+
+        @JsonProperty("annualTaxAmount")
+        private String annualTaxAmount;
+
+        @JsonProperty("appliedArea")
+        private String appliedArea;
+
+        @JsonProperty("taxRateIdentifier")
+        private String taxRateIdentifier;
+
+        @JsonProperty("taxItemDetailCode")
+        private String taxItemDetailCode;
+
+        @JsonProperty("taxUnitTypeCode")
+        private String taxUnitTypeCode;
+
+        @JsonProperty("unitRate")
+        private String unitRate;
+
+        @JsonProperty("taxRateStartDate")
+        private String taxRateStartDate;
+
+        @JsonProperty("taxRateEndDate")
+        private String taxRateEndDate;
+
+        @JsonProperty("deductionDueCode")
+        private String deductionDueCode;
+
+        @JsonProperty("deductionDueType")
+        private String deductionDueType;
+
+        @JsonProperty("deductionDueProportion")
+        private String deductionDueProportion;
+
+        @JsonProperty("deduction")
+        private String deduction;
+
+        @JsonProperty("deductionDocumentNumber")
+        private String deductionDocumentNumber;
+
+        @JsonProperty("deductionDepartmentCode")
+        private String deductionDepartmentCode;
+
+        @JsonProperty("deductionDepartment")
+        private String deductionDepartment;
+
+        @JsonProperty("taxDue")
+        private String taxDue;
+
+        @JsonProperty("exceedDate")
+        private String exceedDate;
+
+        @JsonProperty("exceedDaysCount")
+        private String exceedDaysCount;
+
+        @JsonProperty("overDue")
+        private String overDue;
+
+        @JsonProperty("totalAmount")
+        private String totalAmount;
+
+        @JsonProperty("annualTaxDue")
+        private String annualTaxDue;
+
+        @JsonProperty("sumTaxDefault")
+        private String sumTaxDefault;
+
+        @JsonProperty("sumOverdue")
+        private String sumOverdue;
+
+        @JsonProperty("sumTax")
+        private String sumTax;
+
+        @JsonProperty("taxDescription")
+        private String taxDescription;
+
+        @JsonProperty("taxAmountFlag")
+        private String taxAmountFlag;
+
+        @JsonProperty("calcTaxFlag")
+        private String calcTaxFlag;
+
+        @JsonProperty("taxPrintNo")
+        private String taxPrintNo;
+
+        @JsonProperty("payDate")
+        private String payDate;
+
+        @JsonProperty("taxAmountFlagLT")
+        private String taxAmountFlagLT;
+
+        @JsonProperty("annualTaxDueLT")
+        private String annualTaxDueLT;
+
+        @JsonProperty("sumTaxDefaultLT")
+        private String sumTaxDefaultLT;
+
+        @JsonProperty("sumOverdueLT")
+        private String sumOverdueLT;
+
+        @JsonProperty("sumTaxLT")
+        private String sumTaxLT;
+
+        @JsonProperty("declareStatusLT")
+        private String declareStatusLT;
+
+        @JsonProperty("declareStatusIA")
+        private String declareStatusIA;
+
+        @JsonProperty("taxPaidAreaCode")
+        private String taxPaidAreaCode;
+
+        @JsonProperty("refundTaxDue")
+        private String refundTaxDue;
+    }
+
+    @NoArgsConstructor
+    @Data
+    public static class CICarshipTaxDemandSchemaDTO {
+    }
+
+    @NoArgsConstructor
+    @Data
+    public static class PrpTcarshipTaxDTO {
+        @JsonProperty("proposalNo")
+        private String proposalNo;
+
+        @JsonProperty("serialNo")
+        private Integer serialNo;
+
+        @JsonProperty("riskCode")
+        private String riskCode;
+
+        @JsonProperty("licenseNo")
+        private String licenseNo;
+
+        @JsonProperty("licenseType")
+        private String licenseType;
+
+        @JsonProperty("carKindCode")
+        private String carKindCode;
+
+        @JsonProperty("taxItemCode")
+        private String taxItemCode;
+
+        @JsonProperty("taxItemName")
+        private String taxItemName;
+
+        @JsonProperty("taxItemDetailCode")
+        private String taxItemDetailCode;
+
+        @JsonProperty("taxItemDetailName")
+        private String taxItemDetailName;
+
+        @JsonProperty("baseTaxation")
+        private String baseTaxation;
+
+        @JsonProperty("taxpayerName")
+        private String taxpayerName;
+
+        @JsonProperty("taxpayerIdentifier")
+        private String taxpayerIdentifier;
+
+        @JsonProperty("taxRelifFlag")
+        private String taxRelifFlag;
+
+        @JsonProperty("relifReason")
+        private String relifReason;
+
+        @JsonProperty("freeRate")
+        private String freeRate;
+
+        @JsonProperty("taxComCode")
+        private String taxComCode;
+
+        @JsonProperty("taxComName")
+        private String taxComName;
+
+        @JsonProperty("paidFreeCertificate")
+        private String paidFreeCertificate;
+
+        @JsonProperty("taxUnit")
+        private String taxUnit;
+
+        @JsonProperty("completeKerbMass")
+        private Integer completeKerbMass;
+
+        @JsonProperty("calculateMode")
+        private String calculateMode;
+
+        @JsonProperty("taxDue")
+        private Integer taxDue;
+
+        @JsonProperty("taxActual")
+        private Integer taxActual;
+
+        @JsonProperty("taxRelief")
+        private String taxRelief;
+
+        @JsonProperty("previousPay")
+        private Integer previousPay;
+
+        @JsonProperty("lateFee")
+        private Integer lateFee;
+
+        @JsonProperty("sumPayTax")
+        private String sumPayTax;
+
+        @JsonProperty("leviedDate")
+        private String leviedDate;
+
+        @JsonProperty("payTaxTimes")
+        private Integer payTaxTimes;
+
+        @JsonProperty("finalFlag")
+        private String finalFlag;
+
+        @JsonProperty("extendChar2")
+        private String extendChar2;
+
+        @JsonProperty("calLateFeeFlag")
+        private String calLateFeeFlag;
+
+        @JsonProperty("calPayBalanceFeeFlag")
+        private String calPayBalanceFeeFlag;
+
+        @JsonProperty("calFeeFlag")
+        private String calFeeFlag;
+
+        @JsonProperty("calcTaxFlag")
+        private String calcTaxFlag;
+
+        @JsonProperty("hisPolicyEndDate")
+        private Object hisPolicyEndDate;
+
+        @JsonProperty("lateFeeStartDate")
+        private Object lateFeeStartDate;
+
+        @JsonProperty("certificateDate")
+        private Object certificateDate;
+
+        @JsonProperty("taxDocumentDate")
+        private Object taxDocumentDate;
+
+        @JsonProperty("payStartDate")
+        private String payStartDate;
+
+        @JsonProperty("payEndDate")
+        private String payEndDate;
+
+
+        public PrpTcarshipTaxDTO(CustomerInfoVo policyHolderInfo, String comCode, GuoRenPrpTitemCarDTO prpTitemCar) {
+            VehicleTaxCalculator vehicleTaxCalculator = new VehicleTaxCalculator(comCode, Integer.parseInt(prpTitemCar.getSeatCount()));
+            Map<String, Object> carInfo = new HashMap<>();
+            carInfo.put("exhaustScale", prpTitemCar.getExhaustScale());
+            carInfo.put("completekerbmass", prpTitemCar.getCompleteKerbMass());
+            TaxResult taxResult = vehicleTaxCalculator.calculateTax(prpTitemCar.getCarKindCode(), carInfo);
+
+            this.calLateFeeFlag = "";
+            this.calPayBalanceFeeFlag = "";
+            this.extendChar2 = prpTitemCar.getLicenseCategory();
+            this.lateFeeStartDate = null;
+            this.hisPolicyEndDate = null;
+            this.payStartDate = null;
+            this.payEndDate = null;
+            this.taxDocumentDate = null;
+            this.taxpayerName = policyHolderInfo.getName();
+            this.taxpayerIdentifier = policyHolderInfo.getIdentifyNumber();
+            this.taxRelifFlag = "1";
+            this.calculateMode = "1";
+            this.completeKerbMass = 0;
+            this.taxItemCode = taxResult.getTaxItemCode();
+            this.taxItemName = taxResult.getTaxItemName();
+            this.taxItemDetailCode = taxResult.getTaxItemDetailCode();
+            this.taxItemDetailName = taxResult.getTaxItemDetailName();
+            this.taxUnit = taxResult.getTaxUnit();
+            this.sumPayTax = "";
+            this.certificateDate = null;
+        }
+    }
+
+    @NoArgsConstructor
+    @Data
+    public static class QueryExpensePowerOutputVoDTO {
+        @JsonProperty("errorCode")
+        private String errorCode;
+
+        @JsonProperty("errorMessage")
+        private String errorMessage;
+
+        @JsonProperty("configPowerManageFeeRateCI")
+        private String configPowerManageFeeRateCI;
+
+        @JsonProperty("configPowerMiddleCostCI")
+        private String configPowerMiddleCostCI;
+
+        @JsonProperty("configPowerManageFeeRateBI")
+        private String configPowerManageFeeRateBI;
+
+        @JsonProperty("configPowerMiddleCostBI")
+        private String configPowerMiddleCostBI;
+
+        @JsonProperty("personPowerManageFeeRateBC")
+        private String personPowerManageFeeRateBC;
+
+        @JsonProperty("personPowerMiddleCostBC")
+        private String personPowerMiddleCostBC;
+
+        @JsonProperty("personPowerDisRateNoShow")
+        private String personPowerDisRateNoShow;
+
+        @JsonProperty("personPowerDisRateNoModify")
+        private String personPowerDisRateNoModify;
+
+        @JsonProperty("personPowerAllowanceRateNoShow")
+        private String personPowerAllowanceRateNoShow;
+
+        @JsonProperty("personPowerAllowanceRateNoModify")
+        private String personPowerAllowanceRateNoModify;
+
+        @JsonProperty("personPowerBusinessPromoteRateNoShow")
+        private String personPowerBusinessPromoteRateNoShow;
+
+        @JsonProperty("personPowerBusinessPromoteRateNoModify")
+        private String personPowerBusinessPromoteRateNoModify;
+
+        @JsonProperty("personPowerBusinessTotalCostCIShow")
+        private String personPowerBusinessTotalCostCIShow;
+
+        @JsonProperty("personPowerBusinessTotalCostBIShow")
+        private String personPowerBusinessTotalCostBIShow;
+
+        @JsonProperty("companyRatePower")
+        private String companyRatePower;
+
+        @JsonProperty("salesSalaryRateDisplay")
+        private String salesSalaryRateDisplay;
+
+        @JsonProperty("manageFeeRateDisplay")
+        private String manageFeeRateDisplay;
+
+        @JsonProperty("agentClerkFlagDisplay")
+        private String agentClerkFlagDisplay;
+    }
+
+    @NoArgsConstructor
+    @Data
+    public static class CiInsureValidDTO {
+    }
+
+    @NoArgsConstructor
+    @Data
+    public static class TrafficInsuranceDTO {
+        @JsonProperty("startDate")
+        private String startDate;
+
+        @JsonProperty("endDate")
+        private String endDate;
+    }
+
+    @NoArgsConstructor
+    @Data
+    public static class PrpTLastCarShipTaxDTO {
+        @JsonProperty("proposalNo")
+        private String proposalNo;
+
+        @JsonProperty("lastTaxConditionCode")
+        private String lastTaxConditionCode;
+
+        @JsonProperty("lastDeclareStatusIA")
+        private String lastDeclareStatusIA;
+
+        @JsonProperty("lastTaxAmountFlag")
+        private String lastTaxAmountFlag;
+
+        @JsonProperty("lastAnnualTaxDue")
+        private String lastAnnualTaxDue;
+
+        @JsonProperty("lastSumTaxDefault")
+        private String lastSumTaxDefault;
+
+        @JsonProperty("lastSumOverdue")
+        private String lastSumOverdue;
+
+        @JsonProperty("lastSumTax")
+        private String lastSumTax;
+
+        @JsonProperty("createdBy")
+        private String createdBy;
+
+        @JsonProperty("createdTime")
+        private String createdTime;
+
+        @JsonProperty("updatedBy")
+        private String updatedBy;
+
+        @JsonProperty("updatedTime")
+        private String updatedTime;
+
+        @JsonProperty("lastDeclareStatusIA_name")
+        private String lastdeclarestatusiaName;
+
+        @JsonProperty("lastTaxAmountFlag_name")
+        private String lasttaxamountflagName;
+    }
+
+    @NoArgsConstructor
+    @Data
+    public static class DuplicateInsuranceItemsSchemaDTO {
+    }
+
+    @AllArgsConstructor
+    @NoArgsConstructor
+    @Data
+    public static class ImageDTO {
+        @JsonProperty("changingThisBreaksApplicationSecurity")
+        private String changingThisBreaksApplicationSecurity;
+    }
+
+}

Разлика између датотеке није приказан због своје велике величине
+ 51 - 1977
tenant/insurance/quotation-guoren/src/main/java/com/jzg/quotation/guoren/crawler/entity/request/GuoRenCrawlerCalculationPremiumRequest.java


+ 88 - 15
tenant/insurance/quotation-guoren/src/main/java/com/jzg/quotation/guoren/crawler/entity/request/GuoRenCrawlerGetCarPriceRequest.java

@@ -6,6 +6,7 @@ import com.jzg.commons.entity.quote.vo.CustomerInfoVo;
 import com.jzg.commons.entity.quote.vo.QuoteVo;
 import com.jzg.quotation.commons.utils.TimeProcessing;
 import com.jzg.quotation.guoren.crawler.entity.dto.PrpTMainDTO;
+import com.jzg.quotation.guoren.crawler.entity.response.GuoRenCrawlerQueryByVinNoData;
 import com.jzg.quotation.guoren.crawler.entity.response.GuoRenCrawlerQueryCarModelData;
 import com.jzg.quotation.guoren.crawler.entity.response.GuoRenCrawlerWriteBackAddressData;
 import lombok.Data;
@@ -562,7 +563,61 @@ public class GuoRenCrawlerGetCarPriceRequest {
     @JsonProperty("sex")
     private String sex;
 
-    public GuoRenCrawlerGetCarPriceRequest(GuoRenCrawlerQueryCarModelData.ContentDTO queryCarModelData, PrpTMainDTO prpTmainDTO, QuoteVo quoteVo, GuoRenCrawlerWriteBackAddressData ownersAddr, String relationShip) {
+    @JsonProperty("carOwnerRecogNition")
+    private String carOwnerRecogNition;
+
+    @JsonProperty("vinNoRecogNition")
+    private String vinNoRecogNition;
+
+    @JsonProperty("engineNoRecogNition")
+    private String engineNoRecogNition;
+
+    @JsonProperty("licenseNoRecogNition")
+    private String licenseNoRecogNition;
+
+    @JsonProperty("modelNameRecogNition")
+    private String modelNameRecogNition;
+
+    @JsonProperty("enrollDateoRecogNition")
+    private String enrollDateoRecogNition;
+
+    @JsonProperty("chgOwnerDateRecogNition")
+    private String chgOwnerDateRecogNition;
+
+    @JsonProperty("useNatureCodeNitionNew")
+    private String useNatureCodeNitionNew;
+
+    @JsonProperty("useNatureCodeNition")
+    private String useNatureCodeNition;
+
+    @JsonProperty("maincarKindCodeNition")
+    private String maincarKindCodeNition;
+
+    @JsonProperty("carKindCodeNition")
+    private String carKindCodeNition;
+
+    @JsonProperty("licenseKindCodeNition")
+    private String licenseKindCodeNition;
+
+    @JsonProperty("carOwnerIdentifyTypeSides")
+    private String carOwnerIdentifyTypeSides;
+
+    @JsonProperty("carOwnerIdentifyNumberRecogNition")
+    private String carOwnerIdentifyNumberRecogNition;
+
+    @JsonProperty("ownersAddress")
+    private String ownersAddress;
+
+    @JsonProperty("birthdayRecogNition")
+    private String birthdayRecogNition;
+
+    @JsonProperty("sexRecogNition")
+    private String sexRecogNition;
+
+    @JsonProperty("carPostCode")
+    private String carPostCode;
+
+    public GuoRenCrawlerGetCarPriceRequest(GuoRenCrawlerQueryByVinNoData queryCarModelData, PrpTMainDTO prpTmainDTO, QuoteVo quoteVo, GuoRenCrawlerWriteBackAddressData ownersAddr, String relationShip) {
         String today = TimeProcessing.nowDate();
 
         CarInfoVo carInfoVo = quoteVo.getCarInfoVo();
@@ -603,7 +658,7 @@ public class GuoRenCrawlerGetCarPriceRequest {
         this.enrollDateValueStatus = 1;
         this.enrollDate = carInfoVo.getRegisterDate();
         this.chgOwnerDate = carInfoVo.getIssueDate();
-        this.brandName = queryCarModelData.getModelName();
+        this.brandName = queryCarModelData.getBrandNameBC();
         this.useNatureCode = carInfoVo.getVehicleUseCode();
         this.carKindCode = carInfoVo.getCarKindCode();
 
@@ -627,7 +682,7 @@ public class GuoRenCrawlerGetCarPriceRequest {
         this.tonCount = carInfoVo.getLimitLoad();
         this.tonCountlb = carInfoVo.getLimitLoad();
 
-        this.exhaustScale = String.valueOf(queryCarModelData.getExhaustScale());
+        this.exhaustScale = queryCarModelData.getExHaustScale();
         this.power = queryCarModelData.getPower();
         this.completeKerbMass = carInfoVo.getCompleteKerbMass();
         this.colorCode = "03";
@@ -644,19 +699,19 @@ public class GuoRenCrawlerGetCarPriceRequest {
         this.carKindCodeDesc = "";
         this.licenseColorCode = "01";
         this.vinClick = "1";
-        this.vinModel = queryCarModelData.getModelCode();
+        this.vinModel = queryCarModelData.getModelCodeBC();
         this.carOwnerLongFlag = "";
-        this.addressRevise = "1";
+        this.addressRevise = "0";
         this.modelCode = queryCarModelData.getModelCode();
         this.certifiCateDate = "";
-        this.brandCode = queryCarModelData.getModelCode();
-        this.modelCodeOld = queryCarModelData.getModelCode();
+        this.brandCode = queryCarModelData.getBrandCode();
+        this.modelCodeOld = queryCarModelData.getBrandCode();
         this.vehicleModel = queryCarModelData.getVehiclefgwCode();
         this.seatCountlb = queryCarModelData.getSeatCountlb();
-        this.exhaustScalelb = queryCarModelData.getExhaustScalelb();
-        this.vehicleBrand = queryCarModelData.getModelName();
-        this.powerLB = Double.valueOf(queryCarModelData.getPowerLB());
-        this.newFuelModel = "正常缴税";
+        this.exhaustScalelb = Double.valueOf(queryCarModelData.getExHaustScale());
+        this.vehicleBrand = queryCarModelData.getBrandNameBC();
+        this.powerLB = queryCarModelData.getExHaustScale() != null ? Double.valueOf(queryCarModelData.getExHaustScale()) : 0.0;
+        this.newFuelModel = "0";
         this.newFuelModelName = "正常缴税";
         this.noticeType = queryCarModelData.getVehiclefgwCode();
         this.mvSpeed = null;
@@ -716,7 +771,7 @@ public class GuoRenCrawlerGetCarPriceRequest {
         }
         this.sex = ownersInfo.getGender();
         this.natureOfUse = 0;
-        this.carUsage = queryCarModelData.getModelName();
+        this.carUsage = queryCarModelData.getBrandNameBC();
         this.actualValue = "";
         this.carName = "";
         this.pureRiskPremium = "";
@@ -787,7 +842,7 @@ public class GuoRenCrawlerGetCarPriceRequest {
         this.immeValiFlag = "";
         this.trIsFullEndor = "0";
         this.loginComCode = prpTmainDTO.getLoginComCode();
-        this.businessDate = null;
+        this.businessDate = "null";
 
         if (carInfoVo.isNewEnergyMark()) {
             this.newEnergyFlag = "1";
@@ -795,15 +850,33 @@ public class GuoRenCrawlerGetCarPriceRequest {
             this.clauseTypeSystem = "05";
         } else {
             this.newEnergyFlag = "0";
-            this.termsSystem = "01";
+            this.termsSystem = "04";
             this.clauseTypeSystem = "04";
         }
         this.carProvinceName = ownersAddr.getProvince();
         this.carCityName = ownersAddr.getCity();
-        this.carAddress = ownersAddr.getArea();
+        this.carAddress = quoteVo.getOwnersInfo().getAddr();
         this.carOwnerLongFlag = "";
         this.identiFication = 1;
         this.mvSpeed = null;
         this.natureOfUse = 1;
+        this.carOwnerRecogNition = ownersInfo.getName();
+        this.vinNoRecogNition = carInfoVo.getVinNo();
+        this.engineNoRecogNition = carInfoVo.getEngineNo();
+        this.licenseNoRecogNition = carInfoVo.getLicenseNo();
+        this.modelNameRecogNition = "";
+        this.enrollDateoRecogNition = carInfoVo.getRegisterDate();
+        this.chgOwnerDateRecogNition = carInfoVo.getIssueDate();
+        this.useNatureCodeNitionNew = "";
+        this.useNatureCodeNition = carInfoVo.getVehicleUseCode();
+        this.maincarKindCodeNition = this.maincarKindCode;
+        this.carKindCodeNition = this.carKindCode;
+        this.licenseKindCodeNition = this.licenseKindCode;
+        this.carOwnerIdentifyTypeSides = "back";
+        this.carOwnerIdentifyNumberRecogNition = ownersInfo.getIdentifyNumber();
+        this.ownersAddress = ownersInfo.getAddr();
+        this.birthdayRecogNition = ownersInfo.getBirthday();
+        this.sexRecogNition = ownersInfo.getGender();
+        this.carPostCode = ownersAddr.getCityPostCode();
     }
 }

+ 1 - 1
tenant/insurance/quotation-guoren/src/main/java/com/jzg/quotation/guoren/crawler/entity/request/GuoRenCrawlerProposalNoSaveRequest.java

@@ -16,7 +16,7 @@ public class GuoRenCrawlerProposalNoSaveRequest implements Serializable {
     private static final long serialVersionUID = 7163967208066871261L;
 
     @JsonProperty("bc")
-    private GuoRenCrawlerCalculationPremiumRequest.BcDTO bc;
+    private GuoRenBcDTO bc;
 
     @JsonProperty("basePartVo")
     private GuoRenCrawlerCalculationPremiumRequest.BasePartVoDTO basePartVo;

+ 3 - 1
tenant/insurance/quotation-guoren/src/main/java/com/jzg/quotation/guoren/crawler/entity/request/GuoRenCrawlerSubmitUnderwriteRequest.java

@@ -41,8 +41,10 @@ public class GuoRenCrawlerSubmitUnderwriteRequest {
         private String proposalNoBI;
 
         public ProposalNoSubListDTO(String proposalNoCI, String proposalNoBI) {
+            if (!StringUtils.isEmpty(proposalNoBI)) {
+                this.proposalNoBI = proposalNoBI;
+            }
             this.proposalNoCI = proposalNoCI;
-            this.proposalNoBI = proposalNoBI;
         }
 
     }

+ 122 - 0
tenant/insurance/quotation-guoren/src/main/java/com/jzg/quotation/guoren/crawler/entity/request/GuoRenOcrOrderDTO.java

@@ -0,0 +1,122 @@
+package com.jzg.quotation.guoren.crawler.entity.request;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.jzg.commons.entity.quote.vo.CustomerInfoVo;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@NoArgsConstructor
+@Data
+public class GuoRenOcrOrderDTO {
+
+    @JsonProperty("ocrCarOwner")
+    private String ocrCarOwner;
+
+    @JsonProperty("ocrCarOwnerIdentifyNumber")
+    private String ocrCarOwnerIdentifyNumber;
+
+    @JsonProperty("ocrCarAddress")
+    private String ocrCarAddress;
+
+    @JsonProperty("ocrInsuredName")
+    private String ocrInsuredName;
+
+    @JsonProperty("ocrInsuredIdentifyNumber")
+    private String ocrInsuredIdentifyNumber;
+
+    @JsonProperty("ocrInsuredAddress")
+    private String ocrInsuredAddress;
+
+    @JsonProperty("ocrAppliName")
+    private String ocrAppliName;
+
+    @JsonProperty("ocrAppliIdentifyNumber")
+    private String ocrAppliIdentifyNumber;
+
+    @JsonProperty("ocrAppliAddress")
+    private String ocrAppliAddress;
+
+    @JsonProperty("ocrOwnerAddress")
+    private String ocrOwnerAddress;
+
+    @JsonProperty("ocrVinNo")
+    private String ocrVinNo;
+
+    @JsonProperty("ocrEngineNo")
+    private String ocrEngineNo;
+
+    @JsonProperty("ocrModelName")
+    private String ocrModelName;
+
+    @JsonProperty("ocrUseYears")
+    private Integer ocrUseYears;
+
+    @JsonProperty("ocrUseNatureCode")
+    private String ocrUseNatureCode;
+
+    @JsonProperty("ocrMaincarKindCode")
+    private String ocrMaincarKindCode;
+
+    @JsonProperty("ocrCarKindCode")
+    private String ocrCarKindCode;
+
+    @JsonProperty("ocrLicenseCategory")
+    private String ocrLicenseCategory;
+
+    @JsonProperty("ocrLicenseKindCode")
+    private String ocrLicenseKindCode;
+
+    @JsonProperty("ocrIdvalidStartDate")
+    private String ocrIdvalidStartDate;
+
+    @JsonProperty("ocrIdValidDate")
+    private String ocrIdValidDate;
+
+    @JsonProperty("ocrAppliIDValidStartDate")
+    private String ocrAppliIDValidStartDate;
+
+    @JsonProperty("ocrAppliIDValidDate")
+    private String ocrAppliIDValidDate;
+
+    @JsonProperty("ocrInsuredIDValidStartDate")
+    private String ocrInsuredIDValidStartDate;
+
+    @JsonProperty("ocrInsuredIDValidDate")
+    private String ocrInsuredIDValidDate;
+
+    @JsonProperty("ocrEnrolLDate")
+    private String ocrEnrolLDate;
+
+    @JsonProperty("ocrChgOwnerDate")
+    private String ocrChgOwnerDate;
+
+    public GuoRenOcrOrderDTO(CustomerInfoVo policyHolderInfo, CustomerInfoVo insuredPersonInfo, GuoRenPrpTitemCarDTO prpTitemCar) {
+        this.ocrCarOwner = policyHolderInfo.getName();
+        this.ocrCarOwnerIdentifyNumber = policyHolderInfo.getIdentifyNumber();
+        this.ocrCarAddress = policyHolderInfo.getAddr();
+        this.ocrInsuredName = insuredPersonInfo.getName();
+        this.ocrInsuredIdentifyNumber = insuredPersonInfo.getIdentifyNumber();
+        this.ocrInsuredAddress = insuredPersonInfo.getAddr();
+        this.ocrAppliName = policyHolderInfo.getName();
+        this.ocrAppliIdentifyNumber = policyHolderInfo.getIdentifyNumber();
+        this.ocrAppliAddress = policyHolderInfo.getAddr();
+        this.ocrOwnerAddress =  policyHolderInfo.getAddr();
+        this.ocrVinNo = prpTitemCar.getVinNo();
+        this.ocrEngineNo = prpTitemCar.getEngineNo();
+        this.ocrModelName = prpTitemCar.getCarUsage();
+        this.ocrUseYears = prpTitemCar.getUseYears();
+        this.ocrUseNatureCode = prpTitemCar.getUseNatureCode();
+        this.ocrMaincarKindCode =  prpTitemCar.getMaincarKindCode();
+        this.ocrCarKindCode = prpTitemCar.getCarKindCode();
+        this.ocrLicenseCategory = prpTitemCar.getLicenseCategory();
+        this.ocrLicenseKindCode = prpTitemCar.getLicenseKindCode();
+        this.ocrIdvalidStartDate = prpTitemCar.getIdvalidStartDate();
+        this.ocrIdValidDate = prpTitemCar.getIdValidDate();
+        this.ocrAppliIDValidStartDate = policyHolderInfo.getIdentifyValidDate();
+        this.ocrAppliIDValidDate = policyHolderInfo.getIdentifyValidEndDate();
+        this.ocrInsuredIDValidStartDate = insuredPersonInfo.getIdentifyValidDate();
+        this.ocrInsuredIDValidDate = insuredPersonInfo.getIdentifyValidEndDate();
+        this.ocrEnrolLDate = prpTitemCar.getEnrollDate();
+        this.ocrChgOwnerDate = prpTitemCar.getChgOwnerDate();
+    }
+}

+ 479 - 0
tenant/insurance/quotation-guoren/src/main/java/com/jzg/quotation/guoren/crawler/entity/request/GuoRenPrpTinsuredDTO.java

@@ -0,0 +1,479 @@
+package com.jzg.quotation.guoren.crawler.entity.request;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.jzg.commons.entity.quote.vo.CustomerInfoVo;
+import com.jzg.quotation.guoren.crawler.entity.response.GuoRenCrawlerWriteBackAddressData;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@NoArgsConstructor
+@Data
+public class GuoRenPrpTinsuredDTO {
+
+    @JsonProperty("appliCode")
+    private String appliCode;
+
+    @JsonProperty("appliName")
+    private String appliName;
+
+    @JsonProperty("appliIdentifyType")
+    private String appliIdentifyType;
+
+    @JsonProperty("appliIdentifyNumber")
+    private String appliIdentifyNumber;
+
+    @JsonProperty("appliLinkerName")
+    private String appliLinkerName;
+
+    @JsonProperty("appliMobile")
+    private String appliMobile;
+
+    @JsonProperty("appliAddress")
+    private String appliAddress;
+
+    @JsonProperty("appliPostCode")
+    private String appliPostCode;
+
+    @JsonProperty("appSerialNo")
+    private String appSerialNo;
+
+    @JsonProperty("appliInsuredNature")
+    private String appliInsuredNature;
+
+    @JsonProperty("insuredInsuredType")
+    private String insuredInsuredType;
+
+    @JsonProperty("insuredIdentifyType")
+    private String insuredIdentifyType;
+
+    @JsonProperty("insuredIdentifyNumber")
+    private String insuredIdentifyNumber;
+
+    @JsonProperty("insuredCName")
+    private String insuredCName;
+
+    @JsonProperty("insuredInsuredNature")
+    private String insuredInsuredNature;
+
+    @JsonProperty("insuredName")
+    private String insuredName;
+
+    @JsonProperty("insuredUnitPhone")
+    private String insuredUnitPhone;
+
+    @JsonProperty("insuredLinkerName")
+    private String insuredLinkerName;
+
+    @JsonProperty("insuredMobile")
+    private String insuredMobile;
+
+    @JsonProperty("insuredAddress")
+    private String insuredAddress;
+
+    @JsonProperty("insuredPostCode")
+    private String insuredPostCode;
+
+    @JsonProperty("insuredFastLinkerTel")
+    private String insuredFastLinkerTel;
+
+    @JsonProperty("insuredSerialNo")
+    private String insuredSerialNo;
+
+    @JsonProperty("unitScale")
+    private String unitScale;
+
+    @JsonProperty("insuredLowerViewFlag")
+    private String insuredLowerViewFlag;
+
+    @JsonProperty("appliProvinceName")
+    private String appliProvinceName;
+
+    @JsonProperty("appliCityName")
+    private String appliCityName;
+
+    @JsonProperty("insuredProvinceName")
+    private String insuredProvinceName;
+
+    @JsonProperty("insuredCityName")
+    private String insuredCityName;
+
+    @JsonProperty("appliSex")
+    private String appliSex;
+
+    @JsonProperty("insuredSex")
+    private String insuredSex;
+
+    @JsonProperty("appliVIPType")
+    private String appliVIPType;
+
+    @JsonProperty("insuredVIPType")
+    private String insuredVIPType;
+
+    @JsonProperty("appliVIPFlag")
+    private String appliVIPFlag;
+
+    @JsonProperty("insuredVIPFlag")
+    private String insuredVIPFlag;
+
+    @JsonProperty("appliIDValidDate")
+    private String appliIDValidDate;
+
+    @JsonProperty("appliIDValidStartDate")
+    private String appliIDValidStartDate;
+
+    @JsonProperty("insuredIDValidStartDate")
+    private String insuredIDValidStartDate;
+
+    @JsonProperty("insuredIDValidDate")
+    private String insuredIDValidDate;
+
+    @JsonProperty("appliLinkerIdentifiNumber")
+    private String appliLinkerIdentifiNumber;
+
+    @JsonProperty("appliNationality")
+    private String appliNationality;
+
+    @JsonProperty("appliOccupation")
+    private String appliOccupation;
+
+    @JsonProperty("appliBsinessScope")
+    private String appliBsinessScope;
+
+    @JsonProperty("appliLinkmanIDType")
+    private String appliLinkmanIDType;
+
+    @JsonProperty("appliLinkmanIDNum")
+    private String appliLinkmanIDNum;
+
+    @JsonProperty("appliLinkmanNationality")
+    private String appliLinkmanNationality;
+
+    @JsonProperty("appliShareholders")
+    private String appliShareholders;
+
+    @JsonProperty("appliLegalRepresentative")
+    private String appliLegalRepresentative;
+
+    @JsonProperty("appliShareholdersIDType")
+    private String appliShareholdersIDType;
+
+    @JsonProperty("appliShareholdersIDNum")
+    private String appliShareholdersIDNum;
+
+    @JsonProperty("appliLegalRepresentativeIDType")
+    private String appliLegalRepresentativeIDType;
+
+    @JsonProperty("appliLegalRepresentativeIDNum")
+    private String appliLegalRepresentativeIDNum;
+
+    @JsonProperty("insuredNationality")
+    private String insuredNationality;
+
+    @JsonProperty("insuredOccupation")
+    private String insuredOccupation;
+
+    @JsonProperty("insuredBsinessScope")
+    private String insuredBsinessScope;
+
+    @JsonProperty("appliIdentifyTypeSides")
+    private String appliIdentifyTypeSides;
+
+    @JsonProperty("insuredLinkmanIDType")
+    private String insuredLinkmanIDType;
+
+    @JsonProperty("insuredLinkmanIDNum")
+    private String insuredLinkmanIDNum;
+
+    @JsonProperty("insuredLinkmanNationality")
+    private String insuredLinkmanNationality;
+
+    @JsonProperty("insuredShareholders")
+    private String insuredShareholders;
+
+    @JsonProperty("insuredLegalRepresentative")
+    private String insuredLegalRepresentative;
+
+    @JsonProperty("insuredShareholdersIDType")
+    private String insuredShareholdersIDType;
+
+    @JsonProperty("insuredShareholdersIDNum")
+    private String insuredShareholdersIDNum;
+
+    @JsonProperty("insuredLegalRepresentativeIDType")
+    private String insuredLegalRepresentativeIDType;
+
+    @JsonProperty("insuredLegalRepresentativeIDNum")
+    private String insuredLegalRepresentativeIDNum;
+
+    @JsonProperty("appliOccupationCode")
+    private String appliOccupationCode;
+
+    @JsonProperty("insuredOccupationCode")
+    private String insuredOccupationCode;
+
+    @JsonProperty("insuredPostName")
+    private String insuredPostName;
+
+    @JsonProperty("insuredUnitNature")
+    private String insuredUnitNature;
+
+    @JsonProperty("insuredModifyFlag")
+    private String insuredModifyFlag;
+
+    @JsonProperty("appliPostName")
+    private String appliPostName;
+
+    @JsonProperty("appliUnitNature")
+    private String appliUnitNature;
+
+    @JsonProperty("appliModifyFlag")
+    private String appliModifyFlag;
+
+    @JsonProperty("appliBusinesssource")
+    private String appliBusinesssource;
+
+    @JsonProperty("appliUnitType")
+    private String appliUnitType;
+
+    @JsonProperty("appliOtherIdentifyType")
+    private String appliOtherIdentifyType;
+
+    @JsonProperty("appliOtherIdentifyNumber")
+    private String appliOtherIdentifyNumber;
+
+    @JsonProperty("appliLegalBeneficiary")
+    private String appliLegalBeneficiary;
+
+    @JsonProperty("insuredUnitType")
+    private String insuredUnitType;
+
+    @JsonProperty("insuredLegalBeneficiary")
+    private String insuredLegalBeneficiary;
+
+    @JsonProperty("appliPhoneNumber2")
+    private Object appliPhoneNumber2;
+
+    @JsonProperty("insuredPhoneNumber2")
+    private Object insuredPhoneNumber2;
+
+    @JsonProperty("appliAreas")
+    private String appliAreas;
+
+    @JsonProperty("insuredAreas")
+    private String insuredAreas;
+
+    @JsonProperty("appliUnitcodeTimes")
+    private Object appliUnitcodeTimes;
+
+    @JsonProperty("appliLinkmanIDTimes")
+    private Object appliLinkmanIDTimes;
+
+    @JsonProperty("appliShareholdersIDTimes")
+    private Object appliShareholdersIDTimes;
+
+    @JsonProperty("appliLegalRepresentativeIDTimes")
+    private Object appliLegalRepresentativeIDTimes;
+
+    @JsonProperty("insuredUnitcodeTimes")
+    private Object insuredUnitcodeTimes;
+
+    @JsonProperty("insuredLinkmanIDTimes")
+    private Object insuredLinkmanIDTimes;
+
+    @JsonProperty("insuredBeneficialOwnerIDTimes")
+    private Object insuredBeneficialOwnerIDTimes;
+
+    @JsonProperty("insuredShareholdersIDTimes")
+    private Object insuredShareholdersIDTimes;
+
+    @JsonProperty("insuredLegalRepresentativeIDTimes")
+    private Object insuredLegalRepresentativeIDTimes;
+
+    @JsonProperty("appliLowerViewFlag")
+    private String appliLowerViewFlag;
+
+    @JsonProperty("appliAgeW")
+    private String appliAgeW;
+
+    @JsonProperty("appliBirthday")
+    private String appliBirthday;
+
+    @JsonProperty("appliclientNatureCode")
+    private String appliclientNatureCode;
+
+    @JsonProperty("appliclientNatureName")
+    private String appliclientNatureName;
+
+    @JsonProperty("insuredclientNatureCode")
+    private String insuredclientNatureCode;
+
+    @JsonProperty("insuredclientNatureName")
+    private String insuredclientNatureName;
+
+    @JsonProperty("insuredBirthday")
+    private String insuredBirthday;
+
+    @JsonProperty("insuredAgeW")
+    private String insuredAgeW;
+
+    @JsonProperty("insuredLinkerIdentifiNumber")
+    private String insuredLinkerIdentifiNumber;
+
+    @JsonProperty("birthday")
+    private String birthday;
+
+    @JsonProperty("appliRegisteredCapital")
+    private Object appliRegisteredCapital;
+
+    @JsonProperty("appliUnitcodeTimesLongFlag")
+    private String appliUnitcodeTimesLongFlag;
+
+    @JsonProperty("insuredBeneficialOwnerName")
+    private String insuredBeneficialOwnerName;
+
+    @JsonProperty("insuredBeneficialOwnerNationality")
+    private String insuredBeneficialOwnerNationality;
+
+    @JsonProperty("insuredBeneficialOwnerIDType")
+    private String insuredBeneficialOwnerIDType;
+
+    @JsonProperty("insuredBeneficialOwnerIDNum")
+    private String insuredBeneficialOwnerIDNum;
+
+    @JsonProperty("insuredBeneficialOwnerAddress")
+    private String insuredBeneficialOwnerAddress;
+
+    @JsonProperty("insuredRegisteredCapital")
+    private Object insuredRegisteredCapital;
+
+    @JsonProperty("insuredUnitcodeTimesLongFlag")
+    private String insuredUnitcodeTimesLongFlag;
+
+    @JsonProperty("appliNationalityCode")
+    private String appliNationalityCode;
+
+    @JsonProperty("insuredNationalityCode")
+    private String insuredNationalityCode;
+
+    @JsonProperty("agentidcardtype")
+    private String agentidcardtype;
+
+    public GuoRenPrpTinsuredDTO(CustomerInfoVo policyHolderInfo, CustomerInfoVo insuredPersonInfo, GuoRenCrawlerWriteBackAddressData policyHolderAddr, GuoRenCrawlerWriteBackAddressData insuredPersonAddr, String ownerBirthday, GuoRenPrpTitemCarDTO prpTitemCar) {
+
+        this.appliNationalityCode = "156";
+        this.insuredNationalityCode = "156";
+        this.agentidcardtype = "01";
+
+        this.appliName = policyHolderInfo.getName();
+        this.appliIdentifyType = "01";
+        this.appliIdentifyNumber = policyHolderInfo.getIdentifyNumber();
+        this.appliLinkerName = policyHolderInfo.getName();
+        this.appliMobile = policyHolderInfo.getMobile();
+        this.appliAddress = policyHolderInfo.getAddr();
+        this.appliPostCode = policyHolderAddr.getCityPostCode();
+        this.appliInsuredNature = "3";
+        this.appliProvinceName = policyHolderInfo.getProvince();
+        this.appliCityName = policyHolderInfo.getCity();
+        this.appliSex = policyHolderInfo.getGender();
+        this.appliIDValidDate = policyHolderInfo.getIdentifyValidEndDate();
+        this.appliIDValidStartDate = policyHolderInfo.getIdentifyValidDate();
+
+        this.insuredIdentifyType = insuredPersonInfo.getIdentifyType();
+        this.insuredIdentifyNumber = insuredPersonInfo.getIdentifyNumber();
+        this.insuredCName = insuredPersonInfo.getName();
+        this.insuredInsuredNature = "3";
+        this.insuredName = insuredPersonInfo.getName();
+        this.insuredUnitPhone = insuredPersonInfo.getMobile();
+        this.insuredLinkerName = insuredPersonInfo.getName();
+        this.insuredMobile = insuredPersonInfo.getMobile();
+        this.insuredAddress = insuredPersonInfo.getPersonType();
+        this.insuredPostCode = insuredPersonAddr.getCityPostCode();
+        this.insuredLowerViewFlag = "0";
+        this.insuredProvinceName = insuredPersonInfo.getProvince();
+        this.insuredCityName = insuredPersonInfo.getCity();
+        this.insuredSex = insuredPersonInfo.getGender();
+        this.insuredIDValidStartDate = insuredPersonInfo.getIdentifyValidDate();
+        this.insuredIDValidDate = insuredPersonInfo.getIdentifyValidEndDate();
+
+        this.appliVIPType = "00";
+        this.insuredVIPType = "00";
+        this.appliVIPFlag = "00";
+        this.insuredVIPFlag = "00";
+
+        this.appliLinkerIdentifiNumber = "";
+        this.appliNationality = "中国";
+        this.appliOccupation = "中国共产党机关负责人";
+        this.appliBsinessScope = "";
+        this.appliLinkmanIDType = "";
+        this.appliLinkmanIDNum = "";
+        this.appliLinkmanNationality = "";
+        this.appliShareholders = "";
+        this.appliLegalRepresentative = "";
+        this.appliShareholdersIDType = "";
+        this.appliShareholdersIDNum = "";
+        this.appliLegalRepresentativeIDType = "";
+        this.appliLegalRepresentativeIDNum = "";
+        this.insuredNationality = "中国";
+        this.insuredOccupation = "中国共产党机关负责人";
+        this.insuredBsinessScope = "";
+        this.insuredLinkmanIDType = "";
+        this.insuredLinkmanIDNum = "";
+        this.insuredLinkmanNationality = "";
+        this.insuredShareholders = "";
+        this.insuredLegalRepresentative = "";
+        this.insuredShareholdersIDType = "";
+        this.insuredShareholdersIDNum = "";
+        this.insuredLegalRepresentativeIDType = "";
+        this.insuredLegalRepresentativeIDNum = "";
+        this.appliOccupationCode = "80000";
+        this.insuredOccupationCode = "80000";
+        this.appliIdentifyTypeSides = prpTitemCar.getCarOwnerIdentifyTypeSides();
+        this.insuredPostName = insuredPersonAddr.getCounty();
+        this.insuredUnitNature = "";
+        this.insuredModifyFlag = "";
+
+        this.appliPostName = policyHolderAddr.getCounty();
+        this.appliUnitNature = "";
+        this.appliModifyFlag = "";
+        this.appliBusinesssource = "";
+        this.appliUnitType = "12";
+        this.appliOtherIdentifyType = "";
+        this.appliOtherIdentifyNumber = "";
+        this.appliLegalBeneficiary = "法定";
+        this.insuredUnitType = "12";
+        this.insuredLegalBeneficiary = "法定";
+        this.appliAreas = policyHolderAddr.getArea();
+        this.insuredAreas = insuredPersonAddr.getArea();
+        this.appliUnitcodeTimes = null;
+        this.appliLinkmanIDTimes = null;
+        this.appliShareholdersIDTimes = null;
+        this.appliLegalRepresentativeIDTimes = null;
+        this.insuredUnitcodeTimes = null;
+        this.insuredLinkmanIDTimes = null;
+        this.insuredBeneficialOwnerIDTimes = null;
+        this.insuredShareholdersIDTimes = null;
+        this.insuredLegalRepresentativeIDTimes = null;
+        this.appliLowerViewFlag = "0";
+        this.appliAgeW = String.valueOf(policyHolderInfo.getAge());
+        this.appliBirthday = policyHolderInfo.getBirthday();
+        this.appliclientNatureCode = " ";
+        this.appliclientNatureName = " ";
+        this.insuredclientNatureCode = " ";
+        this.insuredclientNatureName = " ";
+        this.insuredBirthday = insuredPersonInfo.getBirthday();
+        this.insuredAgeW = String.valueOf(insuredPersonInfo.getAge());
+        this.insuredLinkerIdentifiNumber = "";
+        this.birthday = ownerBirthday;
+        this.appliRegisteredCapital = null;
+        this.appliUnitcodeTimesLongFlag = "0";
+        this.insuredBeneficialOwnerName = "";
+        this.insuredBeneficialOwnerNationality = "";
+        this.insuredBeneficialOwnerIDType = "";
+        this.insuredBeneficialOwnerIDNum = "";
+        this.insuredBeneficialOwnerAddress = "";
+        this.insuredRegisteredCapital = null;
+        this.insuredUnitcodeTimesLongFlag = "0";
+    }
+
+
+}

+ 632 - 0
tenant/insurance/quotation-guoren/src/main/java/com/jzg/quotation/guoren/crawler/entity/request/GuoRenPrpTitemCarDTO.java

@@ -0,0 +1,632 @@
+package com.jzg.quotation.guoren.crawler.entity.request;
+
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.jzg.quotation.guoren.crawler.entity.response.GuoRenCrawlerGetCarPriceData;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@NoArgsConstructor
+@Data
+public class GuoRenPrpTitemCarDTO {
+
+    @JsonProperty("licenseNo")
+    private String licenseNo;
+
+    @JsonProperty("vinNo")
+    private String vinNo;
+
+    @JsonProperty("engineNo")
+    private String engineNo;
+
+    @JsonProperty("frameNo")
+    private String frameNo;
+
+    @JsonProperty("carIdentifyType")
+    private String carIdentifyType;
+
+    @JsonProperty("rateCode")
+    private String rateCode;
+
+    @JsonProperty("loanVehicleFlag")
+    private String loanVehicleFlag;
+
+    @JsonProperty("chgOwnerFlag")
+    private String chgOwnerFlag;
+
+    @JsonProperty("ciChgOwnerFlag")
+    private String ciChgOwnerFlag;
+
+    @JsonProperty("biChgOwnerFlag")
+    private String biChgOwnerFlag;
+
+    @JsonProperty("newDeviceFlag")
+    private String newDeviceFlag;
+
+    @JsonProperty("chargingpostFlag")
+    private String chargingpostFlag;
+
+    @JsonProperty("productType")
+    private String productType;
+
+    @JsonProperty("ownerAreas")
+    private String ownerAreas;
+
+    @JsonProperty("relationShip")
+    private String relationShip;
+
+    @JsonProperty("carCertificateDate")
+    private String carCertificateDate;
+
+    @JsonProperty("newCaRegistration")
+    private String newCaRegistration;
+
+    @JsonProperty("ocr_invoice_flag")
+    private String ocrInvoiceFlag;
+
+    @JsonProperty("idvalidStartDate")
+    private String idvalidStartDate;
+
+    @JsonProperty("carOwnerNature")
+    private String carOwnerNature;
+
+    @JsonProperty("birthday")
+    private String birthday;
+
+    @JsonProperty("idValidDate")
+    private String idValidDate;
+
+    @JsonProperty("carOwner")
+    private String carOwner;
+
+    @JsonProperty("carOwnerIdentifyType")
+    private String carOwnerIdentifyType;
+
+    @JsonProperty("carOwnerIdentifyNumber")
+    private String carOwnerIdentifyNumber;
+
+    @JsonProperty("sex")
+    private String sex;
+
+    @JsonProperty("carOwnerAgeW")
+    private String carOwnerAgeW;
+
+    @JsonProperty("ownerAddress")
+    private String ownerAddress;
+
+    @JsonProperty("newEnergyFlag")
+    private String newEnergyFlag;
+
+    @JsonProperty("enrollDateValueStatus")
+    private Integer enrollDateValueStatus;
+
+    @JsonProperty("enrollDate")
+    private String enrollDate;
+
+    @JsonProperty("chgOwnerDate")
+    private String chgOwnerDate;
+
+    @JsonProperty("useYears")
+    private Integer useYears;
+
+    @JsonProperty("brandName")
+    private String brandName;
+
+    @JsonProperty("carInsuredRelation")
+    private String carInsuredRelation;
+
+    @JsonProperty("useNatureCode")
+    private String useNatureCode;
+
+    @JsonProperty("maincarKindCode")
+    private String maincarKindCode;
+
+    @JsonProperty("carKindCode")
+    private String carKindCode;
+
+    @JsonProperty("licenseCategory")
+    private String licenseCategory;
+
+    @JsonProperty("carTypeCode")
+    private String carTypeCode;
+
+    @JsonProperty("licenseKindCode")
+    private String licenseKindCode;
+
+    @JsonProperty("countryNature")
+    private String countryNature;
+
+    @JsonProperty("compromisePrice")
+    private String compromisePrice;
+
+    @JsonProperty("fuelType")
+    private String fuelType;
+
+    @JsonProperty("seatCount")
+    private String seatCount;
+
+    @JsonProperty("tonCount")
+    private String tonCount;
+
+    @JsonProperty("exhaustScale")
+    private String exhaustScale;
+
+    @JsonProperty("power")
+    private String power;
+
+    @JsonProperty("completeKerbMass")
+    private String completeKerbMass;
+
+    @JsonProperty("colorCode")
+    private String colorCode;
+
+    @JsonProperty("pureElectricBatteryType")
+    private String pureElectricBatteryType;
+
+    @JsonProperty("speed")
+    private Object speed;
+
+    @JsonProperty("powertypecode")
+    private String powertypecode;
+
+    @JsonProperty("carCertificateType")
+    private String carCertificateType;
+
+    @JsonProperty("restricFlag")
+    private String restricFlag;
+
+    @JsonProperty("carAreas")
+    private String carAreas;
+
+    @JsonProperty("ownerProvinceName")
+    private String ownerProvinceName;
+
+    @JsonProperty("ownerCityName")
+    private String ownerCityName;
+
+    @JsonProperty("ownerPostName")
+    private String ownerPostName;
+
+    @JsonProperty("postCode")
+    private String postCode;
+
+    @JsonProperty("identiFication")
+    private Integer identiFication;
+
+    @JsonProperty("carKindCodeDesc")
+    private String carKindCodeDesc;
+
+    @JsonProperty("licenseColorCode")
+    private String licenseColorCode;
+
+    @JsonProperty("carOwnerRecogNition")
+    private String carOwnerRecogNition;
+
+    @JsonProperty("vinNoRecogNition")
+    private String vinNoRecogNition;
+
+    @JsonProperty("engineNoRecogNition")
+    private String engineNoRecogNition;
+
+    @JsonProperty("licenseNoRecogNition")
+    private String licenseNoRecogNition;
+
+    @JsonProperty("modelName")
+    private String modelName;
+
+    @JsonProperty("modelNameRecogNition")
+    private String modelNameRecogNition;
+
+    @JsonProperty("enrollDateoRecogNition")
+    private String enrollDateoRecogNition;
+
+    @JsonProperty("chgOwnerDateRecogNition")
+    private String chgOwnerDateRecogNition;
+
+    @JsonProperty("useNatureCodeNitionNew")
+    private String useNatureCodeNitionNew;
+
+    @JsonProperty("useNatureCodeNition")
+    private String useNatureCodeNition;
+
+    @JsonProperty("maincarKindCodeNition")
+    private String maincarKindCodeNition;
+
+    @JsonProperty("carKindCodeNition")
+    private String carKindCodeNition;
+
+    @JsonProperty("licenseKindCodeNition")
+    private String licenseKindCodeNition;
+
+    @JsonProperty("clauseType")
+    private String clauseType;
+
+    @JsonProperty("natureOfUse")
+    private Integer natureOfUse;
+
+    @JsonProperty("addressRevise")
+    private String addressRevise;
+
+    @JsonProperty("carOwnerIdentifyTypeSides")
+    private String carOwnerIdentifyTypeSides;
+
+    @JsonProperty("carOwnerIdentifyNumberRecogNition")
+    private String carOwnerIdentifyNumberRecogNition;
+
+    @JsonProperty("carAddress")
+    private String carAddress;
+
+    @JsonProperty("birthdayRecogNition")
+    private String birthdayRecogNition;
+
+    @JsonProperty("sexRecogNition")
+    private String sexRecogNition;
+
+    @JsonProperty("ownersAddress")
+    private String ownersAddress;
+
+    @JsonProperty("carProvinceName")
+    private String carProvinceName;
+
+    @JsonProperty("carCityName")
+    private String carCityName;
+
+    @JsonProperty("carPostCode")
+    private String carPostCode;
+
+    @JsonProperty("vinClick")
+    private String vinClick;
+
+    @JsonProperty("tonCountlb")
+    private String tonCountlb;
+
+    @JsonProperty("seatCountlb")
+    private Integer seatCountlb;
+
+    @JsonProperty("exhaustScalelb")
+    private Double exhaustScalelb;
+
+    @JsonProperty("powerLB")
+    private Double powerLB;
+
+    @JsonProperty("newFuelModel")
+    private String newFuelModel;
+
+    @JsonProperty("mvSpeed")
+    private Object mvSpeed;
+
+    @JsonProperty("gearBoxtyPecodeName")
+    private String gearBoxtyPecodeName;
+
+    @JsonProperty("gearBoxtyPecode")
+    private String gearBoxtyPecode;
+
+    @JsonProperty("transmissionttype")
+    private String transmissionttype;
+
+    @JsonProperty("stopFlagCodeName")
+    private String stopFlagCodeName;
+
+    @JsonProperty("stopFlagCode")
+    private String stopFlagCode;
+
+    @JsonProperty("riskTypeCodeName")
+    private String riskTypeCodeName;
+
+    @JsonProperty("riskTypeCode")
+    private String riskTypeCode;
+
+    @JsonProperty("riskTypeName")
+    private String riskTypeName;
+
+    @JsonProperty("vehicleClassNewCodeName")
+    private String vehicleClassNewCodeName;
+
+    @JsonProperty("vehicleClassNewCode")
+    private String vehicleClassNewCode;
+
+    @JsonProperty("vehicleClassNewName")
+    private String vehicleClassNewName;
+
+    @JsonProperty("absFlag")
+    private String absFlag;
+
+    @JsonProperty("vehicleSize")
+    private String vehicleSize;
+
+    @JsonProperty("newFuelModelName")
+    private String newFuelModelName;
+
+    @JsonProperty("purchasePrice")
+    private String purchasePrice;
+
+    @JsonProperty("brandCode")
+    private String brandCode;
+
+    @JsonProperty("carbrand")
+    private String carbrand;
+
+    @JsonProperty("modelCodeOld")
+    private String modelCodeOld;
+
+    @JsonProperty("vinModel")
+    private String vinModel;
+
+    @JsonProperty("madeFactory")
+    private String madeFactory;
+
+    @JsonProperty("carUsage")
+    private String carUsage;
+
+    @JsonProperty("vehicleBrand")
+    private String vehicleBrand;
+
+    @JsonProperty("modelCode")
+    private String modelCode;
+
+    @JsonProperty("vehicleCode")
+    private String vehicleCode;
+
+    @JsonProperty("actualValue")
+    private String actualValue;
+
+    @JsonProperty("carName")
+    private String carName;
+
+    @JsonProperty("pureRiskPremium")
+    private String pureRiskPremium;
+
+    @JsonProperty("noticeType")
+    private String noticeType;
+
+    @JsonProperty("ymModelSegmentation")
+    private String ymModelSegmentation;
+
+    @JsonProperty("basePureRiskPremium")
+    private String basePureRiskPremium;
+
+    @JsonProperty("certifiCateDate")
+    private Object certifiCateDate;
+
+    @JsonProperty("makeDate")
+    private Object makeDate;
+
+    @JsonProperty("identify")
+    private String identify;
+
+    @JsonProperty("lossCondition")
+    private String lossCondition;
+
+    @JsonProperty("lossConditionCode")
+    private String lossConditionCode;
+
+    @JsonProperty("comlossCondition")
+    private String comlossCondition;
+
+    @JsonProperty("termsSystem")
+    private String termsSystem;
+
+    @JsonProperty("clauseTypeSystem")
+    private String clauseTypeSystem;
+
+    @JsonProperty("proposalNo")
+    private String proposalNo;
+
+    @JsonProperty("riskCode")
+    private String riskCode;
+
+    @JsonProperty("itemNo")
+    private Integer itemNo;
+
+    @JsonProperty("agreeDriverFlag")
+    private String agreeDriverFlag;
+
+    @JsonProperty("runAreaCode")
+    private String runAreaCode;
+
+    @JsonProperty("runAreaName")
+    private String runAreaName;
+
+    @JsonProperty("runMiles")
+    private Integer runMiles;
+
+    @JsonProperty("currency")
+    private String currency;
+
+    @JsonProperty("carCheckTime")
+    private String carCheckTime;
+
+    @JsonProperty("relievingAreaCode")
+    private String relievingAreaCode;
+
+    @JsonProperty("purchasePricelb")
+    private Integer purchasePricelb;
+
+    @JsonProperty("carDealerNameFlag")
+    private String carDealerNameFlag;
+
+    @JsonProperty("ecdemicVehicleFlag")
+    private String ecdemicVehicleFlag;
+
+    @JsonProperty("tractionTonCount")
+    private String tractionTonCount;
+
+    @JsonProperty("newCarFlag")
+    private String newCarFlag;
+
+    @JsonProperty("carVhicleModel")
+    private String carVhicleModel;
+
+    @JsonProperty("actualValueFg")
+    private Integer actualValueFg;
+
+    @JsonProperty("ownerModifyFlag")
+    private Integer ownerModifyFlag;
+
+    @JsonProperty("IDValidDate")
+    private Object iDValidDate;
+
+    @JsonProperty("virtualInsured")
+    private String virtualInsured;
+
+    @JsonProperty("nonVehicleSubsidy")
+    private String nonVehicleSubsidy;
+
+    @JsonProperty("original_Route_Renewal_FlagBI")
+    private String originalRouteRenewalFlagbi;
+
+    @JsonProperty("original_Route_Renewal_FlagCI")
+    private String originalRouteRenewalFlagci;
+
+    @JsonIgnore
+    private String derailleurType;
+
+    public GuoRenPrpTitemCarDTO(GuoRenCrawlerGetCarPriceRequest getCarPriceRequest, GuoRenCrawlerGetCarPriceData carPriceData) {
+        this.enrollDateValueStatus = getCarPriceRequest.getEnrollDateValueStatus();
+        this.postCode = getCarPriceRequest.getPostCode();
+        this.ocrInvoiceFlag = getCarPriceRequest.getOcrInvoiceFlag();
+        this.chargingpostFlag = getCarPriceRequest.getChargingpostFlag();
+        this.proposalNo = "";
+        this.carInsuredRelation = getCarPriceRequest.getCarInsuredRelation();
+        this.carOwner = getCarPriceRequest.getCarOwner();
+        this.clauseType = getCarPriceRequest.getClauseType();
+        this.newDeviceFlag = getCarPriceRequest.getNewDeviceFlag();
+        this.licenseNo = getCarPriceRequest.getLicenseNo();
+        this.licenseColorCode = getCarPriceRequest.getLicenseColorCode();
+        this.carKindCode = getCarPriceRequest.getCarKindCode();
+        this.engineNo = getCarPriceRequest.getEngineNo();
+        this.vinNo = getCarPriceRequest.getVinNo();
+        this.frameNo = getCarPriceRequest.getVinNo();
+        this.enrollDate = getCarPriceRequest.getEnrollDate();
+        this.useYears = getCarPriceRequest.getUseYears();
+        this.modelCode = carPriceData.getModelCode();
+        this.brandName = getCarPriceRequest.getBrandName();
+        this.countryNature = getCarPriceRequest.getCountryNature();
+        this.useNatureCode = getCarPriceRequest.getUseNatureCode();
+        this.seatCount = getCarPriceRequest.getSeatCount();
+        this.tonCount = getCarPriceRequest.getTonCount();
+        this.exhaustScale = getCarPriceRequest.getExhaustScale();
+        this.colorCode = getCarPriceRequest.getColorCode();
+        this.ownerAddress = getCarPriceRequest.getOwnerAddress();
+        this.rateCode = getCarPriceRequest.getRateCode();
+        this.carUsage = getCarPriceRequest.getCarUsage();
+        this.purchasePrice = getCarPriceRequest.getPurchasePrice();
+        this.actualValue = carPriceData.getActualValue();
+        this.licenseKindCode = getCarPriceRequest.getLicenseKindCode();
+        this.maincarKindCode = getCarPriceRequest.getMaincarKindCode();
+        this.purchasePricelb = getCarPriceRequest.getPurchasePricelb();
+        this.seatCountlb = Integer.valueOf(getCarPriceRequest.getSeatCount());
+        this.exhaustScalelb = getCarPriceRequest.getExhaustScalelb();
+        this.restricFlag = getCarPriceRequest.getRestricFlag();
+        this.completeKerbMass = getCarPriceRequest.getCompleteKerbMass();
+        this.licenseCategory = getCarPriceRequest.getLicenseCategory();
+        this.certifiCateDate = getCarPriceRequest.getCertifiCateDate();
+        this.vehicleBrand = getCarPriceRequest.getVehicleBrand();
+        this.carOwnerIdentifyType = getCarPriceRequest.getCarOwnerIdentifyType();
+        this.carOwnerIdentifyNumber = getCarPriceRequest.getCarOwnerIdentifyNumber();
+        this.tractionTonCount = getCarPriceRequest.getTractionTonCount();
+        this.chgOwnerFlag = getCarPriceRequest.getChgOwnerFlag();
+        this.loanVehicleFlag = getCarPriceRequest.getLoanVehicleFlag();
+        this.chgOwnerDate = getCarPriceRequest.getChgOwnerDate();
+        this.carOwnerNature = getCarPriceRequest.getCarOwnerNature();
+        this.fuelType = getCarPriceRequest.getFuelType();
+        this.carCertificateType = getCarPriceRequest.getCarCertificateType();
+        this.carVhicleModel = getCarPriceRequest.getCarVhicleModel();
+        this.tonCountlb = getCarPriceRequest.getTonCountlb();
+        this.carTypeCode = getCarPriceRequest.getCarTypeCode();
+        this.newFuelModel = getCarPriceRequest.getNewFuelModel();
+        this.noticeType = carPriceData.getNoticeType();
+        this.carName = carPriceData.getCarName();
+        this.modelCodeOld = getCarPriceRequest.getModelCodeOld();
+        this.clauseTypeSystem = getCarPriceRequest.getClauseTypeSystem();
+        this.productType = getCarPriceRequest.getProductType();
+        this.basePureRiskPremium = carPriceData.getCarSeriesName();
+        this.compromisePrice = carPriceData.getActualValue();
+        this.lossCondition = getCarPriceRequest.getCarProvinceName();
+        this.comlossCondition = getCarPriceRequest.getCarCityName();
+        this.lossConditionCode = getCarPriceRequest.getAgentCode();
+        this.idValidDate = getCarPriceRequest.getIdValidDate();
+        this.idvalidStartDate = getCarPriceRequest.getIdvalidStartDate();
+        this.sex = getCarPriceRequest.getSex();
+        this.power = getCarPriceRequest.getPower();
+        this.powerLB = getCarPriceRequest.getPowerLB();
+        this.brandCode = getCarPriceRequest.getBrandCode();
+        this.vehicleCode = carPriceData.getSearchSequenceNo();
+        this.newFuelModelName = getCarPriceRequest.getNewFuelModelName();
+        this.termsSystem = getCarPriceRequest.getTermsSystem();
+        this.modelName = getCarPriceRequest.getCarUsage();
+        this.ownerProvinceName = getCarPriceRequest.getOwnerProvinceName();
+        this.ownerCityName = getCarPriceRequest.getOwnerCityName();
+        this.carAreas = getCarPriceRequest.getCarAreas();
+        this.relationShip = getCarPriceRequest.getRelationShip();
+        this.ownerPostName = getCarPriceRequest.getOwnerPostName();
+        this.ciChgOwnerFlag = getCarPriceRequest.getCiChgOwnerFlag();
+        this.biChgOwnerFlag = getCarPriceRequest.getBiChgOwnerFlag();
+        this.carIdentifyType = getCarPriceRequest.getCarIdentifyType();
+        this.carKindCodeDesc = getCarPriceRequest.getCarKindCodeDesc();
+        this.newEnergyFlag = getCarPriceRequest.getNewEnergyFlag();
+        this.pureElectricBatteryType = getCarPriceRequest.getPureElectricBatteryType();
+        this.birthday = getCarPriceRequest.getBirthday();
+        this.idvalidStartDate = getCarPriceRequest.getIdvalidStartDate();
+        this.carCertificateDate = getCarPriceRequest.getCertifiCateDate();
+        this.newCaRegistration = getCarPriceRequest.getNewCaRegistration();
+        this.carAddress = getCarPriceRequest.getCarAddress();
+        this.carCityName = getCarPriceRequest.getCarCityName();
+        this.carProvinceName = getCarPriceRequest.getCarProvinceName();
+        this.iDValidDate = getCarPriceRequest.getIdValidDate();
+        this.ownerAreas = getCarPriceRequest.getOwnerAreas();
+        this.addressRevise = getCarPriceRequest.getAddressRevise();
+        this.gearBoxtyPecodeName = getCarPriceRequest.getGearBoxtyPecodeName();
+        this.gearBoxtyPecode = getCarPriceRequest.getGearBoxtyPecode();
+        this.transmissionttype = getCarPriceRequest.getTransmissionttype();
+        this.stopFlagCode = getCarPriceRequest.getStopFlagCode();
+        this.riskTypeCodeName = getCarPriceRequest.getRiskTypeCodeName();
+        this.riskTypeCode = getCarPriceRequest.getRiskTypeCode();
+        this.riskTypeName = getCarPriceRequest.getRiskTypeName();
+        this.vehicleClassNewCodeName = getCarPriceRequest.getVehicleClassNewCodeName();
+        this.vehicleClassNewCode = getCarPriceRequest.getVehicleClassNewCode();
+        this.vehicleClassNewName = getCarPriceRequest.getVehicleClassNewName();
+        this.absFlag = getCarPriceRequest.getAbsFlag();
+        this.vehicleSize = getCarPriceRequest.getVehicleSize();
+        this.powertypecode = getCarPriceRequest.getPowertypecode();
+        this.stopFlagCodeName = getCarPriceRequest.getStopFlagCodeName();
+        this.carbrand = getCarPriceRequest.getCarbrand();
+        this.carOwnerAgeW = getCarPriceRequest.getCarOwnerAgeW();
+        this.pureRiskPremium = carPriceData.getPureRiskPremium();
+        this.ymModelSegmentation = carPriceData.getYmModelSegmentation();
+        this.originalRouteRenewalFlagbi = getCarPriceRequest.getOriginalRouteRenewalFlagbi();
+        this.originalRouteRenewalFlagci = getCarPriceRequest.getOriginalRouteRenewalFlagci();
+        this.vinClick = getCarPriceRequest.getVinClick();
+        this.speed = getCarPriceRequest.getSpeed();
+        this.mvSpeed = getCarPriceRequest.getMvSpeed();
+        this.vinModel = getCarPriceRequest.getVinModel();
+        this.madeFactory = carPriceData.getTotalVehicleWeight();
+        this.makeDate = carPriceData.getMakeDate();
+        this.identify = "1";
+        this.derailleurType = carPriceData.getDerailleurType();
+        this.powertypecode = carPriceData.getPowertypecode();
+        this.identiFication = getCarPriceRequest.getIdentiFication();
+        this.enrollDateValueStatus = getCarPriceRequest.getEnrollDateValueStatus();
+        this.carOwnerRecogNition = getCarPriceRequest.getCarOwnerRecogNition();
+        this.vinNoRecogNition = getCarPriceRequest.getVinNoRecogNition();
+        this.engineNoRecogNition = getCarPriceRequest.getEngineNoRecogNition();
+        this.licenseNoRecogNition = getCarPriceRequest.getLicenseNoRecogNition();
+        this.modelNameRecogNition = getCarPriceRequest.getModelNameRecogNition();
+        this.enrollDateoRecogNition = getCarPriceRequest.getEnrollDateoRecogNition();
+        this.chgOwnerDateRecogNition = getCarPriceRequest.getChgOwnerDateRecogNition();
+        this.useNatureCodeNitionNew = getCarPriceRequest.getUseNatureCodeNitionNew();
+        this.useNatureCodeNition = getCarPriceRequest.getUseNatureCodeNition();
+        this.maincarKindCodeNition = getCarPriceRequest.getMaincarKindCodeNition();
+        this.carKindCodeNition = getCarPriceRequest.getCarKindCodeNition();
+        this.licenseKindCodeNition = getCarPriceRequest.getLicenseKindCodeNition();
+        this.natureOfUse = getCarPriceRequest.getNatureOfUse();
+        this.carOwnerIdentifyTypeSides = getCarPriceRequest.getCarOwnerIdentifyTypeSides();
+        this.carOwnerIdentifyNumberRecogNition = getCarPriceRequest.getCarOwnerIdentifyNumberRecogNition();
+        this.birthdayRecogNition = getCarPriceRequest.getBirthdayRecogNition();
+        this.sexRecogNition = getCarPriceRequest.getSexRecogNition();
+        this.ownersAddress = getCarPriceRequest.getOwnersAddress();
+        this.carPostCode = getCarPriceRequest.getCarPostCode();
+
+    }
+
+}

+ 1 - 1
tenant/insurance/quotation-guoren/src/main/java/com/jzg/quotation/guoren/crawler/entity/response/GuoRenCrawlerBaseResponse.java

@@ -13,8 +13,8 @@ import java.io.Serializable;
  * @description: 【国任财险】 直连 请求响应
  * @date 2025/11/11 15:13
  */
-@Data
 @NoArgsConstructor
+@Data
 public class GuoRenCrawlerBaseResponse<T> implements Serializable {
 
     @Serial

+ 5 - 2
tenant/insurance/quotation-guoren/src/main/java/com/jzg/quotation/guoren/crawler/entity/response/GuoRenCrawlerProposalNoSaveData.java

@@ -4,6 +4,9 @@ package com.jzg.quotation.guoren.crawler.entity.response;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import lombok.AllArgsConstructor;
 import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.List;
 
 
 /**
@@ -12,7 +15,7 @@ import lombok.Data;
  * @description: 【国任财险】 直连 保存投保单号
  * @date 2025/11/20 10:16
  */
-@AllArgsConstructor
+@NoArgsConstructor
 @Data
 public class GuoRenCrawlerProposalNoSaveData {
 
@@ -29,7 +32,7 @@ public class GuoRenCrawlerProposalNoSaveData {
     private String businessNoBI;
 
     @JsonProperty("blPrpTequity")
-    private String blPrpTequity;
+    private List<Object> blPrpTequity;
 
 
 }

+ 136 - 50
tenant/insurance/quotation-guoren/src/main/java/com/jzg/quotation/guoren/crawler/entity/response/GuoRenCrawlerQueryByVinNoData.java

@@ -16,80 +16,89 @@ import java.io.Serializable;
  */
 @NoArgsConstructor
 @Data
-public class GuoRenCrawlerQueryByVinNoData  implements Serializable, CarModelsFilter {
+public class GuoRenCrawlerQueryByVinNoData implements Serializable, CarModelsFilter {
 
     @Serial
     private static final long serialVersionUID = 6971980500084418903L;
 
-    @JsonProperty("brandNameBC")
-    private String brandNameBC;
+    @JsonProperty("modelCode")
+    private String modelCode;
 
-    @JsonProperty("vehicleAlias")
-    private String vehicleAlias;
+    @JsonProperty("modelName")
+    private String modelName;
 
-    @JsonProperty("importFlag")
-    private String importFlag;
+    @JsonProperty("carbrand")
+    private String carbrand;
 
-    @JsonProperty("factory")
-    private String factory;
+    @JsonProperty("caryear")
+    private String caryear;
 
-    @JsonProperty("jqxClassname")
-    private String jqxClassname;
+    @JsonProperty("completekerbmass")
+    private Integer completekerbmass;
 
-    @JsonProperty("syxClassname")
-    private String syxClassname;
+    @JsonProperty("completekerbmassMin")
+    private Integer completekerbmassMin;
 
-    @JsonProperty("seatCountBC")
-    private String seatCountBC;
+    @JsonProperty("factory")
+    private String factory;
 
-    @JsonProperty("seatMax")
-    private String seatMax;
+    @JsonProperty("importFlag")
+    private String importFlag;
 
-    @JsonProperty("seatMin")
-    private String seatMin;
+    @JsonProperty("jqxclassName")
+    private String jqxclassName;
 
-    @JsonProperty("tonCount")
-    private String tonCount;
+    @JsonProperty("kindredPriceTax")
+    private Double kindredPriceTax;
 
-    @JsonProperty("purchasePriceSZ")
-    private String purchasePriceSZ;
+    @JsonProperty("newfuelModel")
+    private String newfuelModel;
 
-    @JsonProperty("priceShow")
-    private String priceShow;
+    @JsonProperty("purchasePrice")
+    private Double purchasePrice;
 
-    @JsonProperty("priceOtherShow")
-    private String priceOtherShow;
+    @JsonProperty("purchasePricelb")
+    private Double purchasePricelb;
 
-    @JsonProperty("carYear")
-    private String carYear;
+    @JsonProperty("purchasePriceother")
+    private Double purchasePriceother;
 
-    @JsonProperty("exHaustScale")
-    private String exHaustScale;
+    @JsonProperty("purchasePricesz")
+    private Double purchasePricesz;
 
-    @JsonProperty("newFuelModel")
-    private String newFuelModel;
+    @JsonProperty("seatCount")
+    private Double seatCount;
 
-    @JsonProperty("completeKerbMass")
-    private String completeKerbMass;
+    @JsonProperty("seatCountlb")
+    private Integer seatCountlb;
 
-    @JsonProperty("completeKerbMassMin")
-    private String completeKerbMassMin;
+    @JsonProperty("stopFlag")
+    private String stopFlag;
 
-    @JsonProperty("content")
-    private ContentDTO content;
+    @JsonProperty("syxClassName")
+    private String syxClassName;
 
-    @JsonProperty("brandCode")
-    private String brandCode;
+    @JsonProperty("vehiclealias")
+    private String vehiclealias;
+
+    @JsonProperty("vehiclefgwCode")
+    private String vehiclefgwCode;
 
     @JsonProperty("power")
     private String power;
 
+    @JsonProperty("powerLB")
+    private String powerLB;
+
+    @JsonProperty("hfstarttime")
+    private String hfstarttime;
+
+    @JsonProperty("hfendtime")
+    private String hfendtime;
+
     @JsonProperty("fuelType")
     private String fuelType;
 
-    @JsonProperty("engineNo")
-    private String engineNo;
-
     @JsonProperty("gearBoxtyPecode")
     private String gearBoxtyPecode;
 
@@ -120,23 +129,100 @@ public class GuoRenCrawlerQueryByVinNoData  implements Serializable, CarModelsFi
     @JsonProperty("transmissionttype")
     private String transmissionttype;
 
+    @JsonProperty("dataFrom")
+    private String dataFrom;
+
+    @JsonProperty("rImportFlag")
+    private String rImportFlag;
+
+    @JsonProperty("ymElecBatteryType")
+    private String ymElecBatteryType;
+
+    @JsonProperty("ymModelSegmentation")
+    private String ymModelSegmentation;
+
+    @JsonProperty("exHaustScale")
+    private String exHaustScale;
+
+    @JsonProperty("topspeed")
+    private String topSpeed;
+
+    @JsonProperty("exhaustScalelb")
+    private Double exhaustScalelb;
+
+    @JsonProperty("powertypecode")
+    private String powertypecode;
+
+    @JsonProperty("brandNameBC")
+    private String brandNameBC;
+
+    @JsonProperty("vehicleAlias")
+    private String vehicleAlias;
+
+    @JsonProperty("jqxClassname")
+    private String jqxClassname;
+
+    @JsonProperty("syxClassname")
+    private String syxClassname;
+
+    @JsonProperty("seatCountBC")
+    private String seatCountBC;
+
+    @JsonProperty("seatMax")
+    private String seatMax;
+
+    @JsonProperty("seatMin")
+    private String seatMin;
+
+    @JsonProperty("tonCount")
+    private String tonCount;
+
+    @JsonProperty("purchasePriceSZ")
+    private String purchasePriceSZ;
+
+    @JsonProperty("priceShow")
+    private String priceShow;
+
+    @JsonProperty("priceOtherShow")
+    private String priceOtherShow;
+
+    @JsonProperty("carYear")
+    private String carYear;
+
+    @JsonProperty("newFuelModel")
+    private String newFuelModel;
+
+    @JsonProperty("completeKerbMass")
+    private String completeKerbMass;
+
+    @JsonProperty("completeKerbMassMin")
+    private String completeKerbMassMin;
+
+    @JsonProperty("content")
+    private ContentDTO content;
+
+    @JsonProperty("brandCode")
+    private String brandCode;
+
+    @JsonProperty("engineNo")
+    private String engineNo;
+
     @JsonProperty("topspeed")
     private String topspeed;
 
     @JsonProperty("modelCodeBC")
     private String modelCodeBC;
 
-    @JsonProperty("carbrand")
-    private String carbrand;
-
-    @JsonProperty("kindred_PRICE_TAX")
-    private String kindredPriceTax;
-
     @Override
     public String getPurchasePrice() {
         return this.priceShow;
     }
 
+    @Override
+    public String getCarYear() {
+        return this.carYear;
+    }
+
     @NoArgsConstructor
     @Data
     public static class ContentDTO {

+ 1 - 1
tenant/insurance/quotation-guoren/src/main/java/com/jzg/quotation/guoren/crawler/entity/response/GuoRenCrawlerQueryCarModelData.java

@@ -29,7 +29,7 @@ public class GuoRenCrawlerQueryCarModelData implements Serializable {
     private Integer totalCount;
 
     @JsonProperty("content")
-    private List<ContentDTO> content;
+    private List<GuoRenCrawlerQueryByVinNoData> content;
 
     @NoArgsConstructor
     @Data

+ 4 - 2
tenant/insurance/quotation-guoren/src/main/java/com/jzg/quotation/guoren/crawler/service/impl/GuoRenCrawlerOrderServiceImpl.java

@@ -18,8 +18,10 @@ public class GuoRenCrawlerOrderServiceImpl implements GuoRenCrawlerOrderService
     public void saveOrderInfo(QuoteVo quoteVo, GuoRenCrawlerProposalNoSaveData guoRenCrawlerProposalNoSaveData) {
         GuoRenCrawlerOrder guoRenCrawlerOrder = new GuoRenCrawlerOrder();
         guoRenCrawlerOrder.setId(quoteVo.getOrder().getOrdersNo());
-        guoRenCrawlerOrder.setCiPolicyNumber( guoRenCrawlerProposalNoSaveData.getBusinessNoCI());
-        guoRenCrawlerOrder.setBiPolicyNumber( guoRenCrawlerProposalNoSaveData.getBusinessNoBI());
+        guoRenCrawlerOrder.setCiPolicyNumber(guoRenCrawlerProposalNoSaveData.getBusinessNoCI());
+        guoRenCrawlerOrder.setBiPolicyNumber(guoRenCrawlerProposalNoSaveData.getBusinessNoBI());
+        guoRenCrawlerOrder.setCiPolicyNo(guoRenCrawlerProposalNoSaveData.getBusinessNoCI());
+        guoRenCrawlerOrder.setBiPolicyNo(guoRenCrawlerProposalNoSaveData.getBusinessNoBI());
         guoRenCrawlerOrderRepository.save(guoRenCrawlerOrder);
     }
 

+ 25 - 18
tenant/insurance/quotation-guoren/src/main/java/com/jzg/quotation/guoren/crawler/service/impl/GuoRenCrawlerQuoteProcessServiceImpl.java

@@ -52,7 +52,7 @@ public class GuoRenCrawlerQuoteProcessServiceImpl implements GuoRenCrawlerQuoteP
     public HttpHeaders getHeaders(String username) {
         HttpHeaders headers = new HttpHeaders();
 //        String token = guoRenCrawlerCacheComponent.getToken(username);
-        String token = "eyJhbGciOiJSUzI1NiJ9.eyJzdWIiOiJXMzAwMDM5OSIsInVzZXJJZCI6IjQ5NjE4MSIsIm5hbWUiOiLmnY7mmKXmooUiLCJleHAiOjE3Njg1NTc4NjN9.cIUF3sLi9F5-ZGTD-BYQh2CctOdExd0CiFnSPZGF7G8FdqiFeNLqTrhAsX6p4Gm-ImVBOsZxJa1fkZ4Q8wc0vjtCTAw9Xm8FicLM9HTiYUSFctYCipRlpK1as7F2wo1ih0ixWms5TdOAMZVyiFLAbckXTtiAmYd24ttPQJPU1As";
+        String token = "eyJhbGciOiJSUzI1NiJ9.eyJzdWIiOiJXMzAwMDM5OSIsInVzZXJJZCI6IjQ5NjE4MSIsIm5hbWUiOiLmnY7mmKXmooUiLCJleHAiOjE3Nzg1NDY1Njl9.R0wPEisTH4nvmX5EMlLul01JyQENQ4Z4cOkHvcY0zNaLy4N5lIyhyXI8K2GVo4sOjpPm0BgiHmSzV9ugDdHHbBk6wCw1o2pq1QE-mqvBBTF0iTXZB2HsqL_p3EJd6p2zFS4HRafMOLMKb4F3ugDY7cSNyAQyn7Ee9J-FJTWgXc0";
         if (!StringUtils.hasText(token)) {
             throw new SystemException("登录失败,请重新登录");
         }
@@ -65,7 +65,7 @@ public class GuoRenCrawlerQuoteProcessServiceImpl implements GuoRenCrawlerQuoteP
         // 配置信息
         GuoRenCrawlerConfigureParameters guoRenCrawlerConfigureParameters = ConfigureParametersConversion.conversionEntity(GuoRenCrawlerConfigureParameters.class, attributionInformationVo.getConfigInfo());
         // 登录机构查询
-        GuoRenCrawlerGetLoginComInfoResponse loginComInfo = guoRenCrawlerRequestComponent.getLoginComInfo(attributionInformationVo.getUsername(), guoRenCrawlerConfigureParameters.getComCode(), headers);
+        GuoRenCrawlerGetLoginComInfoResponse loginComInfo = guoRenCrawlerRequestComponent.getLoginComInfo(attributionInformationVo.getUsername(), guoRenCrawlerConfigureParameters.getComName(), headers);
         // 归属机构查询
         GuoRenCrawlerInitSelectRequest guoRenCrawlerInitSelectRequest = new GuoRenCrawlerInitSelectRequest(loginComInfo.getComName(), loginComInfo.getComCode(), attributionInformationVo.getUsername());
         guoRenCrawlerInitSelectRequest.setCodeType(CODE_TYPE_COM_CODE);
@@ -74,12 +74,12 @@ public class GuoRenCrawlerQuoteProcessServiceImpl implements GuoRenCrawlerQuoteP
         GuoRenCrawlerInitSelectResponse initSelectResponse = guoRenCrawlerRequestComponent.initSelect(guoRenCrawlerInitSelectRequest, headers);
         GuoRenCrawlerInitSelectResponse.CodeDataDTO comCodeData = initSelectResponse.getCodeData()
                 .stream()
-                .filter(codeDataDTO -> guoRenCrawlerConfigureParameters.getComCode().equals(codeDataDTO.getCodeCode()))
+                .filter(codeDataDTO -> guoRenCrawlerConfigureParameters.getComName().equals(codeDataDTO.getCodeCode()))
                 .findFirst()
                 .orElseThrow(() -> new SystemException("归属机构查询失败"));
 
         // 业务来源
-        String businessSources = BusinessSources.BUSINESS_SOURCES_MAP.get(guoRenCrawlerConfigureParameters.getBusinessSourcesCode());
+        String businessSources = BusinessSources.BUSINESS_SOURCES_MAP.get(guoRenCrawlerConfigureParameters.getBusinessNature());
         if (StringUtils.isEmpty(businessSources)) {
             throw new SystemException("业务来源查询失败");
         }
@@ -96,7 +96,7 @@ public class GuoRenCrawlerQuoteProcessServiceImpl implements GuoRenCrawlerQuoteP
                 .findFirst()
                 .orElseThrow(() -> new SystemException("代理/经纪/渠道查询失败"));
         // 合同协议号查询
-        GuoRenCrawlerGetAgentAgreementResponse.PrpDagreeDetailDtoListDTO agentAgreement = guoRenCrawlerRequestComponent.getAgentAgreement(agentCodeData.getCodeCode(), loginComInfo.getComCode(), guoRenCrawlerConfigureParameters.getAgreementNo(), headers);
+        GuoRenCrawlerGetAgentAgreementResponse.PrpDagreeDetailDtoListDTO agentAgreement = guoRenCrawlerRequestComponent.getAgentAgreement(agentCodeData.getCodeCode(), loginComInfo.getComCode(), agentCodeData.getAgreementNo(), headers);
         // 归属业务员
         guoRenCrawlerInitSelectRequest.setCodeType(CODE_TYPE_HANDLER_CODE);
         guoRenCrawlerInitSelectRequest.setReserve1("");
@@ -139,21 +139,27 @@ public class GuoRenCrawlerQuoteProcessServiceImpl implements GuoRenCrawlerQuoteP
 
     @Override
     public GuoRenCrawlerCalculationPremiumData insuranceVerificationCodeProcessing(GuoRenCrawlerCalculationPremiumRequest crawlerCalculationPremiumRequest, GuoRenCrawlerCalculationPremiumData calculationPremium, HttpHeaders headers) {
-        //
+        // 交强
         String demandNoCi = calculationPremium.getCi().getCiInsureDemand().getDemandNo();
-        //
-        String demandNoBi = calculationPremium.getBi().getCiInsureDemand().getDemandNo();
-        if(!StringUtils.hasText(demandNoCi) && !StringUtils.hasText(demandNoBi)){
-            return calculationPremium;
+
+        // 商业
+        String demandNoBi = null;
+        if (calculationPremium.getBi().getCiInsureDemand() != null) {
+
+            demandNoBi = calculationPremium.getBi().getCiInsureDemand().getDemandNo();
+            if (!StringUtils.hasText(demandNoCi) && !StringUtils.hasText(demandNoBi)) {
+                return calculationPremium;
+            }
+
         }
 
         ReinsuranceCaptchaVo reinsuranceCaptchaVo = new ReinsuranceCaptchaVo();
-        if(StringUtils.hasText(demandNoCi)){
+        if (StringUtils.hasText(demandNoCi)) {
             reinsuranceCaptchaVo.setCiCaptcha(calculationPremium.getCi().getCiInsureDemand().getCheckCode());
             crawlerCalculationPremiumRequest.getCi().getCiInsureDemand().setDemandNo(demandNoCi);
             crawlerCalculationPremiumRequest.getCi().getCiInsureDemand().setCheckCode(calculationPremium.getCi().getCiInsureDemand().getCheckCode());
         }
-        if(StringUtils.hasText(demandNoBi)){
+        if (StringUtils.hasText(demandNoBi)) {
             reinsuranceCaptchaVo.setBiCaptcha(calculationPremium.getBi().getCiInsureDemand().getCheckCode());
             crawlerCalculationPremiumRequest.getBi().getCiInsureDemand().setDemandNo(demandNoBi);
         }
@@ -164,12 +170,13 @@ public class GuoRenCrawlerQuoteProcessServiceImpl implements GuoRenCrawlerQuoteP
         crawlerCalculationPremiumRequest.getCi().getPrpTmain().setCertiNo(calculationPremium.getCi().getPrpTmain().getCertiNo());
         crawlerCalculationPremiumRequest.getCi().setCiInsureDemand(calculationPremium.getCi().getCiInsureDemand());
         crawlerCalculationPremiumRequest.getCi().setPrptengageList(calculationPremium.getCi().getPrptengageList());
-
-        crawlerCalculationPremiumRequest.getBi().getPrpTmain().setDemandNo(demandNoBi);
-        crawlerCalculationPremiumRequest.getBi().getPrpTmain().setAnswer(reinsuranceCaptchaVo1.getBiCaptcha());
-        crawlerCalculationPremiumRequest.getBi().getPrpTmain().setCertiNo(calculationPremium.getBi().getPrpTmain().getCertiNo());
-        crawlerCalculationPremiumRequest.getBi().setCiInsureDemand(calculationPremium.getBi().getCiInsureDemand());
-        crawlerCalculationPremiumRequest.getBi().setPrptengageList(calculationPremium.getBi().getPrptengageList());
+        if (crawlerCalculationPremiumRequest.getBi().getPrpTmain() != null) {
+            crawlerCalculationPremiumRequest.getBi().getPrpTmain().setDemandNo(demandNoBi);
+            crawlerCalculationPremiumRequest.getBi().getPrpTmain().setAnswer(reinsuranceCaptchaVo1.getBiCaptcha());
+            crawlerCalculationPremiumRequest.getBi().getPrpTmain().setCertiNo(calculationPremium.getBi().getPrpTmain().getCertiNo());
+            crawlerCalculationPremiumRequest.getBi().setCiInsureDemand(calculationPremium.getBi().getCiInsureDemand());
+            crawlerCalculationPremiumRequest.getBi().setPrptengageList(calculationPremium.getBi().getPrptengageList());
+        }
         return guoRenCrawlerRequestComponent.calculationPremium(crawlerCalculationPremiumRequest, headers).getData();
     }
 }

+ 51 - 34
tenant/insurance/quotation-guoren/src/main/java/com/jzg/quotation/guoren/crawler/service/impl/GuoRenCrawlerRequestImpl.java

@@ -1,5 +1,6 @@
 package com.jzg.quotation.guoren.crawler.service.impl;
 
+import com.jzg.commons.constants.dict.InsOrderStatusEnum;
 import com.jzg.commons.entity.quote.vo.AttributionInformationVo;
 import com.jzg.commons.entity.quote.vo.QuoteVo;
 import com.jzg.commons.entity.quote.vo.aggregated.*;
@@ -19,7 +20,9 @@ import com.jzg.quotation.guoren.crawler.entity.GuoRenCrawlerConfigureParameters;
 import com.jzg.quotation.guoren.crawler.entity.dto.PrpTMainDTO;
 import com.jzg.quotation.guoren.crawler.entity.po.GuoRenCrawlerOrder;
 import com.jzg.quotation.guoren.crawler.entity.po.OrderCommon;
+import com.jzg.quotation.guoren.crawler.entity.request.GuoRenBcDTO;
 import com.jzg.quotation.guoren.crawler.entity.request.GuoRenCrawlerCalculationPremiumRequest;
+import com.jzg.quotation.guoren.crawler.entity.request.GuoRenPrpTitemCarDTO;
 import com.jzg.quotation.guoren.crawler.entity.response.*;
 import com.jzg.quotation.guoren.crawler.service.GuoRenCrawlerOrderService;
 import com.jzg.quotation.guoren.crawler.service.GuoRenCrawlerQuoteProcessService;
@@ -61,10 +64,10 @@ public class GuoRenCrawlerRequestImpl implements GuoRenCrawlerRequest {
         HttpHeaders headers = guoRenCrawlerQuoteProcessService.getHeaders(quoteVo.getOrder().getAttributionInformationVo().getUsername());
         // 构建归属信息
         PrpTMainDTO prpTmainDTO = guoRenCrawlerQuoteProcessService.buildAttributionInformation(quoteVo.getOrder().getAttributionInformationVo(), headers);
-        // 车型查询
-        GuoRenCrawlerQueryCarModelData.ContentDTO queryCarModelData = guoRenCrawlerRequestComponent.queryCarModel(quoteVo.getCarInfoVo(), prpTmainDTO.getComCode(), prpTmainDTO.getOperatorCode(), headers);
         // 车架号查询
-//        GuoRenCrawlerQueryByVinNoData queryByVinNo = guoRenCrawlerRequestComponent.queryByVinNo(quoteVo.getCarInfoVo(), prpTmainDTO.getComCode(), prpTmainDTO.getOperatorCode(), headers);
+        GuoRenCrawlerQueryByVinNoData queryCarModelData = guoRenCrawlerRequestComponent.queryByVinNo(quoteVo.getCarInfoVo(), prpTmainDTO.getComCode(), prpTmainDTO.getOperatorCode(), headers);
+        // 车型查询
+//        GuoRenCrawlerQueryByVinNoData queryCarModelData = guoRenCrawlerRequestComponent.queryCarModel(quoteVo.getCarInfoVo(), prpTmainDTO.getComCode(), prpTmainDTO.getOperatorCode(), headers);
         // 车价查询
         String relationShip;
         int insuredTypeTmp;
@@ -78,7 +81,7 @@ public class GuoRenCrawlerRequestImpl implements GuoRenCrawlerRequest {
         // 车主 回填地址信息
         GuoRenCrawlerWriteBackAddressData ownersAddr = guoRenCrawlerRequestComponent.writeBackAddress(quoteVo.getOwnersInfo().getAddr(), headers);
         // 车价查询
-        GuoRenCrawlerCalculationPremiumRequest.BcDTO.PrpTitemCarDTO prpTitemCar = guoRenCrawlerRequestComponent.getCarPriceData(queryCarModelData, prpTmainDTO, quoteVo, ownersAddr, relationShip, headers);
+        GuoRenPrpTitemCarDTO prpTitemCar = guoRenCrawlerRequestComponent.getCarPriceData(queryCarModelData, prpTmainDTO, quoteVo, ownersAddr, relationShip, headers);
         // 投保人 回填地址信息
         GuoRenCrawlerWriteBackAddressData policyHolderAddr = writeBackAddress(quoteVo.getPolicyHolderInfo().getAddr(), quoteVo.getOwnersInfo().getAddr(), ownersAddr, headers);
         // 被保人 回填地址信息
@@ -92,32 +95,35 @@ public class GuoRenCrawlerRequestImpl implements GuoRenCrawlerRequest {
             String startTime = extractDuplicateEndTime(message);
             String endTime;
             if (startTime == null) {
-                GuoRenCrawlerQuoteResultsVoBuild.buildFailQuoteResultsVo(quoteVo, calculationPremium);
-            }
-            if (startTime != null && startTime.endsWith("00:00:00")) {
-                endTime = TimeProcessing.minusOneSecondAfterYear(startTime);
+                return GuoRenCrawlerQuoteResultsVoBuild.buildFailQuoteResultsVo(quoteVo, calculationPremium);
             } else {
-                endTime = TimeProcessing.minusOneDayAfterYear(startTime);
+                if (startTime != null && startTime.endsWith("00:00:00")) {
+                    endTime = TimeProcessing.minusOneSecondAfterYear(startTime);
+                } else {
+                    endTime = TimeProcessing.minusOneDayAfterYear(startTime);
+                }
+                String startDate = TimeProcessing.dateTimeToDate(startTime);
+                String endDate = TimeProcessing.dateTimeToDate(endTime);
+                // 交强
+                crawlerCalculationPremiumRequest.getCi().getPrpTmain().setStartDate(startDate);
+                crawlerCalculationPremiumRequest.getCi().getPrpTmain().setEndDate(endDate);
+                crawlerCalculationPremiumRequest.getCi().getPrptitemkindList().forEach(item -> {
+                    item.setStartDate(startDate);
+                    item.setEndDate(endDate);
+                });
+                if (crawlerCalculationPremiumRequest.getBi().getPrpTmain() != null) {
+                    // 商业
+                    crawlerCalculationPremiumRequest.getBi().getPrpTmain().setStartDate(startDate);
+                    crawlerCalculationPremiumRequest.getBi().getPrpTmain().setEndDate(endDate);
+                    crawlerCalculationPremiumRequest.getBi().getPrptitemkindList().forEach(item -> {
+                        item.setStartDate(startDate);
+                        item.setEndDate(endDate);
+                    });
+                }
+                calculationPremium = guoRenCrawlerRequestComponent.calculationPremium(crawlerCalculationPremiumRequest, headers);
             }
-            String startDate = TimeProcessing.dateTimeToDate(startTime);
-            String endDate = TimeProcessing.dateTimeToDate(endTime);
-            // 交强
-            crawlerCalculationPremiumRequest.getCi().getPrpTmain().setStartDate(startDate);
-            crawlerCalculationPremiumRequest.getCi().getPrpTmain().setEndDate(endDate);
-            crawlerCalculationPremiumRequest.getCi().getPrptitemkindList().forEach(item -> {
-                item.setStartDate(startDate);
-                item.setEndDate(endDate);
-            });
-            // 商业
-            crawlerCalculationPremiumRequest.getBi().getPrpTmain().setStartDate(startDate);
-            crawlerCalculationPremiumRequest.getBi().getPrpTmain().setEndDate(endDate);
-            crawlerCalculationPremiumRequest.getBi().getPrptitemkindList().forEach(item -> {
-                item.setStartDate(startDate);
-                item.setEndDate(endDate);
-            });
-            calculationPremium = guoRenCrawlerRequestComponent.calculationPremium(crawlerCalculationPremiumRequest, headers);
         } else if (calculationPremium.getResultCode() == 1) {
-            GuoRenCrawlerQuoteResultsVoBuild.buildFailQuoteResultsVo(quoteVo, calculationPremium);
+            return GuoRenCrawlerQuoteResultsVoBuild.buildFailQuoteResultsVo(quoteVo, calculationPremium);
         }
         // 投保验证码处理
         GuoRenCrawlerCalculationPremiumData calculationPremiumData = guoRenCrawlerQuoteProcessService.insuranceVerificationCodeProcessing(crawlerCalculationPremiumRequest, calculationPremium.getData(), headers);
@@ -140,6 +146,7 @@ public class GuoRenCrawlerRequestImpl implements GuoRenCrawlerRequest {
 
     /**
      * 提取系统自动分配的起保时间
+     *
      * @param returnMessage 核心提示
      * @return 提取到的时间字符串,未提取到返回 null
      */
@@ -160,21 +167,32 @@ public class GuoRenCrawlerRequestImpl implements GuoRenCrawlerRequest {
         GuoRenCrawlerOrder guoRenCrawlerOrder = guoRenCrawlerOrderService.getById(underwritingVo.getOrder().getOrdersNo());
         // 提交核保
         GuoRenCrawlerSubmitUnderwriteData submitUnderwrite = guoRenCrawlerRequestComponent.submitUnderwrite(guoRenCrawlerOrder.getCiPolicyNumber(), guoRenCrawlerOrder.getBiPolicyNumber(), username, headers);
-        return new UnderwritingResultsVo();
+        final UnderwritingResultsVo underwritingResultsVo = new UnderwritingResultsVo();
+        if (submitUnderwrite.getMessage().contains("转已核投保单成功")) {
+            underwritingResultsVo.setUnderwritingStatus(InsOrderStatusEnum.PAY_PENDING);
+            PaymentLinkVo paymentLinkVo = new PaymentLinkVo();
+            paymentLinkVo.setOrder(underwritingVo.getOrder());
+            PaymentLinkResultsVo paymentLinkResultsVo = getPaymentLink(paymentLinkVo);
+            String businessNo = StringUtils.hasLength(guoRenCrawlerOrder.getCiPolicyNo()) ? guoRenCrawlerOrder.getCiPolicyNumber() : guoRenCrawlerOrder.getBiPolicyNumber();
+            underwritingResultsVo.setCompanyOrderNo(businessNo);
+            underwritingResultsVo.setPaymentLink(paymentLinkResultsVo.getPaymentLink());
+        } else {
+            underwritingResultsVo.setUnderwritingStatus(InsOrderStatusEnum.AUDIT_FAIL);
+        }
+        return underwritingResultsVo;
     }
 
     @Override
-    public PaymentLinkResultsVo getPaymentLink(PaymentLinkVo paymentLinkVo) throws Exception {
+    public PaymentLinkResultsVo getPaymentLink(PaymentLinkVo paymentLinkVo) {
         //
         OrderCommon orderCommon = getOrderCommon(paymentLinkVo.getOrder());
         GuoRenCrawlerCheckNoticeData guoRenCrawlerCheckNoticeData = guoRenCrawlerRequestComponent.checkNoticeData(orderCommon.getBusinessNo(), orderCommon.getHttpHeaders());
         //
         GuoRenCrawlerGetEleProposalQRCoreData eleProposalQRCoreData = guoRenCrawlerRequestComponent.getEleProposalQRCoreData(orderCommon.getBiPolicyNo(), orderCommon.getCiPolicyNo(), guoRenCrawlerCheckNoticeData.getElecapplyurl(), orderCommon.getHttpHeaders());
-        return new PaymentLinkResultsVo(true, eleProposalQRCoreData.getQrCode(), "");
+        return new PaymentLinkResultsVo(true, eleProposalQRCoreData.getQrUrl(), "");
     }
 
     @Override
-
     public void uploadImage(InsuranceUploadImageVo insuranceUploadImageVo) {
         OrderCommon orderCommon = getOrderCommon(insuranceUploadImageVo.getOrder());
         // 上传影像
@@ -222,10 +240,9 @@ public class GuoRenCrawlerRequestImpl implements GuoRenCrawlerRequest {
         // 获取订单信息
         GuoRenCrawlerOrder guoRenCrawlerOrder = guoRenCrawlerOrderService.getById(orderBase.getOrdersNo());
         // 配置信息
-        GuoRenCrawlerConfigureParameters guoRenCrawlerConfigureParameters = ConfigureParametersConversion.conversionEntity(GuoRenCrawlerConfigureParameters.class,
-                attributionInformationVo.getConfigInfo());
+        GuoRenCrawlerConfigureParameters guoRenCrawlerConfigureParameters = ConfigureParametersConversion.conversionEntity(GuoRenCrawlerConfigureParameters.class, attributionInformationVo.getConfigInfo());
         String businessNo = StringUtils.hasLength(guoRenCrawlerOrder.getCiPolicyNo()) ? guoRenCrawlerOrder.getCiPolicyNumber() : guoRenCrawlerOrder.getBiPolicyNumber();
-        return new OrderCommon(attributionInformationVo.getUsername(), guoRenCrawlerConfigureParameters.getComCode(), businessNo, guoRenCrawlerOrder.getCiPolicyNo(), guoRenCrawlerOrder.getBiPolicyNo(), headers);
+        return new OrderCommon(attributionInformationVo.getUsername(), guoRenCrawlerConfigureParameters.getComName(), businessNo, guoRenCrawlerOrder.getCiPolicyNo(), guoRenCrawlerOrder.getBiPolicyNo(), headers);
     }
 
 

+ 41 - 0
tenant/insurance/quotation-guoren/src/main/resources/certs/guoren.crt

@@ -0,0 +1,41 @@
+-----BEGIN CERTIFICATE-----
+MIIHQzCCBaugAwIBAgIQB842hR/jUmAEFsPlDb+3OzANBgkqhkiG9w0BAQsFADBg
+MQswCQYDVQQGEwJHQjEYMBYGA1UEChMPU2VjdGlnbyBMaW1pdGVkMTcwNQYDVQQD
+Ey5TZWN0aWdvIFB1YmxpYyBTZXJ2ZXIgQXV0aGVudGljYXRpb24gQ0EgT1YgUjM2
+MB4XDTI2MDQyNzAwMDAwMFoXDTI2MTExMTIzNTk1OVowdjELMAkGA1UEBhMCQ04x
+EjAQBgNVBAgMCeW5v+S4nOecgTE4MDYGA1UEChMvR1VPUkVOIFBST1BFUlRZIEFO
+RCBDQVNVQUxUWSBJTlNVUkFOQ0UgQ08uLExURC4xGTAXBgNVBAMMECouZ3VvcmVu
+cGNpYy5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDG4SKIewXa
+vq2ffuZ6TZ/LTIHJ9QRggrOH2zX220B8Qt+do4wpfCEE9wYCrwJ0jjAjH+2HMA5z
+n+6tCMp4E+OjUZZxtRGtys0tZjE35RyEojq9eE3O3tLb83Jx0DNCm5VAwsZIt3Ls
+FElXLLFpdZevsZ9Wmnl/wvu+InShfvi5DKpaMKDS7cL2IwvwjF0Ury7rKOGZFKY3
+KzpYvU1Cdz8djJvebEWDf48QB13+sT7z3+6VngT3vfEim7TGvZotjeHpSlTk0bXM
+DU/6XRdU8st3Kpa3SgVceGYLNSOGIWxm9s1IzfyMJCJsyyqhXOt6BWJvevJ+IlKc
+6/En+PbBTbRHAgMBAAGjggNhMIIDXTAfBgNVHSMEGDAWgBTjZnS7cGiNLF1ODqZK
+j5s3IpyCkjAdBgNVHQ4EFgQU1oH+HkDXDqAXZG6am7gkjDVu8MIwDgYDVR0PAQH/
+BAQDAgWgMAwGA1UdEwEB/wQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUF
+BwMCMEoGA1UdIARDMEEwNQYMKwYBBAGyMQECAQMEMCUwIwYIKwYBBQUHAgEWF2h0
+dHBzOi8vc2VjdGlnby5jb20vQ1BTMAgGBmeBDAECAjBUBgNVHR8ETTBLMEmgR6BF
+hkNodHRwOi8vY3JsLnNlY3RpZ28uY29tL1NlY3RpZ29QdWJsaWNTZXJ2ZXJBdXRo
+ZW50aWNhdGlvbkNBT1ZSMzYuY3JsMIGEBggrBgEFBQcBAQR4MHYwTwYIKwYBBQUH
+MAKGQ2h0dHA6Ly9jcnQuc2VjdGlnby5jb20vU2VjdGlnb1B1YmxpY1NlcnZlckF1
+dGhlbnRpY2F0aW9uQ0FPVlIzNi5jcnQwIwYIKwYBBQUHMAGGF2h0dHA6Ly9vY3Nw
+LnNlY3RpZ28uY29tMCsGA1UdEQQkMCKCECouZ3VvcmVucGNpYy5jb22CDmd1b3Jl
+bnBjaWMuY29tMIIBhgYKKwYBBAHWeQIEAgSCAXYEggFyAXAAdgDXbX0Q0af1d8LH
+6V/XAL/5gskzWmXh0LMBcxfAyMVpdwAAAZ3OYiLYAAAEAwBHMEUCIF9rT1exa/CD
+QItgrbwOHUbne4+rERFCZ+WVxo9qAx3CAiEAhvLKoALzu+6tEXBXJzpUdAEU2LEm
+Kov6lOF5w4PZyQEAdgDIo8R/x7OtuTVrAT9qehJt4zpOQ6XGRvmXrTl1mR3PmgAA
+AZ3OYiKrAAAEAwBHMEUCIGWLQnNXB7KEQ/voP7UVP3wm3zpWaacgRiDbQ5G7eRNr
+AiEAu9oWtXtMuPjjZqcIcm7BkXput1uU6Y+bLJzoOlo1nmQAfgBs/lAZQ6heqRa8
+UtEz5NzJHvFBHH0lhCDRc4CeGBjrOgAAAZ3OYiKuAAgAAAUACOsqUgQDAEcwRQIh
+AKRzXs5PxAdixfXHgMrPYWHsI5gp1pe719N/pCTSjq98AiBPpfQzVfHlxFA1oVJD
+V2ynYMkVugs/qVa/EU7X8P0yxTANBgkqhkiG9w0BAQsFAAOCAYEAM9bdiFSuKhl9
+4rZvhWN9DKKvb6muqEBb314AFYiG1BguFhP6Bnbkirsng0vTGFqygbWovMllRLWY
+J4GW7JJS7+V/k5506wYvaYtZtp7ElocCpPt48b41V5/9AtiLnuIV+p5Fqw1OnRO+
+s6mgYG8zfD/AAelPoDakjufyLmTwLcUkPupFOCFU37Zgc05nWbftVf9f9Ujdp6ET
+BxBPQkeWi2E/5tHFrwQTKsU5M2aolNk83u1SMkffQKpLC6cN1laRSJSDedJ2/QpH
+9u5svkWWH82IyFMZ6JJlmKZOJUZXmS8/2qDKwys+gsHnvakMji8gc4u4jTm1ODhm
+NkrGtuXnA09BTlonUz69GlUHWPBRSn28/Ad6cIb7o+NFY8lc+/xHE9xUGsv38zLl
+vf6UFRGbSdbIKPbqzZbrvdvZxeHly49hgWEuJZSLdMrZHe2YxyAGYKe6c7XoSM7+
+yHiyDhtqUDY7gxuG97xacrtj/2/8ydlFXLcuxnoF06SUh84Rn+qB
+-----END CERTIFICATE-----

+ 38 - 42
tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/controller/UnifyOrderManager.java

@@ -73,7 +73,6 @@ import java.util.*;
 import java.util.stream.Collectors;
 
 
-
 @RestController
 @RequestMapping("/unify/order")
 @Tag(name = "统一订单报价管理")
@@ -284,8 +283,8 @@ public class UnifyOrderManager {
                 costs.setVvTax(formatPremium(costs.getVvTax()));               // 车船税
                 costs.setSumPremium(formatPremium(costs.getSumPremium()));     // 总保费
             }
-//            quoteResultsVo.setCiRiskInfoVo(quoteVo.getCiRiskInfoVo());
-//            quoteResultsVo.setBiRiskInfoVo(quoteVo.getBiRiskInfoVo());
+            quoteResultsVo.setCiRiskInfoVo(quoteVo.getCiRiskInfoVo());
+            quoteResultsVo.setBiRiskInfoVo(quoteVo.getBiRiskInfoVo());
             quoteResultsVo.setQuoteStatus(quoteResultsVo.getQuoteStatusEnum().getCode());
             quoteResultsVo.setOrdersNo(ordersNo);
             // 报价后更新订单
@@ -348,26 +347,23 @@ public class UnifyOrderManager {
 //                                    .collect(Collectors.groupingBy(UnifiedUserClientVO::getClientId));
 //                            // 首先查业务员是否在一账通绑定过本地生活  【已绑定过 远程调抽奖次数增加接口 标记已同步
 //                            if (userClientGroupMap.containsKey(CLIENT_ID)) {
-//                                int count = insOrdersService.countQuoteNum(baseController.getUserSystemCode(), quoteVo.getOrder().getRealQuoteUserId(), activity.getActivityStartTime(), activity.getActivityEndTime());
-//                                if (count >= Integer.parseInt(table.getQutNum()) && count <= Integer.parseInt(table.getQutLotteryMax())) {
-//                                    LotteryCounDTO lotteryCounDTO = new LotteryCounDTO();
-//                                    lotteryCounDTO.setAppUserId(quoteVo.getOrder().getRealQuoteUserId());
-//                                    lotteryCounDTO.setActivityId(activity.getId());
-//                                    lotteryCounDTO.setCount(Integer.parseInt(table.getQutLotteryNum()));
-//                                    HttpResult<LotteryCountVO> lotteryCountVOHttpResult = null;
-//                                    try {
-//                                        lotteryCountVOHttpResult = localLivingClient.addLotteryCount(lotteryCounDTO);
-//                                    } catch (Exception e) {
-//                                        log.info("业务员报价,远程调用本地生活抽奖次数增加接口异常,userId:{},count:{},tenantId:{}", quoteVo.getOrder().getRealQuoteUserId(), table.getQutLotteryNum(), baseController.getUserSystemCode());
-//                                        log.error("业务员报价,远程调用本地生活抽奖次数增加异常", e);
-//                                    }
-//                                    if (lotteryCountVOHttpResult != null && lotteryCountVOHttpResult.getData().getSuccess()) {
-//                                        // 记录规则完成  标记已同步
-//                                        completeRule(baseController.getUserSystemCode(), quoteVo.getOrder().getRealQuoteUserId(), null, activity.getId(),
-//                                                table.getId(), table.getQutNum(), table.getQutLotteryNum(), table.getQutLotteryMax(), YesNoEnum.YES.getCode(), 6);
+//                                LotteryCounDTO lotteryCounDTO = new LotteryCounDTO();
+//                                lotteryCounDTO.setAppUserId(quoteVo.getOrder().getRealQuoteUserId());
+//                                lotteryCounDTO.setActivityId(activity.getId());
+//                                lotteryCounDTO.setCount(Integer.parseInt(table.getQutLotteryNum()));
+//                                HttpResult<LotteryCountVO> lotteryCountVOHttpResult = null;
+//                                try {
+//                                    lotteryCountVOHttpResult = localLivingClient.addLotteryCount(lotteryCounDTO);
+//                                } catch (Exception e) {
+//                                    log.info("业务员报价,远程调用本地生活抽奖次数增加接口异常,userId:{},count:{},tenantId:{}", quoteVo.getOrder().getRealQuoteUserId(), table.getQutLotteryNum(), baseController.getUserSystemCode());
+//                                    log.error("业务员报价,远程调用本地生活抽奖次数增加异常", e);
+//                                }
+//                                if (lotteryCountVOHttpResult != null && lotteryCountVOHttpResult.getData().getSuccess()) {
+//                                    // 记录规则完成  标记已同步
+//                                    completeRule(baseController.getUserSystemCode(), quoteVo.getOrder().getRealQuoteUserId(), null, activity.getId(),
+//                                            table.getId(), table.getQutNum(), table.getQutLotteryNum(), table.getQutLotteryMax(), YesNoEnum.YES.getCode(), 6);
 //
-//                                        log.info("业务员报价,满足条件插入记录并远程同步,userId:{},clientId:{},tenantId:{}", quoteVo.getOrder().getRealQuoteUserId(), CLIENT_ID, baseController.getUserSystemCode());
-//                                    }
+//                                    log.info("业务员报价,满足条件插入记录并远程同步,userId:{},clientId:{},tenantId:{}", quoteVo.getOrder().getRealQuoteUserId(), CLIENT_ID, baseController.getUserSystemCode());
 //                                }
 //                            }
 //                        }
@@ -391,7 +387,7 @@ public class UnifyOrderManager {
      * 记录规则完成
      */
     private void completeRule(String tenantId, String userId, String userPhone, String activityId,
-                                  String tableId, String qutNum, String qutLotteryNum, String qutLotteryMax,Integer status, Integer activityType) {
+                              String tableId, String qutNum, String qutLotteryNum, String qutLotteryMax,Integer status, Integer activityType) {
         SysUserActivityCompleteInRule exist = null;
         // 先查询是否已存在记录(防重入)
         if (9 != activityType) {
@@ -413,7 +409,7 @@ public class UnifyOrderManager {
         record.setActivityType(activityType);
         record.setActivityId(activityId);
         record.setLocalActivityTableId(tableId);
-        //报价/出单次数/承保费用
+        //报价次数
         record.setRuleCompleteNum(qutNum);
         //抽奖次数
         record.setLotteryNum(StrUtil.isNotBlank(qutLotteryNum)
@@ -427,8 +423,8 @@ public class UnifyOrderManager {
         record.setUpdateBy(userId);
         insOrdersService.insertActivityCompleteInRule(record);
 
-        log.info("匹配规则完成,activityType={}, tenantId={}, userId={}, activityId={}, qutNum={}, qutLotteryNum={}, qutLotteryMax={}, userPhone={}",
-                activityType, tenantId, userId, activityId, qutNum, qutLotteryNum,  qutLotteryMax, userPhone);
+        log.info("报价规则完成,tenantId={}, userId={}, activityId={}, qutNum={}, qutLotteryNum={}, qutLotteryMax={}",
+                tenantId, userId, activityId, qutNum, qutLotteryNum,  qutLotteryMax);
     }
 
 
@@ -507,7 +503,7 @@ public class UnifyOrderManager {
         underwritingVo.setSpecialAppointmentsVos(specialAppointmentsVos);
 
         if (ArrayUtil.isEmpty(underwritingVo.getInsOrderRightsInfoDto())) {
-           underwritingVo.setInsOrderRightsInfoDto(new InsOrderRightsInfoDto());
+            underwritingVo.setInsOrderRightsInfoDto(new InsOrderRightsInfoDto());
         }
 
         boolean hasRights = CollectionUtils.isNotEmpty(underwritingVo.getInsOrderRightsInfoDto().getInsOrderRightsList());//权益券
@@ -790,21 +786,21 @@ public class UnifyOrderManager {
                                         .collect(Collectors.groupingBy(UnifiedUserClientVO::getClientId));
                                 // 首先查业务员是否在一账通绑定过本地生活  【已绑定过 远程调抽奖次数增加接口 标记已同步
                                 if (userClientGroupMap.containsKey(CLIENT_ID)) {
-                                    int count = insOrdersService.countOrderNum(baseController.getUserSystemCode(), insOrders.getRealQuoteUserId(), activity.getActivityStartTime(), activity.getActivityEndTime());
-                                    for (OrderRuleVO orderRule : table.getOrderRules()) {
-                                        if (count >= Integer.parseInt(orderRule.getOrdNum())) {
-                                            LotteryCounDTO lotteryCounDTO = new LotteryCounDTO();
-                                            lotteryCounDTO.setAppUserId(insOrders.getRealQuoteUserId());
-                                            lotteryCounDTO.setActivityId(activity.getId());
-                                            lotteryCounDTO.setCount(Integer.parseInt(table.getQutLotteryNum()));
-                                            HttpResult<LotteryCountVO> lotteryCountVOHttpResult = null;
-                                            try {
-                                                lotteryCountVOHttpResult = localLivingClient.addLotteryCount(lotteryCounDTO);
-                                            } catch (Exception e) {
-                                                log.info("业务员出单,远程调用本地生活抽奖次数增加接口异常,userId:{},count:{},tenantId:{}", insOrders.getRealQuoteUserId(), table.getQutLotteryNum(), baseController.getUserSystemCode());
-                                                log.error("业务员出单,远程调用本地生活抽奖次数增加异常", e);
-                                            }
-                                            if (lotteryCountVOHttpResult != null && lotteryCountVOHttpResult.getData().getSuccess()) {
+                                    LotteryCounDTO lotteryCounDTO = new LotteryCounDTO();
+                                    lotteryCounDTO.setAppUserId(insOrders.getRealQuoteUserId());
+                                    lotteryCounDTO.setActivityId(activity.getId());
+                                    lotteryCounDTO.setCount(Integer.parseInt(table.getQutLotteryNum()));
+                                    HttpResult<LotteryCountVO> lotteryCountVOHttpResult = null;
+                                    try {
+                                        lotteryCountVOHttpResult = localLivingClient.addLotteryCount(lotteryCounDTO);
+                                    } catch (Exception e) {
+                                        log.info("业务员出单,远程调用本地生活抽奖次数增加接口异常,userId:{},count:{},tenantId:{}", insOrders.getRealQuoteUserId(), table.getQutLotteryNum(), baseController.getUserSystemCode());
+                                        log.error("业务员出单,远程调用本地生活抽奖次数增加异常", e);
+                                    }
+                                    if (lotteryCountVOHttpResult != null && lotteryCountVOHttpResult.getData().getSuccess()) {
+                                        int count = insOrdersService.countOrderNum(baseController.getUserSystemCode(), insOrders.getRealQuoteUserId(), activity.getActivityStartTime(), activity.getActivityEndTime());
+                                        for (OrderRuleVO orderRule : table.getOrderRules()) {
+                                            if (count >= Integer.parseInt(orderRule.getOrdNum())) {
                                                 // 记录规则完成  标记已同步
                                                 completeRule(baseController.getUserSystemCode(), insOrders.getRealQuoteUserId(), null, activity.getId(),
                                                         table.getId(), table.getQutNum(), table.getQutLotteryNum(), table.getQutLotteryMax(), YesNoEnum.YES.getCode(), 8);

Неке датотеке нису приказане због велике количине промена