shiqian 4 éve
szülő
commit
0cf2dd5ab3

+ 22 - 0
boman-modules/boman-gen/src/main/java/com/boman/gen/domain/GenTableColumn.java

@@ -86,6 +86,12 @@ public class GenTableColumn extends BaseEntity
     /** 如果是下拉框,单选,复选框 对应的子节点的值 */
     private List<SysDictData> sysDictData;
 
+    /** 哪些字段属于这些hr的 */
+    private Long hrParentId;
+
+    /** hr的孩子们 */
+    private List<GenTableColumn> hrChildren;
+
     public String getForeignKey() {
         return foreignKey;
     }
@@ -404,4 +410,20 @@ public class GenTableColumn extends BaseEntity
     public void setSysDictData(List<SysDictData> sysDictData) {
         this.sysDictData = sysDictData;
     }
+
+    public Long getHrParentId() {
+        return hrParentId;
+    }
+
+    public void setHrParentId(Long hrParentId) {
+        this.hrParentId = hrParentId;
+    }
+
+    public List<GenTableColumn> getHrChildren() {
+        return hrChildren;
+    }
+
+    public void setHrChildren(List<GenTableColumn> hrChildren) {
+        this.hrChildren = hrChildren;
+    }
 }

+ 2 - 1
boman-modules/boman-gen/src/main/resources/mapper/generator/GenTableColumnMapper.xml

@@ -28,10 +28,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="createTime"     column="create_time"    />
         <result property="updateBy"       column="update_by"      />
         <result property="updateTime"     column="update_time"    />
+        <result property="hrParentId"     column="hr_parent_id"    />
     </resultMap>
 	
 	<sql id="selectGenTableColumnVo">
-        select column_id, table_id, column_name, column_comment, column_type, java_type, java_field, is_pk, is_increment, is_required, is_insert, is_edit, is_list, is_query, query_type, html_type, foreign_key, dict_type, sort, create_by, create_time, update_by, update_time from gen_table_column
+        select column_id, table_id, column_name, column_comment, column_type, java_type, java_field, is_pk, is_increment, is_required, is_insert, is_edit, is_list, is_query, query_type, html_type, foreign_key, dict_type, sort, create_by, create_time, update_by, update_time, hr_parent_id from gen_table_column
     </sql>
 	
     <select id="selectGenTableColumnListByTableId" parameterType="GenTableColumn" resultMap="GenTableColumnResult">

+ 3 - 0
boman-web-core/src/main/java/com/boman/web/core/constant/FormDataConstant.java

@@ -137,6 +137,9 @@ public class FormDataConstant {
     /**  需要查字典表的框框 */
     public static final List<String> NEED_QUERY_DICT_LIST = Lists.newArrayList(RADIO, CHECKBOX, SELECT);
 
+    /**  hr 日志、基础信息..... */
+    public static final String HR = "hr";
+
 
 
 }

+ 14 - 0
boman-web-core/src/main/java/com/boman/web/core/domain/BaseTableSaveDTO.java

@@ -74,6 +74,12 @@ public class BaseTableSaveDTO implements Serializable {
     @JSONField(name = "status")
     private String status;
 
+    /**
+     * 跳转新增或者编辑页面显示的类型带不带折叠,如果isUi=true, 带折叠
+     */
+    @JSONField(name = "isUi")
+    private Boolean isUi;
+
 
     public int getLimit() {
         return pageNo == 0 ? 0 : (pageNo - 1) * pageSize;
@@ -174,6 +180,14 @@ public class BaseTableSaveDTO implements Serializable {
     public void setPageSize(Integer pageSize) {
         this.pageSize = pageSize;
     }
+
+    public Boolean getIsUi() {
+        return isUi;
+    }
+
+    public void setIsUi(Boolean ui) {
+        isUi = ui;
+    }
 }
 
 

+ 35 - 6
boman-web-core/src/main/java/com/boman/web/core/service/TableServiceCmdService.java

@@ -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 {
         }
     }
 
+
 }