Просмотр исходного кода

Merge branch 'master' of http://39.101.143.165:8090/785834757/jzg

lipf 1 месяц назад
Родитель
Сommit
eca40048e5
15 измененных файлов с 316 добавлено и 259 удалено
  1. 0 3
      commons/src/main/java/com/jzg/commons/entity/orders/po/InsOrdersPolicy.java
  2. 218 207
      commons/src/main/java/com/jzg/commons/entity/quote/vo/aggregated/QuoteEchoVo.java
  3. 6 1
      commons/src/main/java/com/jzg/commons/entity/quote/vo/aggregated/QuoteResultsVo.java
  4. 4 0
      commons/src/main/java/com/jzg/commons/entity/scheme/vo/SchemeRuleFilterVo.java
  5. 26 0
      commons/src/main/java/com/jzg/commons/entity/vo/InsFeeOrdersVo.java
  6. 1 1
      commons/src/main/java/com/jzg/commons/entity/vo/RuleAttrMappingVo.java
  7. 7 7
      tenant/insurance/quotation-huanong/src/main/java/com/jzg/quotation/huanong/crawler/constant/enums/JiaYiXianProduct.java
  8. 0 1
      tenant/insurance/quotation-huanong/src/main/java/com/jzg/quotation/huanong/crawler/entity/request/HuaNongCrawlerQuotedPriceRequestRequest.java
  9. 17 30
      tenant/insurance/quotation-renbaonew/src/main/java/com/jzg/quotation/renbaonew/crawler/service/impl/RenBaoNewCrawlerRequestBuilder.java
  10. 1 0
      tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/service/impl/InsOrdersServiceImpl.java
  11. 6 1
      tenant/insurance/quotation-summary/src/main/resources/mapper/InsOrdersMapper.xml
  12. 7 1
      tenant/insurance/quotation-taiping/src/main/java/com/jzg/quotation/taiping/crawler/entity/request/TaiPingCrawlerBrandNameQueryRequest.java
  13. 3 3
      tenant/organization/src/main/java/com/jzg/organization/controller/SchemeController.java
  14. 2 3
      tenant/organization/src/main/java/com/jzg/organization/service/PtlSchemeService.java
  15. 18 1
      tenant/organization/src/main/java/com/jzg/organization/service/impl/PtlSchemeServiceImpl.java

+ 0 - 3
commons/src/main/java/com/jzg/commons/entity/orders/po/InsOrdersPolicy.java

@@ -4,9 +4,6 @@ import com.baomidou.mybatisplus.annotation.TableId;
 import com.jzg.commons.core.base.BaseModel;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
-import org.springframework.data.annotation.Id;
-
-import java.io.Serializable;
 
 @Data
 @Schema(description = "保险订单保单信息")

+ 218 - 207
commons/src/main/java/com/jzg/commons/entity/quote/vo/aggregated/QuoteEchoVo.java

@@ -21,6 +21,7 @@ import com.jzg.commons.entity.quote.vo.orders.InsOrdersVo;
 import com.jzg.commons.entity.rights.vo.InsOrderRightsInfoVo;
 import com.jzg.commons.entity.scheme.vo.PtlAgreementInsCompanyVo;
 import com.jzg.commons.entity.vo.InsFeeOrdersVo;
+import com.jzg.commons.entity.vo.InsOrdersOtherInfoVo;
 import com.jzg.commons.entity.vo.PtlAgreementCostRatioVo;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.AllArgsConstructor;
