Преглед на файлове

费用添加日志输出

785834757 преди 2 години
родител
ревизия
e2882e02ab

+ 5 - 2
src/main/java/com/ydtech/modules/fee/dto/vo/RuleAttrMappingVo.java

@@ -229,7 +229,7 @@ public class RuleAttrMappingVo {
                 ruleAttrMappingVoList.add(new RuleAttrMappingVo("CompulsoryInsuranceRating", String.valueOf(insAreaCompany.getJqScore())));
             } else {
                 //字母型评分
-                ruleAttrMappingVoList.add(new RuleAttrMappingVo("CharacterBasedCompulsoryInsuranceRating",
+                ruleAttrMappingVoList.add(new RuleAttrMappingVo("JqCharacterBasedRating",
                         String.valueOf(insAreaCompany.getJqScore())));
             }
         }
@@ -241,7 +241,7 @@ public class RuleAttrMappingVo {
                 ruleAttrMappingVoList.add(new RuleAttrMappingVo("CommercialRating", String.valueOf(insAreaCompany.getSyScore())));
             } else {
                 //字母型评分
-                ruleAttrMappingVoList.add(new RuleAttrMappingVo("CharacterBasedCommercialRating",
+                ruleAttrMappingVoList.add(new RuleAttrMappingVo("SyCharacterBasedRating",
                         String.valueOf(insAreaCompany.getSyScore())));
             }
         }
@@ -267,6 +267,9 @@ public class RuleAttrMappingVo {
         }
         //真假单交
         ruleAttrMappingVoList.add(new RuleAttrMappingVo("IsDJQ",insAreaCompany.getIsDjq()));
+        //紫金鼎然评分
+        ruleAttrMappingVoList.add(new RuleAttrMappingVo("UbiPredictedInfoScore",insAreaCompany.getUbiPredictedInfoScore()));
+
         return ruleAttrMappingVoList;
     }
 }

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

