Forráskód Böngészése

大家 紫金优化

dongxin 9 hónapja
szülő
commit
9a8df65b94
27 módosított fájl, 311 hozzáadás és 185 törlés
  1. 36 20
      commons/src/main/java/com/jzg/commons/constants/quote/enums/quote/BiVehicleUseCode.java
  2. 1 0
      platform/src/main/java/com/jzg/service/impl/SysSystemServiceImpl.java
  3. 1 0
      tenant/insurance/quotation-chengtai/src/main/java/com/jzg/quotation/chengtai/api/entity/request/UploadFileRequest.java
  4. 1 0
      tenant/insurance/quotation-commons/src/main/java/com/jzg/quotation/commons/component/RequestComponent.java
  5. 6 3
      tenant/insurance/quotation-dajia/src/main/java/com/jzg/quotation/dajia/api/build/DaJiaAPIQuoteResultsVoBuild.java
  6. 9 3
      tenant/insurance/quotation-dajia/src/main/java/com/jzg/quotation/dajia/api/compoment/DaJiaApiRequestComponent.java
  7. 0 38
      tenant/insurance/quotation-dajia/src/main/java/com/jzg/quotation/dajia/api/constant/TypeVehicleMapping.java
  8. 6 0
      tenant/insurance/quotation-dajia/src/main/java/com/jzg/quotation/dajia/api/entity/po/DaJiaApiOrder.java
  9. 7 7
      tenant/insurance/quotation-dajia/src/main/java/com/jzg/quotation/dajia/api/entity/request/ODR1008Request.java
  10. 4 0
      tenant/insurance/quotation-dajia/src/main/java/com/jzg/quotation/dajia/api/entity/response/ODR1010Response.java
  11. 0 3
      tenant/insurance/quotation-dajia/src/main/java/com/jzg/quotation/dajia/api/properties/DaJiaApiProperties.java
  12. 3 1
      tenant/insurance/quotation-dajia/src/main/java/com/jzg/quotation/dajia/api/service/DaJiaApiOrderService.java
  13. 3 2
      tenant/insurance/quotation-dajia/src/main/java/com/jzg/quotation/dajia/api/service/impl/DaJiaApiOrderServiceImpl.java
  14. 11 16
      tenant/insurance/quotation-dajia/src/main/java/com/jzg/quotation/dajia/api/service/impl/DaJiaApiRequestImpl.java
  15. 18 11
      tenant/insurance/quotation-summary/pom.xml
  16. 9 8
      tenant/insurance/quotation-summary/src/main/resources/application-dev.yaml
  17. 0 2
      tenant/insurance/quotation-summary/src/main/resources/application-test.yaml
  18. 1 3
      tenant/insurance/quotation-taikang/pom.xml
  19. 45 45
      tenant/insurance/quotation-taikang/src/test/java/com/jzg/quotation/taikang/crawler/TKHttpAPIServiceTest1.java
  20. 16 9
      tenant/insurance/quotation-zijin/src/main/java/com/jzg/quotation/zijin/api/build/ZiJinAPIQuoteResultsVoBuild.java
  21. 3 1
      tenant/insurance/quotation-zijin/src/main/java/com/jzg/quotation/zijin/api/component/ZiJinApiRequestComponent.java
  22. 105 3
      tenant/insurance/quotation-zijin/src/main/java/com/jzg/quotation/zijin/api/entity/request/CalculatePremiumRequest.java
  23. 9 4
      tenant/insurance/quotation-zijin/src/main/java/com/jzg/quotation/zijin/api/entity/request/QueryActualValueRequest.java
  24. 2 2
      tenant/insurance/quotation-zijin/src/main/java/com/jzg/quotation/zijin/api/service/Impl/ZiJinApiRequestImpl.java
  25. 1 1
      tenant/insurance/quotation-zijin/src/main/java/com/jzg/quotation/zijin/api/service/Impl/ZiJinCrawlerOrderServiceImpl.java
  26. 1 2
      tenant/organization/src/main/java/com/jzg/organization/service/impl/PtlAgreementServiceImpl.java
  27. 13 1
      tenant/organization/src/main/resources/application.yml

+ 36 - 20
commons/src/main/java/com/jzg/commons/constants/quote/enums/quote/BiVehicleUseCode.java

@@ -14,30 +14,46 @@ import lombok.Getter;
 @Getter
 public enum BiVehicleUseCode {
 
-    CI01("CI01", "家庭自用客车"),
-    CI02("CI02", "非营业企业客车"),
-    CI03("CI03", "非营业机关客车"),
-    CI04("CI04", "非营业个人货车"),
-    CI05("CI05", "非营业企业货车"),
-    CI06("CI06", "非营业机关货车"),
-    CI07("CI07", "营业个人.出租.租赁"),
-    CI08("CI08", "营业个人.城市公交"),
-    CI09("CI09", "营业个人.公路客运"),
-    CI10("CI10", "营业个人.货车"),
-    CI11("CI11", "营业企业.出租.租赁"),
-    CI12("CI12", "营业企业.城市公交"),
-    CI13("CI13", "营业企业.公路客运"),
-    CI14("CI14", "营业企业.货车"),
-    CI15("CI15", "营业特种车"),
-    CI16("CI16", "非营业特种车"),
-    CI17("CI17", "营业特种车挂车"),
-    CI18("CI18", "非营业特种车挂车"),
-    CI19("CI19", "营业挂车"),
-    CI20("CI20", "非营业挂车");
+    CI01("CI01", "家庭自用客车", "374001","364001001"),
+    CI02("CI02", "非营业企业客车", "374002", "364002002"),
+    CI03("CI03", "非营业机关客车", "374003", "364002001"),
+    CI04("CI04", "非营业个人货车", "374004", "364004001"),
+    CI05("CI05", "非营业企业货车", "374005", "364004001"),
+    CI06("CI06", "非营业机关货车", "374006", "364004001"),
+    CI07("CI07", "营业个人.出租.租赁", "374007", "364003001"),
+    CI08("CI08", "营业个人.城市公交", "374008", "364003002"),
+    CI09("CI09", "营业个人.公路客运", "374009", "364003003"),
+    CI10("CI10", "营业个人.货车", "374010", "364004002"),
+    CI11("CI11", "营业企业.出租.租赁", "374011", "364003001"),
+    CI12("CI12", "营业企业.城市公交", "374012", "364003002"),
+    CI13("CI13", "营业企业.公路客运", "374013", "364003003"),
+    CI14("CI14", "营业企业.货车", "374014", "364004002"),
+    CI15("CI15", "营业特种车", "374016", "364005001"),
+    CI16("CI16", "非营业特种车", "374017", "364005001"),
+    CI17("CI17", "营业特种车挂车", "374018", "364005001"),
+    CI18("CI18", "非营业特种车挂车", "374019", "364005001"),
+    CI19("CI19", "营业挂车", "374020", "364004001"),
+    CI20("CI20", "非营业挂车", "374021", "364004002");
 
     // 编号
     private final String code;
     // 说明
     private final String desc;
 
+    // 商业
+    private final String cUsageCdeSy;
+
+    // 交强
+    private final String cUsageCdeJq;
+
+
+    public static String getByCode(String code){
+        for (BiVehicleUseCode biVehicleUseCode : values()) {
+            if (biVehicleUseCode.getCUsageCdeSy().equals(code)) {
+                return biVehicleUseCode.getCUsageCdeJq();
+            }
+        }
+        return null;
+    }
+
 }

+ 1 - 0
platform/src/main/java/com/jzg/service/impl/SysSystemServiceImpl.java

@@ -294,6 +294,7 @@ public class SysSystemServiceImpl extends ServiceImpl<SysSystemMapper, SysSystem
             vo.setDivision(areaString.substring(0, areaString.length() - 1));
         }
         SysUser user = sysUserMapper.selectById(system.getUserId());
