shiqian 4 jaren geleden
bovenliggende
commit
cc4ebb6ced

+ 12 - 0
boman-api/boman-domain/src/main/java/com.boman.domain/GenTableColumn.java

@@ -171,6 +171,18 @@ public class GenTableColumn extends BaseEntity
      * 表.字段全称
      */
     private String tableColumnName;
+    /**
+     * 前端再计算的时候,是否用到该列的扩展属性 extendedAttributes
+     */
+    private Boolean isUseExtend;
+
+    public Boolean getIsUseExtend() {
+        return isUseExtend;
+    }
+
+    public void setIsUseExtend(Boolean isUseExtend) {
+        this.isUseExtend = isUseExtend;
+    }
 
     public String getTableColumnName() {
         return tableColumnName;

+ 4 - 0
boman-api/boman-domain/src/main/java/com.boman.domain/constant/FormDataConstant.java

@@ -189,5 +189,9 @@ public class FormDataConstant {
 
     /** 冒号 */
     public static final String COLON = ":";
+    /** 前台有时候需要计算时长等的标识 */
+    public static final String COL = "col";
+    /** 前台有时候需要计算时长等的标识,用到的列 */
+    public static final String IS_USE_EXTEND = "isUseExtend";
 
 }

+ 14 - 0
boman-common/boman-common-core/src/main/java/com/boman/common/core/utils/collection/CollectionUtils.java

@@ -1,9 +1,11 @@
 package com.boman.common.core.utils.collection;
 
+import com.alibaba.fastjson.JSONArray;
 import com.boman.common.core.utils.obj.ObjectUtils;
 
 import java.util.Collection;
 import java.util.List;
+import java.util.Set;
 import java.util.stream.Collectors;
 
 /**
@@ -34,4 +36,16 @@ public class CollectionUtils {
         one.addAll(another);
         return one.stream().distinct().collect(Collectors.toList());
     }
+
+    @SuppressWarnings("unchecked")
+    public static <T> void addJSONArray(Set<T> set, JSONArray jsonArray) {
+        if (null == jsonArray || jsonArray.size() <= 0) {
+            return;
+        }
+
+        for (Object object : jsonArray) {
+            T input = (T) object;
+            set.add(input);
+        }
+    }
 }

+ 5 - 4
boman-common/boman-common-core/src/main/java/com/boman/common/core/utils/obj/ObjectUtils.java

@@ -265,11 +265,12 @@ public class ObjectUtils {
     /**
      * 功能描述: 根据规则获取
      *
-     * @param input    原数据
-     * @param function FunctionalInterface
-     * @return java.util.List<T>
+     * @param input     原数据
+     * @param predicate predicate
+     * @param function  FunctionalInterface
+     * @return java.util.List<R>
      */
-    public static <T, R> List<R> mapFilter(List<T> input, Function<T, R> function, Predicate<T> predicate) {
+    public static <T, R> List<R> mapFilter(List<T> input, Predicate<T> predicate, Function<T, R> function) {
         return requireNonNull(input, "list is null")
                 .stream()
                 .filter(predicate)

+ 2 - 10
boman-web-core/src/main/java/com/boman/web/core/service/TableServiceCmdService.java

@@ -3,10 +3,8 @@ package com.boman.web.core.service;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
-import com.boman.common.core.constant.GenConstants;
 import com.boman.common.core.utils.SecurityUtils;
 import com.boman.common.core.utils.StringUtils;
-import com.boman.common.core.utils.array.ArrayUtils;
 import com.boman.common.core.utils.collection.CollectionUtils;
 import com.boman.common.core.utils.obj.ObjectUtils;
 import com.boman.common.core.web.domain.AjaxResult;
@@ -34,7 +32,6 @@ 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.apache.commons.lang3.math.NumberUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.stereotype.Component;
@@ -45,7 +42,6 @@ import java.sql.Timestamp;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
-import java.util.Map;
 import java.util.concurrent.TimeUnit;
 import java.util.function.Predicate;
 
@@ -654,6 +650,8 @@ public class TableServiceCmdService {
         List<GenTableColumn> allColumns = genTable.getColumns();
         List<GenTableColumn> parentColumns = filterHrAndSort(allColumns);
         List<GenTableColumn> resultCols;
+        // extend的字段标记为true
+        markTrueByExtend(allColumns);
         // 所有新增可见的列
         allColumns = filterData(allColumns, 0, MaskConstant.INSERT_VISIBLE::equals);
         // 带折叠
@@ -664,12 +662,6 @@ public class TableServiceCmdService {
                 for (GenTableColumn column : allColumns) {
                     if (hrColumn.getId().equals(column.getHrParentId())) {
                         children.add(column);
-                        String extend = column.getExtendedAttributes();
-                        if (isNotEmpty(extend)) {
-//                            JSONObject jsonObject = JSONObject.parseObject(extend);
-
-
-                        }
                     }
                 }
                 hrColumn.setHrChildren(children);

+ 29 - 0
boman-web-core/src/main/java/com/boman/web/core/utils/HandlerFormDataUtils.java

@@ -7,6 +7,7 @@ import com.alibaba.fastjson.TypeReference;
 import com.boman.common.core.utils.DateUtils;
 import com.boman.common.core.utils.SpringUtils;
 import com.boman.common.core.utils.array.ArrayUtils;
+import com.boman.common.core.utils.collection.CollectionUtils;
 import com.boman.common.core.utils.obj.ObjectUtils;
 import com.boman.domain.GenTableColumn;
 import com.boman.domain.SysDictData;
@@ -265,4 +266,32 @@ public class HandlerFormDataUtils {
         }
     }
 
+    /**
+     * 功能描述: 列中extend的json使用到的列标记为true
+     *
+     * @param allColumns allColumns
+     */
+    public static void markTrueByExtend(List<GenTableColumn> allColumns) {
+        Set<String> extendColumnNames = new HashSet<>(16);
+        for (GenTableColumn col : allColumns) {
+            String extendedAttributes = col.getExtendedAttributes();
+            if (isNotEmpty(extendedAttributes)) {
+                JSONObject jsonObject = JSON.parseObject(extendedAttributes);
+                JSONArray jsonArray = jsonObject.getJSONArray(COL);
+                CollectionUtils.addJSONArray(extendColumnNames, jsonArray);
+            }
+        }
+
+        if (isEmpty(extendColumnNames)) {
+            return;
+        }
+
+
+        for (GenTableColumn column : allColumns) {
+            if (extendColumnNames.contains(column.getColumnName())) {
+                column.setIsUseExtend(true);
+            }
+        }
+    }
+
 }