dongxin 9 месяцев назад
Родитель
Сommit
08ed6fec86
37 измененных файлов с 452 добавлено и 32 удалено
  1. 38 0
      commons/src/main/java/com/jzg/commons/entity/quote/vo/aggregated/ClauseDataVo.java
  2. 14 0
      platform/src/main/java/com/jzg/controller/ClauseController.java
  3. 9 0
      platform/src/main/java/com/jzg/mapper/InsCompanyClauseMapper.java
  4. 6 0
      platform/src/main/java/com/jzg/service/InsCompanyClauseService.java
  5. 7 0
      platform/src/main/java/com/jzg/service/impl/InsCompanyClauseServiceImpl.java
  6. 28 0
      platform/src/main/resources/mapper/InsCompanyClauseMapper.xml
  7. 5 0
      tenant/insurance/quotation-ansheng/src/main/java/com/jzg/quotation/ansheng/crawler/service/impl/AnShengCrawlerRequestImpl.java
  8. 5 0
      tenant/insurance/quotation-bohai/src/main/java/com/jzg/quotation/bohai/api/service/impl/BoHaiApiRequestImpl.java
  9. 5 0
      tenant/insurance/quotation-chengtai/src/main/java/com/jzg/quotation/chengtai/api/service/impl/ChengTaiApiRequestImpl.java
  10. 5 0
      tenant/insurance/quotation-chengtai/src/main/java/com/jzg/quotation/chengtai/crawler/service/impl/ChengTaiCrawlerRequestImpl.java
  11. 15 0
      tenant/insurance/quotation-commons/src/main/java/com/jzg/quotation/commons/client/PlatformClient.java
  12. 7 0
      tenant/insurance/quotation-commons/src/main/java/com/jzg/quotation/commons/service/QuotationBaseService.java
  13. 5 0
      tenant/insurance/quotation-dajia/src/main/java/com/jzg/quotation/dajia/api/service/impl/DaJiaApiRequestImpl.java
  14. 5 0
      tenant/insurance/quotation-dajia/src/main/java/com/jzg/quotation/dajia/crawler/service/impl/DaJiaCrawlerRequestImpl.java
  15. 5 0
      tenant/insurance/quotation-guoren/src/main/java/com/jzg/quotation/guoren/api/service/Impl/GuoRenApiRequestImpl.java
  16. 5 0
      tenant/insurance/quotation-guoren/src/main/java/com/jzg/quotation/guoren/crawler/service/impl/GuoRenCrawlerRequestImpl.java
  17. 5 0
      tenant/insurance/quotation-hengbang/src/main/java/com/jzg/quotation/hengbang/crawler/service/Impl/HengBangCrawlerRequestImpl.java
  18. 5 0
      tenant/insurance/quotation-huanong/src/main/java/com/jzg/quotation/huanong/crawler/service/impl/HuaNongCrawlerRequestImpl.java
  19. 5 0
      tenant/insurance/quotation-huatai/src/main/java/com/jzg/quotation/huatai/api/service/Impl/HuaTaiApiRequestImpl.java
  20. 5 0
      tenant/insurance/quotation-huatai/src/main/java/com/jzg/quotation/huatai/crawler/service/Impl/HuaTaiCrawlerRequestImpl.java
  21. 53 0
      tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/controller/UnifyOrderManager.java
  22. 25 1
      tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/factory/CompanyFactory.java
  23. 5 0
      tenant/insurance/quotation-taikang/src/main/java/com/jzg/quotation/taikang/crawler/service/impl/TKQuotationBaseServiceImpl.java
  24. 5 0
      tenant/insurance/quotation-taiping/src/main/java/com/jzg/quotation/taiping/crawler/service/impl/TaipingCrawlerRequestImpl.java
  25. 6 0
      tenant/insurance/quotation-yangguang/src/main/java/com/jzg/quotation/yangguang/api/service/impl/YangGuangApiRequestImpl.java
  26. 5 0
      tenant/insurance/quotation-yongcheng/src/main/java/com/jzg/quotation/yongcheng/api/service/impl/YongChengApiRequestImpl.java
  27. 5 0
      tenant/insurance/quotation-zhongan/src/main/java/com/jzg/quotation/zhongan/crawler/service/Impl/ZhongAnCrawlerRequestImpl.java
  28. 5 0
      tenant/insurance/quotation-zhongan/src/main/java/com/jzg/quotation/zhongan/crawler/service/ZhongAnQuotaionApiBaseServiceImpl.java
  29. 5 0
      tenant/insurance/quotation-zhongmei/src/main/java/com/jzg/quotation/zhongmei/api/service/impl/ZhongMeiApiRequestImpl.java
  30. 5 0
      tenant/insurance/quotation-zhongmei/src/main/java/com/jzg/quotation/zhongmei/crawler/service/Impl/ZhongMeiCrawlerRequestImpl.java
  31. 17 7
      tenant/insurance/quotation-zijin/src/main/java/com/jzg/quotation/zijin/api/build/ZiJinAPIQuoteResultsVoBuild.java
  32. 40 0
      tenant/insurance/quotation-zijin/src/main/java/com/jzg/quotation/zijin/api/component/ZiJinApiRequestComponent.java
  33. 10 1
      tenant/insurance/quotation-zijin/src/main/java/com/jzg/quotation/zijin/api/component/ZijinDuplicateInsuranceComponents.java
  34. 18 18
      tenant/insurance/quotation-zijin/src/main/java/com/jzg/quotation/zijin/api/entity/request/CalculatePremiumRequest.java
  35. 2 2
      tenant/insurance/quotation-zijin/src/main/java/com/jzg/quotation/zijin/api/entity/request/SubmitVerifyRequest.java
  36. 61 2
      tenant/insurance/quotation-zijin/src/main/java/com/jzg/quotation/zijin/api/service/Impl/ZiJinApiRequestImpl.java
  37. 1 1
      tenant/insurance/quotation-zijin/src/main/java/com/jzg/quotation/zijin/api/service/Impl/ZiJinCrawlerOrderServiceImpl.java

+ 38 - 0
commons/src/main/java/com/jzg/commons/entity/quote/vo/aggregated/ClauseDataVo.java

