Qchen 1 год назад
Родитель
Сommit
00eabbffbb
24 измененных файлов с 305 добавлено и 99 удалено
  1. 9 0
      commons/src/main/java/com/jzg/commons/constants/InsuranceRisk.java
  2. 21 0
      commons/src/main/java/com/jzg/commons/entity/orders/po/InsOrdersClause.java
  3. 4 0
      commons/src/main/java/com/jzg/commons/entity/quote/vo/QuoteVo.java
  4. 15 0
      commons/src/main/java/com/jzg/commons/entity/quote/vo/aggregated/QuoteEchoVo.java
  5. 4 1
      commons/src/main/java/com/jzg/commons/entity/quote/vo/aggregated/QuoteResultsVo.java
  6. 3 0
      commons/src/main/java/com/jzg/commons/entity/vo/CompanyClauseVo.java
  7. 6 4
      platform/src/main/java/com/jzg/controller/ClauseController.java
  8. 6 6
      tenant/insurance/quotation-bohai/src/main/java/com/jzg/quotation/bohai/api/service/impl/BoHaiApiRequestImpl.java
  9. 6 6
      tenant/insurance/quotation-chengtai/src/main/java/com/jzg/quotation/chengtai/api/service/impl/ChengTaiApiRequestImpl.java
  10. 8 0
      tenant/insurance/quotation-commons/src/main/java/com/jzg/quotation/commons/client/PlatformClient.java
  11. 6 6
      tenant/insurance/quotation-dajia/src/main/java/com/jzg/quotation/dajia/api/service/impl/DaJiaApiRequestImpl.java
  12. 6 4
      tenant/insurance/quotation-guoren/src/main/java/com/jzg/quotation/guoren/api/entity/vo/GuoRenSpecialAgreementVo.java
  13. 41 34
      tenant/insurance/quotation-guoren/src/main/java/com/jzg/quotation/guoren/api/service/Impl/GuoRenApiRequestImpl.java
  14. 6 6
      tenant/insurance/quotation-huatai/src/main/java/com/jzg/quotation/huatai/api/service/Impl/HuaTaiApiRequestImpl.java
  15. 1 0
      tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/aop/aspect/QuoteVerificationAspect.java
  16. 24 0
      tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/controller/UnifyOrderManager.java
  17. 9 0
      tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/mapper/InsOrdersClauseMapper.java
  18. 13 0
      tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/service/InsOrdersClauseService.java
  19. 35 0
      tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/service/impl/InsOrdersClauseServiceImpl.java
  20. 19 2
      tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/service/impl/InsOrdersServiceImpl.java
  21. 46 14
      tenant/insurance/quotation-summary/src/main/resources/application-dev.yaml
  22. 5 4
      tenant/insurance/quotation-yangguang/src/main/java/com/jzg/quotation/yangguang/api/service/impl/YangGuangApiRequestImpl.java
  23. 6 6
      tenant/insurance/quotation-yongcheng/src/main/java/com/jzg/quotation/yongcheng/api/service/impl/YongChengApiRequestImpl.java
  24. 6 6
      tenant/insurance/quotation-zhongmei/src/main/java/com/jzg/quotation/zhongmei/api/service/impl/ZhongMeiApiRequestImpl.java

+ 9 - 0
commons/src/main/java/com/jzg/commons/constants/InsuranceRisk.java

@@ -31,4 +31,13 @@ public enum InsuranceRisk {
     public static List<InsuranceRisk> getInsuranceRisk() {
         return INSURANCE_RISK;
     }
+
+    public static InsuranceRisk getInsuranceRiskByCode(String code) {
+        for (InsuranceRisk insuranceRisk : INSURANCE_RISK) {
+            if (insuranceRisk.getCode().equals(code)) {
+                return insuranceRisk;
+            }
+        }
+        return null;
+    }
 }

+ 21 - 0
commons/src/main/java/com/jzg/commons/entity/orders/po/InsOrdersClause.java

@@ -0,0 +1,21 @@
+package com.jzg.commons.entity.orders.po;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+/**
+ * @author quchen
+ * @date 2025/7/22 16:08
+ */
+
+@Data
+public class InsOrdersClause {
+    @Schema(description = "订单ID")
+    @TableId(value = "order_no", type = IdType.ASSIGN_ID)
+    private String orderNo;
+
+    @Schema(description = "特约ID")
+    private String clauseId;
+}

+ 4 - 0
commons/src/main/java/com/jzg/commons/entity/quote/vo/QuoteVo.java

@@ -2,6 +2,8 @@ package com.jzg.commons.entity.quote.vo;
 
 
 import com.jzg.commons.entity.orders.po.InsOrdersCarUserInfo;
+import com.jzg.commons.entity.po.InsCompanyClause;
+import com.jzg.commons.entity.vo.CompanyClauseVo;
 import com.jzg.commons.entity.vo.InsOrdersOtherInfoVo;
 import com.jzg.commons.util.IDCardUtils;
 import com.jzg.commons.constants.quote.enums.quote.RiskCode;
