瀏覽代碼

允许误差计算(mm):_∑h理=_fh允

yangyj 1 年之前
父節點
當前提交
163908aba1

+ 19 - 4
blade-service/blade-manager/src/main/java/org/springblade/manager/formula/impl/FormulaTurnPoint.java

@@ -85,7 +85,7 @@ public class FormulaTurnPoint implements FormulaStrategy {
            /* 分组计算*/
             List<List<TurnPoint>> result = total.stream().map(e->ITurnPointCalculator.create(e, configMap,info)).collect(Collectors.toList());
             /*附加属性如:顶面和底面高程判断*/
-            forG8(result.stream().flatMap(Collection::stream).collect(Collectors.toList()), (Map<String, Object>)tec.getConstantMap().computeIfAbsent("G8", k -> new HashMap<>()),tec);
+            forG8(cur,result, (Map<String, Object>)tec.getConstantMap().computeIfAbsent("G8", k -> new HashMap<>()),tec);
            /*插值分页*/
             List<Object> data = paginate(cur,result,configMap);
             /*数据回写*/
@@ -173,7 +173,8 @@ public class FormulaTurnPoint implements FormulaStrategy {
             });
         }
     }
-    private void forG8(List<TurnPoint> data, Map<String, Object> g8,TableElementConverter tec) {
+    private void forG8(FormData cur,List<List<TurnPoint>> result, Map<String, Object> g8,TableElementConverter tec) {
+        List<TurnPoint> data=result.stream().flatMap(Collection::stream).collect(Collectors.toList());
         g8.put("dx", data.stream().filter(e -> TurnPoint.CE.equals(e.getType())).map(tp -> CustomFunction.xN(tp.getDx(), 1000)).collect(Collectors.toList()));
         g8.put("dxv", data.stream().filter(e -> TurnPoint.CE.equals(e.getType()) && e.getVertical()).map(tp -> CustomFunction.xN(tp.getDx(), 1000)).collect(Collectors.toList()));
         g8.put("dxnv", data.stream().filter(e -> TurnPoint.CE.equals(e.getType()) && !e.getVertical()).map(tp -> CustomFunction.xN(tp.getDx(), 1000)).collect(Collectors.toList()));
@@ -188,9 +189,9 @@ public class FormulaTurnPoint implements FormulaStrategy {
         g8.put("cdnv", data.stream().filter(e -> TurnPoint.CE.equals(e.getType()) && !e.getVertical()).map(TurnPoint::getName).collect(Collectors.toList()));
         List<NodeTable> nodeTableList=tec.getTableAll();
         /*c8.103*/
-        c8103( data,nodeTableList, tec);
+        c8103(data,nodeTableList, tec);
         /*统计*/
-
+        fh6n( cur, result, tec);
     }
 
     public void c8103(List<TurnPoint> data,List<NodeTable> nodeTableList,TableElementConverter tec){
@@ -238,6 +239,20 @@ public class FormulaTurnPoint implements FormulaStrategy {
             }
         });
     }
+    private void fh6n(FormData cur,List<List<TurnPoint>> result,TableElementConverter tec){
+        /*误差计算(mm):_∑h理=_fh允=±6√n=*/
+        tec.formDataMap.values().stream().filter(fd->fd.getTableName().equals(cur.getTableName())&&fd.getEName().contains("fh允")&&fd.getCoordsList().size()>0).findFirst().ifPresent(t->{
+            double rowSize=cur.getCoordsList().size();
+            List<Object> tmp=new ArrayList<>();
+            for(List<TurnPoint> list:result){
+                double n=list.size();
+                double x=  Math.sqrt(list.stream().filter(s-> ZD.equals(s.getType())).count()+1)*6;
+                int m= (int) Math.ceil(n/rowSize);
+                tmp.addAll(Collections.nCopies(m,x));
+            }
+            FormulaUtils.write(t,tmp,false);
+        });
+    }
 
     private String c(String name,List<String> args) {
         if (Func.isNotEmpty(name) && Func.isNotEmpty(args)) {