|
@@ -1,10 +1,7 @@
|
|
|
package org.springblade.manager.formula.impl;
|
|
|
|
|
|
-import com.alibaba.fastjson.JSON;
|
|
|
-import com.alibaba.fastjson.JSONArray;
|
|
|
-import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
+
|
|
|
import com.mixsmart.utils.StringUtils;
|
|
|
-import lombok.AllArgsConstructor;
|
|
|
import lombok.Data;
|
|
|
import org.springblade.common.utils.BaseUtils;
|
|
|
import org.springblade.core.tool.utils.Func;
|
|
@@ -61,7 +58,8 @@ public class TableElementConverter implements ITableElementConverter {
|
|
|
this.formulas.forEach(e->{
|
|
|
formulaMap.put(e.getElementId().toString(),e);
|
|
|
});
|
|
|
- LinkedHashMap<String,List<KeyMapper>> dataMap =keyMappers.stream().collect(Collectors.groupingBy(e->e.getTableName()+e.getField()+ StringPool.AT+e.getFieldId(), LinkedHashMap<String,List<KeyMapper>>::new,Collectors.toList()));
|
|
|
+ /*根据元素id对keyMappers分组*/
|
|
|
+ LinkedHashMap<String,List<KeyMapper>> dataMap =keyMappers.stream().collect(Collectors.groupingBy(KeyMapper::getCodeAndId,LinkedHashMap<String,List<KeyMapper>>::new,Collectors.toList()));
|
|
|
dataMap.keySet().forEach(e->{
|
|
|
String[] codeAndId = e.split(StringPool.AT);
|
|
|
List<KeyMapper> kms = dataMap.get(e);
|
|
@@ -78,7 +76,7 @@ public class TableElementConverter implements ITableElementConverter {
|
|
|
eds.add(new ElementData(index.get(),0,s));
|
|
|
}
|
|
|
}
|
|
|
- index.set(index.get()+1);
|
|
|
+ index.getAndIncrement();
|
|
|
});
|
|
|
});
|
|
|
this.fds.add(new FormData(codeAndId[0],eds,formulaMap.get(codeAndId[1])));
|
|
@@ -88,8 +86,27 @@ public class TableElementConverter implements ITableElementConverter {
|
|
|
|
|
|
@Override
|
|
|
public void after() {
|
|
|
+ /*可以优化对每一张表进行元素分类,同一张元素*/
|
|
|
for (FormData fd : this.fds) {
|
|
|
List<ElementData> values = fd.getValues();
|
|
|
+ /*每个元素数据有N组组成,每组由N页组成*/
|
|
|
+ LinkedHashMap<Integer,LinkedHashMap<Integer,List<ElementData>>> groups = values.stream().collect(Collectors.groupingBy(ElementData::getGroupId,LinkedHashMap<Integer,LinkedHashMap<Integer,List<ElementData>>>::new,Collectors.groupingBy(ElementData::getIndex,LinkedHashMap<Integer,List<ElementData>>::new,Collectors.toList())));
|
|
|
+ List<Long> tableIds=keyMappers.stream().filter(e -> StringUtils.isEquals(e.getCode(),fd.getCode())).map(KeyMapper::getNodeId).collect(Collectors.toList());
|
|
|
+ List<TableInfo> tables = this.tableInfoList.stream().filter(e->tableIds.contains(Long.parseLong(e.getPkeyId()))).collect(Collectors.toList());
|
|
|
+ groups.forEach((groupId, group) -> {
|
|
|
+ group.forEach((index,page)->{
|
|
|
+ TableInfo info = tables.get(index);
|
|
|
+ /*每一页对应一个info*/
|
|
|
+ info.getDataMap().put(fd.getKey(),page.stream().map(e->StringUtils.handleNull(e.getValue())).collect(Collectors.joining(StringPool.COMMA)));
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
}
|
|
|
+ /*code前缀相同的是同一张表的元素*/
|
|
|
+ Map<String,List<FormData>> fdsMap = this.fds.stream().collect(Collectors.groupingBy(FormData::getTableName));
|
|
|
}
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
}
|