فهرست منبع

中煤添加不浮动原因因子

785834757 1 سال پیش
والد
کامیت
b7b4c309be

+ 45 - 0
src/main/java/com/ydtech/constants/enums/dict/ZmTransferType.java

@@ -0,0 +1,45 @@
+package com.ydtech.constants.enums.dict;
+
+import com.ydtech.aop.request.DictEnum;
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+import java.util.ArrayList;
+import java.util.List;
+
+@AllArgsConstructor
+@Getter
+@DictEnum(key = "zmTransferType", desc = "中煤过户类型")
+public enum ZmTransferType implements IBaseEnum {
+
+    ZMTR00("0", "费率浮动", 1, 0),
+    ZMTR01("01", "新车,不浮动", 2, 0),
+    ZMTR02("02", "首次投保,不浮动", 3, 0),
+    ZMTR03("03", "车辆所有权转移,不浮动", 4, 0),
+    ZMTR04("04", "临时上道或临时入境,不浮动", 5, 0),
+    ZMTR05("05", "为摩托车、拖拉机、变拖类、低速载货汽车、三轮汽车,不浮动", 6, 0),
+    ZMTR06("06", "未如实告知平台车辆信息,无法确定浮动比率,不浮动", 7, 0),
+    ZMTR07("07", "非重复投保退保的保单续保,不浮动", 8, 0),
+    ZMTR08("08", "短期保单续保不下浮", 9, 0),
+    ZMTR09("09", "短期单投保不浮动", 10, 0),
+    ZMTR10("10", "脱保,不下浮", 11, 0),
+    ZMTR11("99", "不在浮动时间范围内,不浮动", 12, 0);
+
+    // 编号
+    private final String code;
+    // 说明
+    private final String desc;
+    // 排序
+    private final Integer sort;
+    // 状态  0 启用  1 不启用
+    private final Integer status;
+
+    public static ZmTransferType getByCode(String code) {
+        for (ZmTransferType value : ZmTransferType.values()) {
+            if (value.getCode().equals(code)) {
+                return value;
+            }
+        }
+        return null;
+    }
+}

+ 8 - 1
src/main/java/com/ydtech/modules/fee/dto/vo/RuleAttrMappingVo.java

@@ -1,10 +1,12 @@
 package com.ydtech.modules.fee.dto.vo;
 package com.ydtech.modules.fee.dto.vo;
 
 
 import com.ydtech.constants.enums.InsurKind;
 import com.ydtech.constants.enums.InsurKind;
+import com.ydtech.constants.enums.dict.ZmTransferType;
 import com.ydtech.constants.enums.dict.insurance.VehicleType;
 import com.ydtech.constants.enums.dict.insurance.VehicleType;
 import com.ydtech.modules.ins.model.vo.CarInfoVo;
 import com.ydtech.modules.ins.model.vo.CarInfoVo;
 import com.ydtech.modules.ins.model.vo.CustomerInfoVo;
 import com.ydtech.modules.ins.model.vo.CustomerInfoVo;
 import com.ydtech.modules.ins.model.vo.KindInfoVo;
 import com.ydtech.modules.ins.model.vo.KindInfoVo;
+import com.ydtech.modules.ins.model.vo.QuoteRespVo;
 import com.ydtech.modules.order.entity.InsAreaCompany;
 import com.ydtech.modules.order.entity.InsAreaCompany;
 import com.ydtech.modules.order.entity.InsOrders;
 import com.ydtech.modules.order.entity.InsOrders;
 import com.ydtech.modules.order.entity.api.bohai.constants.VehicleUsage;
 import com.ydtech.modules.order.entity.api.bohai.constants.VehicleUsage;
@@ -42,7 +44,7 @@ public class RuleAttrMappingVo {
         this.value = value;
         this.value = value;
     }
     }
 
 
