Quellcode durchsuchen

修改费用因子bug

785834757 vor 2 Jahren
Ursprung
Commit
ed7010093e

+ 27 - 7
src/main/java/com/ydtech/modules/fee/service/impl/FeeRuleSchemeServiceNewImpl.java

@@ -456,8 +456,10 @@ public class FeeRuleSchemeServiceNewImpl implements FeeRuleSchemeNewService {
         }
         //是否强制走非车
         if(isNoCar) {
-            if(judgementsIsNoCar(filterAgreementProductCosts.get(0).getCostsAttrLinks(),undwrtRulesAttrList,ruleAttrMappingVoList)){
-                return filterAgreementProductCosts.get(0).getId();
+            for(int i=0;i<filterAgreementProductCosts.size();i++) {
+                if (judgementsIsNoCar(filterAgreementProductCosts.get(i).getCostsAttrLinks(), undwrtRulesAttrList, ruleAttrMappingVoList)) {
+                    return filterAgreementProductCosts.get(i).getId();
+                }
             }
         }else{
             for (int i = 0; i < filterAgreementProductCosts.size(); i++) {
@@ -468,8 +470,8 @@ public class FeeRuleSchemeServiceNewImpl implements FeeRuleSchemeNewService {
                 }
             }
         }
-        return null;
-//        throw new SystemException("费用因子匹配失败");
+//        return null;
+        throw new SystemException("费用因子匹配失败");
     }
 
 
@@ -528,7 +530,7 @@ public class FeeRuleSchemeServiceNewImpl implements FeeRuleSchemeNewService {
                     ruleAttrMappingVo.setValue(ptlAgreementUndwrtRulesDictLabal.getCode());
                 }
             }
-            useFlag = attrEqual(ptlAgreementProductCostsAttrLinks.get(i), ptlAgreementUndwrtRulesAttr, ruleAttrMappingVo.getValue());
+            useFlag = attrEqual(ptlAgreementProductCostsAttrLinks.get(i), ptlAgreementUndwrtRulesAttr, ruleAttrMappingVo.getAttrCode());
             if(!useFlag)
                 return false;
         }
@@ -605,9 +607,27 @@ public class FeeRuleSchemeServiceNewImpl implements FeeRuleSchemeNewService {
                 return false;
             //查找 费用因子规则
             PtlAgreementUndwrtRulesAttr ptlAgreementUndwrtRulesAttr = rulesAttrs.stream().filter(x -> x.getAttrCode().equals(ptlAgreementProductCostsAttrLinks.get(finalI).getAttrCode())).findFirst().get();
+            //如果是多选 对value进行转换
+            if(ptlAgreementUndwrtRulesAttr.getAttrType().equals("checkbox")) {
+                PtlAgreementUndwrtRulesDictLabal ptlAgreementUndwrtRulesDictLabal = ptlAgreementUndwrtRulesAttr.getDictLabal().stream().filter(x ->
+                        x.getCode().equals(ruleAttrMappingVo.getValue())).findFirst().orElse(null);
+                ruleAttrMappingVo.setValue(ptlAgreementUndwrtRulesDictLabal.getName());
+            }
+            //如果是单选 并且是 性别的话 转换为code
+            if(ptlAgreementUndwrtRulesAttr.getAttrType().equals("radio"))
+            {
+                if("CarOwnersSex".equals(ptlAgreementUndwrtRulesAttr.getAttrCode()) || "ApplicantSex".equals(ptlAgreementUndwrtRulesAttr.getAttrCode()) ||
+                        "InsuredSex".equals(ptlAgreementUndwrtRulesAttr.getAttrCode())){
+                    PtlAgreementUndwrtRulesDictLabal ptlAgreementUndwrtRulesDictLabal = ptlAgreementUndwrtRulesAttr.getDictLabal().stream().filter(x ->
+                            x.getName().equals(ruleAttrMappingVo.getValue())).findFirst().orElse(null);
+                    ruleAttrMappingVo.setValue(ptlAgreementUndwrtRulesDictLabal.getCode());
+                }
+            }
             useFlag = attrEqual(ptlAgreementProductCostsAttrLinks.get(i), ptlAgreementUndwrtRulesAttr, ruleAttrMappingVo.getValue());
-            if(!useFlag)
+            if(!useFlag) {
+                System.out.printf("规则匹配失败:" + ptlAgreementProductCostsAttrLinks.get(i).getAttrCode());
                 return false;
+            }
         }
         return useFlag;
     }
@@ -773,7 +793,7 @@ public class FeeRuleSchemeServiceNewImpl implements FeeRuleSchemeNewService {
      * @return
      */
     private boolean selectEqual(PtlAgreementProductCostsAttrLink ptlAgreementProductCostsAttrLink, String value){
-        if(ptlAgreementProductCostsAttrLink.getMin().contains(value)){
+        if(ptlAgreementProductCostsAttrLink.getMin() != null && ptlAgreementProductCostsAttrLink.getMin().contains(value)){
             return true;
         }
         return false;