@@ -0,0 +1,38 @@
+package com.jzg.commons.entity.quote.vo.aggregated;
+
+import com.jzg.commons.entity.quote.vo.base.OrderBase;
+import com.jzg.commons.entity.quote.vo.image.ImageVo;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.math.BigDecimal;
+import java.util.List;
+
+/**
+ * @description: 特约查询聚合实体
+ * @author: wenks
+ * @date: 2025/2/26 14:22
+ **/
+@AllArgsConstructor
+@NoArgsConstructor
+@Data
+public class ClauseDataVo {
+
+    /**
+     * 订单交互信息
+     */
+    private OrderBase order;
+
+    /**
+     * 交强险保费
+     */
+    private BigDecimal jqPremium;
+
+    /**
+     * 商业险保费
+     */
+    private BigDecimal syPremium;
+
+}

+ 14 - 0
platform/src/main/java/com/jzg/controller/ClauseController.java

@@ -44,6 +44,20 @@ public class ClauseController {
         return HttpResult.ok(insCompanyClauseService.getClausePage(page,companyClauseVo));
     }
 
+    /**
+     * 特别约定分页
+     * @param companyClauseVo
+     * @return
+     */
+    @Operation(summary = "特别约定列表查询")
+    @PostMapping(value = "getClauseList")
+    public HttpResult<List<InsCompanyClauseVo>> getClauseList(@RequestBody CompanyClauseVo companyClauseVo){
+        if("all".equals(companyClauseVo.getRiskCode())){
+            companyClauseVo.setRiskCode("");
+        }
+        return HttpResult.ok(insCompanyClauseService.getClauseList(companyClauseVo));
+    }
+
     @Operation(summary = "特别约定查询")
     @PostMapping(value = "getClause")
     public HttpResult<InsCompanyClauseVo> getClause(@RequestSingleParam(value = "id") String id){

+ 9 - 0
platform/src/main/java/com/jzg/mapper/InsCompanyClauseMapper.java

@@ -11,6 +11,8 @@ import com.jzg.commons.entity.vo.SysUserVo;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 
+import java.util.List;
+
 /**
 * @author dongxin
 * @description 针对表【ins_company_clause】的数据库操作Mapper
@@ -30,6 +32,13 @@ public interface InsCompanyClauseMapper extends BaseMapper<InsCompanyClause> {
 
 
     public InsCompanyClauseVo getClause(String id);
+
+    /**
+     * 特别约定列表
+     * @param companyClauseVo
+     * @return
+     */
+    List<InsCompanyClauseVo> getClauseList(@Param("param") CompanyClauseVo companyClauseVo);
 }
 
 

+ 6 - 0
platform/src/main/java/com/jzg/service/InsCompanyClauseService.java

