shiqian преди 4 години
родител
ревизия
c149732987

+ 13 - 2
boman-modules/boman-gen/src/main/java/com/boman/gen/domain/GenTableColumn.java

@@ -1,11 +1,9 @@
 package com.boman.gen.domain;
 
-import com.alibaba.fastjson.JSONObject;
 import com.boman.common.core.utils.StringUtils;
 import com.boman.common.core.web.domain.BaseEntity;
 import com.boman.domain.SysDictData;
 
-import javax.validation.constraints.NotBlank;
 import java.util.List;
 
 /**
@@ -133,6 +131,11 @@ public class GenTableColumn extends BaseEntity
      */
     private String isOut;
 
+    /**
+     * 此列对应的值
+     */
+    private Object columnValue;
+
 
     public String getFieldTranslator() {
         return fieldTranslator;
@@ -540,4 +543,12 @@ public class GenTableColumn extends BaseEntity
     public void setTableName(String tableName) {
         this.tableName = tableName;
     }
+
+    public Object getColumnValue() {
+        return columnValue;
+    }
+
+    public void setColumnValue(Object columnValue) {
+        this.columnValue = columnValue;
+    }
 }

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

@@ -358,10 +358,29 @@ public class TableServiceCmdService {
         // 默认查所有字段,不支持自定义
         JSONObject json = selectService.selectById(tableName, pkName, id);
 
-        handler(Collections.singletonList(json), columns);
+        List<GenTableColumn> parentColumns = filter(columns, col -> HR.equalsIgnoreCase(col.getHtmlType()));
+        // 处理成hr的形式
+        for (GenTableColumn hrColumn : parentColumns) {
+            List<GenTableColumn> children = Lists.newArrayListWithCapacity(16);
+            for (GenTableColumn column : columns) {
+                if (hrColumn.getColumnId().equals(column.getHrParentId())) {
+                    // handler column
+                    if (json.containsKey(column.getColumnName())) {
+                        handlerSysDictData(Collections.singletonList(json), Collections.singletonList(column));
+                        handlerDate(Collections.singletonList(json), Collections.singletonList(column));
+                        handlerForeignKey(Collections.singletonList(json), Collections.singletonList(column));
+                        column.setColumnValue(json.get(column.getColumnName()));
+                    }
+
+                    children.add(column);
+                }
+            }
+            hrColumn.setHrChildren(children);
+        }
 
         JSONObject result = new JSONObject();
-        result.put(SHOW_DATA, packSingleObj(json, columns));
+//        result.put(SHOW_DATA, packSingleObj(json, columns));
+        result.put(SHOW_DATA, parentColumns);
         result.put(BUTTON_LIST, getButton(tableName));
         return AjaxResult.success(result);
     }