|
@@ -28,6 +28,7 @@ import com.boman.web.core.service.update.IBaseUpdateService;
|
|
|
import com.boman.web.core.utils.IdUtils;
|
|
|
import com.google.common.base.Strings;
|
|
|
import com.google.common.collect.Lists;
|
|
|
+import org.apache.commons.lang3.BooleanUtils;
|
|
|
import org.slf4j.Logger;
|
|
|
import org.slf4j.LoggerFactory;
|
|
|
import org.springframework.stereotype.Component;
|
|
@@ -40,10 +41,8 @@ import java.util.concurrent.TimeUnit;
|
|
|
import java.util.function.Predicate;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
-import static com.boman.common.core.utils.obj.ObjectUtils.ifNullSetEmpty;
|
|
|
-import static com.boman.common.core.utils.obj.ObjectUtils.requireNonNull;
|
|
|
-import static com.boman.web.core.constant.FormDataConstant.CONDITION;
|
|
|
-import static com.boman.web.core.constant.FormDataConstant.SHOW_DATA;
|
|
|
+import static com.boman.common.core.utils.obj.ObjectUtils.*;
|
|
|
+import static com.boman.web.core.constant.FormDataConstant.*;
|
|
|
|
|
|
/**
|
|
|
* @author shiqian
|
|
@@ -534,11 +533,40 @@ public class TableServiceCmdService {
|
|
|
*/
|
|
|
public AjaxResult getByTableName(BaseTableSaveDTO condition) {
|
|
|
requireNonNull(condition.getTable(), "表名为空");
|
|
|
+ requireNonNull(condition.getIsUi(), "根据表名获取表字段,未传 isUi 这个字段");
|
|
|
GenTable genTable = getTableFromRedisByTableName(RedisKey.TABLE_INFO, condition.getTable());
|
|
|
- packDictDataToColumns(genTable.getColumns(), ObjectUtils::isNotEmpty);
|
|
|
- return AjaxResult.success(genTable);
|
|
|
+ List<GenTableColumn> allColumns = genTable.getColumns();
|
|
|
+ // 普通的展示,不带折叠的
|
|
|
+ if (BooleanUtils.isFalse(condition.getIsUi())) {
|
|
|
+ packDictDataToColumns(allColumns, ObjectUtils::isNotEmpty);
|
|
|
+ return AjaxResult.success(genTable);
|
|
|
+ } else {
|
|
|
+ // 带折叠的展示
|
|
|
+ return getByTableName(allColumns);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
+ public AjaxResult getByTableName( List<GenTableColumn> allColumns) {
|
|
|
+ List<GenTableColumn> parentColumns = filter(allColumns, col -> HR.equalsIgnoreCase(col.getHtmlType()));
|
|
|
+
|
|
|
+ // 把孩子放入父亲的怀抱
|
|
|
+ for (GenTableColumn hrColumn : parentColumns) {
|
|
|
+ List<GenTableColumn> children = Lists.newArrayListWithCapacity(16);
|
|
|
+ for (GenTableColumn column : allColumns) {
|
|
|
+ if (hrColumn.getColumnId().equals(column.getHrParentId())) {
|
|
|
+ children.add(column);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ hrColumn.setHrChildren(children);
|
|
|
+ }
|
|
|
+
|
|
|
+ // 把孩子对应的字典值放进去
|
|
|
+ for (GenTableColumn hrColumn : parentColumns) {
|
|
|
+ packDictDataToColumns(hrColumn.getHrChildren(), ObjectUtils::isNotEmpty);
|
|
|
+ }
|
|
|
+
|
|
|
+ return AjaxResult.success(parentColumns);
|
|
|
+ }
|
|
|
|
|
|
public void packDictDataToColumns(List<GenTableColumn> columns, Predicate<String> predicate) {
|
|
|
requireNonNull(columns, "columns 为空");
|
|
@@ -551,5 +579,6 @@ public class TableServiceCmdService {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+
|
|
|
}
|
|
|
|