@@ -88,6 +90,8 @@ public class QuoteVo implements Serializable {
     @Schema(description = "险种产品代码")
     private String productId;
 
+    @Schema(description = "特约")
+    private List<InsCompanyClause> specialInfoVo;
 
     /**
      * 订单数据库查询数据转 QuoteVo对象

+ 15 - 0
commons/src/main/java/com/jzg/commons/entity/quote/vo/aggregated/QuoteEchoVo.java

@@ -3,6 +3,7 @@ package com.jzg.commons.entity.quote.vo.aggregated;
 
 import com.jzg.commons.entity.orders.po.InsOrdersQrcode;
 import com.jzg.commons.entity.po.EsmInsCompany;
+import com.jzg.commons.entity.po.InsCompanyClause;
 import com.jzg.commons.entity.po.InsFeeOrders;
 import com.jzg.commons.entity.quote.vo.AccidentalDrivingVo;
 import com.jzg.commons.entity.quote.vo.QuoteVo;
@@ -26,6 +27,7 @@ import java.time.format.DateTimeFormatter;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Objects;
+import java.util.stream.Collectors;
 
 
 /**
@@ -204,6 +206,17 @@ public class QuoteEchoVo extends QuoteVo {
      */
     private Integer auditStatus;
 
+    /**
+     * 交强特约
+     */
+    private List<InsCompanyClause> ciSpecialInfoVo;
+
+    /**
+     * 商业特约
+     */
+    private List<InsCompanyClause> biSpecialInfoVo;
+
+
     /**
      * 订单数据库查询数据转 QuoteVo对象
      * @param insOrdersVo
@@ -227,6 +240,8 @@ public class QuoteEchoVo extends QuoteVo {
         this.getOrder().setCreateTime(insOrdersVo.getCreateTime().toString());
         this.getOrder().setQuoteTime(insOrdersVo.getCreateTime().toString());
         this.getOrder().setSigningTime(insOrdersVo.getPayTime());
+        this.setCiSpecialInfoVo(insOrdersVo.getSpecialInfoVo().stream().filter(companyClauseVo -> companyClauseVo.getRiskCode().equals("0507")).collect(Collectors.toList()));
+        this.setBiSpecialInfoVo(insOrdersVo.getSpecialInfoVo().stream().filter(companyClauseVo -> companyClauseVo.getRiskCode().equals("0510")).collect(Collectors.toList()));
         Salesman salesman = new Salesman();
         salesman.setName(insOrdersVo.getSalesmanInfo().getName());
         salesman.setDeptName(insOrdersVo.getSalesmanInfo().getDeptName());

+ 4 - 1
commons/src/main/java/com/jzg/commons/entity/quote/vo/aggregated/QuoteResultsVo.java

@@ -107,7 +107,10 @@ public class QuoteResultsVo implements Serializable {
 
     private String quoteStatus;
 
-
+    /**
+     * 费用不符合描述
+     */
+    private String feeNoDescription;
     /**
      * 错误提示
      */

+ 3 - 0
commons/src/main/java/com/jzg/commons/entity/vo/CompanyClauseVo.java

@@ -7,6 +7,9 @@ import lombok.Data;
 @Data
 public class CompanyClauseVo extends PageRequest {
 
+    @Schema(description = "主键")
+    private String id;
+
     @Schema(description = "保险公司id")
     private String companyId;
 

+ 6 - 4
platform/src/main/java/com/jzg/controller/ClauseController.java

@@ -13,10 +13,7 @@ import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.media.Schema;
 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.*;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -52,6 +49,11 @@ public class ClauseController {
     public HttpResult<InsCompanyClauseVo> getClause(@RequestSingleParam(value = "id") String id){
         return HttpResult.ok(insCompanyClauseService.getClause(id));
     }
+
+    @GetMapping(value = "getById")
+    public InsCompanyClause getById(String id){
+        return insCompanyClauseService.getById(id);
+    }
     /**
      * 添加特别约定
      * @param insCompanyClause

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

@@ -115,7 +115,7 @@ public class BoHaiApiRequestImpl implements BoHaiApiRequest {
         OrderBase order = quoteVo.getOrder();
         AttributionInformationVo attributionInformationVo = order.getAttributionInformationVo();
         //配置信息
-        String url = getApiUrl(order.getInsuranceCompanyCode());
+        String url = getApiUrl(order.getInsuranceCompanyId());
         BoHaiConfigureParameters parameters = ConfigureParametersConversion.conversionEntity(BoHaiConfigureParameters.class, attributionInformationVo.getConfigInfo());
         // 生成订单号
         GenerateOrderNoRequest generateOrderNoRequest = new GenerateOrderNoRequest(parameters);
@@ -187,7 +187,7 @@ public class BoHaiApiRequestImpl implements BoHaiApiRequest {
     public UnderwritingResultsVo underwriting(UnderwritingVo underwritingVo) throws Exception {
         OrderBase order = underwritingVo.getOrder();
         //获取配置信息
-        String url = getApiUrl(order.getInsuranceCompanyCode());
+        String url = getApiUrl(order.getInsuranceCompanyId());
         BoHaiConfigureParameters parameters = ConfigureParametersConversion.conversionEntity(BoHaiConfigureParameters.class, order.getAttributionInformationVo().getConfigInfo());
         //核保请求
         BoHaiApiOrder apiOrder = boHaiApiOrderService.findByOrdersNo(order.getOrdersNo());
@@ -238,7 +238,7 @@ public class BoHaiApiRequestImpl implements BoHaiApiRequest {
     @Override
     public PaymentLinkResultsVo getPaymentLink(PaymentLinkVo paymentLinkVo) {
         //获取配置信息
-        String url = getApiUrl(paymentLinkVo.getOrder().getInsuranceCompanyCode());
+        String url = getApiUrl(paymentLinkVo.getOrder().getInsuranceCompanyId());
         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());
@@ -257,7 +257,7 @@ public class BoHaiApiRequestImpl implements BoHaiApiRequest {
     public void uploadImage(InsuranceUploadImageVo insuranceUploadImageVo) {
         OrderBase order = insuranceUploadImageVo.getOrder();
         //获取配置信息
-        String url = getApiUrl(order.getInsuranceCompanyCode());
+        String url = getApiUrl(order.getInsuranceCompanyId());
         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());
@@ -277,7 +277,7 @@ public class BoHaiApiRequestImpl implements BoHaiApiRequest {
     @Override
     public DownloadPolicyResultVo downloadPolicy(DownloadPolicyVo downloadPolicyVo) {
         //获取配置信息
-        String url = getApiUrl(downloadPolicyVo.getOrder().getInsuranceCompanyCode());
+        String url = getApiUrl(downloadPolicyVo.getOrder().getInsuranceCompanyId());
         BoHaiConfigureParameters parameters = ConfigureParametersConversion.conversionEntity(BoHaiConfigureParameters.class, downloadPolicyVo.getOrder().getAttributionInformationVo().getConfigInfo());
         BoHaiApiOrder apiOrder = boHaiApiOrderService.findByOrdersNo(downloadPolicyVo.getOrder().getOrdersNo());
         // 保单号
@@ -313,7 +313,7 @@ public class BoHaiApiRequestImpl implements BoHaiApiRequest {
      */
     @Override
     public OrderStatusResultVo queryOrderState(OrderStatusVo orderStatusVo) throws Exception {
-        String url = getApiUrl(orderStatusVo.getOrder().getInsuranceCompanyCode());
+        String url = getApiUrl(orderStatusVo.getOrder().getInsuranceCompanyId());
         List<StatusDocumentsResponse.DataDTO.DocumentListDTO> documentList = getDocumentListDTO(orderStatusVo,url);
         OrderStatusResultVo orderStatusResultVo = new OrderStatusResultVo();
         List<StatusDocumentsResponse.DataDTO.DocumentListDTO> documentListDTOS =

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

@@ -73,7 +73,7 @@ public class ChengTaiApiRequestImpl implements ChengTaiApiRequest {
         OrderBase order = quoteVo.getOrder();
         AttributionInformationVo attributionInformationVo = order.getAttributionInformationVo();
         // 配置信息
-        String url = getApiUrl(order.getInsuranceCompanyCode());
+        String url = getApiUrl(order.getInsuranceCompanyId());
         ChengTaiApiConfigureParameters parameters = ConfigureParametersConversion.conversionEntity(ChengTaiApiConfigureParameters.class,
                 attributionInformationVo.getConfigInfo());
         HttpHeaders httpHeaders = chengTaiRequestApiComponent.getHttpHeaders(parameters,url);
@@ -300,7 +300,7 @@ public class ChengTaiApiRequestImpl implements ChengTaiApiRequest {
     @Override
     public UnderwritingResultsVo underwriting(UnderwritingVo underwritingVo) {
         OrderBase orderBase = underwritingVo.getOrder();
-        String url = getApiUrl(orderBase.getInsuranceCompanyCode());
+        String url = getApiUrl(orderBase.getInsuranceCompanyId());
         ChengTaiApiOrder chengTaiApiOrder = chengTaiCrawlerOrderService.getById(orderBase.getOrdersNo());
         // 配置信息
         ChengTaiApiConfigureParameters parameters = ConfigureParametersConversion.conversionEntity(ChengTaiApiConfigureParameters.class, orderBase
@@ -367,7 +367,7 @@ public class ChengTaiApiRequestImpl implements ChengTaiApiRequest {
     public PaymentLinkResultsVo getPaymentLink(PaymentLinkVo paymentLinkVo) {
         ChengTaiApiOrder chengTaiApiOrder = chengTaiCrawlerOrderService.getById(paymentLinkVo.getOrder().getOrdersNo());
         // 配置信息
-        String url = getApiUrl(paymentLinkVo.getOrder().getInsuranceCompanyCode());
+        String url = getApiUrl(paymentLinkVo.getOrder().getInsuranceCompanyId());
         ChengTaiApiConfigureParameters parameters = ConfigureParametersConversion.conversionEntity(ChengTaiApiConfigureParameters.class, paymentLinkVo.getOrder()
                 .getAttributionInformationVo()
                 .getConfigInfo());
@@ -384,7 +384,7 @@ public class ChengTaiApiRequestImpl implements ChengTaiApiRequest {
     @Override
     public void uploadImage(InsuranceUploadImageVo insuranceUploadImageVo) {
         OrderBase orderBase = insuranceUploadImageVo.getOrder();
-        String url = getApiUrl(orderBase.getInsuranceCompanyCode());
+        String url = getApiUrl(orderBase.getInsuranceCompanyId());
         ChengTaiApiOrder chengTaiApiOrder = chengTaiCrawlerOrderService.getById(orderBase.getOrdersNo());
         // 配置信息
         ChengTaiApiConfigureParameters parameters = ConfigureParametersConversion.conversionEntity(ChengTaiApiConfigureParameters.class, orderBase
@@ -407,7 +407,7 @@ public class ChengTaiApiRequestImpl implements ChengTaiApiRequest {
     @Override
     public DownloadPolicyResultVo downloadPolicy(DownloadPolicyVo downloadPolicyVo) {
         // 配置信息
-        String url = getApiUrl(downloadPolicyVo.getOrder().getInsuranceCompanyCode());
+        String url = getApiUrl(downloadPolicyVo.getOrder().getInsuranceCompanyId());
         ChengTaiApiConfigureParameters parameters = ConfigureParametersConversion.conversionEntity(ChengTaiApiConfigureParameters.class, downloadPolicyVo.getOrder()
                 .getAttributionInformationVo()
                 .getConfigInfo());
@@ -461,7 +461,7 @@ public class ChengTaiApiRequestImpl implements ChengTaiApiRequest {
     public OrderStatusResultVo queryOrderState(OrderStatusVo orderStatusVo) {
         OrderStatusResultVo orderStatusResultVo = new OrderStatusResultVo();
         // 配置信息
-        String url = getApiUrl(orderStatusVo.getOrder().getInsuranceCompanyCode());
+        String url = getApiUrl(orderStatusVo.getOrder().getInsuranceCompanyId());
         ChengTaiApiConfigureParameters parameters = ConfigureParametersConversion.conversionEntity(ChengTaiApiConfigureParameters.class, orderStatusVo.getOrder()
                 .getAttributionInformationVo()
                 .getConfigInfo());

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

@@ -4,6 +4,7 @@ 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.InsCompanyClause;
 import com.jzg.commons.entity.po.QrBarcodeConfig;
 import com.jzg.commons.entity.po.SysUploadFiles;
 import org.springframework.cloud.openfeign.FeignClient;
@@ -79,4 +80,11 @@ public interface PlatformClient {
     @GetMapping("/manager/agreementUrl/getAgreementUrlByCompanyId")
     public HttpResult<PtlAgreementUrl> getAgreementUrlByCompanyId(@RequestParam String companyId);
 
+    /**
+     * 获取特约
+     * @return
+     */
+    @GetMapping("/manager/clause/getById")
+    public InsCompanyClause getClause(@RequestParam String id);
+
 }

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

@@ -70,7 +70,7 @@ public class DaJiaApiRequestImpl implements DaJiaApiRequest {
         OrderBase order = quoteVo.getOrder();
         AttributionInformationVo attributionInformationVo = order.getAttributionInformationVo();
         // 配置信息
-        String url = getApiUrl(order.getInsuranceCompanyCode());
+        String url = getApiUrl(order.getInsuranceCompanyId());
         DaJiaApiConfigureParameters parameters = ConfigureParametersConversion.conversionEntity(DaJiaApiConfigureParameters.class,
                 attributionInformationVo.getConfigInfo());
         // 获取业务订单号
@@ -274,7 +274,7 @@ public class DaJiaApiRequestImpl implements DaJiaApiRequest {
     @Override
     public UnderwritingResultsVo underwriting(UnderwritingVo underwritingVo) throws Exception {
         OrderBase orderBase = underwritingVo.getOrder();
-        String url = getApiUrl(orderBase.getInsuranceCompanyCode());
+        String url = getApiUrl(orderBase.getInsuranceCompanyId());
         DaJiaApiOrder daJiaApiOrder = daJiaCrawlerOrderService.getById(orderBase.getOrdersNo());
         // 配置信息
         DaJiaApiConfigureParameters parameters = ConfigureParametersConversion.conversionEntity(DaJiaApiConfigureParameters.class,
@@ -327,7 +327,7 @@ public class DaJiaApiRequestImpl implements DaJiaApiRequest {
 
     @Override
     public PaymentLinkResultsVo getPaymentLink(PaymentLinkVo paymentLinkVo) throws Exception {
-        String url = getApiUrl(paymentLinkVo.getOrder().getInsuranceCompanyCode());
+        String url = getApiUrl(paymentLinkVo.getOrder().getInsuranceCompanyId());
         DaJiaApiOrder daJiaApiOrder = daJiaCrawlerOrderService.getById(paymentLinkVo.getOrder().getOrdersNo());
         DaJiaApiConfigureParameters parameters = ConfigureParametersConversion.conversionEntity(DaJiaApiConfigureParameters.class,
                 paymentLinkVo.getOrder().getAttributionInformationVo().getConfigInfo());
@@ -364,7 +364,7 @@ public class DaJiaApiRequestImpl implements DaJiaApiRequest {
     public void uploadImage(InsuranceUploadImageVo insuranceUploadImageVo) {
         // 获取订单信息
         OrderBase orderBase = insuranceUploadImageVo.getOrder();
-        String url = getApiUrl(orderBase.getInsuranceCompanyCode());
+        String url = getApiUrl(orderBase.getInsuranceCompanyId());
         DaJiaApiOrder daJiaApiOrder = daJiaCrawlerOrderService.getById(orderBase.getOrdersNo());
         // 配置信息
         DaJiaApiConfigureParameters parameters = ConfigureParametersConversion.conversionEntity(DaJiaApiConfigureParameters.class,
@@ -382,7 +382,7 @@ public class DaJiaApiRequestImpl implements DaJiaApiRequest {
     @Override
     public DownloadPolicyResultVo downloadPolicy(DownloadPolicyVo downloadPolicyVo) {
         // 配置信息
-        String url = getApiUrl(downloadPolicyVo.getOrder().getInsuranceCompanyCode());
+        String url = getApiUrl(downloadPolicyVo.getOrder().getInsuranceCompanyId());
         DaJiaApiConfigureParameters parameters = ConfigureParametersConversion.conversionEntity(DaJiaApiConfigureParameters.class,
                 downloadPolicyVo.getOrder().getAttributionInformationVo().getConfigInfo());
 
@@ -473,7 +473,7 @@ public class DaJiaApiRequestImpl implements DaJiaApiRequest {
     public OrderStatusResultVo queryOrderState(OrderStatusVo orderStatusVo) {
         OrderStatusResultVo orderStatusResultVo = new OrderStatusResultVo();
         // 配置信息
-        String url = getApiUrl(orderStatusVo.getOrder().getInsuranceCompanyCode());
+        String url = getApiUrl(orderStatusVo.getOrder().getInsuranceCompanyId());
         DaJiaApiConfigureParameters parameters = ConfigureParametersConversion.conversionEntity(DaJiaApiConfigureParameters.class,
                 orderStatusVo.getOrder().getAttributionInformationVo().getConfigInfo());
         ODR2010Request odr2010Request = new ODR2010Request(orderStatusVo.getOrder().getCompanyOrderNo(), parameters);

+ 6 - 4
tenant/insurance/quotation-guoren/src/main/java/com/jzg/quotation/guoren/api/entity/vo/GuoRenSpecialAgreementVo.java

@@ -1,6 +1,8 @@
 package com.jzg.quotation.guoren.api.entity.vo;
 
 import com.jzg.commons.constants.InsuranceRisk;
+import com.jzg.commons.entity.po.InsCompanyClause;
+import com.jzg.commons.entity.vo.CompanyClauseVo;
 import com.jzg.quotation.guoren.api.entity.Request.PremiumRequest;
 import com.jzg.quotation.guoren.api.entity.Response.SpecialAgreementResponse;
 import lombok.Data;
@@ -36,10 +38,10 @@ public class GuoRenSpecialAgreementVo implements Serializable {
 //    @ApiModelProperty("险种名称")
     private String riskName;
 
-    public GuoRenSpecialAgreementVo(SpecialAgreementResponse.DataDTO dataDTO, InsuranceRisk insuranceRisk) {
-        this.clauseCode = dataDTO.getClauseCode();
-        this.clauses = dataDTO.getClauses();
-        this.clausesContext = dataDTO.getClausesContext();
+    public GuoRenSpecialAgreementVo(InsCompanyClause companyClauseVo, InsuranceRisk insuranceRisk) {
+        this.clauseCode = companyClauseVo.getClauseCode();
+        this.clauses = companyClauseVo.getClauseName();
+        this.clausesContext = companyClauseVo.getClauseContent();
         this.riskName = insuranceRisk.getShortName();
         this.riskCode = insuranceRisk.getCode();
     }

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

@@ -10,10 +10,13 @@ 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.po.InsCompanyClause;
 import com.jzg.commons.entity.quote.vo.AccidentalDrivingVo;
 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.entity.vo.CompanyClauseVo;
+import com.jzg.commons.entity.vo.InsCompanyClauseVo;
 import com.jzg.commons.exception.SystemException;
 import com.jzg.commons.util.AssertionUtils;
 import com.jzg.commons.util.StringUtils;
@@ -96,7 +99,7 @@ public class GuoRenApiRequestImpl implements GuoRenApiRequest {
     public QuoteResultsVo quote(QuoteVo quoteVo) throws JsonProcessingException {
         OrderBase orderBase = quoteVo.getOrder();
         //配置信息
-        String url = getApiUrl(orderBase.getInsuranceCompanyCode());
+        String url = getApiUrl(orderBase.getInsuranceCompanyId());
         GuoRenConfigureParameters parameters = ConfigureParametersConversion.conversionEntity(GuoRenConfigureParameters.class, orderBase.getAttributionInformationVo().getConfigInfo());
         CarInfoVo carInfoVo = quoteVo.getCarInfoVo();
         //vin码查询
@@ -131,7 +134,7 @@ public class GuoRenApiRequestImpl implements GuoRenApiRequest {
         }
 
         //获取特约数据
-        List<GuoRenSpecialAgreementVo> specialAgreements = getSpecialAgreements(orderBase, parameters,url);
+        List<GuoRenSpecialAgreementVo> specialAgreements = getSpecialAgreements(quoteVo);
 
         // 4、保费计算
         PremiumResponse premiumResponse = premiumQuery(quoteVo, carPriceQuery, vinQuery, isNoCar,
@@ -183,7 +186,7 @@ public class GuoRenApiRequestImpl implements GuoRenApiRequest {
     @Override
     public UnderwritingResultsVo underwriting(UnderwritingVo underwritingVo) {
         OrderBase orderBase = underwritingVo.getOrder();
-        String url = getApiUrl(orderBase.getInsuranceCompanyCode());
+        String url = getApiUrl(orderBase.getInsuranceCompanyId());
         //配置信息
         GuoRenConfigureParameters parameters = ConfigureParametersConversion.conversionEntity(GuoRenConfigureParameters.class, orderBase.getAttributionInformationVo().getConfigInfo());
         GuoRenApiOrder guoRenApiOrder = guoRenApiOrderService.findByOrdersNo(orderBase.getOrdersNo());
@@ -251,7 +254,7 @@ public class GuoRenApiRequestImpl implements GuoRenApiRequest {
     @Override
     public PaymentLinkResultsVo getPaymentLink(PaymentLinkVo paymentLinkVo) {
         //配置信息
-        String url = getApiUrl(paymentLinkVo.getOrder().getInsuranceCompanyCode());
+        String url = getApiUrl(paymentLinkVo.getOrder().getInsuranceCompanyId());
         GuoRenConfigureParameters parameters = ConfigureParametersConversion.conversionEntity(GuoRenConfigureParameters.class, paymentLinkVo.getOrder().getAttributionInformationVo().getConfigInfo());
         GuoRenApiOrder guoRenApiOrder = guoRenApiOrderService.findByOrdersNo(paymentLinkVo.getOrder().getOrdersNo());
 
@@ -281,7 +284,7 @@ public class GuoRenApiRequestImpl implements GuoRenApiRequest {
      */
     @Override
     public DownloadPolicyResultVo downloadPolicy(DownloadPolicyVo downloadPolicyVo) {
-        String url = getApiUrl(downloadPolicyVo.getOrder().getInsuranceCompanyCode());
+        String url = getApiUrl(downloadPolicyVo.getOrder().getInsuranceCompanyId());
         InsOrdersPolicy policie = downloadPolicyVo.getPolicie();
         DownloadPolicyResultVo downloadPolicyResultVo = new DownloadPolicyResultVo();
         GuoRenApiOrder guoRenApiOrder = guoRenApiOrderService.findByOrdersNo(downloadPolicyVo.getOrder().getOrdersNo());
@@ -315,7 +318,7 @@ public class GuoRenApiRequestImpl implements GuoRenApiRequest {
         //查询投保单信息
         InsOrdersPolicy insOrdersPolicy = orderBase.getInsOrdersPolicy();
         InsOrders insOrders = orderBase.getInsOrders();
-        String url = getApiUrl(orderBase.getOrder().getInsuranceCompanyCode());
+        String url = getApiUrl(orderBase.getOrder().getInsuranceCompanyId());
         // 获取保司订单状态
         OrderStateResponse orderStateResponse = insOrderStatus(insOrdersPolicy,url);
         GuoRenApiOrder guoRenApiOrder = guoRenApiOrderService.findByOrdersNo(orderBase.getOrder().getOrdersNo());
@@ -507,40 +510,44 @@ public class GuoRenApiRequestImpl implements GuoRenApiRequest {
 
     /**
      * 查询国任特约数据
-     * @param orderBase 原参数为agreementId,以后看orderbase中的配置信息map中是否可以获取
+     * @param quoteVo 原参数为agreementId,以后看orderbase中的配置信息map中是否可以获取
      * @return
      */
-    public List<GuoRenSpecialAgreementVo> getSpecialAgreements(OrderBase orderBase, GuoRenConfigureParameters parameters,String url) {
-        // 获取协议配置信息
-        String specialAgreementKey = GR_SPECIAL_AGREEMENT_KEY + orderBase.getOrdersNo();//现在用ordersNo替换agreementId
-
-        // 从缓存中获取数据
-        String info = (String) redisTemplate.opsForValue().get(specialAgreementKey);
-        if (!StringUtils.isEmpty(info)) {
-            List<GuoRenSpecialAgreementVo> list = JSON.parseArray(info, GuoRenSpecialAgreementVo.class);
-            return list;
-        }
-
+//    public List<GuoRenSpecialAgreementVo> getSpecialAgreements(OrderBase orderBase, GuoRenConfigureParameters parameters,String url) {
+//        // 获取协议配置信息
+//        String specialAgreementKey = GR_SPECIAL_AGREEMENT_KEY + orderBase.getOrdersNo();//现在用ordersNo替换agreementId
+//
+//        // 从缓存中获取数据
+//        String info = (String) redisTemplate.opsForValue().get(specialAgreementKey);
+//        if (!StringUtils.isEmpty(info)) {
+//            List<GuoRenSpecialAgreementVo> list = JSON.parseArray(info, GuoRenSpecialAgreementVo.class);
+//            return list;
+//        }
+//
+//        List<GuoRenSpecialAgreementVo> list = new ArrayList<>();
+//        for (InsuranceRisk insuranceRisk : InsuranceRisk.getInsuranceRisk()) {
+//            String riskCode = GuoRenRiskCode.toInsuranceRisk(insuranceRisk.getCode());
+//            SpecialAgreementRequest specialAgreementRequest = new SpecialAgreementRequest(parameters.getComCode(),
+//                    riskCode);
+//            SpecialAgreementResponse response = guoRenRequestApiComponent.request(specialAgreementRequest,
+//                    PlatformInterfaceCode.API_IIRBT00005, SpecialAgreementResponse.class,url);
+//
+//            AssertionUtils.isFail("1".equals(response.getResultCode().toString()), response.getResultMsg());
+//
+//            List<GuoRenSpecialAgreementVo> collect =
+//                    response.getData().stream().map(x -> new GuoRenSpecialAgreementVo(x, insuranceRisk)).collect(Collectors.toList());
+//            list.addAll(collect);
+//        }
+//        return list;
+//    }
+
+    public List<GuoRenSpecialAgreementVo> getSpecialAgreements(QuoteVo quoteVo) {
+        List<InsCompanyClause> companyClauseVos = quoteVo.getSpecialInfoVo();
         List<GuoRenSpecialAgreementVo> list = new ArrayList<>();
         for (InsuranceRisk insuranceRisk : InsuranceRisk.getInsuranceRisk()) {
-            String riskCode = GuoRenRiskCode.toInsuranceRisk(insuranceRisk.getCode());
-            SpecialAgreementRequest specialAgreementRequest = new SpecialAgreementRequest(parameters.getComCode(),
-                    riskCode);
-            SpecialAgreementResponse response = guoRenRequestApiComponent.request(specialAgreementRequest,
-                    PlatformInterfaceCode.API_IIRBT00005, SpecialAgreementResponse.class,url);
-
-            AssertionUtils.isFail("1".equals(response.getResultCode().toString()), response.getResultMsg());
-
-            List<GuoRenSpecialAgreementVo> collect =
-                    response.getData().stream().map(x -> new GuoRenSpecialAgreementVo(x, insuranceRisk)).collect(Collectors.toList());
+            List<GuoRenSpecialAgreementVo> collect = companyClauseVos.stream().map(x -> new GuoRenSpecialAgreementVo(x, insuranceRisk)).collect(Collectors.toList());
             list.addAll(collect);
         }
-
-        // 数据存入缓存
-        if (!list.isEmpty()) {
-            redisTemplate.opsForValue().set(specialAgreementKey, JSON.toJSONString(list), GR_SPECIAL_AGREEMENT_TIME,
-                    TimeUnit.DAYS);
-        }
         return list;
     }
 

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

@@ -74,7 +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());
+        String url = getApiUrl(orderBase.getInsuranceCompanyId());
 
         //查询车型
         CarInfoVo carInfoVo = quoteVo.getCarInfoVo();
@@ -157,7 +157,7 @@ public class HuaTaiApiRequestImpl implements HuaTaiApiRequest {
     @Override
     public UnderwritingResultsVo underwriting(UnderwritingVo underwritingVo) {
         OrderBase orderBase = underwritingVo.getOrder();
-        String url = getApiUrl(orderBase.getInsuranceCompanyCode());
+        String url = getApiUrl(orderBase.getInsuranceCompanyId());
         AttributionInformationVo attributionInformationVo = orderBase.getAttributionInformationVo();
         //配置信息
         HuaTaiConfigureParameters huaTaiParameters = ConfigureParametersConversion.conversionEntity(HuaTaiConfigureParameters.class, attributionInformationVo.getConfigInfo());
@@ -272,7 +272,7 @@ public class HuaTaiApiRequestImpl implements HuaTaiApiRequest {
     @Override
     public PaymentLinkResultsVo getPaymentLink(PaymentLinkVo paymentLinkVo) {
         AttributionInformationVo attributionInformationVo = paymentLinkVo.getOrder().getAttributionInformationVo();
-        String url = getApiUrl(paymentLinkVo.getOrder().getInsuranceCompanyCode());
+        String url = getApiUrl(paymentLinkVo.getOrder().getInsuranceCompanyId());
         //配置信息
         HuaTaiConfigureParameters huaTaiParameters = ConfigureParametersConversion.conversionEntity(HuaTaiConfigureParameters.class, attributionInformationVo.getConfigInfo());
 
@@ -300,7 +300,7 @@ public class HuaTaiApiRequestImpl implements HuaTaiApiRequest {
     public void uploadImage(InsuranceUploadImageVo insuranceUploadImageVo) {
         try {
             OrderBase orderBase = insuranceUploadImageVo.getOrder();
-            String url = orderBase.getInsuranceCompanyCode();
+            String url = orderBase.getInsuranceCompanyId();
             AttributionInformationVo attributionInformationVo = orderBase.getAttributionInformationVo();
             //配置信息
             HuaTaiConfigureParameters huaTaiParameters = ConfigureParametersConversion.conversionEntity(HuaTaiConfigureParameters.class, attributionInformationVo.getConfigInfo());
@@ -329,7 +329,7 @@ public class HuaTaiApiRequestImpl implements HuaTaiApiRequest {
         if (ObjectUtil.isNull(police)){
             throw new RuntimeException("请选择保单");
         }
-        String url = getApiUrl(downloadPolicyVo.getOrder().getInsuranceCompanyCode());
+        String url = getApiUrl(downloadPolicyVo.getOrder().getInsuranceCompanyId());
         DownloadPolicyResultVo resultVo = new DownloadPolicyResultVo();
         AttributionInformationVo attributionInformationVo = downloadPolicyVo.getOrder().getAttributionInformationVo();
         //配置信息
@@ -407,7 +407,7 @@ public class HuaTaiApiRequestImpl implements HuaTaiApiRequest {
     @Override
     public OrderStatusResultVo queryOrderState(OrderStatusVo orderStatusVo) {
         OrderStatusResultVo orderStatusResultVo = new OrderStatusResultVo();
-        String url = getApiUrl(orderStatusVo.getOrder().getInsuranceCompanyCode());
+        String url = getApiUrl(orderStatusVo.getOrder().getInsuranceCompanyId());
         AttributionInformationVo attributionInformationVo = orderStatusVo.getOrder().getAttributionInformationVo();
         //配置信息
         HuaTaiConfigureParameters huaTaiParameters = ConfigureParametersConversion.conversionEntity(HuaTaiConfigureParameters.class, attributionInformationVo.getConfigInfo());

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

@@ -154,6 +154,7 @@ public class QuoteVerificationAspect {
             } else {
                 logs.append("没有找到该协议的费用信息" + "\n");
             }
+            result.getData().setFeeNoDescription(logs.toString());
         }
     }
 

+ 24 - 0
tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/controller/UnifyOrderManager.java

@@ -5,6 +5,7 @@ import cn.hutool.core.date.DateTime;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.fasterxml.jackson.core.JsonProcessingException;
 import com.jzg.commons.constants.CompanyConstants;
+import com.jzg.commons.constants.InsuranceRisk;
 import com.jzg.commons.constants.dict.InsOrderStatusEnum;
 import com.jzg.commons.core.base.BaseController;
 import com.jzg.commons.core.base.StateResult;
@@ -12,10 +13,13 @@ import com.jzg.commons.core.page.HttpResult;
 import com.jzg.commons.entity.enums.MessageCodeEnum;
 import com.jzg.commons.entity.orders.po.*;
 import com.jzg.commons.entity.po.EsmInsCompany;
+import com.jzg.commons.entity.po.InsCompanyClause;
 import com.jzg.commons.entity.po.PtlAgreement;
 import com.jzg.commons.entity.po.SysUploadFiles;
 import com.jzg.commons.entity.quote.vo.QuoteVo;
 import com.jzg.commons.entity.quote.vo.aggregated.*;
+import com.jzg.commons.entity.quote.vo.underwriting.SpecialAppointmentsVo;
+import com.jzg.commons.entity.vo.InsCompanyClauseVo;
 import com.jzg.commons.exception.SystemException;
 import com.jzg.commons.exception.TokenExpireException;
 import com.jzg.commons.util.AssertionUtils;
@@ -50,6 +54,7 @@ import org.springframework.web.context.request.RequestContextHolder;
 import org.springframework.web.context.request.ServletRequestAttributes;
 
 import java.io.IOException;
+import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
 import java.util.Objects;
@@ -100,6 +105,8 @@ public class UnifyOrderManager {
     @Autowired
     InsOrdersCostsService insOrdersCostsService;
 
+    @Autowired
+    InsOrdersClauseService insOrdersClauseService;
     @Autowired
     InsTaskImagesService insTaskImagesService;
 
@@ -291,6 +298,23 @@ public class UnifyOrderManager {
         underwritingVo.setPolicy(insOrdersPolicy);
         underwritingVo.getOrder().setCompanyOrderNo(insOrders.getCompanyOrderNo());
 
+        // 特约查询
+        List<InsOrdersClause> insOrdersClauseList = insOrdersClauseService
+                .list(new LambdaQueryWrapper<InsOrdersClause>().eq(InsOrdersClause::getOrderNo, insOrders.getId()));
+        List<SpecialAppointmentsVo> specialAppointmentsVos = new ArrayList<>();
+        for (InsOrdersClause insOrdersClause : insOrdersClauseList) {
+            InsCompanyClause companyClause = platformClient.getClause(insOrdersClause.getClauseId());
+            SpecialAppointmentsVo specialAppointmentsVo = new SpecialAppointmentsVo();
+            specialAppointmentsVo.setClauseCode(companyClause.getClauseCode());
+            specialAppointmentsVo.setClauses(companyClause.getClauseContent());
+            specialAppointmentsVo.setRiskCode(companyClause.getRiskCode());
+            specialAppointmentsVo.setClausesContext(companyClause.getClauseContent());
+            InsuranceRisk insuranceRisk = InsuranceRisk.getInsuranceRiskByCode(companyClause.getRiskCode());
+            specialAppointmentsVo.setRiskName(insuranceRisk.getShortName());
+            specialAppointmentsVos.add(specialAppointmentsVo);
+        }
+        underwritingVo.setSpecialAppointmentsVos(specialAppointmentsVos);
+
         UnderwritingResultsVo underwritingResultsVo = quoteService.underwriting(underwritingVo);
         underwritingResultsVo.setOrdersNo(insOrders.getId());
         // 保存核保结果

+ 9 - 0
tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/mapper/InsOrdersClauseMapper.java

@@ -0,0 +1,9 @@
+package com.jzg.quotation.summary.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.jzg.commons.entity.orders.po.InsOrdersClause;
+import org.apache.ibatis.annotations.Mapper;
+
+@Mapper
+public interface InsOrdersClauseMapper extends BaseMapper<InsOrdersClause> {
+}

+ 13 - 0
tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/service/InsOrdersClauseService.java

@@ -0,0 +1,13 @@
+package com.jzg.quotation.summary.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.jzg.commons.entity.orders.po.InsOrders;
+import com.jzg.commons.entity.orders.po.InsOrdersClause;
+import com.jzg.commons.entity.quote.vo.QuoteVo;
+import com.jzg.commons.entity.vo.CompanyClauseVo;
+
+import java.util.List;
+
+public interface InsOrdersClauseService extends IService<InsOrdersClause> {
+    void createClause(InsOrders insOrders,QuoteVo quoteVo);
+}

+ 35 - 0
tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/service/impl/InsOrdersClauseServiceImpl.java

@@ -0,0 +1,35 @@
+package com.jzg.quotation.summary.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.jzg.commons.entity.orders.po.InsOrders;
+import com.jzg.commons.entity.orders.po.InsOrdersClause;
+import com.jzg.commons.entity.po.InsCompanyClause;
+import com.jzg.commons.entity.quote.vo.QuoteVo;
+import com.jzg.commons.entity.vo.CompanyClauseVo;
+import com.jzg.quotation.summary.mapper.InsOrdersClauseMapper;
+import com.jzg.quotation.summary.service.InsOrdersClauseService;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author quchen
+ * @date 2025/7/22 16:11
+ */
+
+@Service
+public class InsOrdersClauseServiceImpl extends ServiceImpl<InsOrdersClauseMapper, InsOrdersClause> implements InsOrdersClauseService {
+    @Override
+    public void createClause(InsOrders insOrders,QuoteVo quoteVo) {
+        List<InsCompanyClause> companyClauseVos = quoteVo.getSpecialInfoVo();
+        List<InsOrdersClause> insOrdersClauses = new ArrayList<>();
+        for (InsCompanyClause companyClauseVo : companyClauseVos) {
+            InsOrdersClause insOrdersClause = new InsOrdersClause();
+            insOrdersClause.setOrderNo(insOrders.getId());
+            insOrdersClause.setClauseId(companyClauseVo.getId());
+            insOrdersClauses.add(insOrdersClause);
+        }
+        this.saveBatch(insOrdersClauses);
+    }
+}

+ 19 - 2
tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/service/impl/InsOrdersServiceImpl.java

@@ -32,6 +32,7 @@ import com.jzg.commons.entity.quote.vo.aggregated.QuoteEchoVo;
 import com.jzg.commons.entity.quote.vo.aggregated.QuoteResultsVo;
 import com.jzg.commons.entity.quote.vo.aggregated.UnderwritingResultsVo;
 import com.jzg.commons.entity.quote.vo.image.InsuranceImageVo;
+import com.jzg.commons.entity.quote.vo.underwriting.SpecialAppointmentsVo;
 import com.jzg.commons.entity.vo.*;
 import com.jzg.commons.util.AssertionUtils;
 import com.jzg.commons.util.MinioUtils;
@@ -91,6 +92,8 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
 
     private final InsOrdersCarInfoService ordersCarInfoService;
 
+    private final InsOrdersClauseService insOrdersClauseService;
+
     private final InsOrdersMapper insOrdersMapper;
 
     private final OrgClient orgClient;
@@ -396,7 +399,17 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
         if (insOrdersVo.getInsOrdersPdfUrl() ==  null) {
             insOrdersVo.setInsOrdersPdfUrl(new InsOrdersPdfUrl());
         }
-
+        // 特约查询
+        List<InsOrdersClause> insOrdersClauseList = insOrdersClauseService
+                .list(new LambdaQueryWrapper<InsOrdersClause>().eq(InsOrdersClause::getOrderNo, id));
+        if (insOrdersClauseList != null) {
+            List<InsCompanyClause> companyClauseList = new ArrayList<>();
+            for (InsOrdersClause insOrdersClause : insOrdersClauseList) {
+                InsCompanyClause companyClause = platformClient.getClause(insOrdersClause.getClauseId());
+                companyClauseList.add(companyClause);
+            }
+            insOrdersVo.setSpecialInfoVo(companyClauseList);
+        }
         insOrdersVo.setInsOrdersTax(insOrdersTaxService.getById(id));
         setInsOrdersExternalPolicy(insOrdersVo.getInsOrdersExternalPolicy());
         return insOrdersVo;
@@ -820,6 +833,10 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
         // 保存订单车船税税信息 ins_orders_tax
         insOrdersTaxService.createTax(insOrders,quoteVo);
 
+        // 保存特约信息
+        if (quoteVo.getSpecialInfoVo() != null) {
+            insOrdersClauseService.createClause(insOrders,quoteVo);
+        }
         return insOrders.getId();
     }
 
@@ -956,9 +973,9 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
         // 费用信息
         InsFeeOrders insFeeOrders = insFeeOrdersMapper.selectOne(new LambdaQueryWrapper<InsFeeOrders>()
                 .eq(InsFeeOrders::getOrderNo, ordersNo));
-        resultVo.setInsFeeOrders(new InsFeeOrdersVo(insFeeOrders));
         // 比例信息
         if (insFeeOrders != null) {
+            resultVo.setInsFeeOrders(new InsFeeOrdersVo(insFeeOrders));
             List<PtlAgreementCostTypeVo> ptlAgreementCostTypeList = orgClient.queryByCostId(insFeeOrders.getCostId());
             PtlAgreement ptlAgreement = orgClient.getByAgreementId(insOrdersVo.getInsOrders().getAgreementId(),baseController.getToken());
             resultVo.setCostRatio(new PtlAgreementCostRatioVo(ptlAgreementCostTypeList,ptlAgreement));

+ 46 - 14
tenant/insurance/quotation-summary/src/main/resources/application-dev.yaml

@@ -52,25 +52,25 @@ yc:
     url: https://test.baoxianzhanggui.com/yongcheng/
 
 #阳光财险生产api
-#yangguang:
-#  api:
-#    key: GVGFDsmWyvydKuCrtP
-#    url: http://wxopenapi.sinosig.com/serviceCar/nonstandard.action?sysFlag=CCSI_SXJZG
-#    uploadUrl: http://autoimage.sinosig.com/AutoImagePlatform/third/upload
-#    payCallBack: https://sxzgkj.baoxianzhanggui.com/web-api/api/yangGuang/callBack
-#    secret: 6CPxxlHwLLphTR7gVg3hJLsH
-#    referer: SXJZG
-
-#阳光财险测试api
 yangguang:
   api:
-    key: uYPP7AIc3HYsUh8rFn
-    url: http://chexiantest.sinosig.com:7002/serviceCar/nonstandard.action?sysFlag=CCSI_SXJZG
-    uploadUrl: http://unifiedimage.sinosig.com:8082/AutoImagePlatform/third/upload
+    key: GVGFDsmWyvydKuCrtP
+    url: http://wxopenapi.sinosig.com/serviceCar/nonstandard.action?sysFlag=CCSI_SXJZG
+    uploadUrl: http://autoimage.sinosig.com/AutoImagePlatform/third/upload
     payCallBack: https://sxzgkj.baoxianzhanggui.com/web-api/api/yangGuang/callBack
     secret: 6CPxxlHwLLphTR7gVg3hJLsH
     referer: SXJZG
 
+#阳光财险测试api
+#yangguang:
+#  api:
+#    key: uYPP7AIc3HYsUh8rFn
+#    url: http://chexiantest.sinosig.com:7002/serviceCar/nonstandard.action?sysFlag=CCSI_SXJZG
+#    uploadUrl: http://unifiedimage.sinosig.com:8082/AutoImagePlatform/third/upload
+#    payCallBack: https://sxzgkj.baoxianzhanggui.com/web-api/api/yangGuang/callBack
+#    secret: 6CPxxlHwLLphTR7gVg3hJLsH
+#    referer: SXJZG
+
 
 #诚泰财险api
 chengtai:
@@ -126,7 +126,7 @@ huatai:
     huaTaiKey: AdOdn409KE6Z9XvFsJ
     key: kFl5aiHALbZ6TMTqQDxghMMC
     tokenUrl: https://vehpxy.pc.ehuatai.com/sign
-# 渤海财险
+# 渤海财险生产api
 bohai:
   api:
     #    url: https://esales.bpic.com.cn
@@ -136,6 +136,15 @@ bohai:
     boHaiPublicKey: MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCIC3wgJd+7Wue63Qjdh3/uscQSKec2m9gaeCq007kjEiSFES5Tfx75VPSxRj6qk6XN4umHOsHY+W9jkv+Cj4+z3XpPozsRdoj21oxPx8fPJzpVeaUHrEkZtj9Yvo/KhByBK5sRjKmlENXVF3wXVfAg48JZR2XUyUcBdZhR9aHhoQIDAQAB
     insurerCode: 'BPIC'
 
+# 渤海财险测试api
+#bohai:
+#  api:
+#    url: http://uatwhale.bpic.com.cn/app-intermediary/gatewayFromPlat
+#    selfPublicKey: MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDKbJHlAPiXza9A7Mfs2cLvysKa5GjdMtG1QQv8oADkAgcdujRq0aHVjNFXoVm7b1DdlhEAdhKXJ7XyY/2zoEbpoU4YxzIftloHZ0vd/k4vgAg5beH972jpWZj6N3ER+EgR73+Ui0p0pdXIRjDF4o8mWSLw8W8Z93eILtLg0DcOIwIDAQAB
+#    selfPrivateKey: MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAIbDhcA8eL4r78XXJvik/cxNI66sBaxX6jZvN5Utoj4vgBh5daExJn8vnIRfU6+lkqQFEPop4jMMWqU/7BneqC3ifwyhp4Dj/9mPhNJdvJdU+0UC2l5OJ13uhYElZzJ2+G1xZeuEFGH3ASthnr6ELCHXQkFaZJtNwObSpjw/Kq6xAgMBAAECgYB2odAwNgukfVEJvCjWYYf6PT3YGh60ZIANg0JO1GkqjO4anXFrgLT+6Y7DCJfG296G/N7BGfXCMnHpXqgc7eDlmSy2JVfKzvptgKJBLktP7Yfajg3oY9S8parSK+iyHT6qYqQv6wBmQ3Q9smOp/TM2ndBMDXu9MjoTkNJhrfMDsQJBANbWHciQhazb3Y2DY42hW/zBf7rmmJFrw7aOrEjzw5E+SnGs/vcr3LUWBbSRTYHcoJ+V/kudfwRMlz0SLkfMAvMCQQCglcjNRx35Zw6vNKHE4vTN/ny2gukjvtkzXpPeTUfblrXjK3w3x9aWBZ/MUiphVe5NB8CAtlfYZMo4UG+WMEjLAkA4yHsyydArMinK/5FOm/meQt6p3c0xkpQ2KlurJJLqTtaKWTlCx1scmeeEJGuiCViDFbgS8FvkHQJUZ/vHikq1AkAHbUX/MHXTbg/AzKdaqsB1snpkGoPb0lzLQmmGU36qSjsZSY6SKdzjzVjJo1cwbz/5Mg2WJljDuk2b8yRmBs+nAkEAzoEZmM031u/0KBpukSbqef8JgJOZ0Do9KDbf2P6YuBal6drUeNYVhImKBxQAbjETp9m5TxxW/dkKmHCnc3zqsA==
+#    boHaiPublicKey: MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDKbJHlAPiXza9A7Mfs2cLvysKa5GjdMtG1QQv8oADkAgcdujRq0aHVjNFXoVm7b1DdlhEAdhKXJ7XyY/2zoEbpoU4YxzIftloHZ0vd/k4vgAg5beH972jpWZj6N3ER+EgR73+Ui0p0pdXIRjDF4o8mWSLw8W8Z93eILtLg0DcOIwIDAQAB
+#    insurerCode: 'BPIC'
+
 #中煤财险测试
 zhongmei:
   api:
@@ -152,3 +161,26 @@ zhongmei:
   crawler:
     baseUrl: https://hxkscd.chinacoal-ins.com/singlePlatform
     imageUrl: https://image.chinacoal-ins.com/SunICMS
+
+zijin:
+  api:
+    #    appKey: SXTQ-C-SX
+    #    appSecret: vAI9sW4bM1m5Y074AUT72wvxKu55SbGY
+    #    proposalCityCode: 320100
+    #    proposalAreaCode: 320000
+    # 为接入方提供获取token服务
+    accessTokenUrl: https://test-open.zking.com/api/v1/public/token/getAccessToken
+    # 车险业务
+    url: http://test-open.zking.com/api/v1/insurance/autoMobile/carInsurance/
+    # 支付
+    payUrl: http://test-open.zking.com/api/v1/public/payment/cashier/zbfAggregatePay
+    # 新支付
+    newPayUrl: http://test-open.zking.com/api/v1/open/open-aggregate/auth/newPay
+    # 订单详情查询服务
+    orderUrl: http://test-open.zking.com/api/v1/insurance/public/getOrderDetail
+    # 订单状态查询
+    orderDetailUrl: http://test-open.zking.com/api/v1/insurance/autoMobile/geelyCarInsurance/queryOrderDetail
+    # 下载保单地址
+    downLoadDocument: http://test-open.zking.com/temp/api/v1/insurance/nonAutoMobile/queryPolicy/downLoadDocument
+    # 对接三方渠道验车链接接口
+    sendCheckCarLink: http://open.zking.com/api/v1/open/open-aggregate/auth/wanJiaYun/sendCheckCarLink

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

@@ -3,6 +3,7 @@ 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.base.BaseController;
 import com.jzg.commons.core.page.HttpResult;
 import com.jzg.commons.entity.agreement.po.PtlAgreementUrl;
 import com.jzg.commons.entity.quote.vo.AttributionInformationVo;
@@ -158,7 +159,7 @@ public class YangGuangApiRequestImpl implements YangGuangApiRequest {
     @Override
     public UnderwritingResultsVo underwriting(UnderwritingVo underwritingVo) throws JsonProcessingException {
         OrderBase orderBase = underwritingVo.getOrder();
-        String url = getApiUrl(orderBase.getInsuranceCompanyCode());
+        String url = getApiUrl(orderBase.getInsuranceCompanyId());
         YangGuangApiOrder yangGuangApiOrder = yangGuangApiOrderService.getById(orderBase.getOrdersNo());
         // 账号配置信息
         YangGuangConfigureParameters parameters = ConfigureParametersConversion.conversionEntity(YangGuangConfigureParameters.class, orderBase
@@ -226,7 +227,7 @@ public class YangGuangApiRequestImpl implements YangGuangApiRequest {
                 .getAttributionInformationVo()
                 .getConfigInfo());
 
-        String url = getApiUrl(paymentLinkVo.getOrder().getInsuranceCompanyCode());
+        String url = getApiUrl(paymentLinkVo.getOrder().getInsuranceCompanyId());
         YangGuangPaymentRequest yangGuangPaymentRequest = new YangGuangPaymentRequest(paymentLinkVo,parameters,yangGuangApiProperties.getPayCallBack());
         YangGuangPaymentResponse yangGuangPaymentResponse = yangGuangApiRequestComponent.payment(yangGuangPaymentRequest,url);
         PaymentLinkResultsVo resultsVo = new PaymentLinkResultsVo();
@@ -291,7 +292,7 @@ public class YangGuangApiRequestImpl implements YangGuangApiRequest {
     private void queryPolicy(String policyNo,YangGuangConfigureParameters parameters,DownloadPolicyResultVo downloadPolicyResultVo,PolicyType policyType,OrderBase orderBase){
         YangGuangGetEpolicyPdfUrlRequest downloadPolicyRequest = new YangGuangGetEpolicyPdfUrlRequest(parameters, policyNo);
         try {
-            String apiUrl = getApiUrl(orderBase.getInsuranceCompanyCode());
+            String apiUrl = getApiUrl(orderBase.getInsuranceCompanyId());
             YangGuangGetEpolicyPdfUrlResponse response = yangGuangApiRequestComponent.getEpolicyPDFURL(downloadPolicyRequest,apiUrl);
             if (response.getErrorCode().equals("0")) {
                 if (StringUtils.isNotEmpty(response.getEPolicyPDFURL())) {
@@ -325,7 +326,7 @@ 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());
+        String apiUrl = getApiUrl(orderBase.getInsuranceCompanyId());
         // 账号配置信息
         YangGuangConfigureParameters parameters = ConfigureParametersConversion.conversionEntity(YangGuangConfigureParameters.class, orderBase
                 .getAttributionInformationVo()

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

@@ -131,7 +131,7 @@ 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());
+        String url = getApiUrl(order.getInsuranceCompanyId());
         //1.车型获取
         YcApiConfigurationProperties configurationProperties = ConfigureParametersConversion.conversionEntity(YcApiConfigurationProperties.class, attributionInformationVo.getConfigInfo());
         ModelsQueryResponse.VehicleInfo vehicleInfo = gainVehicleModel(configurationProperties, quoteVo.getCarInfoVo(),url);
@@ -196,7 +196,7 @@ public class YongChengApiRequestImpl implements YongChengApiRequest {
         UnderwritingResultsVo underwritingResultsVo = new UnderwritingResultsVo();
         //组装参数
         AuditRequest m = AuditRequest.buildAuditParam(underwritingVo);
-        String url = getApiUrl(underwritingVo.getOrder().getInsuranceCompanyCode());
+        String url = getApiUrl(underwritingVo.getOrder().getInsuranceCompanyId());
         try {
             AuditResponse auditResponse = ycRequestApiComponents.newXnyUnderwritingService(m,url);
             if (auditResponse.getResponseHead().getReturnCode().equals("0000")) {
@@ -247,7 +247,7 @@ public class YongChengApiRequestImpl implements YongChengApiRequest {
     @Override
     public PaymentLinkResultsVo getPaymentLink(PaymentLinkVo paymentLinkVo) {
         try {
-            String url = getApiUrl(paymentLinkVo.getOrder().getInsuranceCompanyCode());
+            String url = getApiUrl(paymentLinkVo.getOrder().getInsuranceCompanyId());
             PaymentLinkResultsVo paymentLinkResultsVo = new PaymentLinkResultsVo();
             paymentLinkResultsVo.setPayLinkStatus(false);
             YcApiConfigurationProperties configurationProperties = ConfigureParametersConversion.conversionEntity(YcApiConfigurationProperties.class, paymentLinkVo.getOrder().getAttributionInformationVo().getConfigInfo());
@@ -272,7 +272,7 @@ public class YongChengApiRequestImpl implements YongChengApiRequest {
 
     @Override
     public void uploadImage(InsuranceUploadImageVo insuranceUploadImageVo) {
-        String url = getApiUrl(insuranceUploadImageVo.getOrder().getInsuranceCompanyCode());
+        String url = getApiUrl(insuranceUploadImageVo.getOrder().getInsuranceCompanyId());
         YcApiConfigurationProperties configurationProperties = ConfigureParametersConversion.conversionEntity(YcApiConfigurationProperties.class, insuranceUploadImageVo.getOrder().getAttributionInformationVo().getConfigInfo());
         //获取协议配置信息
         HashMap<String, String> map = new HashMap<>();
@@ -298,7 +298,7 @@ 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 url = getApiUrl(downloadPolicyVo.getOrder().getInsuranceCompanyId());
         String jqPolicyNo = downloadPolicyVo.getPolicie().getJqPolicyNo();
         if(Objects.nonNull(jqPolicyNo)) {
             queryPolicy(jqPolicyNo, configurationProperties, downloadPolicyResultVo, url);
@@ -363,7 +363,7 @@ public class YongChengApiRequestImpl implements YongChengApiRequest {
     @Override
     public OrderStatusResultVo queryOrderState(OrderStatusVo orderStatusVo) {
         OrderStatusResultVo orderStatusResultVo = new OrderStatusResultVo();
-        String url = getApiUrl(orderStatusVo.getOrder().getInsuranceCompanyCode());
+        String url = getApiUrl(orderStatusVo.getOrder().getInsuranceCompanyId());
         YcApiConfigurationProperties configurationProperties = ConfigureParametersConversion.conversionEntity(YcApiConfigurationProperties.class, orderStatusVo.getOrder().getAttributionInformationVo().getConfigInfo());
         //0 支付回调 1核保回调 5直接返回字符串信息
         String type = "5";

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

@@ -59,7 +59,7 @@ public class ZhongMeiApiRequestImpl implements ZhongMeiApiRequest {
     public QuoteResultsVo quote(QuoteVo quoteVo) {
         OrderBase order = quoteVo.getOrder();
         AttributionInformationVo attributionInformationVo = order.getAttributionInformationVo();
-        String url = getApiUrl(order.getInsuranceCompanyCode());
+        String url = getApiUrl(order.getInsuranceCompanyId());
         //配置信息
         ZmApiConfigureParameters parameters = ConfigureParametersConversion.conversionEntity(ZmApiConfigureParameters.class, attributionInformationVo.getConfigInfo());
         BaseRequestHead baseRequestHead = new BaseRequestHead(parameters);
@@ -213,7 +213,7 @@ public class ZhongMeiApiRequestImpl implements ZhongMeiApiRequest {
     @Transactional
     public UnderwritingResultsVo underwriting(UnderwritingVo underwritingVo) {
         OrderBase orderBase = underwritingVo.getOrder();
-        String url = getApiUrl(orderBase.getInsuranceCompanyCode());
+        String url = getApiUrl(orderBase.getInsuranceCompanyId());
         //获取配置信息
         ZmApiConfigureParameters parameters = ConfigureParametersConversion.conversionEntity(ZmApiConfigureParameters.class, orderBase.getAttributionInformationVo().getConfigInfo());
 
@@ -273,7 +273,7 @@ public class ZhongMeiApiRequestImpl implements ZhongMeiApiRequest {
     @Override
     public PaymentLinkResultsVo getPaymentLink(PaymentLinkVo paymentLinkVo) throws JsonProcessingException {
         OrderBase orderBase = paymentLinkVo.getOrder();
-        String url = getApiUrl(orderBase.getInsuranceCompanyCode());
+        String url = getApiUrl(orderBase.getInsuranceCompanyId());
         ZmApiOrder zmApiOrder = zhongmeiApiOrderService.findByOrdersNo(orderBase.getOrdersNo());
         String payUrl = zmApiOrder.getPayUrl();
         //如果mongodb中没有支付链接,说明是人工审核,需要调用核保状态查询接口
@@ -298,7 +298,7 @@ public class ZhongMeiApiRequestImpl implements ZhongMeiApiRequest {
     @Override
     public void uploadImage(InsuranceUploadImageVo insuranceUploadImageVo) {
         OrderBase orderBase = insuranceUploadImageVo.getOrder();
-        String url = getApiUrl(orderBase.getInsuranceCompanyCode());
+        String url = getApiUrl(orderBase.getInsuranceCompanyId());
         //获取配置信息
         AttributionInformationVo attributionInformationVo = orderBase.getAttributionInformationVo();
         ZmApiConfigureParameters parameters = ConfigureParametersConversion.conversionEntity(ZmApiConfigureParameters.class, attributionInformationVo.getConfigInfo());
@@ -320,7 +320,7 @@ public class ZhongMeiApiRequestImpl implements ZhongMeiApiRequest {
     public DownloadPolicyResultVo downloadPolicy(DownloadPolicyVo downloadPolicyVo) {
         //获取配置信息
         OrderBase orderBase = downloadPolicyVo.getOrder();
-        String url = getApiUrl(orderBase.getInsuranceCompanyCode());
+        String url = getApiUrl(orderBase.getInsuranceCompanyId());
         AttributionInformationVo attributionInformationVo = orderBase.getAttributionInformationVo();
         ZmApiConfigureParameters parameters = ConfigureParametersConversion.conversionEntity(ZmApiConfigureParameters.class, attributionInformationVo.getConfigInfo());
         DownloadPolicyResultVo downloadPolicyResultVo = new DownloadPolicyResultVo();
@@ -384,7 +384,7 @@ public class ZhongMeiApiRequestImpl implements ZhongMeiApiRequest {
     public OrderStatusResultVo queryOrderState(OrderStatusVo orderStatusVo) {
         //获取配置信息
         OrderBase orderBase = orderStatusVo.getOrder();
-        String url = getApiUrl(orderBase.getInsuranceCompanyCode());
+        String url = getApiUrl(orderBase.getInsuranceCompanyId());
         OrderStatusResultVo orderStatusResultVo = new OrderStatusResultVo();
 
         AttributionInformationVo attributionInformationVo = orderBase.getAttributionInformationVo();