@@ -51,71 +52,179 @@ public class QuoteEchoVo extends QuoteVo {
     private static final long serialVersionUID = 1928126868229420046L;
 
     /**
-     * OrderBase追加属性
+     * 订单数据库查询数据转 QuoteVo对象
+     * @param insOrdersVo
      */
-    @Data
-    private static class OrderBaseVo extends OrderBase{
-        @Serial
-        private static final long serialVersionUID = -9184896455541993138L;
+    public QuoteEchoVo(InsOrdersVo insOrdersVo){
+        if(Objects.isNull(this.getOrder())){
+            this.setOrder(new OrderBaseVo());
+        }
+        this.setOrdersNo(insOrdersVo.getId());
+        this.getOrder().setAgreementId(insOrdersVo.getInsOrders().getAgreementId());
+        this.getOrder().setAgreementName(insOrdersVo.getAgreementName());
+        this.getOrder().setAgreementOwnership(insOrdersVo.getAgreementOwnership());
+        this.getOrder().setAgreementType(insOrdersVo.getAgreementType());
+        this.getOrder().setOrdersNo(insOrdersVo.getId());
+        this.getOrder().setQuoteNo(insOrdersVo.getQuoteNo());
+        this.getOrder().setInsuranceCompanyCode(insOrdersVo.getCompanyId());
+        this.getOrder().setCompanyName(insOrdersVo.getCompanyName());
+        this.getOrder().setProductId(insOrdersVo.getProductId());
+        this.getOrder().setProductsName(insOrdersVo.getProductName());
+        this.getOrder().setOrderStatus(insOrdersVo.getInsOrders().getOrderStatus());
+        this.getOrder().setCreateBy(insOrdersVo.getCreateBy());
+        this.getOrder().setCreateTime(insOrdersVo.getCreateTime());
+        this.getOrder().setQuoteTime(insOrdersVo.getCreateTime());
+        this.getOrder().setSigningTime(insOrdersVo.getSigningTime());
+        this.getOrder().setPayTime(insOrdersVo.getPayTime());
+        this.getOrder().setOrderType(insOrdersVo.getOrderType());
+        this.getOrder().setEntryStatus(insOrdersVo.getEntryStatus());
+        this.getOrder().setDockingPerson (insOrdersVo.getDockingPerson());
+        this.getOrder().setDockingPersonPhone(insOrdersVo.getDockingPersonPhone());
+        if (Objects.nonNull(insOrdersVo.getSpecialInfoVo())) {
+            this.setCiSpecialInfoVo(insOrdersVo.getSpecialInfoVo().stream().filter(companyClauseVo -> companyClauseVo.getRiskCode().equals("0507")).collect(Collectors.toList()));
+            this.setBiSpecialInfoVo(insOrdersVo.getSpecialInfoVo().stream().filter(companyClauseVo -> companyClauseVo.getRiskCode().equals("0510")).collect(Collectors.toList()));
+        }
+        Salesman salesman = new Salesman();
+        if (!Objects.isNull(insOrdersVo.getSalesmanInfo())){
+            salesman.setName(insOrdersVo.getSalesmanInfo().getName());
+            salesman.setDeptName(insOrdersVo.getSalesmanInfo().getDeptName());
+            salesman.setTypeAttr(insOrdersVo.getSalesmanInfo().getTypeAttr());
+            salesman.setDeptId(insOrdersVo.getSalesmanInfo().getDeptId());
+            salesman.setMobile(insOrdersVo.getSalesmanInfo().getMobile());
+            salesman.setSystemCode(insOrdersVo.getSalesmanInfo().getSystemCode());
+            salesman.setSystemName(insOrdersVo.getSalesmanInfo().getSystemName());
+            salesman.setSystemShortName(insOrdersVo.getSalesmanInfo().getSystemShortName());
+            salesman.setRealQuoteUserManagerId(insOrdersVo.getSalesmanInfo().getRealQuoteUserManagerId());
+            salesman.setRealQuoteUserManagerUseName(insOrdersVo.getSalesmanInfo().getRealQuoteUserManagerUseName());
+        }
+        this.setSalesmanInfo(salesman);
+        this.setErrorMessage(insOrdersVo.getErrorMessage());
 
-        private Integer entryStatus;
+        //车辆信息处理
+        this.setCarInfoVo(insOrdersVo.getCarInfoVo());
+        if (Objects.nonNull(insOrdersVo.getCarInfoVo())) {
+            if (Objects.nonNull(insOrdersVo.getCarInfoVo().getRegisterDate()) && insOrdersVo.getCarInfoVo().getRegisterDate().contains(" ")) {
+                insOrdersVo.getCarInfoVo().setRegisterDate(insOrdersVo.getCarInfoVo().getRegisterDate().substring(0, insOrdersVo.getCarInfoVo().getRegisterDate().indexOf(" ")));
+            }
+            if (Objects.nonNull(insOrdersVo.getCarInfoVo().getIssueDate()) && insOrdersVo.getCarInfoVo().getIssueDate().contains(" ")) {
+                insOrdersVo.getCarInfoVo().setIssueDate(insOrdersVo.getCarInfoVo().getIssueDate().substring(0, insOrdersVo.getCarInfoVo().getIssueDate().indexOf(" ")));
+            }
+            if (Objects.nonNull(insOrdersVo.getCarInfoVo().getTransferDate()) && insOrdersVo.getCarInfoVo().getTransferDate().contains(" ")) {
+                insOrdersVo.getCarInfoVo().setTransferDate(insOrdersVo.getCarInfoVo().getTransferDate().substring(0, insOrdersVo.getCarInfoVo().getTransferDate().indexOf(" ")));
+            }
+        }
 
-        private String orderStatus;
-        private String companyName;
-        private String productsName;
+        // 批改信息处理
+        if(Objects.nonNull(insOrdersVo.getInsOrderAdjust())) {
+            InsOrderAdjustVo insOrderAdjustVo = new InsOrderAdjustVo();
+            BeanUtils.copyProperties(insOrdersVo.getInsOrderAdjust(), insOrderAdjustVo);
+            insOrderAdjustVo.setAdjustInfoList(insOrdersVo.getInsOrderAdjust().getAdjustInfoList());
+            this.insOrderAdjustVo = insOrderAdjustVo;
+        }
 
-        private String dockingPerson;
-        private String dockingPersonPhone;
+        //人员处理
+        this.setOwnersInfo(insOrdersVo.getOwnersInfo());
+        this.setPolicyHolderInfo(insOrdersVo.getPolicyHolderInfo());
+        this.setInsuredPersonInfo(insOrdersVo.getInsuredPersonInfo());
 
-        /**
-         * 方案ID
-         */
-        private String schemeId;
+        //险种处理
+        insOrdersVo.getInsOrdersRiskList().forEach(item->{
+            if(item.getRiskCode().equals(RiskCode.TRAFFIC.getCode())){
+                RiskInfoVo riskInfoVo = new RiskInfoVo();
+                riskInfoVo.setRiskCode(RiskCode.TRAFFIC.getCode());
+                // modify by lipf, 提高代码的健壮性 2026年6月2日18:57:09
+                riskInfoVo.setStartDate(item.getStartDate() != null ? item.getStartDate().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")): "");
+                riskInfoVo.setEndDate(item.getEndDate() != null ?  item.getEndDate().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")):"");
+                riskInfoVo.setInstantFlag(item.getStartDate() != null && (item.getStartDate().getHour() != 0 || item.getStartDate().getMinute() != 0 || item.getStartDate().getSecond() != 0));
+                this.setCiRiskInfoVo(riskInfoVo);
+            }
+            if(item.getRiskCode().equals(RiskCode.BUSINESS.getCode())){
+                RiskInfoVo riskInfoVo = new RiskInfoVo();
+                riskInfoVo.setRiskCode(RiskCode.BUSINESS.getCode());
+                riskInfoVo.setStartDate(item.getStartDate() !=null ? item.getStartDate().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")):"");
+                riskInfoVo.setEndDate(item.getEndDate() != null ? item.getEndDate().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")):"");
+                riskInfoVo.setInstantFlag(item.getStartDate() != null && (item.getStartDate().getHour() != 0 || item.getStartDate().getMinute() != 0 || item.getStartDate().getSecond() != 0));
+                this.setBiRiskInfoVo(riskInfoVo);
+            }
+        });
+        // 添加交强险种信息
+        if(ProductsType.isContainDj(insOrdersVo.getProductId())){
+            KindInfoVo jqKindInfoVo = new KindInfoVo();
+            jqKindInfoVo.setKindCode("J1");
+            jqKindInfoVo.setKindName("机动车交通事故责任强制保险");
+            if(Objects.nonNull(insOrdersVo.getInsOrdersCosts().getJqPremium())) {
+                jqKindInfoVo.setPremium(insOrdersVo.getInsOrdersCosts().getJqPremium().toString());
+            }
+            jqKindInfoVo.setAmount("200000");
+            jqKindInfoVo.setServiceTimes("200000");
+            jqKindInfoVo.setUnitAmount("200000");
+            insOrdersVo.getKindInfoVo().add(0,jqKindInfoVo);
+        }
+        // 移除交强
+//        insOrdersVo.getKindInfoVo().removeIf(item -> "J1".equals(item.getKindCode()));
 
-        /**
-         * 协议id
-         */
-        private String agreementId;
-        private String agreementName;
-        private String agreementType;
+        this.setKindInfoVo(insOrdersVo.getKindInfoVo());
+        this.setAccidentalDrivings(insOrdersVo.getAccidentalDrivings());
+        this.setVehicleAndVesselTaxVo(insOrdersVo.getVehicleAndVesselTaxVo());
 
-        /**
-         * 协议归属
-         */
-        private String agreementOwnership;
+        //费用处理
+        this.costs = new OrdersCostsVo();
+        if(insOrdersVo.getInsOrdersCosts() != null){
+            this.costs.setCiPremium(insOrdersVo.getInsOrdersCosts().getJqPremium());
+            this.costs.setBiPremium(insOrdersVo.getInsOrdersCosts().getSyPremium());
+            this.costs.setNiPremium(insOrdersVo.getInsOrdersCosts().getJyPremium());
+            this.costs.setVvTax(insOrdersVo.getInsOrdersCosts().getTaxPremium());
+            this.costs.setSumPremium(insOrdersVo.getInsOrdersCosts().getSumPremium());
+            this.costs.setCiRatio(insOrdersVo.getInsOrdersCosts().getJqRatio());
+            this.costs.setBiRatio(insOrdersVo.getInsOrdersCosts().getSyRatio());
+            this.costs.setTotalAmount(insOrdersVo.getInsOrdersCosts().getTotalAmount());
+        }
 
-        private String createBy;
+        //保单号信息
+        this.policy = new OrdersPolicyVo();
+        if(insOrdersVo.getInsOrdersPolicy() != null){
+            this.policy.setCiApplyNumber(insOrdersVo.getInsOrdersPolicy().getJqApplyNo());
+            this.policy.setCiPolicyNumber(insOrdersVo.getInsOrdersPolicy().getJqPolicyNo());
+            this.policy.setBiApplyNumber(insOrdersVo.getInsOrdersPolicy().getSyApplyNo());
+            this.policy.setBiPolicyNumber(insOrdersVo.getInsOrdersPolicy().getSyPolicyNo());
+            this.policy.setNiApplyNumber(insOrdersVo.getInsOrdersPolicy().getJyApplyNo());
+            this.policy.setNiPolicyNumber(insOrdersVo.getInsOrdersPolicy().getJyPolicyNo());
+        }
+        if(insOrdersVo.getInsOrdersPdfUrl() != null){
+            this.policy.setCiPolicyUrl(insOrdersVo.getInsOrdersPdfUrl().getJqUrl());
+            this.policy.setBiPolicyUrl(insOrdersVo.getInsOrdersPdfUrl().getSyUrl());
+            this.policy.setNiPolicyUrl(insOrdersVo.getInsOrdersPdfUrl().getJyUrl());
+            this.policy.setCiPolicySignUrl(insOrdersVo.getInsOrdersPdfUrl().getJqSignUrl());
+        }
 
-        /**
-         * 这个方法不能删除, 在前端有用agreementName字段
-         */
-        public String getAgreementTypeName(){
-            if(StrUtil.isEmpty(this.agreementType)){
-                return StrUtil.EMPTY;
-            }
-            // 1、平台协议-平台结算 2、私有协议-自行结算 3、网销协议-自行结算
-            if("1".equals(this.agreementType)){
-                return "平台协议";
-            }else if("2".equals(this.agreementType)){
-                return "私有协议";
-            }else if("3".equals(this.agreementType)) {
-                return  "网销协议";
-            }else{
-                return this.agreementType;
-            }
+        //评分信息
+        this.scoreVo = new QuoteResultsVo.ScoreVo();
+        if (Objects.nonNull(insOrdersVo.getInsOrdersOtherInfo())) {
+            InsOrdersOtherInfoVo otherInfo = insOrdersVo.getInsOrdersOtherInfo();
+            this.scoreVo.setScore(otherInfo.getScore() == null ? null : otherInfo.getScore());
+            this.scoreVo.setLossRation(otherInfo.getLossRation() == null ? null : otherInfo.getLossRation().toString());
+            this.scoreVo.setJqLossRation(otherInfo.getJqLossRation() == null ? null : otherInfo.getJqLossRation().toString());
+            this.scoreVo.setSyLossRation(otherInfo.getSyLossRation() == null ? null : otherInfo.getSyLossRation().toString());
+            this.scoreVo.setCiClaims(Byte.toString(otherInfo.getJqClaims()));
+            this.scoreVo.setBiClaims(Byte.toString(otherInfo.getSyClaims()));
+            this.scoreVo.setJqRenewal(otherInfo.getJqRenewal());
+            this.scoreVo.setSyRenewal(otherInfo.getSyRenewal());
+            this.scoreVo.setIsDjq(Byte.toString(otherInfo.getIsDjq()));
+            this.scoreVo.setTotalAdjustRate(otherInfo.getTotalAdjustRate() == null ? null : otherInfo.getTotalAdjustRate().toString());
+            this.scoreVo.setJqAdjustRate(otherInfo.getJqAdjustRate() == null ? null : otherInfo.getJqAdjustRate().toString());
+            this.scoreVo.setSyAdjustRate(otherInfo.getSyAdjustRate() == null ? null : otherInfo.getSyAdjustRate().toString());
+            this.scoreVo.setScoreJson(otherInfo.getScoreJson());
         }
 
-        /**
-         * 保司id
-         */
-        private String insuranceCompanyCode;
-        @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
-        private LocalDateTime createTime;
-        @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
-        private LocalDateTime quoteTime;
-        private String signingTime;
-        private String payTime;
-        private String orderType;
+        // 未匹配费用原因
+        if(Objects.nonNull(insOrdersVo.getInsOrdersOtherInfo())) {
+            this.setFeeNoDescription(insOrdersVo.getInsOrdersOtherInfo().getFeeNoDescription());
+        }
+
+        //驾意险存储
+        List<AccidentalDrivingVo> accidentalDrivings = insOrdersVo.getAccidentalDrivings();
+
+        this.setAccidentalDrivings(accidentalDrivings);
     }
 
     private OrderBaseVo order;
@@ -353,170 +462,72 @@ public class QuoteEchoVo extends QuoteVo {
     }
 
     /**
-     * 订单数据库查询数据转 QuoteVo对象
-     * @param insOrdersVo
+     * OrderBase追加属性
      */
-    public QuoteEchoVo(InsOrdersVo insOrdersVo){
-        if(Objects.isNull(this.getOrder())){
-            this.setOrder(new OrderBaseVo());
-        }
-        this.setOrdersNo(insOrdersVo.getId());
-        this.getOrder().setAgreementId(insOrdersVo.getInsOrders().getAgreementId());
-        this.getOrder().setAgreementName(insOrdersVo.getAgreementName());
-        this.getOrder().setAgreementOwnership(insOrdersVo.getAgreementOwnership());
-        this.getOrder().setAgreementType(insOrdersVo.getAgreementType());
-        this.getOrder().setOrdersNo(insOrdersVo.getId());
-        this.getOrder().setQuoteNo(insOrdersVo.getQuoteNo());
-        this.getOrder().setInsuranceCompanyCode(insOrdersVo.getCompanyId());
-        this.getOrder().setCompanyName(insOrdersVo.getCompanyName());
-        this.getOrder().setProductId(insOrdersVo.getProductId());
-        this.getOrder().setProductsName(insOrdersVo.getProductName());
-        this.getOrder().setOrderStatus(insOrdersVo.getInsOrders().getOrderStatus());
-        this.getOrder().setCreateBy(insOrdersVo.getCreateBy());
-        this.getOrder().setCreateTime(insOrdersVo.getCreateTime());
-        this.getOrder().setQuoteTime(insOrdersVo.getCreateTime());
-        this.getOrder().setSigningTime(insOrdersVo.getPayTime());
-        this.getOrder().setOrderType(insOrdersVo.getOrderType());
-        this.getOrder().setEntryStatus(insOrdersVo.getEntryStatus());
-        this.getOrder().setDockingPerson (insOrdersVo.getDockingPerson());
-        this.getOrder().setDockingPersonPhone(insOrdersVo.getDockingPersonPhone());
-        if (Objects.nonNull(insOrdersVo.getSpecialInfoVo())) {
-            this.setCiSpecialInfoVo(insOrdersVo.getSpecialInfoVo().stream().filter(companyClauseVo -> companyClauseVo.getRiskCode().equals("0507")).collect(Collectors.toList()));
-            this.setBiSpecialInfoVo(insOrdersVo.getSpecialInfoVo().stream().filter(companyClauseVo -> companyClauseVo.getRiskCode().equals("0510")).collect(Collectors.toList()));
-        }
-        Salesman salesman = new Salesman();
-        if (!Objects.isNull(insOrdersVo.getSalesmanInfo())){
-            salesman.setName(insOrdersVo.getSalesmanInfo().getName());
-            salesman.setDeptName(insOrdersVo.getSalesmanInfo().getDeptName());
-            salesman.setTypeAttr(insOrdersVo.getSalesmanInfo().getTypeAttr());
-            salesman.setDeptId(insOrdersVo.getSalesmanInfo().getDeptId());
-            salesman.setMobile(insOrdersVo.getSalesmanInfo().getMobile());
-            salesman.setSystemCode(insOrdersVo.getSalesmanInfo().getSystemCode());
-            salesman.setSystemName(insOrdersVo.getSalesmanInfo().getSystemName());
-            salesman.setSystemShortName(insOrdersVo.getSalesmanInfo().getSystemShortName());
-            salesman.setRealQuoteUserManagerId(insOrdersVo.getSalesmanInfo().getRealQuoteUserManagerId());
-            salesman.setRealQuoteUserManagerUseName(insOrdersVo.getSalesmanInfo().getRealQuoteUserManagerUseName());
-        }
-        this.setSalesmanInfo(salesman);
-        this.setErrorMessage(insOrdersVo.getErrorMessage());
-
-        //车辆信息处理
-        this.setCarInfoVo(insOrdersVo.getCarInfoVo());
-        if (Objects.nonNull(insOrdersVo.getCarInfoVo())) {
-            if (Objects.nonNull(insOrdersVo.getCarInfoVo().getRegisterDate()) && insOrdersVo.getCarInfoVo().getRegisterDate().contains(" ")) {
-                insOrdersVo.getCarInfoVo().setRegisterDate(insOrdersVo.getCarInfoVo().getRegisterDate().substring(0, insOrdersVo.getCarInfoVo().getRegisterDate().indexOf(" ")));
-            }
-            if (Objects.nonNull(insOrdersVo.getCarInfoVo().getIssueDate()) && insOrdersVo.getCarInfoVo().getIssueDate().contains(" ")) {
-                insOrdersVo.getCarInfoVo().setIssueDate(insOrdersVo.getCarInfoVo().getIssueDate().substring(0, insOrdersVo.getCarInfoVo().getIssueDate().indexOf(" ")));
-            }
-            if (Objects.nonNull(insOrdersVo.getCarInfoVo().getTransferDate()) && insOrdersVo.getCarInfoVo().getTransferDate().contains(" ")) {
-                insOrdersVo.getCarInfoVo().setTransferDate(insOrdersVo.getCarInfoVo().getTransferDate().substring(0, insOrdersVo.getCarInfoVo().getTransferDate().indexOf(" ")));
-            }
-        }
+    @Data
+    private static class OrderBaseVo extends OrderBase{
+        @Serial
+        private static final long serialVersionUID = -9184896455541993138L;
 
-        // 批改信息处理
-        if(Objects.nonNull(insOrdersVo.getInsOrderAdjust())) {
-            InsOrderAdjustVo insOrderAdjustVo = new InsOrderAdjustVo();
-            BeanUtils.copyProperties(insOrdersVo.getInsOrderAdjust(), insOrderAdjustVo);
-            insOrderAdjustVo.setAdjustInfoList(insOrdersVo.getInsOrderAdjust().getAdjustInfoList());
-            this.insOrderAdjustVo = insOrderAdjustVo;
-        }
+        private Integer entryStatus;
 
-        //人员处理
-        this.setOwnersInfo(insOrdersVo.getOwnersInfo());
-        this.setPolicyHolderInfo(insOrdersVo.getPolicyHolderInfo());
-        this.setInsuredPersonInfo(insOrdersVo.getInsuredPersonInfo());
+        private String orderStatus;
+        private String companyName;
+        private String productsName;
 
-        //险种处理
-        insOrdersVo.getInsOrdersRiskList().forEach(item->{
-            if(item.getRiskCode().equals(RiskCode.TRAFFIC.getCode())){
-                RiskInfoVo riskInfoVo = new RiskInfoVo();
-                riskInfoVo.setRiskCode(RiskCode.TRAFFIC.getCode());
-                // modify by lipf, 提高代码的健壮性 2026年6月2日18:57:09
-                riskInfoVo.setStartDate(item.getStartDate() != null ? item.getStartDate().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")): "");
-                riskInfoVo.setEndDate(item.getEndDate() != null ?  item.getEndDate().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")):"");
-                riskInfoVo.setInstantFlag(item.getStartDate() != null ? item.getStartDate().getHour() != 0 || item.getStartDate().getMinute() != 0 || item.getStartDate().getSecond() != 0: false);
-                this.setCiRiskInfoVo(riskInfoVo);
-            }
-            if(item.getRiskCode().equals(RiskCode.BUSINESS.getCode())){
-                RiskInfoVo riskInfoVo = new RiskInfoVo();
-                riskInfoVo.setRiskCode(RiskCode.BUSINESS.getCode());
-                riskInfoVo.setStartDate(item.getStartDate() !=null ? item.getStartDate().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")):"");
-                riskInfoVo.setEndDate(item.getEndDate() != null ? item.getEndDate().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")):"");
-                riskInfoVo.setInstantFlag(item.getStartDate() != null && (item.getStartDate().getHour() != 0 || item.getStartDate().getMinute() != 0 || item.getStartDate().getSecond() != 0));
-                this.setBiRiskInfoVo(riskInfoVo);
-            }
-        });
-        // 添加交强险种信息
-        if(ProductsType.isContainDj(insOrdersVo.getProductId())){
-            KindInfoVo jqKindInfoVo = new KindInfoVo();
-            jqKindInfoVo.setKindCode("J1");
-            jqKindInfoVo.setKindName("机动车交通事故责任强制保险");
-            if(Objects.nonNull(insOrdersVo.getInsOrdersCosts().getJqPremium())) {
-                jqKindInfoVo.setPremium(insOrdersVo.getInsOrdersCosts().getJqPremium().toString());
-            }
-            jqKindInfoVo.setAmount("200000");
-            jqKindInfoVo.setServiceTimes("200000");
-            jqKindInfoVo.setUnitAmount("200000");
-            insOrdersVo.getKindInfoVo().add(0,jqKindInfoVo);
-        }
-        // 移除交强
-//        insOrdersVo.getKindInfoVo().removeIf(item -> "J1".equals(item.getKindCode()));
+        private String dockingPerson;
+        private String dockingPersonPhone;
 
-        this.setKindInfoVo(insOrdersVo.getKindInfoVo());
-        this.setAccidentalDrivings(insOrdersVo.getAccidentalDrivings());
-        this.setVehicleAndVesselTaxVo(insOrdersVo.getVehicleAndVesselTaxVo());
+        /**
+         * 方案ID
+         */
+        private String schemeId;
 
-        //费用处理
-        this.costs = new OrdersCostsVo();
-        if(insOrdersVo.getInsOrdersCosts() != null){
-            this.costs.setCiPremium(insOrdersVo.getInsOrdersCosts().getJqPremium());
-            this.costs.setBiPremium(insOrdersVo.getInsOrdersCosts().getSyPremium());
-            this.costs.setNiPremium(insOrdersVo.getInsOrdersCosts().getJyPremium());
-            this.costs.setVvTax(insOrdersVo.getInsOrdersCosts().getTaxPremium());
-            this.costs.setSumPremium(insOrdersVo.getInsOrdersCosts().getSumPremium());
-            this.costs.setCiRatio(insOrdersVo.getInsOrdersCosts().getJqRatio());
-            this.costs.setBiRatio(insOrdersVo.getInsOrdersCosts().getSyRatio());
-            this.costs.setTotalAmount(insOrdersVo.getInsOrdersCosts().getTotalAmount());
-        }
+        /**
+         * 协议id
+         */
+        private String agreementId;
+        private String agreementName;
+        private String agreementType;
 
-        //保单号信息
-        this.policy = new OrdersPolicyVo();
-        if(insOrdersVo.getInsOrdersPolicy() != null){
-            this.policy.setCiApplyNumber(insOrdersVo.getInsOrdersPolicy().getJqApplyNo());
-            this.policy.setCiPolicyNumber(insOrdersVo.getInsOrdersPolicy().getJqPolicyNo());
-            this.policy.setBiApplyNumber(insOrdersVo.getInsOrdersPolicy().getSyApplyNo());
-            this.policy.setBiPolicyNumber(insOrdersVo.getInsOrdersPolicy().getSyPolicyNo());
-            this.policy.setNiApplyNumber(insOrdersVo.getInsOrdersPolicy().getJyApplyNo());
-            this.policy.setNiPolicyNumber(insOrdersVo.getInsOrdersPolicy().getJyPolicyNo());
-        }
-        if(insOrdersVo.getInsOrdersPdfUrl() != null){
-            this.policy.setCiPolicyUrl(insOrdersVo.getInsOrdersPdfUrl().getJqUrl());
-            this.policy.setBiPolicyUrl(insOrdersVo.getInsOrdersPdfUrl().getSyUrl());
-            this.policy.setNiPolicyUrl(insOrdersVo.getInsOrdersPdfUrl().getJyUrl());
-            this.policy.setCiPolicySignUrl(insOrdersVo.getInsOrdersPdfUrl().getJqSignUrl());
-        }
+        /**
+         * 协议归属
+         */
+        private String agreementOwnership;
 
-        //评分信息
-        this.scoreVo = new QuoteResultsVo.ScoreVo();
-//        this.scoreVo.setScore(insOrdersVo.getInsOrdersOtherInfo().getScore());
-//        this.scoreVo.setJqScore(insOrdersVo.getInsOrdersOtherInfo().getJqScore());
-//        this.scoreVo.setSyScore(insOrdersVo.getInsOrdersOtherInfo().getSyScore());
-//        this.scoreVo.setTpColorScore(Objects.isNull(insOrdersVo.getInsOrdersOtherInfo().getTpColorScore()) ? null : insOrdersVo.getInsOrdersOtherInfo().getTpColorScore().toString());
-        this.scoreVo.setLossRation(Objects.isNull(insOrdersVo.getInsOrdersOtherInfo().getLossRation()) ? null : insOrdersVo.getInsOrdersOtherInfo().getLossRation().toString());
-        this.scoreVo.setJqLossRation(Objects.isNull(insOrdersVo.getInsOrdersOtherInfo().getJqLossRation()) ? null : insOrdersVo.getInsOrdersOtherInfo().getJqLossRation().toString());
-        this.scoreVo.setSyLossRation(Objects.isNull(insOrdersVo.getInsOrdersOtherInfo().getSyLossRation()) ? null : insOrdersVo.getInsOrdersOtherInfo().getSyLossRation().toString());
-        this.scoreVo.setScoreJson(insOrdersVo.getInsOrdersOtherInfo().getScoreJson());
+        private String createBy;
 
-        // 未匹配费用原因
-        if(Objects.nonNull(insOrdersVo.getInsOrdersOtherInfo())) {
-            this.setFeeNoDescription(insOrdersVo.getInsOrdersOtherInfo().getFeeNoDescription());
+        /**
+         * 这个方法不能删除, 在前端有用agreementName字段
+         */
+        public String getAgreementTypeName(){
+            if(StrUtil.isEmpty(this.agreementType)){
+                return StrUtil.EMPTY;
+            }
+            // 1、平台协议-平台结算 2、私有协议-自行结算 3、网销协议-自行结算
+            if("1".equals(this.agreementType)){
+                return "平台协议";
+            }else if("2".equals(this.agreementType)){
+                return "私有协议";
+            }else if("3".equals(this.agreementType)) {
+                return  "网销协议";
+            }else{
+                return this.agreementType;
+            }
         }
 
-        //驾意险存储
-        List<AccidentalDrivingVo> accidentalDrivings = insOrdersVo.getAccidentalDrivings();
-
-        this.setAccidentalDrivings(accidentalDrivings);
+        /**
+         * 保司id
+         */
+        private String insuranceCompanyCode;
+        @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+        private LocalDateTime createTime;
+        @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+        private LocalDateTime quoteTime;
+        @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+        private LocalDateTime signingTime;
+        private String payTime;
+        private String orderType;
     }
 
 

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

@@ -168,6 +168,11 @@ public class QuoteResultsVo implements Serializable {
     @AllArgsConstructor
     @NoArgsConstructor
     public static class ScoreVo {
+
+        /**
+         * 总评分
+         */
+        private String score;
         /**
          * 总赔付率
          */
@@ -231,7 +236,7 @@ public class QuoteResultsVo implements Serializable {
     @Data
     @AllArgsConstructor
     @NoArgsConstructor
-    public static class CostsVo{
+    public static class CostsVo {
         /**
          * 交强险保费
          */

+ 4 - 0
commons/src/main/java/com/jzg/commons/entity/scheme/vo/SchemeRuleFilterVo.java

@@ -14,6 +14,10 @@ public class SchemeRuleFilterVo {
     @Schema(description = "产品id")
     private String productId;
 
+    // 获取方案需要添加保险公司id
+    @Schema(description = "保险公司")
+    private String companyId;
+
     @Valid
     @Schema(description =  "车辆信息")
     private CarInfoVo carInfo;

+ 26 - 0
commons/src/main/java/com/jzg/commons/entity/vo/InsFeeOrdersVo.java

@@ -111,6 +111,24 @@ public class InsFeeOrdersVo {
     @Schema(description = "驾意出口比例")
     private BigDecimal jyExportRatio;
 
+    @Schema(description = "交强险手续费比例")
+    private BigDecimal jqCommissionRatio;
+
+    @Schema(description = "商业险手续费比例")
+    private BigDecimal syCommissionRatio;
+
+    @Schema(description = "驾意险手续费比例")
+    private BigDecimal jyCommissionRatio;
+
+    @Schema(description = "交强险跟单费比例")
+    private BigDecimal jqFollowRatio;
+
+    @Schema(description = "商业险跟单费比例")
+    private BigDecimal syFollowRatio;
+
+    @Schema(description = "驾意险跟单费比例")
+    private BigDecimal jyFollowRatio;
+
     @Schema(description = "交强入口比例")
     private BigDecimal jqInletRatio;
 
@@ -241,6 +259,14 @@ public class InsFeeOrdersVo {
         this.syExportRatio = insFeeOrders.getSyExportRatio() != null ? insFeeOrders.getSyExportRatio() : new BigDecimal(0);
         this.jyExportRatio = insFeeOrders.getJyExportRatio() != null ? insFeeOrders.getJyExportRatio() : new BigDecimal(0);
 
+        this.jqCommissionRatio = insFeeOrders.getJqCommissionRatio() != null ? insFeeOrders.getJqCommissionRatio() : BigDecimal.ZERO;
+        this.syCommissionRatio = insFeeOrders.getSyCommissionRatio() != null ? insFeeOrders.getSyCommissionRatio() : BigDecimal.ZERO;
+        this.jyCommissionRatio = insFeeOrders.getJyCommissionRatio() != null ? insFeeOrders.getJyCommissionRatio() : BigDecimal.ZERO;
+
+        this.jqFollowRatio = insFeeOrders.getJqFollowRatio() != null ? insFeeOrders.getJqFollowRatio() : BigDecimal.ZERO;
+        this.syFollowRatio = insFeeOrders.getSyFollowRatio() != null ? insFeeOrders.getSyFollowRatio() : BigDecimal.ZERO;
+        this.jyFollowRatio = insFeeOrders.getJyFollowRatio() != null ? insFeeOrders.getJyFollowRatio() : BigDecimal.ZERO;
+
         this.jqKeepPointPremium = insFeeOrders.getJqKeepPointPremium() != null ? insFeeOrders.getJqKeepPointPremium().toString() : "0.00";
         this.syKeepPointPremium = insFeeOrders.getSyKeepPointPremium() != null ? insFeeOrders.getSyKeepPointPremium().toString() : "0.00";
         this.jyKeepPointPremium = insFeeOrders.getJyKeepPointPremium() != null ? insFeeOrders.getJyKeepPointPremium().toString() : "0.00";

+ 1 - 1
commons/src/main/java/com/jzg/commons/entity/vo/RuleAttrMappingVo.java

@@ -327,7 +327,7 @@ public class RuleAttrMappingVo {
         // 车牌地区
         ruleAttrMappingVoList.add(new RuleAttrMappingVo("LicenseArea", insOrdersCarInfo.getLicenseNo().substring(0, 1)));
         // 系数
-        ruleAttrMappingVoList.add(new RuleAttrMappingVo("CoefficientFactor", getCoefficient(insOrdersCarInfo, insOrdersCosts).toString()));
+        ruleAttrMappingVoList.add(new RuleAttrMappingVo("Coefficient", getCoefficient(insOrdersCarInfo, insOrdersCosts).toString()));
         // 商业是否有费用
         ruleAttrMappingVoList.add(new RuleAttrMappingVo("CiMessage", (insOrdersOther.getCiMessage() == null || "".equals(insOrdersOther.getCiMessage())) ? "0" : "1"));
 

+ 7 - 7
tenant/insurance/quotation-huanong/src/main/java/com/jzg/quotation/huanong/crawler/constant/enums/JiaYiXianProduct.java

@@ -45,17 +45,17 @@ public enum JiaYiXianProduct {
             new CoverageConfig("F27048-6", "附加救护车车费保险条款", "0095", "救护车费用", 0.1, "10", "2000", "0.2万元/座", true)
     )),
     ANXIANG_50("091","2782", "好运连连(50)", true, Arrays.asList(
-            new CoverageConfig("Z27096-1", "交通出行团体意外伤害保险C款条款", "0955", "必选责任:意外伤害身故保险责任", 0.06, "30000", "3.0万元/座", " ", false),
-            new CoverageConfig("Z27096-2", "交通出行团体意外伤害保险C款条款", "0956", "可选责任:意外伤害伤残保险责任", 0.04, "30000", "3.0万元/座", " ", false),
-            new CoverageConfig("F27002", "附加团体意外伤害医疗保险条款", "0008", "意外伤害医疗保险责任", 0.24, "1000", "0.1万元/座", "每次事故免赔300后80%比例赔付", false),
+            new CoverageConfig("Z27096-1", "交通出行团体意外伤害保险C款条款", "0955", "必选责任:意外伤害身故保险责任", 0.1302, "20000", "2.0万元/座", " ", false),
+            new CoverageConfig("Z27096-2", "交通出行团体意外伤害保险C款条款", "0956", "可选责任:意外伤害伤残保险责任", 0.0868, "20000", "2.0万元/座", " ", false),
+            new CoverageConfig("F27002", "附加团体意外伤害医疗保险条款", "0008", "意外伤害医疗保险责任", 0.3, "1000", "0.1万元/座", "每次事故免赔300后80%比例赔付", false),
             new CoverageConfig("F27001", "附加团体意外伤害住院津贴保险条款", "0032", "意外伤害住院津贴保险责任", 0.2, "10", "0.001万元/座", "10元/天/座", true)
 
     )),
     ANXIANG_240("092","2782", "好运连连(240)", true, Arrays.asList(
-            new CoverageConfig("Z27096-1", "交通出行团体意外伤害保险C款条款", "0955", "必选责任:意外伤害身故保险责任", 0.06, "30000", "3.0万元/座", " ", false),
-            new CoverageConfig("Z27096-2", "交通出行团体意外伤害保险C款条款", "0956", "可选责任:意外伤害伤残保险责任", 0.04, "30000", "3.0万元/座", " ", false),
-            new CoverageConfig("F27002", "附加团体意外伤害医疗保险条款", "0008", "意外伤害医疗保险责任", 0.24, "1000", "0.1万元/座", "每次事故免赔300后80%比例赔付", false),
-            new CoverageConfig("F27001", "附加团体意外伤害住院津贴保险条款", "0032", "意外伤害住院津贴保险责任", 0.2, "10", "0.001万元/座", "10元/天/座", true),
+            new CoverageConfig("Z27096-1", "交通出行团体意外伤害保险C款条款", "0955", "必选责任:意外伤害身故保险责任", 0.15, "80000", "8.0万元/座", " ", false),
+            new CoverageConfig("Z27096-2", "交通出行团体意外伤害保险C款条款", "0956", "可选责任:意外伤害伤残保险责任", 0.1, "80000", "8.0万元/座", " ", false),
+            new CoverageConfig("F27002", "附加团体意外伤害医疗保险条款", "0008", "意外伤害医疗保险责任", 0.3, "5000", "0.1万元/座", "每次事故免赔300后80%比例赔付", false),
+            new CoverageConfig("F27001", "附加团体意外伤害住院津贴保险条款", "0032", "意外伤害住院津贴保险责任", 0.2, "50", "0.005万元/座", "50元/天/座", true),
             new CoverageConfig("F27047-5", "附加辅助金保险条款", "0094", "家庭辅助金", 0.015, "20000", "2.0万元/座", "", true),
             new CoverageConfig("F27048-6", "附加救护车车费保险条款", "0095", "救护车费用", 0.2, "2000", "0.2万元/座", "", true)
 

+ 0 - 1
tenant/insurance/quotation-huanong/src/main/java/com/jzg/quotation/huanong/crawler/entity/request/HuaNongCrawlerQuotedPriceRequestRequest.java

@@ -1858,7 +1858,6 @@ public class HuaNongCrawlerQuotedPriceRequestRequest implements HuaNongHeadReque
                 unitAmountDTO.setValue(unitAmount);
                 coverage.setListUnitAmount(List.of(unitAmountDTO));
                 coverage.setTerm("一年");
-                coverage.setAllAmount("0");
                 coverage.setDeductible(0);
                 coverage.setEachDamageLimitAmount(0);
                 coverage.setSeatCount("0");

+ 17 - 30
tenant/insurance/quotation-renbaonew/src/main/java/com/jzg/quotation/renbaonew/crawler/service/impl/RenBaoNewCrawlerRequestBuilder.java

@@ -3510,37 +3510,24 @@ public class RenBaoNewCrawlerRequestBuilder {
      */
     private String calculateEnergyTypePlat(String fuelType) {
         if (fuelType == null || fuelType.isEmpty()) {
-            return "0";  // 默认为燃油
-        }
-        // 只取第一个字符进行匹配(如D1取D,B1取B)
-        String baseType = fuelType.substring(0, 1);
-
-        switch (baseType) {
-            case "A":  // 汽油
-            case "B":  // 柴油
-            case "C":  // 电/汽油(增程式)
-            case "D":  // 电/柴油
-            case "E":  // 天然气
-            case "F":  // 液化石油气
-            case "G":  // 电/天然气
-            case "H":  // 电/液化石油气
-            case "I":  // 其他
-            case "J":  // 无
-            case "K":  // 乙醇
-            case "L":  // 太阳能
-            case "M":  // 电/太阳能
-            case "N":  // 电/其他
-                return "0";  // 传统燃油或非新能源
-            case "O":  // 纯电动
-                return "1";
-            case "P":  // 燃料电池
-                return "2";
-            case "Q":  // 插电式混合动力
-                return "3";
-            case "R":  // 其他混合动力(非插电)
-                return "4";
+            return "9";  // 默认其他
+        }
+        // 根据完整 fuelType 编码匹配能源类型
+        switch (fuelType) {
+            case "D1":   // 燃油
+            case "D2":   // 燃油
+            case "D13":  // 燃油
+                return "0";  // 燃油
+            case "D6":   // 纯电动
+                return "1";  // 纯电动
+            case "D8":   // 燃料电池
+                return "2";  // 燃料电池
+            case "D5":   // 其他混合动力
+                return "4";  // 其他混合动力
+            case "D12":  // 插电式混合动力
+                return "3";  // 插电式混合动力
             default:
-                return "0";  // 未知类型默认燃油
+                return "9";  // 其他
         }
     }
 

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

@@ -408,6 +408,7 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
             insOrders.setOrderStatus(InsOrderStatusEnum.QUOTE_ING.getCode());
             insOrders.setEntryStatus(3);
             insOrders.setSystemCode(ordersAdd.getSystemCode());
+            insOrders.setPayTime(insOrders.getSigningTime());
             // 插入订单信息,如果插入失败,则返回错误信息
             int insertResult = insOrdersMapper.insert(insOrders);
             if (insertResult <= 0) {

+ 6 - 1
tenant/insurance/quotation-summary/src/main/resources/mapper/InsOrdersMapper.xml

@@ -134,6 +134,7 @@
         <result property="isDjq" column="is_djq" jdbcType="VARCHAR"/>
         <result property="jqAdjustRate" column="jq_adjust_rate" jdbcType="VARCHAR"/>
         <result property="syAdjustRate" column="sy_adjust_rate" jdbcType="VARCHAR"/>
+        <result property="totalAdjustRate" column="total_adjust_rate" jdbcType="VARCHAR"/>
         <result property="signingTime" column="signing_time" jdbcType="VARCHAR"/>
         <result property="companyName" column="company_name" jdbcType="VARCHAR"/>
         <result property="jqPremium" column="jq_premium" jdbcType="VARCHAR"/>
@@ -377,7 +378,10 @@
         from sys_upload_files
         <where>
             and is_delete = 0
-            and id in (${concatenated_string})
+            and id in
+            <foreach collection="concatenated_string.split(',')" item="item" open="(" separator="," close=")">
+                #{item}
+            </foreach>
         </where>
     </select>
 
@@ -765,6 +769,7 @@
         ot.is_djq,
         ot.jq_adjust_rate,
         ot.sy_adjust_rate,
+        ot.total_adjust_rate,
         ot.tp_color_score,
         o.signing_time,
         o.company_name,

+ 7 - 1
tenant/insurance/quotation-taiping/src/main/java/com/jzg/quotation/taiping/crawler/entity/request/TaiPingCrawlerBrandNameQueryRequest.java

@@ -96,7 +96,13 @@ public class TaiPingCrawlerBrandNameQueryRequest {
             this.newCarFlag = false;
             this.licenseNo = carInfoVo.getLicenseNo();
         }
-        this.brandName = carInfoVo.getBrandName();
+        String brandName = carInfoVo.getBrandName();
+        if (brandName != null && brandName.contains("牌")) {
+            this.brandName = brandName.replaceAll("[\\u4e00-\\u9fa5]+牌", "").trim();
+        } else {
+            this.brandName = carInfoVo.getBrandName();
+        }
+//        this.brandName = carInfoVo.getBrandName();
         this.companyCode = parameters.getCompanyCode();
         this.frameNo = "";
         this.orderNo = orderNo;

+ 3 - 3
tenant/organization/src/main/java/com/jzg/organization/controller/SchemeController.java

@@ -106,9 +106,9 @@ public class SchemeController {
     }
 
     @Operation(summary = "获取方案结果")
-    @GetMapping("/getSchemeResult")
-    public HttpResult getSchemeResult(String companyId,String productId,String seatCount,String energyType,String vehicleType,String carnature){
-         SchemeResultVo schemeResultVo = ptlSchemeService.getSchemeResult(companyId,productId,seatCount,energyType,vehicleType,carnature);
+    @PostMapping("/getSchemeResult")
+    public HttpResult getSchemeResult(@RequestBody SchemeRuleFilterVo schemeRuleFilterVo){
+         SchemeResultVo schemeResultVo = ptlSchemeService.getSchemeResult(schemeRuleFilterVo);
         return HttpResult.ok(schemeResultVo);
     }
 

+ 2 - 3
tenant/organization/src/main/java/com/jzg/organization/service/PtlSchemeService.java

@@ -76,11 +76,10 @@ public interface PtlSchemeService extends IService<PtlScheme> {
 
     /**
      * 获取方案结果
-     * @param companyId
-     * @param productId
+     * @param schemeRuleFilterVo
      * @return
      */
-    public SchemeResultVo getSchemeResult(String companyId,String productId,String seatCount,String energyType,String vehicleType,String carnature);
+    public SchemeResultVo getSchemeResult(SchemeRuleFilterVo schemeRuleFilterVo);
 
     List<InsBusinessInsuranceVo> getBusinessInsuranceListByKindType(String kindCode);
 

+ 18 - 1
tenant/organization/src/main/java/com/jzg/organization/service/impl/PtlSchemeServiceImpl.java

@@ -739,7 +739,15 @@ public class PtlSchemeServiceImpl extends ServiceImpl<PtlSchemeMapper, PtlScheme
 
 
     @Override
-    public SchemeResultVo getSchemeResult(String companyId, String productId, String seatCount,String energyType,String vehicleType,String carnature) {
+    public SchemeResultVo getSchemeResult(SchemeRuleFilterVo schemeRuleFilterVo) {
+
+        String companyId = schemeRuleFilterVo.getCompanyId();
+        String productId = schemeRuleFilterVo.getProductId();
+        String seatCount = schemeRuleFilterVo.getCarInfo().getSeatCount();
+        String vehicleType = schemeRuleFilterVo.getCarInfo().getCarKindCode();
+        String energyType = schemeRuleFilterVo.getCarInfo().getEnergyTypeCode();
+        String carnature = schemeRuleFilterVo.getCarInfo().getCarNatureCode();
+
         log.info("根据保司Id和产品id查询协议信息。 companyId=[{}],productId=[{}]", companyId, productId);
         List<SchemeResultVo.SchemeVo> schemeInsuranceInfo = ptlSchemeMapper.getSchemeInsuranceInfo(companyId, productId);
         List<SchemeResultVo.SchemeVo> schemeDrivingInfo = ptlSchemeMapper.getSchemeDrivingInfo(companyId, productId);
@@ -776,6 +784,15 @@ public class PtlSchemeServiceImpl extends ServiceImpl<PtlSchemeMapper, PtlScheme
                         && scheme.getCarnature().contains(carnature))
                 .collect(Collectors.toList());
 
+        // 再次过滤方案  根据方案的规则条件
+        List<String> schemeIds = newSchemeList.stream().map(SchemeResultVo.SchemeVo::getId).collect(Collectors.toList());
+        List<PtlSchemeRulesAttrLink> ptlSchemeRulesAttrLinks = ptlSchemeRulesAttrLinkMapper.selectList(new LambdaQueryWrapper<PtlSchemeRulesAttrLink>().in(PtlSchemeRulesAttrLink::getSchemeId, schemeIds));
+        ValidateSchemeRuleVo validateSchemeRuleVo = new ValidateSchemeRuleVo();
+        validateSchemeRuleVo.builderQuoteVo(schemeRuleFilterVo, redissonClient);
+        validateSchemeRuleVo.setAttrLinks(ptlSchemeRulesAttrLinks);
+        HttpResult<List<String>> esmInsCompanyHttpResult = costsRuleClient.validateSchemeRule(validateSchemeRuleVo);
+        List<String> insSchemeIds = esmInsCompanyHttpResult.getData();
+        newSchemeList.removeIf(x -> !insSchemeIds.contains(x.getId()));
         schemeInsuranceInfo = newSchemeList;
 
         // 创建一个 Map,Key: info.id, Value: List<Driving>