@@ -48,7 +48,7 @@ public interface FeeRuleSchemeNewService {
      * @param insAreaCompany
      * @param insOrders
      */
-    void verificationCostFactor(InsAreaCompany insAreaCompany, InsOrders insOrders);
+    void verificationCostFactor(InsAreaCompany insAreaCompany, InsOrders insOrders,StringBuilder logs);
 
     /**
      * 查找匹配承保规则的因子

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

@@ -37,6 +37,8 @@ import java.math.BigDecimal;
 import java.math.RoundingMode;
 import java.util.*;
 import java.util.concurrent.atomic.AtomicBoolean;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
 
 /**
  *@author: tz
@@ -105,7 +107,7 @@ public class FeeRuleSchemeServiceNewImpl implements FeeRuleSchemeNewService {
      * 校验费用因子
      */
     @Override
-    public void verificationCostFactor(InsAreaCompany insAreaCompany,InsOrders insOrders){
+    public void verificationCostFactor(InsAreaCompany insAreaCompany,InsOrders insOrders,StringBuilder logs){
 
         List<AgreementProductCosts> agreementProductCosts = ptlAgreementProductCostsNewService.costsGetList(insAreaCompany.getAgreementId(),insOrders.getProductid());
 //        if(agreementProductCosts == null || agreementProductCosts.size() == 0){
@@ -121,7 +123,7 @@ public class FeeRuleSchemeServiceNewImpl implements FeeRuleSchemeNewService {
             //按优先级进行排序
             Collections.sort(agreementProductCosts, Comparator.comparingInt(AgreementProductCosts::getPriorityLevel));
             //遍历费用因子
-            String costsId = verificationCosts(agreementProductCosts, insAreaCompany, insOrders);
+            String costsId = verificationCosts(agreementProductCosts, insAreaCompany, insOrders,logs);
             if(costsId != null) {
                 calcCosts(costsId, insAreaCompany);
                 log.debug("费用因子校验通过,子订单id:" + insAreaCompany.getId() + ",费用id:" + costsId);
@@ -456,7 +458,7 @@ public class FeeRuleSchemeServiceNewImpl implements FeeRuleSchemeNewService {
      * @param insOrders
      * @return
      */
-    private String verificationCosts(List<AgreementProductCosts> agreementProductCosts,InsAreaCompany insAreaCompany,InsOrders insOrders){
+    private String verificationCosts(List<AgreementProductCosts> agreementProductCosts,InsAreaCompany insAreaCompany,InsOrders insOrders,StringBuilder logs){
         //匹配费用因子
         //获取所有费用属性
         List<PtlAgreementUndwrtRulesAttr> undwrtRulesAttrList = ptlAgreementUndwrtRulesAttrService.getUndwrtRulesAttrList();
@@ -504,11 +506,13 @@ public class FeeRuleSchemeServiceNewImpl implements FeeRuleSchemeNewService {
 //        }
         for (int i = 0; i < agreementProductCosts.size(); i++) {
             //判断是否匹配
-
             log.debug("费用因子匹配开始:" + agreementProductCosts.get(i).getId());
+
             log.debug("车牌号:" + insOrders.getLicenseno());
             log.debug("费用因子备注:" + agreementProductCosts.get(i).getCostsDescription());
-            if (judgements(agreementProductCosts.get(i).getCostsAttrLinks(), undwrtRulesAttrList, ruleAttrMappingVoList)) {
+            logs.append("费用id:"+agreementProductCosts.get(i).getId() + "\n");
+            logs.append("费用因子描述:"+agreementProductCosts.get(i).getCostsDescription() + "\n");
+            if (judgements(agreementProductCosts.get(i).getCostsAttrLinks(), undwrtRulesAttrList, ruleAttrMappingVoList,logs)) {
                 //返回 费用id   如果需要匹配非车的情况  将返回值返回list 后赛选
                 return agreementProductCosts.get(i).getId();
             }
@@ -546,7 +550,7 @@ public class FeeRuleSchemeServiceNewImpl implements FeeRuleSchemeNewService {
      * @return
      */
     private boolean judgements(List<PtlAgreementProductCostsAttrLink> ptlAgreementProductCostsAttrLinks,
-                               List<PtlAgreementUndwrtRulesAttr> rulesAttrs, List<RuleAttrMappingVo> ruleAttrMappingVoList){
+                               List<PtlAgreementUndwrtRulesAttr> rulesAttrs, List<RuleAttrMappingVo> ruleAttrMappingVoList,StringBuilder logs){
         boolean useFlag = true;
 
         for(int i=0;i<ptlAgreementProductCostsAttrLinks.size();i++){
@@ -563,6 +567,11 @@ public class FeeRuleSchemeServiceNewImpl implements FeeRuleSchemeNewService {
             if(ruleAttrMappingVo == null){
                 log.debug("规则匹配失败:" + ptlAgreementProductCostsAttrLinks.get(i).getAttrCode());
                 log.debug("传入的值找不到该属性:" + ptlAgreementProductCostsAttrLinks.get(finalI).getAttrCode());
+                int finalI1 = i;
+                List<PtlAgreementUndwrtRulesAttr> collect = rulesAttrs.stream().filter(x -> x.getAttrCode().equals(ptlAgreementProductCostsAttrLinks.get(finalI1).getAttrCode())).collect(Collectors.toList());
+                if(collect.size() > 0){
+                    logs.append("规则匹配失败:" + collect.get(0).getAttrName() + "\n");
+                }
                 return false;
             }
 
@@ -574,6 +583,13 @@ public class FeeRuleSchemeServiceNewImpl implements FeeRuleSchemeNewService {
                 log.debug("规则匹配失败:" + ptlAgreementProductCostsAttrLinks.get(i).getAttrCode());
                 log.debug("检验的值:" + ptlAgreementProductCostsAttrLinks.get(i).getMin());
                 log.debug("传入的值:" + ruleAttrMappingVo.getValue());
+                int finalI1 = i;
+                List<PtlAgreementUndwrtRulesAttr> collect = rulesAttrs.stream().filter(x -> x.getAttrCode().equals(ptlAgreementProductCostsAttrLinks.get(finalI1).getAttrCode())).collect(Collectors.toList());
+                if(collect.size() > 0){
+                    logs.append("规则匹配失败:" + collect.get(0).getAttrName() + "\n");
+                }
+                logs.append("检验的值:" + ptlAgreementProductCostsAttrLinks.get(i).getMin() + "\n");
+                logs.append("传入的值:" + ruleAttrMappingVo.getValue() + "\n");
                 return false;
             }
 

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

@@ -159,6 +159,8 @@ public class QuoteRespVo {
     @ApiModelProperty("商业续保")
     private String syRenewal;
 
+    @ApiModelProperty("费用不符合描述")
+    private String feeNoDescription;
 
     public List<AccidentResponseVo> getAccidentInfo() {
         return accident == null ? Collections.emptyList() : accident;

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

@@ -87,10 +87,10 @@ public class QuoteVerificationAspect {
                     insAreaCompanyAccidentalDrivingService.getByCompanyId(insAreaCompany.getId());
             insAreaCompany.setAccidentalDriving(insAreaCompanyAccidentalDriving);
             InsOrders insOrders = insOrdersService.getById(insAreaCompany.getOrderno());
-
+            StringBuilder logs = new StringBuilder();
             //再进行费用因子判断
             try {
-                feeRuleSchemeNewService.verificationCostFactor(insAreaCompany, insOrders);
+                feeRuleSchemeNewService.verificationCostFactor(insAreaCompany, insOrders, logs);
                 InsFeeOrderNew insFeeOrderNew = insFeeOrderNewService.getInsFeeOrderNewByCompanyId(insAreaCompany.getId());
                 if (insFeeOrderNew != null) {
                     //出口
@@ -102,6 +102,9 @@ public class QuoteVerificationAspect {
                     result.getData().setSumExportFee(subOrderExportFeeVo.getJqExportCosts()
                             .add(subOrderExportFeeVo.getSyExportCosts())
                             .add(subOrderExportFeeVo.getNoExportCosts()));
+                }else{
+                    //输出费用匹配失败日志
+                    result.getData().setFeeNoDescription(logs.toString());
                 }
             } catch (Exception ignored) {
                 log.debug("费用因子异常,车牌号:" + insOrders.getLicenseno());