浏览代码

水利评定合格率

yangyj 2 年之前
父节点
当前提交
5a559d9120

+ 10 - 0
blade-service/blade-manager/src/main/java/com/mixsmart/utils/CustomFunction.java

@@ -470,6 +470,16 @@ public class CustomFunction {
          return "";
          return "";
 	}
 	}
 
 
+	public static  Object ladder(List<Object> data){
+	     if(Func.isNotEmpty(data)){
+	       OptionalDouble op=data.stream().map(StringUtils::handleNull).filter(StringUtils::isNumber).mapToDouble(Double::parseDouble).min();
+	       if(op.isPresent()){
+	       	   return op.getAsDouble()>=90?90:70;
+		   }
+		 }
+		return "";
+	}
+
 
 
 	/**
 	/**
 	 * @Description 时间比较获取
 	 * @Description 时间比较获取

+ 16 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/FormulaServiceImpl.java

@@ -564,6 +564,22 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
                             }else{
                             }else{
                                 fd.getFormula().setFormula(StringPool.EMPTY);
                                 fd.getFormula().setFormula(StringPool.EMPTY);
                             }
                             }
+                        }else if(f.contains(".ladder(")){
+                            String tf=f.replace(CustomFunction.CLASS_CALL+"ladder","").replaceAll("[()]","");
+                            String[] tfa=tf.split(",");
+                            List<FormData> target = new ArrayList<>();
+                            for(String code:tfa){
+                                code=code.replace("E['","").replace("']","");
+                                target.add(this.formDataMap.get(code));
+                            }
+                            if(Func.isNotEmpty(target)){
+                                Object data= CustomFunction.ladder(target.stream().map(FormData::getValues).filter(Func::isNotEmpty).map(e->e.get(0)).collect(Collectors.toList()));
+                                String key ="HA"+HashUtil.identityHashCode(data);
+                                this.constantMap.put(key,data);
+                                fd.getFormula().setFormula(key);
+                            }else{
+                                fd.getFormula().setFormula(StringPool.EMPTY);
+                            }
                         }
                         }
                         System.out.println("聚合处理");
                         System.out.println("聚合处理");
                     }
                     }