Ver código fonte

去零排除

yangyj 6 meses atrás
pai
commit
de723ef001

+ 25 - 34
blade-service/blade-manager/src/main/java/org/springblade/manager/formula/impl/ExecutorFormat.java

@@ -12,6 +12,7 @@ import org.springblade.manager.entity.Formula;
 
 import java.util.*;
 import java.util.function.BiFunction;
+import java.util.function.Predicate;
 import java.util.stream.Collectors;
 import java.util.stream.IntStream;
 
@@ -26,6 +27,21 @@ public class ExecutorFormat extends FormulaExecutor {
     public ExecutorFormat(TableElementConverter tec) {
         super(tec);
     }
+    List<String> initTableNames = Arrays.asList("m_20240222101436_1760488226289614848");
+    List<String> elementCodes = Arrays.asList("排除的元素code");
+    private Predicate<FormData> zeroSkipPd=fd->{
+         for(String tn:initTableNames){
+             if(tn.equals(fd.getTableName())){
+                 return false;
+             }
+         }
+        for(String tn:elementCodes){
+            if(tn.equals(fd.getCode())){
+                return false;
+            }
+        }
+      return true;
+    };
 
     @Override
     public void handle() {
@@ -45,12 +61,13 @@ public class ExecutorFormat extends FormulaExecutor {
                     }
                 }
                 /*0不显示*/
-               fd.getValues().forEach(ed->{
-                   if(BaseUtils.isZero(ed.getValue())){
-                       ed.setValue(StringPool.EMPTY);
-                   }
-               });
-
+                if(zeroSkipPd.test(fd)) {
+                    fd.getValues().forEach(ed -> {
+                        if (BaseUtils.isZero(ed.getValue())) {
+                            ed.setValue(StringPool.EMPTY);
+                        }
+                    });
+                }
             }
         }
         /*合并单元格*/
@@ -60,6 +77,8 @@ public class ExecutorFormat extends FormulaExecutor {
     }
 
 
+
+
     private void  biColumnMerge(String col1, String col2, String tableName, BiFunction<ElementData,ElementData,String> coordsFc){
         FormulaUtils.beRelyFrom(tec.formDataMap,col1).findFirst().ifPresent(c1->{
             FormulaUtils.beRelyFrom(tec.formDataMap,col2).findFirst().ifPresent(c2->{
@@ -105,34 +124,6 @@ public class ExecutorFormat extends FormulaExecutor {
         /*2-17 小计合计*/
         biColumnMerge("MtAiv:key_1","MtAiv:key_2","m_20240222101754_1760489057181237248",coordsFc217);
 
-        /*FormData qdh= FormulaUtils.elementFindByCode(tec.formDataMap,"m_20240325154016_1772166597482381312:key_1").orElse(null);
-        FormData xm= FormulaUtils.elementFindByCode(tec.formDataMap,"m_20240325154016_1772166597482381312:key_13").orElse(null);
-        if(qdh!=null&&xm!=null){
-            List<ElementData> la = qdh.getValues();
-            List<ElementData> lb = xm.getValues();
-            if(la.size()>0&&lb.size()>0){
-               Set<String> mergeSet= IntStream.range(0, Math.min(la.size(),lb.size())).boxed().map(i->{
-                    ElementData ea=la.get(i);
-                    ElementData eb=lb.get(i);
-                    String a= ea.stringValue();
-                    *//*StringUtils.isNotEmpty(eb.getValue())&&eb.getValue().toString().contains("暂")*//*
-                    if(a!=null&&!a.matches("^\\d+.+")||StringUtils.isNotEmpty(eb.getValue())&&eb.getValue().toString().contains("暂")){
-                        if(StringUtils.isNotEmpty(eb.getValue())&&eb.getValue().toString().contains("暂")) {
-                            ea.setValue(eb.getValue());
-                            eb.setValue("");
-                        }
-                        return  ea.getIndex()+"@"+ea.getX()+"@"+ea.getY()+"@"+(eb.getX()+1)+"@"+eb.getY();
-                    }
-                    return StringPool.EMPTY;
-                }).filter(s->!StringPool.EMPTY.equals(s)).collect(Collectors.toSet());
-                if(mergeSet.size()>0){
-                    Set<String> set=tec.getMergeCellMaps().computeIfAbsent("m_20240325154016_1772166597482381312", k->new HashSet<>());
-                    set.addAll(mergeSet);
-                }
-            }
-        }*/
-
-
     }
 
 

+ 1 - 1
blade-service/blade-manager/src/main/java/org/springblade/manager/formula/impl/ExecutorMeter.java

@@ -515,7 +515,7 @@ public class ExecutorMeter extends FormulaExecutor {
             builderFormDatas(MaterialPriceDifferential.class);
             /*本期材料*/
             List<MaterialAdjust> materialAdjustList=tec.meterInfo.getMaterialAdjustListMap().get(MeterInfo.CUR);
-            if(materialAdjustList.size()>0){
+            if(materialAdjustList!=null&&materialAdjustList.size()>0){
                 /*期号*/
                 String qh="";
                 if(tec.periodInfo.getPayNumber()!=null) {