Эх сурвалжийг харах

Merge remote-tracking branch 'origin/master'

dongxin 1 жил өмнө
parent
commit
4b3d5c8c08
77 өөрчлөгдсөн 1130 нэмэгдсэн , 540 устгасан
  1. 11 0
      commons/src/main/java/com/jzg/commons/config/DataPermissionInterceptor.java
  2. 8 2
      commons/src/main/java/com/jzg/commons/entity/dto/SysUserJzgInfoBankCardDto.java
  3. 54 0
      commons/src/main/java/com/jzg/commons/entity/po/InsFeeOrders.java
  4. 4 1
      commons/src/main/java/com/jzg/commons/entity/properties/DataScopeProperties.java
  5. 1 1
      gateway/src/main/resources/application-dev.yml
  6. 9 5
      platform/src/main/java/com/jzg/controller/PtlAgreementUrlController.java
  7. 2 0
      platform/src/main/java/com/jzg/service/PtlAgreementUrlService.java
  8. 11 0
      platform/src/main/java/com/jzg/service/impl/PtlAgreementUrlServiceImpl.java
  9. 5 5
      tenant/insurance/quotation-ansheng/src/main/java/com/jzg/quotation/ansheng/crawler/build/AnShengCrawlerQuoteResultsVoBuild.java
  10. 2 2
      tenant/insurance/quotation-ansheng/src/main/java/com/jzg/quotation/ansheng/crawler/component/AnShengCrawlerCacheComponent.java
  11. 37 23
      tenant/insurance/quotation-ansheng/src/main/java/com/jzg/quotation/ansheng/crawler/component/AnShengCrawlerRequestComponent.java
  12. 1 1
      tenant/insurance/quotation-ansheng/src/main/java/com/jzg/quotation/ansheng/crawler/constant/AnShengCrawlerSystemConstant.java
  13. 1 1
      tenant/insurance/quotation-ansheng/src/main/java/com/jzg/quotation/ansheng/crawler/constant/enums/RequestUrl.java
  14. 1 1
      tenant/insurance/quotation-ansheng/src/main/java/com/jzg/quotation/ansheng/crawler/constant/enums/RiskCodeInfo.java
  15. 1 1
      tenant/insurance/quotation-ansheng/src/main/java/com/jzg/quotation/ansheng/crawler/entity/po/AnShengCrawlerOrder.java
  16. 1 1
      tenant/insurance/quotation-ansheng/src/main/java/com/jzg/quotation/ansheng/crawler/entity/request/AnShengCrawlerApplyApplicationRequest.java
  17. 1 1
      tenant/insurance/quotation-ansheng/src/main/java/com/jzg/quotation/ansheng/crawler/entity/request/AnShengCrawlerAutoSpecialPromiseRequest.java
  18. 2 2
      tenant/insurance/quotation-ansheng/src/main/java/com/jzg/quotation/ansheng/crawler/entity/request/AnShengCrawlerCalculatePremiumApplyMessage.java
  19. 2 2
      tenant/insurance/quotation-ansheng/src/main/java/com/jzg/quotation/ansheng/crawler/entity/request/AnShengCrawlerCheckLoginRequest.java
  20. 4 4
      tenant/insurance/quotation-ansheng/src/main/java/com/jzg/quotation/ansheng/crawler/entity/request/AnShengCrawlerCheckVerificationRequest.java
  21. 1 1
      tenant/insurance/quotation-ansheng/src/main/java/com/jzg/quotation/ansheng/crawler/entity/request/AnShengCrawlerFileUploadRequest.java
  22. 1 1
      tenant/insurance/quotation-ansheng/src/main/java/com/jzg/quotation/ansheng/crawler/entity/request/AnShengCrawlerPaymentRequest.java
  23. 1 1
      tenant/insurance/quotation-ansheng/src/main/java/com/jzg/quotation/ansheng/crawler/entity/request/AnShengCrawlerQueryDocumentsInformationRequest.java
  24. 1 1
      tenant/insurance/quotation-ansheng/src/main/java/com/jzg/quotation/ansheng/crawler/entity/request/AnShengCrawlerQueryPrintPdfRequest.java
  25. 1 1
      tenant/insurance/quotation-ansheng/src/main/java/com/jzg/quotation/ansheng/crawler/entity/request/AnShengCrawlerSearchVehicleByVinRequest.java
  26. 2 2
      tenant/insurance/quotation-ansheng/src/main/java/com/jzg/quotation/ansheng/crawler/entity/request/AnShengCrawlerVerifyRequest.java
  27. 1 1
      tenant/insurance/quotation-ansheng/src/main/java/com/jzg/quotation/ansheng/crawler/entity/response/AnShengCrawlerApplyApplicationResponse.java
  28. 1 1
      tenant/insurance/quotation-ansheng/src/main/java/com/jzg/quotation/ansheng/crawler/entity/response/AnShengCrawlerAutoSpecialPromiseResponse.java
  29. 1 1
      tenant/insurance/quotation-ansheng/src/main/java/com/jzg/quotation/ansheng/crawler/entity/response/AnShengCrawlerCalculatePremiumApplyResponse.java
  30. 1 1
      tenant/insurance/quotation-ansheng/src/main/java/com/jzg/quotation/ansheng/crawler/entity/response/AnShengCrawlerFileUploadResponse.java
  31. 1 1
      tenant/insurance/quotation-ansheng/src/main/java/com/jzg/quotation/ansheng/crawler/entity/response/AnShengCrawlerGetUserDetailResponse.java
  32. 1 1
      tenant/insurance/quotation-ansheng/src/main/java/com/jzg/quotation/ansheng/crawler/entity/response/AnShengCrawlerPaymentResponse.java
  33. 1 1
      tenant/insurance/quotation-ansheng/src/main/java/com/jzg/quotation/ansheng/crawler/entity/response/AnShengCrawlerQueryDocumentsInformationResponse.java
  34. 1 1
      tenant/insurance/quotation-ansheng/src/main/java/com/jzg/quotation/ansheng/crawler/entity/response/AnShengCrawlerSearchVehicleByVinResponse.java
  35. 1 1
      tenant/insurance/quotation-ansheng/src/main/java/com/jzg/quotation/ansheng/crawler/entity/response/AnShengCrawlerVerifyResponse.java
  36. 1 1
      tenant/insurance/quotation-ansheng/src/main/java/com/jzg/quotation/ansheng/crawler/properties/AnShengCrawlerProperties.java
  37. 2 2
      tenant/insurance/quotation-ansheng/src/main/java/com/jzg/quotation/ansheng/crawler/repository/AnShengCrawlerOrderRepository.java
  38. 1 1
      tenant/insurance/quotation-ansheng/src/main/java/com/jzg/quotation/ansheng/crawler/service/AnShengCrawlerLoginService.java
  39. 2 2
      tenant/insurance/quotation-ansheng/src/main/java/com/jzg/quotation/ansheng/crawler/service/AnShengCrawlerOrderService.java
  40. 1 1
      tenant/insurance/quotation-ansheng/src/main/java/com/jzg/quotation/ansheng/crawler/service/AnShengCrawlerRequest.java
  41. 14 12
      tenant/insurance/quotation-ansheng/src/main/java/com/jzg/quotation/ansheng/crawler/service/impl/AnShengCrawlerLoginServiceImpl.java
  42. 4 4
      tenant/insurance/quotation-ansheng/src/main/java/com/jzg/quotation/ansheng/crawler/service/impl/AnShengCrawlerOrderServiceImpl.java
  43. 14 12
      tenant/insurance/quotation-ansheng/src/main/java/com/jzg/quotation/ansheng/crawler/service/impl/AnShengCrawlerRequestImpl.java
  44. 27 27
      tenant/insurance/quotation-bohai/src/main/java/com/jzg/quotation/bohai/api/component/BoHaiRequestApiComponent.java
  45. 37 18
      tenant/insurance/quotation-bohai/src/main/java/com/jzg/quotation/bohai/api/service/impl/BoHaiApiRequestImpl.java
  46. 35 35
      tenant/insurance/quotation-chengtai/src/main/java/com/jzg/quotation/chengtai/api/component/ChengTaiRequestApiComponent.java
  47. 47 30
      tenant/insurance/quotation-chengtai/src/main/java/com/jzg/quotation/chengtai/api/service/impl/ChengTaiApiRequestImpl.java
  48. 7 0
      tenant/insurance/quotation-commons/src/main/java/com/jzg/quotation/commons/client/PlatformClient.java
  49. 11 0
      tenant/insurance/quotation-commons/src/main/java/com/jzg/quotation/commons/component/RequestComponent.java
  50. 87 0
      tenant/insurance/quotation-commons/src/main/java/com/jzg/quotation/commons/utils/CookieParseUtils.java
  51. 26 26
      tenant/insurance/quotation-dajia/src/main/java/com/jzg/quotation/dajia/api/compoment/DaJiaApiRequestComponent.java
  52. 43 26
      tenant/insurance/quotation-dajia/src/main/java/com/jzg/quotation/dajia/api/service/impl/DaJiaApiRequestImpl.java
  53. 25 25
      tenant/insurance/quotation-guoren/src/main/java/com/jzg/quotation/guoren/api/component/GuoRenRequestApiComponent.java
  54. 44 28
      tenant/insurance/quotation-guoren/src/main/java/com/jzg/quotation/guoren/api/service/Impl/GuoRenApiRequestImpl.java
  55. 67 13
      tenant/insurance/quotation-huanong/src/main/java/com/jzg/quotation/huanong/crawler/component/HuaNongCrawlerRequestComponent.java
  56. 3 1
      tenant/insurance/quotation-huanong/src/main/java/com/jzg/quotation/huanong/crawler/constant/enums/RequestUrl.java
  57. 4 4
      tenant/insurance/quotation-huanong/src/main/java/com/jzg/quotation/huanong/crawler/entity/request/HuaNongCrawlerFileSubmitRequest.java
  58. 81 0
      tenant/insurance/quotation-huanong/src/main/java/com/jzg/quotation/huanong/crawler/entity/response/HuaNongCrawlerBizQueryResponse.java
  59. 49 22
      tenant/insurance/quotation-huanong/src/main/java/com/jzg/quotation/huanong/crawler/service/impl/HuaNongCrawlerQuoteProcessServiceImpl.java
  60. 22 22
      tenant/insurance/quotation-huatai/src/main/java/com/jzg/quotation/huatai/api/component/HuaTaiRequestApiComponent.java
  61. 25 13
      tenant/insurance/quotation-huatai/src/main/java/com/jzg/quotation/huatai/api/service/Impl/HuaTaiApiRequestImpl.java
  62. 6 0
      tenant/insurance/quotation-summary/pom.xml
  63. 34 1
      tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/aop/aspect/QuoteVerificationAspect.java
  64. 5 3
      tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/controller/UnifyOrderManager.java
  65. 9 2
      tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/converter/QuoteInfoConverter.java
  66. 32 1
      tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/service/impl/InsFeeOrdersServiceImpl.java
  67. 1 1
      tenant/insurance/quotation-summary/src/test/java/com/jzg/quotation/taikang/crawler/service/TKQuotationBaseServiceImplTest.java
  68. 15 16
      tenant/insurance/quotation-yangguang/src/main/java/com/jzg/quotation/yangguang/api/componet/YangGuangApiRequestComponent.java
  69. 31 15
      tenant/insurance/quotation-yangguang/src/main/java/com/jzg/quotation/yangguang/api/service/impl/YangGuangApiRequestImpl.java
  70. 20 21
      tenant/insurance/quotation-yongcheng/src/main/java/com/jzg/quotation/yongcheng/api/components/YcRequestApiComponents.java
  71. 1 1
      tenant/insurance/quotation-yongcheng/src/main/java/com/jzg/quotation/yongcheng/api/service/YongChengApiRequest.java
  72. 38 25
      tenant/insurance/quotation-yongcheng/src/main/java/com/jzg/quotation/yongcheng/api/service/impl/YongChengApiRequestImpl.java
  73. 22 22
      tenant/insurance/quotation-zhongmei/src/main/java/com/jzg/quotation/zhongmei/api/component/ZmApiRequestComponent.java
  74. 34 17
      tenant/insurance/quotation-zhongmei/src/main/java/com/jzg/quotation/zhongmei/api/service/impl/ZhongMeiApiRequestImpl.java
  75. 16 2
      tenant/organization/src/main/java/com/jzg/organization/service/impl/SysUserJzgInfoBankCardServiceImpl.java
  76. 10 17
      tenant/organization/src/main/resources/application.yml
  77. 3 2
      tenant/organization/src/main/resources/mapper/SysUserJzgInfoBankCardMapper.xml

+ 11 - 0
commons/src/main/java/com/jzg/commons/config/DataPermissionInterceptor.java

@@ -94,6 +94,17 @@ import java.util.regex.Pattern;
             return null;
         }
 
+        // 函数名过滤
+        String methodName = mappedStatementId.substring(mappedStatementId.lastIndexOf(".") + 1);
+        List<String> ignoreFunctionList = dataScopeProperties.getIgnoreFunction();
+        if (ignoreFunctionList != null && !ignoreFunctionList.isEmpty()) {
+            for (String ignoreFunction : ignoreFunctionList) {
+                if (methodName.equals(ignoreFunction)) {
+                    return null;
+                }
+            }
+        }
+
         String currentUserDeptId = baseController.getUserDeptId();
         String userDataScope = baseController.getUserDataScope();
         String userSystemCode = baseController.getUserSystemCode();

+ 8 - 2
commons/src/main/java/com/jzg/commons/entity/dto/SysUserJzgInfoBankCardDto.java

@@ -37,14 +37,20 @@ public class SysUserJzgInfoBankCardDto implements Serializable {
     private String remark;
 
     @Schema(description = "业务员类型")
-    private String attrType;
+    private String typeAttr;
 
     @Schema(description = "银行卡照片文件")
-    private String cardFile;
+    private String fileId;
+
+    @Schema(description = "银行卡照片文件url")
+    private String cardFileUrl;
 
     @Schema(description = "租户编码")
     private String systemCode;
 
     @Schema(description = "租户名称")
     private String systemName;
+
+    @Schema(description = "申请时间")
+    private String applyTime;
 }

+ 54 - 0
commons/src/main/java/com/jzg/commons/entity/po/InsFeeOrders.java

@@ -100,4 +100,58 @@ public class InsFeeOrders {
 
     @Schema(description = "驾意险留点费用")
     private BigDecimal jyKeepPointPremium;
+
+    @Schema(description = "交强险入口比例")
+    private BigDecimal jqInletRatio;
+
+    @Schema(description = "商业险入口比例")
+    private BigDecimal syInletRatio;
+
+    @Schema(description = "驾意险入口比例")
+    private BigDecimal jyInletRatio;
+
+    @Schema(description = "交强险手续费比例")
+    private BigDecimal jqCommissionRatio;
+
+    @Schema(description = "商业险手续费比例")
+    private BigDecimal syCommissionRatio;
+
+    @Schema(description = "驾意险手续费比例")
+    private BigDecimal jyCommissionRatio;
+
+    @Schema(description = "交强险跟单费比例")
+    private BigDecimal jqFollowRatio;
+
+    @Schema(description = "商业险跟单费比例")
+    private BigDecimal syFollowRatio;
+
+    @Schema(description = "驾意险跟单费比例")
+    private BigDecimal jyFollowRatio;
+
+    @Schema(description = "交强险加投费费比例")
+    private BigDecimal jqAdditionalRatio;
+
+    @Schema(description = "商业险加投费费比例")
+    private BigDecimal syAdditionalRatio;
+
+    @Schema(description = "驾意险加投费费比例")
+    private BigDecimal jyAdditionalRatio;
+
+    @Schema(description = "交强险留点比例")
+    private BigDecimal jqKeepPointRatio;
+
+    @Schema(description = "商业险留点比例")
+    private BigDecimal syKeepPointRatio;
+
+    @Schema(description = "驾意险留点比例")
+    private BigDecimal jyKeepPointRatio;
+
+    @Schema(description = "交强出口比例")
+    private BigDecimal jqExportRatio;
+
+    @Schema(description = "商业险出口比例")
+    private BigDecimal syExportRatio;
+
+    @Schema(description = "驾意险出口比例")
+    private BigDecimal jyExportRatio;
 }

+ 4 - 1
commons/src/main/java/com/jzg/commons/entity/properties/DataScopeProperties.java

@@ -19,5 +19,8 @@ public class DataScopeProperties {
      */
     private List<String> tables;
 
-
+    /**
+     * 过滤方法
+     */
+    private List<String> ignoreFunction;
 }

+ 1 - 1
gateway/src/main/resources/application-dev.yml

@@ -33,7 +33,7 @@ spring:
         - id: tenant_route
           uri: http://localhost:8084/
           predicates:
-            - Path=/tenant/**,/dept/**,/area/**,/dict/**,/userInfo/**,/sysOrganization/**,/activity/**,/message/**,/messageNotice/**,/poster/**,/agreement/**,/pltAgreement/**,/agreementRules/**,/plt/areaLicense/**,/scheme/**,/schemeRules/**,/schemeRulesAttrLink/**,/schemeRulesAttr/**,/schemeRulesDictLable/**,/schemeRulesUndwrt/**,/schemeRulesUndwrtAttrLink/**,/schemeRulesUndwrtAttr/**,/schemeRulesUndwrtDictLable/**,/schemeRulesUndwrtRules/**,/schemeRulesUndwrtRulesAttrLink/**,/schemeRules,/ptlAgreementCost/**,/ptlAgreementCost/**,/ptlAgreementCostExternal/**,/operatorTrajectory/**,/messageTemplate/**,/message/**,/appUser/**
+            - Path=/tenant/**,/dept/**,/area/**,/dict/**,/userInfo/**,/sysOrganization/**,/activity/**,/message/**,/messageNotice/**,/poster/**,/agreement/**,/pltAgreement/**,/agreementRules/**,/plt/areaLicense/**,/scheme/**,/schemeRules/**,/schemeRulesAttrLink/**,/schemeRulesAttr/**,/schemeRulesDictLable/**,/schemeRulesUndwrt/**,/schemeRulesUndwrtAttrLink/**,/schemeRulesUndwrtAttr/**,/schemeRulesUndwrtDictLable/**,/schemeRulesUndwrtRules/**,/schemeRulesUndwrtRulesAttrLink/**,/schemeRules,/ptlAgreementCost/**,/ptlAgreementCost/**,/ptlAgreementCostExternal/**,/operatorTrajectory/**,/messageTemplate/**,/message/**,/appUser/**,/userBankCard/**
 
         - id: summary_route
           uri: http://localhost:9898/

+ 9 - 5
platform/src/main/java/com/jzg/controller/PtlAgreementUrlController.java

@@ -2,15 +2,13 @@ package com.jzg.controller;
 
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.jzg.commons.core.page.HttpResult;
+import com.jzg.commons.entity.agreement.po.PtlAgreementUrl;
 import com.jzg.commons.entity.agreement.vo.PtlAgreementUrlVo;
 import com.jzg.service.PtlAgreementUrlService;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.tags.Tag;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
 /**
  * @author quchen
@@ -41,12 +39,18 @@ public class PtlAgreementUrlController {
         return ptlAgreementUrlService.deletePtlAgreementUrl(ptlAgreementUrlVo) ? HttpResult.ok("删除成功") : HttpResult.error("删除失败");
     }
 
-    @Operation(summary = "查询保险公司地址接口", description = "查询保险公司地址接口")
+    @Operation(summary = "分页查询保险公司地址接口", description = "查询保险公司地址接口")
     @PostMapping(value = "/getAgreementUrlList")
     public HttpResult<Object> getAgreementUrlList(@RequestBody PtlAgreementUrlVo ptlAgreementUrlVo) {
         Page page = ptlAgreementUrlVo.getPage();
         return HttpResult.ok(ptlAgreementUrlService.getAgreementUrlList(page,ptlAgreementUrlVo));
     }
 
+    @Operation(summary = "通过保司Id查询保险公司地址接口", description = "通过保司Id查询保险公司地址接口")
+    @GetMapping(value = "/getAgreementUrlByCompanyId")
+    public HttpResult<PtlAgreementUrl> getAgreementUrlByCompanyId(@RequestParam String companyId) {
+        return HttpResult.ok(ptlAgreementUrlService.getAgreementUrlByCompanyId(companyId));
+    }
+
 
 }

+ 2 - 0
platform/src/main/java/com/jzg/service/PtlAgreementUrlService.java

@@ -14,4 +14,6 @@ public interface PtlAgreementUrlService extends IService<PtlAgreementUrl> {
     boolean deletePtlAgreementUrl (PtlAgreementUrlVo ptlAgreementUrlVo);
 
     Page<PtlAgreementUrl> getAgreementUrlList (Page page, PtlAgreementUrlVo ptlAgreementUrlVo);
+
+    PtlAgreementUrl getAgreementUrlByCompanyId(String companyId);
 }

+ 11 - 0
platform/src/main/java/com/jzg/service/impl/PtlAgreementUrlServiceImpl.java

@@ -1,11 +1,13 @@
 package com.jzg.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.jzg.commons.entity.agreement.po.PtlAgreementAttribution;
 import com.jzg.commons.entity.agreement.po.PtlAgreementUrl;
 import com.jzg.commons.entity.agreement.po.PtlInsAttributionTemplate;
 import com.jzg.commons.entity.agreement.vo.PtlAgreementUrlVo;
+import com.jzg.commons.exception.SystemException;
 import com.jzg.mapper.PtlAgreementUrlMapper;
 import com.jzg.service.PtlAgreementUrlService;
 import org.springframework.beans.BeanUtils;
@@ -28,6 +30,10 @@ public class PtlAgreementUrlServiceImpl extends ServiceImpl<PtlAgreementUrlMappe
     public boolean addPtlAgreementUrl(PtlAgreementUrlVo ptlAgreementUrlVo) {
         PtlAgreementUrl ptlAgreementUrl = new PtlAgreementUrl();
         BeanUtils.copyProperties(ptlAgreementUrlVo, ptlAgreementUrl);
+        Long count = ptlAgreementUrlMapper.selectCount(new LambdaQueryWrapper<PtlAgreementUrl>().eq(PtlAgreementUrl::getCompanyId, ptlAgreementUrlVo.getCompanyId()));
+        if (count > 0) {
+            throw new SystemException("该保险公司已配置地址");
+        }
         this.save(ptlAgreementUrl);
         return true;
     }
@@ -55,4 +61,9 @@ public class PtlAgreementUrlServiceImpl extends ServiceImpl<PtlAgreementUrlMappe
         Page<PtlAgreementUrl> ptlAgreementUrlPage = ptlAgreementUrlMapper.getAgreementUrlList(page, ptlAgreementUrlVo);
         return ptlAgreementUrlPage;
     }
+
+    @Override
+    public PtlAgreementUrl getAgreementUrlByCompanyId(String companyId) {
+        return ptlAgreementUrlMapper.selectOne(new LambdaQueryWrapper<PtlAgreementUrl>().eq(PtlAgreementUrl::getCompanyId, companyId));
+    }
 }

+ 5 - 5
tenant/insurance/quotation-ansheng/src/main/java/com/jzg/ansheng/crawler/build/AnShengCrawlerQuoteResultsVoBuild.java → tenant/insurance/quotation-ansheng/src/main/java/com/jzg/quotation/ansheng/crawler/build/AnShengCrawlerQuoteResultsVoBuild.java

@@ -1,13 +1,13 @@
-package com.jzg.ansheng.crawler.build;
+package com.jzg.quotation.ansheng.crawler.build;
 
 
-import com.jzg.ansheng.crawler.constant.enums.RiskCodeInfo;
-import com.jzg.ansheng.crawler.entity.response.AnShengCrawlerCalculatePremiumApplyResponse;
 import com.jzg.commons.entity.quote.vo.KindInfoVo;
+import com.jzg.commons.entity.quote.vo.QuoteVo;
 import com.jzg.commons.entity.quote.vo.RiskInfoVo;
-import com.jzg.quotation.commons.component.ConversionOfQuoteInformation;
 import com.jzg.commons.entity.quote.vo.aggregated.QuoteResultsVo;
-import com.jzg.commons.entity.quote.vo.QuoteVo;
+import com.jzg.quotation.ansheng.crawler.constant.enums.RiskCodeInfo;
+import com.jzg.quotation.ansheng.crawler.entity.response.AnShengCrawlerCalculatePremiumApplyResponse;
+import com.jzg.quotation.commons.component.ConversionOfQuoteInformation;
 
 import java.util.List;
 

+ 2 - 2
tenant/insurance/quotation-ansheng/src/main/java/com/jzg/ansheng/crawler/component/AnShengCrawlerCacheComponent.java → tenant/insurance/quotation-ansheng/src/main/java/com/jzg/quotation/ansheng/crawler/component/AnShengCrawlerCacheComponent.java

@@ -1,9 +1,9 @@
-package com.jzg.ansheng.crawler.component;
+package com.jzg.quotation.ansheng.crawler.component;
 
 
 import com.alibaba.fastjson2.JSON;
 import com.alibaba.fastjson2.JSONObject;
-import com.jzg.ansheng.crawler.entity.request.AnShengCrawlerCalculatePremiumApplyMessage;
+import com.jzg.quotation.ansheng.crawler.entity.request.AnShengCrawlerCalculatePremiumApplyMessage;
 import lombok.RequiredArgsConstructor;
 import org.redisson.api.RedissonClient;
 import org.springframework.stereotype.Component;

+ 37 - 23
tenant/insurance/quotation-ansheng/src/main/java/com/jzg/ansheng/crawler/component/AnShengCrawlerRequestComponent.java → tenant/insurance/quotation-ansheng/src/main/java/com/jzg/quotation/ansheng/crawler/component/AnShengCrawlerRequestComponent.java

@@ -1,28 +1,26 @@
-package com.jzg.ansheng.crawler.component;
+package com.jzg.quotation.ansheng.crawler.component;
 
 
 import com.alibaba.fastjson.JSON;
-import com.jzg.ansheng.crawler.constant.enums.RequestUrl;
-import com.jzg.ansheng.crawler.entity.request.*;
-import com.jzg.ansheng.crawler.entity.response.*;
-import com.jzg.ansheng.crawler.properties.AnShengCrawlerProperties;
 import com.jzg.commons.exception.SystemException;
+import com.jzg.quotation.ansheng.crawler.constant.enums.RequestUrl;
+import com.jzg.quotation.ansheng.crawler.entity.request.*;
+import com.jzg.quotation.ansheng.crawler.entity.response.*;
+import com.jzg.quotation.ansheng.crawler.properties.AnShengCrawlerProperties;
 import com.jzg.quotation.commons.component.RequestComponent;
+import com.jzg.quotation.commons.utils.CookieParseUtils;
 import com.jzg.quotation.commons.utils.RequestObjectConversion;
 import lombok.RequiredArgsConstructor;
+import org.jetbrains.annotations.NotNull;
 import org.springframework.core.io.FileSystemResource;
 import org.springframework.http.HttpHeaders;
 import org.springframework.http.ResponseEntity;
 import org.springframework.stereotype.Component;
 import org.springframework.util.LinkedMultiValueMap;
 import org.springframework.util.MultiValueMap;
-import org.springframework.util.ObjectUtils;
 
 import java.io.File;
-import java.util.Base64;
-import java.util.List;
-import java.util.Map;
-import java.util.Optional;
+import java.util.*;
 
 /**
  * @description: 安盛天平 爬虫 请求
@@ -37,13 +35,6 @@ public class AnShengCrawlerRequestComponent {
 
     private final AnShengCrawlerProperties anShengCrawlerProperties;
 
-    public <Response> Response request(RequestUrl requestUrl, Object body, Class<Response> responseClass, HttpHeaders headers) {
-        if (ObjectUtils.isEmpty(headers)) {
-            headers = new HttpHeaders();
-        }
-        ResponseEntity<Response> responseResponseEntity = requestComponent.objectPost(requestUrl.getRequestUrl(anShengCrawlerProperties.getUrl()), body, responseClass, headers);
-        return responseResponseEntity.getBody();
-    }
 
     public <Response> Response post(RequestUrl requestUrl, Object body, Class<Response> responseClass, HttpHeaders headers) {
         Map<String, String> message = Map.of("message", JSON.toJSONString(body));
@@ -57,9 +48,12 @@ public class AnShengCrawlerRequestComponent {
      * @param request 获取验证码参数
      * @return 验证码参数
      */
