|
@@ -12,6 +12,7 @@ import org.springblade.manager.entity.Formula;
|
|
|
|
|
|
import java.math.BigDecimal;
|
|
|
import java.util.*;
|
|
|
+import java.util.function.BiFunction;
|
|
|
import java.util.stream.Collectors;
|
|
|
import java.util.stream.IntStream;
|
|
|
|
|
@@ -59,6 +60,30 @@ public class ExecutorFormat extends FormulaExecutor {
|
|
|
tec.getTableAll().removeIf(e->StringUtils.isEquals(0,e.getStatus()));
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+ 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->{
|
|
|
+ List<ElementData> la = c1.getValues();
|
|
|
+ List<ElementData> lb = c2.getValues();
|
|
|
+ if(la.size()>0&&lb.size()>0) {
|
|
|
+ Set<String> mergeSet = IntStream.range(0, Math.min(la.size(), lb.size())).boxed().map(i -> coordsFc.apply(la.get(i),lb.get(i))).filter(s -> !StringPool.EMPTY.equals(s)).collect(Collectors.toSet());
|
|
|
+ if (mergeSet.size() > 0) {
|
|
|
+ Set<String> set = tec.getMergeCellMaps().computeIfAbsent(tableName, k -> new HashSet<>());
|
|
|
+ set.addAll(mergeSet);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+ });
|
|
|
+ }
|
|
|
+ /*2-17 小计合计*/
|
|
|
+ private BiFunction<ElementData,ElementData,String> coordsFc217=(ea,eb)->{
|
|
|
+ String name = eb.stringValue();
|
|
|
+ if (("小计").equals(name) || ("合计").equals(name)) {
|
|
|
+ return ea.getIndex() + "@" + ea.getX() + "@" + ea.getY() + "@" + (eb.getX() + 2) + "@" + eb.getY();
|
|
|
+ }
|
|
|
+ return StringPool.EMPTY;
|
|
|
+ };
|
|
|
public void mergeCell(){
|
|
|
/*中期支付证书清单号、项目名*/
|
|
|
FormData qdh= FormulaUtils.elementFindByCode(tec.formDataMap,"m_20240325154016_1772166597482381312:key_1").orElse(null);
|
|
@@ -88,7 +113,8 @@ public class ExecutorFormat extends FormulaExecutor {
|
|
|
}
|
|
|
}
|
|
|
/*2-17 小计合计*/
|
|
|
- FormulaUtils.beRelyFrom(tec.formDataMap,"MtAiv:key_1").findFirst().ifPresent(qh->{
|
|
|
+ biColumnMerge("MtAiv:key_1","MtAiv:key_2","m_20240222101754_1760489057181237248",coordsFc217);
|
|
|
+ /* FormulaUtils.beRelyFrom(tec.formDataMap,"MtAiv:key_1").findFirst().ifPresent(qh->{
|
|
|
FormulaUtils.beRelyFrom(tec.formDataMap,"MtAiv:key_2").findFirst().ifPresent(clmc->{
|
|
|
List<ElementData> la = qh.getValues();
|
|
|
List<ElementData> lb = clmc.getValues();
|
|
@@ -108,7 +134,7 @@ public class ExecutorFormat extends FormulaExecutor {
|
|
|
}
|
|
|
}
|
|
|
});
|
|
|
- });
|
|
|
+ });*/
|
|
|
}
|
|
|
|
|
|
|