@@ -29,6 +29,12 @@ public interface InsCompanyClauseService extends IService<InsCompanyClause> {
      */
     public Page<InsCompanyClauseVo> getClausePage(Page page, CompanyClauseVo companyClauseVo);
 
+    /**
+     * 特别约定列表
+     * @param companyClauseVo
+     * @return
+     */
+    List<InsCompanyClauseVo> getClauseList(CompanyClauseVo companyClauseVo);
 
     public InsCompanyClauseVo getClause(String id);
 

+ 7 - 0
platform/src/main/java/com/jzg/service/impl/InsCompanyClauseServiceImpl.java

@@ -11,6 +11,8 @@ import com.jzg.mapper.InsCompanyClauseMapper;
 import com.jzg.service.InsCompanyClauseService;
 import org.springframework.stereotype.Service;
 
+import java.util.List;
+
 @Service
 public class InsCompanyClauseServiceImpl extends ServiceImpl<InsCompanyClauseMapper, InsCompanyClause> implements InsCompanyClauseService {
 
@@ -19,6 +21,11 @@ public class InsCompanyClauseServiceImpl extends ServiceImpl<InsCompanyClauseMap
         return baseMapper.getClausePage(page, companyClauseVo);
     }
 
+    @Override
+    public List<InsCompanyClauseVo> getClauseList(CompanyClauseVo companyClauseVo) {
+        return baseMapper.getClauseList(companyClauseVo);
+    }
+
     @Override
     public InsCompanyClauseVo getClause(String id) {
         return baseMapper.getClause(id);

+ 28 - 0
platform/src/main/resources/mapper/InsCompanyClauseMapper.xml

@@ -33,6 +33,34 @@
         order by icc.create_time desc
     </select>
 
+    <select id="getClauseList" resultType="com.jzg.commons.entity.vo.InsCompanyClauseVo">
+        SELECT
+        eic.name_simple AS company_name,
+        eic.company_code AS company_code,
+        icc.*
+        FROM
+        ins_company_clause icc
+        INNER JOIN esm_ins_company eic ON eic.id = icc.company_id
+        where
+        1=1
+        AND icc.is_delete = 0
+        <if test="param.companyId != null and param.companyId != ''">
+            AND company_id = #{param.companyId}
+        </if>
+        <if test="param.riskCode != null and param.riskCode != ''">
+            AND risk_code = #{param.riskCode}
+        </if>
+        <if test="param.clauseCode != null and param.clauseCode != ''">
+            AND clause_code LIKE CONCAT('%', #{param.clauseCode}, '%')
+        </if>
+        <if test="param.clauseName != null and param.clauseName != ''">
+            AND clause_name LIKE CONCAT('%', #{param.clauseName}, '%')
+        </if>
+        <if test="param.clauseContent != null and param.clauseContent != ''">
+            AND clause_content LIKE CONCAT('%', #{param.clauseContent}, '%')
+        </if>
+    </select>
+
     <select id="getClause" resultType="com.jzg.commons.entity.vo.InsCompanyClauseVo">
         SELECT
             eic.name_simple AS company_name,

+ 5 - 0
tenant/insurance/quotation-ansheng/src/main/java/com/jzg/quotation/ansheng/crawler/service/impl/AnShengCrawlerRequestImpl.java

@@ -208,6 +208,11 @@ public class AnShengCrawlerRequestImpl implements AnShengCrawlerRequest {
                 .getOrdersNo(), policyAttachmentsDTOList);
     }
 
+    @Override
+    public void queryClauseData(ClauseDataVo clauseDataVo) {
+
+    }
+
     @Override
     public DownloadPolicyResultVo downloadPolicy(DownloadPolicyVo downloadPolicyVo) {
         DownloadPolicyResultVo downloadPolicyResultVo = new DownloadPolicyResultVo();

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

@@ -276,6 +276,11 @@ public class BoHaiApiRequestImpl implements BoHaiApiRequest {
 
     }
 
+    @Override
+    public void queryClauseData(ClauseDataVo clauseDataVo) {
+
+    }
+
     /**
      * 下载保单待补充
      * @param downloadPolicyVo

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

@@ -406,6 +406,11 @@ public class ChengTaiApiRequestImpl implements ChengTaiApiRequest {
         });
     }
 
+    @Override
+    public void queryClauseData(ClauseDataVo clauseDataVo) {
+
+    }
+
     @Override
     public DownloadPolicyResultVo downloadPolicy(DownloadPolicyVo downloadPolicyVo) {
         // 配置信息

+ 5 - 0
tenant/insurance/quotation-chengtai/src/main/java/com/jzg/quotation/chengtai/crawler/service/impl/ChengTaiCrawlerRequestImpl.java

@@ -247,6 +247,11 @@ public class ChengTaiCrawlerRequestImpl implements ChengTaiCrawlerRequest {
 
     }
 
+    @Override
+    public void queryClauseData(ClauseDataVo clauseDataVo) {
+
+    }
+
     @Override
     public DownloadPolicyResultVo downloadPolicy(DownloadPolicyVo downloadPolicyVo) {
         HttpHeaders httpHeaders = chengTaiCrawlerQuoteProcessService.getTokenHeaders(downloadPolicyVo.getOrder().getAttributionInformationVo().getUsername(), downloadPolicyVo.getOrder().getAttributionInformationVo().getPassword());

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

@@ -7,6 +7,8 @@ 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 com.jzg.commons.entity.vo.CompanyClauseVo;
+import com.jzg.commons.entity.vo.InsCompanyClauseVo;
 import io.swagger.v3.oas.annotations.Operation;
 import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.http.MediaType;
@@ -107,4 +109,17 @@ public interface PlatformClient {
                                                           @RequestHeader("Authorization") String token,
                                                           @RequestHeader("system_code") String sysCode);
 
+    /**
+     * 特别约定列表查询
+     * @param companyClauseVo
+     * @param token
+     * @return
+     */
+    @PostMapping("/manager/clause/getClauseList")
+    HttpResult<List<InsCompanyClauseVo>> queryClauseData(@RequestBody CompanyClauseVo companyClauseVo, @RequestHeader("Authorization") String token);
+
+
+    @PostMapping("/manager/clause/addClause")
+    HttpResult addClause(@RequestBody InsCompanyClause insCompanyClause);
+
 }

+ 7 - 0
tenant/insurance/quotation-commons/src/main/java/com/jzg/quotation/commons/service/QuotationBaseService.java

@@ -33,6 +33,12 @@ public interface QuotationBaseService {
      */
     void uploadImage(InsuranceUploadImageVo insuranceUploadImageVo);
 
+    /**
+     * 获取特约
+     * @param clauseDataVo
+     */
+    void queryClauseData(ClauseDataVo clauseDataVo);
+
     /**
      * 下载保单
      */
@@ -43,4 +49,5 @@ public interface QuotationBaseService {
      */
     OrderStatusResultVo queryOrderState(OrderStatusVo orderStatusVo) throws Exception;
 
+
 }

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

@@ -374,6 +374,11 @@ public class DaJiaApiRequestImpl implements DaJiaApiRequest {
         }
     }
 
+    @Override
+    public void queryClauseData(ClauseDataVo clauseDataVo) {
+
+    }
+
     @Override
     public DownloadPolicyResultVo downloadPolicy(DownloadPolicyVo downloadPolicyVo) {
         // 配置信息

+ 5 - 0
tenant/insurance/quotation-dajia/src/main/java/com/jzg/quotation/dajia/crawler/service/impl/DaJiaCrawlerRequestImpl.java

@@ -150,6 +150,11 @@ public class DaJiaCrawlerRequestImpl implements DaJiaCrawlerRequest {
 
     }
 
+    @Override
+    public void queryClauseData(ClauseDataVo clauseDataVo) {
+
+    }
+
 
     @Override
     public DownloadPolicyResultVo downloadPolicy(DownloadPolicyVo downloadPolicyVo) {

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

@@ -284,6 +284,11 @@ public class GuoRenApiRequestImpl implements GuoRenApiRequest {
         imageUpdate(guoRenApiOrder, parameters, insuranceUploadImageVo);
     }
 
+    @Override
+    public void queryClauseData(ClauseDataVo clauseDataVo) {
+
+    }
+
     /**
      * 下载保单
      * @param downloadPolicyVo

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

@@ -130,6 +130,11 @@ public class GuoRenCrawlerRequestImpl implements GuoRenCrawlerRequest {
 
     }
 
+    @Override
+    public void queryClauseData(ClauseDataVo clauseDataVo) {
+
+    }
+
     @Override
     public DownloadPolicyResultVo downloadPolicy(DownloadPolicyVo downloadPolicyVo) {
         OrderCommon orderCommon = getOrderCommon(downloadPolicyVo.getOrder());

+ 5 - 0
tenant/insurance/quotation-hengbang/src/main/java/com/jzg/quotation/hengbang/crawler/service/Impl/HengBangCrawlerRequestImpl.java

@@ -296,6 +296,11 @@ public class HengBangCrawlerRequestImpl implements HengBangCrawlerRequest {
         hbCrawlerRequestComponent.uploadImage(fileUploadRequest, headers, hbCrawlerOrder.getPlyappno());
     }
 
+    @Override
+    public void queryClauseData(ClauseDataVo clauseDataVo) {
+
+    }
+
     /**
      * 下载保单
      * @param downloadPolicyVo

+ 5 - 0
tenant/insurance/quotation-huanong/src/main/java/com/jzg/quotation/huanong/crawler/service/impl/HuaNongCrawlerRequestImpl.java

@@ -149,6 +149,11 @@ public class HuaNongCrawlerRequestImpl implements HuaNongCrawlerRequest {
                 .getAgreementId(), contractNo, insuranceUploadImageVo.getImageVoList());
     }
 
+    @Override
+    public void queryClauseData(ClauseDataVo clauseDataVo) {
+
+    }
+
     @Override
     public DownloadPolicyResultVo downloadPolicy(DownloadPolicyVo downloadPolicyVo) {
         DownloadPolicyResultVo downloadPolicyResultVo = new DownloadPolicyResultVo();

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

@@ -333,6 +333,11 @@ public class HuaTaiApiRequestImpl implements HuaTaiApiRequest {
         }
     }
 
+    @Override
+    public void queryClauseData(ClauseDataVo clauseDataVo) {
+
+    }
+
     /**
      * 下载保单
      * @param downloadPolicyVo

+ 5 - 0
tenant/insurance/quotation-huatai/src/main/java/com/jzg/quotation/huatai/crawler/service/Impl/HuaTaiCrawlerRequestImpl.java

@@ -207,6 +207,11 @@ public class HuaTaiCrawlerRequestImpl implements HuaTaiCrawlerRequest {
         }
     }
 
+    @Override
+    public void queryClauseData(ClauseDataVo clauseDataVo) {
+
+    }
+
     /**
      * 下载保单
      *

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

@@ -22,6 +22,8 @@ import com.jzg.commons.entity.quote.vo.aggregated.*;
 import com.jzg.commons.entity.quote.vo.base.LoginBase;
 import com.jzg.commons.entity.quote.vo.orders.InsOrdersVo;
 import com.jzg.commons.entity.quote.vo.underwriting.SpecialAppointmentsVo;
+import com.jzg.commons.entity.vo.CompanyClauseVo;
+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;
@@ -42,6 +44,8 @@ import com.jzg.quotation.summary.mapper.SysUploadFilesMapper;
 import com.jzg.quotation.summary.service.*;
 import com.jzg.quotation.summary.state.listener.OrderStateListener;
 import com.jzg.quotation.zhongmei.crawler.service.ZhongMeiCrawlerRequest;
+import com.jzg.quotation.zijin.api.constant.enums.RiskCodeEnum;
+import com.jzg.quotation.zijin.api.entity.response.QueryClauseDataResponse;
 import io.minio.MinioClient;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.media.Schema;
@@ -59,6 +63,7 @@ import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
 import java.util.Objects;
+import java.util.stream.Collectors;
 
 
 @RestController
@@ -431,6 +436,54 @@ public class UnifyOrderManager {
     }
 
 
+    @Operation(summary = "特约查询")
+    @PostMapping("/queryClauseData")
+    public HttpResult queryClauseData(@RequestBody ClauseDataVo clauseDataVo) {
+        if (Objects.isNull(baseController.getToken())) {
+            throw new TokenExpireException("登录过期");
+        }
+        InsOrders insOrders = insOrdersService.getById(clauseDataVo.getOrder().getOrdersNo());
+        InsOrdersCosts costs = insOrdersCostsService.getById(clauseDataVo.getOrder().getOrdersNo());
+        HttpResult<EsmInsCompany> esmInsCompanyHttpResult = platformClient.findById(insOrders.getCompanyId(), baseController.getToken());
+        String systemCode = getSystemCode();
+
+        //先默认第一个协议
+        HttpResult<List<PtlAgreement>> byCompanyId = orgClient.getByCompanyId(insOrders.getCompanyId(),systemCode, baseController.getToken(), systemCode);
+        if (byCompanyId.getData().isEmpty()) {
+            AssertionUtils.isFail(true, "保司未配置协议");
+        }
+
+        // 获取特约列表
+        CompanyClauseVo companyClauseVo = new CompanyClauseVo();
+        companyClauseVo.setCompanyId(insOrders.getCompanyId());
+        HttpResult<List<InsCompanyClauseVo>> clauseDataResult = platformClient.queryClauseData(companyClauseVo, baseController.getToken());
+        if (clauseDataResult.getData().isEmpty()) {
+            AssertionUtils.isFail(true, "保司未配置特约");
+        }
+        clauseDataVo.setJqPremium(costs.getJqPremium());
+        clauseDataVo.setSyPremium(costs.getSyPremium());
+        List<InsCompanyClauseVo> clauseInfoDtoList = new ArrayList<>();
+        // 2.1 获取交强险特约
+        if (clauseDataVo.getJqPremium().intValue() != 0) {
+            clauseInfoDtoList.addAll(clauseDataResult.getData().stream().filter(clauseData ->
+                    clauseData.getRiskCode().equals(InsuranceRisk.TRAFFIC.getCode())).collect(Collectors.toList()));
+        }
+        // 2.2 获取商业险特约
+        if (clauseDataVo.getSyPremium().intValue() != 0) {
+            clauseInfoDtoList.addAll(clauseDataResult.getData().stream().filter(clauseData ->
+                    clauseData.getRiskCode().equals(InsuranceRisk.BUSINESS.getCode())).collect(Collectors.toList()));
+        }
+        clauseDataVo.getOrder().setInsuranceCompanyId(esmInsCompanyHttpResult.getData().getId());
+        clauseDataVo.getOrder().setInsuranceCompanyCode(esmInsCompanyHttpResult.getData().getCompanyCode());
+        clauseDataVo.getOrder().setApiType(Integer.parseInt(insOrders.getApiType()));
+        clauseDataVo.getOrder().setAgreementId(byCompanyId.getData().get(0).getId());
+        QuotationBaseService quoteService = companyFactory.getClauseDataService(clauseDataVo, baseController);
+        quoteService.queryClauseData(clauseDataVo);
+
+        return HttpResult.ok(clauseInfoDtoList);
+    }
+
+
     @OrderOperationLog(
             module = "车险订单",
             subModule = "订单详情",

+ 25 - 1
tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/factory/CompanyFactory.java

@@ -216,6 +216,31 @@ public class CompanyFactory {
         return service;
     }
 
+    public QuotationBaseService getClauseDataService(ClauseDataVo clauseDataVo, BaseController baseController) {
+
+        //设置归属信息
+        String token = baseController.getToken();
+        String systemCode = baseController.getAppSystemCode();
+        HttpResult<PtlAgreementAttribution> agreementAttribution = platformClient.getAgreementAttribution(clauseDataVo.getOrder()
+                .getAgreementId(), token, systemCode);
+        AssertionUtils.isFail(agreementAttribution.getCode() == 500, "获取协议属性失败");
+        Map<String, String> fieldMap = agreementAttribution.getData().getFields().stream()
+                .map(obj -> new JSONObject((Map<String, Object>) obj))  // 转换为 JSONObject
+                .collect(Collectors.toMap(
+                        json -> json.getString("field"),    // 获取 key
+                        json -> json.getString("value") == null ? "" : json.getString("value"),
+                        (existing, replacement) -> existing + replacement // 获取 value
+                ));
+        AttributionInformationVo attributionInformationVo = new AttributionInformationVo();
+        attributionInformationVo.setConfigInfo(fieldMap);
+        attributionInformationVo.setUsername(agreementAttribution.getData().getUsername());
+        attributionInformationVo.setPassword(agreementAttribution.getData().getPassword());
+
+        clauseDataVo.getOrder().setAttributionInformationVo(attributionInformationVo);
+        return getQuotationBase(clauseDataVo.getOrder().getApiType(), clauseDataVo.getOrder()
+                .getInsuranceCompanyCode());
+    }
+
     public QuotationBaseService getOrderStatusService(OrderStatusVo orderStatusVo, InsOrdersService insOrdersService, BaseController baseController) {
 
         //设置归属信息
@@ -270,5 +295,4 @@ public class CompanyFactory {
         return getQuotationBase(downloadPolicyVo.getOrder().getApiType(), esmInsCompanyHttpResult.getData()
                 .getCompanyCode());
     }
-
 }

+ 5 - 0
tenant/insurance/quotation-taikang/src/main/java/com/jzg/quotation/taikang/crawler/service/impl/TKQuotationBaseServiceImpl.java

@@ -531,6 +531,11 @@ public class TKQuotationBaseServiceImpl implements TKQuotationBaseService {
 //        }
 
 
+    }
+
+    @Override
+    public void queryClauseData(ClauseDataVo clauseDataVo) {
+
     }
 
     @Override

+ 5 - 0
tenant/insurance/quotation-taiping/src/main/java/com/jzg/quotation/taiping/crawler/service/impl/TaipingCrawlerRequestImpl.java

@@ -107,6 +107,11 @@ public class TaipingCrawlerRequestImpl implements TaipingCrawlerRequest {
         });
     }
 
+    @Override
+    public void queryClauseData(ClauseDataVo clauseDataVo) {
+
+    }
+
     @Override
     public DownloadPolicyResultVo downloadPolicy(DownloadPolicyVo downloadPolicyVo) {
         HttpHeaders httpHeaders = taiPingCrawlerRequestComponent.getHeaders();

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

@@ -260,6 +260,12 @@ public class YangGuangApiRequestImpl implements YangGuangApiRequest {
             throw new RuntimeException(e);
         }
     }
+
+    @Override
+    public void queryClauseData(ClauseDataVo clauseDataVo) {
+
+    }
+
     @Override
     public DownloadPolicyResultVo downloadPolicy(DownloadPolicyVo downloadPolicyVo) {
         OrderBase orderBase = downloadPolicyVo.getOrder();

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

@@ -292,6 +292,11 @@ public class YongChengApiRequestImpl implements YongChengApiRequest {
         }
     }
 
+    @Override
+    public void queryClauseData(ClauseDataVo clauseDataVo) {
+
+    }
+
 
     @Override
     public DownloadPolicyResultVo downloadPolicy(DownloadPolicyVo downloadPolicyVo) {

+ 5 - 0
tenant/insurance/quotation-zhongan/src/main/java/com/jzg/quotation/zhongan/crawler/service/Impl/ZhongAnCrawlerRequestImpl.java

@@ -360,6 +360,11 @@ public class ZhongAnCrawlerRequestImpl implements ZhongAnCrawlerRequest {
         }
     }
 
+    @Override
+    public void queryClauseData(ClauseDataVo clauseDataVo) {
+
+    }
+
 
     private void extracted(ZhongAnCrawlerConfigureParameters parameters, HttpHeaders headers, ZhongAnCrawlerOrder zhongAnCrawlerOrder, String imageType, InsuranceImageVo.ImageDTO imageDTO) {
         ZhongAnCrawlerUploadImageRequest uploadImageRequest = new ZhongAnCrawlerUploadImageRequest(imageType, imageDTO, zhongAnCrawlerOrder.getOrderNo(), zhongAnCrawlerOrder.getPolicyId(), parameters);

+ 5 - 0
tenant/insurance/quotation-zhongan/src/main/java/com/jzg/quotation/zhongan/crawler/service/ZhongAnQuotaionApiBaseServiceImpl.java

@@ -130,6 +130,11 @@ public class ZhongAnQuotaionApiBaseServiceImpl implements QuotationApiBaseServic
 
     }
 
+    @Override
+    public void queryClauseData(ClauseDataVo clauseDataVo) {
+
+    }
+
     @Override
     public DownloadPolicyResultVo downloadPolicy(DownloadPolicyVo downloadPolicyVo) {
         OrderBase order = downloadPolicyVo.getOrder();

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

@@ -316,6 +316,11 @@ public class ZhongMeiApiRequestImpl implements ZhongMeiApiRequest {
         BaseResponseHead head = uploadImageResponse.getHead();
     }
 
+    @Override
+    public void queryClauseData(ClauseDataVo clauseDataVo) {
+
+    }
+
     @Override
     public DownloadPolicyResultVo downloadPolicy(DownloadPolicyVo downloadPolicyVo) {
         //获取配置信息

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

@@ -191,6 +191,11 @@ public class ZhongMeiCrawlerRequestImpl implements ZhongMeiCrawlerRequest {
         zhongMeiCrawlerQuoteProcessService.uploadImage(authorization, crawlerOrder, insuranceUploadImageVo.getImageVoList());
     }
 
+    @Override
+    public void queryClauseData(ClauseDataVo clauseDataVo) {
+
+    }
+
     /**
      * 下载保单
      *

+ 17 - 7
tenant/insurance/quotation-zijin/src/main/java/com/jzg/quotation/zijin/api/build/ZiJinAPIQuoteResultsVoBuild.java

@@ -8,10 +8,13 @@ import com.jzg.commons.entity.quote.vo.RiskInfoVo;
 import com.jzg.commons.constants.quote.enums.quote.KindCode;
 import com.jzg.commons.entity.quote.vo.aggregated.QuoteResultsVo;
 import com.jzg.commons.entity.quote.vo.QuoteVo;
+import com.jzg.commons.util.StringUtils;
 import com.jzg.quotation.zijin.api.constant.enums.RiskCodeEnum;
 import com.jzg.quotation.zijin.api.entity.constants.enums.ResultEnum;
 import com.jzg.quotation.zijin.api.entity.response.CalculatePremiumResponse;
+import jodd.util.StringUtil;
 
+import java.math.BigDecimal;
 import java.util.*;
 import java.util.stream.Collectors;
 
@@ -31,6 +34,7 @@ public final class ZiJinAPIQuoteResultsVoBuild {
         QuoteResultsVo quoteResultsVo = new QuoteResultsVo();
         quoteResultsVo.setOrdersNo(orderNo);
 
+        quoteResultsVo.setQuoteStatusEnum(InsOrderStatusEnum.WAIT_AUDIT);
         quoteResultsVo.setQuoteStatus(InsOrderStatusEnum.WAIT_AUDIT.getCode());
         if(!calculatePremiumResponse.getRtnCode().equals(ResultEnum.C_0000)){
             quoteResultsVo.setQuoteStatus(InsOrderStatusEnum.QUOTE_FAIL.getCode());
@@ -50,14 +54,11 @@ public final class ZiJinAPIQuoteResultsVoBuild {
             List<KindInfoVo> kindInfoVo = buildKindInfoVo(quoteVo.getKindInfoVo(), calculatePremiumResponse.getItemKindList());
             quoteResultsVo.setKindInfoVo(kindInfoVo);
         }
-        quoteResultsVo.setQuoteStatusEnum(InsOrderStatusEnum.PAY_PENDING);
-
         // 费用因子
 //        List<ExpenseFactor> expenseFactors = buildExpenseFactor(calculatePremiumResponse.getPriceInfoList());
 //        quoteResultsVo.setExpenseFactors(expenseFactors);
         // 交强保费 车船税 商业保费
         buildPremium(quoteResultsVo, calculatePremiumResponse.getPlanList());
-
         return quoteResultsVo;
     }
 
@@ -87,10 +88,19 @@ public final class ZiJinAPIQuoteResultsVoBuild {
     private static void buildPremium(QuoteResultsVo quoteResultsVo, List<CalculatePremiumResponse.PlanListDTO> planList) {
         Map<String, String> planMap = planList
                 .stream()
-                .collect(Collectors.toMap(CalculatePremiumResponse.PlanListDTO::getRiskCode, CalculatePremiumResponse.PlanListDTO::getPlanDate));
-        quoteResultsVo.getCosts().setCiPremium(planMap.get(RiskCodeEnum.TRAFFIC_CODE));
-        quoteResultsVo.getCosts().setBiPremium(planMap.get(RiskCodeEnum.BUSINESS_CODE));
-        quoteResultsVo.getCosts().setVvTax(planMap.get(RiskCodeEnum.ACCIDENT_CODE));
+                .collect(Collectors.toMap(CalculatePremiumResponse.PlanListDTO::getRiskCode, CalculatePremiumResponse.PlanListDTO::getPlanFee));
+        String ciPremiumStr = planMap.get(RiskCodeEnum.TRAFFIC_CODE);
+        String biPremiumStr = planMap.get(RiskCodeEnum.BUSINESS_CODE);
+        String vvTaxStr = planMap.get(RiskCodeEnum.ACCIDENT_CODE);
+        BigDecimal ciPremium = StringUtil.isNotEmpty(ciPremiumStr)? new BigDecimal(ciPremiumStr) : new BigDecimal(0);
+        BigDecimal biPremium = StringUtil.isNotEmpty(biPremiumStr)? new BigDecimal(biPremiumStr) : new BigDecimal(0);
+        BigDecimal vvTax = StringUtil.isNotEmpty(vvTaxStr)? new BigDecimal(vvTaxStr) : new BigDecimal(0);
+        quoteResultsVo.getCosts().setCiPremium(ciPremiumStr);
+        quoteResultsVo.getCosts().setBiPremium(biPremiumStr);
+        quoteResultsVo.getCosts().setVvTax(vvTaxStr);
+        quoteResultsVo.getCosts().setSumPremium(String.valueOf(
+                ciPremium.add(biPremium).add(vvTax)
+        ));
     }
 
 

+ 40 - 0
tenant/insurance/quotation-zijin/src/main/java/com/jzg/quotation/zijin/api/component/ZiJinApiRequestComponent.java

@@ -11,13 +11,19 @@ import com.jzg.quotation.zijin.api.entity.response.*;
 import com.jzg.quotation.zijin.api.properties.ZiJinApiProperties;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
+import org.redisson.Redisson;
 import org.redisson.api.RLock;
+import org.redisson.api.RMap;
 import org.redisson.api.RedissonClient;
+import org.redisson.client.codec.StringCodec;
+import org.redisson.config.Config;
 import org.springframework.http.HttpHeaders;
 import org.springframework.http.ResponseEntity;
 import org.springframework.stereotype.Component;
 import org.springframework.util.ObjectUtils;
 
+import java.time.Duration;
+import java.util.HashMap;
 import java.util.Map;
 import java.util.Optional;
 import java.util.concurrent.TimeUnit;
@@ -350,4 +356,38 @@ public class ZiJinApiRequestComponent {
         return downLoadDocument + parameter;
     }
 
+
+    public static void main(String[] args) {
+            // 1. 配置 Redisson
+            Config config = new Config();
+            // 这里假设 Redis 在本地6379端口,没有密码
+            config.useSingleServer()
+                    .setAddress("redis://192.168.0.250:6379")
+                    .setPassword("123456");
+
+            RedissonClient redisson = Redisson.create(config);
+
+            // ====== 方式1:默认 RMap<Object,Object>,会存二进制 ======
+            RMap<Object, Object> binaryMap = redisson.getMap("binaryMap");
+            Map<Object, Object> map1 = new HashMap<>();
+            map1.put("AUTHORIZATION", "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJuYmYiOjE3NjQyMDQ1NTQsImlzcyI6IlNYVFEtQy1TWCIsImV4cCI6MTc2NDgwOTM2NCwiaWF0IjoxNzY0MjA0NTY0fQ.GTopDvD6Y3UykfiTM6YY1tqwenYroFXcRyKSQHh0QXo");
+            map1.put("ZKI_API_AUTHORIZATION", "5A5E41C620F07ABE580F06DBFBEA5A6D");
+            binaryMap.putAll(map1);
+            binaryMap.expire(Duration.ofHours(2));
+
+            System.out.println("存入 Redisson 默认二进制成功!");
+
+//            // ====== 方式2:RMap<String,String> + StringCodec,存明文字符串 ======
+//            RMap<String, String> stringMap = redisson.getMap("stringMap", StringCodec.INSTANCE);
+//            Map<String, String> map2 = new HashMap<>();
+//            map2.put("AUTHORIZATION", "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...");
+//            map2.put("ZKI_API_AUTHORIZATION", "5A5E41C620F07ABE580F06DBFBEA5A6D");
+//            stringMap.putAll(map2);
+//            stringMap.expire(Duration.ofHours(2));
+
+            System.out.println("存入 Redisson 明文字符串成功!");
+
+            // 关闭 Redisson
+            redisson.shutdown();
+    }
 }

+ 10 - 1
tenant/insurance/quotation-zijin/src/main/java/com/jzg/quotation/zijin/api/component/ZijinDuplicateInsuranceComponents.java

@@ -15,6 +15,7 @@ import org.springframework.stereotype.Component;
 
 import java.text.SimpleDateFormat;
 import java.util.Date;
+import java.util.HashMap;
 import java.util.Map;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
@@ -44,7 +45,15 @@ public class ZijinDuplicateInsuranceComponents extends ResponseMessageAbstractHa
     private final ZiJinApiRequestComponent ziJinApiRequestComponent;
 
 
-    protected static final Map<Integer, String> dateFormatMap = Map.of();
+    protected static final Map<Integer, String> dateFormatMap;
+
+    static {
+        dateFormatMap = new HashMap<>();
+        dateFormatMap.put(8, "yyyyMMdd");
+        dateFormatMap.put(10, "yyyyMMddHH");
+        dateFormatMap.put(12, "yyyyMMddHHmm");
+        dateFormatMap.put(14, "yyyyMMddHHmmss");
+    }
 
     public ZijinDuplicateInsuranceComponents(@Lazy ZiJinApiRequestComponent ziJinApiRequestComponent, Map<Integer, String> dateFormatMap) {
         this.ziJinApiRequestComponent = ziJinApiRequestComponent;

+ 18 - 18
tenant/insurance/quotation-zijin/src/main/java/com/jzg/quotation/zijin/api/entity/request/CalculatePremiumRequest.java

@@ -1107,30 +1107,30 @@ public class CalculatePremiumRequest implements Serializable {
             this.occupation = "030199";
             this.address = customerInfoVo.getAddr();
 
-            if ("".equals(insuredFlag)) {
+//            if (customerInfoVo.getPersonType().equals("1")) {
                 this.identifyNumber = customerInfoVo.getIdentifyNumber();
                 this.identifyType = "01";
                 this.insuredNature = "3";
                 this.insuredType = "1";
                 int gender = IdcardUtil.getGenderByIdCard(customerInfoVo.getIdentifyNumber());
                 this.sex = gender == 1 ? "1" : "2";
-            } else {
-                this.businessSort = "900";
-                this.identifyNumber = customerInfoVo.getOrganizationCode();
-                this.identifyType = "73";
-                this.insuredNature = "4";
-                this.insuredType = "2";
-                int gender = IdcardUtil.getGenderByIdCard(customerInfoVo.getIdentifyNumber());
-                this.sex = gender == 1 ? "1" : "2";
-                this.certigierName = customerInfoVo.getLegalPerson();
-                this.certigierType = "01";
-                this.certigierNumber = customerInfoVo.getLeaderIdentifyNumber();
-                this.certigierNumValidDate = customerInfoVo.getLeaderOtherEffectiveDate();
-                this.chiefName = customerInfoVo.getLegalPerson();
-                this.chiefType = "01";
-                this.chiefNumber = customerInfoVo.getLeaderIdentifyNumber();
-                this.chiefNumValidDate = customerInfoVo.getLeaderOtherEffectiveDate();
-            }
+//            } else {
+//                this.businessSort = "900";
+//                this.identifyNumber = customerInfoVo.getOrganizationCode();
+//                this.identifyType = "73";
+//                this.insuredNature = "4";
+//                this.insuredType = "2";
+////                int gender = IdcardUtil.getGenderByIdCard(customerInfoVo.getIdentifyNumber());
+////                this.sex = gender == 1 ? "1" : "2";
+//                this.certigierName = customerInfoVo.getLegalPerson();
+//                this.certigierType = "01";
+//                this.certigierNumber = customerInfoVo.getLeaderIdentifyNumber();
+//                this.certigierNumValidDate = customerInfoVo.getLeaderOtherEffectiveDate();
+//                this.chiefName = customerInfoVo.getLegalPerson();
+//                this.chiefType = "01";
+//                this.chiefNumber = customerInfoVo.getLeaderIdentifyNumber();
+//                this.chiefNumValidDate = customerInfoVo.getLeaderOtherEffectiveDate();
+//            }
             this.insuredFlag = insuredFlag;
             this.insuredName = customerInfoVo.getName();
             this.longAddress = customerInfoVo.getAddr();

+ 2 - 2
tenant/insurance/quotation-zijin/src/main/java/com/jzg/quotation/zijin/api/entity/request/SubmitVerifyRequest.java

@@ -37,7 +37,7 @@ public class SubmitVerifyRequest implements Serializable {
     @JsonProperty("orderNo")
     private String orderNo;
 
-    public SubmitVerifyRequest(ZiJinApiOrder ziJinApiOrder, String productId, List<SpecialAppointmentsVo> specialAppointmentsVos) {
+    public SubmitVerifyRequest(ZiJinApiOrder ziJinApiOrder, List<SpecialAppointmentsVo> specialAppointmentsVos) {
         this.orderId = ziJinApiOrder.getOrderId();
         this.orderNo = ziJinApiOrder.getOrderNo();
         this.engageList = specialAppointmentsVos
@@ -45,7 +45,7 @@ public class SubmitVerifyRequest implements Serializable {
                 .map(EngageListDTO::new)
                 .collect(Collectors.toList());
         String code;
-        if (productId.equals(ProductsType.PT_034002.getCode())) {
+        if (ziJinApiOrder.getProductsCode().equals(ProductsType.PT_034002.getCode())) {
             code = CarCheckReasonEnum.CCR_3.getCode();
         } else {
             code = CarCheckReasonEnum.CCR_2.getCode();

+ 61 - 2
tenant/insurance/quotation-zijin/src/main/java/com/jzg/quotation/zijin/api/service/Impl/ZiJinApiRequestImpl.java

@@ -2,12 +2,14 @@ package com.jzg.quotation.zijin.api.service.impl;
 
 import com.jzg.commons.constants.dict.InsOrderStatusEnum;
 import com.jzg.commons.entity.orders.po.InsOrdersCosts;
+import com.jzg.commons.entity.po.InsCompanyClause;
 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.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;
@@ -16,6 +18,7 @@ import com.jzg.quotation.commons.filter.CarModelsFilterUtils;
 import com.jzg.quotation.commons.standard.conversion.ConfigureParametersConversion;
 import com.jzg.quotation.zijin.api.build.ZiJinAPIQuoteResultsVoBuild;
 import com.jzg.quotation.zijin.api.component.ZiJinApiRequestComponent;
+import com.jzg.quotation.zijin.api.constant.enums.RiskCodeEnum;
 import com.jzg.quotation.zijin.api.entity.ZiJinApiConfigureParameters;
 import com.jzg.quotation.zijin.api.entity.constants.enums.BusType;
 import com.jzg.quotation.zijin.api.entity.constants.enums.OrderStatusEnum;
@@ -26,6 +29,7 @@ import com.jzg.quotation.zijin.api.service.ZiJinApiRequest;
 import com.jzg.quotation.zijin.api.service.ZiJinCrawlerOrderService;
 import lombok.RequiredArgsConstructor;
 import org.jetbrains.annotations.NotNull;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpHeaders;
 
 import java.util.ArrayList;
@@ -45,6 +49,8 @@ public class ZiJinApiRequestImpl implements ZiJinApiRequest {
 
     private final ZiJinCrawlerOrderService ziJinCrawlerOrderService;
 
+    private final PlatformClient platformClient;
+
     // 重复投保次数
     private static final int REPEAT_NUMBER = 3;
 
@@ -85,7 +91,7 @@ public class ZiJinApiRequestImpl implements ZiJinApiRequest {
                 .getConfigInfo());
         HttpHeaders httpHeaders = ziJinApiRequestComponent.getHttpHeaders(parameters);
         List<SpecialAppointmentsVo> specialAppointmentsVos = underwritingVo.getSpecialAppointmentsVos();
-        SubmitVerifyRequest submitVerifyRequest = new SubmitVerifyRequest(ziJinApiOrder, orderBase.getProductId(), specialAppointmentsVos);
+        SubmitVerifyRequest submitVerifyRequest = new SubmitVerifyRequest(ziJinApiOrder, specialAppointmentsVos);
 
         UnderwritingResultsVo underwritingResultsVo = new UnderwritingResultsVo();
         try {
@@ -145,10 +151,63 @@ public class ZiJinApiRequestImpl implements ZiJinApiRequest {
         List<UploadImageInfoListRequest.ItemFileDataListDTO> itemFileDataListDTOS = uploadFile(insuranceUploadImageVo, ziJinApiOrder, httpHeaders);
         // 文件信息与订单关联
         UploadImageInfoListRequest uploadImageInfoListRequest = new UploadImageInfoListRequest(itemFileDataListDTOS,
-                ziJinApiOrder.getOrderNo());
+                ziJinApiOrder.getOrderId());
         BaseResponse baseResponse = ziJinApiRequestComponent.uploadImageInfoList(uploadImageInfoListRequest, httpHeaders);
     }
 
+    @Override
+    public void queryClauseData(ClauseDataVo clauseDataVo) {
+        // 获取订单信息
+        OrderBase orderBase = clauseDataVo.getOrder();
+        ZiJinApiOrder ziJinApiOrder = ziJinCrawlerOrderService.getById(orderBase.getOrdersNo());
+        // 配置信息
+        ZiJinApiConfigureParameters parameters = ConfigureParametersConversion.conversionEntity(ZiJinApiConfigureParameters.class, orderBase
+                .getAttributionInformationVo()
+                .getConfigInfo());
+        HttpHeaders httpHeaders = ziJinApiRequestComponent.getHttpHeaders(parameters);
+        // 2 查询特约
+        QueryClauseDataRequest queryClauseDataRequest = new QueryClauseDataRequest();
+        queryClauseDataRequest.setOrderId(ziJinApiOrder.getOrderId());
+        // 2.1 获取交强险特约
+        if (clauseDataVo.getJqPremium().intValue() != 0) {
+            queryClauseDataRequest.setRiskCode(RiskCodeEnum.RC_0590.getCode());
+            QueryClauseDataResponse queryClauseDataResponse = ziJinApiRequestComponent.queryClauseData(queryClauseDataRequest,
+                    httpHeaders);
+            System.out.println(queryClauseDataResponse);
+//            List<QueryClauseDataResponse.ClauseInfoDtoListDTO> clauseInfoDtoList = queryClauseDataResponse.getClauseInfoDtoList();
+//            for (QueryClauseDataResponse.ClauseInfoDtoListDTO clauseInfoDtoListDTO : clauseInfoDtoList) {
+//                InsCompanyClause clause = new InsCompanyClause();
+//                clause.setRiskCode("0507");
+//                clause.setCompanyId("1738811735599366110");
+//                clause.setClauseName(clauseInfoDtoListDTO.getClauseName());
+//                clause.setClauseCode(clauseInfoDtoListDTO.getClauseCode());
+//                clause.setClauseContent(clauseInfoDtoListDTO.getClauseContent());
+//                clause.setIsEdit(clauseInfoDtoListDTO.getModifyFlag());
+//                clause.setClientStatus("1");
+//                platformClient.addClause(clause);
+//            }
+
+        }
+        // 2.2 获取商业险特约特约
+        if (clauseDataVo.getSyPremium().intValue() != 0) {
+            queryClauseDataRequest.setRiskCode(RiskCodeEnum.RC_050A.getCode());
+            QueryClauseDataResponse queryClauseDataResponse = ziJinApiRequestComponent.queryClauseData(queryClauseDataRequest,
+                    httpHeaders);
+//            List<QueryClauseDataResponse.ClauseInfoDtoListDTO> clauseInfoDtoList = queryClauseDataResponse.getClauseInfoDtoList();
+//            for (QueryClauseDataResponse.ClauseInfoDtoListDTO clauseInfoDtoListDTO : clauseInfoDtoList) {
+//                InsCompanyClause clause = new InsCompanyClause();
+//                clause.setRiskCode("0510");
+//                clause.setCompanyId("1738811735599366110");
+//                clause.setClauseName(clauseInfoDtoListDTO.getClauseName());
+//                clause.setClauseCode(clauseInfoDtoListDTO.getClauseCode());
+//                clause.setClauseContent(clauseInfoDtoListDTO.getClauseContent());
+//                clause.setIsEdit(clauseInfoDtoListDTO.getModifyFlag());
+//                clause.setClientStatus("1");
+//                platformClient.addClause(clause);
+//            }
+        }
+    }
+
     @NotNull
     private List<UploadImageInfoListRequest.ItemFileDataListDTO> uploadFile(InsuranceUploadImageVo insuranceUploadImageVo, ZiJinApiOrder ziJinApiOrder, HttpHeaders httpHeaders) {
         List<InsuranceImageVo> imageVoList = insuranceUploadImageVo.getImageVoList();

+ 1 - 1
tenant/insurance/quotation-zijin/src/main/java/com/jzg/quotation/zijin/api/service/Impl/ZiJinCrawlerOrderServiceImpl.java

@@ -21,7 +21,7 @@ public class ZiJinCrawlerOrderServiceImpl implements ZiJinCrawlerOrderService {
         ziJinApiOrder.setId(quoteVo.getOrder().getOrdersNo());
         ziJinApiOrder.setOrderNo(modelQueryResponse.getOrderNo());
         ziJinApiOrder.setOrderId(modelQueryResponse.getOrderId());
-        ziJinApiOrder.setProductsCode(quoteVo.getOrder().getProductId());
+        ziJinApiOrder.setProductsCode(quoteVo.getProductId());
         ziJinApiOrder.setInsuredIdentify(quoteVo
                 .getInsuredPersonInfo()
                 .getIdentifyNumber());