-    public AnShengCrawlerVerifyResponse.DataDTO crawlerVerify(AnShengCrawlerVerifyRequest request) {
-        AnShengCrawlerVerifyResponse response = request(RequestUrl.MFA_VERIFY, request, AnShengCrawlerVerifyResponse.class, null);
-        return response.getData();
+    public AnShengCrawlerVerifyResponse.DataDTO crawlerVerify(AnShengCrawlerVerifyRequest request, final HttpHeaders headers) {
+        ResponseEntity<AnShengCrawlerVerifyResponse> verifyRequest = requestComponent.objectPost(RequestUrl.MFA_VERIFY.getRequestUrl(anShengCrawlerProperties.getUrl()), request, AnShengCrawlerVerifyResponse.class, headers);
+        List<String> strings = verifyRequest.getHeaders().get(CookieParseUtils.SET_COOKIE);
+        String cookie = CookieParseUtils.listToStrCookie(strings);
+        headers.set(CookieParseUtils.COOKIE, cookie);
+        return verifyRequest.getBody().getData();
     }
 
     /**
@@ -80,10 +74,24 @@ public class AnShengCrawlerRequestComponent {
      * @param request 登录请求
      * @param headers 请求头
      */
-    public HttpHeaders login(AnShengCrawlerCheckLoginRequest request, HttpHeaders headers) {
+    public void login(AnShengCrawlerCheckLoginRequest request, HttpHeaders headers) {
         MultiValueMap<String, Object> multiValueMap = RequestObjectConversion.convertMultiValueMap(request);
         ResponseEntity<String> response = requestComponent.formData(RequestUrl.LOGIN.getRequestUrl(anShengCrawlerProperties.getUrl()), multiValueMap, String.class, headers);
-        return response.getHeaders();
+        conversionCookies(headers, response, CookieParseUtils.JSESSIONID);
+    }
+
+    private static void conversionCookies(HttpHeaders headers, ResponseEntity<String> response, String cookieName) {
+        List<String> strings = response.getHeaders().get(CookieParseUtils.SET_COOKIE);
+        Map<String, String> loginCookie = CookieParseUtils.parseCookie(strings);
+        Map<String, String> rawCookie = CookieParseUtils.parseCookie(Objects.requireNonNull(headers.get(CookieParseUtils.COOKIE)).get(0));
+
+        if(CookieParseUtils.AUTHORIZATION.equals(cookieName)){
+            rawCookie.put(cookieName, CookieParseUtils.BEARER + loginCookie.get(cookieName));
+        }else {
+            rawCookie.put(cookieName, loginCookie.get(cookieName));
+        }
+        String cookie = CookieParseUtils.toStringCookie(rawCookie);
+        headers.set(CookieParseUtils.COOKIE, cookie);
     }
 
     /**
@@ -92,9 +100,15 @@ public class AnShengCrawlerRequestComponent {
      * @param headers 请求头
      */
     public void authorize(HttpHeaders headers) {
-        requestComponent.baseGet(RequestUrl.OAUTH_AUTHORIZE.getRequestUrl(anShengCrawlerProperties.getUrl()), new LinkedMultiValueMap<>(), String.class, headers);
+        LinkedMultiValueMap<String, String> map = new LinkedMultiValueMap<>();
+        map.put("client_id", List.of("ast-prod"));
+        map.put("response_type", List.of("code"));
+
+        ResponseEntity<String> response = requestComponent.baseGet(RequestUrl.OAUTH_AUTHORIZE.getRequestUrl(anShengCrawlerProperties.getUrl()), new LinkedMultiValueMap<>(), String.class, headers);
+        conversionCookies(headers, response, CookieParseUtils.AUTHORIZATION);
     }
 
+
     /**
      * 获取归属信息
      *

+ 1 - 1
tenant/insurance/quotation-ansheng/src/main/java/com/jzg/ansheng/crawler/constant/AnShengCrawlerSystemConstant.java → tenant/insurance/quotation-ansheng/src/main/java/com/jzg/quotation/ansheng/crawler/constant/AnShengCrawlerSystemConstant.java

@@ -1,4 +1,4 @@
-package com.jzg.ansheng.crawler.constant;
+package com.jzg.quotation.ansheng.crawler.constant;
 
 /**
  * @description: 安盛财险爬虫系统常量

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

@@ -1,4 +1,4 @@
-package com.jzg.ansheng.crawler.constant.enums;
+package com.jzg.quotation.ansheng.crawler.constant.enums;
 
 import com.jzg.quotation.commons.standard.CrawlerRequestUrlStandard;
 import lombok.AllArgsConstructor;

+ 1 - 1
tenant/insurance/quotation-ansheng/src/main/java/com/jzg/ansheng/crawler/constant/enums/RiskCodeInfo.java → tenant/insurance/quotation-ansheng/src/main/java/com/jzg/quotation/ansheng/crawler/constant/enums/RiskCodeInfo.java

@@ -1,4 +1,4 @@
-package com.jzg.ansheng.crawler.constant.enums;
+package com.jzg.quotation.ansheng.crawler.constant.enums;
 
 import lombok.AllArgsConstructor;
 import lombok.Getter;

+ 1 - 1
tenant/insurance/quotation-ansheng/src/main/java/com/jzg/ansheng/crawler/entity/po/AnShengCrawlerOrder.java → tenant/insurance/quotation-ansheng/src/main/java/com/jzg/quotation/ansheng/crawler/entity/po/AnShengCrawlerOrder.java

@@ -1,4 +1,4 @@
-package com.jzg.ansheng.crawler.entity.po;
+package com.jzg.quotation.ansheng.crawler.entity.po;
 
 import lombok.AllArgsConstructor;
 import lombok.Data;

+ 1 - 1
tenant/insurance/quotation-ansheng/src/main/java/com/jzg/ansheng/crawler/entity/request/AnShengCrawlerApplyApplicationRequest.java → tenant/insurance/quotation-ansheng/src/main/java/com/jzg/quotation/ansheng/crawler/entity/request/AnShengCrawlerApplyApplicationRequest.java

@@ -1,4 +1,4 @@
-package com.jzg.ansheng.crawler.entity.request;
+package com.jzg.quotation.ansheng.crawler.entity.request;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import com.jzg.quotation.commons.utils.TimeProcessing;

+ 1 - 1
tenant/insurance/quotation-ansheng/src/main/java/com/jzg/ansheng/crawler/entity/request/AnShengCrawlerAutoSpecialPromiseRequest.java → tenant/insurance/quotation-ansheng/src/main/java/com/jzg/quotation/ansheng/crawler/entity/request/AnShengCrawlerAutoSpecialPromiseRequest.java

@@ -1,4 +1,4 @@
-package com.jzg.ansheng.crawler.entity.request;
+package com.jzg.quotation.ansheng.crawler.entity.request;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import lombok.Data;

+ 2 - 2
tenant/insurance/quotation-ansheng/src/main/java/com/jzg/ansheng/crawler/entity/request/AnShengCrawlerCalculatePremiumApplyMessage.java → tenant/insurance/quotation-ansheng/src/main/java/com/jzg/quotation/ansheng/crawler/entity/request/AnShengCrawlerCalculatePremiumApplyMessage.java

@@ -1,12 +1,12 @@
-package com.jzg.ansheng.crawler.entity.request;
+package com.jzg.quotation.ansheng.crawler.entity.request;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import com.google.common.collect.Lists;
-import com.jzg.ansheng.crawler.entity.response.AnShengCrawlerSearchVehicleByVinResponse;
 import com.jzg.commons.entity.quote.vo.CarInfoVo;
 import com.jzg.commons.entity.quote.vo.CustomerInfoVo;
 import com.jzg.commons.entity.quote.vo.KindInfoVo;
 import com.jzg.commons.entity.quote.vo.QuoteVo;
+import com.jzg.quotation.ansheng.crawler.entity.response.AnShengCrawlerSearchVehicleByVinResponse;
 import com.jzg.quotation.commons.utils.TimeProcessing;
 import lombok.AllArgsConstructor;
 import lombok.Data;

+ 2 - 2
tenant/insurance/quotation-ansheng/src/main/java/com/jzg/ansheng/crawler/entity/request/AnShengCrawlerCheckLoginRequest.java → tenant/insurance/quotation-ansheng/src/main/java/com/jzg/quotation/ansheng/crawler/entity/request/AnShengCrawlerCheckLoginRequest.java

@@ -1,7 +1,7 @@
-package com.jzg.ansheng.crawler.entity.request;
+package com.jzg.quotation.ansheng.crawler.entity.request;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
-import com.jzg.ansheng.crawler.constant.AnShengCrawlerSystemConstant;
+import com.jzg.quotation.ansheng.crawler.constant.AnShengCrawlerSystemConstant;
 import lombok.AllArgsConstructor;
 import lombok.Data;
 

+ 4 - 4
tenant/insurance/quotation-ansheng/src/main/java/com/jzg/ansheng/crawler/entity/request/AnShengCrawlerCheckVerificationRequest.java → tenant/insurance/quotation-ansheng/src/main/java/com/jzg/quotation/ansheng/crawler/entity/request/AnShengCrawlerCheckVerificationRequest.java

@@ -1,7 +1,7 @@
-package com.jzg.ansheng.crawler.entity.request;
+package com.jzg.quotation.ansheng.crawler.entity.request;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
-import com.jzg.ansheng.crawler.constant.AnShengCrawlerSystemConstant;
+import com.jzg.quotation.ansheng.crawler.constant.AnShengCrawlerSystemConstant;
 import lombok.AllArgsConstructor;
 import lombok.Data;
 import lombok.NoArgsConstructor;
@@ -26,7 +26,7 @@ public class AnShengCrawlerCheckVerificationRequest {
     private String key;
 
     @JsonProperty("acountName")
-    private String accountName;
+    private String acountName;
 
     @JsonProperty("clientId")
     private String clientId;
@@ -38,7 +38,7 @@ public class AnShengCrawlerCheckVerificationRequest {
         this.x = x;
         this.y = y;
         this.key = key;
-        this.accountName = accountName;
+        this.acountName = accountName;
         this.clientId = AnShengCrawlerSystemConstant.CLIENT_ID;
         this.accountType = AnShengCrawlerSystemConstant.ACCOUNT_TYPE;
     }

+ 1 - 1
tenant/insurance/quotation-ansheng/src/main/java/com/jzg/ansheng/crawler/entity/request/AnShengCrawlerFileUploadRequest.java → tenant/insurance/quotation-ansheng/src/main/java/com/jzg/quotation/ansheng/crawler/entity/request/AnShengCrawlerFileUploadRequest.java

@@ -1,4 +1,4 @@
-package com.jzg.ansheng.crawler.entity.request;
+package com.jzg.quotation.ansheng.crawler.entity.request;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import lombok.AllArgsConstructor;

+ 1 - 1
tenant/insurance/quotation-ansheng/src/main/java/com/jzg/ansheng/crawler/entity/request/AnShengCrawlerPaymentRequest.java → tenant/insurance/quotation-ansheng/src/main/java/com/jzg/quotation/ansheng/crawler/entity/request/AnShengCrawlerPaymentRequest.java

@@ -1,4 +1,4 @@
-package com.jzg.ansheng.crawler.entity.request;
+package com.jzg.quotation.ansheng.crawler.entity.request;
 
 
 import com.fasterxml.jackson.annotation.JsonProperty;

+ 1 - 1
tenant/insurance/quotation-ansheng/src/main/java/com/jzg/ansheng/crawler/entity/request/AnShengCrawlerQueryDocumentsInformationRequest.java → tenant/insurance/quotation-ansheng/src/main/java/com/jzg/quotation/ansheng/crawler/entity/request/AnShengCrawlerQueryDocumentsInformationRequest.java

@@ -1,4 +1,4 @@
-package com.jzg.ansheng.crawler.entity.request;
+package com.jzg.quotation.ansheng.crawler.entity.request;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import com.jzg.quotation.commons.utils.TimeProcessing;

+ 1 - 1
tenant/insurance/quotation-ansheng/src/main/java/com/jzg/ansheng/crawler/entity/request/AnShengCrawlerQueryPrintPdfRequest.java → tenant/insurance/quotation-ansheng/src/main/java/com/jzg/quotation/ansheng/crawler/entity/request/AnShengCrawlerQueryPrintPdfRequest.java

@@ -1,4 +1,4 @@
-package com.jzg.ansheng.crawler.entity.request;
+package com.jzg.quotation.ansheng.crawler.entity.request;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import lombok.AllArgsConstructor;

+ 1 - 1
tenant/insurance/quotation-ansheng/src/main/java/com/jzg/ansheng/crawler/entity/request/AnShengCrawlerSearchVehicleByVinRequest.java → tenant/insurance/quotation-ansheng/src/main/java/com/jzg/quotation/ansheng/crawler/entity/request/AnShengCrawlerSearchVehicleByVinRequest.java

@@ -1,4 +1,4 @@
-package com.jzg.ansheng.crawler.entity.request;
+package com.jzg.quotation.ansheng.crawler.entity.request;
 
 
 import com.fasterxml.jackson.annotation.JsonProperty;

+ 2 - 2
tenant/insurance/quotation-ansheng/src/main/java/com/jzg/ansheng/crawler/entity/request/AnShengCrawlerVerifyRequest.java → tenant/insurance/quotation-ansheng/src/main/java/com/jzg/quotation/ansheng/crawler/entity/request/AnShengCrawlerVerifyRequest.java

@@ -1,7 +1,7 @@
-package com.jzg.ansheng.crawler.entity.request;
+package com.jzg.quotation.ansheng.crawler.entity.request;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
-import com.jzg.ansheng.crawler.constant.AnShengCrawlerSystemConstant;
+import com.jzg.quotation.ansheng.crawler.constant.AnShengCrawlerSystemConstant;
 import lombok.Data;
 import lombok.NoArgsConstructor;
 

+ 1 - 1
tenant/insurance/quotation-ansheng/src/main/java/com/jzg/ansheng/crawler/entity/response/AnShengCrawlerApplyApplicationResponse.java → tenant/insurance/quotation-ansheng/src/main/java/com/jzg/quotation/ansheng/crawler/entity/response/AnShengCrawlerApplyApplicationResponse.java

@@ -1,4 +1,4 @@
-package com.jzg.ansheng.crawler.entity.response;
+package com.jzg.quotation.ansheng.crawler.entity.response;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import lombok.Data;

+ 1 - 1
tenant/insurance/quotation-ansheng/src/main/java/com/jzg/ansheng/crawler/entity/response/AnShengCrawlerAutoSpecialPromiseResponse.java → tenant/insurance/quotation-ansheng/src/main/java/com/jzg/quotation/ansheng/crawler/entity/response/AnShengCrawlerAutoSpecialPromiseResponse.java

@@ -1,4 +1,4 @@
-package com.jzg.ansheng.crawler.entity.response;
+package com.jzg.quotation.ansheng.crawler.entity.response;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import lombok.Data;

+ 1 - 1
tenant/insurance/quotation-ansheng/src/main/java/com/jzg/ansheng/crawler/entity/response/AnShengCrawlerCalculatePremiumApplyResponse.java → tenant/insurance/quotation-ansheng/src/main/java/com/jzg/quotation/ansheng/crawler/entity/response/AnShengCrawlerCalculatePremiumApplyResponse.java

@@ -1,4 +1,4 @@
-package com.jzg.ansheng.crawler.entity.response;
+package com.jzg.quotation.ansheng.crawler.entity.response;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import lombok.Data;

+ 1 - 1
tenant/insurance/quotation-ansheng/src/main/java/com/jzg/ansheng/crawler/entity/response/AnShengCrawlerFileUploadResponse.java → tenant/insurance/quotation-ansheng/src/main/java/com/jzg/quotation/ansheng/crawler/entity/response/AnShengCrawlerFileUploadResponse.java

@@ -1,4 +1,4 @@
-package com.jzg.ansheng.crawler.entity.response;
+package com.jzg.quotation.ansheng.crawler.entity.response;
 
 
 import com.fasterxml.jackson.annotation.JsonProperty;

+ 1 - 1
tenant/insurance/quotation-ansheng/src/main/java/com/jzg/ansheng/crawler/entity/response/AnShengCrawlerGetUserDetailResponse.java → tenant/insurance/quotation-ansheng/src/main/java/com/jzg/quotation/ansheng/crawler/entity/response/AnShengCrawlerGetUserDetailResponse.java

@@ -1,4 +1,4 @@
-package com.jzg.ansheng.crawler.entity.response;
+package com.jzg.quotation.ansheng.crawler.entity.response;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import lombok.Data;

+ 1 - 1
tenant/insurance/quotation-ansheng/src/main/java/com/jzg/ansheng/crawler/entity/response/AnShengCrawlerPaymentResponse.java → tenant/insurance/quotation-ansheng/src/main/java/com/jzg/quotation/ansheng/crawler/entity/response/AnShengCrawlerPaymentResponse.java

@@ -1,4 +1,4 @@
-package com.jzg.ansheng.crawler.entity.response;
+package com.jzg.quotation.ansheng.crawler.entity.response;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import lombok.Data;

+ 1 - 1
tenant/insurance/quotation-ansheng/src/main/java/com/jzg/ansheng/crawler/entity/response/AnShengCrawlerQueryDocumentsInformationResponse.java → tenant/insurance/quotation-ansheng/src/main/java/com/jzg/quotation/ansheng/crawler/entity/response/AnShengCrawlerQueryDocumentsInformationResponse.java

@@ -1,4 +1,4 @@
-package com.jzg.ansheng.crawler.entity.response;
+package com.jzg.quotation.ansheng.crawler.entity.response;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import lombok.Data;

+ 1 - 1
tenant/insurance/quotation-ansheng/src/main/java/com/jzg/ansheng/crawler/entity/response/AnShengCrawlerSearchVehicleByVinResponse.java → tenant/insurance/quotation-ansheng/src/main/java/com/jzg/quotation/ansheng/crawler/entity/response/AnShengCrawlerSearchVehicleByVinResponse.java

@@ -1,4 +1,4 @@
-package com.jzg.ansheng.crawler.entity.response;
+package com.jzg.quotation.ansheng.crawler.entity.response;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import com.jzg.quotation.commons.filter.CarModelsFilter;

+ 1 - 1
tenant/insurance/quotation-ansheng/src/main/java/com/jzg/ansheng/crawler/entity/response/AnShengCrawlerVerifyResponse.java → tenant/insurance/quotation-ansheng/src/main/java/com/jzg/quotation/ansheng/crawler/entity/response/AnShengCrawlerVerifyResponse.java

@@ -1,4 +1,4 @@
-package com.jzg.ansheng.crawler.entity.response;
+package com.jzg.quotation.ansheng.crawler.entity.response;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import lombok.Data;

+ 1 - 1
tenant/insurance/quotation-ansheng/src/main/java/com/jzg/ansheng/crawler/properties/AnShengCrawlerProperties.java → tenant/insurance/quotation-ansheng/src/main/java/com/jzg/quotation/ansheng/crawler/properties/AnShengCrawlerProperties.java

@@ -1,4 +1,4 @@
-package com.jzg.ansheng.crawler.properties;
+package com.jzg.quotation.ansheng.crawler.properties;
 
 
 import lombok.Data;

+ 2 - 2
tenant/insurance/quotation-ansheng/src/main/java/com/jzg/ansheng/crawler/repository/AnShengCrawlerOrderRepository.java → tenant/insurance/quotation-ansheng/src/main/java/com/jzg/quotation/ansheng/crawler/repository/AnShengCrawlerOrderRepository.java

@@ -1,6 +1,6 @@
-package com.jzg.ansheng.crawler.repository;
+package com.jzg.quotation.ansheng.crawler.repository;
 
-import com.jzg.ansheng.crawler.entity.po.AnShengCrawlerOrder;
+import com.jzg.quotation.ansheng.crawler.entity.po.AnShengCrawlerOrder;
 import com.jzg.quotation.commons.repository.BaseRepository;
 import org.springframework.stereotype.Repository;
 

+ 1 - 1
tenant/insurance/quotation-ansheng/src/main/java/com/jzg/ansheng/crawler/service/AnShengCrawlerLoginService.java → tenant/insurance/quotation-ansheng/src/main/java/com/jzg/quotation/ansheng/crawler/service/AnShengCrawlerLoginService.java

@@ -1,4 +1,4 @@
-package com.jzg.ansheng.crawler.service;
+package com.jzg.quotation.ansheng.crawler.service;
 
 public interface AnShengCrawlerLoginService {
 

+ 2 - 2
tenant/insurance/quotation-ansheng/src/main/java/com/jzg/ansheng/crawler/service/AnShengCrawlerOrderService.java → tenant/insurance/quotation-ansheng/src/main/java/com/jzg/quotation/ansheng/crawler/service/AnShengCrawlerOrderService.java

@@ -1,6 +1,6 @@
-package com.jzg.ansheng.crawler.service;
+package com.jzg.quotation.ansheng.crawler.service;
 
-import com.jzg.ansheng.crawler.entity.po.AnShengCrawlerOrder;
+import com.jzg.quotation.ansheng.crawler.entity.po.AnShengCrawlerOrder;
 
 public interface AnShengCrawlerOrderService {
 

+ 1 - 1
tenant/insurance/quotation-ansheng/src/main/java/com/jzg/ansheng/crawler/service/AnShengCrawlerRequest.java → tenant/insurance/quotation-ansheng/src/main/java/com/jzg/quotation/ansheng/crawler/service/AnShengCrawlerRequest.java

@@ -1,4 +1,4 @@
-package com.jzg.ansheng.crawler.service;
+package com.jzg.quotation.ansheng.crawler.service;
 
 import com.jzg.quotation.commons.service.QuotationCrawlerBaseService;
 

+ 14 - 12
tenant/insurance/quotation-ansheng/src/main/java/com/jzg/ansheng/crawler/service/impl/AnShengCrawlerLoginServiceImpl.java → tenant/insurance/quotation-ansheng/src/main/java/com/jzg/quotation/ansheng/crawler/service/impl/AnShengCrawlerLoginServiceImpl.java

@@ -1,12 +1,12 @@
-package com.jzg.ansheng.crawler.service.impl;
-
-import com.jzg.ansheng.crawler.component.AnShengCrawlerRequestComponent;
-import com.jzg.ansheng.crawler.entity.request.AnShengCrawlerCheckLoginRequest;
-import com.jzg.ansheng.crawler.entity.request.AnShengCrawlerCheckVerificationRequest;
-import com.jzg.ansheng.crawler.entity.request.AnShengCrawlerVerifyRequest;
-import com.jzg.ansheng.crawler.entity.response.AnShengCrawlerVerifyResponse;
-import com.jzg.ansheng.crawler.service.AnShengCrawlerLoginService;
+package com.jzg.quotation.ansheng.crawler.service.impl;
+
 import com.jzg.commons.entity.quote.vo.identify.SliderCaptchaVo;
+import com.jzg.quotation.ansheng.crawler.component.AnShengCrawlerRequestComponent;
+import com.jzg.quotation.ansheng.crawler.entity.request.AnShengCrawlerCheckLoginRequest;
+import com.jzg.quotation.ansheng.crawler.entity.request.AnShengCrawlerCheckVerificationRequest;
+import com.jzg.quotation.ansheng.crawler.entity.request.AnShengCrawlerVerifyRequest;
+import com.jzg.quotation.ansheng.crawler.entity.response.AnShengCrawlerVerifyResponse;
+import com.jzg.quotation.ansheng.crawler.service.AnShengCrawlerLoginService;
 import com.jzg.quotation.commons.service.ExteriorUtilsRequest;
 import lombok.RequiredArgsConstructor;
 import org.springframework.http.HttpHeaders;
@@ -30,7 +30,7 @@ public class AnShengCrawlerLoginServiceImpl implements AnShengCrawlerLoginServic
         // 获取验证码
         for (int i = 0; i < LOGIN_NUMBER; i++) {
             AnShengCrawlerVerifyRequest anShengCrawlerVerifyRequest = new AnShengCrawlerVerifyRequest(username, password);
-            AnShengCrawlerVerifyResponse.DataDTO dataDTO = anShengCrawlerRequestComponent.crawlerVerify(anShengCrawlerVerifyRequest);
+            AnShengCrawlerVerifyResponse.DataDTO dataDTO = anShengCrawlerRequestComponent.crawlerVerify(anShengCrawlerVerifyRequest, httpHeaders);
 
             AnShengCrawlerVerifyResponse.DataDTO.ImageVerificationDTO imageVerification = dataDTO.getImageVerification();
             // 滑块验证码识别
@@ -39,10 +39,12 @@ public class AnShengCrawlerLoginServiceImpl implements AnShengCrawlerLoginServic
             AnShengCrawlerCheckVerificationRequest anShengCrawlerCheckVerificationRequest = new AnShengCrawlerCheckVerificationRequest(integers.get(0)
                     .toString(), integers.get(1).toString(), imageVerification.getUserFlag(), username);
             boolean b = anShengCrawlerRequestComponent.checkVerification(anShengCrawlerCheckVerificationRequest, httpHeaders);
-            // 登录
-            AnShengCrawlerCheckLoginRequest anShengCrawlerCheckLoginRequest = new AnShengCrawlerCheckLoginRequest(imageVerification.getUserFlag(), username, password);
-            HttpHeaders login = anShengCrawlerRequestComponent.login(anShengCrawlerCheckLoginRequest, httpHeaders);
             if (b) {
+                // 登录
+                AnShengCrawlerCheckLoginRequest anShengCrawlerCheckLoginRequest = new AnShengCrawlerCheckLoginRequest(imageVerification.getUserFlag(), username, password);
+                anShengCrawlerRequestComponent.login(anShengCrawlerCheckLoginRequest, httpHeaders);
+                //  授权
+                anShengCrawlerRequestComponent.authorize(httpHeaders);
                 break;
             }
         }

+ 4 - 4
tenant/insurance/quotation-ansheng/src/main/java/com/jzg/ansheng/crawler/service/impl/AnShengCrawlerOrderServiceImpl.java → tenant/insurance/quotation-ansheng/src/main/java/com/jzg/quotation/ansheng/crawler/service/impl/AnShengCrawlerOrderServiceImpl.java

@@ -1,9 +1,9 @@
-package com.jzg.ansheng.crawler.service.impl;
+package com.jzg.quotation.ansheng.crawler.service.impl;
 
 
-import com.jzg.ansheng.crawler.entity.po.AnShengCrawlerOrder;
-import com.jzg.ansheng.crawler.repository.AnShengCrawlerOrderRepository;
-import com.jzg.ansheng.crawler.service.AnShengCrawlerOrderService;
+import com.jzg.quotation.ansheng.crawler.entity.po.AnShengCrawlerOrder;
+import com.jzg.quotation.ansheng.crawler.repository.AnShengCrawlerOrderRepository;
+import com.jzg.quotation.ansheng.crawler.service.AnShengCrawlerOrderService;
 import lombok.RequiredArgsConstructor;
 import org.springframework.stereotype.Service;
 

+ 14 - 12
tenant/insurance/quotation-ansheng/src/main/java/com/jzg/ansheng/crawler/service/impl/AnShengCrawlerRequestImpl.java → tenant/insurance/quotation-ansheng/src/main/java/com/jzg/quotation/ansheng/crawler/service/impl/AnShengCrawlerRequestImpl.java

@@ -1,21 +1,21 @@
-package com.jzg.ansheng.crawler.service.impl;
+package com.jzg.quotation.ansheng.crawler.service.impl;
 
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.bean.copier.CopyOptions;
-import com.jzg.ansheng.crawler.build.AnShengCrawlerQuoteResultsVoBuild;
-import com.jzg.ansheng.crawler.component.AnShengCrawlerCacheComponent;
-import com.jzg.ansheng.crawler.component.AnShengCrawlerRequestComponent;
-import com.jzg.ansheng.crawler.entity.po.AnShengCrawlerOrder;
-import com.jzg.ansheng.crawler.entity.request.*;
-import com.jzg.ansheng.crawler.entity.response.*;
-import com.jzg.ansheng.crawler.service.AnShengCrawlerLoginService;
-import com.jzg.ansheng.crawler.service.AnShengCrawlerOrderService;
-import com.jzg.ansheng.crawler.service.AnShengCrawlerRequest;
 import com.jzg.commons.entity.quote.vo.QuoteVo;
 import com.jzg.commons.entity.quote.vo.aggregated.*;
+import com.jzg.commons.entity.quote.vo.base.LoginBase;
+import com.jzg.quotation.ansheng.crawler.build.AnShengCrawlerQuoteResultsVoBuild;
+import com.jzg.quotation.ansheng.crawler.component.AnShengCrawlerCacheComponent;
+import com.jzg.quotation.ansheng.crawler.component.AnShengCrawlerRequestComponent;
+import com.jzg.quotation.ansheng.crawler.entity.po.AnShengCrawlerOrder;
+import com.jzg.quotation.ansheng.crawler.entity.request.*;
+import com.jzg.quotation.ansheng.crawler.entity.response.*;
+import com.jzg.quotation.ansheng.crawler.service.AnShengCrawlerLoginService;
+import com.jzg.quotation.ansheng.crawler.service.AnShengCrawlerOrderService;
+import com.jzg.quotation.ansheng.crawler.service.AnShengCrawlerRequest;
 import com.jzg.quotation.commons.annotation.QuoteCrawlerService;
 import com.jzg.quotation.commons.constant.InsuranceCode;
-import com.jzg.commons.entity.quote.vo.base.LoginBase;
 import com.jzg.quotation.commons.filter.CarModelsFilterUtils;
 import lombok.RequiredArgsConstructor;
 import org.springframework.http.HttpHeaders;
@@ -28,7 +28,7 @@ import java.util.Map;
 import java.util.Optional;
 import java.util.stream.Collectors;
 
-@QuoteCrawlerService(InsuranceCode.INSURANCE_TPBX)
+@QuoteCrawlerService(value = InsuranceCode.INSURANCE_TPBX)
 @RequiredArgsConstructor
 public class AnShengCrawlerRequestImpl implements AnShengCrawlerRequest {
 
@@ -58,6 +58,8 @@ public class AnShengCrawlerRequestImpl implements AnShengCrawlerRequest {
         // 订单号
         final String ordersNo = quoteVo.getOrder().getOrdersNo();
 
+        anShengCrawlerLoginService.login(quoteVo.getOrder().getAttributionInformationVo().getUsername(), quoteVo.getOrder().getAttributionInformationVo().getPassword());
+
         HttpHeaders httpHeaders = new HttpHeaders();
         // 车架号查询
         AnShengCrawlerSearchVehicleByVinRequest anShengCrawlerSearchVehicleByVinRequest = new AnShengCrawlerSearchVehicleByVinRequest();

+ 27 - 27
tenant/insurance/quotation-bohai/src/main/java/com/jzg/quotation/bohai/api/component/BoHaiRequestApiComponent.java

@@ -84,8 +84,8 @@ public class BoHaiRequestApiComponent {
      * @param request 生成订单号请求实体
      * @return 返回订单号响应
      */
-    public GenerateOrderNoResponse generateOrderNo(GenerateOrderNoRequest request, String sysSourceCode) throws Exception {
-        return verificationResponse(request, properties.getUrl(), GenerateOrderNoResponse.class, sysSourceCode, RequestType.Z00002);
+    public GenerateOrderNoResponse generateOrderNo(GenerateOrderNoRequest request, String sysSourceCode,String url) throws Exception {
+        return verificationResponse(request, url, GenerateOrderNoResponse.class, sysSourceCode, RequestType.Z00002);
     }
 
     /**
@@ -94,8 +94,8 @@ public class BoHaiRequestApiComponent {
      * @param request 车辆查询请求实体
      * @return 响应
      */
-    public VehicleTypeQueryResponse.DataDTO.VehicleModelsDTO vehicleTypeQuery(VehicleTypeQueryRequest request, String sysSourceCode, CarInfoVo carInfoVo) throws Exception {
-        VehicleTypeQueryResponse vehicleTypeQueryResponse =  verificationResponse(request, properties.getUrl(), VehicleTypeQueryResponse.class, sysSourceCode, RequestType.Z00004);
+    public VehicleTypeQueryResponse.DataDTO.VehicleModelsDTO vehicleTypeQuery(VehicleTypeQueryRequest request, String sysSourceCode, CarInfoVo carInfoVo, String url) throws Exception {
+        VehicleTypeQueryResponse vehicleTypeQueryResponse =  verificationResponse(request, url, VehicleTypeQueryResponse.class, sysSourceCode, RequestType.Z00004);
         List<VehicleTypeQueryResponse.DataDTO.VehicleModelsDTO> vehicleModels = vehicleTypeQueryResponse.getData().getVehicleModels();
         return CarModelsFilterUtils.to(vehicleModels, carInfoVo);
     }
@@ -106,10 +106,10 @@ public class BoHaiRequestApiComponent {
      * @param request 车辆确认 请求实体
      * @return 响应
      */
-    public VehicleConfirmationResponse vehicleConfirmation(VehicleConfirmationReqeust request, String sysSourceCode) throws Exception {
-        VehicleConfirmationResponse response = requestUrl(properties.getUrl(), request, VehicleConfirmationResponse.class, sysSourceCode, RequestType.Z00005);
+    public VehicleConfirmationResponse vehicleConfirmation(VehicleConfirmationReqeust request, String sysSourceCode,String url) throws Exception {
+        VehicleConfirmationResponse response = requestUrl(url, request, VehicleConfirmationResponse.class, sysSourceCode, RequestType.Z00005);
         if (ResponseCode.R_Z00002.getCode().equals(response.getResponseCode())) {
-            response = requestUrl(properties.getUrl(), request, VehicleConfirmationResponse.class, sysSourceCode, RequestType.Z00005);
+            response = requestUrl(url, request, VehicleConfirmationResponse.class, sysSourceCode, RequestType.Z00005);
         }
         if (ResponseCode.R_Z00001.getCode().equals(response.getResponseCode())) {
             return response;
@@ -124,8 +124,8 @@ public class BoHaiRequestApiComponent {
      * @param imageUploadRequest 影像请求
      * @return 响应
      */
-    public ImageUploadResponse imageUpload(ImageUploadRequest imageUploadRequest, String sysSourceCode) throws Exception {
-        return verificationResponse(imageUploadRequest, properties.getUrl(), ImageUploadResponse.class, sysSourceCode, RequestType.Z00014);
+    public ImageUploadResponse imageUpload(ImageUploadRequest imageUploadRequest, String sysSourceCode,String url) throws Exception {
+        return verificationResponse(imageUploadRequest, url, ImageUploadResponse.class, sysSourceCode, RequestType.Z00014);
     }
 
 
@@ -135,8 +135,8 @@ public class BoHaiRequestApiComponent {
      * @param request 车辆确认 请求实体
      * @return 响应
      */
-    public NonAutomotiveProductsResponse products(NonAutomotiveProductsRequest request, String sysSourceCode) throws Exception {
-        return verificationResponse(request, properties.getUrl(), NonAutomotiveProductsResponse.class, sysSourceCode, RequestType.Z00018);
+    public NonAutomotiveProductsResponse products(NonAutomotiveProductsRequest request, String sysSourceCode,String url) throws Exception {
+        return verificationResponse(request, url, NonAutomotiveProductsResponse.class, sysSourceCode, RequestType.Z00018);
     }
 
     /**
@@ -145,8 +145,8 @@ public class BoHaiRequestApiComponent {
      * @param request 车辆确认 请求实体
      * @return 响应
      */
-    public NonAutomotiveProductsDetailsResponse productsDetails(NonAutomotiveProductsDetailsRequest request, String sysSourceCode) throws Exception {
-        return verificationResponse(request, properties.getUrl(), NonAutomotiveProductsDetailsResponse.class, sysSourceCode,
+    public NonAutomotiveProductsDetailsResponse productsDetails(NonAutomotiveProductsDetailsRequest request, String sysSourceCode,String url) throws Exception {
+        return verificationResponse(request, url, NonAutomotiveProductsDetailsResponse.class, sysSourceCode,
                 RequestType.Z00019);
     }
 
@@ -157,8 +157,8 @@ public class BoHaiRequestApiComponent {
      * @param request 车辆确认 请求实体
      * @return 响应
      */
-    public QuotationResponse quotation(QuotationRequest request, String sysSourceCode) throws Exception {
-        return requestUrl(properties.getUrl(), request, QuotationResponse.class, sysSourceCode, RequestType.Z00006);
+    public QuotationResponse quotation(QuotationRequest request, String sysSourceCode,String url) throws Exception {
+        return requestUrl(url, request, QuotationResponse.class, sysSourceCode, RequestType.Z00006);
     }
 
     /**
@@ -167,8 +167,8 @@ public class BoHaiRequestApiComponent {
      * @param underwritingRequest 核保 请求实体
      * @return 响应
      */
-    public UnderwritingResponse underwriting(UnderwritingRequest underwritingRequest, String sysSourceCode) throws Exception {
-        return verificationResponse(underwritingRequest, properties.getUrl(), UnderwritingResponse.class, sysSourceCode, RequestType.Z00007);
+    public UnderwritingResponse underwriting(UnderwritingRequest underwritingRequest, String sysSourceCode,String url) throws Exception {
+        return verificationResponse(underwritingRequest, url, UnderwritingResponse.class, sysSourceCode, RequestType.Z00007);
     }
 
     /**
@@ -177,8 +177,8 @@ public class BoHaiRequestApiComponent {
      * @param paymentRequest 支付申请 请求实体
      * @return 响应
      */
-    public PaymentResponse payment(PaymentRequest paymentRequest, String sysSourceCode) throws Exception {
-        return verificationResponse(paymentRequest, properties.getUrl(), PaymentResponse.class, sysSourceCode, RequestType.Z00008);
+    public PaymentResponse payment(PaymentRequest paymentRequest, String sysSourceCode, String url) throws Exception {
+        return verificationResponse(paymentRequest, url, PaymentResponse.class, sysSourceCode, RequestType.Z00008);
     }
 
     /**
@@ -187,8 +187,8 @@ public class BoHaiRequestApiComponent {
      * @param paymentRequest 核保撤销 请求实体
      * @return 响应
      */
-    public BoHaiBaseResponse underwritingRevocation(UnderwritingRevocationRequest paymentRequest, String sysSourceCode) throws Exception {
-        return verificationResponse(paymentRequest, properties.getUrl(), PaymentResponse.class, sysSourceCode, RequestType.Z00009);
+    public BoHaiBaseResponse underwritingRevocation(UnderwritingRevocationRequest paymentRequest, String sysSourceCode,String url) throws Exception {
+        return verificationResponse(paymentRequest, url, PaymentResponse.class, sysSourceCode, RequestType.Z00009);
     }
 
 
@@ -198,8 +198,8 @@ public class BoHaiRequestApiComponent {
      * @param electronicPolicyRequest 保单请求
      * @return 响应
      */
-    public ElectronicPolicyResponse electronicPolicy(ElectronicPolicyRequest electronicPolicyRequest, String sysSourceCode) throws Exception {
-        return verificationResponse(electronicPolicyRequest, properties.getUrl(), ElectronicPolicyResponse.class, sysSourceCode,
+    public ElectronicPolicyResponse electronicPolicy(ElectronicPolicyRequest electronicPolicyRequest, String sysSourceCode,String url) throws Exception {
+        return verificationResponse(electronicPolicyRequest, url, ElectronicPolicyResponse.class, sysSourceCode,
                 RequestType.Z00020);
     }
 
@@ -209,8 +209,8 @@ public class BoHaiRequestApiComponent {
      * @param statusDocumentsRequest 单证查询
      * @return 响应
      */
-    public StatusDocumentsResponse statusDocuments(StatusDocumentsRequest statusDocumentsRequest, String sysSourceCode) throws Exception {
-        return verificationResponse(statusDocumentsRequest, properties.getUrl(), StatusDocumentsResponse.class, sysSourceCode,
+    public StatusDocumentsResponse statusDocuments(StatusDocumentsRequest statusDocumentsRequest, String sysSourceCode,String url) throws Exception {
+        return verificationResponse(statusDocumentsRequest, url, StatusDocumentsResponse.class, sysSourceCode,
                 RequestType.Z00021);
     }
 
@@ -248,7 +248,7 @@ public class BoHaiRequestApiComponent {
      *  @param sysSourceCode  编码
      *  @Description: 获取交管查询校验码接口  请求 3.17
      */
-    public VehicleCheckCodeResponse getVehicleCheckCode(VehicleCheckCodeRequest request, String sysSourceCode) throws Exception {
-        return verificationResponse(request, properties.getUrl(), VehicleCheckCodeResponse.class, sysSourceCode, RequestType.Z00003);
+    public VehicleCheckCodeResponse getVehicleCheckCode(VehicleCheckCodeRequest request, String sysSourceCode, String url) throws Exception {
+        return verificationResponse(request, url, VehicleCheckCodeResponse.class, sysSourceCode, RequestType.Z00003);
     }
 }

+ 37 - 18
tenant/insurance/quotation-bohai/src/main/java/com/jzg/quotation/bohai/api/service/impl/BoHaiApiRequestImpl.java

@@ -2,6 +2,8 @@ package com.jzg.quotation.bohai.api.service.impl;
 
 import com.jzg.commons.constants.InsuranceRisk;
 import com.jzg.commons.constants.dict.InsOrderStatusEnum;
+import com.jzg.commons.core.page.HttpResult;
+import com.jzg.commons.entity.agreement.po.PtlAgreementUrl;
 import com.jzg.commons.entity.orders.po.InsOrdersPolicy;
 import com.jzg.commons.entity.quote.vo.*;
 import com.jzg.commons.entity.quote.vo.aggregated.*;
@@ -20,11 +22,13 @@ import com.jzg.quotation.bohai.api.service.BoHaiApiOrderService;
 import com.jzg.quotation.bohai.api.service.BoHaiApiRequest;
 import com.jzg.quotation.bohai.api.util.StringSubStringUtils;
 import com.jzg.quotation.commons.annotation.QuoteApiService;
+import com.jzg.quotation.commons.client.PlatformClient;
 import com.jzg.quotation.commons.constant.InsuranceCode;
 import com.jzg.commons.entity.quote.vo.base.OrderBase;
 import com.jzg.quotation.commons.standard.conversion.ConfigureParametersConversion;
 import com.jzg.quotation.commons.utils.DateUtil;
 import lombok.RequiredArgsConstructor;
+import org.springframework.beans.factory.annotation.Autowired;
 
 import java.util.HashMap;
 import java.util.List;
@@ -44,12 +48,21 @@ public class BoHaiApiRequestImpl implements BoHaiApiRequest {
 
     private final BoHaiRequestApiComponent boHaiRequestApiComponent;
 
+    private final PlatformClient platformClient;
+
+    public String getApiUrl(String companyId) {
+        // 获取保司配置url地址
+        HttpResult<PtlAgreementUrl> ptlAgreementUrl = platformClient.getAgreementUrlByCompanyId(companyId);
+        return ptlAgreementUrl.getData().getUrl();
+    }
+
+
     /**
      * 重复报价
      * @return
      */
-    private QuotationResponse repeatQuote(QuotationRequest quotationRequest,String sysSourceCode,List<KindInfoVo> kindList,QuotationResponse quotationResponse) throws Exception {
-        quotationResponse = boHaiRequestApiComponent.quotation(quotationRequest, sysSourceCode);
+    private QuotationResponse repeatQuote(QuotationRequest quotationRequest,String sysSourceCode,List<KindInfoVo> kindList,QuotationResponse quotationResponse,String url) throws Exception {
+        quotationResponse = boHaiRequestApiComponent.quotation(quotationRequest, sysSourceCode,url);
 
         List<KindInfoVo> collect =
                 kindList.stream().filter(x -> InsuranceRisk.BUSINESS.getCode().equals(x.getKindCode())).toList();
@@ -69,7 +82,7 @@ public class BoHaiApiRequestImpl implements BoHaiApiRequest {
                         businessPolicy.setStartDate(beginDateStr);
                         businessPolicy.setEndDate(endDateStr);
                         quotationRequest.setBusinessPolicy(businessPolicy);
-                        quotationResponse = repeatQuote(quotationRequest, sysSourceCode, kindList,quotationResponse);
+                        quotationResponse = repeatQuote(quotationRequest, sysSourceCode, kindList,quotationResponse,url);
                     }
                 }
             }
@@ -91,7 +104,7 @@ public class BoHaiApiRequestImpl implements BoHaiApiRequest {
                     trafficPolicy.setStartDate(trafficPolicyDTOEndDateStr);
                     trafficPolicy.setEndDate(endDateStr);
                     quotationRequest.setTrafficPolicy(trafficPolicy);
-                    quotationResponse = repeatQuote(quotationRequest, sysSourceCode, kindList,quotationResponse);
+                    quotationResponse = repeatQuote(quotationRequest, sysSourceCode, kindList,quotationResponse,url);
                 }
             }
         }
@@ -102,13 +115,14 @@ public class BoHaiApiRequestImpl implements BoHaiApiRequest {
         OrderBase order = quoteVo.getOrder();
         AttributionInformationVo attributionInformationVo = order.getAttributionInformationVo();
         //配置信息
+        String url = getApiUrl(order.getInsuranceCompanyCode());
         BoHaiConfigureParameters parameters = ConfigureParametersConversion.conversionEntity(BoHaiConfigureParameters.class, attributionInformationVo.getConfigInfo());
         // 生成订单号
         GenerateOrderNoRequest generateOrderNoRequest = new GenerateOrderNoRequest(parameters);
         GenerateOrderNoResponse generateOrderNoResponse;
         try {
             generateOrderNoResponse = boHaiRequestApiComponent.generateOrderNo(generateOrderNoRequest,
-                    parameters.getSysSourceCode());
+                    parameters.getSysSourceCode(),url);
         } catch (Exception e) {
             throw new RuntimeException(e);
         }
@@ -122,7 +136,7 @@ public class BoHaiApiRequestImpl implements BoHaiApiRequest {
         // 调用 车辆查询和车辆确认接口
         Map<String, Object> map = new HashMap<>();
         try {
-            map = getVehicleConfirmationResponse(quoteVo, parameters, carInfoVo, orderNo, vehicleTypeQueryRequest);
+            map = getVehicleConfirmationResponse(quoteVo, parameters, carInfoVo, orderNo, vehicleTypeQueryRequest,url);
         } catch (Exception e) {
             throw new RuntimeException(e);
         }
@@ -140,7 +154,7 @@ public class BoHaiApiRequestImpl implements BoHaiApiRequest {
                 Map<String, Object> map_two = null;
                 try {
                     map_two = getVehicleConfirmationResponse(quoteVo, parameters, carInfoVo, orderNo,
-                            vehicleTypeQueryRequest);
+                            vehicleTypeQueryRequest,url);
                 } catch (Exception e) {
                     throw new SystemException(e.getMessage());
                 }
@@ -158,7 +172,7 @@ public class BoHaiApiRequestImpl implements BoHaiApiRequest {
         QuotationRequest quotationRequest = new QuotationRequest(parameters, quoteVo, currentValue, orderNo, accidentVos, discount);
 
         //报价接口递归调用
-        QuotationResponse quotationResponse = repeatQuote(quotationRequest,parameters.getSysSourceCode(),quoteVo.getKindInfoVo(),null);
+        QuotationResponse quotationResponse = repeatQuote(quotationRequest,parameters.getSysSourceCode(),quoteVo.getKindInfoVo(),null, url);
         //处理报价失败
         if(!ResponseCode.R_Z00001.getCode().equals(quotationResponse.getResponseCode())) {
             boHaiApiOrderService.save(quoteVo, quotationResponse, generateOrderNoResponse,false);
@@ -173,13 +187,14 @@ public class BoHaiApiRequestImpl implements BoHaiApiRequest {
     public UnderwritingResultsVo underwriting(UnderwritingVo underwritingVo) throws Exception {
         OrderBase order = underwritingVo.getOrder();
         //获取配置信息
+        String url = getApiUrl(order.getInsuranceCompanyCode());
         BoHaiConfigureParameters parameters = ConfigureParametersConversion.conversionEntity(BoHaiConfigureParameters.class, order.getAttributionInformationVo().getConfigInfo());
         //核保请求
         BoHaiApiOrder apiOrder = boHaiApiOrderService.findByOrdersNo(order.getOrdersNo());
         UnderwritingRequest underwritingRequest = new UnderwritingRequest(parameters, apiOrder.getOrderNo());
         UnderwritingResponse underwritingResponse;
         UnderwritingResultsVo underwritingResultsVo = new UnderwritingResultsVo();
-        underwritingResponse = boHaiRequestApiComponent.underwriting(underwritingRequest, parameters.getSysSourceCode());
+        underwritingResponse = boHaiRequestApiComponent.underwriting(underwritingRequest, parameters.getSysSourceCode(),url);
         if (ResponseCode.R_Z00001.getCode().equals(underwritingResponse.getResponseCode())) {
             String jqStatus = underwritingResponse.getData().getTrafficResultCode();
             String syStatus = underwritingResponse.getData().getBusinessResultCode();
@@ -223,12 +238,13 @@ public class BoHaiApiRequestImpl implements BoHaiApiRequest {
     @Override
     public PaymentLinkResultsVo getPaymentLink(PaymentLinkVo paymentLinkVo) {
         //获取配置信息
+        String url = getApiUrl(paymentLinkVo.getOrder().getInsuranceCompanyCode());
         BoHaiConfigureParameters parameters = ConfigureParametersConversion.conversionEntity(BoHaiConfigureParameters.class, paymentLinkVo.getOrder().getAttributionInformationVo().getConfigInfo());
         BoHaiApiOrder apiOrder = boHaiApiOrderService.findByOrdersNo(paymentLinkVo.getOrder().getOrdersNo());
         PaymentRequest paymentRequest = new PaymentRequest(parameters, apiOrder.getOrderNo(), apiOrder.getBusUniqueId());
         PaymentResponse paymentResponse;
         try {
-            paymentResponse = boHaiRequestApiComponent.payment(paymentRequest, parameters.getSysSourceCode());
+            paymentResponse = boHaiRequestApiComponent.payment(paymentRequest, parameters.getSysSourceCode(),url);
         } catch (Exception e) {
             throw new SystemException(e.getMessage());
         }
@@ -241,12 +257,13 @@ public class BoHaiApiRequestImpl implements BoHaiApiRequest {
     public void uploadImage(InsuranceUploadImageVo insuranceUploadImageVo) {
         OrderBase order = insuranceUploadImageVo.getOrder();
         //获取配置信息
+        String url = getApiUrl(order.getInsuranceCompanyCode());
         BoHaiConfigureParameters parameters = ConfigureParametersConversion.conversionEntity(BoHaiConfigureParameters.class, order.getAttributionInformationVo().getConfigInfo());
         BoHaiApiOrder apiOrder = boHaiApiOrderService.findByOrdersNo(order.getOrdersNo());
         ImageUploadRequest imageUploadRequest = new ImageUploadRequest(parameters, apiOrder.getOrderNo(), apiOrder.getBusUniqueId(), insuranceUploadImageVo.getImageVoList());
         ImageUploadResponse imageUploadResponse;
         try {
-            imageUploadResponse = boHaiRequestApiComponent.imageUpload(imageUploadRequest, parameters.getSysSourceCode());
+            imageUploadResponse = boHaiRequestApiComponent.imageUpload(imageUploadRequest, parameters.getSysSourceCode(),url);
         } catch (Exception e) {
             throw new SystemException(e.getMessage());
         }
@@ -260,6 +277,7 @@ public class BoHaiApiRequestImpl implements BoHaiApiRequest {
     @Override
     public DownloadPolicyResultVo downloadPolicy(DownloadPolicyVo downloadPolicyVo) {
         //获取配置信息
+        String url = getApiUrl(downloadPolicyVo.getOrder().getInsuranceCompanyCode());
         BoHaiConfigureParameters parameters = ConfigureParametersConversion.conversionEntity(BoHaiConfigureParameters.class, downloadPolicyVo.getOrder().getAttributionInformationVo().getConfigInfo());
         BoHaiApiOrder apiOrder = boHaiApiOrderService.findByOrdersNo(downloadPolicyVo.getOrder().getOrdersNo());
         // 保单号
@@ -271,7 +289,7 @@ public class BoHaiApiRequestImpl implements BoHaiApiRequest {
         ElectronicPolicyResponse electronicPolicyResponse;
         DownloadPolicyResultVo downloadPolicyResultVo = new DownloadPolicyResultVo();
         try {
-            electronicPolicyResponse = boHaiRequestApiComponent.electronicPolicy(electronicPolicyRequest, parameters.getSysSourceCode());
+            electronicPolicyResponse = boHaiRequestApiComponent.electronicPolicy(electronicPolicyRequest, parameters.getSysSourceCode(),url);
             ElectronicPolicyResponse.DataDTO data = electronicPolicyResponse.getData();
             if (StringUtils.isNotEmpty(data.getTrafficEPolicyUrl())) {
                 downloadPolicyResultVo.setJqUrl(data.getTrafficEPolicyUrl());
@@ -295,7 +313,8 @@ public class BoHaiApiRequestImpl implements BoHaiApiRequest {
      */
     @Override
     public OrderStatusResultVo queryOrderState(OrderStatusVo orderStatusVo) throws Exception {
-        List<StatusDocumentsResponse.DataDTO.DocumentListDTO> documentList = getDocumentListDTO(orderStatusVo);
+        String url = getApiUrl(orderStatusVo.getOrder().getInsuranceCompanyCode());
+        List<StatusDocumentsResponse.DataDTO.DocumentListDTO> documentList = getDocumentListDTO(orderStatusVo,url);
         OrderStatusResultVo orderStatusResultVo = new OrderStatusResultVo();
         List<StatusDocumentsResponse.DataDTO.DocumentListDTO> documentListDTOS =
                 documentList.stream().filter(x -> ResultCode.RC_A0.getCode().equals(x.getStatus())).collect(Collectors.toList());
@@ -333,7 +352,7 @@ public class BoHaiApiRequestImpl implements BoHaiApiRequest {
         return orderStatusResultVo;
     }
 
-    private List<StatusDocumentsResponse.DataDTO.DocumentListDTO> getDocumentListDTO(OrderStatusVo orderStatusVo) throws Exception {
+    private List<StatusDocumentsResponse.DataDTO.DocumentListDTO> getDocumentListDTO(OrderStatusVo orderStatusVo,String url) throws Exception {
         // 账号信息
         BoHaiConfigureParameters parameters = ConfigureParametersConversion.conversionEntity(BoHaiConfigureParameters.class, orderStatusVo.getOrder().getAttributionInformationVo().getConfigInfo());
         BoHaiApiOrder apiOrder = boHaiApiOrderService.findByOrdersNo(orderStatusVo.getOrder().getOrdersNo());
@@ -341,16 +360,16 @@ public class BoHaiApiRequestImpl implements BoHaiApiRequest {
         String applyno = !StringUtils.isEmpty(orderStatusVo.getInsOrdersPolicy().getJqApplyNo()) ? orderStatusVo.getInsOrdersPolicy().getJqApplyNo() :
                 orderStatusVo.getInsOrdersPolicy().getSyApplyNo();
         StatusDocumentsRequest statusDocumentsRequest = new StatusDocumentsRequest(parameters, apiOrder.getOrderNo(), applyno);
-        StatusDocumentsResponse response = boHaiRequestApiComponent.statusDocuments(statusDocumentsRequest, parameters.getSysSourceCode());
+        StatusDocumentsResponse response = boHaiRequestApiComponent.statusDocuments(statusDocumentsRequest, parameters.getSysSourceCode(),url);
         return response.getData().getDocumentList();
     }
 
     public Map<String, Object> getVehicleConfirmationResponse(QuoteVo quoteVo, BoHaiConfigureParameters parameters,
                                                               CarInfoVo carInfo, String orderNo,
-                                                              VehicleTypeQueryRequest vehicleTypeQueryRequest) throws Exception {
+                                                              VehicleTypeQueryRequest vehicleTypeQueryRequest,String url) throws Exception {
         // 2 车型查询接口
         VehicleTypeQueryResponse.DataDTO.VehicleModelsDTO vehicleModelsDTO =
-                boHaiRequestApiComponent.vehicleTypeQuery(vehicleTypeQueryRequest, parameters.getSysSourceCode(), carInfo);
+                boHaiRequestApiComponent.vehicleTypeQuery(vehicleTypeQueryRequest, parameters.getSysSourceCode(), carInfo, url);
         // 3 车辆确认接口
         // 车主信息
         CustomerInfoVo ownerInfo = quoteVo.getOwnersInfo();
@@ -364,7 +383,7 @@ public class BoHaiApiRequestImpl implements BoHaiApiRequest {
         VehicleConfirmationReqeust vehicleConfirmationReqeust = new VehicleConfirmationReqeust(parameters, quoteVo, vehicleModelsDTO,
                 orderNo, ownerInfoArea, insuredPersonArea, policyHolderArea);
         VehicleConfirmationResponse vehicleConfirmationResponse = boHaiRequestApiComponent.vehicleConfirmation(vehicleConfirmationReqeust
-                , parameters.getSysSourceCode());
+                , parameters.getSysSourceCode(),url);
         Map<String, Object> map = new HashMap<>();
         map.put("vehicleModelsDTO", vehicleModelsDTO);
         map.put("vehicleConfirmationResponse", vehicleConfirmationResponse);

+ 35 - 35
tenant/insurance/quotation-chengtai/src/main/java/com/jzg/quotation/chengtai/api/component/ChengTaiRequestApiComponent.java

@@ -78,8 +78,8 @@ public class ChengTaiRequestApiComponent {
         }
     }
 
-    public <T extends BaseRequest, B extends BaseResponse> B requestRequestUrl(RequestUrl requestUrl, T requestBody, Class<B> responseType, HttpHeaders httpHeaders, String partnerCode) {
-        return requestUrl(requestUrl.getRequestUrl(chengTaiApiProperties.getBaseUrl()), requestBody, responseType, httpHeaders);
+    public <T extends BaseRequest, B extends BaseResponse> B requestRequestUrl(RequestUrl requestUrl, T requestBody, Class<B> responseType, HttpHeaders httpHeaders, String partnerCode,String url) {
+        return requestUrl(requestUrl.getRequestUrl(url), requestBody, responseType, httpHeaders);
     }
 
     public <T extends BaseRequest, B extends BaseResponse> B requestUrlToken(String url, T requestBody, Class<B> responseType, HttpHeaders httpHeaders) {
@@ -102,8 +102,8 @@ public class ChengTaiRequestApiComponent {
         }
     }
 
-    public <T extends BaseRequest, B extends BaseResponse> B requestRequestUrlToken(RequestUrl requestUrl, T requestBody, Class<B> responseType, HttpHeaders httpHeaders) {
-        return requestUrlToken(requestUrl.getRequestUrl(chengTaiApiProperties.getBaseUrl()), requestBody, responseType, httpHeaders);
+    public <T extends BaseRequest, B extends BaseResponse> B requestRequestUrlToken(RequestUrl requestUrl, T requestBody, Class<B> responseType, HttpHeaders httpHeaders,String url) {
+        return requestUrlToken(requestUrl.getRequestUrl(url), requestBody, responseType, httpHeaders);
     }
 
 
@@ -113,8 +113,8 @@ public class ChengTaiRequestApiComponent {
      * @param chengTaiApiConfigureParameters 协议配置
      * @return HttpHeaders
      */
-    public HttpHeaders getHttpHeaders(ChengTaiApiConfigureParameters chengTaiApiConfigureParameters) {
-        return getHttpHeaders(chengTaiApiConfigureParameters,3);
+    public HttpHeaders getHttpHeaders(ChengTaiApiConfigureParameters chengTaiApiConfigureParameters,String url) {
+        return getHttpHeaders(chengTaiApiConfigureParameters,3,url);
     }
 
     /**
@@ -123,7 +123,7 @@ public class ChengTaiRequestApiComponent {
      * @param chengTaiApiConfigureParameters 配置参数
      * @return HttpHeaders
      */
-    public HttpHeaders getHttpHeaders(ChengTaiApiConfigureParameters chengTaiApiConfigureParameters, int number) {
+    public HttpHeaders getHttpHeaders(ChengTaiApiConfigureParameters chengTaiApiConfigureParameters, int number,String url) {
         if (number <= 0) {
             throw new SystemException("接口请求异常,请重试!");
         }
@@ -149,7 +149,7 @@ public class ChengTaiRequestApiComponent {
             boolean isLock = lock.tryLock(1, 10000, TimeUnit.MILLISECONDS);
             if (isLock) {
                 try {
-                    return this.getToken(chengTaiApiConfigureParameters,httpHeaders);
+                    return this.getToken(chengTaiApiConfigureParameters,httpHeaders,url);
                 } catch (Exception e) {
                     throw new SystemException(e.toString());
                 } finally {
@@ -173,7 +173,7 @@ public class ChengTaiRequestApiComponent {
             throw new SystemException("接口请求异常,请重试!");
         }
 
-        return getHttpHeaders(chengTaiApiConfigureParameters, number);
+        return getHttpHeaders(chengTaiApiConfigureParameters, number, url);
     }
 
     /**
@@ -182,11 +182,11 @@ public class ChengTaiRequestApiComponent {
      * @param httpHeaders                    请求头
      * @return
      */
-    private HttpHeaders getToken(ChengTaiApiConfigureParameters chengTaiApiConfigureParameters, HttpHeaders httpHeaders) {
+    private HttpHeaders getToken(ChengTaiApiConfigureParameters chengTaiApiConfigureParameters, HttpHeaders httpHeaders,String url) {
 
         ChengTaiTokenRequest request = new ChengTaiTokenRequest(chengTaiApiProperties.getPartnerCode());
         httpHeaders.setContentType(MediaType.APPLICATION_JSON);
-        ChengTaiTokenResponse accessToken = getAccessToken(request,httpHeaders);
+        ChengTaiTokenResponse accessToken = getAccessToken(request,httpHeaders,url);
         httpHeaders.set(AUTHTOKEN, accessToken.getAccessToken());
         // 3.1 存入redis中
         RMap<Object, Object> rMap = redissonClient.getMap(CacheConstant.CHENGTAI_AUTHORIZATION + chengTaiApiConfigureParameters.getUserId());
@@ -202,11 +202,11 @@ public class ChengTaiRequestApiComponent {
      * @param httpHeaders
      * @return 出参实体
      */
-    private ChengTaiTokenResponse getAccessToken(ChengTaiTokenRequest chengTaiTokenRequest, HttpHeaders httpHeaders) {
+    private ChengTaiTokenResponse getAccessToken(ChengTaiTokenRequest chengTaiTokenRequest, HttpHeaders httpHeaders,String url) {
         ChengTaiTokenResponse response = requestRequestUrlToken(RequestUrl.Z00001,
                 chengTaiTokenRequest,
                 ChengTaiTokenResponse.class,
-                httpHeaders);
+                httpHeaders,url);
         ChengTaiTokenResponse res = JSON.parseObject(response.getDecodeData()).toJavaObject(ChengTaiTokenResponse.class);
         res.setCode(response.getCode());
         res.setMessage(response.getMessage());
@@ -221,12 +221,12 @@ public class ChengTaiRequestApiComponent {
      * @param partnerCode
      * @return 出参实体
      */
-    public CarInfoResponse carinfoQuery(CarInfoRequest carInfoRequest, HttpHeaders httpHeaders, String partnerCode) {
+    public CarInfoResponse carinfoQuery(CarInfoRequest carInfoRequest, HttpHeaders httpHeaders, String partnerCode,String url) {
         CarInfoResponse response = requestRequestUrl(RequestUrl.Z00002,
                 carInfoRequest,
                 CarInfoResponse.class,
                 httpHeaders,
-                partnerCode);
+                partnerCode,url);
         CarInfoResponse res = JSON.parseObject(response.getDecodeData()).toJavaObject(CarInfoResponse.class);
         res.setCode(response.getCode());
         res.setMessage(response.getMessage());
@@ -241,12 +241,12 @@ public class ChengTaiRequestApiComponent {
      * @param partnerCode
      * @return 出参实体
      */
-    public QueryCarActualValueResponse queryActualValue(QueryCarActualValueRequest carActualValueRequest, HttpHeaders httpHeaders, String partnerCode) {
+    public QueryCarActualValueResponse queryActualValue(QueryCarActualValueRequest carActualValueRequest, HttpHeaders httpHeaders, String partnerCode,String url) {
         QueryCarActualValueResponse response = requestRequestUrl(RequestUrl.Z00003,
                 carActualValueRequest,
                 QueryCarActualValueResponse.class,
                 httpHeaders,
-                partnerCode);
+                partnerCode,url);
 
         QueryCarActualValueResponse res = JSON.parseObject(response.getDecodeData()).toJavaObject(QueryCarActualValueResponse.class);
         res.setCode(response.getCode());
@@ -262,12 +262,12 @@ public class ChengTaiRequestApiComponent {
      * @param partnerCode
      * @return 出参实体
      */
-    public InsurePremiumResponse calculatePremium(InsurePremiumRequest insurePremiumRequest, HttpHeaders httpHeaders, String partnerCode) {
+    public InsurePremiumResponse calculatePremium(InsurePremiumRequest insurePremiumRequest, HttpHeaders httpHeaders, String partnerCode,String url) {
         InsurePremiumResponse response = requestRequestUrl(RequestUrl.Z00004,
                 insurePremiumRequest,
                 InsurePremiumResponse.class,
                 httpHeaders,
-                partnerCode);
+                partnerCode,url);
         InsurePremiumResponse res = JSON.parseObject(response.getDecodeData()).toJavaObject(InsurePremiumResponse.class);
         res.setCode(response.getCode());
         res.setMessage(response.getMessage());
@@ -281,12 +281,12 @@ public class ChengTaiRequestApiComponent {
      * @param partnerCode
      * @return 出参实体
      */
-    public PayUrlResponse getPayUrl(PayUrlRequest payUrlRequest, HttpHeaders httpHeaders, String partnerCode) {
+    public PayUrlResponse getPayUrl(PayUrlRequest payUrlRequest, HttpHeaders httpHeaders, String partnerCode,String url) {
         PayUrlResponse response = requestRequestUrl(RequestUrl.Z00010,
                 payUrlRequest,
                 PayUrlResponse.class,
                 httpHeaders,
-                partnerCode);
+                partnerCode,url);
         PayUrlResponse res = JSON.parseObject(response.getDecodeData()).toJavaObject(PayUrlResponse.class);
         res.setCode(response.getCode());
         res.setMessage(response.getMessage());
@@ -301,12 +301,12 @@ public class ChengTaiRequestApiComponent {
      * @param partnerCode
      * @return
      */
-    public UploadFileResponse submitImage(UploadFileRequest uploadFileRequest, HttpHeaders httpHeaders, String partnerCode) {
+    public UploadFileResponse submitImage(UploadFileRequest uploadFileRequest, HttpHeaders httpHeaders, String partnerCode,String url) {
         UploadFileResponse response = requestRequestUrl(RequestUrl.Z00005,
                 uploadFileRequest,
                 UploadFileResponse.class,
                 httpHeaders,
-                partnerCode);
+                partnerCode,url);
         UploadFileResponse res = JSON.parseObject(response.getDecodeData()).toJavaObject(UploadFileResponse.class);
         res.setCode(response.getCode());
         res.setMessage(response.getMessage());
@@ -320,12 +320,12 @@ public class ChengTaiRequestApiComponent {
      * @param partnerCode
      * @return
      */
-    public SubmitVerifyResponse underwritingSave(SubmitVerifyRequest submitVerifyRequest, HttpHeaders httpHeaders, String partnerCode) {
+    public SubmitVerifyResponse underwritingSave(SubmitVerifyRequest submitVerifyRequest, HttpHeaders httpHeaders, String partnerCode,String url) {
         SubmitVerifyResponse response = requestRequestUrl(RequestUrl.Z00006,
                 submitVerifyRequest,
                 SubmitVerifyResponse.class,
                 httpHeaders,
-                partnerCode);
+                partnerCode,url);
         SubmitVerifyResponse res = JSON.parseObject(response.getDecodeData()).toJavaObject(SubmitVerifyResponse.class);
         res.setCode(response.getCode());
         res.setMessage(response.getMessage());
@@ -340,12 +340,12 @@ public class ChengTaiRequestApiComponent {
      * @param partnerCode
      * @return
      */
-    public UnderwritingResponse underwriting(UnderwritingRequest underwritingRequest, HttpHeaders httpHeaders, String partnerCode) {
+    public UnderwritingResponse underwriting(UnderwritingRequest underwritingRequest, HttpHeaders httpHeaders, String partnerCode,String url) {
         UnderwritingResponse response = requestRequestUrl(RequestUrl.Z00007,
                 underwritingRequest,
                 UnderwritingResponse.class,
                 httpHeaders,
-                partnerCode);
+                partnerCode,url);
         UnderwritingResponse res = JSON.parseObject(response.getDecodeData()).toJavaObject(UnderwritingResponse.class);
         res.setCode(response.getCode());
         res.setMessage(response.getMessage());
@@ -360,12 +360,12 @@ public class ChengTaiRequestApiComponent {
      * @param partnerCode
      * @return
      */
-    public SubmitVerifyResultResponse underwritingSaveResult(SubmitVerifyResultRequest submitVerifyResultRequest, HttpHeaders httpHeaders, String partnerCode) {
+    public SubmitVerifyResultResponse underwritingSaveResult(SubmitVerifyResultRequest submitVerifyResultRequest, HttpHeaders httpHeaders, String partnerCode,String url) {
         SubmitVerifyResultResponse response = requestRequestUrl(RequestUrl.Z00009,
                 submitVerifyResultRequest,
                 SubmitVerifyResultResponse.class,
                 httpHeaders,
-                partnerCode);
+                partnerCode,url);
         SubmitVerifyResultResponse res = JSON.parseObject(response.getDecodeData()).toJavaObject(SubmitVerifyResultResponse.class);
         res.setCode(response.getCode());
         res.setMessage(response.getMessage());
@@ -379,12 +379,12 @@ public class ChengTaiRequestApiComponent {
      * @param partnerCode
      * @return
      */
-    public DownLoadDocumentUrlResponse downLoadDocumentUrl(DownLoadDocumentUrlRequest downLoadDocumentUrlRequest, HttpHeaders httpHeaders, String partnerCode) {
+    public DownLoadDocumentUrlResponse downLoadDocumentUrl(DownLoadDocumentUrlRequest downLoadDocumentUrlRequest, HttpHeaders httpHeaders, String partnerCode,String url) {
         DownLoadDocumentUrlResponse response = requestRequestUrl(RequestUrl.Z00011,
                 downLoadDocumentUrlRequest,
                 DownLoadDocumentUrlResponse.class,
                 httpHeaders,
-                partnerCode);
+                partnerCode,url);
         DownLoadDocumentUrlResponse res = JSON.parseObject(response.getDecodeData()).toJavaObject(DownLoadDocumentUrlResponse.class);
         res.setCode(response.getCode());
         res.setMessage(response.getMessage());
@@ -398,12 +398,12 @@ public class ChengTaiRequestApiComponent {
      * @param partnerCode
      * @return
      */
-    public SubmitVerifyResultResponse auditSaveResult(SubmitVerifyResultRequest submitVerifyResultRequest, HttpHeaders httpHeaders, String partnerCode) {
+    public SubmitVerifyResultResponse auditSaveResult(SubmitVerifyResultRequest submitVerifyResultRequest, HttpHeaders httpHeaders, String partnerCode,String url) {
         SubmitVerifyResultResponse response = requestRequestUrl(RequestUrl.Z00009,
                 submitVerifyResultRequest,
                 SubmitVerifyResultResponse.class,
                 httpHeaders,
-                partnerCode);
+                partnerCode,url);
         SubmitVerifyResultResponse res = JSON.parseObject(response.getDecodeData()).toJavaObject(SubmitVerifyResultResponse.class);
         res.setCode(response.getCode());
         res.setMessage(response.getMessage());
@@ -416,12 +416,12 @@ public class ChengTaiRequestApiComponent {
      * @param partnerCode
      * @return
      */
-    public UnderwritingResultResponse auditResult(UnderwritingResultRequest underwritingResultRequest, HttpHeaders httpHeaders, String partnerCode) {
+    public UnderwritingResultResponse auditResult(UnderwritingResultRequest underwritingResultRequest, HttpHeaders httpHeaders, String partnerCode,String url) {
         UnderwritingResultResponse response = requestRequestUrl(RequestUrl.Z00008,
                 underwritingResultRequest,
                 UnderwritingResultResponse.class,
                 httpHeaders,
-                partnerCode);
+                partnerCode,url);
         UnderwritingResultResponse res = JSON.parseObject(response.getDecodeData()).toJavaObject(UnderwritingResultResponse.class);
         res.setCode(response.getCode());
         res.setMessage(response.getMessage());

+ 47 - 30
tenant/insurance/quotation-chengtai/src/main/java/com/jzg/quotation/chengtai/api/service/impl/ChengTaiApiRequestImpl.java

@@ -4,6 +4,8 @@ import cn.hutool.core.collection.CollUtil;
 import com.alibaba.fastjson.JSON;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import com.jzg.commons.constants.dict.InsOrderStatusEnum;
+import com.jzg.commons.core.page.HttpResult;
+import com.jzg.commons.entity.agreement.po.PtlAgreementUrl;
 import com.jzg.commons.entity.quote.vo.AttributionInformationVo;
 import com.jzg.commons.entity.quote.vo.CarInfoVo;
 import com.jzg.commons.entity.quote.vo.QuoteVo;
@@ -25,6 +27,7 @@ import com.jzg.quotation.chengtai.api.repository.ChengTaiApiOrderRepository;
 import com.jzg.quotation.chengtai.api.service.ChengTaiApiRequest;
 import com.jzg.quotation.chengtai.api.service.ChengTaiCrawlerOrderService;
 import com.jzg.quotation.commons.annotation.QuoteApiService;
+import com.jzg.quotation.commons.client.PlatformClient;
 import com.jzg.quotation.commons.constant.InsuranceCode;
 import com.jzg.commons.entity.quote.vo.base.OrderBase;
 import com.jzg.commons.entity.quote.vo.image.InsuranceImageVo;
@@ -57,33 +60,42 @@ public class ChengTaiApiRequestImpl implements ChengTaiApiRequest {
 
     private final ChengTaiApiOrderRepository chengTaiApiOrderRepository;
 
+    private final PlatformClient platformClient;
+
+    public String getApiUrl(String companyId) {
+        // 获取保司配置url地址
+        HttpResult<PtlAgreementUrl> ptlAgreementUrl = platformClient.getAgreementUrlByCompanyId(companyId);
+        return ptlAgreementUrl.getData().getUrl();
+    }
+
     @Override
     public QuoteResultsVo quote(QuoteVo quoteVo) {
         OrderBase order = quoteVo.getOrder();
         AttributionInformationVo attributionInformationVo = order.getAttributionInformationVo();
         // 配置信息
+        String url = getApiUrl(order.getInsuranceCompanyCode());
         ChengTaiApiConfigureParameters parameters = ConfigureParametersConversion.conversionEntity(ChengTaiApiConfigureParameters.class,
                 attributionInformationVo.getConfigInfo());
-        HttpHeaders httpHeaders = chengTaiRequestApiComponent.getHttpHeaders(parameters);
+        HttpHeaders httpHeaders = chengTaiRequestApiComponent.getHttpHeaders(parameters,url);
         // 车型查询
         CarInfoVo carInfoVo = quoteVo.getCarInfoVo();
         CarInfoRequest carInfoRequest = new CarInfoRequest(chengTaiApiProperties.getPartnerCode(), carInfoVo.getBrandName());
-        CarInfoResponse carInfoResponse = chengTaiRequestApiComponent.carinfoQuery(carInfoRequest, httpHeaders,chengTaiApiProperties.getPartnerCode());
+        CarInfoResponse carInfoResponse = chengTaiRequestApiComponent.carinfoQuery(carInfoRequest, httpHeaders,chengTaiApiProperties.getPartnerCode(),url);
         // 过滤车型
         CarInfoResponse.CarModelListDTO carModelListDTO = CarModelsFilterUtils.to(carInfoResponse.getCarModelList(), carInfoVo);
         // 计算车辆价格
         QueryCarActualValueRequest carActualValueRequest = new QueryCarActualValueRequest(quoteVo,carModelListDTO, chengTaiApiProperties.getPartnerCode());
-        QueryCarActualValueResponse carActualValueResponse = chengTaiRequestApiComponent.queryActualValue(carActualValueRequest,httpHeaders,chengTaiApiProperties.getPartnerCode());
+        QueryCarActualValueResponse carActualValueResponse = chengTaiRequestApiComponent.queryActualValue(carActualValueRequest,httpHeaders,chengTaiApiProperties.getPartnerCode(),url);
         // 报价
         InsurePremiumRequest insurePremiumRequest = new InsurePremiumRequest(carModelListDTO, carActualValueResponse,parameters,quoteVo,chengTaiApiProperties.getPartnerCode());
-        InsurePremiumResponse insurePremiumResponse = chengTaiRequestApiComponent.calculatePremium(insurePremiumRequest,httpHeaders,chengTaiApiProperties.getPartnerCode());
+        InsurePremiumResponse insurePremiumResponse = chengTaiRequestApiComponent.calculatePremium(insurePremiumRequest,httpHeaders,chengTaiApiProperties.getPartnerCode(),url);
 
         // 处理重复投保
-        repeatCoverhandler(insurePremiumRequest, insurePremiumResponse,httpHeaders);
+        repeatCoverhandler(insurePremiumRequest, insurePremiumResponse,httpHeaders,url);
         // 处理验车码
-        codeRecognitionHandler(insurePremiumRequest, insurePremiumResponse,httpHeaders);
+        codeRecognitionHandler(insurePremiumRequest, insurePremiumResponse,httpHeaders,url);
         // 处理验车码识别错误
-        codeRecognitionErrHandler(insurePremiumRequest, insurePremiumResponse,httpHeaders);
+        codeRecognitionErrHandler(insurePremiumRequest, insurePremiumResponse,httpHeaders,url);
 
         chengTaiCrawlerOrderService.saveOrderInfo(quoteVo,insurePremiumResponse);
 
@@ -98,7 +110,7 @@ public class ChengTaiApiRequestImpl implements ChengTaiApiRequest {
      */
     private void codeRecognitionErrHandler(InsurePremiumRequest insurePremiumRequest,
                                            InsurePremiumResponse insurePremiumResponse,
-                                           HttpHeaders httpHeaders) {
+                                           HttpHeaders httpHeaders,String url) {
 
         if(!ResponseCode.R_000.getCode().equals(insurePremiumResponse.getCode()) && insurePremiumResponse.getMessage().contains("录入的校验码有误")){
             InsurePremiumRequest.CiContractDTO ciContractReq = insurePremiumRequest.getCiContract();
@@ -111,7 +123,7 @@ public class ChengTaiApiRequestImpl implements ChengTaiApiRequest {
                 InsurePremiumRequest.BiContractDTO.PlatFormMessageDTO platFormMessageDTO = biContractReq.getPlatFormMessage();
                 platFormMessageDTO.setAnswer(replacingStrings(platFormMessageDTO.getAnswer()));
             }
-            insurePremiumResponse = chengTaiRequestApiComponent.calculatePremium(insurePremiumRequest,httpHeaders,chengTaiApiProperties.getPartnerCode());
+            insurePremiumResponse = chengTaiRequestApiComponent.calculatePremium(insurePremiumRequest,httpHeaders,chengTaiApiProperties.getPartnerCode(),url);
         }
     }
 
@@ -135,7 +147,7 @@ public class ChengTaiApiRequestImpl implements ChengTaiApiRequest {
      */
     private void codeRecognitionHandler(InsurePremiumRequest insurePremiumRequest,
                                         InsurePremiumResponse insurePremiumResponse,
-                                        HttpHeaders httpHeaders) {
+                                        HttpHeaders httpHeaders,String url) {
         InsurePremiumResponse.BiContractDTO biContract = insurePremiumResponse.getBiContract();
         InsurePremiumResponse.CiContractDTO ciContract = insurePremiumResponse.getCiContract();
 
@@ -156,7 +168,7 @@ public class ChengTaiApiRequestImpl implements ChengTaiApiRequest {
 
         if (biBoo || ciBoo) {
             this.platRepetition(insurePremiumResponse,insurePremiumRequest);
-            insurePremiumResponse = chengTaiRequestApiComponent.calculatePremium(insurePremiumRequest,httpHeaders,chengTaiApiProperties.getPartnerCode());
+            insurePremiumResponse = chengTaiRequestApiComponent.calculatePremium(insurePremiumRequest,httpHeaders,chengTaiApiProperties.getPartnerCode(),url);
         }
 
     }
@@ -220,7 +232,7 @@ public class ChengTaiApiRequestImpl implements ChengTaiApiRequest {
      */
     private void repeatCoverhandler(InsurePremiumRequest insurePremiumRequest,
                                     InsurePremiumResponse insurePremiumResponse,
-                                    HttpHeaders httpHeaders) {
+                                    HttpHeaders httpHeaders,String url) {
         if(!ResponseCode.R_000.getCode().equals(insurePremiumResponse.getCode()) && insurePremiumResponse.getMessage().contains("重复投保")){
             String err = insurePremiumResponse.getMessage();
             List<String> errList = Arrays.asList(err.split("。"));
@@ -245,7 +257,7 @@ public class ChengTaiApiRequestImpl implements ChengTaiApiRequest {
                     insurePremiumRequest.setBiContract(biContract);
                 }
             });
-            insurePremiumResponse = chengTaiRequestApiComponent.calculatePremium(insurePremiumRequest,httpHeaders,chengTaiApiProperties.getPartnerCode());
+            insurePremiumResponse = chengTaiRequestApiComponent.calculatePremium(insurePremiumRequest,httpHeaders,chengTaiApiProperties.getPartnerCode(),url);
         }
     }
 
@@ -288,24 +300,25 @@ public class ChengTaiApiRequestImpl implements ChengTaiApiRequest {
     @Override
     public UnderwritingResultsVo underwriting(UnderwritingVo underwritingVo) {
         OrderBase orderBase = underwritingVo.getOrder();
+        String url = getApiUrl(orderBase.getInsuranceCompanyCode());
         ChengTaiApiOrder chengTaiApiOrder = chengTaiCrawlerOrderService.getById(orderBase.getOrdersNo());
         // 配置信息
         ChengTaiApiConfigureParameters parameters = ConfigureParametersConversion.conversionEntity(ChengTaiApiConfigureParameters.class, orderBase
                 .getAttributionInformationVo()
                 .getConfigInfo());
-        HttpHeaders httpHeaders = chengTaiRequestApiComponent.getHttpHeaders(parameters);
+        HttpHeaders httpHeaders = chengTaiRequestApiComponent.getHttpHeaders(parameters,url);
         UnderwritingResultsVo underwritingResultsVo = new UnderwritingResultsVo();
         // 投保保存
         SubmitVerifyRequest submitVerifyRequest = new SubmitVerifyRequest(chengTaiApiProperties.getPartnerCode(),
                 underwritingVo, chengTaiApiOrder);
-        SubmitVerifyResponse submitVerifyResponse = chengTaiRequestApiComponent.underwritingSave(submitVerifyRequest,httpHeaders,chengTaiApiProperties.getPartnerCode());
+        SubmitVerifyResponse submitVerifyResponse = chengTaiRequestApiComponent.underwritingSave(submitVerifyRequest,httpHeaders,chengTaiApiProperties.getPartnerCode(),url);
         // 核保
         UnderwritingRequest underwritingRequest = new UnderwritingRequest(chengTaiApiProperties.getPartnerCode(),underwritingVo.getOrder().getCompanyOrderNo());
-        UnderwritingResponse underwritingResponse = chengTaiRequestApiComponent.underwriting(underwritingRequest,httpHeaders,chengTaiApiProperties.getPartnerCode());
+        UnderwritingResponse underwritingResponse = chengTaiRequestApiComponent.underwriting(underwritingRequest,httpHeaders,chengTaiApiProperties.getPartnerCode(),url);
         if(OrderStatusEnum.A2000.getCode().equals(underwritingResponse.getFinalRuleResult())){
             // 查询投保结果
             SubmitVerifyResultRequest submitVerifyResultRequest = new SubmitVerifyResultRequest(chengTaiApiProperties.getPartnerCode(),submitVerifyResponse.getOrderId());
-            SubmitVerifyResultResponse submitVerifyResultResponse = chengTaiRequestApiComponent.underwritingSaveResult(submitVerifyResultRequest,httpHeaders,chengTaiApiProperties.getPartnerCode());
+            SubmitVerifyResultResponse submitVerifyResultResponse = chengTaiRequestApiComponent.underwritingSaveResult(submitVerifyResultRequest,httpHeaders,chengTaiApiProperties.getPartnerCode(),url);
             List<SubmitVerifyResultResponse.DataDTO> data = submitVerifyResultResponse.getData();
             if(CollUtil.isNotEmpty(data)){
                 for (SubmitVerifyResultResponse.DataDTO dataDTO : data) {
@@ -354,14 +367,15 @@ public class ChengTaiApiRequestImpl implements ChengTaiApiRequest {
     public PaymentLinkResultsVo getPaymentLink(PaymentLinkVo paymentLinkVo) {
         ChengTaiApiOrder chengTaiApiOrder = chengTaiCrawlerOrderService.getById(paymentLinkVo.getOrder().getOrdersNo());
         // 配置信息
+        String url = getApiUrl(paymentLinkVo.getOrder().getInsuranceCompanyCode());
         ChengTaiApiConfigureParameters parameters = ConfigureParametersConversion.conversionEntity(ChengTaiApiConfigureParameters.class, paymentLinkVo.getOrder()
                 .getAttributionInformationVo()
                 .getConfigInfo());
-        HttpHeaders httpHeaders = chengTaiRequestApiComponent.getHttpHeaders(parameters);
+        HttpHeaders httpHeaders = chengTaiRequestApiComponent.getHttpHeaders(parameters,url);
 
         // 获取支付链接
         PayUrlRequest payUrlRequest = new PayUrlRequest(chengTaiApiProperties.getPartnerCode(),chengTaiApiOrder.getOrderNo());
-        PayUrlResponse payUrlResponse = chengTaiRequestApiComponent.getPayUrl(payUrlRequest, httpHeaders,chengTaiApiProperties.getPartnerCode());
+        PayUrlResponse payUrlResponse = chengTaiRequestApiComponent.getPayUrl(payUrlRequest, httpHeaders,chengTaiApiProperties.getPartnerCode(),url);
         PaymentLinkResultsVo paymentLinkResultsVo = new PaymentLinkResultsVo();
         paymentLinkResultsVo.setPaymentLink(payUrlResponse.getSmsUrl());
         return paymentLinkResultsVo;
@@ -370,19 +384,20 @@ public class ChengTaiApiRequestImpl implements ChengTaiApiRequest {
     @Override
     public void uploadImage(InsuranceUploadImageVo insuranceUploadImageVo) {
         OrderBase orderBase = insuranceUploadImageVo.getOrder();
+        String url = getApiUrl(orderBase.getInsuranceCompanyCode());
         ChengTaiApiOrder chengTaiApiOrder = chengTaiCrawlerOrderService.getById(orderBase.getOrdersNo());
         // 配置信息
         ChengTaiApiConfigureParameters parameters = ConfigureParametersConversion.conversionEntity(ChengTaiApiConfigureParameters.class, orderBase
                 .getAttributionInformationVo()
                 .getConfigInfo());
-        HttpHeaders httpHeaders = chengTaiRequestApiComponent.getHttpHeaders(parameters);
+        HttpHeaders httpHeaders = chengTaiRequestApiComponent.getHttpHeaders(parameters,url);
 
         // 上传影像信息
         List<InsuranceImageVo> imageVoList = insuranceUploadImageVo.getImageVoList();
         imageVoList.forEach(imageVo -> {
             UploadFileRequest uploadFileRequest = new UploadFileRequest(imageVo, chengTaiApiOrder.getOrderNo(), chengTaiApiProperties.getPartnerCode());
             try {
-                UploadFileResponse uploadFileResponse = chengTaiRequestApiComponent.submitImage(uploadFileRequest,httpHeaders,chengTaiApiProperties.getPartnerCode());
+                UploadFileResponse uploadFileResponse = chengTaiRequestApiComponent.submitImage(uploadFileRequest,httpHeaders,chengTaiApiProperties.getPartnerCode(),url);
             } catch (Exception e) {
                 throw new SystemException("上传途中异常,请重新上传或截取图片上传");
             }
@@ -392,23 +407,24 @@ public class ChengTaiApiRequestImpl implements ChengTaiApiRequest {
     @Override
     public DownloadPolicyResultVo downloadPolicy(DownloadPolicyVo downloadPolicyVo) {
         // 配置信息
+        String url = getApiUrl(downloadPolicyVo.getOrder().getInsuranceCompanyCode());
         ChengTaiApiConfigureParameters parameters = ConfigureParametersConversion.conversionEntity(ChengTaiApiConfigureParameters.class, downloadPolicyVo.getOrder()
                 .getAttributionInformationVo()
                 .getConfigInfo());
-        HttpHeaders httpHeaders = chengTaiRequestApiComponent.getHttpHeaders(parameters);
+        HttpHeaders httpHeaders = chengTaiRequestApiComponent.getHttpHeaders(parameters,url);
 
         DownloadPolicyResultVo downloadPolicyResultVo = new DownloadPolicyResultVo();
         String jqPolicyNo = downloadPolicyVo.getPolicie().getJqPolicyNo();
         if(Objects.nonNull(jqPolicyNo)) {
-            queryPolicy(jqPolicyNo, chengTaiApiProperties.getPartnerCode(), httpHeaders,downloadPolicyResultVo);
+            queryPolicy(jqPolicyNo, chengTaiApiProperties.getPartnerCode(), httpHeaders,downloadPolicyResultVo,url);
         }
         String syPolicyNo = downloadPolicyVo.getPolicie().getSyPolicyNo();
         if(Objects.nonNull(syPolicyNo)) {
-            queryPolicy(syPolicyNo,chengTaiApiProperties.getPartnerCode(), httpHeaders,downloadPolicyResultVo);
+            queryPolicy(syPolicyNo,chengTaiApiProperties.getPartnerCode(), httpHeaders,downloadPolicyResultVo,url);
         }
         String jyPolicyNo = downloadPolicyVo.getPolicie().getJyPolicyNo();
         if(Objects.nonNull(jyPolicyNo)) {
-            queryPolicy(jyPolicyNo,chengTaiApiProperties.getPartnerCode(), httpHeaders,downloadPolicyResultVo);
+            queryPolicy(jyPolicyNo,chengTaiApiProperties.getPartnerCode(), httpHeaders,downloadPolicyResultVo,url);
         }
 
         return downloadPolicyResultVo;
@@ -419,9 +435,9 @@ public class ChengTaiApiRequestImpl implements ChengTaiApiRequest {
      * @param policyNo
      * @param partnerCode
      */
-    private void queryPolicy(String policyNo,String partnerCode,HttpHeaders httpHeaders, DownloadPolicyResultVo downloadPolicyResultVo){
+    private void queryPolicy(String policyNo,String partnerCode,HttpHeaders httpHeaders, DownloadPolicyResultVo downloadPolicyResultVo,String url){
         DownLoadDocumentUrlRequest request = new DownLoadDocumentUrlRequest(chengTaiApiProperties.getPartnerCode(),policyNo);
-        DownLoadDocumentUrlResponse response = chengTaiRequestApiComponent.downLoadDocumentUrl(request, httpHeaders,partnerCode);
+        DownLoadDocumentUrlResponse response = chengTaiRequestApiComponent.downLoadDocumentUrl(request, httpHeaders,partnerCode,url);
         if(ResponseCode.R_000.getCode().equals(response.getCode())){
             if (StringUtils.isNotEmpty(response.getCiDownLoad())) {
                 String jqUrl = response.getCiDownLoad();
@@ -445,17 +461,18 @@ public class ChengTaiApiRequestImpl implements ChengTaiApiRequest {
     public OrderStatusResultVo queryOrderState(OrderStatusVo orderStatusVo) {
         OrderStatusResultVo orderStatusResultVo = new OrderStatusResultVo();
         // 配置信息
+        String url = getApiUrl(orderStatusVo.getOrder().getInsuranceCompanyCode());
         ChengTaiApiConfigureParameters parameters = ConfigureParametersConversion.conversionEntity(ChengTaiApiConfigureParameters.class, orderStatusVo.getOrder()
                 .getAttributionInformationVo()
                 .getConfigInfo());
-        HttpHeaders httpHeaders = chengTaiRequestApiComponent.getHttpHeaders(parameters);
+        HttpHeaders httpHeaders = chengTaiRequestApiComponent.getHttpHeaders(parameters,url);
 
         SubmitVerifyResultRequest submitVerifyResultRequest = new SubmitVerifyResultRequest(chengTaiApiProperties.getPartnerCode(),orderStatusVo.getOrder().getCompanyOrderNo());
-        SubmitVerifyResultResponse submitVerifyResultResponse = chengTaiRequestApiComponent.auditSaveResult(submitVerifyResultRequest,httpHeaders,chengTaiApiProperties.getPartnerCode());
+        SubmitVerifyResultResponse submitVerifyResultResponse = chengTaiRequestApiComponent.auditSaveResult(submitVerifyResultRequest,httpHeaders,chengTaiApiProperties.getPartnerCode(),url);
 
         // 查询核保结果
         UnderwritingResultRequest resultRequest = new UnderwritingResultRequest(chengTaiApiProperties.getPartnerCode(),orderStatusVo.getOrder().getCompanyOrderNo());
-        UnderwritingResultResponse underwritingResultResponse = chengTaiRequestApiComponent.auditResult(resultRequest,httpHeaders,chengTaiApiProperties.getPartnerCode());
+        UnderwritingResultResponse underwritingResultResponse = chengTaiRequestApiComponent.auditResult(resultRequest,httpHeaders,chengTaiApiProperties.getPartnerCode(),url);
         if (OrderStatusEnum.A7005.getCode().equals(submitVerifyResultResponse.getPolicyProsts())
                 || OrderStatusEnum.A7004.getCode().equals(submitVerifyResultResponse.getPolicyProsts())) {
             // 获取支付链接

+ 7 - 0
tenant/insurance/quotation-commons/src/main/java/com/jzg/quotation/commons/client/PlatformClient.java

@@ -2,6 +2,7 @@ package com.jzg.quotation.commons.client;
 
 import com.jzg.commons.core.page.HttpResult;
 import com.jzg.commons.entity.agreement.po.PtlAgreementAttribution;
+import com.jzg.commons.entity.agreement.po.PtlAgreementUrl;
 import com.jzg.commons.entity.po.EsmInsCompany;
 import com.jzg.commons.entity.po.QrBarcodeConfig;
 import com.jzg.commons.entity.po.SysUploadFiles;
@@ -72,4 +73,10 @@ public interface PlatformClient {
     @GetMapping("/esmInsCompany/getChildCompanyId")
     public HttpResult<List<String>> getChildCompanyId(@RequestParam String companyId);
 
+    /**
+     * 获取保司配置地址
+     */
+    @GetMapping("/manager/agreementUrl/getAgreementUrlByCompanyId")
+    public HttpResult<PtlAgreementUrl> getAgreementUrlByCompanyId(@RequestParam String companyId);
+
 }

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

@@ -303,6 +303,17 @@ public class RequestComponent {
                 .block();
     }
 
+    public <Response> ResponseEntity<Response> formUrlencoded(String url,  BodyInserters.FormInserter<String> formInserter, Class<Response> responseClass, HttpHeaders headers) {
+        return webClient.post()
+                .uri(url)
+                .headers(RequestComponent.setHeaders(headers))
+                .contentType(MediaType.APPLICATION_FORM_URLENCODED)
+                .body(formInserter)
+                .retrieve()
+                .toEntity(responseClass)
+                .block();
+    }
+
     /**
      * formData post 请求
      *

+ 87 - 0
tenant/insurance/quotation-commons/src/main/java/com/jzg/quotation/commons/utils/CookieParseUtils.java

@@ -0,0 +1,87 @@
+package com.jzg.quotation.commons.utils;
+
+import java.util.*;
+import java.util.stream.Collectors;
+
+public final class CookieParseUtils {
+
+    public CookieParseUtils() {
+        throw new IllegalStateException("Utility class");
+    }
+
+    public static final String KEY = "name";
+
+    public static final String VALUE = "value";
+
+    public static final String COOKIE = "Cookie";
+
+    public static final String SET_COOKIE = "Set-Cookie";
+
+    public static final String JSESSIONID = "JSESSIONID";
+
+    public static final String AUTHORIZATION = "Authorization";
+
+    public static final String BEARER = "Bearer ";
+
+    public static Map<String, String> parseSetCookie(String setCookie) {
+        Map<String, String> cookieMap = new HashMap<>();
+        String[] parts = setCookie.split(";\\s*");
+
+        // 第一部分总是 name=value
+        if (parts.length > 0) {
+            String[] nameValue = parts[0].split("=", 2);
+            if (nameValue.length == 2) {
+                cookieMap.put(KEY, nameValue[0].trim());
+                cookieMap.put(VALUE, nameValue[1].trim());
+            }
+        }
+
+        // 处理其他属性
+        for (int i = 1; i < parts.length; i++) {
+            String[] keyValue = parts[i].split("=", 2);
+            String key = keyValue[0].trim().toLowerCase();
+            String value = keyValue.length > 1 ? keyValue[1].trim() : null;
+
+            if ("expires".equals(key) || "max-age".equals(key) || "domain".equals(key) || "path".equals(key) || "samesite".equals(key)) {
+                cookieMap.put(key, value);
+            } else if ("secure".equals(key) || "httponly".equals(key)) {
+                cookieMap.put(key, "true"); // 标志属性
+            }
+        }
+        return cookieMap;
+    }
+
+    public static Map<String, String> parseCookie(List<String> cookies) {
+        return Optional.ofNullable(cookies)
+                .orElse(new ArrayList<>())
+                .stream()
+                .map(CookieParseUtils::parseSetCookie)
+                .collect(Collectors.toMap(x -> x.get(KEY), y -> y.get(VALUE)));
+    }
+
+
+    public static Map<String, String> parseCookie(String cookies) {
+        return parseCookie(Arrays.stream(cookies.split("; "))
+                .filter(s -> !s.isEmpty())
+                .map(x -> x + "; ")
+                .collect(Collectors.toList()));
+    }
+
+
+    public static String listToStrCookie(List<String> cookies) {
+        Map<String, String> cookieMap = parseCookie(cookies);
+        return toStringCookie(cookieMap);
+    }
+
+    public static String toStringCookie(Map<String, String> cookieMap) {
+        StringBuilder stringBuilder = new StringBuilder();
+        for (String s : cookieMap.keySet()) {
+            stringBuilder.append(s).append("=").append(cookieMap.get(s)).append("; ");
+        }
+        return stringBuilder.toString();
+    }
+
+
+}
+
+

+ 26 - 26
tenant/insurance/quotation-dajia/src/main/java/com/jzg/quotation/dajia/api/compoment/DaJiaApiRequestComponent.java

@@ -62,8 +62,8 @@ public class DaJiaApiRequestComponent {
         }
     }
 
-    public <T, B extends DaJiaBaseResponse> B requestRequestUrl(RequestUrl requestUrl, T requestBody, Class<B> responseType) {
-        return requestUrl(requestUrl.getRequestUrl(daJiaApiProperties.getUrl()), requestBody, responseType);
+    public <T, B extends DaJiaBaseResponse> B requestRequestUrl(RequestUrl requestUrl, T requestBody, Class<B> responseType,String url) {
+        return requestUrl(requestUrl.getRequestUrl(url), requestBody, responseType);
     }
 
 
@@ -72,8 +72,8 @@ public class DaJiaApiRequestComponent {
      * @param odr1007Request
      * @return
      */
-    public ODR1007Response queryBusinessOrders(ODR1007Request odr1007Request) {
-        return requestRequestUrl(RequestUrl.DJ_TQBD_100007, odr1007Request, ODR1007Response.class);
+    public ODR1007Response queryBusinessOrders(ODR1007Request odr1007Request,String url) {
+        return requestRequestUrl(RequestUrl.DJ_TQBD_100007, odr1007Request, ODR1007Response.class, url);
     }
 
     /**
@@ -81,8 +81,8 @@ public class DaJiaApiRequestComponent {
      * @param odr2009Request
      * @return
      */
-    public ODR2009Response queryVehicleTypes(ODR2009Request odr2009Request) {
-        return requestRequestUrl(RequestUrl.DJ_TQBD_200009, odr2009Request, ODR2009Response.class);
+    public ODR2009Response queryVehicleTypes(ODR2009Request odr2009Request,String url) {
+        return requestRequestUrl(RequestUrl.DJ_TQBD_200009, odr2009Request, ODR2009Response.class, url);
     }
 
     /**
@@ -90,8 +90,8 @@ public class DaJiaApiRequestComponent {
      * @param odr1008Request
      * @return
      */
-    public ODR1008Response carOrCustomInfoConfirm(ODR1008Request odr1008Request) {
-        return requestRequestUrl(RequestUrl.DJ_TQBD_100008, odr1008Request, ODR1008Response.class);
+    public ODR1008Response carOrCustomInfoConfirm(ODR1008Request odr1008Request,String url) {
+        return requestRequestUrl(RequestUrl.DJ_TQBD_100008, odr1008Request, ODR1008Response.class,url);
     }
 
     /**
@@ -99,8 +99,8 @@ public class DaJiaApiRequestComponent {
      * @param odr1016Request
      * @return
      */
-    public ODR1016Response carValueCalculation(ODR1016Request odr1016Request) {
-        return requestRequestUrl(RequestUrl.DJ_TQBD_100016, odr1016Request, ODR1016Response.class);
+    public ODR1016Response carValueCalculation(ODR1016Request odr1016Request,String url) {
+        return requestRequestUrl(RequestUrl.DJ_TQBD_100016, odr1016Request, ODR1016Response.class,url);
     }
 
     /**
@@ -108,8 +108,8 @@ public class DaJiaApiRequestComponent {
      * @param odr1009Request
      * @return
      */
-    public ODR1009Response newPremiumXnyCalculation(ODR1009Request odr1009Request) {
-        return requestRequestUrl(RequestUrl.DJ_TQBD_100009, odr1009Request, ODR1009Response.class);
+    public ODR1009Response newPremiumXnyCalculation(ODR1009Request odr1009Request,String url) {
+        return requestRequestUrl(RequestUrl.DJ_TQBD_100009, odr1009Request, ODR1009Response.class,url);
     }
 
     /**
@@ -117,8 +117,8 @@ public class DaJiaApiRequestComponent {
      * @param odr1013Request
      * @return
      */
-    public ODR1013Response uploadImage(ODR1013Request odr1013Request) {
-        return requestRequestUrl(RequestUrl.DJ_TQBD_100013, odr1013Request, ODR1013Response.class);
+    public ODR1013Response uploadImage(ODR1013Request odr1013Request,String url) {
+        return requestRequestUrl(RequestUrl.DJ_TQBD_100013, odr1013Request, ODR1013Response.class, url);
     }
 
     /**
@@ -126,8 +126,8 @@ public class DaJiaApiRequestComponent {
      * @param nvhlodr1001Request
      * @return
      */
-    public NVHLODR1001Response accidentPremiumCalculation(NVHLODR1001Request nvhlodr1001Request) {
-        return requestRequestUrl(RequestUrl.DJ_TQBD_100100, nvhlodr1001Request, NVHLODR1001Response.class);
+    public NVHLODR1001Response accidentPremiumCalculation(NVHLODR1001Request nvhlodr1001Request,String url) {
+        return requestRequestUrl(RequestUrl.DJ_TQBD_100100, nvhlodr1001Request, NVHLODR1001Response.class,url);
     }
 
     /**
@@ -135,8 +135,8 @@ public class DaJiaApiRequestComponent {
      * @param odr1010Request
      * @return
      */
-    public ODR1010Response underwriting(ODR1010Request odr1010Request) {
-        return requestRequestUrl(RequestUrl.DJ_TQBD_100010, odr1010Request, ODR1010Response.class);
+    public ODR1010Response underwriting(ODR1010Request odr1010Request,String url) {
+        return requestRequestUrl(RequestUrl.DJ_TQBD_100010, odr1010Request, ODR1010Response.class,url);
     }
 
     /**
@@ -144,8 +144,8 @@ public class DaJiaApiRequestComponent {
      * @param odr1011Request
      * @return
      */
-    public ODR1011Response getPayNo(ODR1011Request odr1011Request) {
-        return requestRequestUrl(RequestUrl.DJ_TQBD_100011, odr1011Request, ODR1011Response.class);
+    public ODR1011Response getPayNo(ODR1011Request odr1011Request,String url) {
+        return requestRequestUrl(RequestUrl.DJ_TQBD_100011, odr1011Request, ODR1011Response.class,url);
     }
 
     /**
@@ -153,8 +153,8 @@ public class DaJiaApiRequestComponent {
      * @param vhlins2005Request
      * @return
      */
-    public VHLINS2005Response obtainWarranty(VHLINS2005Request vhlins2005Request) {
-        return requestRequestUrl(RequestUrl.DJ_TQBD_200005, vhlins2005Request, VHLINS2005Response.class);
+    public VHLINS2005Response obtainWarranty(VHLINS2005Request vhlins2005Request,String url) {
+        return requestRequestUrl(RequestUrl.DJ_TQBD_200005, vhlins2005Request, VHLINS2005Response.class,url);
     }
 
     /**
@@ -162,8 +162,8 @@ public class DaJiaApiRequestComponent {
      * @param nvhlodr2007Request
      * @return
      */
-    public NVHLODR2007Response accidentPremiumWarranty(NVHLODR2007Request nvhlodr2007Request) {
-        return requestRequestUrl(RequestUrl.DJ_TQBD_200007, nvhlodr2007Request, NVHLODR2007Response.class);
+    public NVHLODR2007Response accidentPremiumWarranty(NVHLODR2007Request nvhlodr2007Request,String url) {
+        return requestRequestUrl(RequestUrl.DJ_TQBD_200007, nvhlodr2007Request, NVHLODR2007Response.class,url);
     }
 
     /**
@@ -171,7 +171,7 @@ public class DaJiaApiRequestComponent {
      * @param odr2010Request
      * @return
      */
-    public ODR2010Response verifyPayment(ODR2010Request odr2010Request) {
-        return requestRequestUrl(RequestUrl.DJ_TQBD_200010, odr2010Request, ODR2010Response.class);
+    public ODR2010Response verifyPayment(ODR2010Request odr2010Request, String url) {
+        return requestRequestUrl(RequestUrl.DJ_TQBD_200010, odr2010Request, ODR2010Response.class,url);
     }
 }

+ 43 - 26
tenant/insurance/quotation-dajia/src/main/java/com/jzg/quotation/dajia/api/service/impl/DaJiaApiRequestImpl.java

@@ -6,6 +6,8 @@ import com.alibaba.fastjson.JSONObject;
 import com.fasterxml.jackson.core.JsonProcessingException;
 import com.jzg.commons.constants.InsuranceRisk;
 import com.jzg.commons.constants.dict.InsOrderStatusEnum;
+import com.jzg.commons.core.page.HttpResult;
+import com.jzg.commons.entity.agreement.po.PtlAgreementUrl;
 import com.jzg.commons.entity.quote.vo.*;
 import com.jzg.commons.entity.quote.vo.aggregated.*;
 import com.jzg.commons.exception.SystemException;
@@ -15,6 +17,7 @@ import com.jzg.commons.util.idgen.IdGenerate;
 import com.jzg.commons.entity.quote.vo.base.OrderBase;
 import com.jzg.commons.entity.quote.vo.image.InsuranceImageVo;
 import com.jzg.quotation.commons.annotation.QuoteApiService;
+import com.jzg.quotation.commons.client.PlatformClient;
 import com.jzg.quotation.commons.constant.InsuranceCode;
 import com.jzg.quotation.commons.standard.conversion.ConfigureParametersConversion;
 import com.jzg.quotation.commons.utils.DateTimeUtil;
@@ -54,19 +57,28 @@ public class DaJiaApiRequestImpl implements DaJiaApiRequest {
 
     public static Map<Integer, String> dateFormatMap;
 
+    public final PlatformClient platformClient;
+
+    public String getApiUrl(String companyId) {
+        // 获取保司配置url地址
+        HttpResult<PtlAgreementUrl> ptlAgreementUrl = platformClient.getAgreementUrlByCompanyId(companyId);
+        return ptlAgreementUrl.getData().getUrl();
+    }
+
     @Override
     public QuoteResultsVo quote(QuoteVo quoteVo) throws JsonProcessingException {
         OrderBase order = quoteVo.getOrder();
         AttributionInformationVo attributionInformationVo = order.getAttributionInformationVo();
         // 配置信息
+        String url = getApiUrl(order.getInsuranceCompanyCode());
         DaJiaApiConfigureParameters parameters = ConfigureParametersConversion.conversionEntity(DaJiaApiConfigureParameters.class,
                 attributionInformationVo.getConfigInfo());
         // 获取业务订单号
-        String orderNo = getOrderNo(parameters);
+        String orderNo = getOrderNo(parameters,url);
         String busiId = IdGenerate.nextId();
         // 车型查询
         ODR2009Request odr2009Request = new ODR2009Request(orderNo, quoteVo, parameters);
-        ODR2009Response odr2009Response = daJiaApiRequestComponent.queryVehicleTypes(odr2009Request);
+        ODR2009Response odr2009Response = daJiaApiRequestComponent.queryVehicleTypes(odr2009Request,url);
 
         // 车辆与客户信息确认
         CustomerInfoVo ownerInfo = quoteVo.getOwnersInfo();
@@ -77,23 +89,23 @@ public class DaJiaApiRequestImpl implements DaJiaApiRequest {
         // 投保人信息
         CustomerInfoVo policyHolderInfo = quoteVo.getPolicyHolderInfo();
         PersonAreaVo policyHolderArea = new PersonAreaVo(policyHolderInfo);
-        ODR1008Response odr1008Response = confirmationVehicleCustomerInformation(orderNo, busiId, quoteVo, parameters, odr2009Response, ownerInfoArea, insuredPersonArea, policyHolderArea);
+        ODR1008Response odr1008Response = confirmationVehicleCustomerInformation(orderNo, busiId, quoteVo, parameters, odr2009Response, ownerInfoArea, insuredPersonArea, policyHolderArea,url);
 
         // 车辆实际价值计算接口
         // 获取起保日期
         String bxStartDate = Objects.isNull(quoteVo.getBiRiskInfoVo()) ? quoteVo.getCiRiskInfoVo().getStartDate() : quoteVo.getBiRiskInfoVo().getStartDate();
         ODR1016Request odr1016Request = new ODR1016Request(orderNo, bxStartDate);
-        ODR1016Response odr1016Response = daJiaApiRequestComponent.carValueCalculation(odr1016Request);
+        ODR1016Response odr1016Response = daJiaApiRequestComponent.carValueCalculation(odr1016Request,url);
         AssertionUtils.isFail(!odr1016Response.getStatus().equals(Message.M0000.getCode()),"车辆实际价值计算接口失败");
 
         // 报价
-        ODR1009Response odr1009Response = quotation(orderNo, quoteVo, odr1016Response, parameters);
+        ODR1009Response odr1009Response = quotation(orderNo, quoteVo, odr1016Response, parameters,url);
         List<AccidentalDrivingVo> accidentalDrivings = quoteVo.getAccidentalDrivings();
         NVHLODR1001Response nvhlodr1001Response = null;
         if (CollUtil.isNotEmpty(accidentalDrivings)) {
             //6.驾意险报价
             NVHLODR1001Request nvhlodr1001Request = new NVHLODR1001Request(parameters, odr1009Response, order.getOrdersNo(), accidentalDrivings, quoteVo);
-            nvhlodr1001Response = daJiaApiRequestComponent.accidentPremiumCalculation(nvhlodr1001Request);
+            nvhlodr1001Response = daJiaApiRequestComponent.accidentPremiumCalculation(nvhlodr1001Request,url);
             if (!"2000".equals(nvhlodr1001Response.getStatus())) {
                 throw new SystemException("驾意险报价失败");
             }
@@ -110,12 +122,12 @@ public class DaJiaApiRequestImpl implements DaJiaApiRequest {
      * @param parameters
      * @return
      */
-    private ODR1009Response quotation(String orderNo, QuoteVo quoteVo, ODR1016Response odr1016Response, DaJiaApiConfigureParameters parameters) {
+    private ODR1009Response quotation(String orderNo, QuoteVo quoteVo, ODR1016Response odr1016Response, DaJiaApiConfigureParameters parameters,String url) {
         ODR1009Request odr1009Request = new ODR1009Request(orderNo, quoteVo, odr1016Response,parameters);
-        ODR1009Response odr1009Response = daJiaApiRequestComponent.newPremiumXnyCalculation(odr1009Request);
+        ODR1009Response odr1009Response = daJiaApiRequestComponent.newPremiumXnyCalculation(odr1009Request,url);
 
         // 处理重复投保
-        repeatCoverhandler(odr1009Response,quoteVo,orderNo,odr1016Response,parameters);
+        repeatCoverhandler(odr1009Response,quoteVo,orderNo,odr1016Response,parameters,url);
         return odr1009Response;
     }
 
@@ -127,7 +139,7 @@ public class DaJiaApiRequestImpl implements DaJiaApiRequest {
      * @param orderNo
      * @param odr1016Response
      */
-    private void repeatCoverhandler(ODR1009Response odr1009Response, QuoteVo quoteVo, String orderNo, ODR1016Response odr1016Response, DaJiaApiConfigureParameters parameters) {
+    private void repeatCoverhandler(ODR1009Response odr1009Response, QuoteVo quoteVo, String orderNo, ODR1016Response odr1016Response, DaJiaApiConfigureParameters parameters,String url) {
         if (odr1009Response.getStatus().equals(Message.M0002.getCode())) {
             //获取重复投保信息
             String jqAppStatusMessage = odr1009Response.getResult().getJqAppStatusMessage() == null ? "" : odr1009Response.getResult().getJqAppStatusMessage().toString();
@@ -150,7 +162,7 @@ public class DaJiaApiRequestImpl implements DaJiaApiRequest {
                     biRiskInfoVo.setEndDate(duplicateDate.get(1));
                 }
                 ODR1009Request odr1009Request = new ODR1009Request(orderNo, quoteVo, odr1016Response,parameters);
-                odr1009Response = daJiaApiRequestComponent.newPremiumXnyCalculation(odr1009Request);
+                odr1009Response = daJiaApiRequestComponent.newPremiumXnyCalculation(odr1009Request,url);
             }
         }
     }
@@ -236,10 +248,10 @@ public class DaJiaApiRequestImpl implements DaJiaApiRequest {
      * @param policyHolderArea
      * @return
      */
-    private ODR1008Response confirmationVehicleCustomerInformation(String orderNo, String busiId, QuoteVo quoteVo, DaJiaApiConfigureParameters parameters, ODR2009Response odr2009Response, PersonAreaVo ownerInfoArea, PersonAreaVo insuredPersonArea, PersonAreaVo policyHolderArea) {
+    private ODR1008Response confirmationVehicleCustomerInformation(String orderNo, String busiId, QuoteVo quoteVo, DaJiaApiConfigureParameters parameters, ODR2009Response odr2009Response, PersonAreaVo ownerInfoArea, PersonAreaVo insuredPersonArea, PersonAreaVo policyHolderArea,String url) {
 
         ODR1008Request odr1008Request = new ODR1008Request(orderNo, busiId, quoteVo, parameters, odr2009Response, ownerInfoArea, insuredPersonArea, policyHolderArea);
-        ODR1008Response odr1008Response = daJiaApiRequestComponent.carOrCustomInfoConfirm(odr1008Request);
+        ODR1008Response odr1008Response = daJiaApiRequestComponent.carOrCustomInfoConfirm(odr1008Request,url);
         AssertionUtils.isFail(!odr1008Response.getStatus().equals(Message.M0000.getCode()),"车辆与客户信息确认接口失败");
         //车辆与客户信息确认返回
         return odr1008Response;
@@ -250,9 +262,9 @@ public class DaJiaApiRequestImpl implements DaJiaApiRequest {
      * @param parameters
      * @return
      */
-    private String getOrderNo(DaJiaApiConfigureParameters parameters) {
+    private String getOrderNo(DaJiaApiConfigureParameters parameters,String url) {
         ODR1007Request odr1007Request = new ODR1007Request(parameters);
-        ODR1007Response odr1007Response = daJiaApiRequestComponent.queryBusinessOrders(odr1007Request);
+        ODR1007Response odr1007Response = daJiaApiRequestComponent.queryBusinessOrders(odr1007Request,url);
         AssertionUtils.isFail(!odr1007Response.getStatus().equals(Message.M0000.getCode()),"获取业务订单号接口失败");
         //接口返回 订单号
         String orderNo = odr1007Response.getResult().getOrderNo();
@@ -262,6 +274,7 @@ public class DaJiaApiRequestImpl implements DaJiaApiRequest {
     @Override
     public UnderwritingResultsVo underwriting(UnderwritingVo underwritingVo) throws Exception {
         OrderBase orderBase = underwritingVo.getOrder();
+        String url = getApiUrl(orderBase.getInsuranceCompanyCode());
         DaJiaApiOrder daJiaApiOrder = daJiaCrawlerOrderService.getById(orderBase.getOrdersNo());
         // 配置信息
         DaJiaApiConfigureParameters parameters = ConfigureParametersConversion.conversionEntity(DaJiaApiConfigureParameters.class,
@@ -277,7 +290,7 @@ public class DaJiaApiRequestImpl implements DaJiaApiRequest {
 
         //核保构造request
         ODR1010Request odr1010Request = new ODR1010Request(orderBase.getCompanyOrderNo(), parameters, resultDTO,underwritingVo);
-        ODR1010Response odr1010Response = daJiaApiRequestComponent.underwriting(odr1010Request);
+        ODR1010Response odr1010Response = daJiaApiRequestComponent.underwriting(odr1010Request,url);
         if (odr1010Response.getStatus().equals(Message.M0000.getCode())) {
             if ("0".equals(odr1010Response.getResult().getJqAppStatus()) || "0".equals(odr1010Response.getResult().getSyAppStatus())) {
                 if ("0".equals(odr1010Response.getResult().getJqAppStatus())) {
@@ -314,6 +327,7 @@ public class DaJiaApiRequestImpl implements DaJiaApiRequest {
 
     @Override
     public PaymentLinkResultsVo getPaymentLink(PaymentLinkVo paymentLinkVo) throws Exception {
+        String url = getApiUrl(paymentLinkVo.getOrder().getInsuranceCompanyCode());
         DaJiaApiOrder daJiaApiOrder = daJiaCrawlerOrderService.getById(paymentLinkVo.getOrder().getOrdersNo());
         DaJiaApiConfigureParameters parameters = ConfigureParametersConversion.conversionEntity(DaJiaApiConfigureParameters.class,
                 paymentLinkVo.getOrder().getAttributionInformationVo().getConfigInfo());
@@ -329,7 +343,7 @@ public class DaJiaApiRequestImpl implements DaJiaApiRequest {
         boolean flag = true;
         Integer frequencyControl = 0;
         while (flag) {
-            payNo = daJiaApiRequestComponent.getPayNo(odr1011Request);
+            payNo = daJiaApiRequestComponent.getPayNo(odr1011Request,url);
             if ("0000".equals(payNo.getStatus())) {
                 flag = false;
             }
@@ -350,6 +364,7 @@ public class DaJiaApiRequestImpl implements DaJiaApiRequest {
     public void uploadImage(InsuranceUploadImageVo insuranceUploadImageVo) {
         // 获取订单信息
         OrderBase orderBase = insuranceUploadImageVo.getOrder();
+        String url = getApiUrl(orderBase.getInsuranceCompanyCode());
         DaJiaApiOrder daJiaApiOrder = daJiaCrawlerOrderService.getById(orderBase.getOrdersNo());
         // 配置信息
         DaJiaApiConfigureParameters parameters = ConfigureParametersConversion.conversionEntity(DaJiaApiConfigureParameters.class,
@@ -358,7 +373,7 @@ public class DaJiaApiRequestImpl implements DaJiaApiRequest {
         List<InsuranceImageVo> imageVoList = insuranceUploadImageVo.getImageVoList();
         ODR1013Request odr1013Request = new ODR1013Request(orderBase, parameters, imageVoList,daJiaApiOrder);
         try {
-            ODR1013Response odr1013Response = daJiaApiRequestComponent.uploadImage(odr1013Request);
+            ODR1013Response odr1013Response = daJiaApiRequestComponent.uploadImage(odr1013Request,url);
         } catch (Exception e) {
             throw new SystemException("上传途中异常,请重新上传或截取图片上传");
         }
@@ -367,6 +382,7 @@ public class DaJiaApiRequestImpl implements DaJiaApiRequest {
     @Override
     public DownloadPolicyResultVo downloadPolicy(DownloadPolicyVo downloadPolicyVo) {
         // 配置信息
+        String url = getApiUrl(downloadPolicyVo.getOrder().getInsuranceCompanyCode());
         DaJiaApiConfigureParameters parameters = ConfigureParametersConversion.conversionEntity(DaJiaApiConfigureParameters.class,
                 downloadPolicyVo.getOrder().getAttributionInformationVo().getConfigInfo());
 
@@ -374,15 +390,15 @@ public class DaJiaApiRequestImpl implements DaJiaApiRequest {
 
         String jqPolicyNo = downloadPolicyVo.getPolicie().getJqPolicyNo();
         if(Objects.nonNull(jqPolicyNo)) {
-            queryPolicy(jqPolicyNo,downloadPolicyResultVo,parameters, InsuranceRisk.TRAFFIC.getCode());
+            queryPolicy(jqPolicyNo,downloadPolicyResultVo,parameters, InsuranceRisk.TRAFFIC.getCode(),url);
         }
         String syPolicyNo = downloadPolicyVo.getPolicie().getSyPolicyNo();
         if(Objects.nonNull(syPolicyNo)) {
-            queryPolicy(syPolicyNo,downloadPolicyResultVo,parameters, InsuranceRisk.BUSINESS.getCode());
+            queryPolicy(syPolicyNo,downloadPolicyResultVo,parameters, InsuranceRisk.BUSINESS.getCode(),url);
         }
         String jyPolicyNo = downloadPolicyVo.getPolicie().getJyPolicyNo();
         if(Objects.nonNull(jyPolicyNo)) {
-            queryJyPolicy(jyPolicyNo,downloadPolicyResultVo,parameters);
+            queryJyPolicy(jyPolicyNo,downloadPolicyResultVo,parameters,url);
         }
         return downloadPolicyResultVo;
     }
@@ -393,12 +409,12 @@ public class DaJiaApiRequestImpl implements DaJiaApiRequest {
      * @param downloadPolicyResultVo
      * @param parameters
      */
-    private void queryJyPolicy(String policyNo, DownloadPolicyResultVo downloadPolicyResultVo, DaJiaApiConfigureParameters parameters) {
+    private void queryJyPolicy(String policyNo, DownloadPolicyResultVo downloadPolicyResultVo, DaJiaApiConfigureParameters parameters,String url) {
 
         NVHLODR2007Request nvhlodr2007Request = new NVHLODR2007Request(policyNo, parameters);
 
         try {
-            NVHLODR2007Response nvhlodr2007Response = daJiaApiRequestComponent.accidentPremiumWarranty(nvhlodr2007Request);
+            NVHLODR2007Response nvhlodr2007Response = daJiaApiRequestComponent.accidentPremiumWarranty(nvhlodr2007Request,url);
             if ("2000".equals(nvhlodr2007Response.getStatus())) {
                 String jyUrl = nvhlodr2007Response.getPolicyInfos().get(0).getCPdfUrl();
                 downloadPolicyResultVo.setJyUrl(jyUrl);
@@ -416,13 +432,13 @@ public class DaJiaApiRequestImpl implements DaJiaApiRequest {
      * @param policyNo
      * @param downloadPolicyResultVo
      */
-    private void queryPolicy(String policyNo, DownloadPolicyResultVo downloadPolicyResultVo,DaJiaApiConfigureParameters parameters, String riskCode) {
+    private void queryPolicy(String policyNo, DownloadPolicyResultVo downloadPolicyResultVo,DaJiaApiConfigureParameters parameters, String riskCode,String url) {
         ArrayList<String> warrantys = new ArrayList<String>();
         warrantys.add(policyNo);
         String[] warrantysArray = warrantys.toArray(new String[0]);
         VHLINS2005Request vhlins2005Request = new VHLINS2005Request(warrantysArray, parameters);
         try {
-            VHLINS2005Response vhlins2005Response = daJiaApiRequestComponent.obtainWarranty(vhlins2005Request);
+            VHLINS2005Response vhlins2005Response = daJiaApiRequestComponent.obtainWarranty(vhlins2005Request,url);
             if (vhlins2005Response.getStatus().equals(Message.M0000.getCode())) {
                 //标志
                 if (vhlins2005Response.getResult().size() > 0) {
@@ -457,11 +473,12 @@ public class DaJiaApiRequestImpl implements DaJiaApiRequest {
     public OrderStatusResultVo queryOrderState(OrderStatusVo orderStatusVo) {
         OrderStatusResultVo orderStatusResultVo = new OrderStatusResultVo();
         // 配置信息
+        String url = getApiUrl(orderStatusVo.getOrder().getInsuranceCompanyCode());
         DaJiaApiConfigureParameters parameters = ConfigureParametersConversion.conversionEntity(DaJiaApiConfigureParameters.class,
                 orderStatusVo.getOrder().getAttributionInformationVo().getConfigInfo());
         ODR2010Request odr2010Request = new ODR2010Request(orderStatusVo.getOrder().getCompanyOrderNo(), parameters);
         try{
-            ODR2010Response odr2010Response = daJiaApiRequestComponent.verifyPayment(odr2010Request);
+            ODR2010Response odr2010Response = daJiaApiRequestComponent.verifyPayment(odr2010Request,url);
             if (odr2010Response.getStatus().equals(Message.M0000.getCode())) {
 
                 List<ODR2010Response.ResultDTO> result = odr2010Response.getResult();

+ 25 - 25
tenant/insurance/quotation-guoren/src/main/java/com/jzg/quotation/guoren/api/component/GuoRenRequestApiComponent.java

@@ -52,7 +52,7 @@ public class GuoRenRequestApiComponent {
 
     private final RestTemplate restTemplate;
 
-    private ResponseDTO<JSONObject> post(String logId, String message, @Nullable RequestDTO requestBody) {
+    private ResponseDTO<JSONObject> post(String logId, String message, @Nullable RequestDTO requestBody,String url) {
         HttpHeaders httpHeaders = new HttpHeaders();
         httpHeaders.setContentType(MediaType.APPLICATION_JSON);
 
@@ -60,8 +60,8 @@ public class GuoRenRequestApiComponent {
         String baseUrl = properties.getBaseUrl();
         HttpEntity<String> httpEntity = new HttpEntity<>(request, httpHeaders);
         InsuranceLog.infoLog(InsuranceEnum.YGBX.getPinyin(), "\n\t---------> {} \n\t---------> URl: {} \n\t---------> 请求参数:{}",
-                message,baseUrl,request);
-        ResponseEntity<String> exchange = restTemplate.postForEntity(baseUrl, httpEntity, String.class);
+                message,url,request);
+        ResponseEntity<String> exchange = restTemplate.postForEntity(url, httpEntity, String.class);
         String body1 = exchange.getBody();
         InsuranceLog.infoLog(InsuranceEnum.BPIC.getPinyin(), "\n\t---------> {} \n\t---------> 响应参数:{}", message, body1);
         if (body1 == null) {
@@ -78,20 +78,20 @@ public class GuoRenRequestApiComponent {
         });
     }
 
-    private ResponseDTO<JSONObject> post(Object o, PlatformInterfaceCode platformInterfaceCode) {
+    private ResponseDTO<JSONObject> post(Object o, PlatformInterfaceCode platformInterfaceCode,String url) {
         RequestDTO requestBody = RequestDTO.builRequestDto(o, platformInterfaceCode.getCode(), properties);
-        ResponseDTO<JSONObject> post = post(InsuranceEnum.XDCX.getPinyin(), platformInterfaceCode.getDesc(), requestBody);
+        ResponseDTO<JSONObject> post = post(InsuranceEnum.XDCX.getPinyin(), platformInterfaceCode.getDesc(), requestBody,url);
         Response.verification(Response.API_T0000000, post);
         return post;
     }
 
-    public <B> B request(Object o, PlatformInterfaceCode platformInterfaceCode, Class<B> bClass) {
-        ResponseDTO<JSONObject> request = post(o, platformInterfaceCode);
+    public <B> B request(Object o, PlatformInterfaceCode platformInterfaceCode, Class<B> bClass,String url) {
+        ResponseDTO<JSONObject> request = post(o, platformInterfaceCode,url);
         return request.getResponseBody().toJavaObject(bClass);
     }
 
-    public JSONObject request(Object o, PlatformInterfaceCode platformInterfaceCode) {
-        ResponseDTO<JSONObject> post = post(o, platformInterfaceCode);
+    public JSONObject request(Object o, PlatformInterfaceCode platformInterfaceCode,String url) {
+        ResponseDTO<JSONObject> post = post(o, platformInterfaceCode,url);
         return post.getResponseBody();
     }
 
@@ -99,26 +99,26 @@ public class GuoRenRequestApiComponent {
     /**
      * 投保单保存
      */
-    public InsuranceSlipResponse insuranceSlip(QuoteVo quoteVo, String carPriceNum, String orderCode, List<GuoRenSpecialAgreementVo> specialAgreementVo) {
+    public InsuranceSlipResponse insuranceSlip(QuoteVo quoteVo, String carPriceNum, String orderCode, List<GuoRenSpecialAgreementVo> specialAgreementVo,String url) {
         //构造请求参数
         InsuranceSlipRequest req = InsuranceSlipRequest.buildParam(quoteVo, carPriceNum, orderCode, specialAgreementVo);
-        return request(req, PlatformInterfaceCode.API_IIRBT00006, InsuranceSlipResponse.class);
+        return request(req, PlatformInterfaceCode.API_IIRBT00006, InsuranceSlipResponse.class,url);
     }
 
 
     /**
      * 提交核保
      */
-    public SubmitAuditResponse submitAudit(GuoRenApiOrder guoRenApiOrder, GuoRenConfigureParameters parameters) {
+    public SubmitAuditResponse submitAudit(GuoRenApiOrder guoRenApiOrder, GuoRenConfigureParameters parameters,String url) {
         //构造请求参数
         SubmitAuditRequest req = SubmitAuditRequest.buildParam(guoRenApiOrder, parameters);
-        return request(req, PlatformInterfaceCode.API_IIRBT00007, SubmitAuditResponse.class);
+        return request(req, PlatformInterfaceCode.API_IIRBT00007, SubmitAuditResponse.class, url);
     }
 
     /**
      * 查询非车险保单号
      */
-    public List<DrivingInsuranceDTO> queryNoCarPolicyNo(GuoRenApiOrder guoRenApiOrder) {
+    public List<DrivingInsuranceDTO> queryNoCarPolicyNo(GuoRenApiOrder guoRenApiOrder,String url) {
         if (guoRenApiOrder.getJyPremium() == null || guoRenApiOrder.getJyPremium().compareTo(new BigDecimal(0)) == 0) {
             return null;
         }
@@ -127,7 +127,7 @@ public class GuoRenRequestApiComponent {
         QueryNoCarPolicyNoRequest queryNoCarPolicyNoRequest = new QueryNoCarPolicyNoRequest(StringUtils.isNotEmpty(guoRenApiOrder.getSyApplyNo()) ?
                 guoRenApiOrder.getSyApplyNo() : guoRenApiOrder.getJqApplyNo());
         QueryNoCarPolicyNoResponse request = request(queryNoCarPolicyNoRequest, PlatformInterfaceCode.API_IIIRBT00052,
-                QueryNoCarPolicyNoResponse.class);
+                QueryNoCarPolicyNoResponse.class,url);
         QueryNoCarPolicyNoResponse.DataDTO data = request.getData();
         // 非车保单号
         List<String> noCarPolicyNo = data.getNoCarPolicyNo();
@@ -148,10 +148,10 @@ public class GuoRenRequestApiComponent {
     /**
      * 支付获取支付url
      */
-    public PayResponse.DataDTO getPaid(GuoRenApiOrder guoRenApiOrder, GuoRenConfigureParameters parameters) {
+    public PayResponse.DataDTO getPaid(GuoRenApiOrder guoRenApiOrder, GuoRenConfigureParameters parameters,String url) {
         //构造请求参数
         PayRequest req = PayRequest.buildParam(guoRenApiOrder, properties.getRedirectUrl(), parameters);
-        PayResponse payResp = request(req, PlatformInterfaceCode.API_IIRBT00008, PayResponse.class);
+        PayResponse payResp = request(req, PlatformInterfaceCode.API_IIRBT00008, PayResponse.class,url);
         if (null != payResp) {
             return payResp.getData();
         }
@@ -163,28 +163,28 @@ public class GuoRenRequestApiComponent {
      * @param req
      * @return
      */
-    public IIRBT00012Response proposalPolicyLogout(IIRBT00012Request req) {
-        return request(req, PlatformInterfaceCode.API_IIRBT00012, IIRBT00012Response.class);
+    public IIRBT00012Response proposalPolicyLogout(IIRBT00012Request req,String url) {
+        return request(req, PlatformInterfaceCode.API_IIRBT00012, IIRBT00012Response.class,url);
     }
 
     /**
      * 通过二维码扫描获取电子投保单签名
      */
-    public SignatureResponse signature(GuoRenApiOrder guoRenApiOrder) {
+    public SignatureResponse signature(GuoRenApiOrder guoRenApiOrder,String url) {
         //构造请求参数
         SignatureRequest signatureRequest = new SignatureRequest();
         signatureRequest.setProposalNoCI(guoRenApiOrder.getJqApplyNo());
         signatureRequest.setProposalNoBI(guoRenApiOrder.getSyApplyNo());
-        return request(signatureRequest, PlatformInterfaceCode.API_IIIRBT00055, SignatureResponse.class);
+        return request(signatureRequest, PlatformInterfaceCode.API_IIIRBT00055, SignatureResponse.class,url);
     }
 
     /**
      * 电子保单
      */
-    public PolicyResponse policyPrint(String policyNo) {
+    public PolicyResponse policyPrint(String policyNo,String url) {
         Map<String, String> m = new HashMap<>();
         m.put("policyNo", policyNo);
-        PolicyResponse resp = request(m, PlatformInterfaceCode.API_IIRBT00027, PolicyResponse.class);
+        PolicyResponse resp = request(m, PlatformInterfaceCode.API_IIRBT00027, PolicyResponse.class,url);
         if (null != resp && resp.getResultCode() == 0) {
             return resp;
         }
@@ -194,10 +194,10 @@ public class GuoRenRequestApiComponent {
     /**
      * 获取非车电子保单下载链接
      */
-    public String noCarElectronicPolicy(String channelCode, String othBusinessNo, String policyNo) {
+    public String noCarElectronicPolicy(String channelCode, String othBusinessNo, String policyNo,String url) {
         NoCarElectronicPolicyRequest noCarElectronicPolicyRequest = new NoCarElectronicPolicyRequest(channelCode, othBusinessNo, policyNo);
         NoCarElectronicPolicyResponse response = request(noCarElectronicPolicyRequest, PlatformInterfaceCode.API_IIRBT00089,
-                NoCarElectronicPolicyResponse.class);
+                NoCarElectronicPolicyResponse.class,url);
         return response.getData().getEpolicyUrl();
     }
 }

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

@@ -6,6 +6,8 @@ import com.alibaba.fastjson.JSONObject;
 import com.fasterxml.jackson.core.JsonProcessingException;
 import com.jzg.commons.constants.InsuranceRisk;
 import com.jzg.commons.constants.dict.InsOrderStatusEnum;
+import com.jzg.commons.core.page.HttpResult;
+import com.jzg.commons.entity.agreement.po.PtlAgreementUrl;
 import com.jzg.commons.entity.orders.po.InsOrders;
 import com.jzg.commons.entity.orders.po.InsOrdersPolicy;
 import com.jzg.commons.entity.quote.vo.AccidentalDrivingVo;
@@ -16,6 +18,7 @@ import com.jzg.commons.exception.SystemException;
 import com.jzg.commons.util.AssertionUtils;
 import com.jzg.commons.util.StringUtils;
 import com.jzg.quotation.commons.annotation.QuoteApiService;
+import com.jzg.quotation.commons.client.PlatformClient;
 import com.jzg.quotation.commons.component.InsImagesUploadCacheComponent;
 import com.jzg.quotation.commons.constant.InsuranceCode;
 import com.jzg.commons.entity.quote.vo.base.OrderBase;
@@ -76,6 +79,14 @@ public class GuoRenApiRequestImpl implements GuoRenApiRequest {
 
     private final InsImagesUploadCacheComponent insImagesUploadCacheComponent;
 
+    private final PlatformClient platformClient;
+
+    public String getApiUrl(String companyId) {
+        // 获取保司配置url地址
+        HttpResult<PtlAgreementUrl> ptlAgreementUrl = platformClient.getAgreementUrlByCompanyId(companyId);
+        return ptlAgreementUrl.getData().getUrl();
+    }
+
     /**
      * 报价
      * @param quoteVo 报价实体
@@ -85,6 +96,7 @@ public class GuoRenApiRequestImpl implements GuoRenApiRequest {
     public QuoteResultsVo quote(QuoteVo quoteVo) throws JsonProcessingException {
         OrderBase orderBase = quoteVo.getOrder();
         //配置信息
+        String url = getApiUrl(orderBase.getInsuranceCompanyCode());
         GuoRenConfigureParameters parameters = ConfigureParametersConversion.conversionEntity(GuoRenConfigureParameters.class, orderBase.getAttributionInformationVo().getConfigInfo());
         CarInfoVo carInfoVo = quoteVo.getCarInfoVo();
         //vin码查询
@@ -93,11 +105,11 @@ public class GuoRenApiRequestImpl implements GuoRenApiRequest {
         vinQueryRequest.setFrameNo(carInfoVo.getVinNo());
         vinQueryRequest.setLicenseNo(carInfoVo.getLicenseNo());
 
-        VinQueryResponse.DataDTO vinQuery = vinQuery(vinQueryRequest, parameters);
+        VinQueryResponse.DataDTO vinQuery = vinQuery(vinQueryRequest, parameters,url);
         AssertionUtils.isEmpty(vinQuery, "未找到匹配的车辆信息");
 
         //车价查询
-        CarPriceResponse.DataDTO carPriceQuery = carPriceQuery(quoteVo, vinQuery, parameters);
+        CarPriceResponse.DataDTO carPriceQuery = carPriceQuery(quoteVo, vinQuery, parameters,url);
         AssertionUtils.isEmpty(carPriceQuery, "车价获取失败");
 
         //创建非车订单
@@ -109,7 +121,7 @@ public class GuoRenApiRequestImpl implements GuoRenApiRequest {
         GuoRenAccidentalDrivingVo accidentalDrivingVo = getGuoRenAccidentalDrivingVo(quoteVo.getAccidentalDrivings());
         if (accidentalDrivingVo.getProdCode() != null) {
             NonAutoInsOrderResponse nonAutoInsOrderResponse = nonAutoInsOrder(quoteVo, accidentalDrivingVo,
-                    carPriceQuery.getInputvo(), parameters, vinQuery);
+                    carPriceQuery.getInputvo(), parameters, vinQuery, url);
             AssertionUtils.isEmpty(nonAutoInsOrderResponse.getData(), nonAutoInsOrderResponse.getMessage());
             orderCode = nonAutoInsOrderResponse.getData().getOrderCode();
             isNoCar = true;
@@ -119,11 +131,11 @@ public class GuoRenApiRequestImpl implements GuoRenApiRequest {
         }
 
         //获取特约数据
-        List<GuoRenSpecialAgreementVo> specialAgreements = getSpecialAgreements(orderBase, parameters);
+        List<GuoRenSpecialAgreementVo> specialAgreements = getSpecialAgreements(orderBase, parameters,url);
 
         // 4、保费计算
         PremiumResponse premiumResponse = premiumQuery(quoteVo, carPriceQuery, vinQuery, isNoCar,
-                specialAgreements, noCarPremium, goodsCode);
+                specialAgreements, noCarPremium, goodsCode, url);
 
         if (premiumResponse.getResultCode() == 1) {
             // 保费计算失败返回
@@ -135,7 +147,7 @@ public class GuoRenApiRequestImpl implements GuoRenApiRequest {
         } else {
             //保存投保单 该接口返回投保单号
             InsuranceSlipResponse insuranceSlipResponse = guoRenRequestApiComponent.insuranceSlip(quoteVo,
-                    carPriceQuery.getInputvo(), orderCode, specialAgreements);
+                    carPriceQuery.getInputvo(), orderCode, specialAgreements,url);
             if (insuranceSlipResponse.getResultCode() == 1) {
                 throw new SystemException(insuranceSlipResponse.getResultMsg());
             }
@@ -171,11 +183,12 @@ public class GuoRenApiRequestImpl implements GuoRenApiRequest {
     @Override
     public UnderwritingResultsVo underwriting(UnderwritingVo underwritingVo) {
         OrderBase orderBase = underwritingVo.getOrder();
+        String url = getApiUrl(orderBase.getInsuranceCompanyCode());
         //配置信息
         GuoRenConfigureParameters parameters = ConfigureParametersConversion.conversionEntity(GuoRenConfigureParameters.class, orderBase.getAttributionInformationVo().getConfigInfo());
         GuoRenApiOrder guoRenApiOrder = guoRenApiOrderService.findByOrdersNo(orderBase.getOrdersNo());
 
-        SubmitAuditResponse auditResponse = guoRenRequestApiComponent.submitAudit(guoRenApiOrder, parameters);
+        SubmitAuditResponse auditResponse = guoRenRequestApiComponent.submitAudit(guoRenApiOrder, parameters,url);
         UnderwritingResultsVo underwritingResultsVo = new UnderwritingResultsVo();
         String jqStatus = auditResponse.getData().get(0).getUnderWriteFlagCI();
         String syStatus = auditResponse.getData().get(0).getUnderWriteFlagBI();
@@ -238,10 +251,11 @@ public class GuoRenApiRequestImpl implements GuoRenApiRequest {
     @Override
     public PaymentLinkResultsVo getPaymentLink(PaymentLinkVo paymentLinkVo) {
         //配置信息
+        String url = getApiUrl(paymentLinkVo.getOrder().getInsuranceCompanyCode());
         GuoRenConfigureParameters parameters = ConfigureParametersConversion.conversionEntity(GuoRenConfigureParameters.class, paymentLinkVo.getOrder().getAttributionInformationVo().getConfigInfo());
         GuoRenApiOrder guoRenApiOrder = guoRenApiOrderService.findByOrdersNo(paymentLinkVo.getOrder().getOrdersNo());
 
-        PayResponse.DataDTO dataDTO = guoRenRequestApiComponent.getPaid(guoRenApiOrder, parameters);
+        PayResponse.DataDTO dataDTO = guoRenRequestApiComponent.getPaid(guoRenApiOrder, parameters,url);
         PaymentLinkResultsVo resultsVo = new PaymentLinkResultsVo();
         resultsVo.setPaymentLink(dataDTO.getPayUrl());
         return resultsVo;
@@ -267,6 +281,7 @@ public class GuoRenApiRequestImpl implements GuoRenApiRequest {
      */
     @Override
     public DownloadPolicyResultVo downloadPolicy(DownloadPolicyVo downloadPolicyVo) {
+        String url = getApiUrl(downloadPolicyVo.getOrder().getInsuranceCompanyCode());
         InsOrdersPolicy policie = downloadPolicyVo.getPolicie();
         DownloadPolicyResultVo downloadPolicyResultVo = new DownloadPolicyResultVo();
         GuoRenApiOrder guoRenApiOrder = guoRenApiOrderService.findByOrdersNo(downloadPolicyVo.getOrder().getOrdersNo());
@@ -275,16 +290,16 @@ public class GuoRenApiRequestImpl implements GuoRenApiRequest {
         String syPolicyNo = policie.getSyPolicyNo();
         String jyPolicyNo = policie.getJyPolicyNo();
         if (jqPolicyNo != null) {
-            PolicyResponse jqResponse = guoRenRequestApiComponent.policyPrint(jqPolicyNo);
+            PolicyResponse jqResponse = guoRenRequestApiComponent.policyPrint(jqPolicyNo,url);
             downloadPolicyResultVo.setJqFlagUrl(properties.getPolicyFlagUrl() + jqResponse.getData());
             downloadPolicyResultVo.setJqUrl(properties.getPolicyUrl() + jqResponse.getData());
         }
         if (syPolicyNo != null) {
-            PolicyResponse syResponse = guoRenRequestApiComponent.policyPrint(syPolicyNo);
+            PolicyResponse syResponse = guoRenRequestApiComponent.policyPrint(syPolicyNo,url);
             downloadPolicyResultVo.setSyUrl(properties.getPolicyUrl() + syResponse.getData());
         }
         if (jyPolicyNo != null) {
-            String jyResponse = guoRenRequestApiComponent.noCarElectronicPolicy(properties.getChannelCode(),guoRenApiOrder.getOthBusinessNo(),jyPolicyNo);
+            String jyResponse = guoRenRequestApiComponent.noCarElectronicPolicy(properties.getChannelCode(),guoRenApiOrder.getOthBusinessNo(),jyPolicyNo,url);
             downloadPolicyResultVo.setJyUrl(jyResponse);
         }
         return downloadPolicyResultVo;
@@ -300,8 +315,9 @@ public class GuoRenApiRequestImpl implements GuoRenApiRequest {
         //查询投保单信息
         InsOrdersPolicy insOrdersPolicy = orderBase.getInsOrdersPolicy();
         InsOrders insOrders = orderBase.getInsOrders();
+        String url = getApiUrl(orderBase.getOrder().getInsuranceCompanyCode());
         // 获取保司订单状态
-        OrderStateResponse orderStateResponse = insOrderStatus(insOrdersPolicy);
+        OrderStateResponse orderStateResponse = insOrderStatus(insOrdersPolicy,url);
         GuoRenApiOrder guoRenApiOrder = guoRenApiOrderService.findByOrdersNo(orderBase.getOrder().getOrdersNo());
         OrderStatusResultVo orderStatusResultVo = new OrderStatusResultVo();
         if (null != orderStateResponse && CollUtil.isNotEmpty(orderStateResponse.getData())) {
@@ -340,7 +356,7 @@ public class GuoRenApiRequestImpl implements GuoRenApiRequest {
             // 支付
             if (updateFlag) {
                 orderStatusResultVo.setOrderStatus(InsOrderStatusEnum.UNDERWRITED);
-                List<DrivingInsuranceDTO> drivingInsuranceDTOList = guoRenRequestApiComponent.queryNoCarPolicyNo(guoRenApiOrder);
+                List<DrivingInsuranceDTO> drivingInsuranceDTOList = guoRenRequestApiComponent.queryNoCarPolicyNo(guoRenApiOrder,url);
                 drivingInsuranceDTOList.forEach(drivingInsuranceDTO -> {
                     orderStatusResultVo.setJyPolicyno(drivingInsuranceDTO.getPolicyNumber());
                     orderStatusResultVo.setJyApplyNo(drivingInsuranceDTO.getApplicationNumber());
@@ -351,7 +367,7 @@ public class GuoRenApiRequestImpl implements GuoRenApiRequest {
         return null;
     }
 
-    public OrderStateResponse insOrderStatus(InsOrdersPolicy insOrdersPolicy) {
+    public OrderStateResponse insOrderStatus(InsOrdersPolicy insOrdersPolicy,String url) {
         OrderStateRequest orderStateRequest = new OrderStateRequest();
         // 交强投保单号
         orderStateRequest.addProposalNos(insOrdersPolicy.getJqApplyNo());
@@ -359,7 +375,7 @@ public class GuoRenApiRequestImpl implements GuoRenApiRequest {
         orderStateRequest.addProposalNos(insOrdersPolicy.getSyApplyNo());
         //投保单状态查询
         return guoRenRequestApiComponent.request(orderStateRequest, PlatformInterfaceCode.API_IIRBT00010,
-                OrderStateResponse.class);
+                OrderStateResponse.class,url);
     }
 
     /**
@@ -368,10 +384,10 @@ public class GuoRenApiRequestImpl implements GuoRenApiRequest {
      * @author: lig
      * @date: 2023年08月18日 0018
      */
-    public VinQueryResponse.DataDTO vinQuery(VinQueryRequest vinQueryReq, GuoRenConfigureParameters parameters) {
+    public VinQueryResponse.DataDTO vinQuery(VinQueryRequest vinQueryReq, GuoRenConfigureParameters parameters,String url) {
         VinQueryRequest req = new VinQueryRequest(vinQueryReq, parameters);
         VinQueryResponse resp = guoRenRequestApiComponent.request(req, PlatformInterfaceCode.API_IIRBT00009,
-                VinQueryResponse.class);
+                VinQueryResponse.class,url);
         if (resp.getResultCode() == 1) {
             throw new SystemException(resp.getResultMsg() == null ? "未找到车辆信息" : resp.getResultMsg());
         }
@@ -382,10 +398,10 @@ public class GuoRenApiRequestImpl implements GuoRenApiRequest {
      * 车价查询
      */
     public CarPriceResponse.DataDTO carPriceQuery(QuoteVo quoteVo, VinQueryResponse.DataDTO vinQ,
-                                                  GuoRenConfigureParameters parameters) {
+                                                  GuoRenConfigureParameters parameters,String url) {
 
         CarPriceRequest req = CarPriceRequest.buildCarPriceParam(quoteVo, vinQ, parameters);
-        JSONObject request = guoRenRequestApiComponent.request(req, PlatformInterfaceCode.API_IIRBT00003);
+        JSONObject request = guoRenRequestApiComponent.request(req, PlatformInterfaceCode.API_IIRBT00003,url);
         Object cars = request.get("cars");
 
         if (ObjectUtils.isEmpty(cars)) {
@@ -428,7 +444,7 @@ public class GuoRenApiRequestImpl implements GuoRenApiRequest {
                         confirmCarMuch = vehicleInfoList.get(0);
                     }
                 }
-                return carPriceQueryMuch(respMuch.getData().getInputvo(), confirmCarMuch
+                return carPriceQueryMuch(respMuch.getData().getInputvo(), confirmCarMuch,url
                 );
             }
         }
@@ -438,12 +454,12 @@ public class GuoRenApiRequestImpl implements GuoRenApiRequest {
     /**
      * (多条)车价查询
      */
-    public CarPriceResponse.DataDTO carPriceQueryMuch(String uuid, CarPriceMuchResponse.DataDTO.CarsDTO carsDTO) {
+    public CarPriceResponse.DataDTO carPriceQueryMuch(String uuid, CarPriceMuchResponse.DataDTO.CarsDTO carsDTO,String url) {
         //构造请求参数
         CarPriceMuchRequest req = new CarPriceMuchRequest();
         req.setUuid(uuid);
         req.setCarPriceMuchResp(carsDTO);
-        JSONObject request = guoRenRequestApiComponent.request(req, PlatformInterfaceCode.API_IIRBT00017);
+        JSONObject request = guoRenRequestApiComponent.request(req, PlatformInterfaceCode.API_IIRBT00017,url);
         CarPriceResponse resp = request.toJavaObject(CarPriceResponse.class);
         if (resp.getResultCode() == 1) {
             throw new SystemException(resp.getResultMsg() == null ? "未获取到车价信息,请联系管理员" : resp.getResultMsg());
@@ -480,13 +496,13 @@ public class GuoRenApiRequestImpl implements GuoRenApiRequest {
     public NonAutoInsOrderResponse nonAutoInsOrder(QuoteVo quoteVo,
                                                    GuoRenAccidentalDrivingVo accidentalDrivingVo,
                                                    String carPriceUuid, GuoRenConfigureParameters channelInfo,
-                                                   VinQueryResponse.DataDTO vinQ) {
+                                                   VinQueryResponse.DataDTO vinQ,String url) {
         //构造请求参数
         NonAutoInsOrderRequest nonAutoInsOrderReq = new NonAutoInsOrderRequest(quoteVo, vinQ, accidentalDrivingVo,
                 channelInfo,
                 carPriceUuid, properties.getChannelCode());
         return guoRenRequestApiComponent.request(nonAutoInsOrderReq, PlatformInterfaceCode.API_IIIRBT00054,
-                NonAutoInsOrderResponse.class);
+                NonAutoInsOrderResponse.class,url);
     }
 
     /**
@@ -494,7 +510,7 @@ public class GuoRenApiRequestImpl implements GuoRenApiRequest {
      * @param orderBase 原参数为agreementId,以后看orderbase中的配置信息map中是否可以获取
      * @return
      */
-    public List<GuoRenSpecialAgreementVo> getSpecialAgreements(OrderBase orderBase, GuoRenConfigureParameters parameters) {
+    public List<GuoRenSpecialAgreementVo> getSpecialAgreements(OrderBase orderBase, GuoRenConfigureParameters parameters,String url) {
         // 获取协议配置信息
         String specialAgreementKey = GR_SPECIAL_AGREEMENT_KEY + orderBase.getOrdersNo();//现在用ordersNo替换agreementId
 
@@ -511,7 +527,7 @@ public class GuoRenApiRequestImpl implements GuoRenApiRequest {
             SpecialAgreementRequest specialAgreementRequest = new SpecialAgreementRequest(parameters.getComCode(),
                     riskCode);
             SpecialAgreementResponse response = guoRenRequestApiComponent.request(specialAgreementRequest,
-                    PlatformInterfaceCode.API_IIRBT00005, SpecialAgreementResponse.class);
+                    PlatformInterfaceCode.API_IIRBT00005, SpecialAgreementResponse.class,url);
 
             AssertionUtils.isFail("1".equals(response.getResultCode().toString()), response.getResultMsg());
 
@@ -529,7 +545,7 @@ public class GuoRenApiRequestImpl implements GuoRenApiRequest {
     }
 
     public PremiumResponse premiumQuery(QuoteVo quoteVo, CarPriceResponse.DataDTO carPriceQuery, VinQueryResponse.DataDTO vinQuery, Boolean isNoCar,
-                                        List<GuoRenSpecialAgreementVo> specialAgreements, String noCarPremium, String goodsCode) {
+                                        List<GuoRenSpecialAgreementVo> specialAgreements, String noCarPremium, String goodsCode,String url) {
         boolean boo;
         //请求信息列表
         List<String> requestInfoList = new ArrayList<>();
@@ -538,7 +554,7 @@ public class GuoRenApiRequestImpl implements GuoRenApiRequest {
         PremiumResponse premiumResponse;
         int a = 0;
         for (; ; ) {
-            premiumResponse = guoRenRequestApiComponent.request(premiumRequest, PlatformInterfaceCode.API_IIRBT00004, PremiumResponse.class);
+            premiumResponse = guoRenRequestApiComponent.request(premiumRequest, PlatformInterfaceCode.API_IIRBT00004, PremiumResponse.class,url);
 
             premiumRequest.getCi().getPrpTmain().setAnswer(null);
             premiumRequest.getBi().getPrpTmain().setAnswer(null);

+ 67 - 13
tenant/insurance/quotation-huanong/src/main/java/com/jzg/quotation/huanong/crawler/component/HuaNongCrawlerRequestComponent.java

@@ -12,20 +12,25 @@ import com.jzg.quotation.huanong.crawler.properties.HuaNongCrawlerProperties;
 import com.jzg.quotation.huanong.crawler.utils.RequestEncryptor;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
+import org.springframework.core.ParameterizedTypeReference;
 import org.springframework.core.io.FileSystemResource;
+import org.springframework.http.HttpEntity;
 import org.springframework.http.HttpHeaders;
 import org.springframework.http.ResponseEntity;
 import org.springframework.stereotype.Component;
 import org.springframework.util.LinkedMultiValueMap;
 import org.springframework.util.MultiValueMap;
 import org.springframework.util.StringUtils;
+import org.springframework.web.reactive.function.BodyInserters;
 
-import java.io.File;
 import java.io.IOException;
 import java.net.URI;
 import java.nio.file.Files;
 import java.nio.file.Path;
-import java.util.*;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Optional;
 
 import static com.jzg.quotation.huanong.crawler.constant.enums.RequestUrl.*;
 
@@ -192,30 +197,64 @@ public class HuaNongCrawlerRequestComponent {
         return response.getData();
     }
 
+    private HttpHeaders getBizUploadHttpHeaders() {
+        HttpHeaders headers = new HttpHeaders();
+        headers.set("Host", "nile.chinahuanong.com.cn");
+        headers.set("Connection", "keep-alive");
+        headers.set("Cache-Control", "max-age=0");
+        headers.set("sec-ch-ua", "\"Not)A;Brand\";v=\"8\", \"Chromium\";v=\"138\", \"Google Chrome\";v=\"138\"");
+        headers.set("sec-ch-ua-mobile", "?0");
+        headers.set("sec-ch-ua-platform", "\"Windows\"");
+        headers.set("Upgrade-Insecure-Requests", "1");
+        headers.set("Origin", "https://cx.chinahuanong.com.cn");
+        headers.set("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7");
+        headers.set("Sec-Fetch-Site", "same-site");
+        headers.set("Sec-Fetch-Mode", "navigate");
+        headers.set("Sec-Fetch-User", "?1");
+        headers.set("Sec-Fetch-Dest", "document");
+        headers.set("Referer", "https://cx.chinahuanong.com.cn/");
+        headers.set("Accept-Encoding", "gzip, deflate, br, zstd");
+        headers.set("Accept-Language", "zh-CN,zh;q=0.9");
+        return headers;
+    }
+
     /**
      * 获取 accessToken
      *
-     * @param data    data数据
-     * @param headers 请求头
+     * @param data data数据
      * @return accessToken
      */
-    public String bizUpload(String data, HttpHeaders headers) {
-        MultiValueMap<String, Object> parts = new LinkedMultiValueMap<>();
-        parts.add("data", data);
+    public String bizUpload(String data, HttpHeaders httpHeaders) {
         String url = properties.getUploadUrl() + RequestUrl.BIZ_UPLOAD.getUri();
-        ResponseEntity<String> response = requestComponent.formData(url, parts, String.class, headers);
+        BodyInserters.FormInserter<String> fromFormData = BodyInserters.fromFormData("data", data);
+        ResponseEntity<String> response = requestComponent.formUrlencoded(url, fromFormData, String.class, getBizUploadHttpHeaders());
+
         String fragment = Optional.ofNullable(response)
                 .map(ResponseEntity::getHeaders)
                 .map(HttpHeaders::getLocation)
                 .map(URI::getFragment)
                 .orElse("");
 
+        Optional.ofNullable(response)
+                .map(HttpEntity::getHeaders)
+                .map(x -> x.get("Set-Cookie"))
+                .ifPresent(x -> {
+                    httpHeaders.set("Cookie", String.join(";", x));
+                });
+
         // 解析片段中的查询参数
         String[] s = fragment.split("\\?");
+
         if (s.length > 1) {
             Map<String, String> params = parseQueryParams(s[1]);
-            return params.get("accessToken");
+            String accessToken = params.get("accessToken");
+            if (fragment.contains("/error")) {
+                unlock(accessToken, httpHeaders);
+                return "ERROR";
+            }
+            return accessToken;
         }
+
         throw new SystemException("");
     }
 
@@ -236,19 +275,31 @@ public class HuaNongCrawlerRequestComponent {
      * @param headers 请求头
      * @return 上传影像响应
      */
-    public HuaNongCrawlerFileUploadResponse fileUpload(String accessToken, String uuidFileName, String suffix,  byte[] imageByte, HttpHeaders headers){
+    public HuaNongCrawlerFileUploadResponse fileUpload(String accessToken, String uuidFileName, String suffix, byte[] imageByte, HttpHeaders headers) {
         try {
             MultiValueMap<String, Object> parts = new LinkedMultiValueMap<>();
             Path tempPath = Files.createTempFile(uuidFileName, suffix);
             Files.write(tempPath, imageByte);
             parts.add("file", new FileSystemResource(tempPath.toFile()));
-            String url = properties.getUploadUrl() + String.format(FILE_UPLOAD.getUri(), accessToken, "");
+            String url = properties.getUploadUrl() + String.format(FILE_UPLOAD.getUri(), accessToken, uuidFileName);
             ResponseEntity<HuaNongCrawlerFileUploadResponse> responseEntity = requestComponent.formData(url, parts, HuaNongCrawlerFileUploadResponse.class, headers);
             return responseEntity.getBody();
-        }catch (IOException e){
+        } catch (IOException e) {
             throw new SystemException("文件读取异常");
         }
     }
+    public HuaNongCrawlerBizQueryResponse bizQuery(String accessToken, HttpHeaders headers) {
+        String url = properties.getUploadUrl() + String.format(BIZ_QUERY.getUri(), accessToken);
+        ResponseEntity<HuaNongCrawlerBizQueryResponse> responseEntity = requestComponent.baseGet(url, new LinkedMultiValueMap<>(), HuaNongCrawlerBizQueryResponse.class, headers);
+        return responseEntity.getBody();
+    }
+
+    public void unlock(String accessToken, HttpHeaders headers) {
+        String url = properties.getUploadUrl() + String.format(UNLOCK.getUri(), accessToken);
+        String o = requestComponent.get(url, Map.of(), UNLOCK.getRequestDescription(), new ParameterizedTypeReference<>() {
+        }, headers);
+        System.out.println(o);
+    }
 
     /**
      * 提交影像
@@ -259,9 +310,12 @@ public class HuaNongCrawlerRequestComponent {
      */
     public void fileSubmit(HuaNongCrawlerFileSubmitRequest request, String accessToken, HttpHeaders headers) {
         String url = properties.getUploadUrl() + String.format(FILE_SUBMIT.getUri(), accessToken, System.currentTimeMillis());
-        ResponseEntity<HuaNongCrawlerFileUploadResponse> responseEntity = requestComponent.objectPost(url, request, HuaNongCrawlerFileUploadResponse.class, headers);
+        ResponseEntity<HuaNongCrawlerFileSubmitResponse> responseEntity = requestComponent.objectPost(url, request, HuaNongCrawlerFileSubmitResponse.class, headers);
+        System.out.println();
     }
 
+
+
     /**
      * 查询上传目录
      *

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

@@ -32,9 +32,11 @@ public enum RequestUrl implements CrawlerRequestUrlStandard {
     NEW_IMAGE_QUERY("newImageQuery", "影像上传", "newImageQuery"),
 
     BIZ_UPLOAD("/tianying/api/biz/upload", "上传影像地址", ""),
+    BIZ_QUERY("/tianying/api/doc/bizQuery?accessToken=%s", "查询目录", ""),
     CATALOG_QUERY("/tianying/api/doc/catalogQuery", "影像目录查询", ""),
     FILE_UPLOAD("/tianying/api/doc/fileUpload?accessToken=%s&tempId=%s", "上传影像", ""),
-    FILE_SUBMIT("/tianying/api/doc/fileSubmit??accessToken=%s&time=%d", "提交影像", ""),
+    UNLOCK("/tianying/api/doc/unlock?accessToken=%s", "解锁", ""),
+    FILE_SUBMIT("/tianying/api/doc/fileSubmit?accessToken=%s&time=%d", "提交影像", ""),
 
     // 提交核保
     SUBMIT("Submit", "提交核保", "Submit"),

+ 4 - 4
tenant/insurance/quotation-huanong/src/main/java/com/jzg/quotation/huanong/crawler/entity/request/HuaNongCrawlerFileSubmitRequest.java

@@ -20,8 +20,8 @@ public class HuaNongCrawlerFileSubmitRequest {
     @JsonProperty("vtree")
     private List<VtreeDTO> vtree;
 
-    public HuaNongCrawlerFileSubmitRequest(List<HuaNongCrawlerCatalogQueryResponse.DataDTO.TreeDataDTO> treeData) {
-        this.vtree = treeData.stream().map(VtreeDTO::new).collect(Collectors.toList());
+    public HuaNongCrawlerFileSubmitRequest(List<HuaNongCrawlerCatalogQueryResponse.DataDTO.TreeDataDTO> treeData, Integer version) {
+        this.vtree = treeData.stream().map(x->new VtreeDTO(x, version)).collect(Collectors.toList());
     }
 
     @NoArgsConstructor
@@ -43,11 +43,11 @@ public class HuaNongCrawlerFileSubmitRequest {
         @JsonProperty("nodes")
         private List<HuaNongCrawlerCatalogQueryResponse.DataDTO.TreeDataDTO.NodesDTO> nodes;
 
-        public VtreeDTO(HuaNongCrawlerCatalogQueryResponse.DataDTO.TreeDataDTO treeDataDTO) {
+        public VtreeDTO(HuaNongCrawlerCatalogQueryResponse.DataDTO.TreeDataDTO treeDataDTO, Integer version) {
             this.appCode = treeDataDTO.getAppCode();
             this.appName = treeDataDTO.getAppName();
             this.bizNo = treeDataDTO.getBizNo();
-            this.version = treeDataDTO.getDocNum();
+            this.version = version;
             this.nodes = treeDataDTO.getNodes();
         }
 

+ 81 - 0
tenant/insurance/quotation-huanong/src/main/java/com/jzg/quotation/huanong/crawler/entity/response/HuaNongCrawlerBizQueryResponse.java

@@ -0,0 +1,81 @@
+package com.jzg.quotation.huanong.crawler.entity.response;
+
+import com.alibaba.fastjson.annotation.JSONField;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.List;
+
+@NoArgsConstructor
+@Data
+public class HuaNongCrawlerBizQueryResponse {
+
+    @JSONField(name = "code")
+    private String code;
+    @JSONField(name = "message")
+    private String message;
+    @JSONField(name = "data")
+    private DataDTO data;
+
+    @NoArgsConstructor
+    @Data
+    public static class DataDTO {
+        @JSONField(name = "baseData")
+        private BaseDataDTO baseData;
+
+        @NoArgsConstructor
+        @Data
+        public static class BaseDataDTO {
+            @JSONField(name = "userCode")
+            private String userCode;
+            @JSONField(name = "userName")
+            private String userName;
+            @JSONField(name = "orgCode")
+            private String orgCode;
+            @JSONField(name = "orgName")
+            private String orgName;
+            @JSONField(name = "roleCode")
+            private String roleCode;
+            @JSONField(name = "permissions")
+            private List<?> permissions;
+            @JSONField(name = "bizInfo")
+            private List<BizInfoDTO> bizInfo;
+
+            @NoArgsConstructor
+            @Data
+            public static class BizInfoDTO {
+                @JSONField(name = "appCode")
+                private String appCode;
+                @JSONField(name = "appName")
+                private String appName;
+                @JSONField(name = "bizNo")
+                private String bizNo;
+                @JSONField(name = "version")
+                private Integer version;
+                @JSONField(name = "totalSize")
+                private String totalSize;
+                @JSONField(name = "totalNum")
+                private Integer totalNum;
+                @JSONField(name = "ocrFlag")
+                private String ocrFlag;
+                @JSONField(name = "docNum")
+                private Integer docNum;
+                @JSONField(name = "fileSize")
+                private FileSizeDTO fileSize;
+                @JSONField(name = "untypeFlag")
+                private String untypeFlag;
+
+                @NoArgsConstructor
+                @Data
+                public static class FileSizeDTO {
+                    @JSONField(name = "jpg")
+                    private Integer jpg;
+                    @JSONField(name = "other")
+                    private Integer other;
+                    @JSONField(name = "default")
+                    private Integer defaultX;
+                }
+            }
+        }
+    }
+}

+ 49 - 22
tenant/insurance/quotation-huanong/src/main/java/com/jzg/quotation/huanong/crawler/service/impl/HuaNongCrawlerQuoteProcessServiceImpl.java

@@ -155,6 +155,14 @@ public class HuaNongCrawlerQuoteProcessServiceImpl implements HuaNongCrawlerQuot
         // 获取accessToken
         HttpHeaders httpHeaders = new HttpHeaders();
         String accessToken = huaNongCrawlerRequestComponent.bizUpload(data, httpHeaders);
+
+        if ("ERROR".equals(accessToken)) {
+            data = huaNongCrawlerRequestComponent.newImageQuery(huaNongCrawlerNewImageQueryRequest, new HttpHeaders());
+            accessToken = huaNongCrawlerRequestComponent.bizUpload(data, httpHeaders);
+        }
+
+        HuaNongCrawlerBizQueryResponse huaNongCrawlerBizQueryResponse = huaNongCrawlerRequestComponent.bizQuery(accessToken, httpHeaders);
+
         // 查询上传目录
         HuaNongCrawlerCatalogQueryResponse huaNongCrawlerCatalogQueryResponse = huaNongCrawlerRequestComponent.catalogQuery(accessToken, contractNo, httpHeaders);
 
@@ -163,13 +171,14 @@ public class HuaNongCrawlerQuoteProcessServiceImpl implements HuaNongCrawlerQuot
 
         Map<String, List<HuaNongCrawlerCatalogQueryResponse.DataDTO.TreeDataDTO.PagesDTO>> uploadDataMap = new HashMap<>();
 
+        String finalAccessToken = accessToken;
         imageVoList.forEach(insuranceImageVo -> {
             uploadDataMap.put(insuranceImageVo.getInsuranceImageCode(), new ArrayList<>());
             insuranceImageVo.getImageBase64List().forEach(imageDTO -> {
                 // 上传影像
                 String uuidFileName = UUID.randomUUID().toString();
                 String[] split = imageDTO.getImageName().split("\\.");
-                HuaNongCrawlerFileUploadResponse fileUpload = huaNongCrawlerRequestComponent.fileUpload(accessToken, uuidFileName, split[1], imageDTO.getImageByte(), httpHeaders);
+                HuaNongCrawlerFileUploadResponse fileUpload = huaNongCrawlerRequestComponent.fileUpload(finalAccessToken, uuidFileName, "." + split[1], imageDTO.getImageByte(), httpHeaders);
                 HuaNongCrawlerCatalogQueryResponse.DataDTO.TreeDataDTO.PagesDTO pagesDTO = new HuaNongCrawlerCatalogQueryResponse.DataDTO.TreeDataDTO.PagesDTO(fileUpload.getData(), loginInfoBO.getUserName(), loginInfoBO.getUserCode(), loginInfoBO.getLoginCom());
                 uploadDataMap.get(insuranceImageVo.getInsuranceImageCode()).add(pagesDTO);
             });
@@ -180,7 +189,8 @@ public class HuaNongCrawlerQuoteProcessServiceImpl implements HuaNongCrawlerQuot
         });
 
         // 提交影像
-        HuaNongCrawlerFileSubmitRequest huaNongCrawlerFileSubmitRequest = new HuaNongCrawlerFileSubmitRequest(treeData);
+        HuaNongCrawlerFileSubmitRequest huaNongCrawlerFileSubmitRequest = new HuaNongCrawlerFileSubmitRequest(treeData, huaNongCrawlerBizQueryResponse.getData().getBaseData().getBizInfo().get(0).getVersion());
+
         huaNongCrawlerRequestComponent.fileSubmit(huaNongCrawlerFileSubmitRequest, accessToken, httpHeaders);
 
     }
@@ -199,20 +209,31 @@ public class HuaNongCrawlerQuoteProcessServiceImpl implements HuaNongCrawlerQuot
     private static void propagateProperties(List<HuaNongCrawlerCatalogQueryResponse.DataDTO.TreeDataDTO.NodesDTO> nodes, HuaNongCrawlerCatalogQueryResponse.DataDTO.TreeDataDTO treeDataDTO,
                                             Map<String, List<HuaNongCrawlerCatalogQueryResponse.DataDTO.TreeDataDTO.PagesDTO>> uploadDataMap) {
         nodes.forEach(node -> {
+            if("DELETE".equals(node.getNodeCode())){
+                node.setPages(null);
+                node.setPagesNew(null);
+            }
+
+            // 设置属性
+            node.setId(null);
+            node.setAppCode(treeDataDTO.getAppCode());
+            node.setAppName(treeDataDTO.getAppName());
+            node.setIcon("iconwj-wj-2");
+            node.setBizNo(treeDataDTO.getBizNo());
+            node.setLabel(node.getNodeName() + "(0)");
+            setUpPagesDTO(node, uploadDataMap);
+            Optional.ofNullable(node.getPages())
+                    .filter(List::isEmpty)
+                    .ifPresent(x -> {
+                        node.setPages(null);
+                        node.setPagesNew(null);
+                    });
+
             // 处理当前节点的直接子节点
             Optional.ofNullable(node.getChildren())
+                    .filter(x -> !x.isEmpty())
                     .ifPresent(children -> children.forEach(child -> {
-                        // 设置属性
-                        child.setAppCode(treeDataDTO.getAppCode());
-                        child.setAppName(treeDataDTO.getAppName());
-                        child.setIcon("iconwj-wj-2");
-                        child.setBizNo(treeDataDTO.getBizNo());
-                        child.setLabel(child.getNodeName() + "(0)");
-                        setUpPagesDTO(child, uploadDataMap);
-                        // 递归处理所有子孙节点
-                        if (child.getChildren() != null && !child.getChildren().isEmpty()) {
-                            propagateProperties(child.getChildren(), treeDataDTO, uploadDataMap);
-                        }
+                        propagateProperties(children, treeDataDTO, uploadDataMap);
                     }));
         });
     }
@@ -225,16 +246,22 @@ public class HuaNongCrawlerQuoteProcessServiceImpl implements HuaNongCrawlerQuot
      */
     private static void setUpPagesDTO(HuaNongCrawlerCatalogQueryResponse.DataDTO.TreeDataDTO.NodesDTO child, Map<String, List<HuaNongCrawlerCatalogQueryResponse.DataDTO.TreeDataDTO.PagesDTO>> uploadDataMap) {
         List<HuaNongCrawlerCatalogQueryResponse.DataDTO.TreeDataDTO.PagesDTO> pagesDTOS = uploadDataMap.get(child.getNodeCode());
-        String id = ImageIdGenerate.getId(18);
-        pagesDTOS.forEach(pagesDTO -> {
-            pagesDTO.setNodeId(id);
-            pagesDTO.setAppCode(child.getAppCode());
-            pagesDTO.setBizNo(child.getBizNo());
-            pagesDTO.setId(ImageIdGenerate.getId(18));
-            pagesDTO.setPageDesc(child.getNodeName());
+        Optional.ofNullable(pagesDTOS).ifPresent(pagesDTOS1 -> {
+            String id = ImageIdGenerate.getId(18);
+            pagesDTOS1.forEach(pagesDTO -> {
+                pagesDTO.setNodeId(id);
+                pagesDTO.setAppCode(child.getAppCode());
+                pagesDTO.setBizNo(child.getBizNo());
+                pagesDTO.setId(ImageIdGenerate.getId(18));
+                pagesDTO.setPageDesc(child.getNodeName());
+            });
+            if (!pagesDTOS.isEmpty()) {
+                child.setPages(pagesDTOS);
+                child.setPagesNew(pagesDTOS);
+            }
+            child.setLabel(child.getNodeName() + "(" + pagesDTOS.size() + ")");
         });
-        child.setPages(pagesDTOS);
-        child.setPagesNew(pagesDTOS);
+
     }
 
 }

+ 22 - 22
tenant/insurance/quotation-huatai/src/main/java/com/jzg/quotation/huatai/api/component/HuaTaiRequestApiComponent.java

@@ -146,48 +146,48 @@ public class HuaTaiRequestApiComponent {
      * @param <S> Response 响应体
      *            常规
      */
-    private <Q extends HuaTaiBaseRequest, S extends HuaTaiBaseResponse> S routineRequest(Q request, Class<S> tClass, boolean verify, String insuredCode) {
-        return request(request, tClass, verify, properties.getBaseUrl(), insuredCode);
+    private <Q extends HuaTaiBaseRequest, S extends HuaTaiBaseResponse> S routineRequest(Q request, Class<S> tClass, boolean verify, String insuredCode, String url) {
+        return request(request, tClass, verify, url, insuredCode);
     }
 
     /**
      * 车型查询 传入必要车辆信息,返回车型列表给用户选择
      */
     public List<HuaTaiModelsQueryResponse.CarModelDto> modelQuery(HuaTaiModelsQueryRequest request,
-                                                                  Class<HuaTaiModelsQueryResponse> tClass, String insuredCode) {
-        return routineRequest(request, tClass, true, insuredCode).getCarModel();
+                                                                  Class<HuaTaiModelsQueryResponse> tClass, String insuredCode,String url) {
+        return routineRequest(request, tClass, true, insuredCode,url).getCarModel();
     }
 
-    public HuaTaiActualValueResponse actualValue(HuaTaiActualValueRequest request, Class<HuaTaiActualValueResponse> tClass, String insuredCode) {
-        return routineRequest(request, tClass, true, insuredCode);
+    public HuaTaiActualValueResponse actualValue(HuaTaiActualValueRequest request, Class<HuaTaiActualValueResponse> tClass, String insuredCode,String url) {
+        return routineRequest(request, tClass, true, insuredCode,url);
     }
 
     /**
      * 报价 传入必要投保方案信息,返回投保单保费及车船税
      */
-    public HuaTaiQuotedPriceResponse quotedPrice(HuaTaiQuotedPriceRequest request, Class<HuaTaiQuotedPriceResponse> tClass, String insuredCode) {
-        return routineRequest(request, tClass, false, insuredCode);
+    public HuaTaiQuotedPriceResponse quotedPrice(HuaTaiQuotedPriceRequest request, Class<HuaTaiQuotedPriceResponse> tClass, String insuredCode,String url) {
+        return routineRequest(request, tClass, false, insuredCode,url);
     }
 
     /**
      * 提交核保 传入投保单必要信息,对投保单进行审核
      */
-    public HuaTaiSubmitResponse submit(HuaTaiSubmitRequest request, Class<HuaTaiSubmitResponse> tClass, String insuredCode) {
-        return routineRequest(request, tClass, false, insuredCode);
+    public HuaTaiSubmitResponse submit(HuaTaiSubmitRequest request, Class<HuaTaiSubmitResponse> tClass, String insuredCode,String url) {
+        return routineRequest(request, tClass, false, insuredCode,url);
     }
 
     /**
      * 上传影像 传入订单信息,查询是否生成保单成功
      */
-    public HuaTaiUploadImageResponse uploadImage(HuaTaiUploadImageRequest request, Class<HuaTaiUploadImageResponse> tClass, String insuredCode) {
-        return routineRequest(request, tClass, true, insuredCode);
+    public HuaTaiUploadImageResponse uploadImage(HuaTaiUploadImageRequest request, Class<HuaTaiUploadImageResponse> tClass, String insuredCode,String url) {
+        return routineRequest(request, tClass, true, insuredCode,url);
     }
 
     /**
      * 缴费查询
      */
-    public HuaTaiOrderStatusResponse orderStatus(HuaTaiOrderStatusRequest request, Class<HuaTaiOrderStatusResponse> tClass, String insuredCode) {
-        return routineRequest(request, tClass, true, insuredCode);
+    public HuaTaiOrderStatusResponse orderStatus(HuaTaiOrderStatusRequest request, Class<HuaTaiOrderStatusResponse> tClass, String insuredCode,String url) {
+        return routineRequest(request, tClass, true, insuredCode,url);
     }
     public <T extends HuaTaiBaseResponse> void validationResults(T t) {
         if ("-1".equals(t.getHead().getReturnCode())) {
@@ -203,15 +203,15 @@ public class HuaTaiRequestApiComponent {
     /**
      * 缴费注销
      */
-    public HuaTaiPaymentLogoutResponse paymentLogout(HuaTaiPaymentLogoutRequest request, Class<HuaTaiPaymentLogoutResponse> tClass, String insuredCode) {
-        return routineRequest(request, tClass, true, insuredCode);
+    public HuaTaiPaymentLogoutResponse paymentLogout(HuaTaiPaymentLogoutRequest request, Class<HuaTaiPaymentLogoutResponse> tClass, String insuredCode,String url) {
+        return routineRequest(request, tClass, true, insuredCode,url);
     }
 
     /**
      * 获取缴费链接
      */
-    public HuaTaiPaymentUrlResponse getPaymentUrl(HuaTaiPaymentUrlRequest request, Class<HuaTaiPaymentUrlResponse> tClass, String insuredCode) {
-        return routineRequest(request, tClass, true, insuredCode);
+    public HuaTaiPaymentUrlResponse getPaymentUrl(HuaTaiPaymentUrlRequest request, Class<HuaTaiPaymentUrlResponse> tClass, String insuredCode,String url) {
+        return routineRequest(request, tClass, true, insuredCode,url);
     }
 
     /**
@@ -219,8 +219,8 @@ public class HuaTaiRequestApiComponent {
      */
     public HuaTaiSubmitStatusQueryResponse submitStatus(HuaTaiSubmitStatusQueryRequest request,
                                                         Class<HuaTaiSubmitStatusQueryResponse> tClass,
-                                                        String insuredCode) {
-        return routineRequest(request, tClass, true, insuredCode);
+                                                        String insuredCode,String url) {
+        return routineRequest(request, tClass, true, insuredCode,url);
     }
 
 
@@ -229,8 +229,8 @@ public class HuaTaiRequestApiComponent {
      */
     public HuaTaiInsurancePolicyPrintResponse insurancePolicyPrint(HuaTaiInsurancePolicyPrintRequest request,
                                                                    Class<HuaTaiInsurancePolicyPrintResponse> tClass,
-                                                                   String insuredCode) {
-        return routineRequest(request, tClass, true, insuredCode);
+                                                                   String insuredCode,String url) {
+        return routineRequest(request, tClass, true, insuredCode,url);
     }
 
     /**

+ 25 - 13
tenant/insurance/quotation-huatai/src/main/java/com/jzg/quotation/huatai/api/service/Impl/HuaTaiApiRequestImpl.java

@@ -5,6 +5,7 @@ import cn.hutool.core.util.ObjectUtil;
 import com.alibaba.fastjson2.JSONObject;
 import com.jzg.commons.constants.dict.InsOrderStatusEnum;
 import com.jzg.commons.core.page.HttpResult;
+import com.jzg.commons.entity.agreement.po.PtlAgreementUrl;
 import com.jzg.commons.entity.orders.po.InsOrdersPolicy;
 import com.jzg.commons.entity.po.SysUploadFiles;
 import com.jzg.commons.entity.quote.vo.*;
@@ -55,6 +56,11 @@ public class HuaTaiApiRequestImpl implements HuaTaiApiRequest {
 
     private final PlatformClient platformClient;
 
+    public String getApiUrl(String companyId) {
+        // 获取保司配置url地址
+        HttpResult<PtlAgreementUrl> ptlAgreementUrl = platformClient.getAgreementUrlByCompanyId(companyId);
+        return ptlAgreementUrl.getData().getUrl();
+    }
 
     /**
      * 报价
@@ -68,6 +74,7 @@ public class HuaTaiApiRequestImpl implements HuaTaiApiRequest {
         //配置信息
         HuaTaiConfigureParameters parameters = ConfigureParametersConversion.conversionEntity(HuaTaiConfigureParameters.class, orderBase.getAttributionInformationVo().getConfigInfo());
         HuaTaiBaseRequestHead baseRequestHead = new HuaTaiBaseRequestHead(parameters);
+        String url = getApiUrl(orderBase.getInsuranceCompanyCode());
 
         //查询车型
         CarInfoVo carInfoVo = quoteVo.getCarInfoVo();
@@ -76,7 +83,7 @@ public class HuaTaiApiRequestImpl implements HuaTaiApiRequest {
         huaTaiModelsQueryRequest.setLoginCom(parameters.getComCode());
         huaTaiModelsQueryRequest.setAgentCode(parameters.getAgentCode());
         List<HuaTaiModelsQueryResponse.CarModelDto> carModelDtos = huataiRequestApiComponent.modelQuery(huaTaiModelsQueryRequest,
-                HuaTaiModelsQueryResponse.class, parameters.getInsuredCode());
+                HuaTaiModelsQueryResponse.class, parameters.getInsuredCode(),url);
         List<HuaTaiModelsQueryResponse.CarModelDto.FullCarDataDto> fullCarDataDtos = new ArrayList<>();
         for (HuaTaiModelsQueryResponse.CarModelDto carModelDto : carModelDtos) {
             fullCarDataDtos.add(carModelDto.getFullCarData());
@@ -91,7 +98,7 @@ public class HuaTaiApiRequestImpl implements HuaTaiApiRequest {
                 HuaTaiActualValueRequest huaTaiActualValueRequest = new HuaTaiActualValueRequest(carInfoVo, fullCarDataDto, startDate,
                         parameters.getComCode());
                 huaTaiActualValueRequest.setHead(baseRequestHead);
-                actualValueResponse = huataiRequestApiComponent.actualValue(huaTaiActualValueRequest, HuaTaiActualValueResponse.class, parameters.getInsuredCode());
+                actualValueResponse = huataiRequestApiComponent.actualValue(huaTaiActualValueRequest, HuaTaiActualValueResponse.class, parameters.getInsuredCode(),url);
         }
         //组装报价参数
         AccidentalDrivingVo accidentalDrivingVo = new AccidentalDrivingVo();
@@ -105,7 +112,7 @@ public class HuaTaiApiRequestImpl implements HuaTaiApiRequest {
         quotedPriceRequest.setHead(baseRequestHead);
         //调用报价接口
         HuaTaiQuotedPriceResponse quotedPriceResponse = huataiRequestApiComponent.quotedPrice(quotedPriceRequest,
-                HuaTaiQuotedPriceResponse.class,  parameters.getInsuredCode());
+                HuaTaiQuotedPriceResponse.class,  parameters.getInsuredCode(),url);
         if (ObjectUtil.isNotNull(quotedPriceResponse) && !quotedPriceResponse.getHead().getReturnCode().equals("0")){
             log.error("报价失败,返回信息:{}", quotedPriceResponse.getHead().getReturnMessage());
             throw new SystemException("报价失败");
@@ -150,6 +157,7 @@ public class HuaTaiApiRequestImpl implements HuaTaiApiRequest {
     @Override
     public UnderwritingResultsVo underwriting(UnderwritingVo underwritingVo) {
         OrderBase orderBase = underwritingVo.getOrder();
+        String url = getApiUrl(orderBase.getInsuranceCompanyCode());
         AttributionInformationVo attributionInformationVo = orderBase.getAttributionInformationVo();
         //配置信息
         HuaTaiConfigureParameters huaTaiParameters = ConfigureParametersConversion.conversionEntity(HuaTaiConfigureParameters.class, attributionInformationVo.getConfigInfo());
@@ -158,7 +166,7 @@ public class HuaTaiApiRequestImpl implements HuaTaiApiRequest {
         List<InsHuataiContributingVo> engageList = new ArrayList<>();//报价接口未返回特约信息
         HuaTaiApiOrder huaTaiApiOrder = huaTaiApiOrderService.findByOrdersNo(orderBase.getOrdersNo());
         HuaTaiSubmitRequest submitRequest = new HuaTaiSubmitRequest(huaTaiApiOrder, huaTaiParameters, engageList);
-        HuaTaiSubmitResponse submitResponse = huataiRequestApiComponent.submit(submitRequest, HuaTaiSubmitResponse.class, huaTaiParameters.getInsuredCode());
+        HuaTaiSubmitResponse submitResponse = huataiRequestApiComponent.submit(submitRequest, HuaTaiSubmitResponse.class, huaTaiParameters.getInsuredCode(),url);
 
         log.info("提交保单返回信息:{}", JSONObject.toJSONString(submitResponse));
         if ("-1".equals(submitResponse.getHead().getReturnCode())) {
@@ -239,7 +247,7 @@ public class HuaTaiApiRequestImpl implements HuaTaiApiRequest {
             underwritingResultsVo.setUnderwritingStatus(InsOrderStatusEnum.STAFF_PROCESS);
             underwritingResultsVo.setUnderwritingResult("人工处理");
             //调用提交核保接口
-            HuaTaiSubmitStatusQueryResponse huaTaiSubmitStatusQueryResponse = submitStatus(huaTaiApiOrder, huaTaiParameters, "1");
+            HuaTaiSubmitStatusQueryResponse huaTaiSubmitStatusQueryResponse = submitStatus(huaTaiApiOrder, huaTaiParameters, "1",url);
 
         }else {
             //核保退回
@@ -264,6 +272,7 @@ public class HuaTaiApiRequestImpl implements HuaTaiApiRequest {
     @Override
     public PaymentLinkResultsVo getPaymentLink(PaymentLinkVo paymentLinkVo) {
         AttributionInformationVo attributionInformationVo = paymentLinkVo.getOrder().getAttributionInformationVo();
+        String url = getApiUrl(paymentLinkVo.getOrder().getInsuranceCompanyCode());
         //配置信息
         HuaTaiConfigureParameters huaTaiParameters = ConfigureParametersConversion.conversionEntity(HuaTaiConfigureParameters.class, attributionInformationVo.getConfigInfo());
 
@@ -271,7 +280,7 @@ public class HuaTaiApiRequestImpl implements HuaTaiApiRequest {
         HuaTaiPaymentUrlRequest huaTaiPaymentUrlRequest = new HuaTaiPaymentUrlRequest(huaTaiApiOrder, huaTaiParameters);
         huaTaiPaymentUrlRequest.setHead(new HuaTaiBaseRequestHead(huaTaiParameters));
 
-        HuaTaiPaymentUrlResponse paymentUrlResponse = huataiRequestApiComponent.getPaymentUrl(huaTaiPaymentUrlRequest, HuaTaiPaymentUrlResponse.class, huaTaiParameters.getInsuredCode());
+        HuaTaiPaymentUrlResponse paymentUrlResponse = huataiRequestApiComponent.getPaymentUrl(huaTaiPaymentUrlRequest, HuaTaiPaymentUrlResponse.class, huaTaiParameters.getInsuredCode(),url);
 
         String payUrl = "";
         if (StringUtils.isNotEmpty(paymentUrlResponse.getPayUrl())) {
@@ -291,6 +300,7 @@ public class HuaTaiApiRequestImpl implements HuaTaiApiRequest {
     public void uploadImage(InsuranceUploadImageVo insuranceUploadImageVo) {
         try {
             OrderBase orderBase = insuranceUploadImageVo.getOrder();
+            String url = orderBase.getInsuranceCompanyCode();
             AttributionInformationVo attributionInformationVo = orderBase.getAttributionInformationVo();
             //配置信息
             HuaTaiConfigureParameters huaTaiParameters = ConfigureParametersConversion.conversionEntity(HuaTaiConfigureParameters.class, attributionInformationVo.getConfigInfo());
@@ -299,7 +309,7 @@ public class HuaTaiApiRequestImpl implements HuaTaiApiRequest {
             HuaTaiUploadImageRequest uploadImageRequest = new HuaTaiUploadImageRequest(huaTaiApiOrder, huaTaiParameters);
             uploadImageRequest.setHead(new HuaTaiBaseRequestHead(huaTaiParameters));
             //返回影像上传url
-            HuaTaiUploadImageResponse huaTaiUploadImageResponse = huataiRequestApiComponent.uploadImage(uploadImageRequest, HuaTaiUploadImageResponse.class, huaTaiParameters.getInsuredCode());
+            HuaTaiUploadImageResponse huaTaiUploadImageResponse = huataiRequestApiComponent.uploadImage(uploadImageRequest, HuaTaiUploadImageResponse.class, huaTaiParameters.getInsuredCode(),url);
 
             //爬虫方式进行图片上传
             huiTaiUploadImageComponent.uploadImage(orderBase.getInsuranceCompanyCode(), huaTaiUploadImageResponse.getUrl(), insuranceUploadImageVo.getImageVoList());
@@ -319,6 +329,7 @@ public class HuaTaiApiRequestImpl implements HuaTaiApiRequest {
         if (ObjectUtil.isNull(police)){
             throw new RuntimeException("请选择保单");
         }
+        String url = getApiUrl(downloadPolicyVo.getOrder().getInsuranceCompanyCode());
         DownloadPolicyResultVo resultVo = new DownloadPolicyResultVo();
         AttributionInformationVo attributionInformationVo = downloadPolicyVo.getOrder().getAttributionInformationVo();
         //配置信息
@@ -328,14 +339,14 @@ public class HuaTaiApiRequestImpl implements HuaTaiApiRequest {
         HuaTaiApiOrder huaTaiApiOrder = huaTaiApiOrderService.findByOrdersNo(downloadPolicyVo.getOrder().getOrdersNo());
         if (StringUtils.isNotBlank(police.getJqPolicyNo())){
             request.setBusinessNo(police.getJqPolicyNo());
-            HuaTaiInsurancePolicyPrintResponse response = huataiRequestApiComponent.insurancePolicyPrint(request, HuaTaiInsurancePolicyPrintResponse.class, huaTaiParameters.getInsuredCode());
+            HuaTaiInsurancePolicyPrintResponse response = huataiRequestApiComponent.insurancePolicyPrint(request, HuaTaiInsurancePolicyPrintResponse.class, huaTaiParameters.getInsuredCode(),url);
             response.getElecDownLoadResultList().forEach(elecDownLoadResultDto -> {
                 getPdfLink(elecDownLoadResultDto.getDownURL(), resultVo, true,huaTaiApiOrder.getOwnersInfo().getIdentifyNumber());
             });
         }
         if (StringUtils.isNotBlank(police.getJyPolicyNo())){
             request.setBusinessNo(police.getJyPolicyNo());
-            HuaTaiInsurancePolicyPrintResponse response = huataiRequestApiComponent.insurancePolicyPrint(request, HuaTaiInsurancePolicyPrintResponse.class, huaTaiParameters.getInsuredCode());
+            HuaTaiInsurancePolicyPrintResponse response = huataiRequestApiComponent.insurancePolicyPrint(request, HuaTaiInsurancePolicyPrintResponse.class, huaTaiParameters.getInsuredCode(),url);
             response.getElecDownLoadResultList().forEach(elecDownLoadResultDto -> {
                 resultVo.setJyUrl(elecDownLoadResultDto.getDownURL());
             });
@@ -396,6 +407,7 @@ public class HuaTaiApiRequestImpl implements HuaTaiApiRequest {
     @Override
     public OrderStatusResultVo queryOrderState(OrderStatusVo orderStatusVo) {
         OrderStatusResultVo orderStatusResultVo = new OrderStatusResultVo();
+        String url = getApiUrl(orderStatusVo.getOrder().getInsuranceCompanyCode());
         AttributionInformationVo attributionInformationVo = orderStatusVo.getOrder().getAttributionInformationVo();
         //配置信息
         HuaTaiConfigureParameters huaTaiParameters = ConfigureParametersConversion.conversionEntity(HuaTaiConfigureParameters.class, attributionInformationVo.getConfigInfo());
@@ -403,7 +415,7 @@ public class HuaTaiApiRequestImpl implements HuaTaiApiRequest {
 
         HuaTaiApiOrder huaTaiApiOrder = huaTaiApiOrderService.findByOrdersNo(orderStatusVo.getOrder().getOrdersNo());
         //获取核保状态
-        HuaTaiSubmitStatusQueryResponse submitStatusQueryResponse = submitStatus(huaTaiApiOrder, huaTaiParameters, "2");
+        HuaTaiSubmitStatusQueryResponse submitStatusQueryResponse = submitStatus(huaTaiApiOrder, huaTaiParameters, "2",url);
         /**
          * 0	初始状态默认值
          * 1	已通过核保已实收
@@ -447,7 +459,7 @@ public class HuaTaiApiRequestImpl implements HuaTaiApiRequest {
         //获取见费出单结果
         HuaTaiOrderStatusRequest orderStatusRequest = new HuaTaiOrderStatusRequest(huaTaiApiOrder, huaTaiParameters);
         orderStatusRequest.setHead(baseRequestHead);
-        HuaTaiOrderStatusResponse orderStatusResponse = huataiRequestApiComponent.orderStatus(orderStatusRequest, HuaTaiOrderStatusResponse.class, huaTaiParameters.getInsuredCode());
+        HuaTaiOrderStatusResponse orderStatusResponse = huataiRequestApiComponent.orderStatus(orderStatusRequest, HuaTaiOrderStatusResponse.class, huaTaiParameters.getInsuredCode(),url);
         log.info("见费出单结果:{}",JSONObject.toJSONString(orderStatusResponse));
         for (HuaTaiOrderStatusResponse.PayDetaiDto payDetaiDto : orderStatusResponse.getPayDetaiList()) {
             if (StringUtils.equals("1002",payDetaiDto.getRiskCode())){
@@ -472,12 +484,12 @@ public class HuaTaiApiRequestImpl implements HuaTaiApiRequest {
      * @param operateType    1为提交核保 2为查询核保状态
      * @return
      */
-    private HuaTaiSubmitStatusQueryResponse submitStatus(HuaTaiApiOrder huaTaiApiOrder, HuaTaiConfigureParameters huaTaiConfigureParameters, String operateType) {
+    private HuaTaiSubmitStatusQueryResponse submitStatus(HuaTaiApiOrder huaTaiApiOrder, HuaTaiConfigureParameters huaTaiConfigureParameters, String operateType,String url) {
         HuaTaiSubmitStatusQueryRequest huaTaiSubmitStatusQueryRequest = new HuaTaiSubmitStatusQueryRequest(huaTaiApiOrder,
                 huaTaiConfigureParameters, operateType);
         huaTaiSubmitStatusQueryRequest.setHead(new HuaTaiBaseRequestHead(huaTaiConfigureParameters));
         HuaTaiSubmitStatusQueryResponse submitStatusQueryResponse =
-                huataiRequestApiComponent.submitStatus(huaTaiSubmitStatusQueryRequest, HuaTaiSubmitStatusQueryResponse.class, huaTaiConfigureParameters.getInsuredCode());
+                huataiRequestApiComponent.submitStatus(huaTaiSubmitStatusQueryRequest, HuaTaiSubmitStatusQueryResponse.class, huaTaiConfigureParameters.getInsuredCode(),url);
         return submitStatusQueryResponse;
     }
 }

+ 6 - 0
tenant/insurance/quotation-summary/pom.xml

@@ -102,6 +102,12 @@
             <scope>compile</scope>
         </dependency>
 
+        <dependency>
+            <groupId>com.jzg</groupId>
+            <artifactId>quotation-ansheng</artifactId>
+            <version>1.0-SNAPSHOT</version>
+        </dependency>
+
         <!-- thymeleaf 模版类 -->
         <dependency>
             <groupId>org.springframework.boot</groupId>

+ 34 - 1
tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/aop/aspect/QuoteVerificationAspect.java

@@ -718,7 +718,8 @@ public class QuoteVerificationAspect {
                 InsFeeOrders::setJyCommissionPremium, InsFeeOrders::setJyFollowPremium, InsFeeOrders::setJyAdditionalPremium
         );
 
-        // 7. 计算总应收、总应付并保存
+        // 7. 计算总应收、总应付、保存费用比例 入库
+        saveRatio(insFeeOrders, agreementInfoVo, jqCostType, syCostType, jyCostType);
         calculateTotalPremium(insFeeOrders);
         insFeeOrdersService.save(insFeeOrders);
     }
@@ -829,6 +830,38 @@ public class QuoteVerificationAspect {
         insFeeOrders.setTotalPayablePremium(totalPayable);
     }
 
+    /**
+     * 保存比例
+     */
+    private void saveRatio(InsFeeOrders insFeeOrders, AgreementInfoVo agreementInfoVo,PtlAgreementCostTypeVo jqCostType,PtlAgreementCostTypeVo syCostType,PtlAgreementCostTypeVo jyCostType) {
+        // 手续费比例
+        insFeeOrders.setJqCommissionRatio(convertPercent(agreementInfoVo.getAgreement().getJqEntranceFeeRatio()));
+        insFeeOrders.setSyCommissionRatio(convertPercent(agreementInfoVo.getAgreement().getSyEntranceFeeRatio()));
+        insFeeOrders.setJyCommissionRatio(convertPercent(agreementInfoVo.getAgreement().getJyEntranceFeeRatio()));
+        // 入口比例
+        insFeeOrders.setJqInletRatio(convertPercent(jqCostType.getInlet()));
+        insFeeOrders.setSyInletRatio(convertPercent(syCostType.getInlet()));
+        insFeeOrders.setJyInletRatio(convertPercent(jyCostType.getInlet()));
+        // 跟单比例
+        insFeeOrders.setJqFollowRatio(calculateFollowRatio(jqCostType, agreementInfoVo.getAgreement().getJqEntranceFeeRatio()));
+        insFeeOrders.setSyFollowRatio(calculateFollowRatio(syCostType, agreementInfoVo.getAgreement().getSyEntranceFeeRatio()));
+        insFeeOrders.setJyFollowRatio(calculateFollowRatio(jyCostType, agreementInfoVo.getAgreement().getJyEntranceFeeRatio()));
+        // 加投比例
+        insFeeOrders.setJqAdditionalRatio(convertPercent(jqCostType.getAddThrow()));
+        insFeeOrders.setSyAdditionalRatio(convertPercent(syCostType.getAddThrow()));
+        insFeeOrders.setJyAdditionalRatio(convertPercent(jyCostType.getAddThrow()));
+        // 留点比例
+        insFeeOrders.setJqKeepPointRatio(convertPercent(jqCostType.getKeepPointRatio()));
+        insFeeOrders.setSyKeepPointRatio(convertPercent(syCostType.getKeepPointRatio()));
+        insFeeOrders.setJyKeepPointRatio(convertPercent(jyCostType.getKeepPointRatio()));
+        // 出口比例
+        insFeeOrders.setJqExportRatio(convertPercent(jqCostType.getExport()));
+        insFeeOrders.setSyExportRatio(convertPercent(syCostType.getExport()));
+        insFeeOrders.setJyExportRatio(convertPercent(jyCostType.getExport()));
+    }
+
+
+
     //    // 获取协议录入的 手续费比例 保留百分比
 //    BigDecimal jqEntranceFeeRatio = agreementInfoVo.getAgreement().getJqEntranceFeeRatio().divide(BigDecimal.valueOf(100), 10, RoundingMode.HALF_EVEN);
 //    BigDecimal syEntranceFeeRatio = agreementInfoVo.getAgreement().getSyEntranceFeeRatio().divide(BigDecimal.valueOf(100), 10, RoundingMode.HALF_EVEN);

+ 5 - 3
tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/controller/UnifyOrderManager.java

@@ -263,6 +263,7 @@ public class UnifyOrderManager {
         InsOrders insOrders = insOrdersService.getById(underwritingVo.getOrder().getOrdersNo());
         AssertionUtils.isFail(Objects.isNull(insOrders), "订单不存在");
         HttpResult<EsmInsCompany> esmInsCompanyHttpResult = platformClient.findById(insOrders.getCompanyId(), baseController.getToken());
+        underwritingVo.getOrder().setInsuranceCompanyCode(esmInsCompanyHttpResult.getData().getId());
         QuotationBaseService quoteService = companyFactory.getUnderwritingService(insOrders, esmInsCompanyHttpResult.getData()
                 .getCompanyCode(), baseController, underwritingVo);
 
@@ -338,6 +339,7 @@ public class UnifyOrderManager {
         AssertionUtils.isFail(Objects.isNull(insOrders), "订单不存在");
         InsOrdersCarInfo insOrdersCarInfo = insOrdersCarInfoService.getByOrderId(insOrders.getId());
         HttpResult<EsmInsCompany> esmInsCompanyHttpResult = platformClient.findById(insOrders.getCompanyId(), baseController.getToken());
+        paymentLinkVo.getOrder().setInsuranceCompanyCode(esmInsCompanyHttpResult.getData().getId());
         QuotationBaseService quoteService = companyFactory.getPaymentLinkService(insOrders, esmInsCompanyHttpResult.getData()
                 .getCompanyCode(), baseController, paymentLinkVo);
 
@@ -375,7 +377,7 @@ public class UnifyOrderManager {
             AssertionUtils.isFail(true, "保司未配置协议");
         }
         insuranceUploadImageVo.getOrder().setAgreementId(byCompanyId.getData().get(0).getId());
-        insuranceUploadImageVo.getOrder().setInsuranceCompanyCode(esmInsCompanyHttpResult.getData().getCompanyCode());
+        insuranceUploadImageVo.getOrder().setInsuranceCompanyCode(esmInsCompanyHttpResult.getData().getId());
         insuranceUploadImageVo.getOrder().setApiType(Integer.parseInt(insOrders.getApiType()));
         QuotationBaseService quoteService = companyFactory.getImageUploadService(insuranceUploadImageVo, baseController);
 
@@ -401,7 +403,7 @@ public class UnifyOrderManager {
         AssertionUtils.isFail(Objects.isNull(insOrders), "订单不存在");
         HttpResult<EsmInsCompany> esmInsCompanyHttpResult = platformClient.findById(insOrders.getCompanyId(), baseController.getToken());
         orderStatusVo.getOrder().setAgreementId(insOrders.getAgreementId());
-        orderStatusVo.getOrder().setInsuranceCompanyCode(esmInsCompanyHttpResult.getData().getCompanyCode());
+        orderStatusVo.getOrder().setInsuranceCompanyCode(esmInsCompanyHttpResult.getData().getId());
         orderStatusVo.getOrder().setCompanyOrderNo(insOrders.getCompanyOrderNo());
         orderStatusVo.getOrder().setApiType(Integer.parseInt(insOrders.getApiType()));
         orderStatusVo.setInsOrders(insOrders);
@@ -435,7 +437,7 @@ public class UnifyOrderManager {
         InsOrdersPdfUrl insOrdersPdfUrl = insOrdersPdfUrlService.getPdfUrlByOrderNo(insOrders.getId());
         AssertionUtils.isFail(Objects.isNull(insOrders), "订单不存在");
         downloadPolicyVo.getOrder().setApiType(Integer.parseInt(insOrders.getApiType()));
-
+        downloadPolicyVo.getOrder().setInsuranceCompanyCode(insOrders.getCompanyId());
         QuotationBaseService downloadPolicyService = companyFactory.getDownloadPolicyService(downloadPolicyVo, insOrders);
 
         //如果pdf 查不到数据 就去下载

+ 9 - 2
tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/converter/QuoteInfoConverter.java

@@ -6,9 +6,12 @@ import com.jzg.commons.entity.quote.vo.KindInfoVo;
 import com.jzg.commons.constants.quote.enums.base.QuoteRuleGroup;
 import com.jzg.commons.entity.quote.vo.QuoteVo;
 import com.jzg.quotation.summary.entity.po.QuoteRuleMapping;
+import org.checkerframework.checker.units.qual.A;
 
+import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
+import java.util.Optional;
 import java.util.stream.Collectors;
 
 /**
@@ -25,7 +28,9 @@ public class QuoteInfoConverter {
      * @param quoteRuleMappingList 报价规则映射
      */
     public static void converterCarInfoVo(QuoteVo quoteVo, List<QuoteRuleMapping> quoteRuleMappingList) {
-        Map<String, Map<String, QuoteRuleMapping>> groupCodeMap = quoteRuleMappingList.stream()
+        Map<String, Map<String, QuoteRuleMapping>> groupCodeMap = Optional.ofNullable(quoteRuleMappingList)
+                .orElse(new ArrayList<>())
+                .stream()
                 .collect(Collectors.groupingBy(QuoteRuleMapping::getGroupCode, Collectors.toMap(QuoteRuleMapping::getPlatformCode, quoteRuleMapping -> quoteRuleMapping)));
         QuoteRuleConverter quoteRuleConverter = new QuoteRuleConverter(groupCodeMap);
         vehicleInformation(quoteRuleConverter, quoteVo.getCarInfoVo());
@@ -83,7 +88,9 @@ public class QuoteInfoConverter {
 
         String groupCode = carInfoVo.getEnergyTypeCode()
                 .equals("0") ? QuoteRuleGroup.BUS_KIND.getCode() : QuoteRuleGroup.NEW_ENERGY_KIND.getCode();
-        Map<String, QuoteRuleMapping> ruleMappingMap = quoteRuleMappingList.stream()
+        Map<String, QuoteRuleMapping> ruleMappingMap = Optional.ofNullable(quoteRuleMappingList)
+                .orElse(new ArrayList<>())
+                .stream()
                 .filter(x -> x.getGroupCode().equals(groupCode))
                 .collect(Collectors.toMap(QuoteRuleMapping::getPlatformCode, x -> x));
         kindInfoVo.forEach(kind -> {

+ 32 - 1
tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/service/impl/InsFeeOrdersServiceImpl.java

@@ -6,7 +6,9 @@ import com.jzg.commons.entity.orders.po.InsOrders;
 import com.jzg.commons.entity.orders.po.InsOrdersCosts;
 import com.jzg.commons.entity.po.InsFeeOrders;
 import com.jzg.commons.entity.po.PtlAgreement;
+import com.jzg.commons.entity.vo.AgreementInfoVo;
 import com.jzg.commons.entity.vo.PtlAgreementCostRatioVo;
+import com.jzg.commons.entity.vo.PtlAgreementCostTypeVo;
 import com.jzg.quotation.commons.client.OrgClient;
 import com.jzg.quotation.summary.mapper.InsFeeOrdersMapper;
 import com.jzg.quotation.summary.service.InsFeeOrdersService;
@@ -121,7 +123,8 @@ public class InsFeeOrdersServiceImpl extends ServiceImpl<InsFeeOrdersMapper, Ins
             totalPayable = totalPayable.add(export);
         }
 
-        // 6. 设置总费用并更新
+        // 6. 设置总费用、 比例并更新
+        saveRatio(ptlAgreementCostRatioVo,insFeeOrders);
         insFeeOrders.setTotalReceivablePremium(scale(totalReceivable, SCALE));
         insFeeOrders.setTotalPayablePremium(scale(totalPayable, SCALE));
         this.updateById(insFeeOrders);
@@ -200,4 +203,32 @@ public class InsFeeOrdersServiceImpl extends ServiceImpl<InsFeeOrdersMapper, Ins
         Method setter = clazz.getMethod(setterName, BigDecimal.class);
         setter.invoke(obj, value);
     }
+
+    // 保存比例
+    private void saveRatio(PtlAgreementCostRatioVo ptlAgreementCostRatioVo, InsFeeOrders insFeeOrders) {
+        // 手续费比例
+        insFeeOrders.setJqCommissionRatio(covertPercent(ptlAgreementCostRatioVo.getJqCommissionRatio()));
+        insFeeOrders.setSyCommissionRatio(covertPercent(ptlAgreementCostRatioVo.getSyCommissionRatio()));
+        insFeeOrders.setJyCommissionRatio(covertPercent(ptlAgreementCostRatioVo.getJyCommissionRatio()));
+        // 入口比例
+        insFeeOrders.setJqInletRatio(covertPercent(ptlAgreementCostRatioVo.getJqInletRatio()));
+        insFeeOrders.setSyInletRatio(covertPercent(ptlAgreementCostRatioVo.getSyInletRatio()));
+        insFeeOrders.setJyInletRatio(covertPercent(ptlAgreementCostRatioVo.getJyInletRatio()));
+        // 跟单比例
+        insFeeOrders.setJqFollowRatio(insFeeOrders.getJqInletRatio().subtract(insFeeOrders.getJqCommissionRatio()));
+        insFeeOrders.setSyFollowRatio(insFeeOrders.getSyInletRatio().subtract(insFeeOrders.getSyCommissionRatio()));
+        insFeeOrders.setJyFollowRatio(insFeeOrders.getJyInletRatio().subtract(insFeeOrders.getJyCommissionRatio()));
+        // 加投比例
+        insFeeOrders.setJqAdditionalRatio(covertPercent(ptlAgreementCostRatioVo.getJqAdditionalRatio()));
+        insFeeOrders.setSyAdditionalRatio(covertPercent(ptlAgreementCostRatioVo.getJqAdditionalRatio()));
+        insFeeOrders.setJyAdditionalRatio(covertPercent(ptlAgreementCostRatioVo.getJqAdditionalRatio()));
+        // 留点比例
+        insFeeOrders.setJqKeepPointRatio(covertPercent(ptlAgreementCostRatioVo.getJqKeepPointRatio()));
+        insFeeOrders.setSyKeepPointRatio(covertPercent(ptlAgreementCostRatioVo.getSyKeepPointRatio()));
+        insFeeOrders.setJyKeepPointRatio(covertPercent(ptlAgreementCostRatioVo.getJyKeepPointRatio()));
+        // 出口比例
+        insFeeOrders.setJqExportRatio(covertPercent(ptlAgreementCostRatioVo.getJqExportRatio()));
+        insFeeOrders.setSyExportRatio(covertPercent(ptlAgreementCostRatioVo.getSyExportRatio()));
+        insFeeOrders.setJyExportRatio(covertPercent(ptlAgreementCostRatioVo.getJyExportRatio()));
+    }
 }

+ 1 - 1
tenant/insurance/quotation-summary/src/test/java/com/jzg/quotation/taikang/crawler/service/TKQuotationBaseServiceImplTest.java

@@ -37,7 +37,7 @@ public class TKQuotationBaseServiceImplTest {
         Map<String, String> collect = huaNongCrawlerLoginResponse.getLoginCom()
                 .stream()
                 .collect(Collectors.toMap(HuaNongCrawlerLoginResponse.LoginComDTO::getComName, HuaNongCrawlerLoginResponse.LoginComDTO::getComCode));
-        collect.put("TOKEN", "sin90jhRos20250710084716071oftipHcI");
+        collect.put("TOKEN", "sin3Tp9zos20250711181216724oft71e0o");
         collect.put("USER_CODE", userCode);
         collect.put("USER_NAME", userName);
         RMap<String, String> bucket = redissonClient.getMap("hunong:crawler:authorization:14001105");

+ 15 - 16
tenant/insurance/quotation-yangguang/src/main/java/com/jzg/quotation/yangguang/api/componet/YangGuangApiRequestComponent.java

@@ -41,9 +41,8 @@ public class YangGuangApiRequestComponent {
         this.restTemplate = restTemplate;
     }
 
-    private <Q extends YangGuangBaseRequest, S extends YangGuangBaseResponse> S post(Q q, Class<S> tClass,String type) throws JsonProcessingException {
+    private <Q extends YangGuangBaseRequest, S extends YangGuangBaseResponse> S post(Q q, Class<S> tClass,String type,String url) throws JsonProcessingException {
         // 发送请求
-        String url = yangGuangApiProperties.getUrl();
         String encryptRequestBody = yangGuangEncryption.encryptRequestBody
                 (q, yangGuangApiProperties.getKey());
         String request = JSON.toJSONString(q);
@@ -126,36 +125,36 @@ public class YangGuangApiRequestComponent {
     /**
      * 查询车型
      */
-    public YangGuangQueryVehicleModelResponse queryVehicleModel(YangGuangQueryVehicleModelRequest yangGuangQueryVehicleModel) throws JsonProcessingException {
-        return post(yangGuangQueryVehicleModel, YangGuangQueryVehicleModelResponse.class, "查询车型");
+    public YangGuangQueryVehicleModelResponse queryVehicleModel(YangGuangQueryVehicleModelRequest yangGuangQueryVehicleModel,String url) throws JsonProcessingException {
+        return post(yangGuangQueryVehicleModel, YangGuangQueryVehicleModelResponse.class, "查询车型", url);
     }
 
     /**
      *  报价
      */
-    public YangGuangAccuracyCalculateResponse accuracyCalculaye(YangGuangAccuracyCalculateRequest yangGuangAccuracyCalculateRequest) throws JsonProcessingException {
-        return post(yangGuangAccuracyCalculateRequest, YangGuangAccuracyCalculateResponse.class,"报价");
+    public YangGuangAccuracyCalculateResponse accuracyCalculaye(YangGuangAccuracyCalculateRequest yangGuangAccuracyCalculateRequest,String url) throws JsonProcessingException {
+        return post(yangGuangAccuracyCalculateRequest, YangGuangAccuracyCalculateResponse.class,"报价",url);
     }
 
     /**
      * 投保单提交
      */
-    public YangGuangSubmitResponse submit(YangGuangSubmitRequest yangGuangSubmitRequest) throws JsonProcessingException {
-        return post(yangGuangSubmitRequest, YangGuangSubmitResponse.class, "投保单提交");
+    public YangGuangSubmitResponse submit(YangGuangSubmitRequest yangGuangSubmitRequest, String url) throws JsonProcessingException {
+        return post(yangGuangSubmitRequest, YangGuangSubmitResponse.class, "投保单提交", url);
     }
 
     /**
      *  投保单状态查询
      */
-    public YangGuangProposalStatusQueryResponse proposalStatusQuery(YangGuangProposalStatusQueryRequest yangGuangProposalStatusQueryRequest) throws JsonProcessingException {
-        return post(yangGuangProposalStatusQueryRequest, YangGuangProposalStatusQueryResponse.class,"投保单状态查询");
+    public YangGuangProposalStatusQueryResponse proposalStatusQuery(YangGuangProposalStatusQueryRequest yangGuangProposalStatusQueryRequest, String url) throws JsonProcessingException {
+        return post(yangGuangProposalStatusQueryRequest, YangGuangProposalStatusQueryResponse.class,"投保单状态查询", url);
     }
 
     /**
      * 线上支付
      */
-    public YangGuangPaymentResponse payment(YangGuangPaymentRequest yangGuangPaymentRequest) throws JsonProcessingException {
-        return post(yangGuangPaymentRequest, YangGuangPaymentResponse.class,"获取支付链接");
+    public YangGuangPaymentResponse payment(YangGuangPaymentRequest yangGuangPaymentRequest, String url) throws JsonProcessingException {
+        return post(yangGuangPaymentRequest, YangGuangPaymentResponse.class,"获取支付链接", url);
     }
 
 //    /**
@@ -168,15 +167,15 @@ public class YangGuangApiRequestComponent {
     /**
      *  获取驾意险套餐列表
      */
-    public YangGuangGetNonVehicleProductsResponse getNonVehicleProducts(YangGuangGetNonVehicleProductsRequest yangGuangGetNonVehicleProductsRequest) throws JsonProcessingException {
-        return post(yangGuangGetNonVehicleProductsRequest, YangGuangGetNonVehicleProductsResponse.class,"获取非车套餐列表");
+    public YangGuangGetNonVehicleProductsResponse getNonVehicleProducts(YangGuangGetNonVehicleProductsRequest yangGuangGetNonVehicleProductsRequest, String url) throws JsonProcessingException {
+        return post(yangGuangGetNonVehicleProductsRequest, YangGuangGetNonVehicleProductsResponse.class,"获取非车套餐列表", url);
     }
 
     /**
      *  获取电子保单下载地址
      */
-    public YangGuangGetEpolicyPdfUrlResponse getEpolicyPDFURL(YangGuangGetEpolicyPdfUrlRequest yangGuangGetEpolicyPdfUrlRequest) throws JsonProcessingException {
-        return post(yangGuangGetEpolicyPdfUrlRequest, YangGuangGetEpolicyPdfUrlResponse.class, "获取电子保单下载地址");
+    public YangGuangGetEpolicyPdfUrlResponse getEpolicyPDFURL(YangGuangGetEpolicyPdfUrlRequest yangGuangGetEpolicyPdfUrlRequest, String url) throws JsonProcessingException {
+        return post(yangGuangGetEpolicyPdfUrlRequest, YangGuangGetEpolicyPdfUrlResponse.class, "获取电子保单下载地址", url);
     }
 //
 //    /**

+ 31 - 15
tenant/insurance/quotation-yangguang/src/main/java/com/jzg/quotation/yangguang/api/service/impl/YangGuangApiRequestImpl.java

@@ -3,12 +3,16 @@ package com.jzg.quotation.yangguang.api.service.impl;
 import com.fasterxml.jackson.core.JsonProcessingException;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.jzg.commons.constants.dict.InsOrderStatusEnum;
+import com.jzg.commons.core.page.HttpResult;
+import com.jzg.commons.entity.agreement.po.PtlAgreementUrl;
 import com.jzg.commons.entity.quote.vo.AttributionInformationVo;
 import com.jzg.commons.entity.quote.vo.CarInfoVo;
 import com.jzg.commons.entity.quote.vo.QuoteVo;
 import com.jzg.commons.entity.quote.vo.aggregated.*;
 import com.jzg.commons.exception.SystemException;
 import com.jzg.quotation.commons.annotation.QuoteApiService;
+import com.jzg.quotation.commons.client.OrgClient;
+import com.jzg.quotation.commons.client.PlatformClient;
 import com.jzg.quotation.commons.constant.InsuranceCode;
 import com.jzg.commons.entity.quote.vo.base.OrderBase;
 import com.jzg.commons.entity.quote.vo.image.InsuranceImageVo;
@@ -48,11 +52,18 @@ public class YangGuangApiRequestImpl implements YangGuangApiRequest {
 
     private final YangGuangApiProperties yangGuangApiProperties;
 
-    private String apiUrl;
+    private final PlatformClient platformClient;
+
+    public String getApiUrl(String companyId) {
+        // 获取保司配置url地址
+        HttpResult<PtlAgreementUrl> ptlAgreementUrl = platformClient.getAgreementUrlByCompanyId(companyId);
+        return ptlAgreementUrl.getData().getUrl();
+    }
     @Override
     public QuoteResultsVo quote(QuoteVo quoteVo) throws JsonProcessingException {
         OrderBase order = quoteVo.getOrder();
         AttributionInformationVo attributionInformationVo = order.getAttributionInformationVo();
+        String url = getApiUrl(order.getInsuranceCompanyCode());
         // 配置信息
         YangGuangConfigureParameters parameters = ConfigureParametersConversion.conversionEntity(YangGuangConfigureParameters.class, attributionInformationVo.getConfigInfo());
         // 查询车型
@@ -61,23 +72,23 @@ public class YangGuangApiRequestImpl implements YangGuangApiRequest {
             carInfoVo.setBrandName(carInfoVo.getBrandName().replace("牌", ""));
         }
         YangGuangQueryVehicleModelRequest yangGuangQueryVehicleModelRequest = new YangGuangQueryVehicleModelRequest(carInfoVo, parameters);
-        YangGuangQueryVehicleModelResponse yangGuangQueryVehicleModelResponse = yangGuangApiRequestComponent.queryVehicleModel(yangGuangQueryVehicleModelRequest);
+        YangGuangQueryVehicleModelResponse yangGuangQueryVehicleModelResponse = yangGuangApiRequestComponent.queryVehicleModel(yangGuangQueryVehicleModelRequest, url);
         // 过滤车型
         YangGuangQueryVehicleModelResponse.carmodellist carModel =
                 CarModelsFilterUtils.to(yangGuangQueryVehicleModelResponse.getCarmodellist(), quoteVo.getCarInfoVo());
         // 报价
         YangGuangAccuracyCalculateRequest yangGuangAccuracyCalculateRequest = new YangGuangAccuracyCalculateRequest(quoteVo, carModel, parameters);
         yangGuangAccuracyCalculateRequest.setInfotransNo(yangGuangQueryVehicleModelResponse.getInfotransNo());
-        return recursiveQuote(yangGuangAccuracyCalculateRequest, carModel, yangGuangQueryVehicleModelResponse,quoteVo, parameters);
+        return recursiveQuote(yangGuangAccuracyCalculateRequest, carModel, yangGuangQueryVehicleModelResponse,quoteVo, parameters, url);
     }
     // 递归报价
     private QuoteResultsVo recursiveQuote(YangGuangAccuracyCalculateRequest request,
                                           YangGuangQueryVehicleModelResponse.carmodellist carModel,
                                           YangGuangQueryVehicleModelResponse yangGuangQueryVehicleModelResponse,
                                           QuoteVo quoteVo,
-                                          YangGuangConfigureParameters parameters) throws JsonProcessingException {
+                                          YangGuangConfigureParameters parameters,String url) throws JsonProcessingException {
 
-        YangGuangAccuracyCalculateResponse response = yangGuangApiRequestComponent.accuracyCalculaye(request);
+        YangGuangAccuracyCalculateResponse response = yangGuangApiRequestComponent.accuracyCalculaye(request,url);
         if (!response.getErrorCode().equals("0")) {
             String endDate = extractEndDate(response);
             // 交强重复投保处理
@@ -89,7 +100,7 @@ public class YangGuangApiRequestImpl implements YangGuangApiRequest {
                 quoteVo.getCiRiskInfoVo().setStartDate(newDateStr);
                 YangGuangAccuracyCalculateRequest newRequest = new YangGuangAccuracyCalculateRequest(quoteVo, carModel,parameters);
                 newRequest.setInfotransNo(yangGuangQueryVehicleModelResponse.getInfotransNo());
-                return recursiveQuote(newRequest, carModel, yangGuangQueryVehicleModelResponse,quoteVo, parameters);
+                return recursiveQuote(newRequest, carModel, yangGuangQueryVehicleModelResponse,quoteVo, parameters, url);
             }
             return handleFailedQuote(response, quoteVo);
         } else {
@@ -106,7 +117,7 @@ public class YangGuangApiRequestImpl implements YangGuangApiRequest {
                     quoteVo.getBiRiskInfoVo().setStartDate(biStartTime.format(outputFormatter));
                     YangGuangAccuracyCalculateRequest newRequest = new YangGuangAccuracyCalculateRequest(quoteVo, carModel,parameters);
                     newRequest.setInfotransNo(yangGuangQueryVehicleModelResponse.getInfotransNo());
-                    return recursiveQuote(newRequest, carModel, yangGuangQueryVehicleModelResponse,quoteVo, parameters);
+                    return recursiveQuote(newRequest, carModel, yangGuangQueryVehicleModelResponse,quoteVo, parameters, url);
                 }
             }
             return handleSuccessfulQuote(response, quoteVo);
@@ -147,6 +158,7 @@ public class YangGuangApiRequestImpl implements YangGuangApiRequest {
     @Override
     public UnderwritingResultsVo underwriting(UnderwritingVo underwritingVo) throws JsonProcessingException {
         OrderBase orderBase = underwritingVo.getOrder();
+        String url = getApiUrl(orderBase.getInsuranceCompanyCode());
         YangGuangApiOrder yangGuangApiOrder = yangGuangApiOrderService.getById(orderBase.getOrdersNo());
         // 账号配置信息
         YangGuangConfigureParameters parameters = ConfigureParametersConversion.conversionEntity(YangGuangConfigureParameters.class, orderBase
@@ -154,7 +166,7 @@ public class YangGuangApiRequestImpl implements YangGuangApiRequest {
                 .getConfigInfo());
         // 根据订单号获取车辆信息
         YangGuangSubmitRequest yangGuangSubmitRequest = new YangGuangSubmitRequest(underwritingVo,parameters,yangGuangApiOrder);
-        YangGuangSubmitResponse yangGuangSubmitResponse = yangGuangApiRequestComponent.submit(yangGuangSubmitRequest);
+        YangGuangSubmitResponse yangGuangSubmitResponse = yangGuangApiRequestComponent.submit(yangGuangSubmitRequest,url);
         UnderwritingResultsVo underwritingResultsVo = new UnderwritingResultsVo();
         if (yangGuangSubmitResponse.getErrorCode().equals("0")) {
             // 如果有驾意险 获取驾意险投保单号
@@ -213,8 +225,10 @@ public class YangGuangApiRequestImpl implements YangGuangApiRequest {
         YangGuangConfigureParameters parameters = ConfigureParametersConversion.conversionEntity(YangGuangConfigureParameters.class, paymentLinkVo.getOrder()
                 .getAttributionInformationVo()
                 .getConfigInfo());
+
+        String url = getApiUrl(paymentLinkVo.getOrder().getInsuranceCompanyCode());
         YangGuangPaymentRequest yangGuangPaymentRequest = new YangGuangPaymentRequest(paymentLinkVo,parameters,yangGuangApiProperties.getPayCallBack());
-        YangGuangPaymentResponse yangGuangPaymentResponse = yangGuangApiRequestComponent.payment(yangGuangPaymentRequest);
+        YangGuangPaymentResponse yangGuangPaymentResponse = yangGuangApiRequestComponent.payment(yangGuangPaymentRequest,url);
         PaymentLinkResultsVo resultsVo = new PaymentLinkResultsVo();
         if (yangGuangPaymentResponse.getErrorCode().equals("0")) {
             resultsVo.setPaymentLink(yangGuangPaymentResponse.getPayUrl());
@@ -255,15 +269,15 @@ public class YangGuangApiRequestImpl implements YangGuangApiRequest {
         DownloadPolicyResultVo downloadPolicyResultVo = new DownloadPolicyResultVo();
         String jqPolicyNo = downloadPolicyVo.getPolicie().getJqPolicyNo();
         if(Objects.nonNull(jqPolicyNo)) {
-            queryPolicy(jqPolicyNo, parameters, downloadPolicyResultVo,PolicyType.JQ);
+            queryPolicy(jqPolicyNo, parameters, downloadPolicyResultVo,PolicyType.JQ, orderBase);
         }
         String syPolicyNo = downloadPolicyVo.getPolicie().getSyPolicyNo();
         if(Objects.nonNull(syPolicyNo)) {
-            queryPolicy(syPolicyNo, parameters, downloadPolicyResultVo,PolicyType.SY);
+            queryPolicy(syPolicyNo, parameters, downloadPolicyResultVo,PolicyType.SY,orderBase);
         }
         String jyPolicyNo = downloadPolicyVo.getPolicie().getJyPolicyNo();
         if(Objects.nonNull(jyPolicyNo)) {
-            queryPolicy(jyPolicyNo, parameters, downloadPolicyResultVo,PolicyType.JY);
+            queryPolicy(jyPolicyNo, parameters, downloadPolicyResultVo,PolicyType.JY,orderBase);
         }
         return downloadPolicyResultVo;
     }
@@ -274,10 +288,11 @@ public class YangGuangApiRequestImpl implements YangGuangApiRequest {
      * @param parameters
      * @param downloadPolicyResultVo
      */
-    private void queryPolicy(String policyNo,YangGuangConfigureParameters parameters,DownloadPolicyResultVo downloadPolicyResultVo,PolicyType policyType){
+    private void queryPolicy(String policyNo,YangGuangConfigureParameters parameters,DownloadPolicyResultVo downloadPolicyResultVo,PolicyType policyType,OrderBase orderBase){
         YangGuangGetEpolicyPdfUrlRequest downloadPolicyRequest = new YangGuangGetEpolicyPdfUrlRequest(parameters, policyNo);
         try {
-            YangGuangGetEpolicyPdfUrlResponse response = yangGuangApiRequestComponent.getEpolicyPDFURL(downloadPolicyRequest);
+            String apiUrl = getApiUrl(orderBase.getInsuranceCompanyCode());
+            YangGuangGetEpolicyPdfUrlResponse response = yangGuangApiRequestComponent.getEpolicyPDFURL(downloadPolicyRequest,apiUrl);
             if (response.getErrorCode().equals("0")) {
                 if (StringUtils.isNotEmpty(response.getEPolicyPDFURL())) {
                     String url = response.getEPolicyPDFURL();
@@ -310,12 +325,13 @@ public class YangGuangApiRequestImpl implements YangGuangApiRequest {
     public OrderStatusResultVo queryOrderState(OrderStatusVo orderStatusVo) throws JsonProcessingException {
         OrderBase orderBase = orderStatusVo.getOrder();
         OrderStatusResultVo orderStatusResultVo = new OrderStatusResultVo();
+        String apiUrl = getApiUrl(orderBase.getInsuranceCompanyCode());
         // 账号配置信息
         YangGuangConfigureParameters parameters = ConfigureParametersConversion.conversionEntity(YangGuangConfigureParameters.class, orderBase
                 .getAttributionInformationVo()
                 .getConfigInfo());
         YangGuangProposalStatusQueryRequest yangGuangProposalStatusQueryRequest = new YangGuangProposalStatusQueryRequest(orderStatusVo.getInsOrdersPolicy(), parameters);
-        YangGuangProposalStatusQueryResponse yangGuangProposalStatusQueryResponse = yangGuangApiRequestComponent.proposalStatusQuery(yangGuangProposalStatusQueryRequest);
+        YangGuangProposalStatusQueryResponse yangGuangProposalStatusQueryResponse = yangGuangApiRequestComponent.proposalStatusQuery(yangGuangProposalStatusQueryRequest,apiUrl);
         if (yangGuangProposalStatusQueryResponse.getErrorCode().equals("0")) {
             String statusSy = yangGuangProposalStatusQueryResponse.getBiUnderWriteFlag();
             String statusJq = yangGuangProposalStatusQueryResponse.getCiUnderWriteFlag();

+ 20 - 21
tenant/insurance/quotation-yongcheng/src/main/java/com/jzg/quotation/yongcheng/api/components/YcRequestApiComponents.java

@@ -49,8 +49,8 @@ public class YcRequestApiComponents {
      * @param <S>    Response 响应体
      * @return <S>
      */
-    private <Q, S> S post(Q q, RequestUrl requestUrl, Class<S> tClass) throws JsonProcessingException {
-        String url = apiComponents.getUrl() + requestUrl.getUri();
+    private <Q, S> S post(Q q, RequestUrl requestUrl, Class<S> tClass,String apiUrl) throws JsonProcessingException {
+        String url = apiUrl + requestUrl.getUri();
 
         WebClient webClient = WebClient.builder()
                 .baseUrl(url)
@@ -86,9 +86,8 @@ public class YcRequestApiComponents {
         return bean;
     }
 
-    private <Q, S> S post1(Q q, RequestUrl requestUrl, Class<S> tClass) throws JsonProcessingException {
-        String url = apiComponents.getUrl() + requestUrl.getUri();
-
+    private <Q, S> S post1(Q q, RequestUrl requestUrl, Class<S> tClass,String apiUrl) throws JsonProcessingException {
+        String url = apiUrl + requestUrl.getUri();
         WebClient webClient = WebClient.builder()
                 .baseUrl(url)
                 .defaultHeader("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36")
@@ -132,8 +131,8 @@ public class YcRequestApiComponents {
      * @param modelsQueryRequest 车型查询 入参实体
      * @return 出参实体
      */
-    public ModelsQueryResponse newQueryVehicleTypes(ModelsQueryRequest modelsQueryRequest) throws JsonProcessingException {
-        return post(modelsQueryRequest, RequestUrl.API_MODEL, ModelsQueryResponse.class);
+    public ModelsQueryResponse newQueryVehicleTypes(ModelsQueryRequest modelsQueryRequest,String apiUrl) throws JsonProcessingException {
+        return post(modelsQueryRequest, RequestUrl.API_MODEL, ModelsQueryResponse.class, apiUrl);
     }
 
     /**
@@ -142,8 +141,8 @@ public class YcRequestApiComponents {
      * @param quoteRequest 报价 入参实体
      * @return 出参实体
      */
-    public QuoteResponse newPremiumXnyCalculation(QuoteRequest quoteRequest) throws JsonProcessingException {
-        return post(quoteRequest, RequestUrl.API_QUOTE, QuoteResponse.class);
+    public QuoteResponse newPremiumXnyCalculation(QuoteRequest quoteRequest,String apiUrl) throws JsonProcessingException {
+        return post(quoteRequest, RequestUrl.API_QUOTE, QuoteResponse.class, apiUrl);
     }
 
     /**
@@ -152,8 +151,8 @@ public class YcRequestApiComponents {
      * @param auditRequest 核保 入参实体
      * @return 出参实体
      */
-    public AuditResponse newXnyUnderwritingService(AuditRequest auditRequest) throws JsonProcessingException {
-        return post(auditRequest, RequestUrl.API_AUDIT, AuditResponse.class);
+    public AuditResponse newXnyUnderwritingService(AuditRequest auditRequest,String apiUrl) throws JsonProcessingException {
+        return post(auditRequest, RequestUrl.API_AUDIT, AuditResponse.class, apiUrl);
     }
 
     /**
@@ -162,8 +161,8 @@ public class YcRequestApiComponents {
      * @param audit 核保 入参实体
      * @return 出参实体
      */
-    public ImageResponse newImageUp(ImageRequest audit) throws JsonProcessingException {
-        return post(audit, RequestUrl.API_UPLOAD, ImageResponse.class);
+    public ImageResponse newImageUp(ImageRequest audit,String apiUrl) throws JsonProcessingException {
+        return post(audit, RequestUrl.API_UPLOAD, ImageResponse.class, apiUrl);
     }
 
 
@@ -173,8 +172,8 @@ public class YcRequestApiComponents {
      * @param pay 支付链接 入参实体
      * @return 出参实体
      */
-    public PayResponse newGetPayNo(PayRequest pay) throws JsonProcessingException {
-        return post(pay, RequestUrl.API_PAY, PayResponse.class);
+    public PayResponse newGetPayNo(PayRequest pay,String apiUrl) throws JsonProcessingException {
+        return post(pay, RequestUrl.API_PAY, PayResponse.class, apiUrl);
     }
 //
 //
@@ -204,8 +203,8 @@ public class YcRequestApiComponents {
      * @param callbackAnOrder 补传回调及订单信息查询接口 入参实体
      * @return 出参实体
      */
-    public String payCallback(CallbackRequest callbackRequest) throws JsonProcessingException {
-        return post(callbackRequest, RequestUrl.API_ORDER_QUERY, String.class);
+    public String payCallback(CallbackRequest callbackRequest,String apiUrl) throws JsonProcessingException {
+        return post(callbackRequest, RequestUrl.API_ORDER_QUERY, String.class, apiUrl);
     }
 //
 //    /**
@@ -225,8 +224,8 @@ public class YcRequestApiComponents {
      * @param downloadPolicyRequest 电子保单 入参实体
      * @return 出参实体
      */
-    public DownloadPolicyResponse dzbdWeb(DownloadPolicyRequest downloadPolicyRequest) throws JsonProcessingException {
-        return post(downloadPolicyRequest, RequestUrl.API_GUARANTEE_SLIP, DownloadPolicyResponse.class);
+    public DownloadPolicyResponse dzbdWeb(DownloadPolicyRequest downloadPolicyRequest,String apiUrl) throws JsonProcessingException {
+        return post(downloadPolicyRequest, RequestUrl.API_GUARANTEE_SLIP, DownloadPolicyResponse.class, apiUrl);
     }
 
     /**
@@ -235,7 +234,7 @@ public class YcRequestApiComponents {
      * @param priceDiscountRatioRequest 获取协商价折扣比例 入参实体
      * @return 出参实体
      */
-    public PriceDiscountRatioResponse priceDiscount(PriceDiscountRatioRequest priceDiscountRatioRequest) throws JsonProcessingException {
-        return post1(priceDiscountRatioRequest, RequestUrl.API_PRICE_DISCOUNT_RATIO, PriceDiscountRatioResponse.class);
+    public PriceDiscountRatioResponse priceDiscount(PriceDiscountRatioRequest priceDiscountRatioRequest,String apiUrl) throws JsonProcessingException {
+        return post1(priceDiscountRatioRequest, RequestUrl.API_PRICE_DISCOUNT_RATIO, PriceDiscountRatioResponse.class, apiUrl);
     }
 }

+ 1 - 1
tenant/insurance/quotation-yongcheng/src/main/java/com/jzg/quotation/yongcheng/api/service/YongChengApiRequest.java

@@ -7,5 +7,5 @@ import com.jzg.quotation.yongcheng.api.properties.YcApiConfigurationProperties;
 
 public interface YongChengApiRequest extends QuotationApiBaseService {
 
-    public ModelsQueryResponse.VehicleInfo gainVehicleModel(YcApiConfigurationProperties ycConfigureParameters, CarInfoVo carInfo);
+    public ModelsQueryResponse.VehicleInfo gainVehicleModel(YcApiConfigurationProperties ycConfigureParameters, CarInfoVo carInfo,String url);
 }

+ 38 - 25
tenant/insurance/quotation-yongcheng/src/main/java/com/jzg/quotation/yongcheng/api/service/impl/YongChengApiRequestImpl.java

@@ -4,12 +4,14 @@ import cn.hutool.core.collection.CollUtil;
 import com.fasterxml.jackson.core.JsonProcessingException;
 import com.jzg.commons.constants.dict.InsOrderStatusEnum;
 import com.jzg.commons.core.page.HttpResult;
+import com.jzg.commons.entity.agreement.po.PtlAgreementUrl;
 import com.jzg.commons.entity.quote.vo.*;
 import com.jzg.commons.entity.quote.vo.aggregated.*;
 import com.jzg.commons.entity.vo.PersonAreaVo;
 import com.jzg.commons.exception.SystemException;
 import com.jzg.quotation.commons.annotation.QuoteApiService;
 import com.jzg.quotation.commons.client.OrgClient;
+import com.jzg.quotation.commons.client.PlatformClient;
 import com.jzg.quotation.commons.constant.InsuranceCode;
 import com.jzg.commons.entity.quote.vo.base.OrderBase;
 import com.jzg.commons.entity.quote.vo.image.InsuranceImageVo;
@@ -61,6 +63,15 @@ public class YongChengApiRequestImpl implements YongChengApiRequest {
     @Autowired
     private VerificationCodeIdentification verificationCodeIdentification;
 
+    @Autowired
+    private PlatformClient platformClient;
+
+    public String getApiUrl(String companyId) {
+        // 获取保司配置url地址
+        HttpResult<PtlAgreementUrl> ptlAgreementUrl = platformClient.getAgreementUrlByCompanyId(companyId);
+        return ptlAgreementUrl.getData().getUrl();
+    }
+
     /**
      * 车型获取
      * @param ycConfigureParameters
@@ -68,13 +79,13 @@ public class YongChengApiRequestImpl implements YongChengApiRequest {
      * @return
      */
     @Override
-    public ModelsQueryResponse.VehicleInfo gainVehicleModel(YcApiConfigurationProperties ycConfigureParameters, CarInfoVo carInfo) {
+    public ModelsQueryResponse.VehicleInfo gainVehicleModel(YcApiConfigurationProperties ycConfigureParameters, CarInfoVo carInfo, String url) {
 
         ModelsQueryRequest m = new ModelsQueryRequest(carInfo, ycConfigureParameters);
         ModelsQueryResponse rd;
 
         try {
-            rd = ycRequestApiComponents.newQueryVehicleTypes(m);
+            rd = ycRequestApiComponents.newQueryVehicleTypes(m, url);
         } catch (IOException e) {
             throw new SystemException("车型查询接口异常,请联系管理。");
         }
@@ -83,7 +94,7 @@ public class YongChengApiRequestImpl implements YongChengApiRequest {
         if (CollUtil.isEmpty(rd.getVehicleInfoList())) {
             try {
                 m.getRequestLabel().setSearchKeyword(carInfo.getBrandName());
-                rd = ycRequestApiComponents.newQueryVehicleTypes(m);
+                rd = ycRequestApiComponents.newQueryVehicleTypes(m, url);
             } catch (IOException e) {
                 throw new SystemException("车型查询接口异常,请联系管理。");
             }
@@ -120,10 +131,10 @@ public class YongChengApiRequestImpl implements YongChengApiRequest {
     public QuoteResultsVo quote(QuoteVo quoteVo) throws JsonProcessingException {
         OrderBase order = quoteVo.getOrder();
         AttributionInformationVo attributionInformationVo = order.getAttributionInformationVo();
-
+        String url = getApiUrl(order.getInsuranceCompanyCode());
         //1.车型获取
         YcApiConfigurationProperties configurationProperties = ConfigureParametersConversion.conversionEntity(YcApiConfigurationProperties.class, attributionInformationVo.getConfigInfo());
-        ModelsQueryResponse.VehicleInfo vehicleInfo = gainVehicleModel(configurationProperties, quoteVo.getCarInfoVo());
+        ModelsQueryResponse.VehicleInfo vehicleInfo = gainVehicleModel(configurationProperties, quoteVo.getCarInfoVo(),url);
 
         //2.协商价折扣比例
         BigDecimal depreciationPrice = null;
@@ -137,7 +148,7 @@ public class YongChengApiRequestImpl implements YongChengApiRequest {
                 quoteVo.getCarInfoVo(),
                 quoteVo.getKindInfoVo(),
                 getAttachStartDate(quoteVo));
-        PriceDiscountRatioResponse priceDiscountRatioResponse = ycRequestApiComponents.priceDiscount(priceDiscountRatioRequest);
+        PriceDiscountRatioResponse priceDiscountRatioResponse = ycRequestApiComponents.priceDiscount(priceDiscountRatioRequest,url);
         BigDecimal negotiatedPrice = null;
         try {
             negotiatedPrice = getNegotiatedPrice(priceDiscountRatioResponse,depreciationPrice);
@@ -149,7 +160,7 @@ public class YongChengApiRequestImpl implements YongChengApiRequest {
         List<String> requestInfoList = new ArrayList<>();
 
         QuoteRequest quoteRequest = this.builderParams(configurationProperties, quoteVo, vehicleInfo, negotiatedPrice.toString());
-        QuoteResponse quoteResponse = this.getResponse(quoteRequest,quoteVo, requestInfoList);
+        QuoteResponse quoteResponse = this.getResponse(quoteRequest,quoteVo, requestInfoList,url);
 
         QuoteResultsVo quoteResultsVo = buildQuoteRespVo(order.getOrdersNo(), quoteResponse, quoteVo);
 
@@ -185,9 +196,9 @@ public class YongChengApiRequestImpl implements YongChengApiRequest {
         UnderwritingResultsVo underwritingResultsVo = new UnderwritingResultsVo();
         //组装参数
         AuditRequest m = AuditRequest.buildAuditParam(underwritingVo);
-
+        String url = getApiUrl(underwritingVo.getOrder().getInsuranceCompanyCode());
         try {
-            AuditResponse auditResponse = ycRequestApiComponents.newXnyUnderwritingService(m);
+            AuditResponse auditResponse = ycRequestApiComponents.newXnyUnderwritingService(m,url);
             if (auditResponse.getResponseHead().getReturnCode().equals("0000")) {
                 String statusJq = auditResponse.getStatusJq();
                 String statusSy = auditResponse.getStatusSY();
@@ -236,13 +247,14 @@ public class YongChengApiRequestImpl implements YongChengApiRequest {
     @Override
     public PaymentLinkResultsVo getPaymentLink(PaymentLinkVo paymentLinkVo) {
         try {
+            String url = getApiUrl(paymentLinkVo.getOrder().getInsuranceCompanyCode());
             PaymentLinkResultsVo paymentLinkResultsVo = new PaymentLinkResultsVo();
             paymentLinkResultsVo.setPayLinkStatus(false);
             YcApiConfigurationProperties configurationProperties = ConfigureParametersConversion.conversionEntity(YcApiConfigurationProperties.class, paymentLinkVo.getOrder().getAttributionInformationVo().getConfigInfo());
             //组装参数
             PayRequest pay = PayRequest.buildPayParam(paymentLinkVo.getOrder(), configurationProperties.gainAuthorityDataXml(), "");
             //接口请求
-            PayResponse payResp = ycRequestApiComponents.newGetPayNo(pay);
+            PayResponse payResp = ycRequestApiComponents.newGetPayNo(pay,url);
 
             if (MessageStatusCode.E0000.getCode().equals(payResp.getReturnCode())) {
                 paymentLinkResultsVo.setPayLinkStatus(true);
@@ -260,7 +272,7 @@ public class YongChengApiRequestImpl implements YongChengApiRequest {
 
     @Override
     public void uploadImage(InsuranceUploadImageVo insuranceUploadImageVo) {
-
+        String url = getApiUrl(insuranceUploadImageVo.getOrder().getInsuranceCompanyCode());
         YcApiConfigurationProperties configurationProperties = ConfigureParametersConversion.conversionEntity(YcApiConfigurationProperties.class, insuranceUploadImageVo.getOrder().getAttributionInformationVo().getConfigInfo());
         //获取协议配置信息
         HashMap<String, String> map = new HashMap<>();
@@ -269,7 +281,7 @@ public class YongChengApiRequestImpl implements YongChengApiRequest {
             for (InsuranceImageVo.ImageDTO imageDTO : imageVo.getImageBase64List()){
                 ImageRequest iUp = ImageRequest.buildImageUpParam(insuranceUploadImageVo.getCarInfo(), configurationProperties, imageDTO.getImageBase64Str(), imageVo.getImageCode());
                 try {
-                    ycRequestApiComponents.newImageUp(iUp);
+                    ycRequestApiComponents.newImageUp(iUp,url);
                     map.put(imageVo.getImageType(), imageDTO.getImageId());
                 } catch (Exception e) {
                     String picTureName = iUp.getNewImgUpLoadInfoRequest().getRequestBase().getPicTureName();
@@ -286,18 +298,18 @@ public class YongChengApiRequestImpl implements YongChengApiRequest {
         DownloadPolicyResultVo downloadPolicyResultVo = new DownloadPolicyResultVo();
         // 获取协议配置信息
         YcApiConfigurationProperties configurationProperties = ConfigureParametersConversion.conversionEntity(YcApiConfigurationProperties.class, downloadPolicyVo.getOrder().getAttributionInformationVo().getConfigInfo());
-
+        String url = getApiUrl(downloadPolicyVo.getOrder().getInsuranceCompanyCode());
         String jqPolicyNo = downloadPolicyVo.getPolicie().getJqPolicyNo();
         if(Objects.nonNull(jqPolicyNo)) {
-            queryPolicy(jqPolicyNo, configurationProperties, downloadPolicyResultVo);
+            queryPolicy(jqPolicyNo, configurationProperties, downloadPolicyResultVo, url);
         }
         String syPolicyNo = downloadPolicyVo.getPolicie().getSyPolicyNo();
         if(Objects.nonNull(syPolicyNo)) {
-            queryPolicy(syPolicyNo, configurationProperties, downloadPolicyResultVo);
+            queryPolicy(syPolicyNo, configurationProperties, downloadPolicyResultVo, url);
         }
         String jyPolicyNo = downloadPolicyVo.getPolicie().getJyPolicyNo();
         if(Objects.nonNull(jyPolicyNo)) {
-            queryPolicy(jyPolicyNo, configurationProperties, downloadPolicyResultVo);
+            queryPolicy(jyPolicyNo, configurationProperties, downloadPolicyResultVo, url);
         }
 
         return downloadPolicyResultVo;
@@ -309,10 +321,10 @@ public class YongChengApiRequestImpl implements YongChengApiRequest {
      * @param configurationProperties
      * @param downloadPolicyResultVo
      */
-    private void queryPolicy(String policyNo,YcApiConfigurationProperties configurationProperties,DownloadPolicyResultVo downloadPolicyResultVo){
+    private void queryPolicy(String policyNo,YcApiConfigurationProperties configurationProperties,DownloadPolicyResultVo downloadPolicyResultVo,String url){
         DownloadPolicyRequest downloadPolicyRequest = DownloadPolicyRequest.buildPolicyParam(policyNo, configurationProperties.gainAuthorityDataXml());
         try {
-            DownloadPolicyResponse pResp = ycRequestApiComponents.dzbdWeb(downloadPolicyRequest);
+            DownloadPolicyResponse pResp = ycRequestApiComponents.dzbdWeb(downloadPolicyRequest, url);
             if (MessageStatusCode.E0000.getCode().equals(pResp.getHead().getResponseCompleteMessageStatus().getMessageStatusCode())) {
 
                 //标志
@@ -351,12 +363,13 @@ public class YongChengApiRequestImpl implements YongChengApiRequest {
     @Override
     public OrderStatusResultVo queryOrderState(OrderStatusVo orderStatusVo) {
         OrderStatusResultVo orderStatusResultVo = new OrderStatusResultVo();
+        String url = getApiUrl(orderStatusVo.getOrder().getInsuranceCompanyCode());
         YcApiConfigurationProperties configurationProperties = ConfigureParametersConversion.conversionEntity(YcApiConfigurationProperties.class, orderStatusVo.getOrder().getAttributionInformationVo().getConfigInfo());
         //0 支付回调 1核保回调 5直接返回字符串信息
         String type = "5";
         CallbackRequest callbackRequest = CallbackRequest.buildCallbackAnOrderParam(orderStatusVo.getInsOrders().getCompanyOrderNo(), configurationProperties.gainAuthorityDataXml(), type);
         try{
-            String cleanStr = ycRequestApiComponents.payCallback(callbackRequest);
+            String cleanStr = ycRequestApiComponents.payCallback(callbackRequest,url);
             CallBackResponse response = CallBackResponse.buildCallBackParam(cleanStr);
             if (response.getResult().equals("0")) {
                 // 刷新支付连接
@@ -517,8 +530,8 @@ public class YongChengApiRequestImpl implements YongChengApiRequest {
         return kindInfoVos;
     }
 
-    private QuoteResponse getResponse(QuoteRequest quoteRequest, QuoteVo quoteVo, List<String> requestInfoList) throws JsonProcessingException {
-         QuoteResponse quoteResponse = ycRequestApiComponents.newPremiumXnyCalculation(quoteRequest);
+    private QuoteResponse getResponse(QuoteRequest quoteRequest, QuoteVo quoteVo, List<String> requestInfoList, String url) throws JsonProcessingException {
+         QuoteResponse quoteResponse = ycRequestApiComponents.newPremiumXnyCalculation(quoteRequest,url);
         //存储 报价返回的查询码  交强和商业
         if (quoteResponse.getVhl() != null) {
             if (quoteResponse.getVhl().getCQryCdeJQ() != null) {
@@ -577,7 +590,7 @@ public class YongChengApiRequestImpl implements YongChengApiRequest {
             String sy = commerceRepetitionInsure(quoteResponse, quoteRequest, requestInfoList, appSYFlag);
 
             if (!jq.isEmpty() || !sy.isEmpty()) {
-                return this.getResponse(quoteRequest,quoteVo, requestInfoList);
+                return this.getResponse(quoteRequest,quoteVo, requestInfoList,url);
             }
 
         }
@@ -587,19 +600,19 @@ public class YongChengApiRequestImpl implements YongChengApiRequest {
         //2、转保处理
         boo = reinsurance(quoteResponse, quoteRequest);
         if (!boo) {
-            return this.getResponse(quoteRequest,quoteVo, requestInfoList);
+            return this.getResponse(quoteRequest,quoteVo, requestInfoList,url);
         }
 
         //3、商业险日期处理
         boo = biRepetitionInsure(quoteResponse, quoteRequest, requestInfoList);
         if (!boo) {
-            return this.getResponse(quoteRequest,quoteVo, requestInfoList);
+            return this.getResponse(quoteRequest,quoteVo, requestInfoList,url);
         }
 
         // 转保验证码
         boo = reinsuranceCodeError(quoteResponse, quoteRequest);
         if (!boo) {
-            return this.getResponse(quoteRequest,quoteVo, requestInfoList);
+            return this.getResponse(quoteRequest,quoteVo, requestInfoList,url);
         }
         return quoteResponse;
     }

+ 22 - 22
tenant/insurance/quotation-zhongmei/src/main/java/com/jzg/quotation/zhongmei/api/component/ZmApiRequestComponent.java

@@ -101,8 +101,8 @@ public class ZmApiRequestComponent {
      * @param <S> Response 响应体
      *            常规
      */
-    private <Q extends BaseRequest, S extends BaseResponse> S routineRequest(Q request, Class<S> tClass, boolean verify, String urlInterface) {
-        return request(request, tClass, verify, zmApiProperties.getUrl(), urlInterface);
+    private <Q extends BaseRequest, S extends BaseResponse> S routineRequest(Q request, Class<S> tClass, boolean verify, String urlInterface,String url) {
+        return request(request, tClass, verify, url, urlInterface);
     }
 
     /**
@@ -110,8 +110,8 @@ public class ZmApiRequestComponent {
      * @param <S> Response 响应体
      *            影像
      */
-    private <Q extends BaseRequest, S extends BaseResponse> S imageRequest(Q request, Class<S> tClass, boolean verify) {
-        return request(request, tClass, verify, zmApiProperties.getUrl(), "");
+    private <Q extends BaseRequest, S extends BaseResponse> S imageRequest(Q request, Class<S> tClass, boolean verify,String url) {
+        return request(request, tClass, verify, url, "");
     }
 
     /**
@@ -127,53 +127,53 @@ public class ZmApiRequestComponent {
     /**
      * 车型查询 传入必要车辆信息,返回车型列表给用户选择
      */
-    public List<ModelsQueryResponse.SimpleStadarCarDTO> modelQuery(ModelsQueryRequest request, Class<ModelsQueryResponse> tClass) {
-        return routineRequest(request, tClass, true, "").getSimpleStadarCar();
+    public List<ModelsQueryResponse.SimpleStadarCarDTO> modelQuery(ModelsQueryRequest request, Class<ModelsQueryResponse> tClass,String url) {
+        return routineRequest(request, tClass, true, "", url).getSimpleStadarCar();
     }
 
     /**
      * 报价 传入必要投保方案信息,返回投保单保费及车船税
      */
-    public QuotedPriceResponse quotedPrice(QuotedPriceRequest request, Class<QuotedPriceResponse> tClass) {
-        return routineRequest(request, tClass, true, "");
+    public QuotedPriceResponse quotedPrice(QuotedPriceRequest request, Class<QuotedPriceResponse> tClass,String url) {
+        return routineRequest(request, tClass, true, "",url);
     }
 
     /**
      * 提交核保 传入投保单必要信息,对投保单进行审核
      */
-    public SubmitResponse submit(SubmitRequest request, Class<SubmitResponse> tClass) {
+    public SubmitResponse submit(SubmitRequest request, Class<SubmitResponse> tClass,String url) {
         request.setCallbackUrl(zmApiProperties.getCallbackDomain() + zmApiProperties.getCallbackUrl());
         request.setPageUrl(zmApiProperties.getPageUrl());
         request.setPassMsgUrl(zmApiProperties.getCallbackDomain() + zmApiProperties.getPassMsgUrl());
-        return routineRequest(request, tClass, false, "");
+        return routineRequest(request, tClass, false, "",url);
     }
 
     /**
      * 核保撤回
      */
-    public void underwritingWithdraw(UnderwritingWithdrawRequest request, Class<UnderwritingWithdrawResponse> tClass) {
-        routineRequest(request, tClass, true, "");
+    public void underwritingWithdraw(UnderwritingWithdrawRequest request, Class<UnderwritingWithdrawResponse> tClass,String url) {
+        routineRequest(request, tClass, true, "",url);
     }
 
     /**
      * 上传影像 传入订单信息,查询是否生成保单成功
      */
-    public UploadImageResponse uploadImage(UploadImageRequest request, Class<UploadImageResponse> tClass) {
-        return imageRequest(request, tClass, true);
+    public UploadImageResponse uploadImage(UploadImageRequest request, Class<UploadImageResponse> tClass,String url) {
+        return imageRequest(request, tClass, true, url);
     }
 
     /**
      * 缴费查询
      */
-    public OrderStatusResponse orderStatus(OrderStatusRequest request, Class<OrderStatusResponse> tClass) {
-        return routineRequest(request, tClass, true, "");
+    public OrderStatusResponse orderStatus(OrderStatusRequest request, Class<OrderStatusResponse> tClass,String url) {
+        return routineRequest(request, tClass, true, "", url);
     }
 
     /**
      * 核保状态查询 传入单号查询该单核保状态
      */
-    public SubmitStatusQueryResponse submitStatus(SubmitStatusQueryRequest request, Class<SubmitStatusQueryResponse> tClass) {
-        return routineRequest(request, tClass, true, TransCode.SUBMIT_STATUS);
+    public SubmitStatusQueryResponse submitStatus(SubmitStatusQueryRequest request, Class<SubmitStatusQueryResponse> tClass,String url) {
+        return routineRequest(request, tClass, true, TransCode.SUBMIT_STATUS, url);
     }
 
     /**
@@ -182,15 +182,15 @@ public class ZmApiRequestComponent {
      * @param tClass
      * @return
      */
-    public RideAccidentQueryResponse rideAccidentQuery(RideAccidentQueryRequest request, Class<RideAccidentQueryResponse> tClass) {
-        return routineRequest(request, tClass, true, TransCode.Ride_Accident_Query);
+    public RideAccidentQueryResponse rideAccidentQuery(RideAccidentQueryRequest request, Class<RideAccidentQueryResponse> tClass,String url) {
+        return routineRequest(request, tClass, true, TransCode.Ride_Accident_Query, url);
     }
 
     /**
      * 电子保单下载 传入单号相关信息下载电子保单
      */
-    public InsurancePolicyPrintResponse insurancePolicyPrint(InsurancePolicyPrintRequest request, Class<InsurancePolicyPrintResponse> tClass) {
-        return routineRequest(request, tClass, true, "");
+    public InsurancePolicyPrintResponse insurancePolicyPrint(InsurancePolicyPrintRequest request, Class<InsurancePolicyPrintResponse> tClass,String url) {
+        return routineRequest(request, tClass, true, "", url);
     }
 
     /**

+ 34 - 17
tenant/insurance/quotation-zhongmei/src/main/java/com/jzg/quotation/zhongmei/api/service/impl/ZhongMeiApiRequestImpl.java

@@ -4,12 +4,15 @@ package com.jzg.quotation.zhongmei.api.service.impl;
 import cn.hutool.core.util.ArrayUtil;
 import com.fasterxml.jackson.core.JsonProcessingException;
 import com.jzg.commons.constants.dict.InsOrderStatusEnum;
+import com.jzg.commons.core.page.HttpResult;
+import com.jzg.commons.entity.agreement.po.PtlAgreementUrl;
 import com.jzg.commons.entity.orders.po.InsOrdersCarInfo;
 import com.jzg.commons.entity.quote.vo.*;
 import com.jzg.commons.entity.quote.vo.aggregated.*;
 import com.jzg.commons.exception.SystemException;
 import com.jzg.commons.util.StringUtils;
 import com.jzg.quotation.commons.annotation.QuoteApiService;
+import com.jzg.quotation.commons.client.PlatformClient;
 import com.jzg.quotation.commons.constant.InsuranceCode;
 import com.jzg.commons.constants.quote.enums.base.InsuranceEnum;
 import com.jzg.commons.entity.quote.vo.base.OrderBase;
@@ -44,10 +47,19 @@ public class ZhongMeiApiRequestImpl implements ZhongMeiApiRequest {
 
     private final ZhongmeiApiOrderService zhongmeiApiOrderService;
 
+    private final PlatformClient platformClient;
+
+    public String getApiUrl(String companyId) {
+        // 获取保司配置url地址
+        HttpResult<PtlAgreementUrl> ptlAgreementUrl = platformClient.getAgreementUrlByCompanyId(companyId);
+        return ptlAgreementUrl.getData().getUrl();
+    }
+
     @Override
     public QuoteResultsVo quote(QuoteVo quoteVo) {
         OrderBase order = quoteVo.getOrder();
         AttributionInformationVo attributionInformationVo = order.getAttributionInformationVo();
+        String url = getApiUrl(order.getInsuranceCompanyCode());
         //配置信息
         ZmApiConfigureParameters parameters = ConfigureParametersConversion.conversionEntity(ZmApiConfigureParameters.class, attributionInformationVo.getConfigInfo());
         BaseRequestHead baseRequestHead = new BaseRequestHead(parameters);
@@ -55,7 +67,7 @@ public class ZhongMeiApiRequestImpl implements ZhongMeiApiRequest {
         CarInfoVo carInfoVo = quoteVo.getCarInfoVo();
         ModelsQueryRequest modelsQueryRequest = new ModelsQueryRequest(carInfoVo);
         modelsQueryRequest.setHead(baseRequestHead);
-        List<ModelsQueryResponse.SimpleStadarCarDTO> SimpleStadarCarDTOs = zmApiRequestComponent.modelQuery(modelsQueryRequest, ModelsQueryResponse.class);
+        List<ModelsQueryResponse.SimpleStadarCarDTO> SimpleStadarCarDTOs = zmApiRequestComponent.modelQuery(modelsQueryRequest, ModelsQueryResponse.class,url);
         //过滤车型
         ModelsQueryResponse.SimpleStadarCarDTO simpleStadarCarDTO = CarModelsFilterUtils.to(SimpleStadarCarDTOs, quoteVo.getCarInfoVo());
         //座位数根据前端传入的赋值
@@ -65,13 +77,13 @@ public class ZhongMeiApiRequestImpl implements ZhongMeiApiRequest {
         }
         RideAccidentQueryRequest rideAccidentQueryRequest = new RideAccidentQueryRequest(parameters, carInfoVo, quoteVo.getInsuredPersonInfo());
         rideAccidentQueryRequest.setHead(baseRequestHead);
-        RideAccidentQueryResponse rideAccidentQueryResponse = zmApiRequestComponent.rideAccidentQuery(rideAccidentQueryRequest, RideAccidentQueryResponse.class);
+        RideAccidentQueryResponse rideAccidentQueryResponse = zmApiRequestComponent.rideAccidentQuery(rideAccidentQueryRequest, RideAccidentQueryResponse.class,url);
         // 处理意外险数据
         AccidentalDrivingVo accidentalDrivingVo = quoteVo.getAccidentalDrivings().get(0);
         // 报价
         QuotedPriceRequest quotedPriceRequest = new QuotedPriceRequest(quoteVo, simpleStadarCarDTO, accidentalDrivingVo, parameters);
         quotedPriceRequest.setHead(baseRequestHead);
-        QuotedPriceResponse quotedPriceResponse = zmApiRequestComponent.quotedPrice(quotedPriceRequest, QuotedPriceResponse.class);
+        QuotedPriceResponse quotedPriceResponse = zmApiRequestComponent.quotedPrice(quotedPriceRequest, QuotedPriceResponse.class,url);
         // 重复投保处理
         if ("-1".equals(quotedPriceResponse.getHead().getReturnCode())) {
             boolean repeatFlag = false;
@@ -82,7 +94,7 @@ public class ZhongMeiApiRequestImpl implements ZhongMeiApiRequest {
                 repeatFlag = true;
             }
             if (repeatFlag) {
-                quotedPriceResponse = dealRepeatDate(quotedPriceRequest, quotedPriceResponse, quoteVo);
+                quotedPriceResponse = dealRepeatDate(quotedPriceRequest, quotedPriceResponse, quoteVo,url);
             }
         }
         QuotedPriceResponse.InsuranceSchemeDTO insuranceScheme = quotedPriceResponse.getInsuranceScheme();
@@ -102,7 +114,7 @@ public class ZhongMeiApiRequestImpl implements ZhongMeiApiRequest {
 
     // 重复投保交强险处理
     public QuotedPriceResponse dealRepeatDate(QuotedPriceRequest quotedPriceRequest, QuotedPriceResponse quotedPriceResponse,
-                                              QuoteVo quoteInfo) {
+                                              QuoteVo quoteInfo,String url) {
         String rtnMsgBz = "";
         String rtnMsgBusi = "";
         // 交强险
@@ -173,7 +185,7 @@ public class ZhongMeiApiRequestImpl implements ZhongMeiApiRequest {
                 return quotedPriceResponse;
             }
         }
-        return zmApiRequestComponent.quotedPrice(quotedPriceRequest, QuotedPriceResponse.class);
+        return zmApiRequestComponent.quotedPrice(quotedPriceRequest, QuotedPriceResponse.class,url);
     }
 
     private QuotedPriceRequest.ContractDTO.ContractMainDTO getPeriodDate(String startDate,
@@ -201,6 +213,7 @@ public class ZhongMeiApiRequestImpl implements ZhongMeiApiRequest {
     @Transactional
     public UnderwritingResultsVo underwriting(UnderwritingVo underwritingVo) {
         OrderBase orderBase = underwritingVo.getOrder();
+        String url = getApiUrl(orderBase.getInsuranceCompanyCode());
         //获取配置信息
         ZmApiConfigureParameters parameters = ConfigureParametersConversion.conversionEntity(ZmApiConfigureParameters.class, orderBase.getAttributionInformationVo().getConfigInfo());
 
@@ -219,7 +232,7 @@ public class ZhongMeiApiRequestImpl implements ZhongMeiApiRequest {
                 parameters.getCity(),
                 // 县
                 parameters.getDistrict(), policyHolderInfo.getAddr());
-        SubmitResponse submitResponse = zmApiRequestComponent.submit(submitRequest, SubmitResponse.class);
+        SubmitResponse submitResponse = zmApiRequestComponent.submit(submitRequest, SubmitResponse.class,url);
         UnderwritingResultsVo underwritingResultsVo = new UnderwritingResultsVo();
         if (submitResponse.getHead().getReturnCode().equals("0")) {
             // 交强商业投保单号
@@ -260,6 +273,7 @@ public class ZhongMeiApiRequestImpl implements ZhongMeiApiRequest {
     @Override
     public PaymentLinkResultsVo getPaymentLink(PaymentLinkVo paymentLinkVo) throws JsonProcessingException {
         OrderBase orderBase = paymentLinkVo.getOrder();
+        String url = getApiUrl(orderBase.getInsuranceCompanyCode());
         ZmApiOrder zmApiOrder = zhongmeiApiOrderService.findByOrdersNo(orderBase.getOrdersNo());
         String payUrl = zmApiOrder.getPayUrl();
         //如果mongodb中没有支付链接,说明是人工审核,需要调用核保状态查询接口
@@ -271,7 +285,7 @@ public class ZhongMeiApiRequestImpl implements ZhongMeiApiRequest {
             submitStatusQueryRequest.setProposalNo(zmApiOrder.getBussinessNo());
             submitStatusQueryRequest.setHead(new BaseRequestHead(parameters));
 
-            SubmitStatusQueryResponse submitStatusQueryResponse = zmApiRequestComponent.submitStatus(submitStatusQueryRequest, SubmitStatusQueryResponse.class);
+            SubmitStatusQueryResponse submitStatusQueryResponse = zmApiRequestComponent.submitStatus(submitStatusQueryRequest, SubmitStatusQueryResponse.class,url);
             payUrl = StringUtils.isEmpty(submitStatusQueryResponse.getPayUrl()) ? submitStatusQueryResponse.getUnderWriteInd() : submitStatusQueryResponse.getPayUrl();
         }
         PaymentLinkResultsVo paymentLinkResultsVo = new PaymentLinkResultsVo();
@@ -284,6 +298,7 @@ public class ZhongMeiApiRequestImpl implements ZhongMeiApiRequest {
     @Override
     public void uploadImage(InsuranceUploadImageVo insuranceUploadImageVo) {
         OrderBase orderBase = insuranceUploadImageVo.getOrder();
+        String url = getApiUrl(orderBase.getInsuranceCompanyCode());
         //获取配置信息
         AttributionInformationVo attributionInformationVo = orderBase.getAttributionInformationVo();
         ZmApiConfigureParameters parameters = ConfigureParametersConversion.conversionEntity(ZmApiConfigureParameters.class, attributionInformationVo.getConfigInfo());
@@ -296,7 +311,7 @@ public class ZhongMeiApiRequestImpl implements ZhongMeiApiRequest {
         UploadImageRequest uploadImageRequest = new UploadImageRequest(insuranceUploadImageVo.getImageVoList(), bussinessNo);
         BaseRequestHead baseRequestHead = new BaseRequestHead(parameters);
         uploadImageRequest.setHead(baseRequestHead);
-        UploadImageResponse uploadImageResponse = zmApiRequestComponent.uploadImage(uploadImageRequest, UploadImageResponse.class);
+        UploadImageResponse uploadImageResponse = zmApiRequestComponent.uploadImage(uploadImageRequest, UploadImageResponse.class,url);
         //获取返回数据
         BaseResponseHead head = uploadImageResponse.getHead();
     }
@@ -305,6 +320,7 @@ public class ZhongMeiApiRequestImpl implements ZhongMeiApiRequest {
     public DownloadPolicyResultVo downloadPolicy(DownloadPolicyVo downloadPolicyVo) {
         //获取配置信息
         OrderBase orderBase = downloadPolicyVo.getOrder();
+        String url = getApiUrl(orderBase.getInsuranceCompanyCode());
         AttributionInformationVo attributionInformationVo = orderBase.getAttributionInformationVo();
         ZmApiConfigureParameters parameters = ConfigureParametersConversion.conversionEntity(ZmApiConfigureParameters.class, attributionInformationVo.getConfigInfo());
         DownloadPolicyResultVo downloadPolicyResultVo = new DownloadPolicyResultVo();
@@ -317,26 +333,26 @@ public class ZhongMeiApiRequestImpl implements ZhongMeiApiRequest {
         }
         String jqPolicyNo = downloadPolicyVo.getPolicie().getJqPolicyNo();
         if (Objects.nonNull(jqPolicyNo)) {
-            queryPolicy(jqPolicyNo, parameters,"0330",PolicyType.JQ,"2",downloadPolicyResultVo);
-            queryPolicy(jqPolicyNo, parameters,"0330",PolicyType.BZ,"1",downloadPolicyResultVo);
+            queryPolicy(jqPolicyNo, parameters,"0330",PolicyType.JQ,"2",downloadPolicyResultVo,url);
+            queryPolicy(jqPolicyNo, parameters,"0330",PolicyType.BZ,"1",downloadPolicyResultVo,url);
         }
         String syPolicyNo = downloadPolicyVo.getPolicie().getSyPolicyNo();
         if (Objects.nonNull(syPolicyNo)) {
-            queryPolicy(syPolicyNo, parameters,riskCode,PolicyType.SY,"2",downloadPolicyResultVo);
+            queryPolicy(syPolicyNo, parameters,riskCode,PolicyType.SY,"2",downloadPolicyResultVo,url);
         }
         String jyPolicyNo = downloadPolicyVo.getPolicie().getJyPolicyNo();
         if (Objects.nonNull(jyPolicyNo)) {
-            queryPolicy(jyPolicyNo, parameters,riskCode,PolicyType.JY,"2",downloadPolicyResultVo);
+            queryPolicy(jyPolicyNo, parameters,riskCode,PolicyType.JY,"2",downloadPolicyResultVo,url);
         }
         return downloadPolicyResultVo;
     }
 
-    private void queryPolicy(String policyNo,ZmApiConfigureParameters zmApiConfigureParameters,String riskCode,PolicyType policyType,String type,DownloadPolicyResultVo downloadPolicyResultVo) {
+    private void queryPolicy(String policyNo,ZmApiConfigureParameters zmApiConfigureParameters,String riskCode,PolicyType policyType,String type,DownloadPolicyResultVo downloadPolicyResultVo, String apiUrl) {
         BaseRequestHead baseRequestHead = new BaseRequestHead(zmApiConfigureParameters);
         InsurancePolicyPrintRequest insurancePolicyPrintRequest = new InsurancePolicyPrintRequest(policyNo,riskCode,type);
         insurancePolicyPrintRequest.setHead(baseRequestHead);
         // 需设置参数 保单号,险种编码,业务类型,单证类型
-        InsurancePolicyPrintResponse printResponse = zmApiRequestComponent.insurancePolicyPrint(insurancePolicyPrintRequest, InsurancePolicyPrintResponse.class);
+        InsurancePolicyPrintResponse printResponse = zmApiRequestComponent.insurancePolicyPrint(insurancePolicyPrintRequest, InsurancePolicyPrintResponse.class,apiUrl);
         if ("0".equals(printResponse.getHead().getReturnCode())) {
             if (ArrayUtil.isNotEmpty(printResponse.getDownloadUrl())) {
                 String url = printResponse.getDownloadUrl().get(0);
@@ -368,6 +384,7 @@ public class ZhongMeiApiRequestImpl implements ZhongMeiApiRequest {
     public OrderStatusResultVo queryOrderState(OrderStatusVo orderStatusVo) {
         //获取配置信息
         OrderBase orderBase = orderStatusVo.getOrder();
+        String url = getApiUrl(orderBase.getInsuranceCompanyCode());
         OrderStatusResultVo orderStatusResultVo = new OrderStatusResultVo();
 
         AttributionInformationVo attributionInformationVo = orderBase.getAttributionInformationVo();
@@ -383,7 +400,7 @@ public class ZhongMeiApiRequestImpl implements ZhongMeiApiRequest {
         submitStatusQueryRequest.setHead(new BaseRequestHead(parameters));
 
         SubmitStatusQueryResponse submitStatusQueryResponse = zmApiRequestComponent.submitStatus(submitStatusQueryRequest,
-                SubmitStatusQueryResponse.class);
+                SubmitStatusQueryResponse.class,url);
         if (submitStatusQueryResponse.getHead().getReturnCode().equals("0")) {
             String underWriteInd = submitStatusQueryResponse.getUnderWriteInd();
             if ("核保通过".equals(underWriteInd) || "自动核保".equals(underWriteInd)) {
@@ -401,7 +418,7 @@ public class ZhongMeiApiRequestImpl implements ZhongMeiApiRequest {
         OrderStatusRequest orderStatusRequest = new OrderStatusRequest();
         orderStatusRequest.setBusinessNo(bussinessNo);
         orderStatusRequest.setHead(new BaseRequestHead(parameters));
-        OrderStatusResponse orderStatusResponse = zmApiRequestComponent.orderStatus(orderStatusRequest, OrderStatusResponse.class);
+        OrderStatusResponse orderStatusResponse = zmApiRequestComponent.orderStatus(orderStatusRequest, OrderStatusResponse.class,url);
         if (orderStatusResponse.getHead().getReturnCode().equals("0")) {
             // 缴费成功 返回保单号
             if (orderStatusResponse.getStatus().equals("2") && orderStatusResponse.getBusinessType().equals("P")) {

+ 16 - 2
tenant/organization/src/main/java/com/jzg/organization/service/impl/SysUserJzgInfoBankCardServiceImpl.java

@@ -5,9 +5,12 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.jzg.commons.core.base.BaseController;
 import com.jzg.commons.core.page.HttpResult;
 import com.jzg.commons.entity.dto.SysUserJzgInfoBankCardDto;
+import com.jzg.commons.entity.po.SysUploadFiles;
 import com.jzg.commons.entity.po.SysUserJzgInfoBankCard;
 import com.jzg.commons.entity.vo.SysUserJzgInfoBankCardVo;
 import com.jzg.commons.exception.SystemException;
+import com.jzg.commons.util.MinioUtils;
+import com.jzg.organization.mapper.SysUploadFilesMapper;
 import com.jzg.organization.mapper.SysUserJzgInfoBankCardMapper;
 import com.jzg.organization.service.SysUserJzgInfoBankCardService;
 import jakarta.annotation.Resource;
@@ -28,6 +31,10 @@ public class SysUserJzgInfoBankCardServiceImpl extends ServiceImpl<SysUserJzgInf
 
     @Resource
     private BaseController baseController;
+
+    @Resource
+    private SysUploadFilesMapper sysUploadFilesMapper;
+
     @Override
     public List<SysUserJzgInfoBankCardDto> getBankCardByUserId(String userInfoId, String systemCode) {
         return sysUserJzgInfoBankCardMapper.getBankCardByUserId(userInfoId,systemCode);
@@ -35,8 +42,15 @@ public class SysUserJzgInfoBankCardServiceImpl extends ServiceImpl<SysUserJzgInf
 
     @Override
     public Page<SysUserJzgInfoBankCardDto> getBankCardPageList(Page page, SysUserJzgInfoBankCardVo sysUserJzgInfoBankCardVo) {
-        Page<SysUserJzgInfoBankCardDto> sysVersionPage = sysUserJzgInfoBankCardMapper.getBankCardPageList(page, sysUserJzgInfoBankCardVo);
-        return sysVersionPage;
+        Page<SysUserJzgInfoBankCardDto> pageList = sysUserJzgInfoBankCardMapper.getBankCardPageList(page, sysUserJzgInfoBankCardVo);
+        pageList.getRecords().forEach(sysUserJzgInfoBankCardDto -> {
+            if (sysUserJzgInfoBankCardDto.getFileId() != null) {
+                String cardFileId = sysUserJzgInfoBankCardDto.getFileId();
+                SysUploadFiles sysUploadFiles = sysUploadFilesMapper.selectById(cardFileId);
+                sysUserJzgInfoBankCardDto.setCardFileUrl(MinioUtils.getPresignedObjectUrl("jzg",sysUploadFiles.getFileName()));
+            }
+        });
+        return pageList;
     }
 
     @Override

+ 10 - 17
tenant/organization/src/main/resources/application.yml

@@ -65,30 +65,23 @@ tenant:
     - dept_tree
     - dept_path
     - ptl_agreement_cost_type
-    - ptl_agreement
+    - ins_orders
+    - ins_fee_orders
+    - ins_orders_costs
+    - ins_orders_car_info
+    - ins_orders_policy
+
 
   ignoreLoginNames:
 
 data-scope:
   tables:
-#    - sys_system
-#    - sys_user
-#    - sys_user_role
-#    - sys_organization_user_link
-#    - sys_area
-#    - sys_poster
-#    - sys_message_notice
-#    - sys_upload_files
-#    - sys_notice_user
-#    - ins_business_insurance
-#    - ins_business_insurance_option
-#    - ptl_scheme_insurance_driving_intention
-#    - ptl_scheme_info
-#    - ptl_scheme
-#    - sys_activity
-#    - sys_user_jzg_info_salesman
     - sys_user_jzg_info
 
+  ignoreFunction:
+    - getAuditedOrder
+
+
 logging:
   level:
     org.springframework.statemachine: DEBUG

+ 3 - 2
tenant/organization/src/main/resources/mapper/SysUserJzgInfoBankCardMapper.xml

@@ -48,6 +48,7 @@
         left join sys_system ss on ss.sys_code = sujibc.system_code
         where
         1=1
+            and sujibc.is_delete = '0'
         <if test="sysUserJzgInfoBankCardVo.salesman != null and sysUserJzgInfoBankCardVo.salesman != ''">
             and suji.name = #{sysUserJzgInfoBankCardVo.salesman}
             or su.mobile = #{sysUserJzgInfoBankCardVo.salesman}
@@ -59,12 +60,12 @@
             and DATE_FORMAT(sujibc.apply_time, '%Y-%m-%d') between #{sysUserJzgInfoBankCardVo.applyTimeStart} AND #{sysUserJzgInfoBankCardVo.applyTimeEnd}
         </if>
         <if test="sysUserJzgInfoBankCardVo.auditTimeStart != null and sysUserJzgInfoBankCardVo.auditTimeEnd == null">
-            and DATE_FORMAT(sujibc.apply_time, '%Y-%m-%d') >= #{sysUserJzgInfoBankCardVo.applyTimeStart}
+            and DATE_FORMAT(sujibc.audit_time, '%Y-%m-%d') between #{sysUserJzgInfoBankCardVo.auditTimeStart} AND #{sysUserJzgInfoBankCardVo.auditTimeEnd}
         </if>
         <if test="sysUserJzgInfoBankCardVo.auditBy != null and sysUserJzgInfoBankCardVo.auditBy != ''">
             and sujibc.audit_by = #{sysUserJzgInfoBankCardVo.auditBy}
         </if>
-        <if test="sysUserJzgInfoBankCardVo.auditStatus == null and sysUserJzgInfoBankCardVo.auditStatus != ‘’">
+        <if test="sysUserJzgInfoBankCardVo.auditStatus != null and sysUserJzgInfoBankCardVo.auditStatus != ''">
             and sujibc.audit_status = #{sysUserJzgInfoBankCardVo.auditStatus}
         </if>
     </select>