|
@@ -10,7 +10,6 @@ import org.springblade.manager.dto.ElementData;
|
|
|
import org.springblade.manager.dto.FormData;
|
|
|
import org.springblade.manager.entity.Formula;
|
|
|
|
|
|
-import java.math.BigDecimal;
|
|
|
import java.util.*;
|
|
|
import java.util.function.BiFunction;
|
|
|
import java.util.stream.Collectors;
|
|
@@ -67,7 +66,9 @@ public class ExecutorFormat extends FormulaExecutor {
|
|
|
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());
|
|
|
+ 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);
|
|
@@ -76,6 +77,18 @@ public class ExecutorFormat extends FormulaExecutor {
|
|
|
});
|
|
|
});
|
|
|
}
|
|
|
+ /*2-6中期支付证书清单号、项目名*/
|
|
|
+ private BiFunction<ElementData,ElementData,String> coordsFc26=(ea,eb)->{
|
|
|
+ String a= ea.stringValue();
|
|
|
+ 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;
|
|
|
+ };
|
|
|
/*2-17 小计合计*/
|
|
|
private BiFunction<ElementData,ElementData,String> coordsFc217=(ea,eb)->{
|
|
|
String name = eb.stringValue();
|
|
@@ -84,9 +97,15 @@ public class ExecutorFormat extends FormulaExecutor {
|
|
|
}
|
|
|
return StringPool.EMPTY;
|
|
|
};
|
|
|
+
|
|
|
+ /*单元格合并集中处理*/
|
|
|
public void mergeCell(){
|
|
|
- /*中期支付证书清单号、项目名*/
|
|
|
- FormData qdh= FormulaUtils.elementFindByCode(tec.formDataMap,"m_20240325154016_1772166597482381312:key_1").orElse(null);
|
|
|
+ /*2-6中期支付证书清单号、项目名*/
|
|
|
+ biColumnMerge("IPayCert:key_1","IPayCert:key_0","m_20240325154016_1772166597482381312",coordsFc26);
|
|
|
+ /*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();
|
|
@@ -96,7 +115,7 @@ public class ExecutorFormat extends FormulaExecutor {
|
|
|
ElementData ea=la.get(i);
|
|
|
ElementData eb=lb.get(i);
|
|
|
String a= ea.stringValue();
|
|
|
- /*StringUtils.isNotEmpty(eb.getValue())&&eb.getValue().toString().contains("暂")*/
|
|
|
+ *//*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());
|
|
@@ -111,30 +130,9 @@ public class ExecutorFormat extends FormulaExecutor {
|
|
|
set.addAll(mergeSet);
|
|
|
}
|
|
|
}
|
|
|
- }
|
|
|
- /*2-17 小计合计*/
|
|
|
- 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();
|
|
|
- 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 name = eb.stringValue();
|
|
|
- if (("小计").equals(name) || ("合计").equals(name)) {
|
|
|
- return ea.getIndex() + "@" + ea.getX() + "@" + ea.getY() + "@" + (eb.getX() + 2) + "@" + 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_20240222101754_1760489057181237248", k -> new HashSet<>());
|
|
|
- set.addAll(mergeSet);
|
|
|
- }
|
|
|
- }
|
|
|
- });
|
|
|
- });*/
|
|
|
+ }*/
|
|
|
+
|
|
|
+
|
|
|
}
|
|
|
|
|
|
|