cuixinpeng %!s(int64=2) %!d(string=hai) anos
pai
achega
9bcac6f1fc

+ 31 - 10
src/main/java/com/ydtech/modules/fee/service/impl/FeeRuleSchemeServiceImpl.java

@@ -254,20 +254,41 @@ public class FeeRuleSchemeServiceImpl implements FeeRuleSchemeService {
                     break;
                 }
             }else if("2".equals(checkFactorInfo.getMatchType())){//2.多字符串匹配(包含)
-                if(matchKeys[key]!=null&&!"".equals(matchKeys[key])){
-                    //如果需要匹配,且匹配成功,则跳过本次循环,继续校验下一因子
-                    if(checkFactorInfo.getMultipleSelectVal().indexOf(matchKeys[key])>-1){
-                        result=true;
-                        continue;
+                //如果匹配的是业务类型,需要全字符匹配
+                //业务类型:单交0330、单商034001、单三034002、交三0330034002、交商0330034001
+                //034002,0330
+                if("业务类型".equals(checkFactorInfo.getFactorName())){
+                    if(matchKeys[key]!=null&&!"".equals(matchKeys[key])){
+                        //如果需要匹配,且匹配成功,则跳过本次循环,继续校验下一因子
+                        if(checkFactorInfo.getMultipleSelectVal().indexOf(matchKeys[key]+",")>-1){
+                            result=true;
+                            continue;
+                        }else{
+                            //如果需要匹配且没有匹配到,则直接跳出循环,该方案不符合
+                            result=false;
+                            break;
+                        }
                     }else{
-                        //如果需要匹配且没有匹配到,则直接跳出循环,该方案不符合
+                        //判断跟单信息是否为空,如果为空,则直接没有匹配到,该方案不符合
                         result=false;
                         break;
                     }
                 }else{
-                    //判断跟单信息是否为空,如果为空,则直接没有匹配到,该方案不符合
-                    result=false;
-                    break;
+                    if(matchKeys[key]!=null&&!"".equals(matchKeys[key])){
+                        //如果需要匹配,且匹配成功,则跳过本次循环,继续校验下一因子
+                        if(checkFactorInfo.getMultipleSelectVal().indexOf(matchKeys[key])>-1){
+                            result=true;
+                            continue;
+                        }else{
+                            //如果需要匹配且没有匹配到,则直接跳出循环,该方案不符合
+                            result=false;
+                            break;
+                        }
+                    }else{
+                        //判断跟单信息是否为空,如果为空,则直接没有匹配到,该方案不符合
+                        result=false;
+                        break;
+                    }
                 }
             }else if("3".equals(checkFactorInfo.getMatchType())){//3.区间范围比较(左闭右闭)
                 if(matchKeys[key]!=null&&NumberUtils.isCreatable(matchKeys[key])){
@@ -2126,7 +2147,7 @@ public class FeeRuleSchemeServiceImpl implements FeeRuleSchemeService {
         factor22.setMatchSequence(22);
         if(rulesFactor.getProductType()!=null&&!"".equals(rulesFactor.getProductType())){
             factor22.setNeedMatch(true);
-            factor22.setMultipleSelectVal(String.valueOf(rulesFactor.getProductType()));
+            factor22.setMultipleSelectVal(String.valueOf(rulesFactor.getProductType()+","));
         }else{
             //如果方案中未录入,则不校验该项因子
             factor22.setNeedMatch(false);