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

费用匹配问题,添加特殊判断规则 客车时不看核定载质量因子

li.pengfei 2 лет назад
Родитель
Сommit
e61b4640eb

+ 9 - 3
src/main/java/com/ydtech/modules/fee/service/impl/FeeRuleSchemeServiceImpl.java

@@ -208,6 +208,12 @@ public class FeeRuleSchemeServiceImpl implements FeeRuleSchemeService {
         for(Map.Entry<Integer,FeeFactorInfoDto> entry : factorToBeVerified.entrySet()){
             Integer key=entry.getKey();
             FeeFactorInfoDto checkFactorInfo=entry.getValue();
+            //特殊处理,如果跟单是客车时,不关注配置的核定载质量字段
+           if("客车".equals(matchKeys[4])){
+                if(checkFactorInfo.getMatchSequence()==8){
+                    continue;
+                }
+           }
             //先看该方案是否需要匹配该因子,不需要则跳过本条因子
             if(!checkFactorInfo.isNeedMatch()){
                 continue;
@@ -245,9 +251,9 @@ public class FeeRuleSchemeServiceImpl implements FeeRuleSchemeService {
                     break;
                 }
             }else if("3".equals(checkFactorInfo.getMatchType())){//3.区间范围比较(左闭右闭)
-                if(matchKeys[key]!=null&&NumberUtils.isDigits(matchKeys[key])){
+                if(matchKeys[key]!=null&&NumberUtils.isCreatable(matchKeys[key])){
                     //如果需要匹配,且匹配成功,则跳过本次循环,继续校验下一因子
-                    if(Integer.parseInt(matchKeys[key])>=checkFactorInfo.getMinRangeVal()&&Integer.parseInt(matchKeys[key])<=checkFactorInfo.getMaxRangeVal()){
+                    if(Double.parseDouble(matchKeys[key])>=checkFactorInfo.getMinRangeVal()&&Double.parseDouble(matchKeys[key])<=checkFactorInfo.getMaxRangeVal()){
                         result=true;
                         continue;
                     }else{
@@ -729,7 +735,7 @@ public class FeeRuleSchemeServiceImpl implements FeeRuleSchemeService {
             String comlevel = "";
             do{//循环操作
                 SysDept sysDeptTemp = sysDeptService.getById(parentId);
-                if(StringUtils.isNotEmpty(sysDeptTemp.getParentId())){
+                if(sysDeptTemp!=null&&StringUtils.isNotEmpty(sysDeptTemp.getParentId())){
                     parentId = sysDeptTemp.getParentId();
                 }else{
                     break;