-    public static List<RuleAttrMappingVo> getRuleAttrMappingVoList(InsAreaCompany insAreaCompany, InsOrders insOrders,
+    public static List<RuleAttrMappingVo> getRuleAttrMappingVoList(QuoteRespVo quoteRespVo, InsAreaCompany insAreaCompany, InsOrders insOrders,
                                                                    List<PtlAgreementUndwrtRulesAttr> undwrtRulesAttrList,
                                                                    List<PtlAgreementUndwrtRulesAttr> undwrtRulesAttrList,
                                                                    PtlNewCarJudgeRules carJudgeRule) {
                                                                    PtlNewCarJudgeRules carJudgeRule) {
         List<RuleAttrMappingVo> ruleAttrMappingVoList = new ArrayList<>();
         List<RuleAttrMappingVo> ruleAttrMappingVoList = new ArrayList<>();
@@ -87,6 +89,11 @@ public class RuleAttrMappingVo {
         //商业起保日期
         //商业起保日期
         ruleAttrMappingVoList.add(new RuleAttrMappingVo("SyStartTime", insAreaCompany.getSyStartDate()));
         ruleAttrMappingVoList.add(new RuleAttrMappingVo("SyStartTime", insAreaCompany.getSyStartDate()));
 
 
+        // 中煤不浮动原因
+        if(Objects.nonNull(quoteRespVo)) {
+            ruleAttrMappingVoList.add(new RuleAttrMappingVo("RateFloatFlag", ZmTransferType.getByCode(quoteRespVo.getRateFloatFlag()).getDesc()));
+        }
+
         boolean isNoLicenseFlag = false;
         boolean isNoLicenseFlag = false;
         if (carJudgeRule != null) {
         if (carJudgeRule != null) {
             if (carJudgeRule.getUnitTypeCode().equals("天")) {
             if (carJudgeRule.getUnitTypeCode().equals("天")) {

+ 2 - 1
src/main/java/com/ydtech/modules/fee/service/FeeRuleSchemeNewService.java

@@ -3,6 +3,7 @@ package com.ydtech.modules.fee.service;
 
 
 import com.ydtech.modules.fee.dto.vo.ReCalcuLateProportion;
 import com.ydtech.modules.fee.dto.vo.ReCalcuLateProportion;
 import com.ydtech.modules.fee.dto.vo.RetailProportion;
 import com.ydtech.modules.fee.dto.vo.RetailProportion;
+import com.ydtech.modules.ins.model.vo.QuoteRespVo;
 import com.ydtech.modules.order.entity.InsAreaCompany;
 import com.ydtech.modules.order.entity.InsAreaCompany;
 import com.ydtech.modules.order.entity.InsOrders;
 import com.ydtech.modules.order.entity.InsOrders;
 import com.ydtech.modules.order.entity.vo.ExternalOrderFeeVo;
 import com.ydtech.modules.order.entity.vo.ExternalOrderFeeVo;
@@ -56,7 +57,7 @@ public interface FeeRuleSchemeNewService {
      * @param insAreaCompany
      * @param insAreaCompany
      * @param insOrders
      * @param insOrders
      */
      */
-    void verificationCostFactor(InsAreaCompany insAreaCompany, InsOrders insOrders, StringBuilder logs);
+    void verificationCostFactor(QuoteRespVo quoteRespVo, InsAreaCompany insAreaCompany, InsOrders insOrders, StringBuilder logs);
 
 
     /**
     /**
      * 查找匹配承保规则的因子
      * 查找匹配承保规则的因子

+ 6 - 5
src/main/java/com/ydtech/modules/fee/service/impl/FeeRuleSchemeServiceNewImpl.java

@@ -24,6 +24,7 @@ import com.ydtech.modules.fee.service.FeeRuleSchemeNewService;
 import com.ydtech.modules.fee.service.FeeRuleSchemeService;
 import com.ydtech.modules.fee.service.FeeRuleSchemeService;
 import com.ydtech.modules.fee.service.InsFeeOrderConfigService;
 import com.ydtech.modules.fee.service.InsFeeOrderConfigService;
 import com.ydtech.modules.fee.service.InsFeeOrderNewHistoryService;
 import com.ydtech.modules.fee.service.InsFeeOrderNewHistoryService;
+import com.ydtech.modules.ins.model.vo.QuoteRespVo;
 import com.ydtech.modules.order.entity.InsAreaCompany;
 import com.ydtech.modules.order.entity.InsAreaCompany;
 import com.ydtech.modules.order.entity.InsOrders;
 import com.ydtech.modules.order.entity.InsOrders;
 import com.ydtech.modules.order.entity.api.dajia.constants.TypeVehicleMapping;
 import com.ydtech.modules.order.entity.api.dajia.constants.TypeVehicleMapping;
@@ -137,7 +138,7 @@ public class FeeRuleSchemeServiceNewImpl implements FeeRuleSchemeNewService {
      * 校验费用因子
      * 校验费用因子
      */
      */
     @Override
     @Override
-    public void verificationCostFactor(InsAreaCompany insAreaCompany, InsOrders insOrders, StringBuilder logs) {
+    public void verificationCostFactor(QuoteRespVo quoteRespVo, InsAreaCompany insAreaCompany, InsOrders insOrders, StringBuilder logs) {
 
 
         List<AgreementProductCosts> agreementProductCostsNoMatched =
         List<AgreementProductCosts> agreementProductCostsNoMatched =
                 ptlAgreementProductCostsNewService.costsGetList(insAreaCompany.getAgreementId(), insAreaCompany.getProductid());
                 ptlAgreementProductCostsNewService.costsGetList(insAreaCompany.getAgreementId(), insAreaCompany.getProductid());
@@ -195,7 +196,7 @@ public class FeeRuleSchemeServiceNewImpl implements FeeRuleSchemeNewService {
             //按优先级进行排序
             //按优先级进行排序
             Collections.sort(agreementProductCosts, Comparator.comparingInt(AgreementProductCosts::getPriorityLevel));
             Collections.sort(agreementProductCosts, Comparator.comparingInt(AgreementProductCosts::getPriorityLevel));
             //遍历费用因子
             //遍历费用因子
-            String costsId = verificationCosts(agreementProductCosts, insAreaCompany, insOrders, logs);
+            String costsId = verificationCosts(agreementProductCosts, quoteRespVo, insAreaCompany, insOrders, logs);
             if (costsId != null) {
             if (costsId != null) {
                 calcCosts(costsId, insAreaCompany);
                 calcCosts(costsId, insAreaCompany);
                 log.debug("费用因子校验通过,子订单id:" + insAreaCompany.getId() + ",费用id:" + costsId);
                 log.debug("费用因子校验通过,子订单id:" + insAreaCompany.getId() + ",费用id:" + costsId);
@@ -2786,7 +2787,7 @@ public class FeeRuleSchemeServiceNewImpl implements FeeRuleSchemeNewService {
      * @param insOrders
      * @param insOrders
      * @return
      * @return
      */
      */
-    private String verificationCosts(List<AgreementProductCosts> agreementProductCosts, InsAreaCompany insAreaCompany,
+    private String verificationCosts(List<AgreementProductCosts> agreementProductCosts, QuoteRespVo quoteRespVo, InsAreaCompany insAreaCompany,
                                      InsOrders insOrders, StringBuilder logs) {
                                      InsOrders insOrders, StringBuilder logs) {
         //匹配费用因子
         //匹配费用因子
         //获取所有费用属性
         //获取所有费用属性
@@ -2794,7 +2795,7 @@ public class FeeRuleSchemeServiceNewImpl implements FeeRuleSchemeNewService {
         //获取新旧车信息
         //获取新旧车信息
         PtlNewCarJudgeRules carJudgeRule = getCarJudgeRule(insAreaCompany.getCompanyId());
         PtlNewCarJudgeRules carJudgeRule = getCarJudgeRule(insAreaCompany.getCompanyId());
         //获取所有费用属性关联
         //获取所有费用属性关联
-        List<RuleAttrMappingVo> ruleAttrMappingVoList = RuleAttrMappingVo.getRuleAttrMappingVoList(insAreaCompany, insOrders,
+        List<RuleAttrMappingVo> ruleAttrMappingVoList = RuleAttrMappingVo.getRuleAttrMappingVoList(quoteRespVo, insAreaCompany, insOrders,
                 undwrtRulesAttrList, carJudgeRule);
                 undwrtRulesAttrList, carJudgeRule);
 
 
         for (int i = 0; i < agreementProductCosts.size(); i++) {
         for (int i = 0; i < agreementProductCosts.size(); i++) {
@@ -2824,7 +2825,7 @@ public class FeeRuleSchemeServiceNewImpl implements FeeRuleSchemeNewService {
         //获取所有承保规则属性
         //获取所有承保规则属性
         List<PtlAgreementUndwrtRulesAttr> undwrtRulesAttrList = ptlAgreementUndwrtRulesAttrService.getUndwrtRulesAttrList();
         List<PtlAgreementUndwrtRulesAttr> undwrtRulesAttrList = ptlAgreementUndwrtRulesAttrService.getUndwrtRulesAttrList();
         //获取所有费用属性关联
         //获取所有费用属性关联
-        List<RuleAttrMappingVo> ruleAttrMappingVoList = RuleAttrMappingVo.getRuleAttrMappingVoList(insAreaCompany, insOrders,
+        List<RuleAttrMappingVo> ruleAttrMappingVoList = RuleAttrMappingVo.getRuleAttrMappingVoList(null,insAreaCompany, insOrders,
                 undwrtRulesAttrList, getCarJudgeRule(insAreaCompany.getCompanyId()));
                 undwrtRulesAttrList, getCarJudgeRule(insAreaCompany.getCompanyId()));
 
 
 
 

+ 3 - 0
src/main/java/com/ydtech/modules/ins/model/vo/QuoteRespVo.java

@@ -220,6 +220,9 @@ public class QuoteRespVo {
     @TableField(value = "syappoint")
     @TableField(value = "syappoint")
     private String syappoint;
     private String syappoint;
 
 
+    @ApiModelProperty("中煤浮动")
+    private String rateFloatFlag;
+
     @ApiModelProperty("报价记录")
     @ApiModelProperty("报价记录")
     private List<SysQuoteRecord> quoteRecords;
     private List<SysQuoteRecord> quoteRecords;
 
 

+ 1 - 1
src/main/java/com/ydtech/modules/order/aop/aspect/QuoteVerificationAspect.java

@@ -132,7 +132,7 @@ public class QuoteVerificationAspect {
             StringBuilder logs = new StringBuilder();
             StringBuilder logs = new StringBuilder();
             //再进行费用因子判断
             //再进行费用因子判断
             try {
             try {
-                feeRuleSchemeNewService.verificationCostFactor(insAreaCompany, insOrders, logs);
+                feeRuleSchemeNewService.verificationCostFactor(result.getData(), insAreaCompany, insOrders, logs);
                 InsFeeOrderNew insFeeOrderNew = insFeeOrderNewService.getInsFeeOrderNewByCompanyId(insAreaCompany.getId());
                 InsFeeOrderNew insFeeOrderNew = insFeeOrderNewService.getInsFeeOrderNewByCompanyId(insAreaCompany.getId());
                 if (insFeeOrderNew != null) {
                 if (insFeeOrderNew != null) {
                     //出口
                     //出口

+ 5 - 0
src/main/java/com/ydtech/modules/order/entity/crawler/response/CrawlerQuoteResponse.java

@@ -329,6 +329,11 @@ public class CrawlerQuoteResponse extends CrawlerBaseResponse {
         @JsonProperty("maxQuoteNum")
         @JsonProperty("maxQuoteNum")
         private String maxQuoteNum;
         private String maxQuoteNum;
 
 
+        @JsonProperty("rateFloatFlag")
+        private String rateFloatFlag;
+
+
+
         public String getDiscount() {
         public String getDiscount() {
             return StringUtils.isEmpty(discount) ? "0" : discount;
             return StringUtils.isEmpty(discount) ? "0" : discount;
         }
         }

+ 4 - 0
src/main/java/com/ydtech/modules/order/service/impl/InsCrawlerOrderServiceImpl.java

@@ -588,6 +588,10 @@ public class InsCrawlerOrderServiceImpl implements InsCrawlerOrderService {
         quoteRespVo.setJqClaims(other.getJqAccident());
         quoteRespVo.setJqClaims(other.getJqAccident());
         // 商业出险次数
         // 商业出险次数
         quoteRespVo.setSyClaims(other.getSyAccident());
         quoteRespVo.setSyClaims(other.getSyAccident());
+        // 中煤是否浮动
+        if(other.getRateFloatFlag() != null && !other.getRateFloatFlag().isEmpty()){
+            quoteRespVo.setRateFloatFlag(other.getRateFloatFlag());
+        }
         return quoteRespVo;
         return quoteRespVo;
     }
     }