+        AssertionUtils.isFail(Objects.isNull(user),"租户管理员不存在!");
         SysUserJzgInfo info = sysUserJzgInfoMapper.selectOne(new LambdaQueryWrapper<SysUserJzgInfo>()
                 .eq(SysUserJzgInfo::getUserId, user.getId())
                 .eq(SysUserJzgInfo::getIsDelete, YesNoEnum.NO.getCode())

+ 1 - 0
tenant/insurance/quotation-chengtai/src/main/java/com/jzg/quotation/chengtai/api/entity/request/UploadFileRequest.java

@@ -50,6 +50,7 @@ public class UploadFileRequest extends BaseRequest{
     public UploadFileRequest(InsuranceImageVo insuranceImageVo, String orderNo, String ppartnerCode){
         super(ppartnerCode);
         this.orderId = orderNo;
+        this.embarkPartnerCode = ppartnerCode;
         String imageType = insuranceImageVo.getImageCode();
 
         InsuranceImageEnum insuranceImageEnum = Enum.valueOf(InsuranceImageEnum.class, imageType);

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

@@ -242,6 +242,7 @@ public class RequestComponent {
         if (log.isDebugEnabled()) {
             log.debug("request body is {}", body);
         }
+        System.out.println("request body is {"+body+"}");
         body = Optional.ofNullable(body).orElse("");
         WebClient webClient = selectWebClient(url);
         try {

+ 6 - 3
tenant/insurance/quotation-dajia/src/main/java/com/jzg/quotation/dajia/api/build/DaJiaAPIQuoteResultsVoBuild.java

@@ -37,7 +37,6 @@ public final class DaJiaAPIQuoteResultsVoBuild {
         // 商业险险种信息
         List<KindInfoVo> kindInfoVo = buildKindInfoVo(quoteVo.getKindInfoVo(), odr1009Response.getResult().getCoverageList());
         quoteResultsVo.setKindInfoVo(kindInfoVo);
-        quoteResultsVo.setQuoteStatusEnum(InsOrderStatusEnum.PAY_PENDING);
 
         //交强投保单号
         if (!Objects.isNull(odr1009Response.getResult().getBasePart().getJqProposalNo())) {
@@ -79,7 +78,9 @@ public final class DaJiaAPIQuoteResultsVoBuild {
             quoteResultsVo.getCosts().setCiPremium(odr1009Response.getResult().getBasePart().getJqPremium() + "");
             quoteResultsVo.getCosts().setVvTax(odr1009Response.getResult().getBasePart().getJqPremiumVat() + "");
             quoteResultsVo.getScoreVo().setJqScore(String.valueOf(odr1009Response.getResult().getRiskRatio().getJqPubScores()));
-            quoteResultsVo.getScoreVo().setJqLossRation(odr1009Response.getResult().getRiskRatio().getBillCTPELR().toString());
+            if(Objects.nonNull(odr1009Response.getResult().getRiskRatio().getBillCTPELR())) {
+                quoteResultsVo.getScoreVo().setJqLossRation(odr1009Response.getResult().getRiskRatio().getBillCTPELR().toString());
+            }
         }
 
         // 商业
@@ -91,7 +92,9 @@ public final class DaJiaAPIQuoteResultsVoBuild {
             quoteResultsVo.getScoreVo().setSyLossRation(odr1009Response.getResult().getRiskRatio().getBillCOMELR().toString());
         }
         //整单预期赔付率
-        quoteResultsVo.getScoreVo().setLossRation(odr1009Response.getResult().getRiskRatio().getBillELR().toString());
+        if(Objects.nonNull(odr1009Response.getResult().getRiskRatio().getBillCTPELR())) {
+            quoteResultsVo.getScoreVo().setLossRation(odr1009Response.getResult().getRiskRatio().getBillELR().toString());
+        }
 
         double jqPremium = 0;
         double syPremium = 0;

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

@@ -45,17 +45,23 @@ public class DaJiaApiRequestComponent {
             ResponseEntity<String> response = restTemplate.exchange(url, HttpMethod.POST,  httpEntity, String.class);
             String body = response.getBody();
             System.out.println("\n\n---------> 响应参数:{"+body+"}");
-            B res = JSON.parseObject(body).toJavaObject(responseType);
             if(ObjectUtils.isEmpty(body)){
                 throw new SystemException("请求失败");
             }
             //统一处理错误
             JSONObject resultObj = JSON.parseObject(body);
             String code = resultObj.getString("code");
-            if(!"2000".equals(res.getStatus())) {
+            if(!"2000".equals(code)) {
                 throw new SystemException(resultObj.getString("message"));
             }
-            return res;
+            B b = JSON.parseObject(resultObj.getJSONObject("body").toJSONString(),responseType);
+//            if(!"0000".equals(b.getStatus())){
+//                throw new SystemException(b.getMessage());
+//            }
+            if (ObjectUtils.isEmpty(b)) {
+                throw new SystemException("请求失败");
+            }
+            return b;
         }catch (Exception e){
             System.out.println(e.getMessage());
             throw new SystemException(e.getMessage());

+ 0 - 38
tenant/insurance/quotation-dajia/src/main/java/com/jzg/quotation/dajia/api/constant/TypeVehicleMapping.java

@@ -1,38 +0,0 @@
-package com.jzg.quotation.dajia.api.constant;
-
-
-import lombok.AllArgsConstructor;
-import lombok.Getter;
-
-@Getter
-@AllArgsConstructor
-public enum TypeVehicleMapping {
-
-    TM_01("01", "营业出租租赁", "364003001", "374007"),
-    TM_02("02", "营业城市公交", "364003002", "374008"),
-    TM_03("03", "营业公路客运", "364003003", "374009"),
-    TM_04("04", "营业货运", "364004002", "374010"),
-    TM_05("05", "家庭自用", "364001001", "374001"),
-    TM_06("06", "非营业机关", "364002001", "374003"),
-    TM_07("07", "非营业企业", "364002002", "374002"),
-    TM_08("08", "非营业货运", "364004001", "374005");
-
-    private final String code;
-
-    private final String desc;
-
-    // 交强
-    private final String cUsageCdeJq;
-
-    // 商业
-    private final String cUsageCdeSy;
-
-    public static String getByCode(String code){
-        for (TypeVehicleMapping typeVehicleMapping : values()) {
-            if (typeVehicleMapping.getCode().equals(code)) {
-                return typeVehicleMapping.getDesc();
-            }
-        }
-        return null;
-    }
-}

+ 6 - 0
tenant/insurance/quotation-dajia/src/main/java/com/jzg/quotation/dajia/api/entity/po/DaJiaApiOrder.java

@@ -24,6 +24,12 @@ public class DaJiaApiOrder {
      * 订单号
      */
     private String orderNo;
+
+    /**
+     * 订单号
+     */
+    private String serialNo;
+
     /**
      * 报价返回信息
      */

+ 7 - 7
tenant/insurance/quotation-dajia/src/main/java/com/jzg/quotation/dajia/api/entity/request/ODR1008Request.java

@@ -1,6 +1,7 @@
 package com.jzg.quotation.dajia.api.entity.request;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
+import com.jzg.commons.constants.quote.enums.quote.BiVehicleUseCode;
 import com.jzg.commons.entity.quote.vo.CustomerInfoVo;
 import com.jzg.commons.entity.quote.vo.RiskInfoVo;
 import com.jzg.commons.util.StringUtils;
@@ -710,13 +711,12 @@ public class ODR1008Request extends DaJiaBaseRequest {
         RiskInfoVo biRiskInfoVo = quoteVo.getBiRiskInfoVo();
         //运营性质
         String vehicleUse = quoteVo.getCarInfoVo().getVehicleUseCode();
-        TypeVehicleMapping typeVehicleMapping = Enum.valueOf(TypeVehicleMapping.class, "TM_" + vehicleUse);
-        if (Objects.nonNull(ciRiskInfoVo)) {
-            vehicleInfoDTO.setVehicleUsageCde(typeVehicleMapping.getCUsageCdeSy());
-            vehicleInfoDTO.setVehicleTraUsageCde(Integer.valueOf(typeVehicleMapping.getCUsageCdeSy()));
-        }else if(Objects.nonNull(biRiskInfoVo)){
-            vehicleInfoDTO.setVehicleUsageCde(typeVehicleMapping.getCUsageCdeJq());
-            vehicleInfoDTO.setVehicleTraUsageCde(Integer.valueOf(typeVehicleMapping.getCUsageCdeJq()));
+        if (Objects.nonNull(biRiskInfoVo)) {
+            vehicleInfoDTO.setVehicleUsageCde(vehicleUse);
+            vehicleInfoDTO.setVehicleTraUsageCde(Integer.valueOf(vehicleUse));
+        }else if(Objects.nonNull(ciRiskInfoVo)){
+            vehicleInfoDTO.setVehicleUsageCde(BiVehicleUseCode.getByCode(vehicleUse));
+            vehicleInfoDTO.setVehicleTraUsageCde(Integer.valueOf(BiVehicleUseCode.getByCode(vehicleUse)));
         }
 
         //特殊风险标识

+ 4 - 0
tenant/insurance/quotation-dajia/src/main/java/com/jzg/quotation/dajia/api/entity/response/ODR1010Response.java

@@ -26,6 +26,10 @@ public class ODR1010Response extends DaJiaBaseResponse {
     @NoArgsConstructor
     @Data
     public static class BodyDTO {
+        @JsonProperty("status")
+        private String status;
+        @JsonProperty("message")
+        private String message;
         @JsonProperty("orderStatus")
         private String orderStatus;
         @JsonProperty("jqProposalNo")

+ 0 - 3
tenant/insurance/quotation-dajia/src/main/java/com/jzg/quotation/dajia/api/properties/DaJiaApiProperties.java

@@ -9,9 +9,6 @@ import org.springframework.stereotype.Component;
 @ConfigurationProperties(prefix = "dajia.api")
 public class DaJiaApiProperties {
 
-    // 请求地址
-    private String url;
-
     // 请求地址
     private String encryptKey;
 

+ 3 - 1
tenant/insurance/quotation-dajia/src/main/java/com/jzg/quotation/dajia/api/service/DaJiaApiOrderService.java

@@ -2,6 +2,7 @@ package com.jzg.quotation.dajia.api.service;
 
 import com.jzg.commons.entity.quote.vo.QuoteVo;
 import com.jzg.quotation.dajia.api.entity.po.DaJiaApiOrder;
+import com.jzg.quotation.dajia.api.entity.request.ODR1008Request;
 import com.jzg.quotation.dajia.api.entity.response.NVHLODR1001Response;
 import com.jzg.quotation.dajia.api.entity.response.ODR1009Response;
 
@@ -13,8 +14,9 @@ public interface DaJiaApiOrderService {
      * @param quoteVo             报价信息
      * @param odr1009Response     报价信息
      * @param nvhlodr1001Response
+     * @param odr1008Request
      */
-    void saveOrderInfo(QuoteVo quoteVo, ODR1009Response odr1009Response, NVHLODR1001Response nvhlodr1001Response);
+    void saveOrderInfo(QuoteVo quoteVo, ODR1009Response odr1009Response, NVHLODR1001Response nvhlodr1001Response, ODR1008Request odr1008Request);
 
     /**
      * 获取mongo中的订单信息

+ 3 - 2
tenant/insurance/quotation-dajia/src/main/java/com/jzg/quotation/dajia/api/service/impl/DaJiaApiOrderServiceImpl.java

@@ -3,6 +3,7 @@ package com.jzg.quotation.dajia.api.service.impl;
 import com.alibaba.fastjson.JSON;
 import com.jzg.commons.entity.quote.vo.QuoteVo;
 import com.jzg.quotation.dajia.api.entity.po.DaJiaApiOrder;
+import com.jzg.quotation.dajia.api.entity.request.ODR1008Request;
 import com.jzg.quotation.dajia.api.entity.response.NVHLODR1001Response;
 import com.jzg.quotation.dajia.api.entity.response.ODR1009Response;
 import com.jzg.quotation.dajia.api.repository.DaJiaApiOrderRepository;
@@ -18,12 +19,12 @@ public class DaJiaApiOrderServiceImpl implements DaJiaApiOrderService {
 
     private final DaJiaApiOrderRepository daJiaApiOrderRepository;
     @Override
-    public void saveOrderInfo(QuoteVo quoteVo, ODR1009Response odr1009Response, NVHLODR1001Response nvhlodr1001Response) {
+    public void saveOrderInfo(QuoteVo quoteVo, ODR1009Response odr1009Response, NVHLODR1001Response nvhlodr1001Response, ODR1008Request odr1008Request) {
         // 存储信息
         DaJiaApiOrder daJiaApiOrder = new DaJiaApiOrder();
         daJiaApiOrder.setId(quoteVo.getOrder().getOrdersNo());
         daJiaApiOrder.setReptxt(JSON.toJSONString(odr1009Response));
-
+        daJiaApiOrder.setSerialNo(odr1008Request.getSerialNo());
         //交强投保单号
         if (!Objects.isNull(odr1009Response.getResult().getBasePart().getJqProposalNo())) {
             daJiaApiOrder.setCiPolicyNumber(odr1009Response.getResult().getBasePart().getJqProposalNo().toString());

+ 11 - 16
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.getInsuranceCompanyId());
+        String url = getApiUrl(order.getInsuranceCompanyCode());
         DaJiaApiConfigureParameters parameters = ConfigureParametersConversion.conversionEntity(DaJiaApiConfigureParameters.class,
                 attributionInformationVo.getConfigInfo());
         // 获取业务订单号
@@ -89,7 +89,8 @@ public class DaJiaApiRequestImpl implements DaJiaApiRequest {
         // 投保人信息
         CustomerInfoVo policyHolderInfo = quoteVo.getPolicyHolderInfo();
         PersonAreaVo policyHolderArea = new PersonAreaVo(policyHolderInfo);
-        ODR1008Response odr1008Response = confirmationVehicleCustomerInformation(orderNo, busiId, quoteVo, parameters, odr2009Response, ownerInfoArea, insuredPersonArea, policyHolderArea,url);
+        ODR1008Request odr1008Request = new ODR1008Request(orderNo, busiId, quoteVo, parameters, odr2009Response, ownerInfoArea, insuredPersonArea, policyHolderArea);
+        ODR1008Response odr1008Response = confirmationVehicleCustomerInformation(odr1008Request,url);
 
         // 车辆实际价值计算接口
         // 获取起保日期
@@ -110,7 +111,7 @@ public class DaJiaApiRequestImpl implements DaJiaApiRequest {
                 throw new SystemException("驾意险报价失败");
             }
         }
-        daJiaCrawlerOrderService.saveOrderInfo(quoteVo,odr1009Response,nvhlodr1001Response);
+        daJiaCrawlerOrderService.saveOrderInfo(quoteVo,odr1009Response,nvhlodr1001Response,odr1008Request);
         return DaJiaAPIQuoteResultsVoBuild.buildQuoteResultsVo(quoteVo,odr1009Response,nvhlodr1001Response,orderNo);
     }
 
@@ -238,19 +239,9 @@ public class DaJiaApiRequestImpl implements DaJiaApiRequest {
 
     /**
      * 车辆与客户信息确认
-     * @param orderNo
-     * @param busiId
-     * @param quoteVo
-     * @param parameters
-     * @param odr2009Response
-     * @param ownerInfoArea
-     * @param insuredPersonArea
-     * @param policyHolderArea
      * @return
      */
-    private ODR1008Response confirmationVehicleCustomerInformation(String orderNo, String busiId, QuoteVo quoteVo, DaJiaApiConfigureParameters parameters, ODR2009Response odr2009Response, PersonAreaVo ownerInfoArea, PersonAreaVo insuredPersonArea, PersonAreaVo policyHolderArea,String url) {
-
-        ODR1008Request odr1008Request = new ODR1008Request(orderNo, busiId, quoteVo, parameters, odr2009Response, ownerInfoArea, insuredPersonArea, policyHolderArea);
+    private ODR1008Response confirmationVehicleCustomerInformation(ODR1008Request odr1008Request,String url) {
         ODR1008Response odr1008Response = daJiaApiRequestComponent.carOrCustomInfoConfirm(odr1008Request,url);
         AssertionUtils.isFail(!odr1008Response.getStatus().equals(Message.M0000.getCode()),"车辆与客户信息确认接口失败");
         //车辆与客户信息确认返回
@@ -281,7 +272,7 @@ public class DaJiaApiRequestImpl implements DaJiaApiRequest {
                 orderBase.getAttributionInformationVo().getConfigInfo());
         UnderwritingResultsVo underwritingResultsVo = new UnderwritingResultsVo();
         //1009返回数据
-        ODR1009Response.ResultDTO resultDTO = JSONObject.parseObject(JSON.toJSONString(daJiaApiOrder.getReptxt()), ODR1009Response.ResultDTO.class);
+        ODR1009Response odr1009Response  = JSON.parseObject(daJiaApiOrder.getReptxt()).toJavaObject(ODR1009Response.class);
         //驾意险 返回数据
         List<NVHLODR1001Response.policyInfosDTO> policyInfosDTOS = null;
         if (!Objects.isNull(daJiaApiOrder.getCrossInsurance())) {
@@ -289,7 +280,8 @@ public class DaJiaApiRequestImpl implements DaJiaApiRequest {
         }
 
         //核保构造request
-        ODR1010Request odr1010Request = new ODR1010Request(orderBase.getCompanyOrderNo(), parameters, resultDTO,underwritingVo);
+        ODR1010Request odr1010Request = new ODR1010Request(orderBase.getCompanyOrderNo(), parameters, odr1009Response.getResult(),underwritingVo);
+        odr1010Request.setSerialNo(daJiaApiOrder.getSerialNo());
         ODR1010Response odr1010Response = daJiaApiRequestComponent.underwriting(odr1010Request,url);
         if (odr1010Response.getStatus().equals(Message.M0000.getCode())) {
             if ("0".equals(odr1010Response.getResult().getJqAppStatus()) || "0".equals(odr1010Response.getResult().getSyAppStatus())) {
@@ -321,6 +313,9 @@ public class DaJiaApiRequestImpl implements DaJiaApiRequest {
                 underwritingResultsVo.setPaymentLink(paymentLinkResultsVo.getPaymentLink());
                 underwritingResultsVo.setUnderwritingStatus(InsOrderStatusEnum.PAY_PENDING);
             }
+        }else{
+            underwritingResultsVo.setUnderwritingStatus(InsOrderStatusEnum.AUDIT_FAIL);
+            underwritingResultsVo.setUnderwritingResult("自核失败,原因:" + odr1010Response.getResult().getJqAppStatusMessage());
         }
         return underwritingResultsVo;
     }

+ 18 - 11
tenant/insurance/quotation-summary/pom.xml

@@ -29,11 +29,7 @@
 <!--            <artifactId>quotation-zhongmei</artifactId>-->
 <!--            <version>1.0-SNAPSHOT</version>-->
 <!--        </dependency>-->
-<!--        <dependency>-->
-<!--            <groupId>com.jzg</groupId>-->
-<!--            <artifactId>quotation-zijin</artifactId>-->
-<!--            <version>1.0-SNAPSHOT</version>-->
-<!--        </dependency>-->
+
         <dependency>
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-starter-data-redis</artifactId>
@@ -43,6 +39,7 @@
             <groupId>com.jzg</groupId>
             <artifactId>quotation-zhongmei</artifactId>
             <version>1.0-SNAPSHOT</version>
+            <scope>compile</scope>
         </dependency>
         <dependency>
             <groupId>com.jzg</groupId>
@@ -73,11 +70,12 @@
             <version>1.0-SNAPSHOT</version>
             <scope>compile</scope>
         </dependency>
-        <dependency>
-            <groupId>com.jzg</groupId>
-            <artifactId>quotation-taikang</artifactId>
-            <version>1.0-SNAPSHOT</version>
-        </dependency>
+<!--        <dependency>-->
+<!--            <groupId>com.jzg</groupId>-->
+<!--            <artifactId>quotation-taikang</artifactId>-->
+<!--            <version>1.0-SNAPSHOT</version>-->
+<!--            <scope>compile</scope>-->
+<!--        </dependency>-->
         <dependency>
             <groupId>com.jzg</groupId>
             <artifactId>quotation-guoren</artifactId>
@@ -102,20 +100,29 @@
             <version>1.0-SNAPSHOT</version>
             <scope>compile</scope>
         </dependency>
+        <dependency>
+            <groupId>com.jzg</groupId>
+            <artifactId>quotation-zijin</artifactId>
+            <version>1.0-SNAPSHOT</version>
+            <scope>compile</scope>
+        </dependency>
         <dependency>
             <groupId>com.jzg</groupId>
             <artifactId>quotation-hengbang</artifactId>
             <version>1.0-SNAPSHOT</version>
+            <scope>compile</scope>
         </dependency>
         <dependency>
             <groupId>com.jzg</groupId>
             <artifactId>quotation-ansheng</artifactId>
             <version>1.0-SNAPSHOT</version>
+            <scope>compile</scope>
         </dependency>
         <dependency>
             <groupId>com.jzg</groupId>
             <artifactId>quotation-zhongan</artifactId>
             <version>1.0-SNAPSHOT</version>
+            <scope>compile</scope>
         </dependency>
 
         <!-- thymeleaf 模版类 -->
@@ -181,4 +188,4 @@
         </plugins>
     </build>
 
-</project>
+</project>

+ 9 - 8
tenant/insurance/quotation-summary/src/main/resources/application-dev.yaml

@@ -42,8 +42,8 @@ image:
 
 # 支付码相关配置
 qrcode:
-  genAddress: https://192.168.0.250:8001/order/qrCode/index
-  imageSrc: https://192.168.0.250:8001/template/
+  genAddress: http://192.168.0.250:8001/order/qrCode/index
+  imageSrc: http://192.168.0.250:8001/template/
 
 
 yc:
@@ -75,17 +75,18 @@ yangguang:
 #诚泰财险api
 chengtai:
   api:
-    baseUrl: http://39.98.238.167/chengtai/app/SERVER_V2/4001/
-    ctPublicKey: MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCvuUnoPTFin84nDdpNZFDiGZgUKn6d9fbp6F4/fqrb6pFoJX/wLMr0IsheP0ZnVCPpLGKLjflPNHJo/P9WRRTSM67D8fRD8GKoq+7CtSJkdIticASpN/U8AgJiNV6xdReJcMkaAWJ1ZbOQ+nYLg9OE0qQ6cuXqhy/wVrqx72CrvwIDAQAB
-    publicKey: MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCyVlpqmibguria884GdAYEuqCV4aQRl2N21+7l8Vxocoyz+M8KYyXqmlLKqApNL/U5pUVTjS6vpC6ojS+wvNbawijeMsm8r2NOlTHBnQ5vN0azjjPPtSrxgHL8/EYBa4lmBcexdmcUrUyWjAIYqfO8dlY+RuXvbiw7fBHZ7xpAvQIDAQAB
-    privateKey: MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBALJWWmqaJuC6uJrzzgZ0BgS6oJXhpBGXY3bX7uXxXGhyjLP4zwpjJeqaUsqoCk0v9TmlRVONLq+kLqiNL7C81trCKN4yybyvY06VMcGdDm83RrOOM8+1KvGAcvz8RgFriWYFx7F2ZxStTJaMAhip87x2Vj5G5e9uLDt8EdnvGkC9AgMBAAECgYEAsEOHdEvOV1pWMdj9bgVpGW14YQu3RSfTSFheqGkpg5aMmSk3QbYDeOB1KhZysB3Ri9tdLRqi5TkqYK/DTjUnSUMs0iMhx0XaY2z3w16AMpvuJ0FZ4S2h8oAFfOWe4F6bpUYU8qmXANAaXcMm6HjU8k1QuTbjlSOeLujl8W7zk8ECQQDlHbUQ911kWmsSo8NE4S1+dq/6T+yIGCJlXzlNh/z6giMpjp8Dzm3fxDHLeZa+DCrhpT1qe6O3oGwx3HeR/85NAkEAx0NUy6pX5WolV+YAoLNHAmcCP26wQTB7LZ7mXbxww4yNNH9CWHE9PaBuV4Ws4NxSAnRDxrgArkz5+wgqnXzUMQJAHr16orkdra43+XtBYsd3jCUufT4l9SiPzNwW2yEovw+g2h2JlkAnG8O+DpfUstD9G+NItzW5hJSgj5wN6ufQbQJACEtdND0a+4m3lDkWvZm40vjGty08WPpTpkp+/FfjucAYAJ9re5L7IZ2T+kCuOY3yO/fq+lKedKLvpOtqGrQfgQJBAJ1wMccz+1ez8qpyTWbzj2h0O+GV+YDHqJ9SwRWcSacZOeAyO7UMgIZEwoYfs4nhye7DZH9e4BfkwBmFHJKwJNs=
+#    ctPublicKey: MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCvuUnoPTFin84nDdpNZFDiGZgUKn6d9fbp6F4/fqrb6pFoJX/wLMr0IsheP0ZnVCPpLGKLjflPNHJo/P9WRRTSM67D8fRD8GKoq+7CtSJkdIticASpN/U8AgJiNV6xdReJcMkaAWJ1ZbOQ+nYLg9OE0qQ6cuXqhy/wVrqx72CrvwIDAQAB
+#    publicKey: MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCyVlpqmibguria884GdAYEuqCV4aQRl2N21+7l8Vxocoyz+M8KYyXqmlLKqApNL/U5pUVTjS6vpC6ojS+wvNbawijeMsm8r2NOlTHBnQ5vN0azjjPPtSrxgHL8/EYBa4lmBcexdmcUrUyWjAIYqfO8dlY+RuXvbiw7fBHZ7xpAvQIDAQAB
+#    privateKey: MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBALJWWmqaJuC6uJrzzgZ0BgS6oJXhpBGXY3bX7uXxXGhyjLP4zwpjJeqaUsqoCk0v9TmlRVONLq+kLqiNL7C81trCKN4yybyvY06VMcGdDm83RrOOM8+1KvGAcvz8RgFriWYFx7F2ZxStTJaMAhip87x2Vj5G5e9uLDt8EdnvGkC9AgMBAAECgYEAsEOHdEvOV1pWMdj9bgVpGW14YQu3RSfTSFheqGkpg5aMmSk3QbYDeOB1KhZysB3Ri9tdLRqi5TkqYK/DTjUnSUMs0iMhx0XaY2z3w16AMpvuJ0FZ4S2h8oAFfOWe4F6bpUYU8qmXANAaXcMm6HjU8k1QuTbjlSOeLujl8W7zk8ECQQDlHbUQ911kWmsSo8NE4S1+dq/6T+yIGCJlXzlNh/z6giMpjp8Dzm3fxDHLeZa+DCrhpT1qe6O3oGwx3HeR/85NAkEAx0NUy6pX5WolV+YAoLNHAmcCP26wQTB7LZ7mXbxww4yNNH9CWHE9PaBuV4Ws4NxSAnRDxrgArkz5+wgqnXzUMQJAHr16orkdra43+XtBYsd3jCUufT4l9SiPzNwW2yEovw+g2h2JlkAnG8O+DpfUstD9G+NItzW5hJSgj5wN6ufQbQJACEtdND0a+4m3lDkWvZm40vjGty08WPpTpkp+/FfjucAYAJ9re5L7IZ2T+kCuOY3yO/fq+lKedKLvpOtqGrQfgQJBAJ1wMccz+1ez8qpyTWbzj2h0O+GV+YDHqJ9SwRWcSacZOeAyO7UMgIZEwoYfs4nhye7DZH9e4BfkwBmFHJKwJNs=
+    ctPublicKey: MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDSsdhdXaBshYpHRc0mBWugsecv7U7OMmNNNrToXoAE789dfWZ8Im/YBwaB0JEYC55sDVr3pZeIoLLlDlD8IosYJGulQcUrlga5sZ6BjBsfvW+KtoU4H5krR7eKX4dGCHX2qGH9eHJRU1Y7jGhOwjxDvEBHwRlY2Ur/gD2vBcJT8wIDAQAB
+    publicKey: MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDG5XjPzLv7/LwXmDkSS2kL4JN3B9JK6mRDxgal+K7f5GY2c3TRXSIm2ot+2ZL2Tr4nSJEkZUe98ORovYnpvgeW16MFhPAkUYHVu3rv6JKuGrJhdvkfNC/TR92oey8/Qk0YwSeOzHEf1tEfMvnE3pC8xZom4Et2W9y62+RoH22uhQIDAQAB
+    privateKey: MIICdQIBADANBgkqhkiG9w0BAQEFAASCAl8wggJbAgEAAoGBAMbleM/Mu/v8vBeYORJLaQvgk3cH0krqZEPGBqX4rt/kZjZzdNFdIibai37ZkvZOvidIkSRlR73w5Gi9iem+B5bXowWE8CRRgdW7eu/okq4asmF2+R80L9NH3ah7Lz9CTRjBJ47McR/W0R8y+cTekLzFmibgS3Zb3Lrb5Ggfba6FAgMBAAECgYByDbKajo+Zr1L4wLyxZfbl7bECR8TqWsCGMK8tS46UKvgF720khaCI4Teu1Ps2LO9TvYQld8KNA+8mtNG57NOSQx3aaI/sH3XAsWExnNupSHs3/O0m91KMCrVfhDakpW+eXu9+BTyOQeHt5e+0R6hsUZ5OPhwOGoxBlNRWqQruXQJBAPlY2r994Yq37HV0WFofIKtRqDz5mGoL7iENZ7/TB64Qe6kbLBnq0Qha6TxyudlISYSGMzIHxqZ/gClDy5VQTUsCQQDMNASRJ9CuNkgTF/LswRJQmtVG9djzwD2W5r6QqWy7cBDOB9eenAAjmmP8R43edPdrYDuqpuvjUK5ISxkDAKFvAkAuGPM3+7m6v44DmOLMpnyPr6T+wNYgpNv9WFEZ8ZW15G44MUHR+Mt0U/pSppMdTHPrADRux2k+VswG1PXKQPJJAkAZScfXAgtBx88dLjYTQ8W03bfT1dZMOV5nNaQb3h9tBu/N1ALLzZ3mytPfBi13gxyw23YIKCvGNtOeeE5cpNNZAkBRsB9I6yogNDdYQHNiPpk+M5t043LbI+v+KAwUWqkkt81PJOqzrbxtySPmRxlAZI9flXQD5eRTvkHZWPnM/2/b
     partnerCode: JZG_TYTQ_SX
 
 #大家财险api
 dajia:
   api:
-    url: https://open-ics.djbx.com/dip-agent/agent/invokeForVchicle/api/
-    encryptKey: "By92YPLvG89XyFqv"
+    encryptKey: "qwertyuiopasdfgh"
 
 
 #国任财险测试api

+ 0 - 2
tenant/insurance/quotation-summary/src/main/resources/application-test.yaml

@@ -75,7 +75,6 @@ yangguang:
 #诚泰财险api
 chengtai:
   api:
-    baseUrl: http://39.98.238.167/chengtai/app/SERVER_V2/4001/
     ctPublicKey: MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCvuUnoPTFin84nDdpNZFDiGZgUKn6d9fbp6F4/fqrb6pFoJX/wLMr0IsheP0ZnVCPpLGKLjflPNHJo/P9WRRTSM67D8fRD8GKoq+7CtSJkdIticASpN/U8AgJiNV6xdReJcMkaAWJ1ZbOQ+nYLg9OE0qQ6cuXqhy/wVrqx72CrvwIDAQAB
     publicKey: MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCyVlpqmibguria884GdAYEuqCV4aQRl2N21+7l8Vxocoyz+M8KYyXqmlLKqApNL/U5pUVTjS6vpC6ojS+wvNbawijeMsm8r2NOlTHBnQ5vN0azjjPPtSrxgHL8/EYBa4lmBcexdmcUrUyWjAIYqfO8dlY+RuXvbiw7fBHZ7xpAvQIDAQAB
     privateKey: MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBALJWWmqaJuC6uJrzzgZ0BgS6oJXhpBGXY3bX7uXxXGhyjLP4zwpjJeqaUsqoCk0v9TmlRVONLq+kLqiNL7C81trCKN4yybyvY06VMcGdDm83RrOOM8+1KvGAcvz8RgFriWYFx7F2ZxStTJaMAhip87x2Vj5G5e9uLDt8EdnvGkC9AgMBAAECgYEAsEOHdEvOV1pWMdj9bgVpGW14YQu3RSfTSFheqGkpg5aMmSk3QbYDeOB1KhZysB3Ri9tdLRqi5TkqYK/DTjUnSUMs0iMhx0XaY2z3w16AMpvuJ0FZ4S2h8oAFfOWe4F6bpUYU8qmXANAaXcMm6HjU8k1QuTbjlSOeLujl8W7zk8ECQQDlHbUQ911kWmsSo8NE4S1+dq/6T+yIGCJlXzlNh/z6giMpjp8Dzm3fxDHLeZa+DCrhpT1qe6O3oGwx3HeR/85NAkEAx0NUy6pX5WolV+YAoLNHAmcCP26wQTB7LZ7mXbxww4yNNH9CWHE9PaBuV4Ws4NxSAnRDxrgArkz5+wgqnXzUMQJAHr16orkdra43+XtBYsd3jCUufT4l9SiPzNwW2yEovw+g2h2JlkAnG8O+DpfUstD9G+NItzW5hJSgj5wN6ufQbQJACEtdND0a+4m3lDkWvZm40vjGty08WPpTpkp+/FfjucAYAJ9re5L7IZ2T+kCuOY3yO/fq+lKedKLvpOtqGrQfgQJBAJ1wMccz+1ez8qpyTWbzj2h0O+GV+YDHqJ9SwRWcSacZOeAyO7UMgIZEwoYfs4nhye7DZH9e4BfkwBmFHJKwJNs=
@@ -84,7 +83,6 @@ chengtai:
 #大家财险api
 dajia:
   api:
-    url: https://open-ics.djbx.com/dip-agent/agent/invokeForVchicle/api/
     encryptKey: "By92YPLvG89XyFqv"
 
 

+ 1 - 3
tenant/insurance/quotation-taikang/pom.xml

@@ -3,12 +3,10 @@
     <modelVersion>4.0.0</modelVersion>
     <parent>
         <groupId>com.jzg</groupId>
-        <artifactId>tenant</artifactId>
+        <artifactId>insurance</artifactId>
         <version>1.0-SNAPSHOT</version>
     </parent>
     <artifactId>quotation-taikang</artifactId>
-    <packaging>jar</packaging>
-    <url>http://maven.apache.org</url>
 
     <properties>
         <maven.compiler.source>17</maven.compiler.source>

+ 45 - 45
tenant/insurance/quotation-taikang/src/test/java/com/jzg/quotation/taikang/crawler/TKHttpAPIServiceTest1.java

@@ -49,51 +49,51 @@ public class TKHttpAPIServiceTest1 {
 
     @BeforeAll
     public static void before() {
-        // 配置HTTP连接池
-        ConnectionProvider connectionProvider = ConnectionProvider
-                .builder("http")
-                .maxConnections(500)
-                .maxIdleTime(Duration.ofSeconds(30))
-                .build();
-
-        // 配置HTTP客户端
-        reactor.netty.http.client.HttpClient httpClient = reactor.netty.http.client.HttpClient
-                .create(connectionProvider)
-                .option(ChannelOption.CONNECT_TIMEOUT_MILLIS, 5000)
-                .responseTimeout(Duration.ofSeconds(50))
-                .doOnConnected(conn ->
-                        conn
-                                .addHandlerLast(new ReadTimeoutHandler(50))
-                                .addHandlerLast(new WriteTimeoutHandler(50)));
-        // 构建WebClient实例
-        WebClient webClient = WebClient
-                .builder()
-                .clientConnector(new ReactorClientHttpConnector(httpClient))
-                .defaultHeader(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON_VALUE)
-                .defaultHeader(HttpHeaders.ACCEPT, MediaType.APPLICATION_JSON_VALUE)
-                .filter(ExchangeFilterFunction.ofRequestProcessor(
-                        clientRequest -> {
-                            // 打印请求头信息
-                            clientRequest
-                                    .headers()
-                                    .forEach((key, values) -> {
-                                        logger.info("请求头: {}: {}", key, values);
-                                    });
-                            return Mono.just(clientRequest);
-                        }
-                ))
-                .codecs(item->item.defaultCodecs().maxInMemorySize(10 * 1024 * 1024))
-                .build();
-
-
-        RequestComponent requestComponent = new RequestComponent(webClient);
-
-        TKHttpClient client = new TKHttpClient();
-
-        client.setRequestComponent(requestComponent);
-
-        httpService = new TKHttpAPIService();
-        httpService.setClient(client);
+//        // 配置HTTP连接池
+//        ConnectionProvider connectionProvider = ConnectionProvider
+//                .builder("http")
+//                .maxConnections(500)
+//                .maxIdleTime(Duration.ofSeconds(30))
+//                .build();
+//
+//        // 配置HTTP客户端
+//        reactor.netty.http.client.HttpClient httpClient = reactor.netty.http.client.HttpClient
+//                .create(connectionProvider)
+//                .option(ChannelOption.CONNECT_TIMEOUT_MILLIS, 5000)
+//                .responseTimeout(Duration.ofSeconds(50))
+//                .doOnConnected(conn ->
+//                        conn
+//                                .addHandlerLast(new ReadTimeoutHandler(50))
+//                                .addHandlerLast(new WriteTimeoutHandler(50)));
+//        // 构建WebClient实例
+//        WebClient webClient = WebClient
+//                .builder()
+//                .clientConnector(new ReactorClientHttpConnector(httpClient))
+//                .defaultHeader(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON_VALUE)
+//                .defaultHeader(HttpHeaders.ACCEPT, MediaType.APPLICATION_JSON_VALUE)
+//                .filter(ExchangeFilterFunction.ofRequestProcessor(
+//                        clientRequest -> {
+//                            // 打印请求头信息
+//                            clientRequest
+//                                    .headers()
+//                                    .forEach((key, values) -> {
+//                                        logger.info("请求头: {}: {}", key, values);
+//                                    });
+//                            return Mono.just(clientRequest);
+//                        }
+//                ))
+//                .codecs(item->item.defaultCodecs().maxInMemorySize(10 * 1024 * 1024))
+//                .build();
+//
+//
+//        RequestComponent requestComponent = new RequestComponent(webClient);
+//
+//        TKHttpClient client = new TKHttpClient();
+//
+//        client.setRequestComponent(requestComponent);
+//
+//        httpService = new TKHttpAPIService();
+//        httpService.setClient(client);
     }
 
 

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

@@ -1,5 +1,6 @@
 package com.jzg.quotation.zijin.api.build;
 
+import cn.hutool.core.collection.CollUtil;
 import com.jzg.commons.constants.dict.InsOrderStatusEnum;
 import com.jzg.commons.entity.quote.vo.ExpenseFactor;
 import com.jzg.commons.entity.quote.vo.KindInfoVo;
@@ -11,9 +12,7 @@ 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 java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 import java.util.stream.Collectors;
 
 
@@ -35,19 +34,27 @@ public final class ZiJinAPIQuoteResultsVoBuild {
         quoteResultsVo.setQuoteStatus(InsOrderStatusEnum.WAIT_AUDIT.getCode());
         if(!calculatePremiumResponse.getRtnCode().equals(ResultEnum.C_0000)){
             quoteResultsVo.setQuoteStatus(InsOrderStatusEnum.QUOTE_FAIL.getCode());
+            quoteResultsVo.setQuoteStatusEnum(InsOrderStatusEnum.QUOTE_FAIL);
             quoteResultsVo.setErrorMessage(calculatePremiumResponse.getRtnMsg());
             return quoteResultsVo;
         }
+
         // 交强险
-        quoteResultsVo.setCiRiskInfoVo(new RiskInfoVo());
+        quoteResultsVo.setCiRiskInfoVo(quoteVo.getCiRiskInfoVo());
         // 商业险
-        quoteResultsVo.setBiRiskInfoVo(new RiskInfoVo());
+        quoteResultsVo.setBiRiskInfoVo(quoteVo.getBiRiskInfoVo());
+
+        // 商业险险种信息
         // 商业险险种信息
-        List<KindInfoVo> kindInfoVo = buildKindInfoVo(quoteVo.getKindInfoVo(), calculatePremiumResponse.getItemKindList());
-        quoteResultsVo.setKindInfoVo(kindInfoVo);
+        if(CollUtil.isNotEmpty(calculatePremiumResponse.getItemKindList())){
+            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);
+//        List<ExpenseFactor> expenseFactors = buildExpenseFactor(calculatePremiumResponse.getPriceInfoList());
+//        quoteResultsVo.setExpenseFactors(expenseFactors);
         // 交强保费 车船税 商业保费
         buildPremium(quoteResultsVo, calculatePremiumResponse.getPlanList());
 

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

@@ -46,6 +46,7 @@ public class ZiJinApiRequestComponent {
 
     public <T, B extends BaseResponse> B requestUrl(String url, T requestBody, Class<B> responseType, HttpHeaders httpHeaders) {
         ResponseEntity<B> bResponseEntity = requestComponent.objectPost(url, requestBody, responseType, httpHeaders);
+        System.out.println(bResponseEntity.getBody());
         return bResponseEntity.getBody();
     }
 
@@ -87,7 +88,7 @@ public class ZiJinApiRequestComponent {
         }
         number--;
         HttpHeaders httpHeaders = ziJinApiCacheComponent.getAuthorizationHeader(ziJinApiConfigureParameters.getAppKey());
-        if (ObjectUtils.isEmpty(httpHeaders)) {
+        if (!ObjectUtils.isEmpty(httpHeaders)) {
             return httpHeaders;
         }
 
@@ -97,6 +98,7 @@ public class ZiJinApiRequestComponent {
             boolean isLock = lock.tryLock(1, 10000, TimeUnit.MILLISECONDS);
             if (isLock) {
                 try {
+                    httpHeaders = new HttpHeaders();
                     return this.getToken(ziJinApiConfigureParameters, httpHeaders);
                 } finally {
                     lock.unlock();

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

@@ -19,6 +19,7 @@ import org.springframework.util.StringUtils;
 import java.io.Serial;
 import java.io.Serializable;
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.List;
 import java.util.Optional;
 import java.util.stream.Collectors;
@@ -134,7 +135,7 @@ public class CalculatePremiumRequest implements Serializable {
         this.proposalAreaCode = parameters.getProposalAreaCode();
         this.proposalCityCode = parameters.getProposalCityCode();
         // 驾意险信息
-        this.taxRelifInfo = new TaxRelifInfoDTO();
+        this.taxRelifInfo = new TaxRelifInfoDTO(quoteVo.getVehicleAndVesselTaxVo());
     }
 
     public void modificationOfVehicleType(ModelQueryResponse.VehicleModelInfosDTO vehicleModelInfosDTO, String actualValue) {
@@ -427,6 +428,11 @@ public class CalculatePremiumRequest implements Serializable {
 
     }
 
+    // 免税
+    private static final String TAX_EXEMPTION = "2";
+    // 减税
+    private static final String TAX_REDUCTION = "3";
+
     /**
      * 车船税信息
      */
@@ -522,6 +528,34 @@ public class CalculatePremiumRequest implements Serializable {
 
         }
 
+        public TaxRelifInfoDTO(VehicleAndVesselTaxVo vehicleAndVesselTaxVo){
+            String flag = vehicleAndVesselTaxVo.getTaxRelifFlag();
+            switch (flag) {
+                case TAX_EXEMPTION:
+                    this.freeRateText = FreeRateText.FRT_E.getCode();
+                    this.taxRelief = "1";
+                    break;
+                case TAX_REDUCTION:
+                    this.freeRateText = FreeRateText.FRT_P.getCode();
+                    this.taxRelief = vehicleAndVesselTaxVo.getTaxRelief();
+                    break;
+                default:
+                    break;
+            }
+            this.extendChar2 = vehicleAndVesselTaxVo.getExtendChar2();
+
+            this.relifReason = vehicleAndVesselTaxVo.getRelifReason();
+            this.taxComCode = vehicleAndVesselTaxVo.getTaxComCode();
+            this.taxComName = vehicleAndVesselTaxVo.getTaxComName();
+            this.taxDocumentDate = vehicleAndVesselTaxVo.getTaxDocumentDate();
+            this.taxPaidAreaCode = vehicleAndVesselTaxVo.getTaxPaidAreaCode();
+            this.paidFreeCertificate = vehicleAndVesselTaxVo.getPaidFreeCertificate();
+            this.taxpayerName = vehicleAndVesselTaxVo.getTaxpayerName();
+            this.taxpayerIdentifier = vehicleAndVesselTaxVo.getTaxpayerIdentifier();
+
+            this.identifyNumber = vehicleAndVesselTaxVo.getIdentifyNumber();
+            this.taxRelifFlag = flag;
+        }
     }
 
     /**
@@ -849,9 +883,76 @@ public class CalculatePremiumRequest implements Serializable {
 
         public VehicleInfoDTO(CarInfoVo carInfoVo, ModelQueryResponse.VehicleModelInfosDTO vehicleModelInfosDTO, String actualValue) {
 
+            this.actualValue = actualValue;
+            this.agreeActualValue = actualValue;
+            if (carInfoVo.isTransfer()) {
+                this.carLoanFlag = "1";
+                this.chgOwnerFlag = "1";
+                this.makeDate = carInfoVo.getIssueDate();
+                this.makeDateJQ = carInfoVo.getIssueDate();
+            } else {
+                this.chgOwnerFlag = "0";
+                this.carLoanFlag = "0";
+            }
+            this.engineNo = carInfoVo.getEngineNo();
+            this.enrollDate = carInfoVo.getRegisterDate();
+            this.licenseColorCode = "01";
+            this.licenseKindCode = "02";
+            this.licenseNo = carInfoVo.getLicenseNo();
+            this.modelCode = vehicleModelInfosDTO.getModelCode();
+            this.noLicenseFlag = "1";
+            this.purchasePrice = vehicleModelInfosDTO.getPurchasePrice();
+            this.seatCount = carInfoVo.getSeatCount();
+
+            // 车辆使用性质代码
+            this.useNatureCode = carInfoVo.getVehicleUseCode();
 
-        }
+            this.vehicleId = vehicleModelInfosDTO.getVehicleId();
+
+            this.vinNo = carInfoVo.getVinNo();
+            this.brandName = vehicleModelInfosDTO.getModelName();
+            this.carInsuredRelation = "1";
+
+            String limitLoad = carInfoVo.getLimitLoad();
+
+            if ("H0".equals(carInfoVo.getCarKindCode())) {
+                double v = Double.parseDouble(limitLoad) / 1000;
+                this.tonCount = String.valueOf(v);
+                this.carKindDetailId = carInfoVo.getCarKindDetailIdCode();
+                this.printUseNatureCode = "0003";
+            } else {
+                this.carKindDetailId = carInfoVo.getCarKindDetailIdCode();
+            }
+
+            this.completekerbmass = carInfoVo.getCompleteKerbMass();
+            // 车辆种类代码
+            this.carKindCode = carInfoVo.getCarKindCode();
+
+            this.exhaustCapacity = !StringUtils.isEmpty(vehicleModelInfosDTO.getExhaustCapacity()) ?
+                    vehicleModelInfosDTO.getExhaustCapacity() : "0";
+            this.oriCarKindName = carInfoVo.getCarTypeCode();
 
+            this.platVehicleCode = vehicleModelInfosDTO.getPlatVehicleCode();
+            this.modelEnergyType = vehicleModelInfosDTO.getPowerTypeCode();
+            this.ecdemicVehicleFlag = "0";
+            this.printModelName = vehicleModelInfosDTO.getModelName();
+            this.power = vehicleModelInfosDTO.getPower();
+            this.oriPurchasePrice = vehicleModelInfosDTO.getPurchasePrice();
+            this.oriBrandName = vehicleModelInfosDTO.getModelName();
+            this.oriModelName = vehicleModelInfosDTO.getModelName();
+//            this.vehicleStyleUniqueId = vehicleModelInfosDTO.getVehicleId();
+            this.isInvokeJingYou = "1";
+            String[] ENERGY = new String[]{"1","2","3","4"};
+            //纯电动 燃料电池 插电式混合动力 归属为新能源产品
+            if (Arrays.asList(ENERGY).contains(carInfoVo.getEnergyTypeCode())) {
+                this.newEnergyFlag = "1";
+                this.pureRange = "";
+                this.fuelType = carInfoVo.getEnergyTypeCode();
+            }else{
+                this.newEnergyFlag = "0";
+                this.pureRange = "";
+            }
+        }
         public void modificationOfVehicleType(ModelQueryResponse.VehicleModelInfosDTO vehicleModelInfosDTO, String actualValue) {
             this.actualValue = actualValue;
             this.agreeActualValue = actualValue;
@@ -1019,7 +1120,8 @@ public class CalculatePremiumRequest implements Serializable {
                 this.identifyType = "73";
                 this.insuredNature = "4";
                 this.insuredType = "2";
-                this.sex = "9";
+                int gender = IdcardUtil.getGenderByIdCard(customerInfoVo.getIdentifyNumber());
+                this.sex = gender == 1 ? "1" : "2";
                 this.certigierName = customerInfoVo.getLegalPerson();
                 this.certigierType = "01";
                 this.certigierNumber = customerInfoVo.getLeaderIdentifyNumber();

+ 9 - 4
tenant/insurance/quotation-zijin/src/main/java/com/jzg/quotation/zijin/api/entity/request/QueryActualValueRequest.java

@@ -3,11 +3,13 @@ package com.jzg.quotation.zijin.api.entity.request;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import com.jzg.commons.entity.quote.vo.CarInfoVo;
+import com.jzg.commons.entity.quote.vo.QuoteVo;
 import lombok.Data;
 import lombok.NoArgsConstructor;
 
 import java.io.Serial;
 import java.io.Serializable;
+import java.util.Objects;
 
 
 /**
@@ -49,15 +51,18 @@ public class QueryActualValueRequest implements Serializable {
     /**
      * @param carInfoVo     车辆信息
      * @param purchasePrice 新车购置价格
-     * @param startDate     起保时间
      */
-    public QueryActualValueRequest(CarInfoVo carInfoVo, String purchasePrice, String startDate) {
+    public QueryActualValueRequest(CarInfoVo carInfoVo, String purchasePrice, QuoteVo quoteVo) {
         this.carKindCode = carInfoVo.getCarKindCode();
-//        this.certificateDate = certificateDate;
+        this.certificateDate = carInfoVo.getIssueDate();
         this.enrollDate = carInfoVo.getRegisterDate();
         this.purchasePrice = purchasePrice;
         this.seatCount = carInfoVo.getSeatCount();
-        this.startDate = startDate;
+        if(Objects.nonNull(quoteVo.getCiRiskInfoVo())){
+            this.startDate = quoteVo.getCiRiskInfoVo().getStartDate();
+        } else if(Objects.nonNull(quoteVo.getBiRiskInfoVo())){
+            this.startDate = quoteVo.getBiRiskInfoVo().getStartDate();
+        }
         this.tonCount = carInfoVo.getTonCount();
         this.useNatureCode = carInfoVo.getVehicleUseCode();
     }

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

@@ -1,4 +1,4 @@
-package com.jzg.quotation.zijin.api.service.Impl;
+package com.jzg.quotation.zijin.api.service.impl;
 
 import com.jzg.commons.constants.dict.InsOrderStatusEnum;
 import com.jzg.commons.entity.orders.po.InsOrdersCosts;
@@ -65,7 +65,7 @@ public class ZiJinApiRequestImpl implements ZiJinApiRequest {
         // 过滤车型
         ModelQueryResponse.VehicleModelInfosDTO vehicleModelInfosDTO = CarModelsFilterUtils.to(modelQueryResponse.getVehicleModelInfos(), carInfoVo);
         // 计算车辆价格
-        QueryActualValueRequest queryActualValueRequest = new QueryActualValueRequest(carInfoVo, vehicleModelInfosDTO.getPurchasePrice(), "");
+        QueryActualValueRequest queryActualValueRequest = new QueryActualValueRequest(carInfoVo, vehicleModelInfosDTO.getPurchasePrice(), quoteVo);
         QueryActualValueResponse queryActualValueResponse = ziJinApiRequestComponent.queryActualValue(queryActualValueRequest, httpHeaders);
         // 报价
         CalculatePremiumRequest calculatePremiumRequest = new CalculatePremiumRequest(quoteVo, vehicleModelInfosDTO, queryActualValueResponse.getActualValue(), parameters, modelQueryResponse);

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

@@ -1,4 +1,4 @@
-package com.jzg.quotation.zijin.api.service.Impl;
+package com.jzg.quotation.zijin.api.service.impl;
 
 import com.jzg.commons.entity.quote.vo.QuoteVo;
 import com.jzg.quotation.zijin.api.entity.po.ZiJinApiOrder;

+ 1 - 2
tenant/organization/src/main/java/com/jzg/organization/service/impl/PtlAgreementServiceImpl.java

@@ -504,8 +504,7 @@ public class PtlAgreementServiceImpl extends ServiceImpl<PtlAgreementMapper, Ptl
     @Override
     public List<PtlAgreement> getByCompanyId(String companyId,String systemCode) {
         List<PtlAgreement> ptlAgreements = baseMapper.selectList(new LambdaQueryWrapper<PtlAgreement>()
-                .eq(PtlAgreement::getCompanyId, companyId)
-                .eq(PtlAgreement::getSystemCode, systemCode));
+                .eq(PtlAgreement::getCompanyId, companyId));
         return ptlAgreements;
     }
 

+ 13 - 1
tenant/organization/src/main/resources/application.yml

@@ -23,6 +23,17 @@ upload:
     path: D:/nasData
     url: http://192.168.0.250:8001/
 
+feign:
+  client:
+    jzg-insurance:
+      url: http://localhost:9898/
+    jzg-org:
+      url: http://localhost:8084/
+    jzg-costsorrule:
+      url: http://localhost:8085/
+    jzg-platform:
+      url: http://localhost:8083/
+
 #多租户配置
 tenant:
   enable: true
@@ -77,7 +88,6 @@ tenant:
     - ins_orders_car_info
     - ins_orders_policy
     - sys_relation_person
-    - ptl_agreement
     - ins_ply_income_invoice_link
     - ins_orders_risk
     - ins_orders_car_user_info
@@ -92,6 +102,8 @@ tenant:
     - wechat_customer_service_recording
     - ins_fee_audit
     - sys_user_jzg_info_bank_card_record
+    - ptl_agreement_dispatch_rules_attr_link
+    - ptl_agreement_dispatch_action
     - sys_app_manage
     - sys_version
     - ptl_agreement_dispatch_rules_attr_link